Private/Update-CIEMScanRun.ps1
|
function Update-CIEMScanRun { <# .SYNOPSIS Updates a CIEMScanRun with results and/or status, then persists it. .DESCRIPTION Attaches scan results to a ScanRun, updates its status (Completed/Failed), and persists the updated state to PSU cache. .PARAMETER ScanRun The CIEMScanRun object to update. .PARAMETER Status New status to set (Completed or Failed). .PARAMETER ScanResults Array of CIEMScanResult objects to attach. .PARAMETER ErrorMessage Error message to record (for Failed status). .OUTPUTS CIEMScanRun The updated ScanRun object. .EXAMPLE Update-CIEMScanRun -ScanRun $scanRun -Status Completed -ScanResults $results Marks a scan run as completed and attaches the results. .EXAMPLE Update-CIEMScanRun -ScanRun $scanRun -Status Failed -ErrorMessage 'Authentication failed' Marks a scan run as failed with an error message. #> [CmdletBinding()] [OutputType([CIEMScanRun])] param( [Parameter(Mandatory, ValueFromPipeline)] [CIEMScanRun]$ScanRun, [Parameter()] [ValidateSet('Completed', 'Failed')] [string]$Status, [Parameter()] [CIEMScanResult[]]$ScanResults, [Parameter()] [string]$ErrorMessage ) process { # Attach results if provided if ($ScanResults) { $ScanRun.ScanResults = $ScanResults } # Update status if ($Status -eq 'Completed') { $ScanRun.Complete() } elseif ($Status -eq 'Failed') { $ScanRun.Fail($ErrorMessage) } # Persist to cache Save-CIEMScanRun -ScanRun $ScanRun return $ScanRun } } |