Functions/Get-DqEntities.ps1

Function Get-DqEntities
{
  <#
    .SYNOPSIS
      Deze functie haalt alle entiteiten op uit een DQ Monitor Webservice.
   
    .DESCRIPTION
      De Get-DqEntities functie haalt een lijst op van entiteiten die bekend zijn bij de DQ Monitor Webservice.
      Voordat deze functie gebruikt wordt, zorg ervoor dat de Context is gezet via functie Set-DqContext.
   
    .PARAMETER CustomOnly
      Optioneel: Indicatie dat alleen een lijst met eigen gemaakte entiteiten van de klant opgehaald moeten worden.
     
    .INPUTS
      Geen.
   
    .OUTPUTS
      Array met JSON objecten die entiteiten representeren.
  
    .EXAMPLE
      PS> Get-DqEntities
      {}
   
    .LINK
      Set-DqContext
  #>

  [OutputType([Array])]
  [CmdletBinding()]
  Param(
    [Parameter(Mandatory=$False)]
    [Switch] $CustomOnly
  )

  Validate-Context

  If ($CustomOnly.IsPresent -and $CustomOnly)
  {
    Write-Verbose "Ophalen aanwezige klantenentiteiten uit de DQ Monitor API..."
  }
  Else 
  {
    Write-Verbose "Ophalen van alle entiteiten uit de DQ Monitor API..."
  }
  
  $Response = Invoke-WebRequest -UseBasicParsing -Uri $DqContext.GetEntityControllerUrl() -Method Get -Header $DqContext.Headers -ErrorAction Stop
  $Entities = $Response.Content | ConvertFrom-Json | Select -ExpandProperty Entities

  If ($CustomOnly.IsPresent -and $CustomOnly)
  {
    $CustomEntities = @($Entities | Where-Object { $_.IsCustom -eq $True })
    Write-Verbose "Totaal $($Entities.Count) entiteit(en) gevonden waarvan $($CustomEntities.Count) klantenentiteit(en)."
    $Entities = $CustomEntities
  }
  Else 
  {
    Write-Verbose "$($Entities.Count) entiteiten gevonden."
  }
  
  Return [Array]$Entities
}