modules/Azure/Discovery/Private/RemoveCIEMAzureResourceType.ps1

function RemoveCIEMAzureResourceType {
    [CmdletBinding(SupportsShouldProcess, DefaultParameterSetName = 'ByType')]
    param(
        [Parameter(Mandatory, ParameterSetName = 'ByType')]
        [string]$Type,

        [Parameter(Mandatory, ParameterSetName = 'All')]
        [switch]$All,

        [Parameter(Mandatory, ParameterSetName = 'InputObject', ValueFromPipeline)]
        [PSObject[]]$InputObject
    )

    process {
        switch ($PSCmdlet.ParameterSetName) {
            'InputObject' {
                foreach ($item in $InputObject) {
                    if ($PSCmdlet.ShouldProcess($item.Type, 'Remove Azure resource type')) {
                        Write-CIEMLog -Message "DELETE azure_resource_types WHERE type='$($item.Type)' (caller: $((Get-PSCallStack)[1].Command))" -Severity WARNING -Component 'Remove-ResourceType'
                        Invoke-CIEMQuery -Query "DELETE FROM azure_resource_types WHERE type = @type" -Parameters @{ type = $item.Type } -AsNonQuery | Out-Null
                    }
                }
            }
            'All' {
                if ($PSCmdlet.ShouldProcess('all records', 'Remove all Azure resource types')) {
                    Write-CIEMLog -Message "DELETE azure_resource_types ALL ROWS (caller: $((Get-PSCallStack)[1].Command))" -Severity WARNING -Component 'Remove-ResourceType'
                    Invoke-CIEMQuery -Query "DELETE FROM azure_resource_types" -AsNonQuery | Out-Null
                }
            }
            default {
                if ($PSCmdlet.ShouldProcess($Type, 'Remove Azure resource type')) {
                    Write-CIEMLog -Message "DELETE azure_resource_types WHERE type='$Type' (caller: $((Get-PSCallStack)[1].Command))" -Severity WARNING -Component 'Remove-ResourceType'
                    Invoke-CIEMQuery -Query "DELETE FROM azure_resource_types WHERE type = @type" -Parameters @{ type = $Type } -AsNonQuery | Out-Null
                }
            }
        }
    }
}