action exavault_update_user {
label: "Update a user"
description: "Updates the settings for the user. Note that the unique key for this API call is our internal ID, and _not_ the username, as the username can be changed.\n\nIn the request body, you should only send the parameters for values that you wish to change for the user.\n\n**Notes:**\n\n- You must have [admin or master](/docs/account/04-users/00-introduction#managing-user-roles-and-permissions) access to edit other users. If you have user-level access, you can only update your own user settings.\n- You cannot edit a master user with this method."
provider: exavault
method: PATCH
path: "/users/{id}"
encoding: json
input: {
type: "object"
properties: {
email: {
type: "string"
format: "email"
description: "Email address for the user"
}
"ev-access-token": {
type: "string"
}
"ev-api-key": {
type: "string"
}
expiration: {
type: "string"
description: "Optional timestamp when the user should expire."
}
homeResource: {
type: "string"
description: "Resource identifier for the user's home folder. See details on [how to specify resources](#section/Identifying-Resources) above.\n\nThe user will be locked to this directory and unable to move 'up' in the account. If the folder does not exist in the account, it will be created when the user logs in.\n\nThis setting is ignored for users with the `role` **admin**."
}
locked: {
type: "boolean"
description: "If true, the user will be prevented from logging in"
}
nickname: {
type: "string"
description: "An optional nickname (e.g. 'David from Sales')."
}
onboarding: {
type: "boolean"
description: "Set this to **true** to enable extra help popups in the web file manager for this user."
}
password: {
type: "string"
description: "New password for the user"
}
permissions: {
type: "object"
required: ["changePassword", "delete", "deleteFormData", "download", "list", "modify", "notification", "share", "upload", "viewFormData"]
properties: {
changePassword: {
type: "boolean"
description: "Change (own) password permission flag"
}
delete: {
type: "boolean"
description: "Delete permission flag"
}
deleteFormData: {
type: "boolean"
description: "Delete form data permission flag. If true, user can remove data that was submitted for a receive folder. This applies only to data submitted in the receive folder form, not the actual files uploaded."
}
download: {
type: "boolean"
description: "Download permission flag"
}
list: {
type: "boolean"
description: "View folder contents permission flag"
}
modify: {
type: "boolean"
description: "Modify permission flag"
}
notification: {
type: "boolean"
description: "Notifications permission flag"
}
share: {
type: "boolean"
description: "Sharing permission flag"
}
upload: {
type: "boolean"
description: "Upload permission flag"
}
viewFormData: {
type: "boolean"
description: "Access Form Data permission flag. If true, user can view submissions that have been stored for a receive folder. This includes any data submitted in the receive folder form."
}
}
}
role: {
type: "string"
description: "The type of user (**admin** or **user**). Note that admin users cannot have a `homeResource` other than '/', and will have full permissions, but you must provide at least \"download,upload,list,delete\" in the `permissions` parameter."
enum: ["user", "admin"]
}
timeZone: {
type: "string"
description: "Time zone, used for accurate time display within the application. See this page for allowed values.\n"
}
username: {
type: "string"
description: "New username for the user. This should follow standard username conventions - spaces are not allowed, etc. We do allow email addresses as usernames.\n\n**Note** Usernames must be unique across all ExaVault accounts."
}
}
required: ["ev-access-token", "ev-api-key"]
additionalProperties: false
}
output: {
type: "object"
description: "Response object for users."
properties: {
data: {
type: "object"
description: "Object contains user properties."
properties: {
attributes: {
type: "object"
description: "Attributes of the user including expiration, home directory, and permissions. "
required: ["accountName", "created", "homeResource", "modified", "nickname", "onboarding", "permissions", "role", "status", "timeZone", "username"]
properties: {
accessTimestamp: {
type: "string"
description: "Timestamp of most recent successful user login."
}
accountName: {
type: "string"
description: "Name of the account this user belongs to."
}
created: {
type: "string"
format: "date-time"
description: "Timestamp of user creation."
}
email: {
type: "string"
description: "Email address of the user."
}
expiration: {
type: "string"
description: "Timestamp of user expiration."
}
firstLogin: {
type: "boolean"
description: "`true` if the user has logged into the system."
}
homePath: {
type: "string"
description: "Path to the user's home folder."
}
locked: {
type: "boolean"
description: "`true` if the user is locked and cannot log in."
}
modified: {
type: "string"
format: "date-time"
description: "Timestamp of user modification."
}
nickname: {
type: "string"
description: "Nickname of the user."
}
onboarding: {
type: "boolean"
description: "Whether the onboarding help system is enabled for this user. `true` means that additional help popups are displayed in the web application for this user."
}
permissions: {
type: "object"
required: ["changePassword", "delete", "deleteFormData", "download", "list", "modify", "notification", "share", "upload", "viewFormData"]
properties: {
changePassword: {
type: "boolean"
description: "Change (own) password permission flag"
}
delete: {
type: "boolean"
description: "Delete permission flag"
}
deleteFormData: {
type: "boolean"
description: "Delete form data permission flag. If true, user can remove data that was submitted for a receive folder. This applies only to data submitted in the receive folder form, not the actual files uploaded."
}
download: {
type: "boolean"
description: "Download permission flag"
}
list: {
type: "boolean"
description: "View folder contents permission flag"
}
modify: {
type: "boolean"
description: "Modify permission flag"
}
notification: {
type: "boolean"
description: "Notifications permission flag"
}
share: {
type: "boolean"
description: "Sharing permission flag"
}
upload: {
type: "boolean"
description: "Upload permission flag"
}
viewFormData: {
type: "boolean"
description: "Access Form Data permission flag. If true, user can view submissions that have been stored for a receive folder. This includes any data submitted in the receive folder form."
}
}
}
role: {
type: "string"
description: "User's access level"
enum: ["user", "admin", "master"]
}
status: {
type: "integer"
format: "int32"
description: "Indicates user activity status. `0` means the user is locked and cannot log in. `1` means the user is active and can log in."
enum: [0, 1]
}
timeZone: {
type: "string"
description: "User's timezone. See this page for allowed values."
}
username: {
type: "string"
description: "Username of the user."
}
}
}
id: {
type: "integer"
format: "int32"
description: "ID of the user."
}
relationships: {
type: "object"
description: "Home resource and owner account relationship data for the user. "
required: ["ownerAccount"]
properties: {
homeResource: {
type: "object"
properties: {
data: {
type: "object"
properties: {
id: {
type: "integer"
format: "int64"
description: "ID of home directory resource."
}
type: {
type: "string"
description: "Type is resource."
enum: ["resource"]
}
}
}
}
}
ownerAccount: {
type: "object"
properties: {
data: {
type: "object"
properties: {
id: {
type: "integer"
format: "int32"
description: "ID of the account."
}
type: {
type: "string"
description: "Type is account."
enum: ["account"]
}
}
}
}
}
}
}
type: {
type: "string"
description: "Type of object being returned. Always \"user\""
}
}
}
included: {
type: "array"
items: {
type: "object"
}
}
responseStatus: {
type: "integer"
description: "Http code for the response."
}
}
}
}