mirror of
https://github.com/benclaussen/NetboxPS.git
synced 2025-12-13 09:52:29 +00:00
60 lines
No EOL
1.7 KiB
PowerShell
60 lines
No EOL
1.7 KiB
PowerShell
|
|
function Get-NetboxIPAMAvailableIP {
|
|
<#
|
|
.SYNOPSIS
|
|
A convenience method for returning available IP addresses within a prefix
|
|
|
|
.DESCRIPTION
|
|
By default, the number of IPs returned will be equivalent to PAGINATE_COUNT. An arbitrary limit
|
|
(up to MAX_PAGE_SIZE, if set) may be passed, however results will not be paginated
|
|
|
|
.PARAMETER Prefix_ID
|
|
A description of the Prefix_ID parameter.
|
|
|
|
.PARAMETER Limit
|
|
A description of the Limit parameter.
|
|
|
|
.PARAMETER Raw
|
|
A description of the Raw parameter.
|
|
|
|
.PARAMETER NumberOfIPs
|
|
A description of the NumberOfIPs parameter.
|
|
|
|
.EXAMPLE
|
|
Get-NetboxIPAMAvailableIP -Prefix_ID (Get-NetboxIPAMPrefix -Prefix 192.0.2.0/24).id
|
|
|
|
Get (Next) Available IP on the Prefix 192.0.2.0/24
|
|
|
|
.EXAMPLE
|
|
Get-NetboxIPAMAvailableIP -Prefix_ID 2 -NumberOfIPs 3
|
|
|
|
Get 3 (Next) Available IP on the Prefix 192.0.2.0/24
|
|
|
|
.NOTES
|
|
Additional information about the function.
|
|
#>
|
|
|
|
[CmdletBinding()]
|
|
param
|
|
(
|
|
[Parameter(Mandatory = $true,
|
|
ValueFromPipelineByPropertyName = $true)]
|
|
[Alias('Id')]
|
|
[int]$Prefix_ID,
|
|
|
|
[Alias('NumberOfIPs')]
|
|
[int]$Limit,
|
|
|
|
[switch]$Raw
|
|
)
|
|
|
|
process {
|
|
$Segments = [System.Collections.ArrayList]::new(@('ipam', 'prefixes', $Prefix_ID, 'available-ips'))
|
|
|
|
$URIComponents = BuildURIComponents -URISegments $Segments -ParametersDictionary $PSBoundParameters -SkipParameterByName 'prefix_id'
|
|
|
|
$uri = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters
|
|
|
|
InvokeNetboxRequest -URI $uri -Raw:$Raw
|
|
}
|
|
} |