Complex Provisioning Policy Attributes

The Google Workspace connector supports account provisioning with the following multi-valued complex attributes in JSON format:

Complex Attributes

Examples of JSON input

emails

{"address":"test1@google.com","type":"other"}

organizations

{"name":"Sailpoint","title":"SysAdmin", "type":"work", "customType":"","department":"DP Operations","location":"Pune"}

phones

{"value":"9876123345","type":"mobile"}

relations

{"value":"David","type":"brother"}

addresses

{"type":"work","streetAddress":"123 James street","locality":"Domino Park","region":"Lake Side","primary":true,"countryCode":"US"}

externalIds

{"value":"1234","type":"account"}

ims

{"type":"home","protocol":"gtalk","im":"12345","primary":true}

locations

{"area": "Mountain View", "buildingId": "D1", "deskCode": "Desk1", "floorName":"First Floor", "floorSection":"B", "type":"desk"}

If you need to set multiple values, separate each of the values in the JSON input with a comma:

{"address":"user1@google.com","type":"home"}, {"address":"test1@google.com","type":"other"}

The Google Workspace connector supports the aliases multi-valued attribute. Aliases are the user's aliases. The values can be a string or list of email IDs. It also supports special characters in email IDs for entitlement operations.

Note
Ensure that complex attributes are multi-valued in account schema and provisioning policy. For more information on JSON representation of the complex attributes and values, refer to REST Resource: users in the Google Workspace documentation.

The GSuite API does not support adding/removing multiple aliases in a single call, so the Google Workspace connector needs a list of values to iterate over each one. The Google Workspace connector requires the Before Provisioning Rule to create a provisioning plan to ensure the alias values are in the list format. Refer to the following provisioning plan example to add/remove multiple aliases:

Copy
{
    "ProvisioningPlan": {
        "AccountRequest": {
            "AttributeRequest": {
                "Value": {
                    "List": {
                        "String": [
                            "GoogleWorkspace1222@example.com",
                            "GoogleWorkspace12230@example.com"
                        ]
                    }
                },
                "name": "aliases",
                "op": "Set"
            },
            "application": "Google workspace",
            "nativeIdentity": "11234567890",
            "op": "Modify"
        },
        "nativeIdentity": "Test.google",
        "targetIntegration": "Google workspace"
    }
}

To add/remove a single alias, the string format works fine. For example,

Copy
{
        "AttributeRequest": {
            "name": "aliases",
            "op": "Set",
            "value": "GoogleWorkspace1222@example.com"
        },