Public/Policies/Get-SIAPolicy.ps1

function Get-SIAPolicy {
    <#
    .SYNOPSIS
        Lists or retrieves unified access control policies.
    .DESCRIPTION
        Retrieves policies from CyberArk's unified, zero-standing-privileges
        Access Control Policies engine, shared across SIA and Secure Cloud
        Access. This applies to tenants managed from "Manage > Access control
        policies"; tenants still on SIA's legacy policy page should use
        Get-SIAAccessPolicy instead. See docs/API-COMPATIBILITY.md.
    .PARAMETER Id
        Retrieves a single policy by its ID.
    .EXAMPLE
        Get-SIAPolicy

        Lists every unified access control policy on the tenant.
    .INPUTS
        None.
    .OUTPUTS
        psSIA.Policy
    .LINK
        https://api-docs.cyberark.com/uap-schema-api/docs/access-control-policies-api
    #>

    [CmdletBinding(DefaultParameterSetName = 'List')]
    [OutputType('psSIA.Policy')]
    param(
        [Parameter(Mandatory, ParameterSetName = 'ById', ValueFromPipelineByPropertyName)]
        [Alias('policyId')]
        [string]$Id
    )

    process {
        $path = if ($Id) { "/policies/$Id" } else { '/policies' }
        Invoke-SIARequest -Method GET -Path $path -Service Uap |
            ConvertFrom-SIAResponse -TypeName 'psSIA.Policy'
    }
}