Public/Get-IAMCoreSyncRule.ps1

function Get-IAMCoreSyncRule {
    [CmdletBinding(DefaultParameterSetName = "Default")]
    param (
        [Parameter(ParameterSetName = "Single")]
        [ValidatePattern("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$")] # Is a guid connector object id
        [string] $Id
    )

    if (-not $Script:APIRoot -or -not $Script:AccessTokenProfile) {
        throw "Not connected to IAM Core. Please run Connect-IAMCore first."
    }

    $Uri = "$Script:APIRoot/sync/syncrules"
    if($PSCmdlet.ParameterSetName -eq "Single") {
        $Uri = "{0}/{1}" -f $Uri, $Id
    }
    
    $Result = Invoke-RestMethod -Uri $Uri -Headers (Get-IAMCoreHeader)

    if ($Result.IsSuccess) {
        return $Result.Data
    }
    else {
        throw "Failed to get IAM Core sync rule: $($Result.ErrorMessage)"
    }
}