functions/public/Remove-PSIPAMAddress.ps1

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