Public/Remove-DuneActionAssignment.ps1

<#
.SYNOPSIS
Remove an action-assignment from a target.

.DESCRIPTION
DELETE on the specified action-assignment path.
#>

function Remove-DuneActionAssignment {
    [CmdletBinding(
        SupportsShouldProcess,
        DefaultParameterSetName = 'Id',
        ConfirmImpact = 'High'
    )]
    param(
        [Parameter(ParameterSetName = 'Object', ValueFromPipeline)]
        [DuneActionAssignment]$ActionAssignment,

        [Parameter(ParameterSetName = 'Id')]
        [guid]$ActionAssignmentId
    )

    begin {}

    process {
        if ($PSCmdlet.ParameterSetName -eq 'Id') { $ActionAssignment = Get-DuneActionAssignment -Id $ActionAssignmentId }
        $Uri = 'action-assignments/{0}' -f $ActionAssignment.Id

        if ($PSCmdlet.ShouldProcess($ActionAssignment.Name)) {
            $Null = Invoke-DuneApiRequest -Uri $Uri -Method DELETE
        }
    }

    end {}
}