Public/Requests/Approve-SCAAccessRequest.ps1
|
function Approve-SCAAccessRequest { <# .SYNOPSIS Approves a pending access request. .DESCRIPTION Calls POST /workflows/requests/{requestId}/finalize on the Access Requests API with an approval decision. The caller must hold the "Access request approver" role for the request to be visible and approvable. .PARAMETER RequestId The access request to approve. .PARAMETER Reason An optional approval comment. .PARAMETER Session A psSCA.Session object or session name. Defaults to the current default session. .EXAMPLE Get-SCAAccessRequest -Status Pending | Approve-SCAAccessRequest -Reason 'Approved per change 4471' Approves every pending access request assigned to the caller. .INPUTS System.String. RequestId can be piped in by value or by property name. .OUTPUTS psSCA.AccessRequest .LINK https://api-docs.cyberark.com/access-request-api/docs/access-request-api #> [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'Medium')] [OutputType('psSCA.AccessRequest')] param( [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)] [Alias('id')] [string]$RequestId, [Parameter()] [string]$Reason, [Parameter()] [object]$Session ) process { if ($PSCmdlet.ShouldProcess($RequestId, 'Approve Secure Cloud Access request')) { $body = @{ decision = 'Approve'; reason = $Reason } Invoke-SCARequest -Session $Session -Service 'UAR' -Method POST -Path '/workflows/requests/{requestId}/finalize' ` -PathParameters @{ requestId = $RequestId } -Body $body -Operation 'Approve-SCAAccessRequest' -TypeName 'psSCA.AccessRequest' } } } |