Public/Requests/Get-SCAAccessRequest.ps1

function Get-SCAAccessRequest {
    <#
    .SYNOPSIS
        Gets access requests.
    .DESCRIPTION
        Calls GET /workflows/requests to list access requests, or
        GET /workflows/requests/{requestId} to get a single request's detail.
    .PARAMETER RequestId
        Return a single access request by ID. Omit to list requests.
    .PARAMETER Status
        Filter the list by request status (e.g. Pending, Approved, Rejected, Cancelled), passed
        as a query parameter.
    .PARAMETER Session
        A psSCA.Session object or session name. Defaults to the current default session.
    .EXAMPLE
        Get-SCAAccessRequest -Status Pending

        Lists pending access requests.
    .EXAMPLE
        Get-SCAAccessRequest -RequestId 'a1b2c3d4-request-id'

        Gets a specific access request.
    .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()]
    [OutputType('psSCA.AccessRequest')]
    param(
        [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
        [Alias('id')]
        [string]$RequestId,

        [Parameter()]
        [string]$Status,

        [Parameter()]
        [object]$Session
    )

    process {
        if ($RequestId) {
            Invoke-SCARequest -Session $Session -Service 'UAR' -Method GET -Path '/workflows/requests/{requestId}' `
                -PathParameters @{ requestId = $RequestId } -Operation 'Get-SCAAccessRequest' -TypeName 'psSCA.AccessRequest'
            return
        }

        Invoke-SCARequest -Session $Session -Service 'UAR' -Method GET -Path '/workflows/requests' `
            -QueryParameters @{ status = $Status } -Operation 'Get-SCAAccessRequest' -TypeName 'psSCA.AccessRequest'
    }
}