Public/Remove-DMHyperMetroDomain.ps1

function Remove-DMHyperMetroDomain {
    <#
    .SYNOPSIS
        Removes an OceanStor SAN HyperMetro domain.
    #>

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

        [Parameter(ParameterSetName = 'ById', Mandatory = $true, ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Id,

        [Parameter(ParameterSetName = 'ByName', Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Name,

        [bool]$LocalDelete = $false
    )

    $session = if ($WebSession) { $WebSession } else { $script:CurrentOceanstorSession }
    $domainId = Resolve-DMHyperMetroDomainId -WebSession $session -Id $Id -Name $Name
    $resource = "HyperMetroDomain/$domainId" + "?ISLOCALDELETE=$($LocalDelete.ToString().ToLowerInvariant())"

    if ($PSCmdlet.ShouldProcess($domainId, 'Remove SAN HyperMetro domain')) {
        $response = Invoke-DeviceManager -WebSession $session -Method 'DELETE' -Resource $resource
        $response = $response | Assert-DMApiSuccess
        return $response.error
    }
}