Functions/BloxOne/BloxOneDDI/Remove-B1DTCServer.ps1

function Remove-B1DTCServer {
    <#
    .SYNOPSIS
        Removes an existing BloxOne DTC Server

    .DESCRIPTION
        This function is used to remove an existing BloxOne DTC Server

    .PARAMETER Name
        The name of the DTC Server to remove

    .PARAMETER Object
        The DTC Server Object(s) to remove. Accepts pipeline input.

    .PARAMETER Force
        Perform the operation without prompting for confirmation. By default, this function will always prompt for confirmation unless -Confirm:$false or -Force is specified, or $ConfirmPreference is set to None.

    .EXAMPLE
        PS> Remove-B1DTCServer -Name "EXCHANGE-MAIL01"

        Successfully removed DTC Server: EXCHANGE-MAIL01

    .EXAMPLE
        PS> Get-B1DTCServer -Name "EXCHANGE-" | Remove-B1DTCServer

        Successfully removed DTC Server: EXCHANGE-MAIL01
        Successfully removed DTC Server: EXCHANGE-MAIL02

    .FUNCTIONALITY
        BloxOneDDI

    .FUNCTIONALITY
        DNS
    #>

    [CmdletBinding(
        SupportsShouldProcess,
        ConfirmImpact = 'High'
    )]
    param(
        [Parameter(ParameterSetName="Default",Mandatory=$true)]
        [String]$Name,
        [Parameter(
            ValueFromPipeline = $true,
            ParameterSetName="Object",
            Mandatory=$true
        )]
        [System.Object]$Object,
        [Switch]$Force
    )

    process {
        $ConfirmPreference = Confirm-ShouldProcess $PSBoundParameters
        if ($Object) {
            $SplitID = $Object.id.split('/')
            if (("$($SplitID[0])/$($SplitID[1])") -ne "dtc/server") {
                Write-Error "Error. Unsupported pipeline object. This function only supports 'dtc/server' objects as input"
                return $null
            }
        } else {
            $Object = Get-B1DTCServer -Name $($Name) -Strict
            if (!($Object)) {
                Write-Error "Unable to find DTC Server: $($Name)"
                return $null
            }
        }

        if($PSCmdlet.ShouldProcess("$($Object.name) ($($Object.id))")){
            $null = Invoke-CSP -Method DELETE -Uri "$(Get-B1CSPUrl)/api/ddi/v1/$($Object.id)"
            if (!(Get-B1DTCServer -id $Object.id)) {
                Write-Host "Successfully removed DTC Server: $($Object.name)" -ForegroundColor Green
            } else {
                Write-Error "Failed to remove DTC Server: $($Object.name)"
            }
        }
    }
}