modules/Devolutions.CIEM.Checks/Public/Remove-CIEMCheck.ps1

function Remove-CIEMCheck {
    [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'High')]
    param(
        [Parameter(Mandatory, ParameterSetName = 'ById')]
        [string]$Id,
        [Parameter(Mandatory, ParameterSetName = 'InputObject', ValueFromPipeline)]
        [PSObject[]]$InputObject
    )
    process {
        if ($PSCmdlet.ParameterSetName -eq 'InputObject') {
            foreach ($item in $InputObject) {
                if ($PSCmdlet.ShouldProcess($item.Id, 'Remove CIEM check')) {
                    Write-CIEMLog -Message "DELETE checks WHERE id='$($item.Id)' (caller: $((Get-PSCallStack)[1].Command))" -Severity WARNING -Component 'Remove-Check'
                    Invoke-CIEMQuery -Query "DELETE FROM checks WHERE id = @id" -Parameters @{ id = $item.Id } -AsNonQuery | Out-Null
                }
            }
        } else {
            if ($PSCmdlet.ShouldProcess($Id, 'Remove CIEM check')) {
                Write-CIEMLog -Message "DELETE checks WHERE id='$Id' (caller: $((Get-PSCallStack)[1].Command))" -Severity WARNING -Component 'Remove-Check'
                Invoke-CIEMQuery -Query "DELETE FROM checks WHERE id = @id" -Parameters @{ id = $Id } -AsNonQuery | Out-Null
            }
        }
    }
}