Public/Remove-DMFailoverGroupMember.ps1

function Remove-DMFailoverGroupMember {
    <#
    .SYNOPSIS
        Removes a port member from an OceanStor failover group.
    #>

    [CmdletBinding(SupportsShouldProcess = $true, ConfirmImpact = 'High')]
    param(
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [pscustomobject]$WebSession,

        [Parameter(Mandatory = $true, Position = 0)]
        [ValidateNotNullOrEmpty()]
        [string]$Id,

        [Parameter(Mandatory = $true)]
        [ValidateSet(213, 235, 280)]
        [int]$AssociateObjectType,

        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$AssociateObjectId
    )

    process {
        try {
            $session = if ($WebSession) { $WebSession } else { $script:CurrentOceanstorSession }
            $resource = "failovergroup/associate?ID=$([uri]::EscapeDataString($Id))&ASSOCIATEOBJTYPE=$AssociateObjectType&ASSOCIATEOBJID=$([uri]::EscapeDataString($AssociateObjectId))"

            if ($PSCmdlet.ShouldProcess("$AssociateObjectId <- $Id", 'Remove failover group member')) {
                $response = Invoke-DeviceManager -WebSession $session -Method 'DELETE' -Resource $resource
                $response = $response | Assert-DMApiSuccess
                return $response.error
            }
        }
        catch {
            $PSCmdlet.WriteError($_)
        }
    }
}

Set-Alias -Name Delete-DMFailoverGroupMember -Value Remove-DMFailoverGroupMember