Bulk update that updates all the users with valid update field values and return a list of errors
Updating user attributes with no user level scope provided will replace all user attributes. If a user level scope is specified, only attributes with that scope will be replaced.
PUT /users
Operation id: UserService_UpdateUsers
Description
Permission Level: Read-Write
Tags: UserService
Security
- Authorization (apiKey)
- Bearer token
Responses
200 — A successful response.
Content type: application/json
default — An unexpected error response.
Content type: application/json
Request body
Required: Yes
application/json
Schema
| Property | Type | Required | Description |
|---|---|---|---|
tenantId | string | No | |
users | array | No |
{
"type": "object",
"properties": {
"tenantId": {
"type": "string"
},
"users": {
"type": "array",
"items": {
"type": "object",
"properties": {
"userId": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"email": {
"type": "string"
},
"location": {
"type": "string"
},
"site": {
"type": "string"
},
"departments": {
"type": "string"
},
"attributes": {
"type": "array",
"items": {
"type": "object"
}
},
"workspacesWrapper": {
"type": "object",
"properties": {
"workspaces": {
"type": "array",
"description": "Workspaces this user is assigned to. Required: false\nNote: The tenant_id of any item is ignored. The tenant_id from the enclosing request will be used.",
"items": {
"type": "object"
}
}
}
},
"scope": {
"type": "string"
},
"addresses": {
"type": "array",
"items": {
"type": "object"
}
},
"contactNumbers": {
"type": "array",
"items": {
"type": "object"
}
},
"isClient": {
"type": "boolean"
},
"defaultLocale": {
"type": "string"
},
"scopeOption": {
"type": "object",
"properties": {
"scopes": {
"type": "object"
},
"autoRemoveWorkspaces": {
"type": "boolean"
}
}
},
"notificationPreferences": {
"type": "array",
"description": "User notification preferences for different subsystems and scopes. If not present for a given subsystem/scope, it is assumed all notifications modes are enabled.",
"items": {
"type": "object"
}
},
"updateFieldMask": {
"type": "string"
},
"primarySite": {
"type": "string"
},
"selectedDepartments": {
"type": "array",
"items": {
"type": "string"
}
},
"claims": {
"type": "object"
},
"licenses": {
"type": "array",
"items": {
"type": "object"
}
},
"middleName": {
"type": "string"
},
"preferredName": {
"type": "string"
},
"siteMapping": {
"type": "array",
"items": {
"type": "object"
}
},
"role": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
}
}
}
Response models
200 — A successful response.
Content type: application/json
Schema
| Property | Type | Required | Description |
|---|---|---|---|
users | array | No |
{
"type": "object",
"properties": {
"users": {
"type": "array",
"items": {
"type": "object",
"properties": {
"userId": {
"type": "string"
},
"tenantId": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"email": {
"type": "string"
},
"location": {
"type": "string"
},
"site": {
"type": "string"
},
"departments": {
"type": "string"
},
"attributes": {
"type": "array",
"items": {
"type": "object"
}
},
"workspaces": {
"type": "array",
"items": {
"type": "object"
}
},
"userStatus": {
"type": "string"
},
"creationTime": {
"type": "string",
"format": "date-time"
},
"lastUpdated": {
"type": "string",
"format": "date-time"
},
"batchId": {
"type": "string"
},
"notificationPreferences": {
"type": "array",
"description": "User notification preferences for different subsystems and scopes. If not present for a given subsystem/scope, it is assumed all notifications modes are enabled.",
"items": {
"type": "object"
}
},
"contactNumber": {
"type": "string"
},
"uniqueUserId": {
"type": "string",
"description": "Randomly generated string at the time of creation. Should be used to reference a unique user by other services as user_id may contain PII."
},
"claims": {
"type": "object"
},
"enabledScopes": {
"type": "object",
"description": "Scopes and status (enable, disable) for a user. Scope is optional. Typically applications will always pass their scope, but it is optional for admin purposes."
},
"addresses": {
"type": "array",
"items": {
"type": "object"
}
},
"contactNumbers": {
"type": "array",
"items": {
"type": "object"
}
},
"roles": {
"type": "array",
"description": "The user's roles. Includes nested roles. Flat list. Read only.",
"items": {
"type": "object"
}
},
"defaultLocale": {
"type": "string"
},
"primarySite": {
"type": "string"
},
"selectedDepartments": {
"type": "array",
"items": {
"type": "string"
}
},
"licenses": {
"type": "array",
"items": {
"type": "object"
}
},
"middleName": {
"type": "string",
"description": "Middle name of the user."
},
"preferredName": {
"type": "string",
"description": "Preferred Name of the user."
},
"isClient": {
"type": "boolean"
},
"assignedRoles": {
"type": "array",
"items": {
"type": "object"
}
},
"inheritedRoles": {
"type": "array",
"items": {
"type": "object"
}
},
"siteMapping": {
"type": "array",
"items": {
"type": "object"
}
},
"primarySelectedDepartments": {
"type": "array",
"description": "The selected departments that the user is assigned to. This is to support UI for getting the details part of the graphQL query.\nIn V3, we can remove the existing selected_departments field and use this one instead.",
"items": {
"type": "object",
"description": "Protobuf created to represent a Department.\nUsing this name because UniqueDepartmentProto is already used for another use case."
}
},
"userStatusLastUpdated": {
"type": "string",
"format": "date-time"
}
}
}
}
}
}
default — An unexpected error response.
Content type: application/json
Schema
| Property | Type | Required | Description |
|---|---|---|---|
code | integer (int32) | No | |
message | string | No | |
details | array | No |
{
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"@type": {
"type": "string"
}
}
}
}
}
}