function Get-NetboxIPAMVRF { [CmdletBinding(DefaultParameterSetName = 'Query')] param ( [Parameter(ParameterSetName = 'ByID')] [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Name, [Parameter(ParameterSetName = 'Query')] [string]$RD, [Parameter(ParameterSetName = 'Query')] [string]$Tenant, [Parameter(ParameterSetName = 'Query')] [uint64]$Tenant_Id, [Parameter(ParameterSetName = 'Query')] [string]$TenantGroup, [Parameter(ParameterSetName = 'Query')] [uint64]$TenantGroup_Id, [Parameter(ParameterSetName = 'Query')] [object]$Status, [Parameter(ParameterSetName = 'Query')] [uint16]$Limit, [Parameter(ParameterSetName = 'Query')] [uint16]$Offset, [switch]$Raw ) switch ($PSCmdlet.ParameterSetName) { 'ById' { foreach ($VRF_ID in $Id) { $Segments = [System.Collections.ArrayList]::new(@('ipam', 'vrfs', $VRF_ID)) $URIComponents = BuildURIComponents -URISegments $Segments -ParametersDictionary $PSBoundParameters -SkipParameterByName 'Id' $uri = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters InvokeNetboxRequest -URI $uri -Raw:$Raw } break } default { $Segments = [System.Collections.ArrayList]::new(@('ipam', 'vrfs')) $URIComponents = BuildURIComponents -URISegments $Segments -ParametersDictionary $PSBoundParameters $uri = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters InvokeNetboxRequest -URI $uri -Raw:$Raw break } } }