@SreejaAgamamidi The documentation for this is sparse, but can be found here:
The link provided to the API takes you to this page: put-source-schema | SailPoint Developer Community
If you look at the right side, there is an example of the body there that references the hierarchyAttribute that was mentioned previously.
Looking at the example (pulled here for reference), we can see the AD Groups are being modeled here:
{
"id": "2c9180835d191a86015d28455b4a2329",
"name": "account",
"nativeObjectType": "User",
"identityAttribute": "sAMAccountName",
"displayAttribute": "distinguishedName",
"hierarchyAttribute": "memberOf",
"includePermissions": false,
"features": [
"PROVISIONING",
"NO_PERMISSIONS_PROVISIONING",
"GROUPS_HAVE_MEMBERS"
],
"configuration": {
"groupMemberAttribute": "member"
},
"attributes": [
{
"name": "sAMAccountName",
"type": "STRING",
"isMultiValued": false,
"isEntitlement": false,
"isGroup": false
},
{
"name": "memberOf",
"type": "STRING",
"schema": {
"type": "CONNECTOR_SCHEMA",
"id": "2c9180887671ff8c01767b4671fc7d60",
"name": "group"
},
"description": "Group membership",
"isMultiValued": true,
"isEntitlement": true,
"isGroup": true
}
],
"created": "2019-12-24T22:32:58.104Z",
"modified": "2019-12-31T20:22:28.104Z"
}
So you can see here that the memberOf attribute is listed as the hierarchyAttribute and the value is set to the group, with it’s own schema that is referenced by ID.
I am not sure how you would do an example with just one Entitlement type that can be nested, if that is what you are looking for. I am not sure how it would handle having a reference to itself. From the UI, you can not set an attribute on your Entitlement to be a reference to it’s own type, but unsure if that works via the API. And if it does, what side effects does it have?