# Soffid Objects

---

You can consult the list of Soffid attributes:

1. [User Object](https://bookstack.soffid.com/link/75#bkmrk-user-object)
2. [Account Object](https://bookstack.soffid.com/link/75#bkmrk-account-object)
3. [Group Object](https://bookstack.soffid.com/link/75#bkmrk-group-object)
4. [Role Object](https://bookstack.soffid.com/link/75#bkmrk-role-object)
5. [Grant Object](https://bookstack.soffid.com/link/75#bkmrk-grant-object)
6. [Maillist Object](https://bookstack.soffid.com/link/75#bkmrk-maillist-object)
7. [Membership Object](https://bookstack.soffid.com/link/75#bkmrk-membership-object)
8. [dispatcherService](#bkmrk-dispatcherservice)
9. [Authoritative change object](#bkmrk-%C2%A0-4)

---

## User object

A user objects are maps that hold the information belonging to a single user account.

<table class="confluenceTable tablesorter tablesorter-default stickyTableHeaders" id="bkmrk-attribute-type-descr" role="grid"><thead class="tableFloatingHeaderOriginal"><tr class="tablesorter-headerRow" role="row" style="height: 29px;"><th aria-disabled="false" aria-label="Attribute: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" style="height: 29px; width: 141px;" tabindex="0"><div>**Attribute**</div></th><th aria-disabled="false" aria-label="Type: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" style="height: 29px; width: 183px;" tabindex="0"><div>**Type**</div></th><th aria-disabled="false" aria-label="Description: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="2" role="columnheader" scope="col" style="height: 29px; width: 485px;" tabindex="0"><div>**Description**</div></th></tr></thead><thead class="tableFloatingHeader"></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">id</td><td class="confluenceTd" style="height: 29px; width: 183px;">Long</td><td class="confluenceTd" style="height: 29px; width: 485px;">user id</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">accountId</td><td class="confluenceTd" style="height: 29px; width: 183px;">Long</td><td class="confluenceTd" style="height: 29px; width: 485px;">account id</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">accountName</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">account name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">system</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">managed system (agent) name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">accountDescription</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">account description</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">active</td><td class="confluenceTd" style="height: 29px; width: 183px;">Boolean</td><td class="confluenceTd" style="height: 29px; width: 485px;">true if user is active</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">accountDisabled</td><td class="confluenceTd" style="height: 29px; width: 183px;">Boolean</td><td class="confluenceTd" style="height: 29px; width: 485px;">true if account is diabled</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">mailAlias</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">blank separated mails</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">userName</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">user name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">primaryGroup</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">user's primary group name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">comments</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">user's comments</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">createdOn</td><td class="confluenceTd" style="height: 29px; width: 183px;">Date</td><td class="confluenceTd" style="height: 29px; width: 485px;">user creation date</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">modifiedOn</td><td class="confluenceTd" style="height: 29px; width: 183px;">Date</td><td class="confluenceTd" style="height: 29px; width: 485px;">user last modification date</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">mailDomain</td><td class="confluenceTd" style="height: 29px; width: 183px;">Date</td><td class="confluenceTd" style="height: 29px; width: 485px;">user mail domain ( email right side of @)</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">fullName</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">user full name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">shortName</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">user mail name (email left side of @)</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">firstName</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">user first name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">lastName</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">user last name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">lastName2</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">user second last name (when applicable)</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">mailServer</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">mail server host name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">homeServer</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">home drive server host name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">profileServer</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">roaming profile server host name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">phone</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">user's phone number</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">userType</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">user type</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">createdBy</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">user name creator of this user</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">modifiedBy</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 485px;">user name modifier of this user</td></tr><tr role="row" style="height: 57px;"><td class="confluenceTd" style="height: 57px; width: 141px;">secondaryGroups</td><td class="confluenceTd" style="height: 57px; width: 183px;">List&lt;Map&lt;String,Object&gt;&gt;</td><td class="confluenceTd" style="height: 57px; width: 485px;">list of [groups](#bkmrk-group-object) the user belongs to, including primary group

The attributes of the inner map are described later

</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">attributes</td><td class="confluenceTd" style="height: 29px; width: 183px;">Map&lt;String,String&gt;</td><td class="confluenceTd" style="height: 29px; width: 485px;">additional user attributes</td></tr><tr role="row" style="height: 35px;"><td class="confluenceTd" style="height: 35px; width: 141px;">grantedRoles</td><td class="confluenceTd" style="height: 35px; width: 183px;">List&lt;Map&lt;String,Object&gt;&gt;</td><td class="confluenceTd" style="height: 35px; width: 485px;">list of [grants](#bkmrk-grant-object) directly granted to the user</td></tr><tr role="row" style="height: 35px;"><td class="confluenceTd" style="height: 35px; width: 141px;">allGrantedRoles</td><td class="confluenceTd" style="height: 35px; width: 183px;">List&lt;Map&lt;String,Object&gt;&gt;</td><td class="confluenceTd" style="height: 35px; width: 485px;">list of [grants](#bkmrk-grant-object) directly on indirectly granted to the user</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">granted</td><td class="confluenceTd" style="height: 29px; width: 183px;">List&lt;String&gt;</td><td class="confluenceTd" style="height: 29px; width: 485px;">list of role names and group names directly granted to the user</td></tr><tr role="row" style="height: 45px;"><td class="confluenceTd" style="height: 45px; width: 141px;">allGranted</td><td class="confluenceTd" style="height: 45px; width: 183px;">List&lt;String&gt;</td><td class="confluenceTd" style="height: 45px; width: 485px;">list of role names and group names directly or indirectly granted to the user</td></tr></tbody></table>

## Account object

An account object holds the information belonging to an account.

<table class="confluenceTable tablesorter tablesorter-default stickyTableHeaders" id="bkmrk-attribute-type-descr-0" role="grid"><thead class="tableFloatingHeaderOriginal"><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label="Attribute: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" style="width: 148px;" tabindex="0"><div>**Attribute**</div></th><th aria-disabled="false" aria-label="Type: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" style="width: 183px;" tabindex="0"><div>**Type**</div></th><th aria-disabled="false" aria-label="Description: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="2" role="columnheader" scope="col" style="width: 475px;" tabindex="0"><div>**Description**</div></th></tr></thead><thead class="tableFloatingHeader"></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="confluenceTd" style="width: 148px;">accountDescription</td><td class="confluenceTd" style="width: 183px;">String</td><td class="confluenceTd" style="width: 475px;">account description</td></tr><tr role="row"><td class="confluenceTd" style="width: 148px;">accountDisabled</td><td class="confluenceTd" style="width: 183px;">Boolean</td><td class="confluenceTd" style="width: 475px;">true if account is diabled</td></tr><tr role="row"><td class="confluenceTd" style="width: 148px;">accountId</td><td class="confluenceTd" style="width: 183px;">Long</td><td class="confluenceTd" style="width: 475px;">account id</td></tr><tr role="row"><td class="confluenceTd" style="width: 148px;">accountName</td><td class="confluenceTd" style="width: 183px;">String</td><td class="confluenceTd" style="width: 475px;">account name</td></tr><tr role="row"><td class="confluenceTd" style="width: 148px;">allGranted</td><td class="confluenceTd" style="width: 183px;">List&lt;String&gt;</td><td class="confluenceTd" style="width: 475px;">list of role names directly or indirectly granted to the user</td></tr><tr role="row"><td class="confluenceTd" style="width: 148px;">allGrantedRoles</td><td class="confluenceTd" style="width: 183px;">List&lt;Map&lt;String,Object&gt;&gt;</td><td class="confluenceTd" style="width: 475px;">list of [grants](#bkmrk-grant-object) directly on indirectly granted to the user</td></tr><tr role="row"><td class="confluenceTd" style="width: 148px;">attributes</td><td class="confluenceTd" style="width: 183px;">Map&lt;String,String&gt;</td><td class="confluenceTd" style="width: 475px;">additional account attributes</td></tr><tr role="row"><td class="confluenceTd" style="width: 148px;">granted</td><td class="confluenceTd" style="width: 183px;">List&lt;String&gt;</td><td class="confluenceTd" style="width: 475px;">list of role names directly granted to the user</td></tr><tr role="row"><td class="confluenceTd" style="width: 148px;">grantedRoles</td><td class="confluenceTd" style="width: 183px;">List&lt;Map&lt;String,Object&gt;&gt;</td><td class="confluenceTd" style="width: 475px;">list of [grants](#bkmrk-grant-object) directly granted to the user</td></tr><tr role="row"><td class="confluenceTd" style="width: 148px;">lastLogin</td><td class="confluenceTd" style="width: 183px;">Calendar</td><td class="confluenceTd" style="width: 475px;">lastLogin</td></tr><tr role="row"><td class="confluenceTd" style="width: 148px;">lastPasswordUpdate</td><td class="confluenceTd" style="width: 183px;">Calendar</td><td class="confluenceTd" style="width: 475px;">lastPasswordUpdate</td></tr><tr role="row"><td class="confluenceTd" style="width: 148px;">lastUpdate</td><td class="confluenceTd" style="width: 183px;">Calendar</td><td class="confluenceTd" style="width: 475px;">lastUpdate</td></tr><tr role="row"><td class="confluenceTd" style="width: 148px;">passwordExpiration</td><td class="confluenceTd" style="width: 183px;">Calendar</td><td class="confluenceTd" style="width: 475px;">passwordExpiration</td></tr><tr role="row"><td class="confluenceTd" style="width: 148px;">passwordPolicy</td><td class="confluenceTd" style="width: 183px;">String</td><td class="confluenceTd" style="width: 475px;">password policy</td></tr><tr role="row"><td class="confluenceTd" style="width: 148px;">system</td><td class="confluenceTd" style="width: 183px;">String</td><td class="confluenceTd" style="width: 475px;">managed system (agent) name</td></tr><tr role="row"><td class="confluenceTd" style="width: 148px;">type</td><td class="confluenceTd" style="width: 183px;">AccountType</td><td class="confluenceTd" style="width: 475px;">"U"=user, "S"=shared, "P"=privileged, "I"=ignored</td></tr></tbody></table>

## Group object

An group object holds the information belonging to a group.

<table class="confluenceTable tablesorter tablesorter-default stickyTableHeaders" id="bkmrk-attribute-type-descr-1" role="grid"><thead class="tableFloatingHeaderOriginal"><tr class="tablesorter-headerRow" role="row" style="height: 29px;"><th aria-disabled="false" aria-label="Attribute: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" style="height: 29px; width: 140px;" tabindex="0"><div>**Attribute**</div></th><th aria-disabled="false" aria-label="Type: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" style="height: 29px; width: 183px;" tabindex="0"><div>**Type**</div></th><th aria-disabled="false" aria-label="Description: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="2" role="columnheader" scope="col" style="height: 29px; width: 492px;" tabindex="0"><div>**Description**</div></th></tr></thead><thead class="tableFloatingHeader"></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 140px;">groupId</td><td class="confluenceTd" style="height: 29px; width: 183px;">Long</td><td class="confluenceTd" style="height: 29px; width: 492px;">group id</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 140px;">name</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 492px;">group name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 140px;">description</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 492px;">group description</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 140px;">parent</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 492px;">parent group name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 140px;">server</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 492px;">home server host name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 140px;">disabled</td><td class="confluenceTd" style="height: 29px; width: 183px;">boolean</td><td class="confluenceTd" style="height: 29px; width: 492px;">true if the group is disabled</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 140px;">accountingGroup</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 492px;">group accounting information</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 140px;">type</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 492px;">group type</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 140px;">driveLetter</td><td class="confluenceTd" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" style="height: 29px; width: 492px;">home server letter to connect to</td></tr><tr role="row" style="height: 35px;"><td class="confluenceTd" style="height: 35px; width: 140px;">users</td><td class="confluenceTd" style="height: 35px; width: 183px;">List&lt;Map&lt;String,Object&gt;&gt;</td><td class="confluenceTd" style="height: 35px; width: 492px;">list of [users](#bkmrk-user-object) belonging to this group</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 140px;">userNames</td><td class="confluenceTd" style="height: 29px; width: 183px;">List&lt;String&gt;</td><td class="confluenceTd" style="height: 29px; width: 492px;">list of user names belonging to this group</td></tr><tr role="row" style="height: 35px;"><td class="confluenceTd" style="height: 35px; width: 140px;">allUsers</td><td class="confluenceTd" style="height: 35px; width: 183px;">List&lt;Map&lt;String,Object&gt;&gt;</td><td class="confluenceTd" style="height: 35px; width: 492px;">list of [users](#bkmrk-user-object) directly or indirectly belonging to this group</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 140px;">allUserNames</td><td class="confluenceTd" style="height: 29px; width: 183px;">List&lt;String&gt;</td><td class="confluenceTd" style="height: 29px; width: 492px;">list of user names either directly or indirectly grantee of this role</td></tr><tr role="row" style="height: 35px;"><td class="confluenceTd" style="height: 35px; width: 140px;">grantedRoles</td><td class="confluenceTd" style="height: 35px; width: 183px;">List&lt;Map&lt;String,Object&gt;&gt;</td><td class="confluenceTd" style="height: 35px; width: 492px;">list of [roles](#bkmrk-role-object) granted to this group</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 140px;">grantedRoleNames</td><td class="confluenceTd" style="height: 29px; width: 183px;">List&lt;String&gt;</td><td class="confluenceTd" style="height: 29px; width: 492px;">list of role names granted to this group</td></tr></tbody></table>

## Role object

An role object holds the information belonging to a role.

<table class="confluenceTable tablesorter tablesorter-default stickyTableHeaders" id="bkmrk-attribute-type-descr-2" role="grid"><thead class="tableFloatingHeaderOriginal"><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label="Attribute: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" tabindex="0"><div>**Attribute**</div></th><th aria-disabled="false" aria-label="Type: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" tabindex="0"><div>**Type**</div></th><th aria-disabled="false" aria-label="Description: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="2" role="columnheader" scope="col" tabindex="0"><div>**Description**</div></th></tr></thead><thead class="tableFloatingHeader"></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="confluenceTd">roleId</td><td class="confluenceTd">Long</td><td class="confluenceTd">role id</td></tr><tr role="row"><td class="confluenceTd">system</td><td class="confluenceTd">String</td><td class="confluenceTd">managed system (agent) name</td></tr><tr role="row"><td class="confluenceTd">name</td><td class="confluenceTd">String</td><td class="confluenceTd">role name</td></tr><tr role="row"><td class="confluenceTd">application</td><td class="confluenceTd">String</td><td class="confluenceTd">application system name</td></tr><tr role="row"><td class="confluenceTd">category</td><td class="confluenceTd">String</td><td class="confluenceTd">role category</td></tr><tr role="row"><td class="confluenceTd">passwordProtected</td><td class="confluenceTd">boolean</td><td class="confluenceTd">true if role should be password protected (where applicable)</td></tr><tr role="row"><td class="confluenceTd">description</td><td class="confluenceTd">String</td><td class="confluenceTd">Role description</td></tr><tr role="row"><td class="confluenceTd">wfmanaged</td><td class="confluenceTd">boolean</td><td class="confluenceTd">true if role should be displayed in self service requests</td></tr><tr role="row"><td class="confluenceTd">domain</td><td class="confluenceTd">String</td><td class="confluenceTd">custom domain for this role: Use com.soffid.iam.api.DomainType constants or configured custom domain</td></tr><tr role="row"><td class="confluenceTd">ownedRoles</td><td class="confluenceTd">List&lt;Map&lt;String,Object&gt;&gt;</td><td class="confluenceTd">list of[ roles granted](#bkmrk-grant-object) to this one</td></tr><tr role="row"><td class="confluenceTd">ownerRoles</td><td class="confluenceTd">List&lt;Map&lt;String,Object&gt;&gt;</td><td class="confluenceTd">list of [roles grantee](#bkmrk-grant-object) of this one</td></tr><tr role="row"><td class="confluenceTd">ownerGroups</td><td class="confluenceTd">List&lt;Map&lt;String,Object&gt;&gt;</td><td class="confluenceTd">list of [groups](#bkmrk-group-object) grantee of this role</td></tr><tr role="row"><td class="confluenceTd">grantedAccountNames</td><td class="confluenceTd">List&lt;String&gt;</td><td class="confluenceTd">list of account names directly grantee of this role</td></tr><tr role="row"><td class="confluenceTd">grantedAccounts</td><td class="confluenceTd">List&lt;Map&lt;String,Object&gt;&gt;</td><td class="confluenceTd">list of [users](#bkmrk-user-object) directly grantee of this role</td></tr><tr role="row"><td class="confluenceTd">allGrantedAccountNames</td><td class="confluenceTd">List&lt;String&gt;</td><td class="confluenceTd">list of account names either directly or indirectly grantee of this role</td></tr><tr role="row"><td class="confluenceTd">allGrantedAccounts</td><td class="confluenceTd">List&lt;Map&lt;String,Object&gt;&gt;</td><td class="confluenceTd">list of [users](#bkmrk-user-object) either directly or indirectly grantee of this role</td></tr><tr role="row"><td class="confluenceTd">attributes</td><td class="confluenceTd">Map&lt;String,Object&gt;</td><td class="confluenceTd">role's custom attributes</td></tr></tbody></table>

## Grant object

### Grant, grantedRole &amp; allGrantedRoles

The objects grant, grantedRole and allGrantedRoles are used to assing roles to accounts and roles.

<table class="confluenceTable tablesorter tablesorter-default stickyTableHeaders" id="bkmrk-attribute-type-descr-3" role="grid"><thead class="tableFloatingHeaderOriginal"><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label="Attribute: Ascending sort applied, activate to apply a descending sort" aria-sort="ascending" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerAsc" data-column="0" role="columnheader" scope="col" style="width: 193px;" tabindex="0"><div>**Attribute**</div></th><th aria-disabled="false" aria-label="Type: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" style="width: 166px;" tabindex="0"><div>**Type**</div></th><th aria-disabled="false" aria-label="Description: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" colspan="1" data-column="2" role="columnheader" scope="col" style="width: 457px;" tabindex="0"><div>**Description**</div></th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="confluenceTd" colspan="1" style="width: 193px;">domainValue</td><td class="confluenceTd" colspan="1" style="width: 166px;">String</td><td class="confluenceTd" colspan="1" style="width: 457px;">grant value (if any)</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 193px;">grantedRole</td><td class="confluenceTd" colspan="1" style="width: 166px;">String</td><td class="confluenceTd" colspan="1" style="width: 457px;">granted role name</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 193px;">grantedRoleId</td><td class="confluenceTd" colspan="1" style="width: 166px;">Long</td><td class="confluenceTd" colspan="1" style="width: 457px;">granted role id</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 193px;">grantedRoleObject</td><td class="confluenceTd" colspan="1" style="width: 166px;">[role object](#bkmrk-role-object)</td><td class="confluenceTd" colspan="1" style="width: 457px;">granted role</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 193px;">grantedRoleSystem</td><td class="confluenceTd" colspan="1" style="width: 166px;">String</td><td class="confluenceTd" colspan="1" style="width: 457px;">granted role managed system (agent) name</td></tr><tr role="row"><td class="confluenceTd" style="width: 193px;">id</td><td class="confluenceTd" style="width: 166px;">Long</td><td class="confluenceTd" colspan="1" style="width: 457px;">grant id</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 193px;">ownerAccount</td><td class="confluenceTd" colspan="1" style="width: 166px;">String</td><td class="confluenceTd" colspan="1" style="width: 457px;">grantee account name</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 193px;">ownerAccountObject</td><td class="confluenceTd" colspan="1" style="width: 166px;">[account object](#bkmrk-account-object)</td><td class="confluenceTd" colspan="1" style="width: 457px;">grantee account</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 193px;">ownerGroup</td><td class="confluenceTd" colspan="1" style="width: 166px;">String</td><td class="confluenceTd" colspan="1" style="width: 457px;">grantee group name</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 193px;">ownerRoleId</td><td class="confluenceTd" colspan="1" style="width: 166px;">String</td><td class="confluenceTd" colspan="1" style="width: 457px;">grantee role id</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 193px;">ownerRoleName</td><td class="confluenceTd" colspan="1" style="width: 166px;">String</td><td class="confluenceTd" colspan="1" style="width: 457px;">grantee role name</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 193px;">ownerSystem</td><td class="confluenceTd" colspan="1" style="width: 166px;">String</td><td class="confluenceTd" colspan="1" style="width: 457px;">grantee account or role managed system name</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 193px;">ownerUser</td><td class="confluenceTd" colspan="1" style="width: 166px;">String</td><td class="confluenceTd" colspan="1" style="width: 457px;">grantee user name</td></tr></tbody></table>

<p class="callout info">By default, use the **grantedRole** object</p>

<p class="callout warning">The **grant** object adds the roles and the groups, use it only in this case</p>

#### Examples

##### Grant

Example to map a grant object (assign a role to an account):

<table class="confluenceTable tablesorter tablesorter-default stickyTableHeaders" id="bkmrk-system-attribute-dir" role="grid"><thead class="tableFloatingHeaderOriginal"><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label="System attribute: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted align-center" data-column="0" role="columnheader" scope="col" style="width: 153px;" tabindex="0"><div>**System attribute**</div></th><th aria-disabled="false" aria-label="Direction: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted align-center" data-column="1" role="columnheader" scope="col" style="width: 87px;" tabindex="0"><div>**Direction**</div></th><th aria-disabled="false" aria-label="Soffid attribute: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted align-center" data-column="2" role="columnheader" scope="col" style="width: 167px;" tabindex="0"><div>**Soffid attribute**</div></th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="confluenceTd" style="width: 153px;">role\_name</td><td class="confluenceTd align-center" style="width: 87px;">=&gt;</td><td class="confluenceTd" style="width: 167px;">grantedRole</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 153px;">account\_name</td><td class="confluenceTd align-center" colspan="1" style="width: 87px;">=&gt;</td><td class="confluenceTd" colspan="1" style="width: 167px;">ownerAccount</td></tr></tbody></table>

##### GrantedRole

Example to map a grantedRole object (assign a role as a child of another role):

<table class="confluenceTable tablesorter tablesorter-default stickyTableHeaders" id="bkmrk-system-attribute-dir-0" role="grid"><thead class="tableFloatingHeaderOriginal"><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label="System attribute: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted align-center" data-column="0" role="columnheader" scope="col" style="width: 150px;" tabindex="0"><div>**System attribute**</div></th><th aria-disabled="false" aria-label="Direction: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted align-center" data-column="1" role="columnheader" scope="col" style="width: 88px;" tabindex="0"><div>**Direction**</div></th><th aria-disabled="false" aria-label="Soffid attribute: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted align-center" data-column="2" role="columnheader" scope="col" style="width: 168px;" tabindex="0"><div>**Soffid attribute**</div></th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="confluenceTd" style="width: 150px;">role\_name</td><td class="confluenceTd align-center" style="width: 88px;">=&gt;</td><td class="confluenceTd" style="width: 168px;">grantedRole</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 150px;">parent\_role\_name</td><td class="confluenceTd align-center" colspan="1" style="width: 88px;">=&gt;</td><td class="confluenceTd" colspan="1" style="width: 168px;">ownerRoleName</td></tr></tbody></table>

##### AllGrantedRoles

Example to map a allGrantedRoles object in a holderGroup (assign a role to an account in a specific group):

<table class="confluenceTable tablesorter tablesorter-default stickyTableHeaders" id="bkmrk-system-attribute-dir-1" role="grid"><thead class="tableFloatingHeaderOriginal"><tr class="tablesorter-headerRow" role="row" style="height: 29px;"><th aria-disabled="false" aria-label="System attribute: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted align-center" data-column="0" role="columnheader" scope="col" style="width: 149px; height: 29px;" tabindex="0"><div>**System attribute**</div></th><th aria-disabled="false" aria-label="Direction: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted align-center" data-column="1" role="columnheader" scope="col" style="width: 89px; height: 29px;" tabindex="0"><div>**Direction**</div></th><th aria-disabled="false" aria-label="Soffid attribute: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted align-center" data-column="2" role="columnheader" scope="col" style="width: 170px; height: 29px;" tabindex="0"><div>**Soffid attribute**</div></th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row" style="height: 29px;"><td class="confluenceTd" style="width: 149px; height: 29px;">role\_name</td><td class="confluenceTd align-center" style="width: 89px; height: 29px;">=&gt;</td><td class="confluenceTd" style="width: 170px; height: 29px;">grantedRole</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="width: 149px; height: 29px;">parent\_role\_name</td><td class="confluenceTd align-center" colspan="1" style="width: 89px; height: 29px;">=&gt;</td><td class="confluenceTd" colspan="1" style="width: 170px; height: 29px;">ownerRoleName</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="width: 149px; height: 29px;">group\_code</td><td class="confluenceTd align-center" colspan="1" style="width: 89px; height: 29px;">=&gt;</td><td class="confluenceTd" colspan="1" style="width: 170px; height: 29px;">domainValue</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="width: 149px; height: 29px;">group\_code</td><td class="confluenceTd align-center" colspan="1" style="width: 89px; height: 29px;">=&gt;</td><td class="confluenceTd" colspan="1" style="width: 170px; height: 29px;">holderGroup</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="width: 149px; height: 29px;">userName</td><td class="confluenceTd align-center" colspan="1" style="width: 89px; height: 29px;">=&gt;</td><td class="confluenceTd" colspan="1" style="width: 170px; height: 29px;">ownerUser</td></tr></tbody></table>

## Maillist object

<table class="confluenceTable tablesorter tablesorter-default stickyTableHeaders" id="bkmrk-attribute-type-descr-4" role="grid"><thead class="tableFloatingHeaderOriginal"><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label="Attribute: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" style="width: 172px;" tabindex="0"><div>**Attribute**</div></th><th aria-disabled="false" aria-label="Type: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" style="width: 101px;" tabindex="0"><div>**Type**</div></th><th aria-disabled="false" aria-label="Description: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" colspan="1" data-column="2" role="columnheader" scope="col" style="width: 553px;" tabindex="0"><div>**Description**</div></th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="confluenceTd" style="width: 172px;">id</td><td class="confluenceTd" style="width: 101px;">Long</td><td class="confluenceTd" colspan="1" style="width: 553px;">internal mail list id</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 172px;">name</td><td class="confluenceTd" colspan="1" style="width: 101px;">String</td><td class="confluenceTd" colspan="1" style="width: 553px;">mail list name ( the initial part, before the @ sign)</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 172px;">domain</td><td class="confluenceTd" colspan="1" style="width: 101px;">String</td><td class="confluenceTd" colspan="1" style="width: 553px;">mail list domain ( the remaining part after the @ sign)</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 172px;">system</td><td class="confluenceTd" colspan="1" style="width: 101px;">String</td><td class="confluenceTd" colspan="1" style="width: 553px;">managed system (agent) name</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 172px;">description</td><td class="confluenceTd" colspan="1" style="width: 101px;">String</td><td class="confluenceTd" colspan="1" style="width: 553px;">mail list description</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 172px;">users</td><td class="confluenceTd" colspan="1" style="width: 101px;">String array</td><td class="confluenceTd" colspan="1" style="width: 553px;">user names that are bound to this mail list</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 172px;">groups</td><td class="confluenceTd" colspan="1" style="width: 101px;">String array</td><td class="confluenceTd" colspan="1" style="width: 553px;">group names thta are subscribed to this mai list</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 172px;">roles</td><td class="confluenceTd" colspan="1" style="width: 101px;">String array</td><td class="confluenceTd" colspan="1" style="width: 553px;">role names that grant access to this mail list</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 172px;">lists</td><td class="confluenceTd" colspan="1" style="width: 101px;">String array</td><td class="confluenceTd" colspan="1" style="width: 553px;">Nested mail lists</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 172px;">explodedUsers</td><td class="confluenceTd" colspan="1" style="width: 101px;">String array</td><td class="confluenceTd" colspan="1" style="width: 553px;">Names of the users that should be subscribed to this mail list, including the users that should be subscribed due to group or role membership</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 172px;">explodedUserAddresses</td><td class="confluenceTd" colspan="1" style="width: 101px;">String array</td><td class="confluenceTd" colspan="1" style="width: 553px;">Mail addresses of any exploded User</td></tr></tbody></table>

## Membership object

A membership object contains the user account information as well as the group the user belongs to.

<table class="wrapped confluenceTable tablesorter tablesorter-default" id="bkmrk-attribute-type-descr-5" role="grid"><colgroup><col></col><col></col><col></col></colgroup><thead><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label="Attribute: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" style="width: 154px;" tabindex="0"><div>**Attribute**</div></th><th aria-disabled="false" aria-label="Type: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" style="width: 166px;" tabindex="0"><div>**Type**</div></th><th aria-disabled="false" aria-label="Description: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" colspan="1" data-column="2" role="columnheader" scope="col" style="width: 508px;" tabindex="0"><div>**Description**</div></th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="confluenceTd" colspan="1" style="width: 154px;">userName</td><td class="confluenceTd" colspan="1" style="width: 166px;">String</td><td class="confluenceTd" colspan="1" style="width: 508px;">User name</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 154px;">user</td><td class="confluenceTd" colspan="1" style="width: 166px;">Map&lt;String,Object&gt;</td><td class="confluenceTd" colspan="1" style="width: 508px;">[user object](#bkmrk-user-object)</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 154px;">groupName</td><td class="confluenceTd" colspan="1" style="width: 166px;">String</td><td class="confluenceTd" colspan="1" style="width: 508px;">Group name</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 154px;">group</td><td class="confluenceTd" colspan="1" style="width: 166px;">Map&lt;String,Object&gt;</td><td class="confluenceTd" colspan="1" style="width: 508px;">[group object](#bkmrk-group-object)</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 154px;">attributes</td><td class="confluenceTd" colspan="1" style="width: 166px;">Map&lt;String,Object&gt;</td><td class="confluenceTd" colspan="1" style="width: 508px;">Membership custom attributes</td></tr></tbody></table>

## dispatcherService

dispatcherService is an object available from agents' attribute translation rules.

This object contains four methods:

<div id="bkmrk-method-name-paramete"><div><table class="confluenceTable tablesorter tablesorter-default stickyTableHeaders" role="grid"><thead class="tableFloatingHeaderOriginal"><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label="method name: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" style="width: 116px;" tabindex="0"><div>**method name**</div></th><th aria-disabled="false" aria-label="parameters: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted align-center" data-column="1" role="columnheader" scope="col" style="width: 227px;" tabindex="0"><div>**parameters**</div></th><th aria-disabled="false" aria-label="result type: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted align-center" data-column="2" role="columnheader" scope="col" style="width: 126px;" tabindex="0"><div>**result type**</div></th><th aria-disabled="false" aria-label="comments: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="3" role="columnheader" scope="col" style="width: 367px;" tabindex="0"><div>**comments**</div></th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="confluenceTd" colspan="1" style="width: 116px;">soffidToSystem</td><td class="confluenceTd" colspan="1" style="width: 227px;">[ExtensibleObject](http://www.soffid.org/doc/console/2.0.0-2/iam-common/apidocs/com/soffid/iam/sync/intf/ExtensibleObject.html) soffidObject</td><td class="confluenceTd" colspan="1" style="width: 126px;">[ExtensibleObject](http://www.soffid.org/doc/console/2.0.0-2/iam-common/apidocs/com/soffid/iam/sync/intf/ExtensibleObject.html)</td><td class="confluenceTd" colspan="1" style="width: 367px;">Uses attribute translation tables to transform a soffid object to a target system object.

Mind to fill-in objectType property to use the proper object mapping

</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 116px;">systemToSoffid</td><td class="confluenceTd" colspan="1" style="width: 227px;">[ExtensibleObject](http://www.soffid.org/doc/console/2.0.0-2/iam-common/apidocs/com/soffid/iam/sync/intf/ExtensibleObject.html) systemObject</td><td class="confluenceTd" colspan="1" style="width: 126px;">[ExtensibleObject](http://www.soffid.org/doc/console/2.0.0-2/iam-common/apidocs/com/soffid/iam/sync/intf/ExtensibleObject.html)</td><td class="confluenceTd" colspan="1" style="width: 367px;">Uses attribute translation tables to transform a target system object to a Soffid object.

Mind to fill-in objectType property to use the proper object mapping

</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 116px;">search</td><td class="confluenceTd" colspan="1" style="width: 227px;">[ExtensibleObject](http://www.soffid.org/doc/console/2.0.0-2/iam-common/apidocs/com/soffid/iam/sync/intf/ExtensibleObject.html) exampleObject</td><td class="confluenceTd" colspan="1" style="width: 126px;">[ExtensibleObject](http://www.soffid.org/doc/console/2.0.0-2/iam-common/apidocs/com/soffid/iam/sync/intf/ExtensibleObject.html)</td><td class="confluenceTd" colspan="1" style="width: 367px;">Uses the exampleObject to perform a query by example on the target system. If the object exists on the target system, it is returned.

Mind to fill-in objectType property with the desired system object type

</td></tr><tr role="row"><td class="confluenceTd" colspan="1" style="width: 116px;">invoke</td><td class="confluenceTd" colspan="1" style="width: 227px;">String verb

String action

Map parameters

</td><td class="confluenceTd" colspan="1" style="width: 126px;">List of Map</td><td class="confluenceTd" colspan="1" style="width: 367px;">This method allows arbitrary executions on the target system, but it semantics can change depending on the connector used.

For instance, it can be used to perform a GET on the target system in REST connector, can issue an LDAP query on ActiveDirectory connector, can execute a SELECT sentence on a SQL connector, or can execute an operating system command in Shell connector.

The results are returned as a list of objects (map).

</td></tr></tbody></table>

</div></div>#### Examples

##### Snippet to query the sys\_id attribute for a grant owner

```Java
System.out.println("Searching id for "+ownerRoleName);
com.soffid.iam.sync.intf.ExtensibleObject eo = new com.soffid.iam.sync.intf.ExtensibleObject();
eo.setObjectType("ROLE");
eo{"name"} = ownerRoleName;
eo = dispatcherService.search(eo);
System.out.println("FOUND "+eo{"sys_id"});
return eo{"sys_id"};
```

##### Snippet that performs a REST query to get group to role assignments in ServiceNow

```Java
list = dispatcherService.invoke ("GET",
  "https://arxusdev.service-now.com/api/now/table/sys_group_has_role?sysparm_exclude_reference_link=true&amp;sysparm_display_value=all&amp;sysparm_fields=role%2Cgroup&amp;sysparm_query=group="+sys_id,
  null).
  get(0).get("result")
  
r = new java.util.LinkedList();
for ( d: list)
{
  grant = new java.util.HashMap();
  grant{"grantedRole"} = d.get("role").get("display_value");
  grant{"grantedRoleSystem"} = "ServiceNow";
  grant{"ownerRoleName"} = name;
  grant{"ownerSystem"} = "ServiceNow";
  r.add  (grant);
}
return r;
```

##### Snippet of invoke usage on a relational database

```Java
// Table ITREPRT
role = source{"granted"}.size() == 0 ? "" : source{"granted"}.get(0);
System.out.println ("************** ROLE "+role);
args = new java.util.HashMap();
args.put("user", source{"accountName"}.toUpperCase());
if (role.equals ("Receptores PR") || role.equals("Jefes_Personal")) {
  r = dispatcherService.invoke("select", "* from ITREPRT where IDUSER=:user", args);
  if (r.size() == 0) {
    dispatcherService.invoke("insert", "into ITREPRT(IDUSER,NOMECO) values (:user, 1)", args);
  } 
} else {
  dispatcherService.invoke("delete", "from ITREPRT where IDUSER=:user", args);
}
// TABLE MRGEUCT
cc = source{"attributes"}{"dominio"};
if ( source{"userType"} .equals ("T")) {
  cc = source{"userName"}.substring(1); 
}
while (cc != null && cc.startsWith("0")) cc = cc.substring(1);
System.out.println ("************** COST CENTER "+cc);
if (cc != null && ! cc.trim().isEmpty())
{
  args = new java.util.HashMap();
  args.put("user", source{"accountName"}.toUpperCase());
  args.put("cc", cc);
  r = dispatcherService.invoke("SELECT", "* from MRGEUCT where IDUSER=:user and MOARPR=:cc", args);
  if (r.size() == 0) {
    dispatcherService.invoke("INSERT", "into MRGEUCT(MOARPR,CENTRA, IDUSER, NOTIFI ) "+
                             "values ('II', :cc, :user, 'S')", args);
    dispatcherService.invoke("INSERT", "into MRGEUCT(MOARPR,CENTRA, IDUSER, NOTIFI ) "+
                             "values ('BM', :cc, :user, 'S')", args);
    dispatcherService.invoke("DELETE", "FROM MRGEUCT WHERE CENTRA!=:cc AND IDUSER=:user", args);
  } 
}
return true;
```

##### Snippet of invoke usage on a Active Directory I

```javascript
hashMap = new java.util.HashMap();
list = serviceLocator.getDispatcherService().invoke("AD soffid.pat", 
                                                    "select", 
                                                    "(&(objectClass=user))", 
                                                    hashMap);
out.println("** list.size -- " + list.size());
```

##### Snippet of invoke usage on a Active Directory II

```javascript
ACC = source{"accountName"};
la = dispatcherService.invoke("AD soffid.pat", "(&(objectClass=user)(sAMAccountName=userName))", new java.util.HashMap());
```

## Authoritative change object

A user objects are maps that hold the information belonging to a single user account

<table class="confluenceTable tablesorter tablesorter-default" id="bkmrk-attribute-type-descr-6" role="grid"><colgroup><col></col><col></col><col></col></colgroup><thead><tr class="tablesorter-headerRow" role="row" style="height: 29px;"><th aria-disabled="false" aria-label="Attribute: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" style="height: 29px; width: 141px;" tabindex="0"><div>**Attribute**</div></th><th aria-disabled="false" aria-label="Type: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" style="height: 29px; width: 183px;" tabindex="0"><div>**Type**</div></th><th aria-disabled="false" aria-label="Description: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" colspan="1" data-column="2" role="columnheader" scope="col" style="height: 29px; width: 485px;" tabindex="0"><div>**Description**</div></th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row" style="height: 29px;"><td class="confluenceTd" style="height: 29px; width: 141px;">id</td><td class="confluenceTd" style="height: 29px; width: 183px;">Long</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">user id</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">accountId</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">Long</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">account id</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">accountName</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">account name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">system</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">managed system (agent) name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">accountDescription</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">account description</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">active</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">Boolean</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">true if user is active</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">accountDisabled</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">Boolean</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">true if account is diabled</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">mailAlias</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">blank separated mails</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">userName</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">user name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">primaryGroup</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">user's primary group name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">comments</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">user's comments</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">createdOn</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">Date</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">user creation date</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">modifiedOn</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">Date</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">user last modification date</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">mailDomain</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">Date</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">user mail domain ( email right side of @)</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">fullName</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">user full name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">shortName</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">user mail name (email left side of @)</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">firstName</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">user first name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">lastName</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">user last name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">lastName2</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">user second last name (when applicable)</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">mailServer</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">mail server host name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">homeServer</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">home drive server host name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">profileServer</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">roaming profile server host name</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">phone</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">user's phone number</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">userType</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">user type</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">createdBy</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">user name creator of this user</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">modifiedBy</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">String</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">user name modifier of this user</td></tr><tr role="row" style="height: 57px;"><td class="confluenceTd" colspan="1" style="height: 57px; width: 141px;">secondaryGroups</td><td class="confluenceTd" colspan="1" style="height: 57px; width: 183px;">List&lt;Map&lt;String,Object&gt;&gt;</td><td class="confluenceTd" colspan="1" style="height: 57px; width: 485px;">list of [groups](https://confluence.soffid.com/display/SOF/group+object) the user belongs to, including primary group

The attributes of the inner map are described in the link

</td></tr><tr role="row" style="height: 57px;"><td class="confluenceTd" colspan="1" style="height: 57px; width: 141px;">secondariGroups2</td><td class="confluenceTd" colspan="1" style="height: 57px; width: 183px;">List&lt;Map&lt;String,Object&gt;&gt;</td><td class="confluenceTd" colspan="1" style="height: 57px; width: 485px;">list of user [memberships](https://confluence.soffid.com/display/SOF/membership+object), excluding primary group

The attributes of the inner map are described link

</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">attributes</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">Map&lt;String,String&gt;</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">additional user attributes</td></tr><tr role="row" style="height: 35px;"><td class="confluenceTd" colspan="1" style="height: 35px; width: 141px;">grantedRoles</td><td class="confluenceTd" colspan="1" style="height: 35px; width: 183px;">List&lt;Map&lt;String,Object&gt;&gt;</td><td class="confluenceTd" colspan="1" style="height: 35px; width: 485px;">list of [grants](https://confluence.soffid.com/display/SOF/grant+object) directly granted to the user</td></tr><tr role="row" style="height: 35px;"><td class="confluenceTd" colspan="1" style="height: 35px; width: 141px;">allGrantedRoles</td><td class="confluenceTd" colspan="1" style="height: 35px; width: 183px;">List&lt;Map&lt;String,Object&gt;&gt;</td><td class="confluenceTd" colspan="1" style="height: 35px; width: 485px;">list of [grants](https://confluence.soffid.com/display/SOF/grant+object) directly on indirectly granted to the user</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" colspan="1" style="height: 29px; width: 141px;">granted</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 183px;">List&lt;String&gt;</td><td class="confluenceTd" colspan="1" style="height: 29px; width: 485px;">list of role names and group names directly granted to the user</td></tr><tr role="row" style="height: 45px;"><td class="confluenceTd" colspan="1" style="height: 45px; width: 141px;">allGranted</td><td class="confluenceTd" colspan="1" style="height: 45px; width: 183px;">List&lt;String&gt;</td><td class="confluenceTd" colspan="1" style="height: 45px; width: 485px;">list of role names and group names directly or indirectly granted to the user</td></tr></tbody></table>