Public/Add-UserProvisioningSyncSessionObject.ps1

function Add-UserProvisioningSyncSessionObject {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true)]
        $Identifier,

        [Parameter(Mandatory = $true)]
        $InputObject
    )

    process {
        if($Script:SyncSessionObjects.ContainsKey($Identifier)) {
            throw [System.ArgumentException]::new("An object with the identifier '$Identifier' has already been added to the sync session")
        }
        
        $Script:SyncSessionObjects[$Identifier] = $InputObject
    }
}