Public/Policies/Test-SIAPolicy.ps1

function Test-SIAPolicy {
    <#
    .SYNOPSIS
        Validates a unified access control policy.
    .DESCRIPTION
        Calls the Validate a policy operation, which checks a policy
        definition without saving it. Useful before New-SIAPolicy or
        Set-SIAPolicy.
    .PARAMETER Id
        The policy's ID to validate against.
    .PARAMETER Body
        The policy definition to validate.
    .EXAMPLE
        Test-SIAPolicy -Id 'policy-01' -Body $updatedDefinition

        Validates a proposed change to an existing policy before saving it.
    .INPUTS
        None.
    .OUTPUTS
        psSIA.PolicyValidation
    .LINK
        https://api-docs.cyberark.com/uap-schema-api/docs/access-control-policies-api
    #>

    [CmdletBinding()]
    [OutputType('psSIA.PolicyValidation')]
    param(
        [Parameter(Mandatory)]
        [string]$Id,

        [Parameter(Mandatory)]
        $Body
    )

    Invoke-SIARequest -Method POST -Path "/policies/$Id/validate" -Body $Body -Service Uap |
        ConvertFrom-SIAResponse -TypeName 'psSIA.PolicyValidation'
}