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

function Remove-CIEMScanResult {
    [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'High')]
    param(
        [Parameter(Mandatory, ParameterSetName = 'ById')]
        [int]$Id,
        [Parameter(Mandatory, ParameterSetName = 'ByScanRun')]
        [string]$ScanRunId,
        [Parameter(Mandatory, ParameterSetName = 'InputObject', ValueFromPipeline)]
        [object[]]$InputObject
    )
    process {
        if ($PSCmdlet.ParameterSetName -eq 'InputObject') {
            foreach ($item in $InputObject) {
                $itemId = if ($item.Id) { $item.Id } elseif ($item.id) { $item.id } else { $item }
                if ($PSCmdlet.ShouldProcess("scan result $itemId", 'Remove')) {
                    Write-CIEMLog -Message "DELETE scan_results WHERE id=$itemId (caller: $((Get-PSCallStack)[1].Command))" -Severity WARNING -Component 'Remove-ScanResult'
                    Invoke-CIEMQuery -Query "DELETE FROM scan_results WHERE id = @id" -Parameters @{ id = $itemId } -AsNonQuery | Out-Null
                }
            }
        } elseif ($PSCmdlet.ParameterSetName -eq 'ByScanRun') {
            if ($PSCmdlet.ShouldProcess("scan run '$ScanRunId'", 'Remove all scan results')) {
                Write-CIEMLog -Message "DELETE scan_results WHERE scan_run_id='$ScanRunId' (caller: $((Get-PSCallStack)[1].Command))" -Severity WARNING -Component 'Remove-ScanResult'
                Invoke-CIEMQuery -Query "DELETE FROM scan_results WHERE scan_run_id = @id" -Parameters @{ id = $ScanRunId } -AsNonQuery | Out-Null
            }
        } else {
            if ($PSCmdlet.ShouldProcess("scan result $Id", 'Remove')) {
                Write-CIEMLog -Message "DELETE scan_results WHERE id=$Id (caller: $((Get-PSCallStack)[1].Command))" -Severity WARNING -Component 'Remove-ScanResult'
                Invoke-CIEMQuery -Query "DELETE FROM scan_results WHERE id = @id" -Parameters @{ id = $Id } -AsNonQuery | Out-Null
            }
        }
    }
}