Functions/BloxOne/BloxOneTD/Disable-B1Lookalike.ps1

function Disable-B1Lookalike {
    <#
    .SYNOPSIS
        Mutes a lookalike domain

    .DESCRIPTION
        This function is used to mute a lookalike domain

    .PARAMETER LookalikeDomain
        One or more identified lookalikes to mute

    .PARAMETER Force
        Perform the operation without prompting for confirmation. By default, this function will not prompt for confirmation unless $ConfirmPreference is set to Medium.

    .EXAMPLE
        PS> Disable-B1Lookalike -LookalikeDomain "google98.pro","return-tax-hmrc.com"

        Successfully muted lookalike: google98.pro
        Successfully muted lookalike: return-tax-hmrc.com

    .FUNCTIONALITY
        BloxOneDDI

    .FUNCTIONALITY
        Threat Defense

    .NOTES
        Used in combination with Enable-B1Lookalike to mute/unmute lookalike domains.
    #>

    [CmdletBinding(
        SupportsShouldProcess,
        ConfirmImpact = 'Medium'
    )]
    param(
      [Parameter(Mandatory=$true)]
      [String[]]$LookalikeDomain,
      [Switch]$Force
    )
    $ConfirmPreference = Confirm-ShouldProcess $PSBoundParameters

    if ($LookalikeDomain) {
        $JSONData = @{
            "hide" = $LookalikeDomain
        } | ConvertTo-Json
        if($PSCmdlet.ShouldProcess("Disable Lookalike Domain(s): $($LookalikeDomain -join ', ')","Disable Lookalike Domain(s): $($LookalikeDomain -join ', ')",$MyInvocation.MyCommand)){
            $null = Invoke-CSP -Method PATCH -Uri "$(Get-B1CSPUrl)/api/atclad/v1/lookalikes" -Data $($JSONData) -ErrorAction SilentlyContinue -WarningAction SilentlyContinue

            foreach ($MutedDomain in $LookalikeDomain) {
                if (Get-B1Lookalikes -LookalikeDomain $($MutedDomain) -Muted true) {
                    Write-Host "Successfully muted lookalike domain: $($MutedDomain)" -ForegroundColor Green
                } else {
                    Write-Host "Failed to mute lookalike domain: $($MutedDomain)" -ForegroundColor Red
                }
            }
        }
    }
}