Public/Complete-ChangeEmailAgentRequest.ps1
function Complete-ChangeEmailAgentRequest { [CmdletBinding()] Param( [Parameter(Mandatory = $true, ValueFromPipeline = $true)] $Request, [Parameter(Mandatory = $false)] [ValidateSet("Success", "Failed")] $Status = "Success", [Parameter(Mandatory = $false)] [string] $ErrorMessage ) Process { if (!$Script:Hostname) { Write-Error -Message "Hostname is not set. Please run Connect-ChangeEmailAgent first." return } Write-EventLog -LogName "Application" -Source "ChangeEmailAgent" -EventId 1105 -EntryType Information -Message "Confirming request with ID $($Request.id)" -ErrorAction Continue Write-Verbose "Confirming request with ID $($Request.id)" try { $body = @{ status = $Status errorMessage = $ErrorMessage } | ConvertTo-Json Invoke-RestMethod -Uri "https://$($Script:Hostname)/changeemail/changerequests/$($Request.id)/complete" -Method Post -Headers (Get-EntraIDAccessTokenHeader) -ContentType "application/json" -Body $body } catch { Write-EventLog -LogName "Application" -Source "ChangeEmailAgent" -EventId 1205 -EntryType Error -Message "Failed to confirm request: $_" -ErrorAction Continue Write-Error -Message "Failed to confirm request: $_" } } } |