modules/Azure/Discovery/Public/New-CIEMAzureDiscoveryRun.ps1
|
function New-CIEMAzureDiscoveryRun { [CmdletBinding(DefaultParameterSetName = 'ByProperties')] [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions', '', Justification = 'Creates a data record in database')] [OutputType('CIEMAzureDiscoveryRun')] param( [Parameter(Mandatory, ParameterSetName = 'ByProperties')] [string]$Scope, [Parameter(Mandatory, ParameterSetName = 'ByProperties')] [string]$Status, [Parameter(Mandatory, ParameterSetName = 'ByProperties')] [string]$StartedAt, [Parameter(ParameterSetName = 'ByProperties')] [int]$PsuJobId, [Parameter(ParameterSetName = 'ByProperties')] [string]$CompletedAt, [Parameter(ParameterSetName = 'ByProperties')] [int]$ArmTypeCount, [Parameter(ParameterSetName = 'ByProperties')] [int]$ArmRowCount, [Parameter(ParameterSetName = 'ByProperties')] [int]$EntraTypeCount, [Parameter(ParameterSetName = 'ByProperties')] [int]$EntraRowCount, [Parameter(ParameterSetName = 'ByProperties')] [int]$WarningCount, [Parameter(ParameterSetName = 'ByProperties')] [string]$ErrorMessage, [Parameter(Mandatory, ParameterSetName = 'InputObject', ValueFromPipeline)] [PSObject[]]$InputObject ) process { if ($PSCmdlet.ParameterSetName -eq 'InputObject') { foreach ($obj in $InputObject) { New-CIEMAzureDiscoveryRun ` -Scope $obj.Scope ` -Status $obj.Status ` -StartedAt $obj.StartedAt ` -PsuJobId $obj.PsuJobId ` -CompletedAt $obj.CompletedAt ` -ArmTypeCount $obj.ArmTypeCount ` -ArmRowCount $obj.ArmRowCount ` -EntraTypeCount $obj.EntraTypeCount ` -EntraRowCount $obj.EntraRowCount ` -WarningCount $obj.WarningCount ` -ErrorMessage $obj.ErrorMessage } return } $parameters = @{ psu_job_id = $PsuJobId scope = $Scope status = $Status started_at = $StartedAt completed_at = $CompletedAt arm_type_count = $ArmTypeCount arm_row_count = $ArmRowCount entra_type_count = $EntraTypeCount entra_row_count = $EntraRowCount warning_count = $WarningCount error_message = $ErrorMessage } Invoke-CIEMQuery -Query @" INSERT INTO azure_discovery_runs (psu_job_id, scope, status, started_at, completed_at, arm_type_count, arm_row_count, entra_type_count, entra_row_count, warning_count, error_message) VALUES (@psu_job_id, @scope, @status, @started_at, @completed_at, @arm_type_count, @arm_row_count, @entra_type_count, @entra_row_count, @warning_count, @error_message) "@ -Parameters $parameters -AsNonQuery | Out-Null $idRow = Invoke-CIEMQuery -Query "SELECT last_insert_rowid() as id" $newId = $idRow.id Get-CIEMAzureDiscoveryRun -Id $newId } } |