Patch a specified Role​
This API updates an existing Role using JSON Patch syntax.
The following fields are patchable: name, description, enabled, owner, accessProfiles, membership, requestable, accessRequestConfig, revokeRequestConfig, segments A token with API, ORG_ADMIN, ROLE_ADMIN, or ROLE_SUBADMIN authority is required to call this API. In addition, a token with ROLE_SUBADMIN authority may only call this API if all Access Profiles included in the Role are associated to Sources with management workgroups of which the ROLE_SUBADMIN is a member. The maximum supported length for the description field is 2000 characters. Longer descriptions will be preserved for existing roles, however, any new roles as well as any updates to existing descriptions will be limited to 2000 characters.
Path Parameters
- id string required
ID of the Role to patch
- application/json-patch+json
Request Body array required
- op string required
Possible values: [
add
,remove
,replace
,move
,copy
,test
]The operation to be performed
- path string required
A string JSON Pointer representing the target path to an element to be affected by the operation
value object
The value to be used for the operation, required for "add" and "replace" operations
anyOf- MOD1
- MOD2
- MOD4
stringintegeranyOf- MOD1
- MOD2
stringinteger
- 200
- 400
- 401
- 403
- 429
- 500
Responds with the Role as updated.
- application/json
- Schema
- Example (from schema)
Schema
- id string
The id of the Role. This field must be left null when creating an Role, otherwise a 400 Bad Request error will result.
- name string
Possible values:
<= 128 characters
The human-readable display name of the Role
- created date-time
Date the Role was created
- modified date-time
Date the Role was last modified.
- description string
A human-readable description of the Role
owner object
The owner of this object.
type stringPossible values: [
ACCOUNT_CORRELATION_CONFIG
,ACCESS_PROFILE
,ACCESS_REQUEST_APPROVAL
,ACCOUNT
,APPLICATION
,CAMPAIGN
,CAMPAIGN_FILTER
,CERTIFICATION
,CLUSTER
,CONNECTOR_SCHEMA
,ENTITLEMENT
,GOVERNANCE_GROUP
,IDENTITY
,IDENTITY_PROFILE
,IDENTITY_REQUEST
,LIFECYCLE_STATE
,PASSWORD_POLICY
,ROLE
,RULE
,SOD_POLICY
,SOURCE
,TAG_CATEGORY
,TASK_RESULT
,REPORT_RESULT
,SOD_VIOLATION
,ACCOUNT_ACTIVITY
]Owner type. This field must be either left null or set to 'IDENTITY' on input, otherwise a 400 Bad Request error will result.
id stringIdentity id
name stringHuman-readable display name of the owner. It may be left null or omitted in a POST or PATCH. If set, it must match the current value of the owner's display name, otherwise a 400 Bad Request error will result.
accessProfiles object[]
id stringID of the Access Profile
type stringPossible values: [
ACCESS_PROFILE
]Type of requested object. This field must be either left null or set to 'ACCESS_PROFILE' when creating an Access Profile, otherwise a 400 Bad Request error will result.
name stringHuman-readable display name of the Access Profile. This field is ignored on input.
membership object
When present, specifies that the Role is to be granted to Identities which either satisfy specific criteria or which are members of a given list of Identities.
type stringPossible values: [
STANDARD
,IDENTITY_LIST
]This enum characterizes the type of a Role's membership selector. Only the following two are fully supported:
STANDARD: Indicates that Role membership is defined in terms of a criteria expression
IDENTITY_LIST: Indicates that Role membership is conferred on the specific identities listed
criteria object
Defines STANDARD type Role membership
operation stringPossible values: [
EQUALS
,NOT_EQUALS
,CONTAINS
,STARTS_WITH
,ENDS_WITH
,AND
,OR
]An operation
key object
Refers to a specific Identity attribute, Account attibute, or Entitlement used in Role membership criteria
type stringPossible values: [
IDENTITY
,ACCOUNT
,ENTITLEMENT
]Indicates whether the associated criteria represents an expression on identity attributes, account attributes, or entitlements, respectively.
property stringThe name of the attribute or entitlement to which the associated criteria applies.
sourceId stringID of the Source from which an account attribute or entitlement is drawn. Required if type is ACCOUNT or ENTITLEMENT
stringValue stringString value to test the Identity attribute, Account attribute, or Entitlement specified in the key w/r/t the specified operation. If this criteria is a leaf node, that is, if the operation is one of EQUALS, NOT_EQUALS, CONTAINS, STARTS_WITH, or ENDS_WITH, this field is required. Otherwise, specifying it is an error.
children object[]
Array of child criteria. Required if the operation is AND or OR, otherwise it must be left null. A maximum of three levels of criteria are supported, including leaf nodes. Additionally, AND nodes can only be children or OR nodes and vice-versa.
operation stringPossible values: [
EQUALS
,NOT_EQUALS
,CONTAINS
,STARTS_WITH
,ENDS_WITH
,AND
,OR
]An operation
key object
Refers to a specific Identity attribute, Account attibute, or Entitlement used in Role membership criteria
type stringPossible values: [
IDENTITY
,ACCOUNT
,ENTITLEMENT
]Indicates whether the associated criteria represents an expression on identity attributes, account attributes, or entitlements, respectively.
property stringThe name of the attribute or entitlement to which the associated criteria applies.
sourceId stringID of the Source from which an account attribute or entitlement is drawn. Required if type is ACCOUNT or ENTITLEMENT
stringValue stringString value to test the Identity attribute, Account attribute, or Entitlement specified in the key w/r/t the specified operation. If this criteria is a leaf node, that is, if the operation is one of EQUALS, NOT_EQUALS, CONTAINS, STARTS_WITH, or ENDS_WITH, this field is required. Otherwise, specifying it is an error.
children object[]
Array of child criteria. Required if the operation is AND or OR, otherwise it must be left null. A maximum of three levels of criteria are supported, including leaf nodes. Additionally, AND nodes can only be children or OR nodes and vice-versa.
operation stringPossible values: [
EQUALS
,NOT_EQUALS
,CONTAINS
,STARTS_WITH
,ENDS_WITH
,AND
,OR
]An operation
key object
Refers to a specific Identity attribute, Account attibute, or Entitlement used in Role membership criteria
type stringPossible values: [
IDENTITY
,ACCOUNT
,ENTITLEMENT
]Indicates whether the associated criteria represents an expression on identity attributes, account attributes, or entitlements, respectively.
property stringThe name of the attribute or entitlement to which the associated criteria applies.
sourceId stringID of the Source from which an account attribute or entitlement is drawn. Required if type is ACCOUNT or ENTITLEMENT
stringValue stringString value to test the Identity attribute, Account attribute, or Entitlement specified in the key w/r/t the specified operation. If this criteria is a leaf node, that is, if the operation is one of EQUALS, NOT_EQUALS, CONTAINS, STARTS_WITH, or ENDS_WITH, this field is required. Otherwise, specifying it is an error.
identities object[]
Defines role membership as being exclusive to the specified Identities, when type is IDENTITY_LIST.
type stringPossible values: [
ACCOUNT_CORRELATION_CONFIG
,ACCESS_PROFILE
,ACCESS_REQUEST_APPROVAL
,ACCOUNT
,APPLICATION
,CAMPAIGN
,CAMPAIGN_FILTER
,CERTIFICATION
,CLUSTER
,CONNECTOR_SCHEMA
,ENTITLEMENT
,GOVERNANCE_GROUP
,IDENTITY
,IDENTITY_PROFILE
,IDENTITY_REQUEST
,LIFECYCLE_STATE
,PASSWORD_POLICY
,ROLE
,RULE
,SOD_POLICY
,SOURCE
,TAG_CATEGORY
,TASK_RESULT
,REPORT_RESULT
,SOD_VIOLATION
,ACCOUNT_ACTIVITY
]An enumeration of the types of DTOs supported within the IdentityNow infrastructure.
id stringIdentity id
name stringHuman-readable display name of the Identity.
aliasName stringUser name of the Identity
legacyMembershipInfo object
This field is not directly modifiable and is generally expected to be null. In very rare instances, some Roles may have been created using membership selection criteria that are no longer fully supported. While these Roles will still work, they should be migrated to STANDARD or IDENTITY_LIST selection criteria. This field exists for informational purposes as an aid to such migration.
- enabled boolean
Default value:
false
Whether the Role is enabled or not.
- requestable boolean
Default value:
false
Whether the Role can be the target of access requests.
accessRequestConfig object
Access request configuration for this object
commentsRequired booleanDefault value:
false
Whether the requester of the containing object must provide comments justifying the request
denialCommentsRequired booleanDefault value:
false
Whether an approver must provide comments when denying the request
approvalSchemes object[]
List describing the steps in approving the request
approverType stringPossible values: [
OWNER
,MANAGER
,GOVERNANCE_GROUP
]Describes the individual or group that is responsible for an approval step. Values are as follows.
OWNER: Owner of the associated Role
MANAGER: Manager of the Identity making the request
GOVERNANCE_GROUP: A Governance Group, the ID of which is specified by the approverId field
approverId stringId of the specific approver, used only when approverType is GOVERNANCE_GROUP
revocationRequestConfig object
Revocation request configuration for this object.
commentsRequired booleanDefault value:
false
Whether the requester of the containing object must provide comments justifying the request
denialCommentsRequired booleanDefault value:
false
Whether an approver must provide comments when denying the request
approvalSchemes object[]
List describing the steps in approving the revocation request
approverType stringPossible values: [
APP_OWNER
,OWNER
,SOURCE_OWNER
,MANAGER
,GOVERNANCE_GROUP
]Describes the individual or group that is responsible for an approval step. Values are as follows. APP_OWNER: The owner of the Application
OWNER: Owner of the associated Access Profile or Role
SOURCE_OWNER: Owner of the Source associated with an Access Profile
MANAGER: Manager of the Identity making the request
GOVERNANCE_GROUP: A Governance Group, the ID of which is specified by the approverId field
approverId stringId of the specific approver, used only when approverType is GOVERNANCE_GROUP
- segments string[]
List of IDs of segments, if any, to which this Role is assigned.
{
"id": "2c918086749d78830174a1a40e121518",
"name": "Role 2567",
"created": "2021-03-01T22:32:58.104Z",
"modified": "2021-03-02T20:22:28.104Z",
"description": "Urna amet cursus pellentesque nisl orci maximus lorem nisl euismod fusce morbi placerat adipiscing maecenas nisi tristique et metus et lacus sed morbi nunc nisl maximus magna arcu varius sollicitudin elementum enim maecenas nisi id ipsum tempus fusce diam ipsum tortor.",
"owner": {
"type": "IDENTITY",
"id": "2c9180a46faadee4016fb4e018c20639",
"name": "support"
},
"accessProfiles": [
{
"id": "ff808081751e6e129f1518161919ecca",
"type": "ACCESS_PROFILE",
"name": "Access Profile 2567"
}
],
"membership": {
"type": "IDENTITY_LIST",
"criteria": {
"operation": "EQUALS",
"key": {
"type": "ACCOUNT",
"property": "attribute.email",
"sourceId": "2c9180867427f3a301745aec18211519"
},
"stringValue": "[email protected]",
"children": [
{
"operation": "EQUALS",
"key": {
"type": "ACCOUNT",
"property": "attribute.email",
"sourceId": "2c9180867427f3a301745aec18211519"
},
"stringValue": "[email protected]",
"children": [
{
"operation": "EQUALS",
"key": {
"type": "ACCOUNT",
"property": "attribute.email",
"sourceId": "2c9180867427f3a301745aec18211519"
},
"stringValue": "[email protected]"
}
]
}
]
},
"identities": [
{
"type": "IDENTITY",
"id": "2c9180a46faadee4016fb4e018c20639",
"name": "Thomas Edison",
"aliasName": "t.edison"
}
]
},
"legacyMembershipInfo": {
"type": "IDENTITY_LIST"
},
"enabled": true,
"requestable": true,
"accessRequestConfig": {
"commentsRequired": true,
"denialCommentsRequired": true,
"approvalSchemes": [
{
"approverType": "GOVERNANCE_GROUP",
"approverId": "46c79819-a69f-49a2-becb-12c971ae66c6"
}
]
},
"revocationRequestConfig": {
"commentsRequired": false,
"denialCommentsRequired": false,
"approvalSchemes": [
{
"approverType": "GOVERNANCE_GROUP",
"approverId": "46c79819-a69f-49a2-becb-12c971ae66c6"
}
]
},
"segments": [
"f7b1b8a3-5fed-4fd4-ad29-82014e137e19",
"29cb6c06-1da8-43ea-8be4-b3125f248f2a"
]
}
Client Error - Returned if the request body is invalid.
- application/json
- Schema
- Example (from schema)
Schema
- detailCode string
Fine-grained error code providing more detail of the error.
- trackingId string
Unique tracking id for the error.
messages object[]
Generic localized reason for error
locale stringThe locale for the message text, a BCP 47 language tag.
localeOrigin stringPossible values: [
DEFAULT
,REQUEST
]An indicator of how the locale was selected. DEFAULT means the locale is the system default. REQUEST means the locale was selected from the request context (i.e., best match based on the Accept-Language header). Additional values may be added in the future without notice.
text stringActual text of the error message in the indicated locale.
causes object[]
Plain-text descriptive reasons to provide additional detail to the text provided in the messages field
locale stringThe locale for the message text, a BCP 47 language tag.
localeOrigin stringPossible values: [
DEFAULT
,REQUEST
]An indicator of how the locale was selected. DEFAULT means the locale is the system default. REQUEST means the locale was selected from the request context (i.e., best match based on the Accept-Language header). Additional values may be added in the future without notice.
text stringActual text of the error message in the indicated locale.
{
"detailCode": "400.1 Bad Request Content",
"trackingId": "e7eab60924f64aa284175b9fa3309599",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
],
"causes": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
]
}
Unauthorized - Returned if there is no authorization header, or if the JWT token is expired.
- application/json
- Schema
- Example (from schema)
Schema
- error
A message describing the error
{
"error": "JWT validation failed: JWT is expired"
}
Forbidden - Returned if the user you are running as, doesn't have access to this end-point.
- application/json
- Schema
- Example (from schema)
- 403
Schema
- detailCode string
Fine-grained error code providing more detail of the error.
- trackingId string
Unique tracking id for the error.
messages object[]
Generic localized reason for error
locale stringThe locale for the message text, a BCP 47 language tag.
localeOrigin stringPossible values: [
DEFAULT
,REQUEST
]An indicator of how the locale was selected. DEFAULT means the locale is the system default. REQUEST means the locale was selected from the request context (i.e., best match based on the Accept-Language header). Additional values may be added in the future without notice.
text stringActual text of the error message in the indicated locale.
causes object[]
Plain-text descriptive reasons to provide additional detail to the text provided in the messages field
locale stringThe locale for the message text, a BCP 47 language tag.
localeOrigin stringPossible values: [
DEFAULT
,REQUEST
]An indicator of how the locale was selected. DEFAULT means the locale is the system default. REQUEST means the locale was selected from the request context (i.e., best match based on the Accept-Language header). Additional values may be added in the future without notice.
text stringActual text of the error message in the indicated locale.
{
"detailCode": "400.1 Bad Request Content",
"trackingId": "e7eab60924f64aa284175b9fa3309599",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
],
"causes": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
]
}
An example of a 403 response object
{
"detailCode": "403 Forbidden",
"trackingId": "b21b1f7ce4da4d639f2c62a57171b427",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The server understood the request but refuses to authorize it."
}
]
}
Too Many Requests - Returned in response to too many requests in a given period of time - rate limited. The Retry-After header in the response includes how long to wait before trying again.
- application/json
- Schema
- Example (from schema)
Schema
- message
A message describing the error
{
"message": " Rate Limit Exceeded "
}
Internal Server Error - Returned if there is an unexpected error.
- application/json
- Schema
- Example (from schema)
- 500
Schema
- detailCode string
Fine-grained error code providing more detail of the error.
- trackingId string
Unique tracking id for the error.
messages object[]
Generic localized reason for error
locale stringThe locale for the message text, a BCP 47 language tag.
localeOrigin stringPossible values: [
DEFAULT
,REQUEST
]An indicator of how the locale was selected. DEFAULT means the locale is the system default. REQUEST means the locale was selected from the request context (i.e., best match based on the Accept-Language header). Additional values may be added in the future without notice.
text stringActual text of the error message in the indicated locale.
causes object[]
Plain-text descriptive reasons to provide additional detail to the text provided in the messages field
locale stringThe locale for the message text, a BCP 47 language tag.
localeOrigin stringPossible values: [
DEFAULT
,REQUEST
]An indicator of how the locale was selected. DEFAULT means the locale is the system default. REQUEST means the locale was selected from the request context (i.e., best match based on the Accept-Language header). Additional values may be added in the future without notice.
text stringActual text of the error message in the indicated locale.
{
"detailCode": "400.1 Bad Request Content",
"trackingId": "e7eab60924f64aa284175b9fa3309599",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
],
"causes": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "The request was syntactically correct but its content is semantically invalid."
}
]
}
An example of a 500 response object
{
"detailCode": "500.0 Internal Fault",
"trackingId": "b21b1f7ce4da4d639f2c62a57171b427",
"messages": [
{
"locale": "en-US",
"localeOrigin": "DEFAULT",
"text": "An internal fault occurred."
}
]
}