Files
ps.ipam/functions/public/Get-PSIPAMSubnetUsage.ps1
2022-11-30 16:53:56 +03:00

33 lines
1.2 KiB
PowerShell

function Get-PSIPAMSubnetUsage {
[CmdletBinding(DefaultParameterSetName="ByID")]
param (
[parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="ByCIDR")]
[ValidateScript({[ipaddress] $_.Split("/")[0] -and $_.Split("/")[1] -match "\d{1,2}"})]
[ValidateNotNullOrEmpty()]
[string]
$CIDR,
[parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,Position=0,ParameterSetName="ByID")]
[ValidateScript({ $_ -match "^\d+$" })]
[ValidateNotNullOrEmpty()]
[string]
$Id
)
process {
$_params = @{
Controller = "subnets"
Method = "GET"
}
switch ($PSCmdlet.ParameterSetName) {
"ByCIDR" {
$_subnetId = (Get-PSIPAMSubnet -CIDR $CIDR).id
if (!$_subnetId) { throw "Cannot find subnet!" }
}
"ByID" { $_subnetId = $Id }
}
$_identifiers = @($_subnetId,"usage")
$_params.Add("Identifiers",$_identifiers)
return Invoke-PSIPAMRequest @_params
}
}
Export-ModuleMember -Function Get-PSIPAMSubnetUsage