Public/Get-IAMCoreSyncCoreObject.ps1

function Get-IAMCoreSyncCoreObject {
    [CmdletBinding(DefaultParameterSetName = "Default")]
    param (
        [Parameter(Mandatory = $true)]
        [ValidateSet("CoreIdentity","CoreOrgUnit", "CoreRelationship")]
        [String] $ObjectType
    )

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

    $Uri = "$Script:APIRoot/sync/coreobjects/"

    switch($ObjectType) {
        "CoreIdentity" { $Uri += "identities" }
        "CoreOrgUnit" { $Uri += "orgunits" }
        "CoreRelationship" { $Uri += "relationships" }
    }

    $Result = Invoke-RestMethod -Uri $Uri -Headers (Get-IAMCoreHeader)

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