Public/Get-NCFilters.ps1
|
<# .SYNOPSIS Retrieves device filters from the N-central API. .DESCRIPTION Calls `/api/device-filters`. Supports `-All` auto-pagination. .PARAMETER ViewScope ALL or OWN_AND_USED. Default ALL. .EXAMPLE Get-NCFilters -All #> function Get-NCFilters { [CmdletBinding(DefaultParameterSetName = 'Page')] [OutputType([pscustomobject])] param ( [ValidateSet('ALL', 'OWN_AND_USED')] [string]$ViewScope = 'ALL', [Parameter(ParameterSetName = 'All')] [switch]$All, [Parameter(ParameterSetName = 'Page')] [int]$PageNumber, [Parameter(ParameterSetName = 'Page')] [int]$PageSize, [string]$Select, [string]$SortBy, [ValidateSet('asc', 'desc')] [string]$SortOrder = 'asc' ) $api = Get-NCRestApiInstance $endpoint = 'api/device-filters' $queryParameters = @{} if ($ViewScope -and $ViewScope -ne 'ALL') { $queryParameters['viewScope'] = $ViewScope } Add-NCCommonQuery -Parameters $queryParameters -Select $Select -SortBy $SortBy -SortOrder $SortOrder if ($All) { return Invoke-NCPagedRequest -Endpoint $endpoint -QueryParameters $queryParameters } if ($PageNumber) { $queryParameters['pageNumber'] = $PageNumber } if ($PageSize) { $queryParameters['pageSize'] = $PageSize } else { $queryParameters['pageSize'] = 500 } $endpoint += ConvertTo-NCQueryString -Parameters $queryParameters Write-Verbose "[FUNCTION] Get-NCFilters: $endpoint" $api.Get($endpoint) } |