Your suggested change has been received. Thank you.
Download OpenAPI specification:Download
The Correlation Layer API is currently the only entry-point to this version of Delegated User Management, which is API-only.
startDate and endDate are used for several API endpoints, for both the nodes themselves (i.e. organizations or roles) or for some of the relationships between these nodes. The dates, when specified, are respected by authorization policies.
Pagination is currently not supported. Once supported:
Delegated User Management endpoints support pagination by the means of pages and page sizes only, and doesn't return the total number of elements or total number of pages in the responses. Customers would need to have the logic in place to indicate the last page. The last page is typically found when:
An organization is a logical structure that regroups users and typically maps to a business entity. Organizations can be related to one another through a hierarchy of parents and children.
Create a new organization under a specified parent organization.
startDate | string <date-time> The startDate from which activity can be allowed in context of the organization, as controlled by authorization policies. |
endDate | string <date-time> The endDate from which activity is no longer allowed in context of this organization, as controlled by authorization policies. |
parentId required | string The ID of the parent organization for the organization to be added. If an organization is to have multiple parents, then the additional parents will need to be added separately with the Add parent to organization API. |
name required | string The name of the new organization. This name must be unique inside this tenant of Delegated User Management. |
description | string The description of the new organization. This description can be used as help or complementary information. |
externalId | string An external identifier which could be used in addition to the name, and to the organizationID to identify the organization. This external ID would typically be used to refer to the organization in other business systems. |
type | string This can be used to qualify the type of organization. Customers can choose what strings to enter, there are no pre-set type values. |
status | string Default: "ENABLED" Enum: "ENABLED" "DISABLED" This indicates whether the organization is enabled or disabled. In case it is disabled, users of the organization will not be granted authorization for any management action nor for any access to external applications. |
Array of objects (CustomAttribute) Custom attributes in the form of a list of keys and corresponding string values |
{- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "parentId": "string",
- "name": "string",
- "description": "string",
- "externalId": "string",
- "type": "group",
- "status": "ENABLED",
- "customAttributes": [
- {
- "key": "string",
- "value": "string"
}
]
}
{- "organizationId": "string",
- "parentOrganizationIds": [
- "string"
], - "name": "string",
- "description": "string",
- "externalId": "string",
- "type": "string",
- "status": "ENABLED",
- "customAttributes": [
- {
- "key": "string",
- "value": "string"
}
], - "startDate": "string",
- "endDate": "string"
}
List, search and filter organizations within a specified branch on the organization tree (which could be from Root). The function can be used to search organizations based on a partial or full match of a search string against the name or externalId attributes. It can also be used to provide a filtered list for specific values of type and status attributes. Finally, it can be used for providing a list of organizations without any search or filter criteria.
Notes:
pageSize | number Default: 10 The number of items to return per page. |
pageNumber | number Default: 1 The page number for a paginated response. |
searchTerm | string Example: searchTerm=test The string to try to match in the process of searching. The string is used for a case-insensitive and partial search. |
searchScope | string Example: searchScope=name,externalId Comma separated list of attributes to try to match to the search string provided via the searchTerm parameter. This could include for example name and/or externalId. |
organizationId | string The ID of the organization under which to search. This acts as a filter option. |
includeSubOrganizations | boolean Default: false Example: includeSubOrganizations=true Flag to indicate if the search should include all sub-organizations or just the direct sub-organizations |
type | string Example: type=group This can be used to qualify the type of organization. This acts as a filter option. |
status | string Enum: "ENABLED" "DISABLED" Example: status=DISABLED This indicates whether the organization is enabled or disabled. This acts as a filter option. |
{- "pageSize": 10,
- "pageNumber": 1,
- "content": [
- {
- "organizationId": "string",
- "parentOrganizationIds": [
- "string"
], - "name": "string",
- "description": "string",
- "externalId": "string",
- "type": "string",
- "status": "ENABLED",
- "customAttributes": [
- {
- "key": "string",
- "value": "string"
}
], - "startDate": "string",
- "endDate": "string"
}
]
}
Get the values of attributes of an organization, and also the position of the organization in the organization hierarchy (list of parent organizations).
organizationId required | string The ID of an organization. |
{- "organizationId": "string",
- "parentOrganizationIds": [
- "string"
], - "name": "string",
- "description": "string",
- "externalId": "string",
- "type": "string",
- "status": "ENABLED",
- "customAttributes": [
- {
- "key": "string",
- "value": "string"
}
], - "startDate": "string",
- "endDate": "string"
}
Change the values of any of the attributes of an organization.
organizationId required | string The ID of an organization. |
startDate | string <date-time> The startDate from which activity can be allowed in context of the organization, as controlled by authorization policies. |
endDate | string <date-time> The endDate from which activity is no longer allowed in context of this organization, as controlled by authorization policies. |
name | string The name of the organization. This name must be unique inside this tenant of Delegated User Management. |
description | string The description of the organization. This description can be used as help or complementary information. |
externalId | string An external identifier which could be used in addition to the name, and to the organizationID to identify the organization. This external ID would typically be used to refer to the organization in other business systems. |
type | string This can be used to qualify the type of organization. Customers can choose what strings to enter, there are no pre-set type values. |
status | string Enum: "ENABLED" "DISABLED" This indicates whether the organization is enabled or disabled. In case it is disabled, users of the organization will not be granted authorization for any DMv2 action nor for any access to external applications. |
Array of objects (CustomAttribute) Custom attributes in the form of a list of keys and corresponding string values |
{- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "name": "string",
- "description": "string",
- "externalId": "string",
- "type": "group",
- "status": "ENABLED",
- "customAttributes": [
- {
- "key": "string",
- "value": "string"
}
]
}
{- "organizationId": "string",
- "parentOrganizationIds": [
- "string"
], - "name": "string",
- "description": "string",
- "externalId": "string",
- "type": "string",
- "status": "ENABLED",
- "customAttributes": [
- {
- "key": "string",
- "value": "string"
}
], - "startDate": "string",
- "endDate": "string"
}
Remove an organization that contains no users and has no sub-organizations.
organizationId required | string The ID of an organization. |
forceRemove | boolean Force remove the organization, if it has no sub organizations. Remove the users that were only assigned to this organization. |
{- "message": "Client specified an invalid argument.",
- "status": "INVALID_ARGUMENT",
- "code": 400,
- "details": { }
}
Make application(s) available to an organization so that associated applications can be assigned to users in that organization.
organizationId required | string The ID of an organization. |
applicationIds required | Array of strings |
includeSubOrganizations | boolean |
{- "applicationIds": [
- "string"
], - "includeSubOrganizations": true
}
{ }
Remove application(s) from organization so that associated applications can no longer be assigned to users in that organization.
organizationId required | string The ID of an organization. |
applicationIds required | Array of strings |
{- "applicationIds": [
- "string"
]
}
{ }
Add a new parent organization to an organization. Therefore making it possible for an organization to have more than one parent.
organizationId required | string The ID of an organization. |
parentId required | string The ID of the parent organization for the organization to be added. Additional parents will need to be added separately with this API. |
{- "parentId": "string"
}
{- "content": [
- {
- "relationshipType": "contains",
- "to": {
- "id": "string",
- "type": "application",
- "startDate": "string",
- "endDate": "string"
}, - "from": {
- "id": "string",
- "type": "application",
- "startDate": "string",
- "endDate": "string"
}, - "properties": {
- "startDate": "string",
- "endDate": "string",
- "status": "string",
- "type": "string",
- "organizationid": "string",
- "authzStatus": "string"
}
}
]
}
Remove a parent organization from an organization. Since all organizations must always have at least one parent, this is only possible for organizations with multiple parents.
organizationId required | string The ID of an organization. |
parentId required | string The ID of the parent organization for the organization to be removed. Removal of other parents will need to be performed separately with this API. |
{- "parentId": "string"
}
{ }
Make permission(s) available to an organization, and optionally to all its sub-organizations, so that they can be assigned to users in the organization(s).
Notes:
The includeSubOrganizations flag is currently not supported, but would be offering convenience when assigning permissions to child organizations, allowing the assignment to be done to all sub-organizations at once. However, there is no inheritance functionality, and for child organizations that are created afterwards, permissions need to be assigned separately.
organizationId required | string The ID of an organization. |
permissionIds required | Array of strings |
includeSubOrganizations | boolean |
{- "permissionIds": [
- "string"
], - "includeSubOrganizations": true
}
{ }
Remove permission(s) from an organization so that they can no longer be assigned to users within that organization.
organizationId required | string The ID of an organization. |
permissionIds required | Array of strings |
{- "permissionIds": [
- "string"
]
}
{ }
Make role(s) available to an organization, and optionally to all its sub-organizations, so that they can be assigned to users in the organization(s).
Notes:
The includeSubOrganizations flag is currently not supported, but would be offering convenience when assigning roles to child organizations, allowing the assignment to be done to all sub-organizations at once. However, there is no inheritance functionality, and for child organizations that are created afterwards, roles need to be assigned separately.
organizationId required | string The ID of an organization. |
required | Array of objects (AddUpdateOrganizationRoles) This is a list of role IDs to add. |
includeSubOrganizations | boolean |
{- "roles": [
- {
- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "roleId": "string"
}
], - "includeSubOrganizations": true
}
{ }
Remove roles from an organization so that they can no longer be assigned to users within that organization.
organizationId required | string The ID of an organization. |
roleIds required | Array of strings The list of role ID's to be removed from the organization. |
{- "roleIds": [
- "string"
]
}
{- "message": "Client specified an invalid argument.",
- "status": "INVALID_ARGUMENT",
- "code": 400,
- "details": { }
}
Add one or more users to an organization. The user must already exist in the system and therefore have a userId.
Notes:
organizationId required | string The ID of an organization. |
required | Array of objects (AddOrganizationUser) A list of users you want to add to the organization. |
{- "users": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "relationshipType": "is_member_of",
- "userId": "string"
}
]
}
{ }
This is for updating the relationships of one or more users to an organization.
organizationId required | string The ID of an organization. |
required | Array of objects (UserAction) |
{- "userActions": [
- {
- "userId": "string",
- "relationships": [
- {
- "add": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "relationshipType": "is_member_of"
}
], - "remove": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "relationshipType": "is_member_of"
}
]
}
]
}
]
}
{ }
Remove one or more users from an organization. The user will continue to exist in the system and in any other organization that he/she was member of.
organizationId required | string The ID of an organization. |
userIds required | Array of strings Array of user ID's that need to be removed from the organization. |
{- "userIds": [
- "string"
]
}
{ }
A user can be a person whom access rights are controlled by DMv2, and can also be an administrator within DMv2.
Add a new user to the system and in a first organization. This is for adding a user that does not yet exist in the system
startDate | string <date-time> The startDate from which activity can be allowed in context of the user, as controlled by authorization policies. |
endDate | string <date-time> The endDate from which activity is no longer allowed in context of this user, as controlled by authorization policies. |
organizationId required | string Id of the organization that the user is member of. |
Array of objects (RelationshipType) User relationships to organization. | |
required | object User details. |
{- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "organizationId": "string",
- "relationships": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "relationshipType": "is_member_of"
}
], - "user": {
- "name": {
- "firstName": "string",
- "middleName": "string",
- "lastName": "string",
- "honorificPrefix": "string",
- "honorificSuffix": "string",
- "displayName": "string",
- "nickName": "string"
}, - "emails": [
- {
- "value": "string",
- "type": "string",
- "primary": true
}
], - "phoneNumbers": [
- {
- "value": "string",
- "type": "string",
- "primary": true
}
], - "addresses": [
- {
- "streetAddress": "string",
- "city": "string",
- "state": "string",
- "zipCode": "string",
- "countryCode": "string",
- "postalAddress": "string",
- "primary": true
}
], - "preferredLanguage": "string",
- "locale": "string",
- "status": "string",
- "password": "string",
- "gender": "string",
- "birthDate": "string",
- "userName": "string"
}
}
{- "organizationId": "string",
- "startDate": "string",
- "endDate": "string",
- "authzStatus": "string",
- "relationships": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "relationshipType": "is_member_of",
- "organizationId": "string"
}
], - "user": {
- "userId": "string",
- "name": {
- "firstName": "string",
- "middleName": "string",
- "lastName": "string",
- "honorificPrefix": "string",
- "honorificSuffix": "string",
- "displayName": "string",
- "nickName": "string"
}, - "emails": [
- {
- "value": "string",
- "type": "string",
- "primary": true
}
], - "phoneNumbers": [
- {
- "value": "string",
- "type": "string",
- "primary": true
}
], - "addresses": [
- {
- "streetAddress": "string",
- "city": "string",
- "state": "string",
- "zipCode": "string",
- "countryCode": "string",
- "postalAddress": "string",
- "primary": true
}
], - "preferredLanguage": "string",
- "locale": "string",
- "status": "string",
- "gender": "string",
- "birthDate": "string",
- "userName": "string"
}
}
List, search and filter users that are part of an organization, and optionally of all its sub-organizations. The function can be used to search users based on a partial or full match of a search string against any name, username and email addresses attributes. It can also be used to provide a filtered list based on directly assigned roles, directly assigned permissions, and on the value of the status attribute. Finally, it can be used for providing a list of all users without any search or filter criteria.
Notes:
pageSize | number Default: 10 The number of items to return per page. |
pageNumber | number Default: 1 The page number for a paginated response. |
searchTerm | string Example: searchTerm=test The string to try to match in the process of searching. The string is used for a case-insensitive and partial search. |
searchScope | string Example: searchScope=name,externalId Comma separated list of attributes to try to match to the search string provided via the searchTerm parameter. This could include for example name and/or externalId. |
organizationId | string The ID of the organization under which to search. This acts as a filter option. |
includeSubOrganizations | boolean Default: false Example: includeSubOrganizations=true Flag to indicate if the search should include all sub-organizations or just the direct sub-organizations |
roleIds | Array of strings This is a list of role IDs to filter on. |
permissionIds | Array of strings This is a list of permissions IDs to filter on. |
status | string Enum: "Created" "Invited" "Inactive" "Activated" "Blocked" "Withdrawn" The status of the role to filter on. |
{- "pageSize": 10,
- "pageNumber": 1,
- "content": [
- {
- "startDate": "string",
- "endDate": "string",
- "authzStatus": "string",
- "relationships": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "relationshipType": "is_member_of",
- "organizationId": "string"
}
], - "user": {
- "userId": "string",
- "name": {
- "firstName": "string",
- "middleName": "string",
- "lastName": "string",
- "honorificPrefix": "string",
- "honorificSuffix": "string",
- "displayName": "string",
- "nickName": "string"
}, - "emails": [
- {
- "value": "string",
- "type": "string",
- "primary": true
}
], - "phoneNumbers": [
- {
- "value": "string",
- "type": "string",
- "primary": true
}
], - "addresses": [
- {
- "streetAddress": "string",
- "city": "string",
- "state": "string",
- "zipCode": "string",
- "countryCode": "string",
- "postalAddress": "string",
- "primary": true
}
], - "preferredLanguage": "string",
- "locale": "string",
- "status": "string",
- "gender": "string",
- "birthDate": "string",
- "userName": "string"
}
}
]
}
Get the values of the attributes of a user, and its status.
userId required | string The ID of a user. |
{- "startDate": "string",
- "endDate": "string",
- "authzStatus": "string",
- "relationships": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "relationshipType": "is_member_of",
- "organizationId": "string"
}
], - "user": {
- "userId": "string",
- "name": {
- "firstName": "string",
- "middleName": "string",
- "lastName": "string",
- "honorificPrefix": "string",
- "honorificSuffix": "string",
- "displayName": "string",
- "nickName": "string"
}, - "emails": [
- {
- "value": "string",
- "type": "string",
- "primary": true
}
], - "phoneNumbers": [
- {
- "value": "string",
- "type": "string",
- "primary": true
}
], - "addresses": [
- {
- "streetAddress": "string",
- "city": "string",
- "state": "string",
- "zipCode": "string",
- "countryCode": "string",
- "postalAddress": "string",
- "primary": true
}
], - "preferredLanguage": "string",
- "locale": "string",
- "status": "string",
- "gender": "string",
- "birthDate": "string",
- "userName": "string"
}
}
Edit/change attributes of the user, except attributes that participate in authentication (email address, phone number) and which have their own APIs and procedures for changing.
userId required | string The ID of a user. |
startDate | string <date-time> The startDate from which activity can be allowed in context of the user, as controlled by authorization policies. |
endDate | string <date-time> The endDate from which activity is no longer allowed in context of this user, as controlled by authorization policies. |
required | object User details. |
{- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "user": {
- "name": {
- "firstName": "string",
- "middleName": "string",
- "lastName": "string",
- "honorificPrefix": "string",
- "honorificSuffix": "string",
- "displayName": "string",
- "nickName": "string"
}, - "phoneNumbers": [
- {
- "value": "string",
- "type": "string",
- "primary": true
}
], - "addresses": [
- {
- "streetAddress": "string",
- "city": "string",
- "state": "string",
- "zipCode": "string",
- "countryCode": "string",
- "postalAddress": "string",
- "primary": true
}
], - "preferredLanguage": "string",
- "locale": "string",
- "status": "string",
- "gender": "string",
- "birthDate": "string",
- "userName": "string",
- "emails": [
- {
- "value": "string",
- "type": "string",
- "primary": true
}
]
}
}
{- "startDate": "string",
- "endDate": "string",
- "authzStatus": "string",
- "relationships": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "relationshipType": "is_member_of",
- "organizationId": "string"
}
], - "user": {
- "userId": "string",
- "name": {
- "firstName": "string",
- "middleName": "string",
- "lastName": "string",
- "honorificPrefix": "string",
- "honorificSuffix": "string",
- "displayName": "string",
- "nickName": "string"
}, - "emails": [
- {
- "value": "string",
- "type": "string",
- "primary": true
}
], - "phoneNumbers": [
- {
- "value": "string",
- "type": "string",
- "primary": true
}
], - "addresses": [
- {
- "streetAddress": "string",
- "city": "string",
- "state": "string",
- "zipCode": "string",
- "countryCode": "string",
- "postalAddress": "string",
- "primary": true
}
], - "preferredLanguage": "string",
- "locale": "string",
- "status": "string",
- "gender": "string",
- "birthDate": "string",
- "userName": "string"
}
}
Remove the user from the system independently of whether the user is part of an organization or not. The user is not removed by default, but the status of the user will be changed to, for example, a grace status. A user can be immediately and permanently removed, by providing the permanent parameter set to true.
userId required | string The ID of a user. |
permanent | boolean Default: false Permanently delete user when set to true. |
{- "message": "Client specified an invalid argument.",
- "status": "INVALID_ARGUMENT",
- "code": 400,
- "details": { }
}
Assign role(s) to a user in context of one organization. For each role assignment a set of relationship types, and a period of validity can be set.
userId required | string The ID of a user. |
organizationId required | string The ID of the organization. |
Array of objects (UserOrganizationRole) |
{- "organizationId": "string",
- "roles": [
- {
- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "roleId": "string",
- "relationshipType": "is_assigned_to"
}
]
}
{ }
Get the list of roles directly assigned to the user in a specified organization, the relationship types, and period of validity applicable to each role. Roles that are nested within the directly assigned roles are not included in the list.
Notes:
userId required | string The ID of a user. |
organizationId required | string |
activeRoles | boolean When set to true, only returns any ENABLED directly assigned role, where the current time is within the specified time frames. |
{ }
userId required | string The ID of a user. |
organizations required | Array of objects (UpdateOrganizationRoles) |
{- "organizations": [
- { }
]
}
{ }
Remove/unassign role(s) from a user in context of one organization.
userId required | string The ID of a user. |
organizationId required | string |
roleIds required | Array of strings |
{- "organizationId": "string",
- "roleIds": [
- "string"
]
}
{ }
Get the list of organizations that the user is part of, and the relationship types applicable to each.
Notes:
userId required | string The ID of a user. |
pageSize | number Default: 10 The number of items to return per page. |
pageNumber | number Default: 1 The page number for a paginated response. |
relationshipType | string The relationshipType (e.g. is_member_of) to filter on. |
activeMemberships | boolean When set to true, only return any organization where both the user and organization are ENABLED, the current time is within the specified time frames of user and organization and where the relationships are within the specified time frame. |
{- "pageSize": 10,
- "pageNumber": 1,
- "content": [
- {
- "organizationId": "<organizationId>",
- "name": "string",
- "description": "string",
- "externalId": "string",
- "type": "string",
- "status": "ENABLED",
- "customAttributes": [
- {
- "key": "string",
- "value": "string"
}
], - "startDate": "string",
- "endDate": "string",
- "relationships": [
- {
- "relationshipType": "is_member_of",
- "startDate": "2024-04-05T09:05:50.248Z",
- "endDate": "2024-05-05T09:05:50.248Z"
}
]
}
]
}
Add/assign permission(s) to a user in context of one organization. For each permission assignment a set of relationship types, and a period of validity can be set.
Notes:
userId required | string The ID of a user. |
organizationId required | string The ID of the organization. |
required | Array of objects (UserOrganizationPermission) |
{- "organizationId": "string",
- "permissions": [
- {
- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "permissionId": "string",
- "relationshipType": "is_assigned_to"
}
]
}
{- "pageSize": 10,
- "pageNumber": 1,
- "content": [
- {
- "id": "string",
- "relationshipType": "string",
- "from": { },
- "to": { },
- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z"
}
]
}
Get the list of permissions directly assigned to the user in a specified organization, the relationship types, and period of validity applicable to each permission. Permissions that are nested within the directly assigned permissions are not included in the list.
Notes:
userId required | string The ID of a user. |
pageSize | number Default: 10 The number of items to return per page. |
pageNumber | number Default: 1 The page number for a paginated response. |
organizationId required | string The ID of the organization. |
activePermissions | boolean When set to true, only returns any ENABLED permission, either assigned directly or indirectly via an ENABLED role, where the current time is within the specified time frames. |
{- "pageSize": 10,
- "pageNumber": 1,
- "content": [
- {
- "permissionId": "<permissionId1>",
- "descriptor": "<descriptor>"
}
]
}
userId required | string The ID of a user. |
required | Array of objects (UpdateOrganizationPermissions) |
{- "organizations": [
- {
- "organizationId": "string",
- "permissions": [
- "string"
]
}
]
}
{ }
Remove/unassign permission(s) from a user in context of one organization.
userId required | string The ID of a user. |
organizationId required | string The organizationId for which you want to remove the associated permissions. |
permissionIds required | Array of strings A list of permissionIds that need to be removed. |
{- "organizationId": "string",
- "permissionIds": [
- "string"
]
}
{- "message": "Client specified an invalid argument.",
- "status": "INVALID_ARGUMENT",
- "code": 400,
- "details": { }
}
Block a user account when deemed compromised. The effect of blocking the users account is to deny authorization to access applications – on the other hand, it does not block authentication.
userId required | string The ID of a user. |
{- "userId": "string",
- "authzStatus": "BLOCKED"
}
A role defines the access rights of a user. This can be for a regular user in context of accessing an external application (role of type user role), or an admin user in the context of accessing the DMv2 administration functions (role of type admin).
Create a role and make it available to a first organization.
Notes:
startDate | string <date-time> The startDate from which the role can grant authorizations, as controlled by authorization policies. |
endDate | string <date-time> The endDate from which the role no longer grants authorizations, as controlled by authorization policies. |
name required | string The name of the role. This name must be unique inside this tenant of Delegated User Management. |
description | string The description of the new role. This description can be used can be used to explain the meaning and purpose of the role, as a help for administrators and users. |
permissionIds | Array of strings This is a list of already defined permissions that are included in this new role. |
organizationId | string The id of organization you want to link this role to. If not provided, the root organization id is used. |
externalId | string An external identifier which could be used in addition to the name, and to the roleID to uniquely identify the role. This external ID would typically be used to refer to the role in other business systems. |
type | string This can used to qualify the type of role. User and Admin are reserved, but otherwise customers can choose what strings to enter. There are no pre-set type values. |
Array of objects (CustomAttribute) Custom attributes in the form of a list of keys and corresponding string values | |
status | string Default: "ENABLED" Enum: "ENABLED" "DISABLED" This indicates whether the role is enabled or disabled. In case it is disabled, the role will not translate into any authorization. |
{- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "name": "string",
- "description": "string",
- "permissionIds": [
- "string"
], - "organizationId": "string",
- "externalId": "string",
- "type": "string",
- "customAttributes": [
- {
- "key": "string",
- "value": "string"
}
], - "status": "ENABLED"
}
{- "roleId": "string",
- "name": "string",
- "description": "string",
- "permissionIds": [
- "string"
], - "externalId": "string",
- "type": "string",
- "customAttributes": [
- {
- "key": "string",
- "value": "string"
}
], - "status": "ENABLED",
- "startDate": "string",
- "endDate": "string"
}
List, search and filter roles available in the system or for a specified organization. The function can be used to search roles based on a partial or full match of a search string against the name and/or externalId attribute. It can also be used to provide a filtered list based on contained permissionId's, based on related applicationId's, and/or for specific values of type and status attributes. Finally, it can be used for providing a list of available roles without any search or filter criteria.
Notes:
pageSize | number Default: 10 The number of items to return per page. |
pageNumber | number Default: 1 The page number for a paginated response. |
searchTerm | string Example: searchTerm=test The string to try to match in the process of searching. The string is used for a case-insensitive and partial search. |
searchScope | string Example: searchScope=name,externalId Comma separated list of attributes to try to match to the search string provided via the searchTerm parameter. This could include for example name and/or externalId. |
organizationId | string The ID of the organization under which to search. This acts as a filter option. |
includeSubOrganizations | boolean Default: false Example: includeSubOrganizations=true Flag to indicate if the search should include all sub-organizations or just the direct sub-organizations |
permissionIds | Array of strings This is a list of permissions IDs to filter on. |
applicationIds | Array of strings This is a list of application IDs to filter on. |
externalId | string An external identifier to filter on. |
type | string The type of the role to filter on. |
status | string Enum: "ENABLED" "DISABLED" The status of the role to filter on. |
{- "pageSize": 10,
- "pageNumber": 1,
- "content": [
- {
- "roleId": "string",
- "name": "string",
- "description": "string",
- "permissionIds": [
- "string"
], - "externalId": "string",
- "type": "string",
- "customAttributes": [
- {
- "key": "string",
- "value": "string"
}
], - "status": "ENABLED",
- "startDate": "string",
- "endDate": "string"
}
]
}
Retrieve the details of a role.
roleId required | string The ID of a role. |
{- "roleId": "string",
- "name": "string",
- "description": "string",
- "permissionIds": [
- "string"
], - "externalId": "string",
- "type": "string",
- "customAttributes": [
- {
- "key": "string",
- "value": "string"
}
], - "status": "ENABLED",
- "startDate": "string",
- "endDate": "string"
}
Change the content of a role.
Notes:
roleId required | string The ID of a role. |
startDate | string <date-time> The startDate from which the role can grant authorizations, as controlled by authorization policies. |
endDate | string <date-time> The endDate from which the role no longer grants authorizations, as controlled by authorization policies. |
name | string The name of the role. This name must be unique inside this tenant of Delegated User Management. |
description | string The description of the role. This description can be used can be used to explain the meaning and purpose of the role, as a help for administrators and users. |
externalId | string An external identifier which could be used in addition to the name, and to the roleID to uniquely identify the role. This external ID would typically be used to refer to the role in other business systems. |
Array of objects (CustomAttribute) Custom attributes in the form of a list of keys and corresponding string values | |
type | string This can be used to qualify the type of role. Customers can choose what strings to enter, there are no pre-set type values. |
status | string Enum: "ENABLED" "DISABLED" This indicates whether the role is enabled or disabled. In case it is disabled, the role will not translate into any authorization. |
{- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "name": "string",
- "description": "string",
- "externalId": "string",
- "customAttributes": [
- {
- "key": "string",
- "value": "string"
}
], - "type": "contract",
- "status": "ENABLED"
}
{- "roleId": "string",
- "name": "string",
- "description": "string",
- "permissionIds": [
- "string"
], - "externalId": "string",
- "type": "string",
- "customAttributes": [
- {
- "key": "string",
- "value": "string"
}
], - "status": "ENABLED",
- "startDate": "string",
- "endDate": "string"
}
Remove a role from the system.
roleId required | string The ID of a role. |
forceRemove | boolean Force remove the role even if it has is_assigned_to relationships with users. |
{- "message": "Client specified an invalid argument.",
- "status": "INVALID_ARGUMENT",
- "code": 400,
- "details": { }
}
Add permissions to a role.
roleId required | string The ID of a role. |
permissionIds | Array of strings |
{- "permissionIds": [
- "string"
]
}
{ }
Remove permissions from a role.
roleId required | string The ID of a role. |
permissionIds | Array of strings |
{- "permissionIds": [
- "string"
]
}
{ }
An application is a resource of which the access is controlled through DMv2 authorization rules. This can be an external application, or can be DMv2 itself which is also represented as an application.
Create an application.
startDate | string <date-time> The startDate from which activity can be allowed in context of the application, as controlled by authorization policies. |
endDate | string <date-time> The endDate from which activity is no longer allowed in context of this application, as controlled by authorization policies. |
name required | string The name of the new application. This name must be unique inside this tenant of Delegated User Management. |
description | string The description of the new application. This description can be used as help or complementary information. |
type | string This can used to qualify the type of application. Customers can choose what strings to enter, there are no pre-set type values. |
status | string Default: "ENABLED" Enum: "ENABLED" "DISABLED" This indicates whether the application is enabled or disabled. In case it is disabled, users will not be granted authorization for any access to this application. |
{- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "name": "string",
- "description": "string",
- "type": "string",
- "status": "ENABLED"
}
{- "applicationId": "string",
- "name": "string",
- "description": "string",
- "type": "string",
- "status": "ENABLED",
- "startDate": "string",
- "endDate": "string"
}
List, search and filter applications available in the system or for a specified organization.
Notes:
The function can be used to search applications based on a partial or full match of a search string against the name attribute. It can also be used to provide a filtered list based on specific values of type and status attributes. Finally, it can be used for providing a list of available applications without any search or filter criteria.
Notes:
pageSize | number Default: 10 The number of items to return per page. |
pageNumber | number Default: 1 The page number for a paginated response. |
searchTerm | string Example: searchTerm=test The string to try to match in the process of searching. The string is used for a case-insensitive and partial search. |
searchScope | string Example: searchScope=name,externalId Comma separated list of attributes to try to match to the search string provided via the searchTerm parameter. This could include for example name and/or externalId. |
organizationId | string The ID of the organization under which to search. This acts as a filter option. |
type | string Example: type=group This can be used to qualify the type of application. This acts as a filter option. |
status | string Enum: "ENABLED" "DISABLED" Example: status=DISABLED This indicates whether the application is enabled or disabled. This acts as a filter option. |
{- "pageSize": 10,
- "pageNumber": 1,
- "content": [
- {
- "applicationId": "string",
- "name": "string",
- "description": "string",
- "type": "string",
- "status": "ENABLED",
- "startDate": "string",
- "endDate": "string"
}
]
}
Retrieve the details of a application.
applicationId required | string The ID of an application. |
{- "applicationId": "string",
- "name": "string",
- "description": "string",
- "type": "string",
- "status": "ENABLED",
- "startDate": "string",
- "endDate": "string"
}
Change the attributes or content of a application.
applicationId required | string The ID of a application. |
startDate | string <date-time> The startDate from which activity can be allowed in context of the application, as controlled by authorization policies. |
endDate | string <date-time> The endDate from which activity is no longer allowed in context of this application, as controlled by authorization policies. |
name | string The name of the application. This name must be unique inside this tenant of Delegated User Management. |
description | string The description of the new application. This description can be used as help or complementary information. |
status | string Enum: "ENABLED" "DISABLED" This indicates whether the application is enabled or disabled. In case it is disabled, users will not be granted authorization for any access to this application. |
{- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "name": "string",
- "description": "string",
- "status": "ENABLED"
}
{- "applicationId": "string",
- "name": "string",
- "description": "string",
- "type": "string",
- "status": "ENABLED",
- "startDate": "string",
- "endDate": "string"
}
A permission is the base descriptor that defines a set of rights within an application. This can be for an external application, or for DMv2 itself. Roles are defined by the reference to the permissions that they contain.
Create a permission.
Notes:
This API only allows the creation of permissions for external applications. Permissions for the internal DMv2 application must be created through backend system configuration.
startDate | string <date-time> The startDate from which activity can be allowed in context of the permission, as controlled by authorization policies. |
endDate | string <date-time> The endDate from which activity is no longer allowed in context of this permission, as controlled by authorization policies. |
name required | string The name of the permission. This name must be unique inside this tenant of Delegated User Management. |
description | string The description of the new permission. This description can be used to explain the meaning and purpose of the permission, as a help for administrators and users. |
applicationId required | string The ID of the application to which this permission applies. |
descriptor required | string The content of the permission. This is a string that the application will be able to consume as part of an access token in order to determine what the user will be authorized to do inside the application. |
type | string This can used to qualify the type of permission. Customers can choose what strings to enter, there are no pre-set type values. |
status | string Default: "ENABLED" Enum: "ENABLED" "DISABLED" This indicates whether the permission is enabled or disabled. In case it is disabled, the permission will not translate into any authorization. |
{- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "name": "string",
- "description": "string",
- "applicationId": "string",
- "descriptor": "string",
- "type": "string",
- "status": "ENABLED"
}
{- "permissionId": "string",
- "name": "string",
- "description": "string",
- "applicationId": "string",
- "descriptor": "string",
- "type": "string",
- "status": "ENABLED",
- "startDate": "string",
- "endDate": "string"
}
List, search and filter permissions available in the system or for a specified organization. The function can be used to search permissions based on a partial or full match of a search string against the name attribute. It can also be used to provide a filtered list based on contained permissionId's, based on related applicationId's, and/or for specific values of type and status attributes. Finally, it can be used for providing a list of available permissions without any search or filter criteria.
Notes:
pageSize | number Default: 10 The number of items to return per page. |
pageNumber | number Default: 1 The page number for a paginated response. |
searchTerm | string Example: searchTerm=test The string to try to match in the process of searching. The string is used for a case-insensitive and partial search. |
searchScope | string Example: searchScope=name,externalId Comma separated list of attributes to try to match to the search string provided via the searchTerm parameter. This could include for example name and/or externalId. |
organizationId | string The ID of the organization under which to search. This acts as a filter option. |
includeSubOrganizations | boolean Default: false Example: includeSubOrganizations=true Flag to indicate if the search should include all sub-organizations or just the direct sub-organizations |
applicationIds | Array of strings This is a list of application IDs to filter on. |
permissionIds | Array of strings This is a list of permissions IDs to filter on. |
type | string The type of the permission to filter on. |
status | string Enum: "ENABLED" "DISABLED" The status of the role to filter on. |
{- "pageSize": 10,
- "pageNumber": 1,
- "content": [
- {
- "permissionId": "string",
- "name": "string",
- "description": "string",
- "applicationId": "string",
- "descriptor": "string",
- "type": "string",
- "status": "ENABLED",
- "startDate": "string",
- "endDate": "string"
}
]
}
Retrieve the details of a permission.
permissionId required | string The ID of a permission. |
{- "permissionId": "string",
- "name": "string",
- "description": "string",
- "applicationId": "string",
- "descriptor": "string",
- "type": "string",
- "status": "ENABLED",
- "startDate": "string",
- "endDate": "string"
}
Change the attributes or content of a permission.
permissionId required | string The ID of a permission. |
startDate | string <date-time> The startDate from which activity can be allowed in context of the permission, as controlled by authorization policies. |
endDate | string <date-time> The endDate from which activity is no longer allowed in context of this permission, as controlled by authorization policies. |
name | string The name of the permission. This name must be unique inside this tenant of Delegated User Management. |
description | string The description of the new permission. This description can be used to explain the meaning and purpose of the permission, as a help for administrators and users. |
descriptor | string The content of the permission. This is a string that the application will be able to consume as part of an access token in order to determine what the user will be authorized to do inside the application. |
status | string Enum: "ENABLED" "DISABLED" This indicates whether the permission is enabled or disabled. In case it is disabled, the permission will not translate into any authorization. |
type | string This can be used to qualify the type of permission. Customers can choose what strings to enter, there are no pre-set type values. |
{- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "name": "string",
- "description": "string",
- "descriptor": "string",
- "status": "ENABLED",
- "type": "standard"
}
{- "permissionId": "string",
- "name": "string",
- "description": "string",
- "applicationId": "string",
- "descriptor": "string",
- "type": "string",
- "status": "ENABLED",
- "startDate": "string",
- "endDate": "string"
}
Remove a permission from the system.
permissionId required | string The ID of a permission. |
forceRemove | boolean Force remove the permission even if it has is_assigned_to relationships with users or when the permission is still referred to by one or more roles. |
{- "message": "Client specified an invalid argument.",
- "status": "INVALID_ARGUMENT",
- "code": 400,
- "details": { }
}
An invitation will invite a user into one or more organizations. The user that's invited could already exist in the system or in a different organization or not exist at all.
Invite a new user into an organization. The invitation could relate to a user that already exists in the system or in a different organization, or a user that doesn't exist yet.
Notes:
email required | string The email address of the invited user. |
firstName | string The first name of the invited user. |
lastName | string The last name of the invited user. |
phoneNumber | string The phone number of the invited user. |
customAttribute | string Optional custom string attribute of which there can be multiple. |
expirationDate | string <date-time> The date when the invitation expires. If not provided, the expiry date will be set 24 hours in the future. |
invitor | string The userId of the user who requests the invitation. |
required | object (InvitationOrganizationRelationship) |
Array of objects (InvitationRoleRelationship) | |
Array of objects (InvitationPermissionRelationship) |
{- "email": "string",
- "firstName": "string",
- "lastName": "string",
- "phoneNumber": "string",
- "customAttribute": "string",
- "expirationDate": "2019-08-24T14:15:22Z",
- "invitor": "string",
- "organization": {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "organizationId": "string",
- "relationshipType": "is_member_of"
}, - "roles": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "roleId": "string",
- "relationshipType": "is_assigned_to"
}
], - "permissions": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "permissionId": "string",
- "relationshipType": "is_assigned_to"
}
]
}
{- "invitationId": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string",
- "phoneNumber": "string",
- "customAttribute": "string",
- "expirationDate": "2019-08-24T14:15:22Z",
- "invitor": "string",
- "organization": {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "organizationId": "string",
- "relationshipType": "is_member_of"
}, - "roles": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "roleId": "string",
- "relationshipType": "is_assigned_to"
}
], - "permissions": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "permissionId": "string",
- "relationshipType": "is_assigned_to"
}
], - "invitationStatus": "PENDING",
- "acceptedBy": "string",
- "acceptedDate": "2019-08-24T14:15:22Z",
- "revokedBy": "string",
- "revokedDate": "2019-08-24T14:15:22Z",
- "requestToken": "string",
- "processToken": "string"
}
List, search and filter invitations.
Notes:
pageSize | number Default: 10 The number of items to return per page. |
pageNumber | number Default: 1 The page number for a paginated response. |
searchTerm | string Example: searchTerm=test The string to try to match in the process of searching. The string is used for a case-insensitive and partial search. |
searchScope | string Example: searchScope=name,externalId Comma separated list of attributes to try to match to the search string provided via the searchTerm parameter. This could include for example name and/or externalId. |
organizationId | string |
userId | string |
{- "pageSize": 10,
- "pageNumber": 1,
- "content": [
- {
- "invitationId": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string",
- "phoneNumber": "string",
- "customAttribute": "string",
- "expirationDate": "2019-08-24T14:15:22Z",
- "invitor": "string",
- "organization": {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "organizationId": "string",
- "relationshipType": "is_member_of"
}, - "roles": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "roleId": "string",
- "relationshipType": "is_assigned_to"
}
], - "permissions": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "permissionId": "string",
- "relationshipType": "is_assigned_to"
}
], - "invitationStatus": "PENDING",
- "acceptedBy": "string",
- "acceptedDate": "2019-08-24T14:15:22Z",
- "revokedBy": "string",
- "revokedDate": "2019-08-24T14:15:22Z"
}
]
}
Retrieve data about an invitation.
invitationId required | string The ID of an invitation. |
{- "invitationId": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string",
- "phoneNumber": "string",
- "customAttribute": "string",
- "expirationDate": "2019-08-24T14:15:22Z",
- "invitor": "string",
- "organization": {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "organizationId": "string",
- "relationshipType": "is_member_of"
}, - "roles": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "roleId": "string",
- "relationshipType": "is_assigned_to"
}
], - "permissions": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "permissionId": "string",
- "relationshipType": "is_assigned_to"
}
], - "invitationStatus": "PENDING",
- "acceptedBy": "string",
- "acceptedDate": "2019-08-24T14:15:22Z",
- "revokedBy": "string",
- "revokedDate": "2019-08-24T14:15:22Z"
}
Remove an invitation.
invitationId required | string The ID of an invitation. |
{- "message": "Client specified an invalid argument.",
- "status": "INVALID_ARGUMENT",
- "code": 400,
- "details": { }
}
To allow user to accept an invitation.
invitationId required | string The ID of an invitation. |
requestToken required | string The request token that is associated with the invitation. |
userId required | string The ID of the user. *userId is required when this endpoint is called with an M2M access token and optional when called with a user access token. |
{- "requestToken": "string",
- "userId": "string"
}
{- "invitationId": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string",
- "phoneNumber": "string",
- "customAttribute": "string",
- "expirationDate": "2019-08-24T14:15:22Z",
- "invitor": "string",
- "organization": {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "organizationId": "string",
- "relationshipType": "is_member_of"
}, - "roles": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "roleId": "string",
- "relationshipType": "is_assigned_to"
}
], - "permissions": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "permissionId": "string",
- "relationshipType": "is_assigned_to"
}
], - "invitationStatus": "PENDING",
- "acceptedBy": "string",
- "acceptedDate": "2019-08-24T14:15:22Z",
- "revokedBy": "string",
- "revokedDate": "2019-08-24T14:15:22Z"
}
To allow user to withdraw an invitation.
invitationId required | string The ID of an invitation. |
userId required | string The ID of the user. |
{- "userId": "string"
}
{- "invitationId": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string",
- "phoneNumber": "string",
- "customAttribute": "string",
- "expirationDate": "2019-08-24T14:15:22Z",
- "invitor": "string",
- "organization": {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "organizationId": "string",
- "relationshipType": "is_member_of"
}, - "roles": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "roleId": "string",
- "relationshipType": "is_assigned_to"
}
], - "permissions": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "permissionId": "string",
- "relationshipType": "is_assigned_to"
}
], - "invitationStatus": "PENDING",
- "acceptedBy": "string",
- "acceptedDate": "2019-08-24T14:15:22Z",
- "revokedBy": "string",
- "revokedDate": "2019-08-24T14:15:22Z"
}
Trigger the resending of an existing invitation.
invitationId required | string The ID of an invitation. |
expirationDate | string <date-time> The date when the invitation expires. If not provided, the expiry date will be set 24 hours in the future. |
{- "expirationDate": "2019-08-24T14:15:22Z"
}
{- "invitationId": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string",
- "phoneNumber": "string",
- "customAttribute": "string",
- "expirationDate": "2019-08-24T14:15:22Z",
- "invitor": "string",
- "organization": {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "organizationId": "string",
- "relationshipType": "is_member_of"
}, - "roles": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "roleId": "string",
- "relationshipType": "is_assigned_to"
}
], - "permissions": [
- {
- "startDate": "2024-06-25T00:00:00.000Z",
- "endDate": "2024-08-25T00:00:00.000Z",
- "permissionId": "string",
- "relationshipType": "is_assigned_to"
}
], - "invitationStatus": "PENDING",
- "acceptedBy": "string",
- "acceptedDate": "2019-08-24T14:15:22Z",
- "revokedBy": "string",
- "revokedDate": "2019-08-24T14:15:22Z",
- "requestToken": "string",
- "processToken": "string"
}