From e58dd012233502c1995b30043ba3b018367d360c Mon Sep 17 00:00:00 2001 From: Sebastian Claesson Date: Tue, 8 Oct 2024 07:10:30 +0200 Subject: [PATCH] Adding new function to fetch available prefixes --- .../Prefix/Get-NetboxIPAMAvailablePrefix.ps1 | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Functions/IPAM/Prefix/Get-NetboxIPAMAvailablePrefix.ps1 diff --git a/Functions/IPAM/Prefix/Get-NetboxIPAMAvailablePrefix.ps1 b/Functions/IPAM/Prefix/Get-NetboxIPAMAvailablePrefix.ps1 new file mode 100644 index 0000000..7e1a7af --- /dev/null +++ b/Functions/IPAM/Prefix/Get-NetboxIPAMAvailablePrefix.ps1 @@ -0,0 +1,42 @@ +function Get-NetboxIPAMAvailablePrefix { + <# + .SYNOPSIS + A convenience method for returning available prefixes within a prefix + + .DESCRIPTION + Will return any available prefixes within a prefix. + + .PARAMETER Prefix_ID + A description of the Prefix_ID parameter. + + .PARAMETER Raw + A description of the Raw parameter. + + .EXAMPLE + Get-NetboxIPAMAvailablePrefix -Prefix_ID (Get-NetboxIPAMPrefix -Prefix 192.0.2.0/24).id + + .NOTES + Additional information about the function. +#> + + [CmdletBinding()] + param + ( + [Parameter(Mandatory = $true, + ValueFromPipelineByPropertyName = $true)] + [Alias('Id')] + [uint64]$Prefix_ID, + + [switch]$Raw + ) + + process { + $Segments = [System.Collections.ArrayList]::new(@('ipam', 'prefixes', $Prefix_ID, 'available-prefixes')) + + $URIComponents = BuildURIComponents -URISegments $Segments -ParametersDictionary $PSBoundParameters -SkipParameterByName 'prefix_id' + + $uri = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters + + InvokeNetboxRequest -URI $uri -Raw:$Raw + } +} \ No newline at end of file