function Get-NetboxIPAMAddressRange { [CmdletBinding(DefaultParameterSetName = 'Query')] param ( [Parameter(ParameterSetName = 'Query', Position = 0)] [string]$Range, [Parameter(ParameterSetName = 'ByID')] [uint64[]]$Id, [Parameter(ParameterSetName = 'Query')] [string]$Query, [Parameter(ParameterSetName = 'Query')] [object]$Family, [Parameter(ParameterSetName = 'Query')] [string]$VRF, [Parameter(ParameterSetName = 'Query')] [uint32]$VRF_Id, [Parameter(ParameterSetName = 'Query')] [string]$Tenant, [Parameter(ParameterSetName = 'Query')] [uint32]$Tenant_Id, [Parameter(ParameterSetName = 'Query')] [object]$Status, [Parameter(ParameterSetName = 'Query')] [object]$Role, [Parameter(ParameterSetName = 'Query')] [uint16]$Limit, [Parameter(ParameterSetName = 'Query')] [uint16]$Offset, [switch]$Raw ) switch ($PSCmdlet.ParameterSetName) { 'ById' { foreach ($Range_ID in $Id) { $Segments = [System.Collections.ArrayList]::new(@('ipam', 'ip-ranges', $Range_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', 'ip-ranges')) $URIComponents = BuildURIComponents -URISegments $Segments -ParametersDictionary $PSBoundParameters $uri = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters InvokeNetboxRequest -URI $uri -Raw:$Raw break } } }