function Remove-PSIPAMAddress { [CmdletBinding(DefaultParameterSetName="ByID")] param ( [parameter(Mandatory=$true,ValueFromPipeline=$true,Position=0,ParameterSetName="ByID")] [ValidateScript({ $_ -match "^\d+$" })] [ValidateNotNullOrEmpty()] [string] $Id, [parameter(Mandatory=$true,ValueFromPipeline=$true,Position=0,ParameterSetName="ByIP")] [ValidateScript({[ipaddress] $_ })] [ValidateNotNullOrEmpty()] [string] $IP, [parameter(Mandatory=$true,ValueFromPipeline=$true,Position=1,ParameterSetName="ByIP")] [ValidateScript({ $_ -match "^\d+$" })] [ValidateNotNullOrEmpty()] [string] $SubnetId ) process { $_params = @{ Controller = "addresses" Method = "DELETE" } switch ($PSCmdlet.ParameterSetName) { "ByID" { $_identifiers = @($Id) } "ByIP" { $_identifiers = @($IP,$SubnetId) } } $_params.Add("Identifiers",$_identifiers) Invoke-PSIPAMRequest @_params } } Export-ModuleMember Remove-PSIPAMAddress