Functions/BloxOne/BloxOneDDI/Revoke-B1DNSConfigProfile.ps1

function Revoke-B1DNSConfigProfile {
    <#
    .SYNOPSIS
        Removes a DNS Config Profile from one or more BloxOneDDI hosts

    .DESCRIPTION
        This function is used to remove a DNS Config Profile from one or more BloxOneDDI hosts

    .PARAMETER Name
        The name of the DNS Config Profile to remove

    .PARAMETER Hosts
        A list of BloxOneDDI Hosts to remove the DNS Config Profile from

    .EXAMPLE
        PS> Revoke-B1DNSConfigProfile -Name "Data Centre" -Hosts "bloxoneddihost1.mydomain.corp","bloxoneddihost2.mydomain.corp"
    
    .FUNCTIONALITY
        BloxOneDDI
    
    .FUNCTIONALITY
        DNS
    #>

    [Alias("Remove-B1HostDNSConfigProfile")]
    param(
        [Parameter(Mandatory=$true)]
        [System.Object]$Hosts
    )

    $DNSConfigProfileId = (Get-B1DNSConfigProfile -Name $Name -Strict).id
    if (!$DNSConfigProfileId) {
        Write-Host "Failed to get DNS Config Profile." -ForegroundColor Red
    }
    
    foreach ($DNSHost in $Hosts) {
        $DNSHostId = (Get-B1DNSHost -Name $DNSHost).id

        $splat = @{
            "server" = $null
        }

        $splat = $splat | ConvertTo-Json

        $Result = Invoke-CSP -Method "PATCH" -Uri "$DNSHostId" -Data $splat | Select-Object -ExpandProperty result -ErrorAction SilentlyContinue
        if ($Result.server -eq $null) {
            Write-Host "DNS Config Profiles have been successfully removed from $DNSHost" -ForegroundColor Green
        } else {
            Write-Host "Failed to remove DNS Config Profiles from $DNSHost" -ForegroundColor Red
        }
    }
}