Box

Cloud content management and file sharing

developer.box.com ↗
Version
2.0.0
OpenAPI
3.0.2
Endpoints
263
Schemas
301
Updated
3 days ago
Storage storage files enterprise
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.box.com/2.0

Authentication

oauth2

Endpoints

Authorization 4 endpoints

GET /authorize

Authorize a user by sending them through the [Box](https://box.com) website and request their permission to act on their behalf. This is the first step when authenticating a user using OAuth 2.0. To request a user's authorization to use the Box APIs on their behalf you will need to send a user to the URL with this format.

operationId: get_authorize

Parameters

Name In Required Type Description
response_type query required string The type of response we'd like to receive.
client_id query required string The Client ID of the application that is requesting to authenticate the user. To get the Client ID for your application, log in to your Box developer console and click the **Edit Application** link for the application you're working with. In the OAuth 2.0 Parameters section of the configuration page, find the item labelled `client_id`. The text of that item is your application's Client ID.
redirect_uri query optional string The URI to which Box redirects the browser after the user has granted or denied the application permission. This URI match one of the redirect URIs in the configuration of your application. It must be a valid HTTPS URI and it needs to be able to handle the redirection to complete the next step in the OAuth 2.0 flow. Although this parameter is optional, it must be a part of the authorization URL if you configured multiple redirect URIs for the application in the developer console. A missing parameter causes a `redirect_uri_missing` error after the user grants application access.
state query optional string A custom string of your choice. Box will pass the same string to the redirect URL when authentication is complete. This parameter can be used to identify a user on redirect, as well as protect against hijacked sessions and other exploits.
scope query optional string A space-separated list of application scopes you'd like to authenticate the user for. This defaults to all the scopes configured for the application in its configuration page.

Responses

default Does not return any data, but rather should be used in the browser.
200 Does not return any data, but rather should be used in the browser.
GET /authorize
POST /oauth2/revoke

Revoke an active Access Token, effectively logging a user out that has been previously authenticated.

operationId: Authorization_revokeAccessToken

Request Body

{
  "content": {
    "application/x-www-form-urlencoded": {
      "schema": {
        "$ref": "#/components/schemas/PostOAuth2Revoke"
      }
    }
  }
}

Responses

default An authentication error.
200 Returns an empty response when the token was successfully revoked.
400 An authentication error.
POST /oauth2/revoke
POST /oauth2/token

Request an Access Token using either a client-side obtained OAuth 2.0 authorization code or a server-side JWT assertion. An Access Token is a string that enables Box to verify that a request belongs to an authorized session. In the normal order of operations you will begin by requesting authentication from the [authorize](https://raw.githubusercontent.com) endpoint and Box will send you an authorization code. You will then send this code to this endpoint to exchange it for an Access Token. The returned Access Token can then be used to to make Box API calls.

operationId: Authorization_requestAccessToken

Request Body

{
  "content": {
    "application/x-www-form-urlencoded": {
      "schema": {
        "$ref": "#/components/schemas/PostOAuth2Token"
      }
    }
  }
}

Responses

default An authentication error.
200 Returns a new Access Token that can be used to make authenticated API calls by passing along the token in a authorization header as follows `Authorization: Bearer <Token>`.
400 An authentication error.
POST /oauth2/token
POST /oauth2/token#refresh

Refresh an Access Token using its client ID, secret, and refresh token.

operationId: Authorization_refreshAccessToken

Request Body

{
  "content": {
    "application/x-www-form-urlencoded": {
      "schema": {
        "$ref": "#/components/schemas/PostOAuth2Token--RefreshAccessToken"
      }
    }
  }
}

Responses

default An authentication error.
200 Returns a new Access Token that can be used to make authenticated API calls by passing along the token in a authorization header as follows `Authorization: Bearer <Token>`.
400 An authentication error.
POST /oauth2/token#refresh

Classifications 4 endpoints

GET /metadata_templates/enterprise/securityClassification-6VMVochwUWo/schema

Retrieves the classification metadata template and lists all the classifications available to this enterprise. This API can also be called by including the enterprise ID in the URL explicitly, for example `/metadata_templates/enterprise_12345/securityClassification-6VMVochwUWo/schema`.

operationId: Classifications_listAllClassifications

Responses

default An unexpected client error.
200 Returns the `securityClassification` metadata template, which contains a `Box__Security__Classification__Key` field that lists all the classifications available to this enterprise.
400 Returned if any of the request parameters are not valid.
404 Returned when a template name is not correct. Please make sure the URL for the request is correct.
GET /metadata_templates/enterprise/securityClassification-6VMVochwUWo/schema
PUT /metadata_templates/enterprise/securityClassification-6VMVochwUWo/schema#add

Adds one or more new classifications to the list of classifications available to the enterprise. This API can also be called by including the enterprise ID in the URL explicitly, for example `/metadata_templates/enterprise_12345/securityClassification-6VMVochwUWo/schema`.

operationId: Classifications_addNewClassifications

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ClassificationsAddNewClassificationsRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the updated `securityClassification` metadata template, which contains a `Box__Security__Classification__Key` field that lists all the classifications available to this enterprise.
400 Returned if any of the request parameters are not valid.
404 Returned when a template name is not correct. Please make sure the URL for the request is correct.
PUT /metadata_templates/enterprise/securityClassification-6VMVochwUWo/schema#add
PUT /metadata_templates/enterprise/securityClassification-6VMVochwUWo/schema#update

Updates the labels and descriptions of one or more classifications available to the enterprise. This API can also be called by including the enterprise ID in the URL explicitly, for example `/metadata_templates/enterprise_12345/securityClassification-6VMVochwUWo/schema`.

operationId: Classifications_updateLabelsDescriptions

Request Body

{
  "content": {
    "application/json-patch+json": {
      "schema": {
        "$ref": "#/components/schemas/ClassificationsUpdateLabelsDescriptionsRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the updated `securityClassification` metadata template, which contains a `Box__Security__Classification__Key` field that lists all the classifications available to this enterprise.
400 Returned if any of the request parameters are not valid.
404 Returned when a template name is not correct. Please make sure the URL for the request is correct.
PUT /metadata_templates/enterprise/securityClassification-6VMVochwUWo/schema#update
POST /metadata_templates/schema#classifications

When an enterprise does not yet have any classifications, this API call initializes the classification template with an initial set of classifications. If an enterprise already has a classification, the template will already exist and instead an API call should be made to add additional classifications.

operationId: Classifications_initializeTemplate

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ClassificationsInitializeTemplateRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns a new `securityClassification` metadata template, which contains a `Box__Security__Classification__Key` field that lists all the classifications available to this enterprise.
400 Returned if any of the request parameters are not valid.
404 Returned when a template name is not correct. Please make sure the URL for the request is correct.
POST /metadata_templates/schema#classifications

Classifications on files 4 endpoints

DELETE /files/{file_id}/metadata/enterprise/securityClassification-6VMVochwUWo

Removes any classifications from a file. This API can also be called by including the enterprise ID in the URL explicitly, for example `/files/:id//enterprise_12345/securityClassification-6VMVochwUWo`.

operationId: ClassificationsOnFiles_removeClassification

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.

Responses

default An unexpected client error.
204 Returns an empty response when the classification is successfully deleted.
400 Returned when the request parameters are not valid.
404 Returns an error when the file does not have any classification applied to it, or when the user does not have access to the file. * `instance_not_found` - An instance of the classification metadata template with the was not found on this file. * `not_found` - The file was not found, or the user does not have access to the file.
405 Returned when the method was not allowed.
DELETE /files/{file_id}/metadata/enterprise/securityClassification-6VMVochwUWo
GET /files/{file_id}/metadata/enterprise/securityClassification-6VMVochwUWo

Retrieves the classification metadata instance that has been applied to a file. This API can also be called by including the enterprise ID in the URL explicitly, for example `/files/:id//enterprise_12345/securityClassification-6VMVochwUWo`.

operationId: ClassificationsOnFiles_getClassificationMetadataInstance

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.

Responses

default An unexpected client error.
201 Returns an instance of the `securityClassification` metadata template, which contains a `Box__Security__Classification__Key` field that lists all the classifications available to this enterprise.
403 Returned when the request parameters are not valid.
404 Returned if the metadata template specified was not applied to this file or the user does not have access to the file. * `instance_not_found` - The metadata template was not applied to the file.
405 Returned when the method was not allowed.
GET /files/{file_id}/metadata/enterprise/securityClassification-6VMVochwUWo
POST /files/{file_id}/metadata/enterprise/securityClassification-6VMVochwUWo

Adds a classification to a file by specifying the label of the classification to add. This API can also be called by including the enterprise ID in the URL explicitly, for example `/files/:id//enterprise_12345/securityClassification-6VMVochwUWo`.

operationId: ClassificationsOnFiles_addClassification

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ClassificationsOnFilesAddClassificationRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns the classification template instance that was applied to the file.
400 Returns an error when the request body is not valid. * `schema_validation_failed` - The request body contains a value for a for a field that either does not exist, or for which the value or type does not match the expected field type. An example might be an unknown option for an `enum` or `multiSelect` field.
404 Returns an error when the file or metadata template was not found. * `not_found` - The file could not be found, or the user does not have access to the file. * `instance_tuple_not_found` - The metadata template was not found.
409 Returns an error when an instance of this metadata template is already present on the file. * `tuple_already_exists` - An instance of them metadata template already exists on the file.
POST /files/{file_id}/metadata/enterprise/securityClassification-6VMVochwUWo
PUT /files/{file_id}/metadata/enterprise/securityClassification-6VMVochwUWo

Updates a classification on a file. The classification can only be updated if a classification has already been applied to the file before. When editing classifications, only values are defined for the enterprise will be accepted.

operationId: ClassificationsOnFiles_updateClassificationMetadataInstance

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.

Request Body

{
  "content": {
    "application/json-patch+json": {
      "schema": {
        "$ref": "#/components/schemas/ClassificationsOnFilesUpdateClassificationMetadataInstanceRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the updated classification metadata template instance.
400 Returns an error when the request body is not valid. * `bad_request` - The request body format is not an array of valid JSON Patch operations.
500 Returns an error in some edge cases when the request body is not a valid array of JSON Patch items.
PUT /files/{file_id}/metadata/enterprise/securityClassification-6VMVochwUWo

Classifications on folders 4 endpoints

DELETE /folders/{folder_id}/metadata/enterprise/securityClassification-6VMVochwUWo

Removes any classifications from a folder. This API can also be called by including the enterprise ID in the URL explicitly, for example `/folders/:id//enterprise_12345/securityClassification-6VMVochwUWo`.

operationId: ClassificationsOnFolders_removeFromFolder

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.

Responses

default An unexpected client error.
204 Returns an empty response when the classification is successfully deleted.
400 Returned when the request parameters are not valid.
404 Returns an error when the folder does not have any classification applied to it, or when the user does not have access to the folder. * `instance_not_found` - An instance of the classification metadata template with the was not found on this folder. * `not_found` - The folder was not found, or the user does not have access to the folder.
405 Returned when the method was not allowed.
DELETE /folders/{folder_id}/metadata/enterprise/securityClassification-6VMVochwUWo
GET /folders/{folder_id}/metadata/enterprise/securityClassification-6VMVochwUWo

Retrieves the classification metadata instance that has been applied to a folder. This API can also be called by including the enterprise ID in the URL explicitly, for example `/folders/:id//enterprise_12345/securityClassification-6VMVochwUWo`.

operationId: ClassificationsOnFolders_getClassificationMetadata

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.

Responses

default An unexpected client error.
201 Returns an instance of the `securityClassification` metadata template, which contains a `Box__Security__Classification__Key` field that lists all the classifications available to this enterprise.
403 Returned when the request parameters are not valid.
404 Returned if the metadata template specified was not applied to this folder or the user does not have access to the folder. * `instance_not_found` - The metadata template was not applied to the folder.
405 Returned when the method was not allowed.
GET /folders/{folder_id}/metadata/enterprise/securityClassification-6VMVochwUWo
POST /folders/{folder_id}/metadata/enterprise/securityClassification-6VMVochwUWo

Adds a classification to a folder by specifying the label of the classification to add. This API can also be called by including the enterprise ID in the URL explicitly, for example `/folders/:id//enterprise_12345/securityClassification-6VMVochwUWo`.

operationId: ClassificationsOnFolders_addClassificationToFolder

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ClassificationsOnFoldersAddClassificationToFolderRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns the classification template instance that was applied to the folder.
400 Returns an error when the request body is not valid. * `schema_validation_failed` - The request body contains a value for a for a field that either does not exist, or for which the value or type does not match the expected field type. An example might be an unknown option for an `enum` or `multiSelect` field.
404 Returns an error when the folder or metadata template was not found. * `not_found` - The folder could not be found, or the user does not have access to the folder. * `instance_tuple_not_found` - The metadata template was not found.
409 Returns an error when an instance of this metadata template is already present on the folder. * `tuple_already_exists` - An instance of them metadata template already exists on the folder.
POST /folders/{folder_id}/metadata/enterprise/securityClassification-6VMVochwUWo
PUT /folders/{folder_id}/metadata/enterprise/securityClassification-6VMVochwUWo

Updates a classification on a folder. The classification can only be updated if a classification has already been applied to the folder before. When editing classifications, only values are defined for the enterprise will be accepted.

operationId: ClassificationsOnFolders_updateClassification

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.

Request Body

{
  "content": {
    "application/json-patch+json": {
      "schema": {
        "$ref": "#/components/schemas/ClassificationsOnFoldersUpdateClassificationRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the updated classification metadata template instance.
400 Returns an error when the request body is not valid. * `bad_request` - The request body format is not an array of valid JSON Patch operations.
500 Returns an error in some edge cases when the request body is not a valid array of JSON Patch items.
PUT /folders/{folder_id}/metadata/enterprise/securityClassification-6VMVochwUWo

Collaborations 4 endpoints

POST /collaborations

Adds a collaboration for a single user or a single group to a file or folder. Collaborations can be created using email address, user IDs, or a group IDs. If a collaboration is being created with a group, access to this endpoint is dependent on the group's ability to be invited. If collaboration is in `pending` status, the following fields are redacted: - `login` and `name` are hidden if a collaboration was created using `user_id`, - `name` is hidden if a collaboration was created using `login`.

operationId: post_collaborations

Parameters

Name In Required Type Description
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
notify query optional boolean Determines if users should receive email notification for the action performed.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PostCollaborationsRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a new collaboration object.
403 Returns an error when the user does not have the right permissions to create the collaboration. * `forbidden_by_policy`: Creating a collaboration is forbidden due to information barrier restrictions.
POST /collaborations
DELETE /collaborations/{collaboration_id}

Deletes a single collaboration.

operationId: Collaborations_removeSingleCollaboration

Parameters

Name In Required Type Description
collaboration_id path required string The ID of the collaboration

Responses

default An unexpected client error.
204 A blank response is returned if the collaboration was successfully deleted.
DELETE /collaborations/{collaboration_id}
GET /collaborations/{collaboration_id}

Retrieves a single collaboration.

operationId: Collaborations_getSingleCollaboration

Parameters

Name In Required Type Description
collaboration_id path required string The ID of the collaboration
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Responses

default An unexpected client error.
200 Returns a collaboration object.
GET /collaborations/{collaboration_id}
PUT /collaborations/{collaboration_id}

Updates a collaboration. Can be used to change the owner of an item, or to accept collaboration invites.

operationId: Collaborations_updateCollaboration

Parameters

Name In Required Type Description
collaboration_id path required string The ID of the collaboration

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CollaborationsUpdateCollaborationRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns an updated collaboration object unless the owner has changed.
204 If the role is changed to `owner`, the collaboration is deleted and a new collaboration is created. The previous `owner` of the old collaboration will be a `co-owner` on the new collaboration.
403 Returns an error if the authenticated user does not have the right permissions to update the collaboration. Additionally, this error may occur when attempting to update the `expires_at` field for the collaboration without the **Automatically remove invited collaborators: Allow folder owners to extend the expiry date** setting enabled in the admin dashboard of the enterprise.
PUT /collaborations/{collaboration_id}

Collaborations (list) 4 endpoints

GET /collaborations

Retrieves all pending collaboration invites for this user.

operationId: get_collaborations

Parameters

Name In Required Type Description
status query required string The status of the collaborations to retrieve
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
offset query optional integer The offset of the item at which to begin the response. Queries with offset parameter value exceeding 10000 will be rejected with a 400 response.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns a collection of pending collaboration objects. If the user has no pending collaborations, the collection will be empty.
GET /collaborations
GET /files/{file_id}/collaborations

Retrieves a list of pending and active collaborations for a file. This returns all the users that have access to the file or have been invited to the file.

operationId: CollaborationsList_fileAccessList

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
limit query optional integer The maximum number of items to return per page.
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.

Responses

default An unexpected client error.
200 Returns a collection of collaboration objects. If there are no collaborations on this file an empty collection will be returned. This list includes pending collaborations, for which the `status` is set to `pending`, indicating invitations that have been sent but not yet accepted.
GET /files/{file_id}/collaborations
GET /folders/{folder_id}/collaborations

Retrieves a list of pending and active collaborations for a folder. This returns all the users that have access to the folder or have been invited to the folder.

operationId: CollaborationsList_folderAccess

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Responses

default An unexpected client error.
200 Returns a collection of collaboration objects. If there are no collaborations on this folder an empty collection will be returned. This list includes pending collaborations, for which the `status` is set to `pending`, indicating invitations that have been sent but not yet accepted.
GET /folders/{folder_id}/collaborations
GET /groups/{group_id}/collaborations

Retrieves all the collaborations for a group. The user must have admin permissions to inspect enterprise's groups. Each collaboration object has details on which files or folders the group has access to and with what role.

operationId: CollaborationsList_groupAccessDetails

Parameters

Name In Required Type Description
group_id path required string The ID of the group.
limit query optional integer The maximum number of items to return per page.
offset query optional integer The offset of the item at which to begin the response. Queries with offset parameter value exceeding 10000 will be rejected with a 400 response.

Responses

default An unexpected client error.
200 Returns a collection of collaboration objects. If there are no collaborations, an empty collection will be returned.
GET /groups/{group_id}/collaborations

Collections 2 endpoints

GET /collections

Retrieves all collections for a given user. Currently, only the `favorites` collection is supported.

operationId: get_collections

Parameters

Name In Required Type Description
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
offset query optional integer The offset of the item at which to begin the response. Queries with offset parameter value exceeding 10000 will be rejected with a 400 response.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns all collections for the given user
GET /collections
GET /collections/{collection_id}/items

Retrieves the files and/or folders contained within this collection.

operationId: Collections_listItems

Parameters

Name In Required Type Description
collection_id path required string The ID of the collection.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
offset query optional integer The offset of the item at which to begin the response. Queries with offset parameter value exceeding 10000 will be rejected with a 400 response.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns an array of items in the collection.
GET /collections/{collection_id}/items

Comments 5 endpoints

POST /comments

Adds a comment by the user to a specific file, or as a reply to an other comment.

operationId: post_comments

Parameters

Name In Required Type Description
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PostCommentsRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns the newly created comment object. Not all available fields are returned by default. Use the [fields](https://raw.githubusercontent.com) query parameter to explicitly request any specific fields.
POST /comments
DELETE /comments/{comment_id}

Permanently deletes a comment.

operationId: Comments_removeById

Parameters

Name In Required Type Description
comment_id path required string The ID of the comment.

Responses

default An unexpected client error.
204 Returns an empty response when the comment has been deleted.
DELETE /comments/{comment_id}
GET /comments/{comment_id}

Retrieves the message and metadata for a specific comment, as well as information on the user who created the comment.

operationId: Comments_getById

Parameters

Name In Required Type Description
comment_id path required string The ID of the comment.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Responses

default An unexpected client error.
200 Returns a full comment object.
GET /comments/{comment_id}
PUT /comments/{comment_id}

Update the message of a comment.

operationId: Comments_updateMessage

Parameters

Name In Required Type Description
comment_id path required string The ID of the comment.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CommentsUpdateMessageRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the updated comment object.
PUT /comments/{comment_id}
GET /files/{file_id}/comments

Retrieves a list of comments for a file.

operationId: Comments_listFileComments

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
limit query optional integer The maximum number of items to return per page.
offset query optional integer The offset of the item at which to begin the response. Queries with offset parameter value exceeding 10000 will be rejected with a 400 response.

Responses

default An unexpected client error.
200 Returns a collection of comment objects. If there are no comments on this file an empty collection will be returned.
GET /files/{file_id}/comments

Device pinners 3 endpoints

DELETE /device_pinners/{device_pinner_id}

Deletes an individual device pin.

operationId: DevicePinners_removeDevicePin

Parameters

Name In Required Type Description
device_pinner_id path required string The ID of the device pin

Responses

default An unexpected client error.
204 Returns an empty response when the pin has been deleted.
DELETE /device_pinners/{device_pinner_id}
GET /device_pinners/{device_pinner_id}

Retrieves information about an individual device pin.

operationId: DevicePinners_getPinnerInfo

Parameters

Name In Required Type Description
device_pinner_id path required string The ID of the device pin

Responses

default An unexpected client error.
200 Returns information about a single device pin.
GET /device_pinners/{device_pinner_id}
GET /enterprises/{enterprise_id}/device_pinners

Retrieves all the device pins within an enterprise. The user must have admin privileges, and the application needs the "manage enterprise" scope to make this call.

operationId: DevicePinners_listPinnerInfo

Parameters

Name In Required Type Description
enterprise_id path required string The ID of the enterprise
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
limit query optional integer The maximum number of items to return per page.
direction query optional string The direction to sort results in. This can be either in alphabetical ascending (`ASC`) or descending (`DESC`) order.

Responses

default An unexpected client error.
200 Returns a list of device pins for a given enterprise.
GET /enterprises/{enterprise_id}/device_pinners

Domain restrictions (user exemptions) 4 endpoints

GET /collaboration_whitelist_exempt_targets

Returns a list of users who have been exempt from the collaboration domain restrictions.

operationId: DomainRestrictionsUserExemptions_listExemptUsers

Parameters

Name In Required Type Description
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns a collection of user exemptions.
GET /collaboration_whitelist_exempt_targets
POST /collaboration_whitelist_exempt_targets

Exempts a user from the restrictions set out by the allowed list of domains for collaborations.

operationId: DomainRestrictionsUserExemptions_createUserExemptionFromCollaborationDomainRestrictions

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/DomainRestrictionsUserExemptionsCreateUserExemptionFromCollaborationDomainRestrictionsRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns a new exemption entry.
POST /collaboration_whitelist_exempt_targets
DELETE /collaboration_whitelist_exempt_targets/{collaboration_whitelist_exempt_target_id}

Removes a user's exemption from the restrictions set out by the allowed list of domains for collaborations.

operationId: DomainRestrictionsUserExemptions_removeExemption

Parameters

Name In Required Type Description
collaboration_whitelist_exempt_target_id path required string The ID of the exemption to the list.

Responses

default An unexpected client error.
204 A blank response is returned if the exemption was successfully deleted.
DELETE /collaboration_whitelist_exempt_targets/{collaboration_whitelist_exempt_target_id}
GET /collaboration_whitelist_exempt_targets/{collaboration_whitelist_exempt_target_id}

Returns a users who has been exempt from the collaboration domain restrictions.

operationId: DomainRestrictionsUserExemptions_getUserExemption

Parameters

Name In Required Type Description
collaboration_whitelist_exempt_target_id path required string The ID of the exemption to the list.

Responses

default An unexpected client error.
200 Returns the user's exempted from the list of collaboration domains.
GET /collaboration_whitelist_exempt_targets/{collaboration_whitelist_exempt_target_id}

Domain restrictions for collaborations 4 endpoints

GET /collaboration_whitelist_entries

Returns the list domains that have been deemed safe to create collaborations for within the current enterprise.

operationId: DomainRestrictionsForCollaborations_listAllowedCollaborationDomains

Parameters

Name In Required Type Description
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns a collection of domains that are allowed for collaboration.
GET /collaboration_whitelist_entries
POST /collaboration_whitelist_entries

Creates a new entry in the list of allowed domains to allow collaboration for.

operationId: DomainRestrictionsForCollaborations_addAllowedDomainEntry

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/DomainRestrictionsForCollaborationsAddAllowedDomainEntryRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns a new entry on the list of allowed domains.
POST /collaboration_whitelist_entries
DELETE /collaboration_whitelist_entries/{collaboration_whitelist_entry_id}

Removes a domain from the list of domains that have been deemed safe to create collaborations for within the current enterprise.

operationId: DomainRestrictionsForCollaborations_removeAllowedDomainEntry

Parameters

Name In Required Type Description
collaboration_whitelist_entry_id path required string The ID of the entry in the list.

Responses

default An unexpected client error.
204 A blank response is returned if the entry was successfully deleted.
DELETE /collaboration_whitelist_entries/{collaboration_whitelist_entry_id}
GET /collaboration_whitelist_entries/{collaboration_whitelist_entry_id}

Returns a domain that has been deemed safe to create collaborations for within the current enterprise.

operationId: DomainRestrictionsForCollaborations_allowedCollaborationDomain

Parameters

Name In Required Type Description
collaboration_whitelist_entry_id path required string The ID of the entry in the list.

Responses

default An unexpected client error.
200 Returns an entry on the list of allowed domains.
GET /collaboration_whitelist_entries/{collaboration_whitelist_entry_id}

Downloads 1 endpoints

GET /files/{file_id}/content

Returns the contents of a file in binary format.

operationId: Downloads_fileContentGet

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
range header optional string The byte range of the content to download. The format `bytes={start_byte}-{end_byte}` can be used to specify what section of the file to download.
boxapi header optional string The URL, and optional password, for the shared link of this item. This header can be used to access items that have not been explicitly shared with a user. Use the format `shared_link=[link]` or if a password is required then use `shared_link=[link]&shared_link_password=[password]`. This header can be used on the file or folder shared, as well as on any files or folders nested within the item.
version query optional string The file version to download
access_token query optional string An optional access token that can be used to pre-authenticate this request, which means that a download link can be shared with a browser or a third party service without them needing to know how to handle the authentication. When using this parameter, please make sure that the access token is sufficiently scoped down to only allow read access to that file and no other files or folders.

Responses

default An unexpected client error.
200 Returns the requested file if the client has the **follow redirects** setting enabled to automatically follow HTTP `3xx` responses as redirects. If not, the request will return `302` instead. For details, see the [download file guide](g://downloads/file#download-url).
202 If the file is not ready to be downloaded yet `Retry-After` header will be returned indicating the time in seconds after which the file will be available for the client to download. This response can occur when the file was uploaded immediately before the download request.
302 If the file is available for download the response will include a `Location` header for the file on `dl.boxcloud.com`. The `dl.boxcloud.com` URL is not persistent and clients will need to follow the redirect to actually download the file.
GET /files/{file_id}/content

Email aliases 3 endpoints

GET /users/{user_id}/email_aliases

Retrieves all email aliases for a user. The collection does not include the primary login for the user.

operationId: EmailAliases_listUserEmailAliases

Parameters

Name In Required Type Description
user_id path required string The ID of the user.

Responses

default An unexpected client error.
200 Returns a collection of email aliases.
GET /users/{user_id}/email_aliases
POST /users/{user_id}/email_aliases

Adds a new email alias to a user account..

operationId: EmailAliases_createNewAlias

Parameters

Name In Required Type Description
user_id path required string The ID of the user.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/EmailAliasesCreateNewAliasRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns the newly created email alias object.
POST /users/{user_id}/email_aliases
DELETE /users/{user_id}/email_aliases/{email_alias_id}

Removes an email alias from a user.

operationId: EmailAliases_removeAlias

Parameters

Name In Required Type Description
user_id path required string The ID of the user.
email_alias_id path required string The ID of the email alias.

Responses

default An unexpected client error.
204 Removes the alias and returns an empty response.
DELETE /users/{user_id}/email_aliases/{email_alias_id}

Events 2 endpoints

GET /events

Returns up to a year of past events for a given user or for the entire enterprise. By default this returns events for the authenticated user. To retrieve events for the entire enterprise, set the `stream_type` to `admin_logs_streaming` for live monitoring of new events, or `admin_logs` for querying across historical events. The user making the API call will need to have admin privileges, and the application will need to have the scope `manage enterprise properties` checked.

operationId: get_events

Parameters

Name In Required Type Description
stream_type query optional string Defines the type of events that are returned * `all` returns everything for a user and is the default * `changes` returns events that may cause file tree changes such as file updates or collaborations. * `sync` is similar to `changes` but only applies to synced folders * `admin_logs` returns all events for an entire enterprise and requires the user making the API call to have admin permissions. This stream type is for programmatically pulling from a 1 year history of events across all users within the enterprise and within a `created_after` and `created_before` time frame. The complete history of events will be returned in chronological order based on the event time, but latency will be much higher than `admin_logs_streaming`. * `admin_logs_streaming` returns all events for an entire enterprise and requires the user making the API call to have admin permissions. This stream type is for polling for recent events across all users within the enterprise. Latency will be much lower than `admin_logs`, but events will not be returned in chronological order and may contain duplicates.
stream_position query optional string The location in the event stream to start receiving events from. * `now` will return an empty list events and the latest stream position for initialization. * `0` or `null` will return all events.
limit query optional integer Limits the number of events returned Note: Sometimes, the events less than the limit requested can be returned even when there may be more events remaining. This is primarily done in the case where a number of events have already been retrieved and these retrieved events are returned rather than delaying for an unknown amount of time to see if there are any more results.
event_type query optional array A comma-separated list of events to filter by. This can only be used when requesting the events with a `stream_type` of `admin_logs` or `adming_logs_streaming`. For any other `stream_type` this value will be ignored.
created_after query optional string The lower bound date and time to return events for. This can only be used when requesting the events with a `stream_type` of `admin_logs`. For any other `stream_type` this value will be ignored.
created_before query optional string The upper bound date and time to return events for. This can only be used when requesting the events with a `stream_type` of `admin_logs`. For any other `stream_type` this value will be ignored.

Responses

default An unexpected client error.
200 Returns a list of event objects. Events objects are returned in pages, with each page (chunk) including a list of event objects. The response includes a `chunk_size` parameter indicating how many events were returned in this chunk, as well as the next `stream_position` that can be queried.
GET /events
OPTIONS /events

Returns a list of real-time servers that can be used for long-polling updates to the [event stream](https://raw.githubusercontent.com). Long polling is the concept where a HTTP request is kept open until the server sends a response, then repeating the process over and over to receive updated responses. Long polling the event stream can only be used for user events, not for enterprise events. To use long polling, first use this endpoint to retrieve a list of long poll URLs. Next, make a long poll request to any of the provided URLs. When an event occurs in monitored account a response with the value `new_change` will be sent. The response contains no other details as it only serves as a prompt to take further action such as sending a request to the [events endpoint](https://raw.githubusercontent.com) with the last known `stream_position`. After the server sends this response it closes the connection. You must now repeat the long poll process to begin listening for events again. If no events occur for a while and the connection times out you will receive a response with the value `reconnect`. When you receive this response you’ll make another call to this endpoint to restart the process. If you receive no events in `retry_timeout` seconds then you will need to make another request to the real-time server (one of the URLs in the response for this endpoint). This might be necessary due to network errors. Finally, if you receive a `max_retries` error when making a request to the real-time server, you should start over by making a call to this endpoint first.

operationId: options_events

Responses

default An unexpected client error.
200 Returns a paginated array of servers that can be used instead of the regular endpoints for long-polling events.
OPTIONS /events

File requests 4 endpoints

DELETE /file_requests/{file_request_id}

Deletes a file request permanently.

operationId: FileRequests_deletePermanently

Parameters

Name In Required Type Description
file_request_id path required string The unique identifier that represent a file request. The ID for any file request can be determined by visiting a file request builder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/filerequest/123` the `file_request_id` is `123`.

Responses

default An unexpected client error.
204 Returns an empty response when the file request has been successfully deleted.
401 Returned when the access token provided in the `Authorization` header is not recognized or not provided.
404 Returned if the file request is not found or has already been deleted, or the user does not have access to the associated folder.
405 Returned if the `file_request_id` is not in a recognized format.
DELETE /file_requests/{file_request_id}
GET /file_requests/{file_request_id}

Retrieves the information about a file request.

operationId: FileRequests_getInformation

Parameters

Name In Required Type Description
file_request_id path required string The unique identifier that represent a file request. The ID for any file request can be determined by visiting a file request builder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/filerequest/123` the `file_request_id` is `123`.

Responses

default An unexpected client error.
200 Returns a file request object.
401 Returned when the access token provided in the `Authorization` header is not recognized or not provided.
404 Returned if the file request is not found, or the user does not have access to the associated folder.
405 Returned if the `file_request_id` is not in a recognized format.
GET /file_requests/{file_request_id}
PUT /file_requests/{file_request_id}

Updates a file request. This can be used to activate or deactivate a file request.

operationId: FileRequests_updateRequest

Parameters

Name In Required Type Description
file_request_id path required string The unique identifier that represent a file request. The ID for any file request can be determined by visiting a file request builder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/filerequest/123` the `file_request_id` is `123`.
if-match header optional string Ensures this item hasn't recently changed before making changes. Pass in the item's last observed `etag` value into this header and the endpoint will fail with a `412 Precondition Failed` if it has changed since.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FileRequestUpdateRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the updated file request object.
401 Returned when the access token provided in the `Authorization` header is not recognized or not provided.
403 Returned if the user does not have all the permissions to complete the update. * `access_denied_insufficient_permissions` when the authenticated user does not have access to update the file request.
404 Returned if the file request is not found, or the user does not have access to the associated folder.
405 Returned if the `file_request_id` is not in a recognized format.
412 Returns an error when the `If-Match` header does not match the current `etag` value of the file request. This indicates that the file request has changed since it was last requested.
PUT /file_requests/{file_request_id}
POST /file_requests/{file_request_id}/copy

Copies an existing file request that is already present on one folder, and applies it to another folder.

operationId: FileRequests_copyRequestToFolder

Parameters

Name In Required Type Description
file_request_id path required string The unique identifier that represent a file request. The ID for any file request can be determined by visiting a file request builder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/filerequest/123` the `file_request_id` is `123`.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FileRequestCopyRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns updated file request object.
401 Returned when the access token provided in the `Authorization` header is not recognized or not provided.
403 Returned if the user does not have all the permissions to complete the update. * `access_denied_insufficient_permissions` when the authenticated user does not have access to update the file request.
404 Returned if the file request is not found, or the user does not have access to the associated folder.
405 Returned if the `file_request_id` is not in a recognized format.
POST /file_requests/{file_request_id}/copy

File version retentions 2 endpoints

GET /file_version_retentions

Retrieves all file version retentions for the given enterprise.

operationId: FileVersionRetentions_listRetentions

Parameters

Name In Required Type Description
file_id query optional string Filters results by files with this ID.
file_version_id query optional string Filters results by file versions with this ID.
policy_id query optional string Filters results by the retention policy with this ID.
disposition_action query optional string Filters results by the retention policy with this disposition action.
disposition_before query optional string Filters results by files that will have their disposition come into effect before this date.
disposition_after query optional string Filters results by files that will have their disposition come into effect after this date.
limit query optional integer The maximum number of items to return per page.
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.

Responses

default An unexpected client error.
200 Returns a list of all file version retentions for the enterprise.
GET /file_version_retentions
GET /file_version_retentions/{file_version_retention_id}

Returns information about a file version retention.

operationId: FileVersionRetentions_getFileVersionRetentionInfo

Parameters

Name In Required Type Description
file_version_retention_id path required string The ID of the file version retention

Responses

default An unexpected client error.
200 Returns a file version retention object.
GET /file_version_retentions/{file_version_retention_id}

File versions 5 endpoints

GET /files/{file_id}/versions

Retrieve a list of the past versions for a file. Versions are only tracked by Box users with premium accounts. To fetch the ID of the current version of a file, use the `GET /file/:id` API.

operationId: FileVersions_listAllVersions

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
limit query optional integer The maximum number of items to return per page.
offset query optional integer The offset of the item at which to begin the response. Queries with offset parameter value exceeding 10000 will be rejected with a 400 response.

Responses

default An unexpected client error.
200 Returns an array of past versions for this file.
GET /files/{file_id}/versions
POST /files/{file_id}/versions/current

Promote a specific version of a file. If previous versions exist, this method can be used to promote one of the older versions to the top of the version history. This creates a new copy of the old version and puts it at the top of the versions history. The file will have the exact same contents as the older version, with the the same hash digest, `etag`, and name as the original. Other properties such as comments do not get updated to their former values. Don't use this endpoint to restore Box Notes, as it works with file formats such as PDF, DOC, PPTX or similar.

operationId: FileVersions_promoteFileVersion

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FileVersionsPromoteFileVersionRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a newly created file version object.
POST /files/{file_id}/versions/current
DELETE /files/{file_id}/versions/{file_version_id}

Move a file version to the trash. Versions are only tracked for Box users with premium accounts.

operationId: FileVersions_moveToTrash

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
file_version_id path required string The ID of the file version
if-match header optional string Ensures this item hasn't recently changed before making changes. Pass in the item's last observed `etag` value into this header and the endpoint will fail with a `412 Precondition Failed` if it has changed since.

Responses

default An unexpected client error.
204 Returns an empty response when the file has been successfully deleted.
DELETE /files/{file_id}/versions/{file_version_id}
GET /files/{file_id}/versions/{file_version_id}

Retrieve a specific version of a file. Versions are only tracked for Box users with premium accounts.

operationId: FileVersions_getSpecificVersion

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
file_version_id path required string The ID of the file version

Responses

default An unexpected client error.
200 Returns a specific version of a file. Not all available fields are returned by default. Use the [fields](https://raw.githubusercontent.com) query parameter to explicitly request any specific fields.
GET /files/{file_id}/versions/{file_version_id}
PUT /files/{file_id}/versions/{file_version_id}

Restores a specific version of a file after it was deleted. Don't use this endpoint to restore Box Notes, as it works with file formats such as PDF, DOC, PPTX or similar.

operationId: FileVersions_restoreVersion

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
file_version_id path required string The ID of the file version

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FileVersionsRestoreVersionRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns a restored file version object.
PUT /files/{file_id}/versions/{file_version_id}

Files 6 endpoints

OPTIONS /files/content

Performs a check to verify that a file will be accepted by Box before you upload the entire file.

operationId: Files_preflightCheckBeforeUpload

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FilesPreflightCheckBeforeUploadRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 If the check passed, the response will include a session URL that can be used to upload the file to.
409 If the check did not pass, the response will include some details on why it did not pass.
OPTIONS /files/content
DELETE /files/{file_id}

Deletes a file, either permanently or by moving it to the trash. The the enterprise settings determine whether the item will be permanently deleted from Box or moved to the trash.

operationId: Files_deleteFile

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
if-match header optional string Ensures this item hasn't recently changed before making changes. Pass in the item's last observed `etag` value into this header and the endpoint will fail with a `412 Precondition Failed` if it has changed since.

Responses

default An unexpected client error.
204 Returns an empty response when the file has been successfully deleted.
401 Returned when the access token provided in the `Authorization` header is not recognized or not provided.
404 Returned if the file is not found or has already been deleted, or the user does not have access to the file.
405 Returned if the `file_id` is not in a recognized format.
412 Returns an error when the `If-Match` header does not match the current `etag` value of the file. This indicates that the file has changed since it was last requested.
DELETE /files/{file_id}
GET /files/{file_id}

Retrieves the details about a file.

operationId: Files_getDetails

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested. Additionally this field can be used to query any metadata applied to the file by specifying the `metadata` field as well as the scope and key of the template to retrieve, for example `?fields=metadata.enterprise_12345.contractTemplate`.
if-none-match header optional string Ensures an item is only returned if it has changed. Pass in the item's last observed `etag` value into this header and the endpoint will fail with a `304 Not Modified` if the item has not changed since.
boxapi header optional string The URL, and optional password, for the shared link of this item. This header can be used to access items that have not been explicitly shared with a user. Use the format `shared_link=[link]` or if a password is required then use `shared_link=[link]&shared_link_password=[password]`. This header can be used on the file or folder shared, as well as on any files or folders nested within the item.
x-rep-hints header optional string A header required to request specific `representations` of a file. Use this in combination with the `fields` query parameter to request a specific file representation. The general format for these representations is `X-Rep-Hints: [...]` where `[...]` is one or many hints in the format `[fileType?query]`. For example, to request a `png` representation in `32x32` as well as `64x64` pixel dimensions provide the following hints. `x-rep-hints: [jpg?dimensions=32x32][jpg?dimensions=64x64]` Additionally, a `text` representation is available for all document file types in Box using the `[extracted_text]` representation. `x-rep-hints: [extracted_text]`

Responses

default An unexpected client error.
200 Returns a file object. Not all available fields are returned by default. Use the [fields](https://raw.githubusercontent.com) query parameter to explicitly request any specific fields.
304 Returns an empty response when the `If-None-Match` header matches the current `etag` value of the folder. This indicates that the folder has not changed since it was last requested.
401 Returned when the access token provided in the `Authorization` header is not recognized or not provided.
404 Returned if the file is not found, or the user does not have access to the file.
405 Returned if the `file_id` is not in a recognized format.
415 Returns an error if an action is performed on a file with an incorrect media type. * `unsupported_media_type` when requesting an `expiring_embed_link` for a file that is not supported by Box Embed.
GET /files/{file_id}
PUT /files/{file_id}

Updates a file. This can be used to rename or move a file, create a shared link, or lock a file.

operationId: Files_updateFile

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
if-match header optional string Ensures this item hasn't recently changed before making changes. Pass in the item's last observed `etag` value into this header and the endpoint will fail with a `412 Precondition Failed` if it has changed since.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FilesUpdateFileRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns a file object. Not all available fields are returned by default. Use the [fields](https://raw.githubusercontent.com) query parameter to explicitly request any specific fields.
400 Returned when the new retention time > maximum retention length.
401 Returned when the access token provided in the `Authorization` header is not recognized or not provided.
403 Returned if the user does not have all the permissions to complete the update. * `access_denied_insufficient_permissions` returned when the authenticated user does not have access to the destination folder to move the file to. * Returned when retention time is shorter or equal to current retention timestamp. * Returned when a `file_id` that is not under retention is entered. * Returned when a file that is retained but the disposition action is set to `remove_retention` * `forbidden_by_policy` is returned if copying a folder is forbidden due to information barrier restrictions.
404 Returned if the file is not found, or the user does not have access to the file.
405 Returned if the `file_id` is not in a recognized format.
412 Returns an error when the `If-Match` header does not match the current `etag` value of the file. This indicates that the file has changed since it was last requested.
PUT /files/{file_id}
POST /files/{file_id}/copy

Creates a copy of a file.

operationId: Files_createCopy

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FilesCreateCopyRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a new file object representing the copied file. Not all available fields are returned by default. Use the [fields](https://raw.githubusercontent.com) query parameter to explicitly request any specific fields.
304 Returns an empty response when the `If-None-Match` header matches the current `etag` value of the file. This indicates that the file has not changed since it was last requested.
400 Returns an error if some of the parameters are missing or not valid. * `bad_request` when a parameter is missing.
403 Returns an error when the user does not have the right permissions to create the copy a file. * `forbidden_by_policy`: Returned if copying a file is forbidden due to information barrier restrictions.
404 Returns an error if either the source file or the destination folder could not be found, or the authenticated user does not have access to either. * `not_found` when the authenticated user does not have access to the source file or the destination folder
409 * `operation_blocked_temporary`: Returned if either of the destination or source folders is locked due to another move, copy, delete or restore operation in process. The operation can be retried at a later point. * `item_name_in_use` when a folder with the same name already exists.
POST /files/{file_id}/copy
GET /files/{file_id}/thumbnail.{extension}

Retrieves a thumbnail, or smaller image representation, of a file. Sizes of `32x32`,`64x64`, `128x128`, and `256x256` can be returned in the `.png` format and sizes of `32x32`, `160x160`, and `320x320` can be returned in the `.jpg` format. Thumbnails can be generated for the image and video file formats listed [found on our community site][1]. [1]: https://community.box.com/t5/Migrating-and-Previewing-Content/File-Types-and-Fonts-Supported-in-Box-Content-Preview/ta-p/327

operationId: Files_getThumbnail

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
extension path required string The file format for the thumbnail
min_height query optional integer The minimum height of the thumbnail
min_width query optional integer The minimum width of the thumbnail
max_height query optional integer The maximum height of the thumbnail
max_width query optional integer The maximum width of the thumbnail

Responses

default An unexpected client error.
200 When a thumbnail can be created the thumbnail data will be returned in the body of the response.
202 Sometimes generating a thumbnail can take a few seconds. In these situations the API returns a `Location`-header pointing to a placeholder graphic for this file type. The placeholder graphic can be used in a user interface until the thumbnail generation has completed. The `Retry-After`-header indicates when to the thumbnail will be ready. At that time, retry this endpoint to retrieve the thumbnail.
302 Returns an error when Box is not able to create a thumbnail for this file type. Instead, a `Location`-header pointing to a placeholder graphic for this file type will be returned.
400 Returns an error if some of the parameters are missing or not valid. * `requested_preview_unavailable` - an incorrect dimension was requested. This will happen if the dimension requested is larger or smaller than the available file sizes for the thumbnail format, or when when any of the size constraints contradict each other.
403 Returned when the access token provided in the `Authorization` header is not recognized or not provided.
404 Returned if the file is not found, or the user does not have access to the file, or for additional reasons. * `preview_cannot_be_generated` - Box does not support thumbnails for this type of file
GET /files/{file_id}/thumbnail.{extension}

Folder locks 3 endpoints

GET /folder_locks

Retrieves folder lock details for a given folder. You must be authenticated as the owner or co-owner of the folder to use this endpoint.

operationId: FolderLocks_listDetails

Parameters

Name In Required Type Description
folder_id query required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.

Responses

default An unexpected client error.
200 Returns details for all folder locks applied to the folder, including the lock type and user that applied the lock.
403 Returned when the access token provided in the `Authorization` header is not recognized or not provided.
404 Returned if the folder is not found, or the user does not have access to the folder.
405 Returned if the `folder_id` is not in a recognized format.
GET /folder_locks
POST /folder_locks

Creates a folder lock on a folder, preventing it from being moved and/or deleted. You must be authenticated as the owner or co-owner of the folder to use this endpoint.

operationId: FolderLocks_create

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FolderLocksCreateRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the instance of the folder lock that was applied to the folder, including the user that applied the lock and the operations set.
400 Returns an error when the request body is not valid. * `schema_validation_failed` - The request body contains a value for a field that either does not exist, or for which the value or type does not match the expected field type. An example might be an unknown option for an `enum` or `multiSelect` field.
404 Returns an error when the folder was not found. * `not_found` - The folder could not be found, the user does not have access to the folder, or the user making call is not an owner or co-owner of folder.
POST /folder_locks
DELETE /folder_locks/{folder_lock_id}

Deletes a folder lock on a given folder. You must be authenticated as the owner or co-owner of the folder to use this endpoint.

operationId: FolderLocks_deleteFolderLock

Parameters

Name In Required Type Description
folder_lock_id path required string The ID of the folder lock.

Responses

default An unexpected client error.
204 Returns an empty response when the folder lock is successfully deleted.
403 Returns an error if the user does not have the required access to perform the action. * `access_denied_insufficient_permissions`: Returned when the user does not have access to the folder. * `insufficient_scope`: Returned an error if the application does not have the right scope to delete folders. Make sure your application has been configured to read and write all files and folders stored in Box.
404 Returns an error if the folder could not be found, or the authenticated user does not have access to the folder. * `not_found` when the authenticated user does not have access to the folder.
DELETE /folder_locks/{folder_lock_id}

Folders 6 endpoints

POST /folders

Creates a new empty folder within the specified parent folder.

operationId: post_folders

Parameters

Name In Required Type Description
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PostFoldersRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a folder object. Not all available fields are returned by default. Use the [fields](https://raw.githubusercontent.com) query parameter to explicitly request any specific fields.
400 Returns an error if some of the parameters are missing or not valid. * `bad_request` when a parameter is missing or incorrect. * `item_name_too_long` when the folder name is too long. * `item_name_invalid` when the folder name contains non-valid characters.
403 Returns an error if the user does not have the required access to perform the action. This might be because they don't have access to the folder or parent folder, or because the application does not have permission to write files and folders.
404 Returns an error if the parent folder could not be found, or the authenticated user does not have access to the parent folder. * `not_found` when the authenticated user does not have access to the parent folder
409 * `operation_blocked_temporary`: Returned if either of the destination or source folders is locked due to another move, copy, delete or restore operation in process. The operation can be retried at a later point. * `item_name_in_use`: Returned if a folder with the name already exists in the parent folder.
POST /folders
DELETE /folders/{folder_id}

Deletes a folder, either permanently or by moving it to the trash.

operationId: Folders_deleteById

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.
if-match header optional string Ensures this item hasn't recently changed before making changes. Pass in the item's last observed `etag` value into this header and the endpoint will fail with a `412 Precondition Failed` if it has changed since.
recursive query optional boolean Delete a folder that is not empty by recursively deleting the folder and all of its content.

Responses

default An unexpected client error.
204 Returns an empty response when the folder is successfully deleted or moved to the trash.
400 Returns an error if the user makes a bad request. * `folder_not_empty`: Returned if the folder is not empty. Use the `recursive` query parameter to recursively delete the folder and its contents.
403 Returns an error if the user does not have the required access to perform the action. * `access_denied_insufficient_permissions`: Returned when the user does not have access to the folder, or when a folder lock has been applied to the folder to prevent deletion. * `insufficient_scope`: Returned an error if the application does not have the right scope to delete folders. Make sure your application has been configured to read and write all files and folders stored in Box.
404 Returns an error if the folder could not be found, or the authenticated user does not have access to the folder. * `not_found` when the authenticated user does not have access to the folder.
409 * `operation_blocked_temporary`: Returned if the folder is locked due to another move, copy, delete or restore operation in progress. The operation can be retried at a later point.
412 Returns an error when the `If-Match` header does not match the current `etag` value of the folder. This indicates that the folder has changed since it was last requested.
503 Returns an error when the operation takes longer than 60 seconds. The operation will continue after this response has been returned.
DELETE /folders/{folder_id}
GET /folders/{folder_id}

Retrieves details for a folder, including the first 100 entries in the folder. Passing `sort`, `direction`, `offset`, and `limit` parameters in query allows you to manage the list of returned [folder items](r://folder--full#param-item-collection). To fetch more items within the folder, use the [Get items in a folder](e://get-folders-id-items) endpoint.

operationId: Folders_getFolderDetails

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested. Additionally this field can be used to query any metadata applied to the file by specifying the `metadata` field as well as the scope and key of the template to retrieve, for example `?fields=metadata.enterprise_12345.contractTemplate`.
if-none-match header optional string Ensures an item is only returned if it has changed. Pass in the item's last observed `etag` value into this header and the endpoint will fail with a `304 Not Modified` if the item has not changed since.
boxapi header optional string The URL, and optional password, for the shared link of this item. This header can be used to access items that have not been explicitly shared with a user. Use the format `shared_link=[link]` or if a password is required then use `shared_link=[link]&shared_link_password=[password]`. This header can be used on the file or folder shared, as well as on any files or folders nested within the item.
sort query optional string Defines the **second** attribute by which items are sorted. The folder type affects the way the items are sorted: * **Standard folder**: Items are always sorted by their `type` first, with folders listed before files, and files listed before web links. * **Root folder**: This parameter is not supported for marker-based pagination on the root folder (the folder with an `id` of `0`). * **Shared folder with parent path to the associated folder visible to the collaborator**: Items are always sorted by their `type` first, with folders listed before files, and files listed before web links.
direction query optional string The direction to sort results in. This can be either in alphabetical ascending (`ASC`) or descending (`DESC`) order.
offset query optional integer The offset of the item at which to begin the response. Queries with offset parameter value exceeding 10000 will be rejected with a 400 response.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns a folder, including the first 100 entries in the folder. If you used query parameters like `sort`, `direction`, `offset`, or `limit` the *folder items list* will be affected accordingly. To fetch more items within the folder, use the [Get items in a folder](e://get-folders-id-items)) endpoint. Not all available fields are returned by default. Use the [fields](https://raw.githubusercontent.com) query parameter to explicitly request any specific fields.
304 Returns an empty response when the `If-None-Match` header matches the current `etag` value of the folder. This indicates that the folder has not changed since it was last requested.
403 Returned when the access token provided in the `Authorization` header is not recognized or not provided.
404 Returned if the folder is not found, or the user does not have access to the folder.
405 Returned if the `folder_id` is not in a recognized format.
GET /folders/{folder_id}
PUT /folders/{folder_id}

Updates a folder. This can be also be used to move the folder, create shared links, update collaborations, and more.

operationId: Folders_updateFolder

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
if-match header optional string Ensures this item hasn't recently changed before making changes. Pass in the item's last observed `etag` value into this header and the endpoint will fail with a `412 Precondition Failed` if it has changed since.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FoldersUpdateFolderRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns a folder object for the updated folder Not all available fields are returned by default. Use the [fields](https://raw.githubusercontent.com) query parameter to explicitly request any specific fields. This call will return synchronously. This holds true even when moving folders with a large a large number of items in all of its descendants. For very large folders, this means the call could take minutes or hours to return.
400 Returns an error if some of the parameters are missing or not valid, or if a folder lock is preventing a move operation. * `bad_request` when a parameter is missing or incorrect. This error also happens when a password is set for a shared link with an access type of `open`. * `item_name_too_long` when the folder name is too long. * `item_name_invalid` when the folder name contains non-valid characters.
403 Returns an error if the user does not have the required access to perform the action. * `access_denied_insufficient_permissions`: Returned when the user does not have access to the folder or parent folder, or if the folder is being moved and a folder lock has been applied to prevent such operations. * `insufficient_scope`: Returned an error if the application does not have the right scope to update folders. Make sure your application has been configured to read and write all files and folders stored in Box. * `forbidden`: Returned when the user is not allowed to perform this action for other users. This can include trying to create a Shared Link with a `company` access level on a free account. * `forbidden_by_policy`: Returned if copying a folder is forbidden due to information barrier restrictions. Returns an error if there are too many actions in the request body. * `operation_limit_exceeded`: Returned when the user passes any parameters in addition to the `parent.id` in the request body. The calls to this endpoint have to be split up. The first call needs to include only the `parent.id`, the next call can include other parameters.
404 Returns an error if the folder or parent folder could not be found, or the authenticated user does not have access to either folder. * `not_found` when the authenticated user does not have access to the folder or parent folder.
409 * `operation_blocked_temporary`: Returned if either of the destination or source folders is locked due to another move, copy, delete or restore operation in progress. The operation can be retried at a later point. * `item_name_in_use`: Returned if a folder with the name already exists in the parent folder.
412 Returns an error when the `If-Match` header does not match the current `etag` value of the folder. This indicates that the folder has changed since it was last requested.
503 Returns an error when the operation takes longer than 60 seconds. The operation will continue after this response has been returned.
PUT /folders/{folder_id}
POST /folders/{folder_id}/copy

Creates a copy of a folder within a destination folder. The original folder will not be changed.

operationId: Folders_createCopy

Parameters

Name In Required Type Description
folder_id path required string The unique identifier of the folder to copy. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder with the ID `0` can not be copied.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FoldersCreateCopyRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a new folder object representing the copied folder. Not all available fields are returned by default. Use the [fields](https://raw.githubusercontent.com) query parameter to explicitly request any specific fields.
304 Returns an empty response when the `If-None-Match` header matches the current `etag` value of the folder. This indicates that the folder has not changed since it was last requested.
400 Returns an error if some of the parameters are missing or not valid. * `bad_request` when a parameter is missing. * `item_name_too_long` when the new folder name is too long.
403 Returns an error when the user does not have the right permissions to copy a folder. * `forbidden_by_policy`: Returned if copying a folder is forbidden due to information barrier restrictions.
404 Returns an error if either the source or destination folder could not be found, or the authenticated user does not have access to either folders. * `not_found` when the authenticated user does not have access to the parent folder
409 Returns an error if a folder by this name already exists in the destination folder, or if the destination folder is locked. * `item_name_in_use` when a folder with the same name already exists.
500 Returns an error when trying to copy the root folder.
POST /folders/{folder_id}/copy
GET /folders/{folder_id}/items

Retrieves a page of items in a folder. These items can be files, folders, and web links. To request more information about the folder itself, like its size, use the [Get a folder](https://raw.githubusercontent.com) endpoint instead.

operationId: Folders_listItemsInFolder

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested. Additionally this field can be used to query any metadata applied to the file by specifying the `metadata` field as well as the scope and key of the template to retrieve, for example `?fields=metadata.enterprise_12345.contractTemplate`.
usemarker query optional boolean Specifies whether to use marker-based pagination instead of offset-based pagination. Only one pagination method can be used at a time. By setting this value to true, the API will return a `marker` field that can be passed as a parameter to this endpoint to get the next page of the response.
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
offset query optional integer The offset of the item at which to begin the response. Queries with offset parameter value exceeding 10000 will be rejected with a 400 response.
limit query optional integer The maximum number of items to return per page.
boxapi header optional string The URL, and optional password, for the shared link of this item. This header can be used to access items that have not been explicitly shared with a user. Use the format `shared_link=[link]` or if a password is required then use `shared_link=[link]&shared_link_password=[password]`. This header can be used on the file or folder shared, as well as on any files or folders nested within the item.
sort query optional string Defines the **second** attribute by which items are sorted. The folder type affects the way the items are sorted: * **Standard folder**: Items are always sorted by their `type` first, with folders listed before files, and files listed before web links. * **Root folder**: This parameter is not supported for marker-based pagination on the root folder (the folder with an `id` of `0`). * **Shared folder with parent path to the associated folder visible to the collaborator**: Items are always sorted by their `type` first, with folders listed before files, and files listed before web links.
direction query optional string The direction to sort results in. This can be either in alphabetical ascending (`ASC`) or descending (`DESC`) order.

Responses

default An unexpected client error.
200 Returns a collection of files, folders, and web links contained in a folder.
403 Returned when the access token provided in the `Authorization` header is not recognized or not provided.
404 Returned if the folder is not found, or the user does not have access to the folder.
405 Returned if the `folder_id` is not in a recognized format.
GET /folders/{folder_id}/items

Group memberships 6 endpoints

POST /group_memberships

Creates a group membership. Only users with admin-level permissions will be able to use this API.

operationId: GroupMemberships_createMembership

Parameters

Name In Required Type Description
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/GroupMembershipsCreateMembershipRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a new group membership object.
403 Returns an error when the user cannot be added to a group. * `forbidden_by_policy`: Adding a user to a group is forbidden due to information barrier restrictions.
POST /group_memberships
DELETE /group_memberships/{group_membership_id}

Deletes a specific group membership. Only admins of this group or users with admin-level permissions will be able to use this API.

operationId: GroupMemberships_removeUserFromGroup

Parameters

Name In Required Type Description
group_membership_id path required string The ID of the group membership.

Responses

default An unexpected client error.
204 A blank response is returned if the membership was successfully deleted.
DELETE /group_memberships/{group_membership_id}
GET /group_memberships/{group_membership_id}

Retrieves a specific group membership. Only admins of this group or users with admin-level permissions will be able to use this API.

operationId: GroupMemberships_getSpecificMembership

Parameters

Name In Required Type Description
group_membership_id path required string The ID of the group membership.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Responses

default An unexpected client error.
200 Returns the group membership object.
GET /group_memberships/{group_membership_id}
PUT /group_memberships/{group_membership_id}

Updates a user's group membership. Only admins of this group or users with admin-level permissions will be able to use this API.

operationId: GroupMemberships_updateMembership

Parameters

Name In Required Type Description
group_membership_id path required string The ID of the group membership.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/GroupMembershipsUpdateMembershipRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns a new group membership object.
PUT /group_memberships/{group_membership_id}
GET /groups/{group_id}/memberships

Retrieves all the members for a group. Only members of this group or users with admin-level permissions will be able to use this API.

operationId: GroupMemberships_listMembersOfGroup

Parameters

Name In Required Type Description
group_id path required string The ID of the group.
limit query optional integer The maximum number of items to return per page.
offset query optional integer The offset of the item at which to begin the response. Queries with offset parameter value exceeding 10000 will be rejected with a 400 response.

Responses

default An unexpected client error.
200 Returns a collection of membership objects. If there are no memberships, an empty collection will be returned.
GET /groups/{group_id}/memberships
GET /users/{user_id}/memberships

Retrieves all the groups for a user. Only members of this group or users with admin-level permissions will be able to use this API.

operationId: GroupMemberships_getAll

Parameters

Name In Required Type Description
user_id path required string The ID of the user.
limit query optional integer The maximum number of items to return per page.
offset query optional integer The offset of the item at which to begin the response. Queries with offset parameter value exceeding 10000 will be rejected with a 400 response.

Responses

default An unexpected client error.
200 Returns a collection of membership objects. If there are no memberships, an empty collection will be returned.
GET /users/{user_id}/memberships

Groups 5 endpoints

GET /groups

Retrieves all of the groups for a given enterprise. The user must have admin permissions to inspect enterprise's groups.

operationId: get_groups

Parameters

Name In Required Type Description
filter_term query optional string Limits the results to only groups whose `name` starts with the search term.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
limit query optional integer The maximum number of items to return per page.
offset query optional integer The offset of the item at which to begin the response. Queries with offset parameter value exceeding 10000 will be rejected with a 400 response.

Responses

default An unexpected client error.
200 Returns a collection of group objects. If there are no groups, an empty collection will be returned.
GET /groups
POST /groups

Creates a new group of users in an enterprise. Only users with admin permissions can create new groups.

operationId: post_groups

Parameters

Name In Required Type Description
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PostGroupsRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns the new group object.
409 Returns an error a conflict is stopping the group from being created. * `invalid_parameter`: Often returned if the group name is not unique in the enterprise.
POST /groups
DELETE /groups/{group_id}

Permanently deletes a group. Only users with admin-level permissions will be able to use this API.

operationId: Groups_remove

Parameters

Name In Required Type Description
group_id path required string The ID of the group.

Responses

default An unexpected client error.
204 A blank response is returned if the group was successfully deleted.
DELETE /groups/{group_id}
GET /groups/{group_id}

Retrieves information about a group. Only members of this group or users with admin-level permissions will be able to use this API.

operationId: Groups_getInfo

Parameters

Name In Required Type Description
group_id path required string The ID of the group.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Responses

default An unexpected client error.
200 Returns the group object
GET /groups/{group_id}
PUT /groups/{group_id}

Updates a specific group. Only admins of this group or users with admin-level permissions will be able to use this API.

operationId: Groups_updateGroup

Parameters

Name In Required Type Description
group_id path required string The ID of the group.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/GroupsUpdateGroupRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the updated group object.
409 Returns an error a conflict is stopping the group from being created. * `invalid_parameter`: Often returned if the group name is not unique in the enterprise.
PUT /groups/{group_id}

Integration mappings 4 endpoints

GET /integration_mappings/slack

Lists [Slack integration mappings](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack) in a users' enterprise. You need Admin or Co-Admin role to use this endpoint.

operationId: IntegrationMappings_listSlackMappings

Parameters

Name In Required Type Description
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
limit query optional integer The maximum number of items to return per page.
partner_item_type query optional string Mapped item type, for which the mapping should be returned
partner_item_id query optional string ID of the mapped item, for which the mapping should be returned
box_item_id query optional string Box item ID, for which the mappings should be returned
box_item_type query optional string Box item type, for which the mappings should be returned
is_manually_created query optional boolean Whether the mapping has been manually created

Responses

default An unexpected client error.
200 Returns a collection of integration mappings
400 The server cannot or will not process the request due to an apparent client error.
404 Returns a `not_found` error if the integration mapping could not be found.
GET /integration_mappings/slack
POST /integration_mappings/slack

Creates a [Slack integration mapping](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack) by mapping a Slack channel to a Box item. You need Admin or Co-Admin role to use this endpoint.

operationId: IntegrationMappings_createSlackMapping

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/IntegrationMappingSlackCreateRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns the created integration mapping.
400 Returns a `bad_request` if an incorrect `options` was supplied or the Box folder cannot be mapped to this `partner_item_id`. Error codes: * `SERVICE_ACCOUNT_IS_NOT_A_COOWNER_OR_OWNER` - service account doesn't have co-owner collaboration or is not an owner of the `box_item_id`, * `CHANNEL_ALREADY_MAPPED` - channel is already mapped to another `box_item_id`, * `CHANNEL_NOT_FOUND` - channel was not found, * `CHANNEL_NOT_SUITABLE_FOR_CFS` - connect channel, not suitable for Box as Content layer for Slack, * `BOX_ENTERPRISE_MISMATCH` - Box folder must be owned by the enterprise, which is configured to use Box as Content layer for Slack, * `CFS_DISABLED` - Box as Content layer for Slack must be enabled for a provided Slack workspace or organization * `BOX_FOLDER_EXTERNALLY_OWNED` - Box folder must be internally owned to the admin's enterprise, * `JWT_APP_NOT_AUTHORIZED` - JWT authorization error.
404 Returns a `not_found` error if the integration mapping could not be found.
POST /integration_mappings/slack
DELETE /integration_mappings/slack/{integration_mapping_id}

Deletes a [Slack integration mapping](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack). You need Admin or Co-Admin role to use this endpoint.

operationId: IntegrationMappings_deleteSlackMapping

Parameters

Name In Required Type Description
integration_mapping_id path required string An ID of an integration mapping

Responses

default An unexpected client error.
204 Empty body in response
404 Returns a `not_found` error if the integration mapping could not be found.
DELETE /integration_mappings/slack/{integration_mapping_id}
PUT /integration_mappings/slack/{integration_mapping_id}

Updates a [Slack integration mapping](https://support.box.com/hc/en-us/articles/4415585987859-Box-as-the-Content-Layer-for-Slack). Supports updating the Box folder ID and options. You need Admin or Co-Admin role to use this endpoint.

operationId: IntegrationMappings_updateSlackMapping

Parameters

Name In Required Type Description
integration_mapping_id path required string An ID of an integration mapping

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/IntegrationMappingsUpdateSlackMappingRequest"
      }
    }
  },
  "description": "At least one of `box_item` and `options` must be provided."
}

Responses

default An unexpected client error.
200 Returns the updated integration mapping object.
400 Returns a `bad_request` if an incorrect `options` was supplied or the Box folder cannot be mapped to this `partner_item`. Error codes: * `SERVICE_ACCOUNT_IS_NOT_A_COOWNER_OR_OWNER` - service account doesn't have co-owner collaboration or is not an owner of the `box_item_id`, * `BOX_FOLDER_EXTERNALLY_OWNED` - Box folder must be internally owned to the admin's enterprise, * `JWT_APP_NOT_AUTHORIZED` - JWT authorization error.
404 Returns `not_found` if integration mapping object was not found.
PUT /integration_mappings/slack/{integration_mapping_id}

Invites 2 endpoints

POST /invites

Invites an existing external user to join an enterprise. The existing user can not be part of another enterprise and must already have a Box account. Once invited, the user will receive an email and are prompted to accept the invitation within the Box web application. This method requires the "Manage An Enterprise" scope enabled for the application, which can be enabled within the developer console.

operationId: post_invites

Parameters

Name In Required Type Description
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PostInvitesRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns a new invite object.
POST /invites
GET /invites/{invite_id}

Returns the status of a user invite.

operationId: Invites_getUserInviteStatus

Parameters

Name In Required Type Description
invite_id path required string The ID of an invite.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Responses

default An unexpected client error.
200 Returns an invite object
GET /invites/{invite_id}

Metadata cascade policies 5 endpoints

GET /metadata_cascade_policies

Retrieves a list of all the metadata cascade policies that are applied to a given folder. This can not be used on the root folder with ID `0`.

operationId: MetadataCascadePolicies_list

Parameters

Name In Required Type Description
folder_id query required string Specifies which folder to return policies for. This can not be used on the root folder with ID `0`.
owner_enterprise_id query optional string The ID of the enterprise ID for which to find metadata cascade policies. If not specified, it defaults to the current enterprise.
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
offset query optional integer The offset of the item at which to begin the response. Queries with offset parameter value exceeding 10000 will be rejected with a 400 response.

Responses

default An unexpected client error.
200 Returns a list of metadata cascade policies
400 Returns an error when any of the parameters are not in a valid format.
403 Returns an error when the folder can not be accessed. This error often happens when accessing the root folder with ID `0`.
404 Returns an error when the folder can not be found or the user does not have access to the folder. * `not_found` - The folder could not be found or the user does not have access to the folder.
GET /metadata_cascade_policies
POST /metadata_cascade_policies

Creates a new metadata cascade policy that applies a given metadata template to a given folder and automatically cascades it down to any files within that folder. In order for the policy to be applied a metadata instance must first be applied to the folder the policy is to be applied to.

operationId: MetadataCascadePolicies_createPolicy

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/MetadataCascadePoliciesCreatePolicyRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a new of metadata cascade policy
400 Returns an error when any of the parameters are not in a valid format. * `bad_request` - Either the `scope`, `templateKey`, or `folder_id` are not in a valid format.
403 Returns an error when trying to apply a policy to a restricted folder, for example the root folder with ID `0`. * `forbidden` - Although the folder ID was valid and the user has access to the folder, the policy could not be applied to this folder.
404 Returns an error when the template or folder can not be found, or when the user does not have access to the folder or template. * `instance_tuple_not_found` - The template could not be found or the user does not have access to the template. * `not_found` - The folder could not be found or the user does not have access to the folder.
409 Returns an error when a policy for this folder and template is already in place. * `tuple_already_exists` - A cascade policy for this combination of `folder_id`, `scope` and `templateKey` already exists.
POST /metadata_cascade_policies
DELETE /metadata_cascade_policies/{metadata_cascade_policy_id}

Deletes a metadata cascade policy.

operationId: MetadataCascadePolicies_removePolicy

Parameters

Name In Required Type Description
metadata_cascade_policy_id path required string The ID of the metadata cascade policy.

Responses

default An unexpected client error.
204 Returns an empty response when the policy is successfully deleted.
404 Returns an error when the policy can not be found or the user does not have access to the folder. * `instance_not_found` - The policy could not be found * `not_found` - The folder could not be found or the user does not have access to the folder.
DELETE /metadata_cascade_policies/{metadata_cascade_policy_id}
GET /metadata_cascade_policies/{metadata_cascade_policy_id}

Retrieve a specific metadata cascade policy assigned to a folder.

operationId: MetadataCascadePolicies_getPolicyAssignedToFolder

Parameters

Name In Required Type Description
metadata_cascade_policy_id path required string The ID of the metadata cascade policy.

Responses

default An unexpected client error.
200 Returns a metadata cascade policy
404 Returns an error when the policy can not be found or the user does not have access to the folder. * `instance_not_found` - The policy could not be found * `not_found` - The folder could not be found or the user does not have access to the folder.
GET /metadata_cascade_policies/{metadata_cascade_policy_id}
POST /metadata_cascade_policies/{metadata_cascade_policy_id}/apply

Force the metadata on a folder with a metadata cascade policy to be applied to all of its children. This can be used after creating a new cascade policy to enforce the metadata to be cascaded down to all existing files within that folder.

operationId: MetadataCascadePolicies_applyToChildren

Parameters

Name In Required Type Description
metadata_cascade_policy_id path required string The ID of the cascade policy to force-apply.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/MetadataCascadePoliciesApplyToChildrenRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
202 Returns an empty response when the API call was successful. The metadata cascade operation will be performed asynchronously. The API call will return directly, before the cascade operation is complete. There is currently no API to check for the status of this operation.
404 Returns an error when the policy can not be found or the user does not have access to the folder. * `instance_not_found` - The policy could not be found * `not_found` - The folder could not be found or the user does not have access to the folder.
POST /metadata_cascade_policies/{metadata_cascade_policy_id}/apply

Metadata instances (files) 5 endpoints

GET /files/{file_id}/metadata

Retrieves all metadata for a given file.

operationId: MetadataInstancesFiles_listFileMetadata

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.

Responses

default An unexpected client error.
200 Returns all the metadata associated with a file. This API does not support pagination and will therefore always return all of the metadata associated to the file.
403 Returned when the request parameters are not valid.
404 Returned when the user does not have access to the file.
GET /files/{file_id}/metadata
DELETE /files/{file_id}/metadata/{scope}/{template_key}

Deletes a piece of file metadata.

operationId: MetadataInstancesFiles_removeInstance

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
scope path required string The scope of the metadata template
template_key path required string The name of the metadata template

Responses

default An unexpected client error.
204 Returns an empty response when the metadata is successfully deleted.
400 Returned when the request parameters are not valid. This may happen of the `scope` is not valid.
404 Returns an error when the file does not have an instance of the metadata template applied to it, or when the user does not have access to the file. * `instance_not_found` - An instance of the metadata template with the given `scope` and `templateKey` was not found on this file. * `not_found` - The file was not found, or the user does not have access to the file.
405 Returned when the method was not allowed.
DELETE /files/{file_id}/metadata/{scope}/{template_key}
GET /files/{file_id}/metadata/{scope}/{template_key}

Retrieves the instance of a metadata template that has been applied to a file.

operationId: MetadataInstancesFiles_getInstance

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
scope path required string The scope of the metadata template
template_key path required string The name of the metadata template

Responses

default An unexpected client error.
201 An instance of the metadata template that includes additional "key:value" pairs defined by the user or an application.
403 Returned when the request parameters are not valid.
404 Returned if the metadata template specified was not applied to this file or the user does not have access to the file. * `instance_not_found` - The metadata template was not applied to the file.
405 Returned when the method was not allowed.
GET /files/{file_id}/metadata/{scope}/{template_key}
POST /files/{file_id}/metadata/{scope}/{template_key}

Applies an instance of a metadata template to a file. In most cases only values that are present in the metadata template will be accepted, except for the `global.properties` template which accepts any key-value pair.

operationId: MetadataInstancesFiles_applyTemplate

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
scope path required string The scope of the metadata template
template_key path required string The name of the metadata template

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/MetadataInstancesFilesApplyTemplateRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns the instance of the template that was applied to the file, including the data that was applied to the template.
400 Returns an error when the request body is not valid. * `schema_validation_failed` - The request body contains a value for a for a field that either does not exist, or for which the value or type does not match the expected field type. An example might be an unknown option for an `enum` or `multiSelect` field.
404 Returns an error when the file or metadata template was not found. * `not_found` - The file could not be found, or the user does not have access to the file. * `instance_tuple_not_found` - The metadata template was not found.
409 Returns an error when an instance of this metadata template is already present on the file. * `tuple_already_exists` - An instance of them metadata template already exists on the file.
POST /files/{file_id}/metadata/{scope}/{template_key}
PUT /files/{file_id}/metadata/{scope}/{template_key}

Updates a piece of metadata on a file. The metadata instance can only be updated if the template has already been applied to the file before. When editing metadata, only values that match the metadata template schema will be accepted. The update is applied atomically. If any errors occur during the application of the operations, the metadata instance will not be changed.

operationId: MetadataInstancesFiles_updateInstanceOnFile

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
scope path required string The scope of the metadata template
template_key path required string The name of the metadata template

Request Body

{
  "content": {
    "application/json-patch+json": {
      "schema": {
        "$ref": "#/components/schemas/MetadataInstancesFilesUpdateInstanceOnFileRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the updated metadata template instance, with the custom template data included.
400 Returns an error when the request body is not valid. * `bad_request` - The request body format is not an array of valid JSON Patch objects.
500 Returns an error in some edge cases when the request body is not a valid array of JSON Patch items.
PUT /files/{file_id}/metadata/{scope}/{template_key}

Metadata instances (folders) 5 endpoints

GET /folders/{folder_id}/metadata

Retrieves all metadata for a given folder. This can not be used on the root folder with ID `0`.

operationId: MetadataInstancesFolders_listOnFolder

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.

Responses

default An unexpected client error.
200 Returns all the metadata associated with a folder. This API does not support pagination and will therefore always return all of the metadata associated to the folder.
403 Returned when the request parameters are not valid. * `forbidden` - this operation is not allowed on the Root folder.
404 Returned when the user does not have access to the folder.
GET /folders/{folder_id}/metadata
DELETE /folders/{folder_id}/metadata/{scope}/{template_key}

Deletes a piece of folder metadata.

operationId: MetadataInstancesFolders_removeInstance

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.
scope path required string The scope of the metadata template
template_key path required string The name of the metadata template

Responses

default An unexpected client error.
204 Returns an empty response when the metadata is successfully deleted.
400 Returned when the request parameters are not valid. This may happen of the `scope` is not valid.
404 Returns an error when the folder does not have an instance of the metadata template applied to it, or when the user does not have access to the folder. * `instance_not_found` - An instance of the metadata template with the given `scope` and `templateKey` was not found on this folder. * `not_found` - The folder was not found, or the user does not have access to the folder.
405 Returned when the method was not allowed. This often happens when the folder ID is not valid or the root folder with ID `0`.
DELETE /folders/{folder_id}/metadata/{scope}/{template_key}
GET /folders/{folder_id}/metadata/{scope}/{template_key}

Retrieves the instance of a metadata template that has been applied to a folder. This can not be used on the root folder with ID `0`.

operationId: MetadataInstancesFolders_getFolderMetadataInstance

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.
scope path required string The scope of the metadata template
template_key path required string The name of the metadata template

Responses

default An unexpected client error.
201 An instance of the metadata template that includes additional "key:value" pairs defined by the user or an application.
403 Returned when the request parameters are not valid.
404 Returned if the metadata template specified was not applied to this folder or the user does not have access to the folder. * `instance_not_found` - The metadata template was not applied to the folder.
405 Returned when the method was not allowed. This often happens when the folder ID is not valid or the root folder with ID `0`.
GET /folders/{folder_id}/metadata/{scope}/{template_key}
POST /folders/{folder_id}/metadata/{scope}/{template_key}

Applies an instance of a metadata template to a folder. In most cases only values that are present in the metadata template will be accepted, except for the `global.properties` template which accepts any key-value pair. To display the metadata template in the Box web app the enterprise needs to be configured to enable **Cascading Folder Level Metadata** for the user in the admin console.

operationId: MetadataInstancesFolders_applyTemplate

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.
scope path required string The scope of the metadata template
template_key path required string The name of the metadata template

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/MetadataInstancesFoldersApplyTemplateRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns the instance of the template that was applied to the folder, including the data that was applied to the template.
400 Returns an error when the request body is not valid. * `schema_validation_failed` - The request body contains a value for a field that either does not exist, or for which the value or type does not match the expected field type. An example might be an unknown option for an `enum` or `multiSelect` field.
404 Returns an error when the folder or metadata template was not found. * `not_found` - The folder could not be found, or the user does not have access to the folder. * `instance_tuple_not_found` - The metadata template was not found.
409 Returns an error when an instance of this metadata template is already present on the folder. * `tuple_already_exists` - An instance of them metadata template already exists on the file.
POST /folders/{folder_id}/metadata/{scope}/{template_key}
PUT /folders/{folder_id}/metadata/{scope}/{template_key}

Updates a piece of metadata on a folder. The metadata instance can only be updated if the template has already been applied to the folder before. When editing metadata, only values that match the metadata template schema will be accepted. The update is applied atomically. If any errors occur during the application of the operations, the metadata instance will not be changed.

operationId: MetadataInstancesFolders_updateInstanceOnFolder

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.
scope path required string The scope of the metadata template
template_key path required string The name of the metadata template

Request Body

{
  "content": {
    "application/json-patch+json": {
      "schema": {
        "$ref": "#/components/schemas/MetadataInstancesFoldersUpdateInstanceOnFolderRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the updated metadata template instance, with the custom template data included.
400 Returns an error when the request body is not valid. * `bad_request` - The request body format is not an array of valid JSON Patch objects.
500 Returns an error in some edge cases when the request body is not a valid array of JSON Patch items.
PUT /folders/{folder_id}/metadata/{scope}/{template_key}

Metadata templates 8 endpoints

GET /metadata_templates

Finds a metadata template by searching for the ID of an instance of the template.

operationId: MetadataTemplates_findByInstanceId

Parameters

Name In Required Type Description
metadata_instance_id query required string The ID of an instance of the metadata template to find.

Responses

default An unexpected client error.
200 Returns a list containing the 1 metadata template that matches the instance ID.
400 Returned when the request parameters are not valid.
GET /metadata_templates
GET /metadata_templates/enterprise

Used to retrieve all metadata templates created to be used specifically within the user's enterprise

operationId: MetadataTemplates_listForEnterprise

Parameters

Name In Required Type Description
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns all of the metadata templates within an enterprise and their corresponding schema.
400 Returned when the request parameters are not valid.
GET /metadata_templates/enterprise
GET /metadata_templates/global

Used to retrieve all generic, global metadata templates available to all enterprises using Box.

operationId: MetadataTemplates_listGlobal

Parameters

Name In Required Type Description
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns all of the metadata templates available to all enterprises and their corresponding schema.
400 Returned when the request parameters are not valid.
GET /metadata_templates/global
POST /metadata_templates/schema

Creates a new metadata template that can be applied to files and folders.

operationId: MetadataTemplates_createNewTemplate

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/MetadataTemplatesCreateNewTemplateRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 The schema representing the metadata template created.
400 Returned if the request parameters or body is not valid. * `bad_request` when the body does not contain a valid request. In many cases this response will include extra details on what fields are missing.
403 Returned when the user does not have the permission to create the metadata template. This can happen for a few reasons, most commonly when the user does not have (co-)admin permissions, or the application tries to create a template with the `global` scope.
POST /metadata_templates/schema
DELETE /metadata_templates/{scope}/{template_key}/schema

Delete a metadata template and its instances. This deletion is permanent and can not be reversed.

operationId: MetadataTemplates_deleteSchema

Parameters

Name In Required Type Description
scope path required string The scope of the metadata template
template_key path required string The name of the metadata template

Responses

default An unexpected client error.
204 Returns an empty response when the metadata template is successfully deleted.
400 Request body does not contain a valid metadata schema.
403 Request body contains a scope that the user is not allowed to create a template for.
DELETE /metadata_templates/{scope}/{template_key}/schema
GET /metadata_templates/{scope}/{template_key}/schema

Retrieves a metadata template by its `scope` and `templateKey` values. To find the `scope` and `templateKey` for a template, list all templates for an enterprise or globally, or list all templates applied to a file or folder.

operationId: MetadataTemplates_getByNameSchema

Parameters

Name In Required Type Description
scope path required string The scope of the metadata template
template_key path required string The name of the metadata template

Responses

default An unexpected client error.
200 Returns the metadata template matching the `scope` and `template` name.
400 Returned if any of the request parameters are not valid. * `bad_request`: Often returned when the scope of the template is not recognised. Please make sure to use either `enterprise` or `global` as the `scope` value.
404 Returned when a template with the given `scope` and `template_key` can not be found.
GET /metadata_templates/{scope}/{template_key}/schema
PUT /metadata_templates/{scope}/{template_key}/schema

Updates a metadata template. The metadata template can only be updated if the template already exists. The update is applied atomically. If any errors occur during the application of the operations, the metadata template will not be changed.

operationId: MetadataTemplates_updateSchema

Parameters

Name In Required Type Description
scope path required string The scope of the metadata template
template_key path required string The name of the metadata template

Request Body

{
  "content": {
    "application/json-patch+json": {
      "schema": {
        "$ref": "#/components/schemas/MetadataTemplatesUpdateSchemaRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the updated metadata template, with the custom template data included.
400 The request body does not contain a valid metadata schema.
403 The request body contains a scope that the user is not allowed to create templates for.
404 The requested template could not be found
PUT /metadata_templates/{scope}/{template_key}/schema
GET /metadata_templates/{template_id}

Retrieves a metadata template by its ID.

operationId: MetadataTemplates_getById

Parameters

Name In Required Type Description
template_id path required string The ID of the template

Responses

default An unexpected client error.
200 Returns the metadata template that matches the ID.
400 Returned if any of the request parameters are not valid. * `bad_request`: Often returned with a message when the ID of the template is not recognised.
GET /metadata_templates/{template_id}

Recent items 1 endpoints

GET /recent_items

Returns information about the recent items accessed by a user, either in the last 90 days or up to the last 1000 items accessed.

operationId: RecentItems_listAccessedItems

Parameters

Name In Required Type Description
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
limit query optional integer The maximum number of items to return per page.
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.

Responses

default An unexpected client error.
200 Returns a list recent items access by a user.
GET /recent_items

Retention policies 5 endpoints

GET /retention_policies

Retrieves all of the retention policies for an enterprise.

operationId: RetentionPolicies_listAll

Parameters

Name In Required Type Description
policy_name query optional string Filters results by a case sensitive prefix of the name of retention policies.
policy_type query optional string Filters results by the type of retention policy.
created_by_user_id query optional string Filters results by the ID of the user who created policy.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
limit query optional integer The maximum number of items to return per page.
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination.

Responses

default An unexpected client error.
200 Returns a list retention policies in the enterprise.
400 Returns a `bad_request` if a non existent `policy_type` was specified.
404 Returns a `not_found` error if the user specified in `created_by_user_id` does not exist.
GET /retention_policies
POST /retention_policies

Creates a retention policy.

operationId: RetentionPolicies_createPolicy

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/RetentionPoliciesCreatePolicyRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a new retention policy object.
400 Returns a `bad_request` error with the `retention_length` was specified for a `infinite` retention policy, an incorrect `disposition_action` was set, or description exceeds maximum length of 500 characters.
409 Returns an error if a retention policy with the given name already exists
POST /retention_policies
DELETE /retention_policies/{retention_policy_id}

Permanently deletes a retention policy.

operationId: RetentionPolicies_deletePolicy

Parameters

Name In Required Type Description
retention_policy_id path required string The ID of the retention policy.

Responses

default An unexpected client error.
204 Returns an empty response when the policy has been deleted.
403 Returns an error if the policy is non-modifiable or the user does not have the required access to perform the action.
404 Returns an error if the policy is not found.
DELETE /retention_policies/{retention_policy_id}
GET /retention_policies/{retention_policy_id}

Retrieves a retention policy.

operationId: RetentionPolicies_getPolicy

Parameters

Name In Required Type Description
retention_policy_id path required string The ID of the retention policy.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Responses

default An unexpected client error.
200 Returns the retention policy object.
GET /retention_policies/{retention_policy_id}
PUT /retention_policies/{retention_policy_id}

Updates a retention policy.

operationId: RetentionPolicies_updatePolicy

Parameters

Name In Required Type Description
retention_policy_id path required string The ID of the retention policy.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/RetentionPoliciesUpdatePolicyRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the updated retention policy object.
400 Returns a `bad_request` if an incorrect `disposition_action` was set or description exceeds maximum length of 500 characters.
403 Returns an error when a user wants to shorten the duration of a non-modifiable policy, or to convert a non-modifiable policy to a modifiable one. Note: Lengthening policy duration is allowed.
409 Returns an error if a retention policy with the given name already exists
PUT /retention_policies/{retention_policy_id}

Retention policy assignments 6 endpoints

GET /retention_policies/{retention_policy_id}/assignments

Returns a list of all retention policy assignments associated with a specified retention policy.

operationId: RetentionPolicyAssignments_listAllAssignments

Parameters

Name In Required Type Description
retention_policy_id path required string The ID of the retention policy.
type query optional string The type of the retention policy assignment to retrieve.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns a list of the retention policy assignments associated with the specified retention policy.
400 Returns an error if an unknown `type` is specified.
GET /retention_policies/{retention_policy_id}/assignments
POST /retention_policy_assignments

Assigns a retention policy to an item.

operationId: RetentionPolicyAssignments_createRetentionAssignment

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/RetentionPolicyAssignmentsCreateRetentionAssignmentRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a new retention policy assignment object.
400 Returns an error if an `id` is specified while assigning the retention policy to an enterprise. Returns an error if `start_date_field` is present but `assign_to.type` is not `metadata_template` Returns an error if `start_date_field` is present, but belongs to a different metadata template than the one specified in `assign_to.id` Returns an error if `start_date_field` is present, but the `retention_policy` has a `retention_length` of "indefinite" Returns an error if `start_date_field` is present, but cannot be resolved to a valid metadata date field.
404 Returns an error if no retention policy with the given `policy_id` exists.
409 Returns an error if a retention policy of equal or greater length has already been assigned to this item.
POST /retention_policy_assignments
DELETE /retention_policy_assignments/{retention_policy_assignment_id}

Removes a retention policy assignment applied to content.

operationId: RetentionPolicyAssignments_removeAssignment

Parameters

Name In Required Type Description
retention_policy_assignment_id path required string The ID of the retention policy assignment.

Responses

default An unexpected client error.
204 Returns an empty response when the policy assignment is successfully deleted.
403 Returns an error when the assignment relates to a retention policy that cannot be modified.
404 Returns an error when the retention policy assignment does not exist.
DELETE /retention_policy_assignments/{retention_policy_assignment_id}
GET /retention_policy_assignments/{retention_policy_assignment_id}

Retrieves a retention policy assignment

operationId: RetentionPolicyAssignments_getAssignment

Parameters

Name In Required Type Description
retention_policy_assignment_id path required string The ID of the retention policy assignment.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Responses

default An unexpected client error.
200 Returns the retention policy assignment object.
GET /retention_policy_assignments/{retention_policy_assignment_id}
GET /retention_policy_assignments/{retention_policy_assignment_id}/file_versions_under_retention

Returns a list of file versions under retention for a retention policy assignment.

operationId: RetentionPolicyAssignments_listFileVersionsUnderRetention

Parameters

Name In Required Type Description
retention_policy_assignment_id path required string The ID of the retention policy assignment.
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns a list of file versions under retention that are associated with the specified retention policy assignment.
400 Returns an error if `retention_policy_assignment_id` is not specified.
GET /retention_policy_assignments/{retention_policy_assignment_id}/file_versions_under_retention
GET /retention_policy_assignments/{retention_policy_assignment_id}/files_under_retention

Returns a list of files under retention for a retention policy assignment.

operationId: RetentionPolicyAssignments_listFilesUnderRetention

Parameters

Name In Required Type Description
retention_policy_assignment_id path required string The ID of the retention policy assignment.
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns a list of files under retention that are associated with the specified retention policy assignment.
400 Returns an error if `retention_policy_assignment_id` is not specified.
GET /retention_policy_assignments/{retention_policy_assignment_id}/files_under_retention

Session termination 2 endpoints

POST /groups/terminate_sessions

Validates the roles and permissions of the group, and creates asynchronous jobs to terminate the group's sessions. Returns the status for the POST request.

operationId: SessionTermination_createTerminationJobs

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SessionTerminationCreateTerminationJobsRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
202 Returns a message about the request status.
400 Returns an error if some of the parameters are not valid. * `Groups can not be NULL or EMPTY` when no value is provided * `group id format is string` when the provided group id format is incorrect * `Supported payload format is JSON` when the provided payload format is incorrect
403 Returns an error if there are insufficient permissions.
404 Returns an error if the resource could not be found.
429 Returns an error if the request limit is exceeded.
500 Returns an error if there is an internal server issue.
503 Returns an error if the request timed out.
POST /groups/terminate_sessions
POST /users/terminate_sessions

Validates the roles and permissions of the user, and creates asynchronous jobs to terminate the user's sessions. Returns the status for the POST request.

operationId: SessionTermination_createSessionTerminationJobs

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SessionTerminationCreateSessionTerminationJobsRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
202 Returns a message about the request status.
400 Returns an error if some of the parameters are not valid. * `Users can not be NULL or EMPTY` when no value is provided * `User id format is string` when the provided user id format is incorrect * `Supported payload format is JSON` when the provided payload format is incorrect
403 Returns an error if there are insufficient permissions.
404 Returns an error if the resource could not be found.
429 Returns an error if the rate limit is exceeded.
500 Returns an error if there is an internal server issue.
503 Returns an error if the request timed out.
POST /users/terminate_sessions

Shield information barrier reports 3 endpoints

GET /shield_information_barrier_reports

Lists shield information barrier reports.

operationId: ShieldInformationBarrierReports_listReports

Parameters

Name In Required Type Description
shield_information_barrier_id query required string The ID of the shield information barrier.
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns a paginated list of shield information barrier report objects.
404 Returns a `not_found` error if the Shield Information Barrier could not be found.
GET /shield_information_barrier_reports
POST /shield_information_barrier_reports

Creates a shield information barrier report for a given barrier.

operationId: ShieldInformationBarrierReports_createReport

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ShieldInformationBarrierReference"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns the shield information barrier report information object.
404 Returns a `not_found` error if the shield information barrier report was not found.
409 Returns a `conflict` error if a shield information barrier report is currently being created.
POST /shield_information_barrier_reports
GET /shield_information_barrier_reports/{shield_information_barrier_report_id}

Retrieves a shield information barrier report by its ID.

operationId: ShieldInformationBarrierReports_getById

Parameters

Name In Required Type Description
shield_information_barrier_report_id path required string The ID of the shield information barrier Report.

Responses

default An unexpected client error.
200 Returns the shield information barrier report object.
404 Returns a `not_found` error if the shield information barrier Report was not found.
GET /shield_information_barrier_reports/{shield_information_barrier_report_id}

Shield information barrier segment members 4 endpoints

GET /shield_information_barrier_segment_members

Lists shield information barrier segment members based on provided segment IDs.

operationId: ShieldInformationBarrierSegmentMembers_listSegmentMembersBasedOnIds

Parameters

Name In Required Type Description
shield_information_barrier_segment_id query required string The ID of the shield information barrier segment.
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns a paginated list of shield information barrier segment member objects.
GET /shield_information_barrier_segment_members
POST /shield_information_barrier_segment_members

Creates a new shield information barrier segment member.

operationId: ShieldInformationBarrierSegmentMembers_createNewMember

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ShieldInformationBarrierSegmentMembersCreateNewMemberRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a new shield information barrier segment member object.
404 Returns an error if the shield information barrier or segment was not found.
POST /shield_information_barrier_segment_members
DELETE /shield_information_barrier_segment_members/{shield_information_barrier_segment_member_id}

Deletes a shield information barrier segment member based on provided ID.

operationId: ShieldInformationBarrierSegmentMembers_removeById

Parameters

Name In Required Type Description
shield_information_barrier_segment_member_id path required string The ID of the shield information barrier segment Member.

Responses

default An unexpected client error.
204 Returns an empty response if the segment member was deleted successfully.
404 Returns a `not_found` error if the shield information barrier segment member was not found.
DELETE /shield_information_barrier_segment_members/{shield_information_barrier_segment_member_id}
GET /shield_information_barrier_segment_members/{shield_information_barrier_segment_member_id}

Retrieves a shield information barrier segment member by its ID.

operationId: ShieldInformationBarrierSegmentMembers_getById

Parameters

Name In Required Type Description
shield_information_barrier_segment_member_id path required string The ID of the shield information barrier segment Member.

Responses

default An unexpected client error.
200 Returns the shield information barrier segment member object.
404 Returns a `not_found` error if the shield information barrier segment member was not found.
GET /shield_information_barrier_segment_members/{shield_information_barrier_segment_member_id}

Shield information barrier segment restrictions 4 endpoints

GET /shield_information_barrier_segment_restrictions

Lists shield information barrier segment restrictions based on provided segment ID.

operationId: ShieldInformationBarrierSegmentRestrictions_listBasedOnSegmentId

Parameters

Name In Required Type Description
shield_information_barrier_segment_id query required string The ID of the shield information barrier segment.
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns a paginated list of shield information barrier segment restriction objects.
GET /shield_information_barrier_segment_restrictions
POST /shield_information_barrier_segment_restrictions

Creates a shield information barrier segment restriction object.

operationId: ShieldInformationBarrierSegmentRestrictions_createBarrierObject

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ShieldInformationBarrierSegmentRestrictionsCreateBarrierObjectRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns the newly created Shield Information Barrier Segment Restriction object.
404 Returns a `not_found` error if the shield information barrier or segment was not found.
POST /shield_information_barrier_segment_restrictions
DELETE /shield_information_barrier_segment_restrictions/{shield_information_barrier_segment_restriction_id}

Delete shield information barrier segment restriction based on provided ID.

operationId: ShieldInformationBarrierSegmentRestrictions_removeById

Parameters

Name In Required Type Description
shield_information_barrier_segment_restriction_id path required string The ID of the shield information barrier segment Restriction.

Responses

default An unexpected client error.
204 Empty body in response
404 Returns a `not_found` error if the shield information barrier segment restriction was not found.
DELETE /shield_information_barrier_segment_restrictions/{shield_information_barrier_segment_restriction_id}
GET /shield_information_barrier_segment_restrictions/{shield_information_barrier_segment_restriction_id}

Retrieves a shield information barrier segment restriction based on provided ID.

operationId: ShieldInformationBarrierSegmentRestrictions_getById

Parameters

Name In Required Type Description
shield_information_barrier_segment_restriction_id path required string The ID of the shield information barrier segment Restriction.

Responses

default An unexpected client error.
200 Returns the shield information barrier segment restriction object.
404 Returns a `not_found` error if the shield information barrier segment restriction was not found.
GET /shield_information_barrier_segment_restrictions/{shield_information_barrier_segment_restriction_id}

Shield information barrier segments 5 endpoints

GET /shield_information_barrier_segments

Retrieves a list of shield information barrier segment objects for the specified Information Barrier ID.

operationId: ShieldInformationBarrierSegments_listInformationObjects

Parameters

Name In Required Type Description
shield_information_barrier_id query required string The ID of the shield information barrier.
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns a paginated list of shield information barrier segment objects.
404 Returns a `not_found` error if the shield information Barrier of given ID was not found.
GET /shield_information_barrier_segments
POST /shield_information_barrier_segments

Creates a shield information barrier segment.

operationId: ShieldInformationBarrierSegments_createSegment

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ShieldInformationBarrierSegmentsCreateSegmentRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a new shield information barrier segment object.
404 Returns an error if the shield information barrier was not found.
409 Returns an error if there exists an shield information barrier segment with same name.
POST /shield_information_barrier_segments
DELETE /shield_information_barrier_segments/{shield_information_barrier_segment_id}

Deletes the shield information barrier segment based on provided ID.

operationId: ShieldInformationBarrierSegments_deleteSegmentById

Parameters

Name In Required Type Description
shield_information_barrier_segment_id path required string The ID of the shield information barrier segment.

Responses

default An unexpected client error.
204 Empty body in response
404 Returns a `not_found` error if the shield information barrier segment with specified ID was not found.
DELETE /shield_information_barrier_segments/{shield_information_barrier_segment_id}
GET /shield_information_barrier_segments/{shield_information_barrier_segment_id}

Retrieves shield information barrier segment based on provided ID..

operationId: ShieldInformationBarrierSegments_getById

Parameters

Name In Required Type Description
shield_information_barrier_segment_id path required string The ID of the shield information barrier segment.

Responses

default An unexpected client error.
200 Returns the shield information barrier segment object.
404 Returns a `not_found` error if the shield information barrier segment was not found.
GET /shield_information_barrier_segments/{shield_information_barrier_segment_id}
PUT /shield_information_barrier_segments/{shield_information_barrier_segment_id}

Updates the shield information barrier segment based on provided ID..

operationId: ShieldInformationBarrierSegments_updateById

Parameters

Name In Required Type Description
shield_information_barrier_segment_id path required string The ID of the shield information barrier segment.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ShieldInformationBarrierSegmentsUpdateByIdRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the updated shield information barrier segment object.
404 Returns a `not_found` error if the shield information Barrier Segment was not found.
409 Returns an error if there exists a shield information Barrier Segment with the same name.
PUT /shield_information_barrier_segments/{shield_information_barrier_segment_id}

Shield information barriers 4 endpoints

GET /shield_information_barriers

Retrieves a list of shield information barrier objects for the enterprise of JWT.

operationId: ShieldInformationBarriers_listInformationObjects

Parameters

Name In Required Type Description
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns a paginated list of shield information barrier objects, empty list if currently no barrier.
404 Returns a `not_found` error if could not find an enterprise using JWT.
GET /shield_information_barriers
POST /shield_information_barriers

Creates a shield information barrier to separate individuals/groups within the same firm and prevents confidential information passing between them.

operationId: ShieldInformationBarriers_createBarrier

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ShieldInformationBarriersCreateBarrierRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a new shield information barrier object.
404 Returns an error if the enterprise was not found.
POST /shield_information_barriers
POST /shield_information_barriers/change_status

Change status of shield information barrier with the specified ID.

operationId: ShieldInformationBarriers_addChangedStatus

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ShieldInformationBarriersAddChangedStatusRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the updated shield information barrier object.
404 Returns a `not_found` error if the shield information barrier was not found.
409 Returns an error if there exists Conflicts with existing information barriers.
POST /shield_information_barriers/change_status
GET /shield_information_barriers/{shield_information_barrier_id}

Get shield information barrier based on provided ID.

operationId: ShieldInformationBarriers_getById

Parameters

Name In Required Type Description
shield_information_barrier_id path required string The ID of the shield information barrier.

Responses

default An unexpected client error.
200 Returns the shield information barrier object.
404 Returns a `not_found` error if the shield information barrier was not found.
GET /shield_information_barriers/{shield_information_barrier_id}

Sign requests 5 endpoints

GET /sign_requests

Gets sign requests created by a user. If the `sign_files` and/or `parent_folder` are deleted, the sign request will not return in the list.

operationId: SignRequests_list

Parameters

Name In Required Type Description
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns a collection of sign requests
GET /sign_requests
POST /sign_requests

Creates a sign request. This involves preparing a document for signing and sending the sign request to signers.

operationId: SignRequests_createRequest

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SignRequestCreateRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a Sign Request object.
POST /sign_requests
GET /sign_requests/{sign_request_id}

Gets a sign request by ID.

operationId: SignRequests_getById

Parameters

Name In Required Type Description
sign_request_id path required string The ID of the sign request

Responses

default An unexpected client error.
200 Returns a sign request
404 Returns an error when the sign request cannot be found, the user does not have access to the sign request, or `sign_files` and/or `parent_folder` is deleted.
GET /sign_requests/{sign_request_id}
POST /sign_requests/{sign_request_id}/cancel

Cancels a sign request.

operationId: SignRequests_cancelRequest

Parameters

Name In Required Type Description
sign_request_id path required string The ID of the sign request

Responses

default An unexpected client error.
200 Returns a Sign Request object.
404 Returns an error when the sign request cannot be found or the user does not have access to the sign request.
POST /sign_requests/{sign_request_id}/cancel
POST /sign_requests/{sign_request_id}/resend

Resends a sign request email to all outstanding signers.

operationId: SignRequests_resendSignRequestEmails

Parameters

Name In Required Type Description
sign_request_id path required string The ID of the sign request

Responses

default An unexpected client error.
202 Returns an empty response when the API call was successful. The email notifications will be sent asynchronously.
404 Returns an error when the sign request cannot be found or the user does not have access to the sign request.
POST /sign_requests/{sign_request_id}/resend

Sign templates 2 endpoints

GET /sign_templates

Gets Box Sign templates created by a user.

operationId: SignTemplates_listTemplates

Parameters

Name In Required Type Description
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns a collection of templates.
401 Returned when the access token provided in the `Authorization` header is not recognized or not provided.
GET /sign_templates
GET /sign_templates/{template_id}

Fetches details of a specific Box Sign template.

operationId: SignTemplates_getDetails

Parameters

Name In Required Type Description
template_id path required string The ID of a Box Sign template.

Responses

default An unexpected client error.
200 Returns details of a template.
401 Returned when the access token provided in the `Authorization` header is not recognized or not provided.
404 Returned if the template is not found or the user does not have access to the associated template.
GET /sign_templates/{template_id}

Skills 5 endpoints

DELETE /files/{file_id}/metadata/global/boxSkillsCards

Removes any Box Skills cards metadata from a file.

operationId: Skills_removeBoxSkillCards

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.

Responses

default An unexpected client error.
204 Returns an empty response when the cards are successfully deleted.
404 Returns an error when the file does not have an instance of the Box Skill cards applied to it, or when the user does not have access to the file. * `instance_not_found` - An instance of the metadata template for Box Skill cards was not found on this file. * `not_found` - The file was not found, or the user does not have access to the file.
405 Returned when the method was not allowed.
DELETE /files/{file_id}/metadata/global/boxSkillsCards
GET /files/{file_id}/metadata/global/boxSkillsCards

List the Box Skills metadata cards that are attached to a file.

operationId: Skills_listBoxSkillCards

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.

Responses

default An unexpected client error.
200 Returns all the metadata associated with a file. This API does not support pagination and will therefore always return all of the metadata associated to the file.
GET /files/{file_id}/metadata/global/boxSkillsCards
POST /files/{file_id}/metadata/global/boxSkillsCards

Applies one or more Box Skills metadata cards to a file.

operationId: Skills_applyBoxSkillCards

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SkillsApplyBoxSkillCardsRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns the instance of the template that was applied to the file, including the data that was applied to the template.
400 Returns an error when the request body is not valid. * `schema_validation_failed` - The request body contains a value for a for a field that either does not exist, or for which the value or type does not match the expected field type. An example might be an unknown option for an `enum` or `multiSelect` field.
404 Returns an error when the file or metadata template was not found. * `not_found` - The file could not be found, or the user does not have access to the file. * `instance_tuple_not_found` - The metadata template was not found.
409 Returns an error when an instance of this metadata template is already present on the file. * `tuple_already_exists` - An instance of them metadata template already exists on the file.
POST /files/{file_id}/metadata/global/boxSkillsCards
PUT /files/{file_id}/metadata/global/boxSkillsCards

Updates one or more Box Skills metadata cards to a file.

operationId: Skills_updateBoxSkillCardsOnFile

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.

Request Body

{
  "content": {
    "application/json-patch+json": {
      "schema": {
        "$ref": "#/components/schemas/SkillsUpdateBoxSkillCardsOnFileRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the updated metadata template, with the custom template data included.
404 The requested file could not be found
PUT /files/{file_id}/metadata/global/boxSkillsCards
PUT /skill_invocations/{skill_id}

An alternative method that can be used to overwrite and update all Box Skill metadata cards on a file.

operationId: Skills_updateAllBoxSkillCards

Parameters

Name In Required Type Description
skill_id path required string The ID of the skill to apply this metadata for.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SkillsUpdateAllBoxSkillCardsRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns an empty response when the card has been successfully updated.
400 Returns an error when the request body is not valid. * `schema_validation_failed` - The request body contains a value for a for a field that either does not exist, or for which the value or type does not match the expected field type. An example might be an unknown option for an `enum` or `multiSelect` field.
404 Returns an error when the file could not be found or the user does not have access. * `not_found` - The file could not be found, or the user does not have access to the file.
PUT /skill_invocations/{skill_id}

Standard and zones storage policies 2 endpoints

GET /storage_policies

Fetches all the storage policies in the enterprise.

operationId: StandardAndZonesStoragePolicies_listPolicies

Parameters

Name In Required Type Description
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns a collection of storage policies.
GET /storage_policies
GET /storage_policies/{storage_policy_id}

Fetches a specific storage policy.

operationId: StandardAndZonesStoragePolicies_getSpecific

Parameters

Name In Required Type Description
storage_policy_id path required string The ID of the storage policy.

Responses

default An unexpected client error.
200 Returns a storage policy object.
GET /storage_policies/{storage_policy_id}

Standard and zones storage policy assignments 5 endpoints

GET /storage_policy_assignments

Fetches all the storage policy assignment for an enterprise or user.

operationId: StandardAndZonesStoragePolicyAssignments_listAssignments

Parameters

Name In Required Type Description
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
resolved_for_type query required string The target type to return assignments for
resolved_for_id query required string The ID of the user or enterprise to return assignments for

Responses

default An unexpected client error.
200 Returns a collection of storage policies for the enterprise or user.
GET /storage_policy_assignments
POST /storage_policy_assignments

Creates a storage policy assignment for an enterprise or user.

operationId: StandardAndZonesStoragePolicyAssignments_createAssignment

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/StandardAndZonesStoragePolicyAssignmentsCreateAssignmentRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the new storage policy assignment created.
POST /storage_policy_assignments
DELETE /storage_policy_assignments/{storage_policy_assignment_id}

Delete a storage policy assignment. Deleting a storage policy assignment on a user will have the user inherit the enterprise's default storage policy. There is a rate limit for calling this endpoint of only twice per user in a 24 hour time frame.

operationId: StandardAndZonesStoragePolicyAssignments_unassignStoragePolicy

Parameters

Name In Required Type Description
storage_policy_assignment_id path required string The ID of the storage policy assignment.

Responses

default An unexpected client error.
204 Returns an empty response when the storage policy assignment is successfully deleted.
DELETE /storage_policy_assignments/{storage_policy_assignment_id}
GET /storage_policy_assignments/{storage_policy_assignment_id}

Fetches a specific storage policy assignment.

operationId: StandardAndZonesStoragePolicyAssignments_getSpecificAssignment

Parameters

Name In Required Type Description
storage_policy_assignment_id path required string The ID of the storage policy assignment.

Responses

default An unexpected client error.
200 Returns a storage policy assignment object.
GET /storage_policy_assignments/{storage_policy_assignment_id}
PUT /storage_policy_assignments/{storage_policy_assignment_id}

Updates a specific storage policy assignment.

operationId: StandardAndZonesStoragePolicyAssignments_updateSpecificAssignment

Parameters

Name In Required Type Description
storage_policy_assignment_id path required string The ID of the storage policy assignment.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/StandardAndZonesStoragePolicyAssignmentsUpdateSpecificAssignmentRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns an updated storage policy assignment object.
PUT /storage_policy_assignments/{storage_policy_assignment_id}

Task assignments 5 endpoints

POST /task_assignments

Assigns a task to a user. A task can be assigned to more than one user by creating multiple assignments.

operationId: TaskAssignments_assignMultipleUsers

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/TaskAssignmentsAssignMultipleUsersRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a new task assignment object.
403 Returns an error if a change is attempted for a completed task or the user does not have access to the item linked to the task for the given task assignment.
404 Returns an error when the task cannot be found.
500 Returns an error if any of the IDs for this request were not valid, or if the targeted user does not have access to the file.
POST /task_assignments
DELETE /task_assignments/{task_assignment_id}

Deletes a specific task assignment.

operationId: TaskAssignments_deleteSpecificAssignment

Parameters

Name In Required Type Description
task_assignment_id path required string The ID of the task assignment.

Responses

default An unexpected client error.
204 Returns an empty response when the task assignment was successfully deleted.
404 Returns an error if the task assignment for the given ID does not exist or is inaccessible to your account.
DELETE /task_assignments/{task_assignment_id}
GET /task_assignments/{task_assignment_id}

Retrieves information about a task assignment.

operationId: TaskAssignments_getTaskAssignmentInfo

Parameters

Name In Required Type Description
task_assignment_id path required string The ID of the task assignment.

Responses

default An unexpected client error.
200 Returns a task assignment, specifying who the task has been assigned to and by whom.
404 Returns an error when the task assignment could not be found or the user does not have access to the file the task is assigned to.
GET /task_assignments/{task_assignment_id}
PUT /task_assignments/{task_assignment_id}

Updates a task assignment. This endpoint can be used to update the state of a task assigned to a user.

operationId: TaskAssignments_updateStateAssignedToUser

Parameters

Name In Required Type Description
task_assignment_id path required string The ID of the task assignment.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/TaskAssignmentsUpdateStateAssignedToUserRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the updated task assignment object.
400 Returns an error if a resolution state is incompatible with the action type of the task.
404 Returns an error when the task assignment could not be found or the user does not have access to the file the task is assigned to.
PUT /task_assignments/{task_assignment_id}
GET /tasks/{task_id}/assignments

Lists all of the assignments for a given task.

operationId: TaskAssignments_listForTask

Parameters

Name In Required Type Description
task_id path required string The ID of the task.

Responses

default An unexpected client error.
200 Returns a collection of task assignment defining what task on a file has been assigned to which users and by who.
404 Returns an error when the task could not be found or the user does not have access to the file the task is assigned to.
500 Returns an error if the task assignment ID was omitted in the request.
GET /tasks/{task_id}/assignments

Tasks 5 endpoints

GET /files/{file_id}/tasks

Retrieves a list of all the tasks for a file. This endpoint does not support pagination.

operationId: Tasks_listOnFile

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.

Responses

default An unexpected client error.
200 Returns a list of tasks on a file. If there are no tasks on this file an empty collection is returned instead.
404 Returns an error when the file could not be found or the user does not have access to the file.
405 Returns an error when the `file_id` was not provided.
500 Returns an error when an attempt was made to retrieve tasks for the file with ID `0`.
GET /files/{file_id}/tasks
POST /tasks

Creates a single task on a file. This task is not assigned to any user and will need to be assigned separately.

operationId: post_tasks

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PostTasksRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns the newly created task.
400 Returned if the request parameters or body is not valid. * `bad_request` when the body does not contain a valid request. This may be because the `action` or `completion_rule` are not one of the allowed values.
403 Returns an error when the user does not have the permission to create a task on the file.
404 Returns an error when the file could not be found or the user does not have access to the file.
POST /tasks
DELETE /tasks/{task_id}

Removes a task from a file.

operationId: Tasks_removeFile

Parameters

Name In Required Type Description
task_id path required string The ID of the task.

Responses

default An unexpected client error.
204 Returns an empty response when the task was successfully deleted.
404 Returns an error when the task could not be found or the user does not have access to the file the task is assigned to.
DELETE /tasks/{task_id}
GET /tasks/{task_id}

Retrieves information about a specific task.

operationId: Tasks_getInfo

Parameters

Name In Required Type Description
task_id path required string The ID of the task.

Responses

default An unexpected client error.
200 Returns a task object.
404 Returns an error when the task could not be found or the user does not have access to the file the task is assigned to.
GET /tasks/{task_id}
PUT /tasks/{task_id}

Updates a task. This can be used to update a task's configuration, or to update its completion state.

operationId: Tasks_updateTaskConfiguration

Parameters

Name In Required Type Description
task_id path required string The ID of the task.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/TasksUpdateTaskConfigurationRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the updated task object
400 Returned if the request parameters or body is not valid. * `bad_request` when the body does not contain a valid request. This may be because the `action` or `completion_rule` are not one of the allowed values.
403 Returns an error when the user does not have the permission to update a task on the file.
404 Returns an error when the file could not be found or the user does not have access to the file.
PUT /tasks/{task_id}

Terms of service 4 endpoints

GET /terms_of_services

Returns the current terms of service text and settings for the enterprise.

operationId: TermsOfService_getSettings

Parameters

Name In Required Type Description
tos_type query optional string Limits the results to the terms of service of the given type.

Responses

default An unexpected client error.
200 Returns a collection of terms of service text and settings for the enterprise.
GET /terms_of_services
POST /terms_of_services

Creates a terms of service for a given enterprise and type of user.

operationId: TermsOfService_createForEnterpriseAndType

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/TermsOfServiceCreateForEnterpriseAndTypeRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns a new task object
POST /terms_of_services
GET /terms_of_services/{terms_of_service_id}

Fetches a specific terms of service.

operationId: TermsOfService_getSpecific

Parameters

Name In Required Type Description
terms_of_service_id path required string The ID of the terms of service.

Responses

default An unexpected client error.
200 Returns a terms of service object.
GET /terms_of_services/{terms_of_service_id}
PUT /terms_of_services/{terms_of_service_id}

Updates a specific terms of service.

operationId: TermsOfService_updateSpecificTerm

Parameters

Name In Required Type Description
terms_of_service_id path required string The ID of the terms of service.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/TermsOfServiceUpdateSpecificTermRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns an updated terms of service object.
PUT /terms_of_services/{terms_of_service_id}

Terms of service user statuses 3 endpoints

GET /terms_of_service_user_statuses

Retrieves an overview of users and their status for a terms of service, including Whether they have accepted the terms and when.

operationId: TermsOfServiceUserStatuses_listUserStatuses

Parameters

Name In Required Type Description
tos_id query required string The ID of the terms of service.
user_id query optional string Limits results to the given user ID.

Responses

default An unexpected client error.
200 Returns a list of terms of service statuses.
GET /terms_of_service_user_statuses
POST /terms_of_service_user_statuses

Sets the status for a terms of service for a user.

operationId: TermsOfServiceUserStatuses_createUserStatus

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/TermsOfServiceUserStatusesCreateUserStatusRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a terms of service status object.
POST /terms_of_service_user_statuses
PUT /terms_of_service_user_statuses/{terms_of_service_user_status_id}

Updates the status for a terms of service for a user.

operationId: TermsOfServiceUserStatuses_updateUserStatus

Parameters

Name In Required Type Description
terms_of_service_user_status_id path required string The ID of the terms of service status.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/TermsOfServiceUserStatusesUpdateUserStatusRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the updated terms of service status object.
PUT /terms_of_service_user_statuses/{terms_of_service_user_status_id}

Transfer folders 1 endpoints

PUT /users/{user_id}/folders/0

Move all of the items (files, folders and workflows) owned by a user into another user's account Only the root folder (`0`) can be transferred. Folders can only be moved across users by users with administrative permissions. All existing shared links and folder-level collaborations are transferred during the operation. Please note that while collaborations at the individual file-level are transferred during the operation, the collaborations are deleted when the original user is deleted. This call will be performed synchronously which might lead to a slow response when the source user has a large number of items in all of its folders. If the destination path has a metadata cascade policy attached to any of the parent folders, a metadata cascade operation will be kicked off asynchronously. There is currently no way to check for when this operation is finished. The destination folder's name will be in the format `{User}'s Files and Folders`, where `{User}` is the display name of the user. To make this API call your application will need to have the "Read and write all files and folders stored in Box" scope enabled. Please make sure the destination user has access to `Relay` or `Relay Lite`, and has access to the files and folders involved in the workflows being transferred. Admins will receive an email when the operation is completed.

operationId: TransferFolders_toDestination

Parameters

Name In Required Type Description
user_id path required string The ID of the user.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
notify query optional boolean Determines if users should receive email notification for the action performed.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/TransferFoldersToDestinationRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the information for the newly created destination folder.
403 Returns an error when folder ownership cannot be transferred to another user. * `forbidden_by_policy`: Returned if ownership transfer is forbidden due to information barrier restrictions.
PUT /users/{user_id}/folders/0

Trashed files 3 endpoints

POST /files/{file_id}

Restores a file that has been moved to the trash. An optional new parent ID can be provided to restore the file to in case the original folder has been deleted.

operationId: TrashedFiles_restoreFile

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/TrashedFilesRestoreFileRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a file object when the file has been restored.
403 Returns an error if the user does not have access to the folder the file is being restored to, or the user does not have permission to restore files from the trash.
404 Returns an error if the file is not in the trash.
409 Returns an error if there is an file with the same name in the folder the file is being restored to.
POST /files/{file_id}
DELETE /files/{file_id}/trash

Permanently deletes a file that is in the trash. This action cannot be undone.

operationId: TrashedFiles_permanentlyRemoveFile

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.

Responses

default An unexpected client error.
204 Returns an empty response when the file was permanently deleted.
404 Returns an error if the file is not in the trash.
DELETE /files/{file_id}/trash
GET /files/{file_id}/trash

Retrieves a file that has been moved to the trash. Please note that only if the file itself has been moved to the trash can it be retrieved with this API call. If instead one of its parent folders was moved to the trash, only that folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API. To list all items that have been moved to the trash, please use the [`GET /folders/trash/items`](e://get-folders-trash-items/) API.

operationId: TrashedFiles_getFile

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Responses

default An unexpected client error.
200 Returns the file that was trashed, including information about when the it was moved to the trash.
404 Returns an error if the file can not be found directly in the trash. Please note that a `HTTP 404` is also returned if any of the file's parent folders have been moved to the trash. In that case, only that parent folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API.
GET /files/{file_id}/trash

Trashed folders 3 endpoints

POST /folders/{folder_id}

Restores a folder that has been moved to the trash. An optional new parent ID can be provided to restore the folder to in case the original folder has been deleted. # Folder locking During this operation, part of the file tree will be locked, mainly the source folder and all of its descendants, as well as the destination folder. For the duration of the operation, no other move, copy, delete, or restore operation can performed on any of the locked folders.

operationId: TrashedFolders_restoreFolder

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/TrashedFoldersRestoreFolderRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a folder object when the folder has been restored.
403 Returns an error if the user does not have access to the folder the folder is being restored to, or the user does not have permission to restore folders from the trash.
404 Returns an error if the folder is not in the trash.
409 * Returned an error if there is a folder with the same name in the destination folder. * `operation_blocked_temporary`: Returned if either of the destination or source folders is locked due to another move, copy, delete or restore operation in process. The operation can be retried at a later point.
POST /folders/{folder_id}
DELETE /folders/{folder_id}/trash

Permanently deletes a folder that is in the trash. This action cannot be undone.

operationId: TrashedFolders_permanentlyRemoveFolder

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.

Responses

default An unexpected client error.
204 Returns an empty response when the folder was permanently deleted.
404 Returns an error if the folder is not in the trash.
DELETE /folders/{folder_id}/trash
GET /folders/{folder_id}/trash

Retrieves a folder that has been moved to the trash. Please note that only if the folder itself has been moved to the trash can it be retrieved with this API call. If instead one of its parent folders was moved to the trash, only that folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API. To list all items that have been moved to the trash, please use the [`GET /folders/trash/items`](e://get-folders-trash-items/) API.

operationId: TrashedFolders_getdFolder

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Responses

default An unexpected client error.
200 Returns the folder that was trashed, including information about when the it was moved to the trash.
404 Returns an error if the folder can not be found directly in the trash. Please note that a `HTTP 404` is also returned if any of the folder's parent folders have been moved to the trash. In that case, only that parent folder can be inspected using the [`GET /folders/:id/trash`](e://get_folders_id_trash) API.
GET /folders/{folder_id}/trash

Trashed items 1 endpoints

GET /folders/trash/items

Retrieves the files and folders that have been moved to the trash. Any attribute in the full files or folders objects can be passed in with the `fields` parameter to retrieve those specific attributes that are not returned by default. This endpoint defaults to use offset-based pagination, yet also supports marker-based pagination using the `marker` parameter.

operationId: TrashedItems_listRetrievedItems

Parameters

Name In Required Type Description
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
limit query optional integer The maximum number of items to return per page.
offset query optional integer The offset of the item at which to begin the response. Queries with offset parameter value exceeding 10000 will be rejected with a 400 response.
usemarker query optional boolean Specifies whether to use marker-based pagination instead of offset-based pagination. Only one pagination method can be used at a time. By setting this value to true, the API will return a `marker` field that can be passed as a parameter to this endpoint to get the next page of the response.
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
direction query optional string The direction to sort results in. This can be either in alphabetical ascending (`ASC`) or descending (`DESC`) order.
sort query optional string Defines the **second** attribute by which items are sorted. Items are always sorted by their `type` first, with folders listed before files, and files listed before web links. This parameter is not supported when using marker-based pagination.

Responses

default An unexpected client error.
200 Returns a list of items that have been deleted
400 Returns an error if some of the parameters are missing or not valid. * `invalid_parameter` can appear when the `sort`, `direction` or `offset` parameter is provided when using marker based pagination, or when the `marker` parameter is provided but `usemarker` is set to `false` or `null`.
GET /folders/trash/items

Uploads 2 endpoints

POST /files/content

Uploads a small file to Box. For file sizes over 50MB we recommend using the Chunk Upload APIs. # Request body order The `attributes` part of the body must come **before** the `file` part. Requests that do not follow this format when uploading the file will receive a HTTP `400` error with a `metadata_after_file_contents` error code.

operationId: Uploads_smallFile

Parameters

Name In Required Type Description
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
content-md5 header optional string An optional header containing the SHA1 hash of the file to ensure that the file was not corrupted in transit.

Request Body

{
  "content": {
    "multipart/form-data": {
      "schema": {
        "$ref": "#/components/schemas/UploadsSmallFileRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns the new file object in a list.
400 Returns an error if some of the parameters are missing or not valid. * `bad_request` when a parameter is missing or incorrect. * `item_name_too_long` when the folder name is too long. * `item_name_invalid` when the folder name contains non-valid characters.
404 Returns an error if the parent folder does not exist or if the user is not authorized to access the parent folder.
409 Returns an error if the file already exists, or the account has run out of disk space.
POST /files/content
POST /files/{file_id}/content

Update a file's content. For file sizes over 50MB we recommend using the Chunk Upload APIs. # Request body order The `attributes` part of the body must come **before** the `file` part. Requests that do not follow this format when uploading the file will receive a HTTP `400` error with a `metadata_after_file_contents` error code.

operationId: Uploads_fileContentUpdate

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.
if-match header optional string Ensures this item hasn't recently changed before making changes. Pass in the item's last observed `etag` value into this header and the endpoint will fail with a `412 Precondition Failed` if it has changed since.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
content-md5 header optional string An optional header containing the SHA1 hash of the file to ensure that the file was not corrupted in transit.

Request Body

{
  "content": {
    "multipart/form-data": {
      "schema": {
        "$ref": "#/components/schemas/UploadsFileContentUpdateRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the new file object in a list.
412 Returns an error when the `If-Match` header does not match the current `etag` value of the file. This indicates that the file has changed since it was last requested.
POST /files/{file_id}/content

Uploads (chunked) 7 endpoints

POST /files/upload_sessions

Creates an upload session for a new file.

operationId: UploadsChunked_createSessionForUpload

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/UploadsChunkedCreateSessionForUploadRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a new upload session.
400 Returns an error if some of the parameters are missing or not valid. * `missing_destination`: No `folder_id` was provided * `invalid_folder_id`: `folder_id` is not valid * `item_name_invalid`: `file_name` is not valid * `missing_file_size`: `file_size` was not provided * `invalid_file_size`: `file_size` was not a valid number * `file_size_too_small`: `file_size` is below minimum file size for uploads via this API * `missing_file_name`: `file_name` was not provided
403 Returns an error if the operation is not allowed for some reason. * `storage_limit_exceeded`: Account storage limit reached
404 Returns an error if the parent folder could not be found, or the authenticated user does not have access to it. * `invalid_parameter`: The `folder_id` value represents a folder that the user does not have access to, or does not exist.
409 Returns an error if the file already exists, or the account has run out of disk space.
POST /files/upload_sessions
DELETE /files/upload_sessions/{upload_session_id}

Abort an upload session and discard all data uploaded. This cannot be reversed.

operationId: UploadsChunked_removeUploadSession

Parameters

Name In Required Type Description
upload_session_id path required string The ID of the upload session.

Responses

default An unexpected client error.
204 A blank response is returned if the session was successfully aborted.
DELETE /files/upload_sessions/{upload_session_id}
GET /files/upload_sessions/{upload_session_id}

Return information about an upload session.

operationId: UploadsChunked_info

Parameters

Name In Required Type Description
upload_session_id path required string The ID of the upload session.

Responses

default An unexpected client error.
200 Returns an upload session object.
GET /files/upload_sessions/{upload_session_id}
PUT /files/upload_sessions/{upload_session_id}

Updates a chunk of an upload session for a file.

operationId: UploadsChunked_filePartUpdate

Parameters

Name In Required Type Description
upload_session_id path required string The ID of the upload session.
digest header required string The [RFC3230][1] message digest of the chunk uploaded. Only SHA1 is supported. The SHA1 digest must be base64 encoded. The format of this header is as `sha=BASE64_ENCODED_DIGEST`. To get the value for the `SHA` digest, use the openSSL command to encode the file part: `openssl sha1 -binary <FILE_PART_NAME> | base64` [1]: https://tools.ietf.org/html/rfc3230
content-range header required string The byte range of the chunk. Must not overlap with the range of a part already uploaded this session. Each part’s size must be exactly equal in size to the part size specified in the upload session that you created. One exception is the last part of the file, as this can be smaller. When providing the value for `content-range`, remember that: * The lower bound of each part's byte range must be a multiple of the part size. * The higher bound must be a multiple of the part size - 1.

Request Body

{
  "content": {
    "application/octet-stream": {
      "schema": {
        "$ref": "#/components/schemas/UploadsChunkedFilePartUpdateRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Chunk has been uploaded successfully.
409 Returns an error if the chunk conflicts with another chunk previously uploaded.
412 Returns an error if a precondition was not met.
416 Returns an error if the content range does not match a specified range for the session.
PUT /files/upload_sessions/{upload_session_id}
POST /files/upload_sessions/{upload_session_id}/commit

Close an upload session and create a file from the uploaded chunks.

operationId: UploadsChunked_commitSession

Parameters

Name In Required Type Description
upload_session_id path required string The ID of the upload session.
digest header required string The [RFC3230][1] message digest of the whole file. Only SHA1 is supported. The SHA1 digest must be Base64 encoded. The format of this header is as `sha=BASE64_ENCODED_DIGEST`. [1]: https://tools.ietf.org/html/rfc3230
if-match header optional string Ensures this item hasn't recently changed before making changes. Pass in the item's last observed `etag` value into this header and the endpoint will fail with a `412 Precondition Failed` if it has changed since.
if-none-match header optional string Ensures an item is only returned if it has changed. Pass in the item's last observed `etag` value into this header and the endpoint will fail with a `304 Not Modified` if the item has not changed since.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/UploadsChunkedCommitSessionRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns the file object in a list.
202 Returns when all chunks have been uploaded but not yet processed. Inspect the upload session to get more information about the progress of processing the chunks, then retry committing the file when all chunks have processed.
409 Returns an error if there is already a file with the same name in the target folder.
412 Returns an error if the `If-Match` or `If-None-Match` conditions fail.
POST /files/upload_sessions/{upload_session_id}/commit
GET /files/upload_sessions/{upload_session_id}/parts

Return a list of the chunks uploaded to the upload session so far.

operationId: UploadsChunked_listParts

Parameters

Name In Required Type Description
upload_session_id path required string The ID of the upload session.
offset query optional integer The offset of the item at which to begin the response. Queries with offset parameter value exceeding 10000 will be rejected with a 400 response.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns a list of parts that have been uploaded.
GET /files/upload_sessions/{upload_session_id}/parts
POST /files/{file_id}/upload_sessions

Creates an upload session for an existing file.

operationId: UploadsChunked_createSessionForUpload

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/UploadsChunkedCreateSessionForUploadRequest1"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a new upload session.
409 Returns an error if the file already exists, or if the account has run out of disk space.
POST /files/{file_id}/upload_sessions

User avatars 3 endpoints

DELETE /users/{user_id}/avatar

Removes an existing user avatar. You cannot reverse this operation.

operationId: UserAvatars_removeExisting

Parameters

Name In Required Type Description
user_id path required string The ID of the user.

Responses

default An unexpected client error.
204 * `no_content`: Removes the avatar and returns an empty response.
403 * `forbidden`: Returned if the user does not have necessary permissions or is not activated.
404 * `not_found`: Returned if the user or user avatar does not exist or cannot be found.
DELETE /users/{user_id}/avatar
GET /users/{user_id}/avatar

Retrieves an image of a the user's avatar.

operationId: UserAvatars_getImage

Parameters

Name In Required Type Description
user_id path required string The ID of the user.

Responses

default An unexpected client error.
200 When an avatar can be found for the user the image data will be returned in the body of the response.
GET /users/{user_id}/avatar
POST /users/{user_id}/avatar

Adds or updates a user avatar.

operationId: UserAvatars_addOrUpdateImage

Parameters

Name In Required Type Description
user_id path required string The ID of the user.

Request Body

{
  "content": {
    "multipart/form-data": {
      "schema": {
        "$ref": "#/components/schemas/UserAvatarsAddOrUpdateImageRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 * `ok`: Returns the `pic_urls` object with URLs to existing user avatars that were updated.
201 * `created`: Returns the `pic_urls` object with URLS to user avatars uploaded to Box with the request.
400 * `bad_request`: Returns an error when: * An image is not included in the request * The uploaded file is empty * The image size exceeds 1024 * 1024 pixels or 1MB * The file extension is other than `.jpg` or `.png`.
403 * `forbidden`: Returns an error if the user does not have permissions necessary to upload an avatar or is not activated.
404 * `not_found`: Returns an error if the user does not exist or cannot be found.
POST /users/{user_id}/avatar

Users 6 endpoints

GET /users

Returns a list of all users for the Enterprise along with their `user_id`, `public_name`, and `login`. The application and the authenticated user need to have the permission to look up users in the entire enterprise.

operationId: get_users

Parameters

Name In Required Type Description
filter_term query optional string Limits the results to only users who's `name` or `login` start with the search term. For externally managed users, the search term needs to completely match the in order to find the user, and it will only return one user at a time.
user_type query optional string Limits the results to the kind of user specified. * `all` returns every kind of user for whom the `login` or `name` partially matches the `filter_term`. It will only return an external user if the login matches the `filter_term` completely, and in that case it will only return that user. * `managed` returns all managed and app users for whom the `login` or `name` partially matches the `filter_term`. * `external` returns all external users for whom the `login` matches the `filter_term` exactly.
external_app_user_id query optional string Limits the results to app users with the given `external_app_user_id` value. When creating an app user, an `external_app_user_id` value can be set. This value can then be used in this endpoint to find any users that match that `external_app_user_id` value.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.
offset query optional integer The offset of the item at which to begin the response. Queries with offset parameter value exceeding 10000 will be rejected with a 400 response.
limit query optional integer The maximum number of items to return per page.
usemarker query optional boolean Specifies whether to use marker-based pagination instead of offset-based pagination. Only one pagination method can be used at a time. By setting this value to true, the API will return a `marker` field that can be passed as a parameter to this endpoint to get the next page of the response.
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.

Responses

default An unexpected client error.
200 Returns all of the users in the enterprise.
GET /users
POST /users

Creates a new managed user in an enterprise. This endpoint is only available to users and applications with the right admin permissions.

operationId: post_users

Parameters

Name In Required Type Description
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PostUsersRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns a user object for the newly created user.
POST /users
GET /users/me

Retrieves information about the user who is currently authenticated. In the case of a client-side authenticated OAuth 2.0 application this will be the user who authorized the app. In the case of a JWT, server-side authenticated application this will be the service account that belongs to the application by default. Use the `As-User` header to change who this API call is made on behalf of.

operationId: Users_getCurrentUser

Parameters

Name In Required Type Description
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Responses

default An unexpected client error.
200 Returns a single user object.
GET /users/me
DELETE /users/{user_id}

Deletes a user. By default this will fail if the user still owns any content. Move their owned content first before proceeding, or use the `force` field to delete the user and their files.

operationId: Users_deleteUser

Parameters

Name In Required Type Description
user_id path required string The ID of the user.
notify query optional boolean Whether the user will receive email notification of the deletion
force query optional boolean Whether the user should be deleted even if this user still own files

Responses

default An unexpected client error.
204 Removes the user and returns an empty response.
DELETE /users/{user_id}
GET /users/{user_id}

Retrieves information about a user in the enterprise. The application and the authenticated user need to have the permission to look up users in the entire enterprise. This endpoint also returns a limited set of information for external users who are collaborated on content owned by the enterprise for authenticated users with the right scopes. In this case, disallowed fields will return null instead.

operationId: Users_getUserInfo

Parameters

Name In Required Type Description
user_id path required string The ID of the user.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Responses

default An unexpected client error.
200 Returns a single user object. Not all available fields are returned by default. Use the [fields](https://raw.githubusercontent.com) query parameter to explicitly request any specific fields using the [fields](https://raw.githubusercontent.com) parameter.
GET /users/{user_id}
PUT /users/{user_id}

Updates a managed or app user in an enterprise. This endpoint is only available to users and applications with the right admin permissions.

operationId: Users_updateManagedUser

Parameters

Name In Required Type Description
user_id path required string The ID of the user.
fields query optional array A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response. Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/UsersUpdateManagedUserRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the updated user object.
400 Returns an error if some of the parameters are missing or not valid. * `invalid_parameter` when a parameter is formatted incorrectly, for example when the `notification_email` has an incorrectly formatted email address.
403 Returns an error if the user is not allowed to make the changes. * `access_denied_insufficient_permissions` when the user does not have the right permissions, for example when updating the notification email is turned off for the enterprise. * `denied_by_policy` when the user does not have the right permissions due to the information barrier restrictions.
PUT /users/{user_id}

Watermarks (files) 3 endpoints

DELETE /files/{file_id}/watermark

Removes the watermark from a file.

operationId: WatermarksFiles_removeWatermark

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.

Responses

default An unexpected client error.
204 Removes the watermark and returns an empty response.
404 Returns an error if the file did not have a watermark applied to it.
DELETE /files/{file_id}/watermark
GET /files/{file_id}/watermark

Retrieve the watermark for a file.

operationId: WatermarksFiles_get

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.

Responses

default An unexpected client error.
200 Returns an object containing information about the watermark associated for to this file.
404 Returns an error if the file does not have a watermark applied.
GET /files/{file_id}/watermark
PUT /files/{file_id}/watermark

Applies or update a watermark on a file.

operationId: WatermarksFiles_applyWatermarkToFile

Parameters

Name In Required Type Description
file_id path required string The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/WatermarksFilesApplyWatermarkToFileRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns an updated watermark if a watermark already existed on this file.
201 Returns a new watermark if no watermark existed on this file yet.
PUT /files/{file_id}/watermark

Watermarks (folders) 3 endpoints

DELETE /folders/{folder_id}/watermark

Removes the watermark from a folder.

operationId: WatermarksFolders_removeFolderWatermark

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.

Responses

default An unexpected client error.
204 An empty response will be returned when the watermark was successfully deleted.
404 Returns an error if the folder did not have a watermark applied to it
DELETE /folders/{folder_id}/watermark
GET /folders/{folder_id}/watermark

Retrieve the watermark for a folder.

operationId: WatermarksFolders_getFolderWatermark

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.

Responses

default An unexpected client error.
200 Returns an object containing information about the watermark associated for to this folder.
404 Returns an error if the folder does not have a watermark applied.
GET /folders/{folder_id}/watermark
PUT /folders/{folder_id}/watermark

Applies or update a watermark on a folder.

operationId: WatermarksFolders_applyToFolder

Parameters

Name In Required Type Description
folder_id path required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/WatermarksFoldersApplyToFolderRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns an updated watermark if a watermark already existed on this folder.
201 Returns a new watermark if no watermark existed on this folder yet.
PUT /folders/{folder_id}/watermark

Webhooks 5 endpoints

GET /webhooks

Returns all defined webhooks for the requesting application. This API only returns webhooks that are applied to files or folders that are owned by the authenticated user. This means that an admin can not see webhooks created by a service account unless the admin has access to those folders, and vice versa.

operationId: get_webhooks

Parameters

Name In Required Type Description
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.
limit query optional integer The maximum number of items to return per page.

Responses

default An unexpected client error.
200 Returns a list of webhooks.
403 Returns an error if the application does not have the permission to manage webhooks.
GET /webhooks
POST /webhooks

Creates a webhook.

operationId: post_webhooks

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PostWebhooksRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
201 Returns the new webhook object.
400 Returns an error if the parameters were incorrect.
403 Returns an error if the application does not have the permission to manage webhooks.
404 Returns an error if the target item could not be found
409 Returns an error if the a webhook for this combination of target, application, and user already exists.
POST /webhooks
DELETE /webhooks/{webhook_id}

Deletes a webhook.

operationId: Webhooks_remove

Parameters

Name In Required Type Description
webhook_id path required string The ID of the webhook.

Responses

default An unexpected client error.
204 An empty response will be returned when the webhook was successfully deleted.
403 Returns an error if the application does not have the permission to manage webhooks.
404 Returns an error if the webhook could not be found
DELETE /webhooks/{webhook_id}
GET /webhooks/{webhook_id}

Retrieves a specific webhook

operationId: Webhooks_getSpecificWebhook

Parameters

Name In Required Type Description
webhook_id path required string The ID of the webhook.

Responses

default An unexpected client error.
200 Returns a webhook object
403 Returns an error if the application does not have the permission to manage webhooks.
404 Returns an error if the webhook could not be found
GET /webhooks/{webhook_id}
PUT /webhooks/{webhook_id}

Updates a webhook.

operationId: Webhooks_updateWebhook

Parameters

Name In Required Type Description
webhook_id path required string The ID of the webhook.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/WebhooksUpdateWebhookRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
200 Returns the new webhook object.
400 Returns an error if the parameters were incorrect.
403 Returns an error if the application does not have the permission to manage webhooks.
404 Returns an error if the target item or webhook could not be found
409 Returns an error if the a webhook for this combination of target, application, and user already exists.
PUT /webhooks/{webhook_id}

Workflows 2 endpoints

GET /workflows

Returns list of workflows that act on a given `folder ID`, and have a flow with a trigger type of `WORKFLOW_MANUAL_START`. You application must be authorized to use the `Manage Box Relay` application scope within the developer console in to use this endpoint.

operationId: get_workflows

Parameters

Name In Required Type Description
folder_id query required string The unique identifier that represent a folder. The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/folder/123` the `folder_id` is `123`. The root folder of a Box account is always represented by the ID `0`.
trigger_type query optional string Type of trigger to search for.
limit query optional integer The maximum number of items to return per page.
marker query optional string Defines the position marker at which to begin returning results. This is used when paginating using marker-based pagination. This requires `usemarker` to be set to `true`.

Responses

default An unexpected client error.
200 Returns the workflow.
400 Returned if the trigger type is not `WORKFLOW_MANUAL_START`.
404 Returned if the folder is not found, or the user does not have access to the folder.
GET /workflows
POST /workflows/{workflow_id}/start

Initiates a flow with a trigger type of `WORKFLOW_MANUAL_START`. You application must be authorized to use the `Manage Box Relay` application scope within the developer console.

operationId: Workflows_startBasedOnRequest

Parameters

Name In Required Type Description
workflow_id path required string The ID of the workflow.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/WorkflowsStartBasedOnRequestRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
204 Starts the workflow.
400 Returns an error if some of the parameters are missing or not valid. * `workflow_is_not_enabled` when the workflow is not enabled * `workflow_not_active_on_provided_folder` when the workflow is not enabled for the specified folder id * `parameters_provided_do_not_match_target_outcome` when the provided parameters do not match the expected parameters
403 Returns an error if there are insufficient permissions. * `insufficient_access` when the user does not have access rights to file or folder * `missing_relay_full_access` when the user does not have access to Relay Full
404 Returns an error if the workflow could not be found, or the authenticated user does not have access to the workflow. * `workflow_not_found` when the workflow is not found * `flow_missing_or_inaccessible` when the flow is not a manual start flow
POST /workflows/{workflow_id}/start

Zip downloads 3 endpoints

POST /zip_downloads

Creates a request to download multiple files and folders as a single `zip` archive file. This API does not return the archive but instead performs all the checks to ensure that the user has access to all the items, and then returns a `download_url` and a `status_url` that can be used to download the archive. The limit for an archive is either the Account's upload limit or 10,000 files, whichever is met first. **Note**: Downloading a large file can be affected by various factors such as distance, network latency, bandwidth, and congestion, as well as packet loss ratio and current server load. For these reasons we recommend that a maximum ZIP archive total size does not exceed 25GB.

operationId: ZipDownloads_createRequest

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ZipDownloadRequest"
      }
    }
  }
}

Responses

default An unexpected client error.
202 If the `zip` archive is ready to be downloaded, the API will return a response that will include a `download_url`, a `status_url`, as well as any conflicts that might have occurred when creating the request.
400 Returns an error if some of the parameters are missing or not valid. In most cases, this error might happen because the JSON request body is not valid JSON, any of the items has an incorrect or missing ID, any of the items is not a file or folder, or the root folder with ID `0` has been added to the list of folders to add to the archive. The following is a list of common error codes for this response. * `bad_request` - the request body is missing, invalid, or both the list of files and folders are empty. Additionally, it this error might be returned when attempting to add the root folder with ID `0` to an archive. * `zip_download_file_count_exceeded_limit` - the requested files and folders would result in an archive with more than 10,000 files. The request will have to be split into multiple requests to reduce the number of files per archive. * `zip_download_pre_compressed_bytes_exceeded_limit` - the requested files and folders would result in an archive with more than the allowed download limit. The request will have to be split into multiple requests to reduce the size of the archive.
401 Returned when the access token provided in the `Authorization` header is not recognized or not provided.
403 Returned when an authorization header is provided but the user does not have access to the items.
POST /zip_downloads
GET /zip_downloads/{zip_download_id}/content

Returns the contents of a `zip` archive in binary format. This URL does not require any form of authentication and could be used in a user's browser to download the archive to a user's device. By default, this URL is only valid for a few seconds from the creation of the request for this archive. Once a download has started it can not be stopped and resumed, instead a new request for a zip archive would need to be created. The URL of this endpoint should not be considered as fixed. Instead, use the [Create zip download](e://post_zip_downloads) API to request to create a `zip` archive, and then follow the `download_url` field in the response to this endpoint.

operationId: ZipDownloads_getContentById

Parameters

Name In Required Type Description
zip_download_id path required string The unique identifier that represent this `zip` archive.

Responses

default An unexpected client error.
200 Returns the content of the items requested for this download, formatted as a stream of files and folders in a `zip` archive.
404 Returns an error if the ID of this download request is not valid. This error can also be returned if this URL has been called before. To re-download this archive, please create a new request for a zip download.
429 Returns an error if the number of concurrent zip downloads has been reached for either the user or the enterprise. * `user_too_many_concurrent_downloads` - the maximum of 5 parallel downloads of zip archives per user has been met. * `enterprise_too_many_concurrent_downloads` - the maximum of 10 parallel downloads of zip archives per enterprise has been met.
GET /zip_downloads/{zip_download_id}/content
GET /zip_downloads/{zip_download_id}/status

Returns the download status of a `zip` archive, allowing an application to inspect the progress of the download as well as the number of items that might have been skipped. This endpoint can only be accessed once the download has started. Subsequently this endpoint is valid for 12 hours from the start of the download. The URL of this endpoint should not be considered as fixed. Instead, use the [Create zip download](e://post_zip_downloads) API to request to create a `zip` archive, and then follow the `status_url` field in the response to this endpoint.

operationId: ZipDownloads_getStatus

Parameters

Name In Required Type Description
zip_download_id path required string The unique identifier that represent this `zip` archive.

Responses

default An unexpected client error.
200 Returns the status of the `zip` archive that is being downloaded.
401 Returned when the access token provided in the `Authorization` header is not recognized or not provided.
403 Returned when an authorization header is provided but the user does not have access to the items.
404 Returns an error if the ID of this download request is not valid, or if the status of a download is requested before the download has been started.
GET /zip_downloads/{zip_download_id}/status

Schemas

object AccessToken
{
  "type": "object",
  "title": "Access token",
  "x-box-tag": "authorization",
  "properties": {
    "expires_in": {
      "type": "integer",
      "format": "int64",
      "example": 3600,
      "description": "The time in seconds by which this token will expire."
    },
    "token_type": {
      "enum": [
        "bearer"
      ],
      "type": "string",
      "example": "bearer",
      "description": "The type of access token returned."
    },
    "access_token": {
      "type": "string",
      "format": "token",
      "example": "c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ",
      "description": "The requested access token."
    },
    "refresh_token": {
      "type": "string",
      "format": "token",
      "example": "c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ",
      "description": "The refresh token for this access token, which can be used\nto request a new access token when the current one expires."
    },
    "restricted_to": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/FileOrFolderScope"
      },
      "description": "The permissions that this access token permits,\nproviding a list of resources (files, folders, etc)\nand the scopes permitted for each of those resources."
    },
    "issued_token_type": {
      "enum": [
        "urn:ietf:params:oauth:token-type:access_token"
      ],
      "type": "string",
      "format": "urn",
      "example": "urn:ietf:params:oauth:token-type:access_token",
      "description": "The type of downscoped access token returned. This is only\nreturned if an access token has been downscoped."
    }
  },
  "description": "A token that can be used to make authenticated API calls.",
  "x-box-resource-id": "access_token"
}
object Classification
{
  "type": "object",
  "title": "Classification",
  "x-box-tag": "classifications",
  "properties": {
    "$type": {
      "type": "string",
      "example": "securityClassification-6VMVochwUWo-fd31537a-0f95-4d86-9f2b-5974a29978f8",
      "description": "The unique ID of this classification instance. This will be include\nthe name of the classification template and a unique ID."
    },
    "$scope": {
      "type": "string",
      "example": "enterprise_27335",
      "description": "The scope of the enterprise that this classification has been\napplied for.\n\nThis will be in the format `enterprise_{enterprise_id}`."
    },
    "$parent": {
      "type": "string",
      "example": "folder_59449484661,",
      "description": "The identifier of the item that this metadata instance\nhas been attached to. This combines the `type` and the `id`\nof the parent in the form `{type}_{id}`."
    },
    "$canEdit": {
      "type": "boolean",
      "example": true,
      "description": "Whether an end user can change the classification."
    },
    "$version": {
      "type": "integer",
      "example": 1,
      "description": "The version of the metadata instance. This version starts at 0 and\nincreases every time a classification is updated."
    },
    "$template": {
      "enum": [
        "securityClassification-6VMVochwUWo"
      ],
      "type": "string",
      "example": "securityClassification-6VMVochwUWo",
      "description": "`securityClassification-6VMVochwUWo`"
    },
    "$typeVersion": {
      "type": "number",
      "example": 5,
      "description": "The version of the metadata template. This version starts at 0 and\nincreases every time the template is updated. This is mostly for internal\nuse."
    },
    "Box__Security__Classification__Key": {
      "type": "string",
      "example": "Sensitive",
      "description": "The name of the classification applied to the item."
    }
  },
  "description": "An instance of the classification metadata template, containing\nthe classification applied to the file or folder.\n\nTo get more details about the classification applied to an item,\nrequest the classification metadata template.",
  "x-box-resource-id": "classification"
}
object ClassificationTemplate
{
  "type": "object",
  "title": "Classification Template",
  "required": [
    "id",
    "type",
    "scope",
    "displayName",
    "fields",
    "templateKey"
  ],
  "x-box-tag": "classifications",
  "properties": {
    "id": {
      "type": "string",
      "example": "58063d82-4128-7b43-bba9-92f706befcdf",
      "description": "The ID of the classification template."
    },
    "type": {
      "enum": [
        "metadata_template"
      ],
      "type": "string",
      "example": "metadata_template",
      "nullable": false,
      "description": "`metadata_template`"
    },
    "scope": {
      "type": "string",
      "example": "enterprise_123456",
      "description": "The scope of the classification template. This is in the format\n`enterprise_{id}` where the `id` is the enterprise ID."
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "type",
          "key",
          "displayName",
          "options"
        ],
        "properties": {
          "id": {
            "type": "string",
            "example": "822227e0-47a5-921b-88a8-494760b2e6d2",
            "description": "The unique ID of the field."
          },
          "key": {
            "enum": [
              "Box__Security__Classification__Key"
            ],
            "type": "string",
            "example": "Box__Security__Classification__Key",
            "description": "Defines classifications \navailable in the enterprise."
          },
          "type": {
            "enum": [
              "enum"
            ],
            "type": "string",
            "example": "enum",
            "description": "The array item type."
          },
          "hidden": {
            "type": "boolean",
            "example": false,
            "description": "Classifications are always visible to web and mobile users."
          },
          "options": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "key",
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "example": "46aea176-3483-4431-856c-6b5b13d1cc50",
                  "description": "The unique ID of this classification."
                },
                "key": {
                  "type": "string",
                  "example": "Sensitive",
                  "description": "The display name and key for this classification."
                },
                "staticConfig": {
                  "type": "object",
                  "properties": {
                    "classification": {
                      "type": "object",
                      "properties": {
                        "colorID": {
                          "type": "integer",
                          "format": "int64",
                          "example": 4,
                          "description": "An internal Box identifier used to assign a color to\na classification label.\n\nMapping between a `colorID` and a color may change\nwithout notice. Currently, the color mappings are as\nfollows.\n\n* `0`: Yellow\n* `1`: Orange\n* `2`: Watermelon red\n* `3`: Purple rain\n* `4`: Light blue\n* `5`: Dark blue\n* `6`: Light green\n* `7`: Gray"
                        },
                        "classificationDefinition": {
                          "type": "string",
                          "example": "Sensitive information",
                          "description": "A longer description of the classification."
                        }
                      },
                      "description": "Additional information about the classification.\n\nThis is not an exclusive list of properties, and\nmore object fields might be returned. These fields\nare used for internal Box Shield and Box Governance\npurposes and no additional value must be derived from\nthese fields."
                    }
                  },
                  "description": "Additional information about the classification."
                }
              },
              "description": "A single classification available in this enterprise."
            },
            "minItems": 1,
            "description": "A list of classifications available in this enterprise."
          },
          "displayName": {
            "enum": [
              "Classification"
            ],
            "type": "string",
            "example": "Classification",
            "description": "`Classification`"
          }
        },
        "description": "The metadata template field that represents the available\nclassifications."
      },
      "maxItems": 1,
      "minItems": 1,
      "description": "A list of fields for this classification template. This includes\nonly one field, the `Box__Security__Classification__Key`, which defines\nthe different classifications available in this enterprise."
    },
    "hidden": {
      "type": "boolean",
      "example": false,
      "description": "Determines if the\ntemplate is always available in web and mobile interfaces."
    },
    "displayName": {
      "enum": [
        "Classification"
      ],
      "type": "string",
      "example": "Classification",
      "description": "The name of this template as shown in web and mobile interfaces."
    },
    "templateKey": {
      "enum": [
        "securityClassification-6VMVochwUWo"
      ],
      "type": "string",
      "example": "securityClassification-6VMVochwUWo",
      "description": "`securityClassification-6VMVochwUWo`"
    },
    "copyInstanceOnItemCopy": {
      "type": "boolean",
      "example": true,
      "description": "Determines if \nclassifications are\ncopied along when the file or folder is\ncopied."
    }
  },
  "description": "A metadata template that holds the security classifications\ndefined by an enterprise.",
  "x-box-resource-id": "classification_template"
}
array ClassificationsAddNewClassificationsRequest
{
  "type": "array",
  "items": {
    "type": "object",
    "required": [
      "op",
      "fieldKey",
      "data"
    ],
    "properties": {
      "op": {
        "enum": [
          "addEnumOption"
        ],
        "type": "string",
        "example": "addEnumOption",
        "description": "The type of change to perform on the classification\nobject."
      },
      "data": {
        "type": "object",
        "required": [
          "key"
        ],
        "properties": {
          "key": {
            "type": "string",
            "example": "Sensitive",
            "description": "The label of the classification as shown in the web and\nmobile interfaces. This is the only field required to\nadd a classification."
          },
          "staticConfig": {
            "type": "object",
            "properties": {
              "classification": {
                "type": "object",
                "properties": {
                  "colorID": {
                    "type": "integer",
                    "format": "int64",
                    "example": 4,
                    "description": "An internal Box identifier used to assign a color to\na classification label.\n\nMapping between a `colorID` and a color may change\nwithout notice. Currently, the color mappings are as\nfollows.\n\n* `0`: Yellow\n* `1`: Orange\n* `2`: Watermelon red\n* `3`: Purple rain\n* `4`: Light blue\n* `5`: Dark blue\n* `6`: Light green\n* `7`: Gray"
                  },
                  "classificationDefinition": {
                    "type": "string",
                    "example": "Sensitive information that must not be shared.",
                    "description": "A longer description of the classification."
                  }
                },
                "description": "Additional details for the classification."
              }
            },
            "description": "A static configuration for the classification."
          }
        },
        "description": "The details of the classification to add."
      },
      "fieldKey": {
        "enum": [
          "Box__Security__Classification__Key"
        ],
        "type": "string",
        "example": "Box__Security__Classification__Key",
        "description": "Defines classifications \navailable in the enterprise."
      }
    },
    "description": "A single classification to add to the enterprise."
  },
  "required": [
    "items"
  ],
  "description": "An array that contains one or more classifications to add to\nthe enterprise's list of classifications."
}
object ClassificationsInitializeTemplateRequest
{
  "type": "object",
  "required": [
    "scope",
    "displayName",
    "fields",
    "templateKey"
  ],
  "properties": {
    "scope": {
      "enum": [
        "enterprise"
      ],
      "type": "string",
      "example": "enterprise",
      "description": "The scope in which to create the classifications. This should\nbe `enterprise` or `enterprise_{id}` where `id` is the unique\nID of the enterprise."
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "type",
          "key",
          "displayName",
          "options"
        ],
        "properties": {
          "key": {
            "enum": [
              "Box__Security__Classification__Key"
            ],
            "type": "string",
            "example": "Box__Security__Classification__Key",
            "description": "Defines classifications \navailable in the enterprise."
          },
          "type": {
            "enum": [
              "enum"
            ],
            "type": "string",
            "example": "enum",
            "description": "The type of the field\nthat is always enum."
          },
          "hidden": {
            "type": "boolean",
            "example": false,
            "description": "Determines if the classification\ntemplate is\nhidden or available on\nweb and mobile\ndevices."
          },
          "options": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "key"
              ],
              "properties": {
                "key": {
                  "type": "string",
                  "example": "Sensitive",
                  "description": "The display name and key this classification. This\nwill be show in the Box UI."
                },
                "staticConfig": {
                  "type": "object",
                  "properties": {
                    "classification": {
                      "type": "object",
                      "properties": {
                        "colorID": {
                          "type": "integer",
                          "format": "int64",
                          "example": 4,
                          "description": "An identifier used to assign a color to\na classification label.\n\nMapping between a `colorID` and a color may\nchange without notice. Currently, the color\nmappings are as follows.\n\n* `0`: Yellow\n* `1`: Orange\n* `2`: Watermelon red\n* `3`: Purple rain\n* `4`: Light blue\n* `5`: Dark blue\n* `6`: Light green\n* `7`: Gray"
                        },
                        "classificationDefinition": {
                          "type": "string",
                          "example": "Sensitive information",
                          "description": "A longer description of the classification."
                        }
                      },
                      "description": "Additional information about the classification."
                    }
                  },
                  "description": "Additional information about the classification."
                }
              },
              "description": "An individual classification."
            },
            "description": "The actual list of classifications that are present on\nthis template."
          },
          "displayName": {
            "enum": [
              "Classification"
            ],
            "type": "string",
            "example": "Classification",
            "description": "A display name for the classification."
          }
        },
        "description": "The `enum` field which holds all the valid classification\nvalues."
      },
      "description": "The classification template requires exactly\none field, which holds\nall the valid classification values."
    },
    "hidden": {
      "type": "boolean",
      "example": false,
      "description": "Determines if the classification template is\nhidden or available on web and mobile\ndevices."
    },
    "displayName": {
      "enum": [
        "Classification"
      ],
      "type": "string",
      "example": "Classification",
      "description": "The name of the\ntemplate as shown in web and mobile interfaces."
    },
    "templateKey": {
      "enum": [
        "securityClassification-6VMVochwUWo"
      ],
      "type": "string",
      "example": "securityClassification-6VMVochwUWo",
      "description": "Defines the list of metadata templates."
    },
    "copyInstanceOnItemCopy": {
      "type": "boolean",
      "example": false,
      "description": "Determines if classifications are\ncopied along when the file or folder is\ncopied."
    }
  }
}
object ClassificationsOnFilesAddClassificationRequest
{
  "type": "object",
  "properties": {
    "Box__Security__Classification__Key": {
      "type": "string",
      "example": "Sensitive",
      "description": "The name of the classification to apply to this file.\n\nTo list the available classifications in an enterprise,\nuse the classification API to retrieve the\n[classification template](e://get_metadata_templates_enterprise_securityClassification-6VMVochwUWo_schema)\nwhich lists all available classification keys."
    }
  }
}
array ClassificationsOnFilesUpdateClassificationMetadataInstanceRequest
{
  "type": "array",
  "items": {
    "type": "object",
    "required": [
      "op",
      "path",
      "value"
    ],
    "properties": {
      "op": {
        "enum": [
          "replace"
        ],
        "type": "string",
        "example": "replace",
        "description": "`replace`"
      },
      "path": {
        "enum": [
          "/Box__Security__Classification__Key"
        ],
        "type": "string",
        "example": "/Box__Security__Classification__Key",
        "description": "Defines classifications \navailable in the enterprise."
      },
      "value": {
        "type": "string",
        "example": "Sensitive",
        "description": "The name of the classification to apply to this file.\n\nTo list the available classifications in an enterprise,\nuse the classification API to retrieve the\n[classification template](e://get_metadata_templates_enterprise_securityClassification-6VMVochwUWo_schema)\nwhich lists all available classification keys."
      }
    },
    "description": "The operation to perform on the classification\nmetadata template instance. In this case, it use\nused to replace the value stored for the\n`Box__Security__Classification__Key` field with a new\nvalue."
  },
  "required": [
    "items"
  ],
  "description": "A list containing the one change to make, to\nupdate the classification label."
}
object ClassificationsOnFoldersAddClassificationToFolderRequest
{
  "type": "object",
  "properties": {
    "Box__Security__Classification__Key": {
      "type": "string",
      "example": "Sensitive",
      "description": "The name of the classification to apply to this folder.\n\nTo list the available classifications in an enterprise,\nuse the classification API to retrieve the\n[classification template](e://get_metadata_templates_enterprise_securityClassification-6VMVochwUWo_schema)\nwhich lists all available classification keys."
    }
  }
}
array ClassificationsOnFoldersUpdateClassificationRequest
{
  "type": "array",
  "items": {
    "type": "object",
    "required": [
      "op",
      "path",
      "value"
    ],
    "properties": {
      "op": {
        "enum": [
          "replace"
        ],
        "type": "string",
        "example": "replace",
        "description": "`replace`"
      },
      "path": {
        "enum": [
          "/Box__Security__Classification__Key"
        ],
        "type": "string",
        "example": "/Box__Security__Classification__Key",
        "description": "Defines classifications \navailable in the enterprise."
      },
      "value": {
        "type": "string",
        "example": "Sensitive",
        "description": "The name of the classification to apply to this folder.\n\nTo list the available classifications in an enterprise,\nuse the classification API to retrieve the\n[classification template](e://get_metadata_templates_enterprise_securityClassification-6VMVochwUWo_schema)\nwhich lists all available classification keys."
      }
    },
    "description": "The operation to perform on the classification\nmetadata template instance. In this case, it use\nused to replace the value stored for the\n`Box__Security__Classification__Key` field with a new\nvalue."
  },
  "required": [
    "items"
  ],
  "description": "A list containing the one change to make, to\nupdate the classification label."
}
array ClassificationsUpdateLabelsDescriptionsRequest
{
  "type": "array",
  "items": {
    "type": "object",
    "required": [
      "op",
      "fieldKey",
      "enumOptionKey",
      "data"
    ],
    "properties": {
      "op": {
        "enum": [
          "editEnumOption"
        ],
        "type": "string",
        "example": "editEnumOption",
        "description": "The type of change to perform on the classification\nobject."
      },
      "data": {
        "type": "object",
        "required": [
          "key"
        ],
        "properties": {
          "key": {
            "type": "string",
            "example": "Very Sensitive",
            "description": "A new label for the classification, as it will be\nshown in the web and mobile interfaces."
          },
          "staticConfig": {
            "type": "object",
            "properties": {
              "classification": {
                "type": "object",
                "properties": {
                  "colorID": {
                    "type": "integer",
                    "format": "int64",
                    "example": 4,
                    "description": "An internal Box identifier used to assign a color to\na classification label.\n\nMapping between a `colorID` and a color may change\nwithout notice. Currently, the color mappings are as\nfollows.\n\n* `0`: Yellow\n* `1`: Orange\n* `2`: Watermelon red\n* `3`: Purple rain\n* `4`: Light blue\n* `5`: Dark blue\n* `6`: Light green\n* `7`: Gray"
                  },
                  "classificationDefinition": {
                    "type": "string",
                    "example": "Sensitive information that must not be shared.",
                    "description": "A longer description of the classification."
                  }
                },
                "description": "Additional details for the classification."
              }
            },
            "description": "A static configuration for the classification."
          }
        },
        "description": "The details of the updated classification."
      },
      "fieldKey": {
        "enum": [
          "Box__Security__Classification__Key"
        ],
        "type": "string",
        "example": "Box__Security__Classification__Key",
        "description": "Defines classifications \navailable in the enterprise."
      },
      "enumOptionKey": {
        "type": "string",
        "example": "Sensitive",
        "description": "The original label of the classification to change."
      }
    },
    "description": "A single classification to update."
  },
  "required": [
    "items"
  ],
  "description": "An array that contains one or more classifications to update."
}
object ClientError
{
  "type": "object",
  "title": "Client error",
  "properties": {
    "code": {
      "enum": [
        "created",
        "accepted",
        "no_content",
        "redirect",
        "not_modified",
        "bad_request",
        "unauthorized",
        "forbidden",
        "not_found",
        "method_not_allowed",
        "conflict",
        "precondition_failed",
        "too_many_requests",
        "internal_server_error",
        "unavailable",
        "item_name_invalid",
        "insufficient_scope"
      ],
      "type": "string",
      "example": "item_name_invalid",
      "description": "A Box-specific error code"
    },
    "type": {
      "enum": [
        "error"
      ],
      "type": "string",
      "example": "error",
      "nullable": false,
      "description": "error"
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "example": 400,
      "nullable": false,
      "description": "The HTTP status of the response."
    },
    "message": {
      "type": "string",
      "example": "Method Not Allowed",
      "nullable": false,
      "description": "A short message describing the error."
    },
    "help_url": {
      "type": "string",
      "example": "https://developer.box.com/guides/api-calls/permissions-and-errors/common-errors/",
      "nullable": false,
      "description": "A URL that links to more information about why this error occurred."
    },
    "request_id": {
      "type": "string",
      "example": "abcdef123456",
      "nullable": false,
      "description": "A unique identifier for this response, which can be used\nwhen contacting Box support."
    },
    "context_info": {
      "type": "object",
      "nullable": true,
      "properties": {
        "message": {
          "type": "string",
          "example": "Something went wrong.",
          "description": "More details on the error."
        }
      },
      "description": "A free-form object that contains additional context\nabout the error. The possible fields are defined on\na per-endpoint basis. `message` is only one example."
    }
  },
  "description": "A generic error",
  "x-box-resource-id": "client_error"
}
object Collaboration
{
  "type": "object",
  "title": "Collaboration",
  "required": [
    "id",
    "type"
  ],
  "x-box-tag": "user_collaborations",
  "properties": {
    "id": {
      "type": "string",
      "example": "12345678",
      "description": "The unique identifier for this collaboration."
    },
    "item": {
      "allOf": [
        {
          "oneOf": [
            {
              "$ref": "#/components/schemas/File"
            },
            {
              "$ref": "#/components/schemas/Folder"
            },
            {
              "$ref": "#/components/schemas/WebLink"
            }
          ]
        },
        {
          "description": "The file or folder to which access is granted. The field is\n`null` when the collaboration `status` is `pending`."
        }
      ],
      "nullable": true
    },
    "role": {
      "enum": [
        "editor",
        "viewer",
        "previewer",
        "uploader",
        "previewer uploader",
        "viewer uploader",
        "co-owner",
        "owner"
      ],
      "type": "string",
      "example": "editor",
      "description": "The level of access granted."
    },
    "type": {
      "enum": [
        "collaboration"
      ],
      "type": "string",
      "example": "collaboration",
      "description": "`collaboration`"
    },
    "status": {
      "enum": [
        "accepted",
        "pending",
        "rejected"
      ],
      "type": "string",
      "example": "accepted",
      "description": "The status of the collaboration invitation. If the status\nis `pending`, `login` and `name` return an empty string."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "When the collaboration object was created."
    },
    "created_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Collaborations"
        },
        {
          "description": "The user who created the collaboration object."
        },
        {
          "example": [
            {
              "id": 33224412
            },
            {
              "type": "user"
            },
            {
              "login": "dylan@example.com"
            },
            {
              "name": "Dylan Smith"
            }
          ]
        }
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-26T10:53:43-08:00",
      "nullable": true,
      "description": "When the collaboration will expire, or `null` if no expiration\ndate is set."
    },
    "modified_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "When the collaboration object was last modified."
    },
    "invite_email": {
      "type": "string",
      "example": "john@example.com",
      "nullable": true,
      "description": "The email address used to invite an unregistered collaborator, if\nthey are not a registered user."
    },
    "accessible_by": {
      "allOf": [
        {
          "oneOf": [
            {
              "$ref": "#/components/schemas/User--Collaborations"
            },
            {
              "$ref": "#/components/schemas/Group--Mini"
            }
          ]
        },
        {
          "description": "The user or group that is granted access."
        }
      ]
    },
    "is_access_only": {
      "type": "boolean",
      "example": true,
      "description": "If set to `true`, collaborators have access to\nshared items, but such items won't be visible in the\nAll Files list. Additionally, collaborators won't\nsee the the path to the root folder for the\nshared item."
    },
    "acknowledged_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:55:20-08:00",
      "description": "When the `status` of the collaboration object changed to\n`accepted` or `rejected`."
    },
    "acceptance_requirements_status": {
      "type": "object",
      "properties": {
        "strong_password_requirement": {
          "type": "object",
          "properties": {
            "user_has_strong_password": {
              "type": "boolean",
              "example": true,
              "nullable": true,
              "description": "Whether or not the user has a strong password set for their\naccount. The field is `null` when a strong password is not\nrequired."
            },
            "enterprise_has_strong_password_required_for_external_users": {
              "type": "boolean",
              "example": true,
              "description": "Whether or not the enterprise that owns the content requires\na strong password to collaborate on the content."
            }
          }
        },
        "terms_of_service_requirement": {
          "type": "object",
          "properties": {
            "is_accepted": {
              "type": "boolean",
              "example": true,
              "nullable": true,
              "description": "Whether or not the terms of service have been accepted.  The\nfield is `null` when there is no terms of service required."
            },
            "terms_of_service": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/TermsOfService--Base"
                },
                {
                  "description": "The terms of service that must be accepted before the\ncollaboration can be accepted. The field is `null` when\nthere is no terms of service required."
                }
              ]
            }
          }
        },
        "two_factor_authentication_requirement": {
          "type": "object",
          "properties": {
            "enterprise_has_two_factor_auth_enabled": {
              "type": "boolean",
              "example": true,
              "description": "Whether or not the enterprise that owns the content requires\ntwo-factor authentication to be enabled in order to\ncollaborate on the content."
            },
            "user_has_two_factor_authentication_enabled": {
              "type": "boolean",
              "example": true,
              "nullable": true,
              "description": "Whether or not the user has two-factor authentication\nenabled. The field is `null` when two-factor\nauthentication is not required."
            }
          }
        }
      }
    }
  },
  "description": "Collaborations define access permissions for users and groups to files and\nfolders, similar to access control lists. A collaboration object grants a\nuser or group access to a file or folder with permissions defined by a\nspecific role.",
  "x-box-resource-id": "collaboration"
}
object CollaborationAllowlistEntries
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        },
        "prev_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVih",
          "nullable": true,
          "description": "The marker for the start of the previous page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CollaborationAllowlistEntry"
          },
          "description": "A list of allowed collaboration domains"
        }
      }
    }
  ],
  "title": "Allowed collaboration domains",
  "x-box-tag": "collaboration_allowlist_entries",
  "description": "A list of allowed domains for collaboration.",
  "x-box-resource-id": "collaboration_allowlist_entries"
}
object CollaborationAllowlistEntry
{
  "type": "object",
  "title": "Allowed collaboration domain",
  "x-box-tag": "collaboration_allowlist_entries",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this entry"
    },
    "type": {
      "enum": [
        "collaboration_whitelist_entry"
      ],
      "type": "string",
      "example": "collaboration_whitelist_entry",
      "description": "`collaboration_whitelist_entry`"
    },
    "domain": {
      "type": "string",
      "example": "example.com",
      "description": "The whitelisted domain"
    },
    "direction": {
      "enum": [
        "inbound",
        "outbound",
        "both"
      ],
      "type": "string",
      "example": "both",
      "description": "The direction of the collaborations to allow."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "The time the entry was created at"
    },
    "enterprise": {
      "allOf": [
        {
          "type": "object",
          "title": "Enterprise",
          "properties": {
            "id": {
              "type": "string",
              "example": "11446498",
              "description": "The unique identifier for this enterprise."
            },
            "name": {
              "type": "string",
              "example": "Acme Inc.",
              "description": "The name of the enterprise"
            },
            "type": {
              "enum": [
                "enterprise"
              ],
              "type": "string",
              "example": "enterprise",
              "description": "`enterprise`"
            }
          },
          "description": "A representation of a Box enterprise"
        },
        {
          "description": "The enterprise this list is applied to"
        }
      ]
    }
  },
  "description": "An entry that describes an approved domain for which users can collaborate\nwith files and folders in your enterprise or vice versa.",
  "x-box-resource-id": "collaboration_allowlist_entry"
}
object CollaborationAllowlistExemptTarget
{
  "type": "object",
  "title": "Allowed collaboration domains user exemption",
  "x-box-tag": "collaboration_allowlist_exempt_targets",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this exemption"
    },
    "type": {
      "enum": [
        "collaboration_whitelist_exempt_target"
      ],
      "type": "string",
      "example": "collaboration_whitelist_exempt_target",
      "description": "`collaboration_whitelist_exempt_target`"
    },
    "user": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user that has been exempt"
        }
      ]
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "The time the entry was created"
    },
    "enterprise": {
      "allOf": [
        {
          "type": "object",
          "title": "Enterprise",
          "properties": {
            "id": {
              "type": "string",
              "example": "11446498",
              "description": "The unique identifier for this enterprise."
            },
            "name": {
              "type": "string",
              "example": "Acme Inc.",
              "description": "The name of the enterprise"
            },
            "type": {
              "enum": [
                "enterprise"
              ],
              "type": "string",
              "example": "enterprise",
              "description": "`enterprise`"
            }
          },
          "description": "A representation of a Box enterprise"
        },
        {
          "description": "The enterprise this entry belongs to"
        }
      ]
    },
    "modified_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "The time the entry was modified"
    }
  },
  "description": "The user that is exempt from any of the restrictions\nimposed by the list of allowed collaboration domains for this enterprise.",
  "x-box-resource-id": "collaboration_allowlist_exempt_target"
}
object CollaborationAllowlistExemptTargets
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        },
        "prev_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVih",
          "nullable": true,
          "description": "The marker for the start of the previous page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CollaborationAllowlistExemptTarget"
          },
          "description": "A list of users exempt from any of the restrictions\nimposed by the list of allowed collaboration domains\nfor this enterprise."
        }
      }
    }
  ],
  "title": "Allowed collaboration domains user exemptions",
  "x-box-tag": "collaboration_allowlist_exempt_targets",
  "description": "A list of users exempt from any of the restrictions\nimposed by the list of allowed collaboration domains for this enterprise.",
  "x-box-resource-id": "collaboration_allowlist_exempt_targets"
}
object Collaborations
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "order": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "by": {
                "type": "string",
                "example": "type",
                "description": "The field to order by"
              },
              "direction": {
                "enum": [
                  "ASC",
                  "DESC"
                ],
                "type": "string",
                "example": "ASC",
                "description": "The direction to order by, either ascending or descending"
              }
            },
            "description": "The order in which a pagination is ordered"
          },
          "description": "The order by which items are returned.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        },
        "offset": {
          "type": "integer",
          "format": "int64",
          "example": 2000,
          "description": "The 0-based offset of the first entry in this set. This will be the same\nas the `offset` query parameter.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        },
        "total_count": {
          "type": "integer",
          "format": "int64",
          "example": 5000,
          "description": "One greater than the offset of the last entry in the entire collection.\nThe total number of entries in the collection may be less than\n`total_count`.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        }
      },
      "description": "The part of an API response that describes pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Collaboration"
          },
          "description": "A list of collaborations"
        }
      }
    }
  ],
  "title": "Collaborations",
  "x-box-tag": "user_collaborations",
  "description": "A list of collaborations",
  "x-box-resource-id": "collaborations"
}
object CollaborationsUpdateCollaborationRequest
{
  "type": "object",
  "required": [
    "role"
  ],
  "properties": {
    "role": {
      "enum": [
        "editor",
        "viewer",
        "previewer",
        "uploader",
        "previewer uploader",
        "viewer uploader",
        "co-owner",
        "owner"
      ],
      "type": "string",
      "example": "editor",
      "description": "The level of access granted."
    },
    "status": {
      "enum": [
        "pending",
        "accepted",
        "rejected"
      ],
      "type": "string",
      "example": "accepted",
      "description": "<!--alex ignore reject-->\nSet the status of a `pending` collaboration invitation,\neffectively accepting, or rejecting the invite."
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "example": "2019-08-29T23:59:00-07:00",
      "description": "Update the expiration date for the collaboration. At this date,\nthe collaboration will be automatically removed from the item.\n\nThis feature will only work if the **Automatically remove invited\ncollaborators: Allow folder owners to extend the expiry date**\nsetting has been enabled in the **Enterprise Settings**\nof the **Admin Console**. When the setting is not enabled,\ncollaborations can not have an expiry date and a value for this\nfield will be result in an error.\n\nAdditionally, a collaboration can only be given an\nexpiration if it was created after the **Automatically remove\ninvited collaborator** setting was enabled."
    },
    "can_view_path": {
      "type": "boolean",
      "example": true,
      "description": "Determines if the invited users can see the entire parent path to\nthe associated folder. The user will not gain privileges in any\nparent folder and therefore can not see content the user is not\ncollaborated on.\n\nBe aware that this meaningfully increases the time required to load the\ninvitee's **All Files** page. We recommend you limit the number of\ncollaborations with `can_view_path` enabled to 1,000 per user.\n\nOnly owner or co-owners can invite collaborators with a `can_view_path` of\n`true`.\n\n`can_view_path` can only be used for folder collaborations."
    }
  }
}
object CollaboratorVariable
{
  "type": "object",
  "title": "Collaborator variable",
  "required": [
    "type",
    "variable_type",
    "variable_value"
  ],
  "properties": {
    "type": {
      "enum": [
        "variable"
      ],
      "type": "string",
      "example": "variable",
      "description": "Collaborator\nobject type.\n"
    },
    "variable_type": {
      "enum": [
        "user_list"
      ],
      "type": "string",
      "example": "user_list",
      "description": "Variable type \nfor the Collaborator\nobject.\n"
    },
    "variable_value": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "type",
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "example": "636281",
            "description": "User's ID."
          },
          "type": {
            "enum": [
              "user"
            ],
            "type": "string",
            "example": "user",
            "description": "The object type."
          }
        },
        "description": "User variable used\nin workflow outcomes."
      },
      "description": "A list of user IDs."
    }
  },
  "description": "A collaborator\nobject. Allows to\nspecify a list of user\nID's that are affected\nby the workflow result."
}
object Collection
{
  "type": "object",
  "title": "Collection",
  "x-box-tag": "collections",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this collection."
    },
    "name": {
      "enum": [
        "Favorites"
      ],
      "type": "string",
      "example": "Favorites",
      "description": "The name of the collection."
    },
    "type": {
      "enum": [
        "collection"
      ],
      "type": "string",
      "example": "collection",
      "description": "`collection`"
    },
    "collection_type": {
      "enum": [
        "favorites"
      ],
      "type": "string",
      "example": "favorites",
      "description": "The type of the collection. This is used to\ndetermine the proper visual treatment for\ncollections."
    }
  },
  "description": "A collection of items, including files and folders.\n\nCurrently, the only collection available\nis the `favorites` collection.\n\nThe contents of a collection can be explored in a\nsimilar way to which the contents of a folder is\nexplored.",
  "x-box-resource-id": "collection"
}
object Collections
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "order": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "by": {
                "type": "string",
                "example": "type",
                "description": "The field to order by"
              },
              "direction": {
                "enum": [
                  "ASC",
                  "DESC"
                ],
                "type": "string",
                "example": "ASC",
                "description": "The direction to order by, either ascending or descending"
              }
            },
            "description": "The order in which a pagination is ordered"
          },
          "description": "The order by which items are returned.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        },
        "offset": {
          "type": "integer",
          "format": "int64",
          "example": 2000,
          "description": "The 0-based offset of the first entry in this set. This will be the same\nas the `offset` query parameter.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        },
        "total_count": {
          "type": "integer",
          "format": "int64",
          "example": 5000,
          "description": "One greater than the offset of the last entry in the entire collection.\nThe total number of entries in the collection may be less than\n`total_count`.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        }
      },
      "description": "The part of an API response that describes pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Collection"
          },
          "description": "A list of collections"
        }
      }
    }
  ],
  "title": "Collections",
  "x-box-tag": "collections",
  "description": "A list of collections",
  "x-box-resource-id": "collections"
}
object Comment
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Comment--Base"
    },
    {
      "properties": {
        "item": {
          "allOf": [
            {
              "type": "object",
              "title": "Reference",
              "properties": {
                "id": {
                  "type": "string",
                  "example": "11446498",
                  "description": "The unique identifier for this object"
                },
                "type": {
                  "type": "string",
                  "example": "file",
                  "description": "The type for this object"
                }
              },
              "description": "The bare basic reference for an object"
            },
            {
              "description": "The file this comment was placed on"
            }
          ]
        },
        "message": {
          "type": "string",
          "example": "@Aaron Levie these tigers are cool!",
          "description": "The text of the comment, as provided by the user"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "The time this comment was created"
        },
        "created_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Mini"
            },
            {
              "description": "A mini user object representing the author of the\ncomment"
            }
          ]
        },
        "modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "The time this comment was last modified"
        },
        "is_reply_comment": {
          "type": "boolean",
          "example": true,
          "description": "Whether or not this comment is a reply to another\ncomment"
        }
      }
    }
  ],
  "title": "Comment",
  "description": "Standard representation of a comment.",
  "x-box-variant": "standard",
  "x-box-resource-id": "comment"
}
object Comment--Base
{
  "type": "object",
  "title": "Comment (Base)",
  "x-box-tag": "comments",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this comment."
    },
    "type": {
      "enum": [
        "comment"
      ],
      "type": "string",
      "example": "comment",
      "description": "`comment`"
    }
  },
  "description": "Base representation of a comment.",
  "x-box-variant": "base",
  "x-box-variants": [
    "base",
    "standard",
    "full"
  ],
  "x-box-sanitized": true,
  "x-box-resource-id": "comment--base"
}
object Comment--Full
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Comment"
    },
    {
      "properties": {
        "tagged_message": {
          "type": "string",
          "example": "@[1234567:Aaron Levie] these tigers are cool!",
          "description": "The string representing the comment text with\n@mentions included. @mention format is @[id:username]\nwhere `id` is user's Box ID and `username` is\ntheir display name."
        }
      }
    }
  ],
  "title": "Comment (Full)",
  "description": "Comments are messages created on files. Comments\ncan be made independently or created as responses to other\ncomments",
  "x-box-variant": "full",
  "x-box-resource-id": "comment--full"
}
object Comments
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "order": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "by": {
                "type": "string",
                "example": "type",
                "description": "The field to order by"
              },
              "direction": {
                "enum": [
                  "ASC",
                  "DESC"
                ],
                "type": "string",
                "example": "ASC",
                "description": "The direction to order by, either ascending or descending"
              }
            },
            "description": "The order in which a pagination is ordered"
          },
          "description": "The order by which items are returned.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        },
        "offset": {
          "type": "integer",
          "format": "int64",
          "example": 2000,
          "description": "The 0-based offset of the first entry in this set. This will be the same\nas the `offset` query parameter.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        },
        "total_count": {
          "type": "integer",
          "format": "int64",
          "example": 5000,
          "description": "One greater than the offset of the last entry in the entire collection.\nThe total number of entries in the collection may be less than\n`total_count`.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        }
      },
      "description": "The part of an API response that describes pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Comment--Full"
          },
          "description": "A list of comments"
        }
      }
    }
  ],
  "title": "Comments",
  "x-box-tag": "comments",
  "description": "A list of comments",
  "x-box-resource-id": "comments"
}
object CommentsUpdateMessageRequest
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "example": "Review completed!",
      "description": "The text of the comment to update"
    }
  }
}
object CompletionRuleVariable
{
  "type": "object",
  "title": "Completion rule variable",
  "required": [
    "type",
    "variable_type",
    "variable_value"
  ],
  "properties": {
    "type": {
      "enum": [
        "variable"
      ],
      "type": "string",
      "example": "variable",
      "description": "Completion\nRule object type.\n"
    },
    "variable_type": {
      "enum": [
        "task_completion_rule"
      ],
      "type": "string",
      "example": "task_completion_rule",
      "description": "Variable type\nfor the Completion\nRule object.\n"
    },
    "variable_value": {
      "enum": [
        "all_assignees",
        "any_assignees"
      ],
      "type": "string",
      "example": "all_assignees",
      "description": "Variable\nvalues for a completion\nrule.\n"
    }
  },
  "description": "A completion\nrule object. Determines\nif an action should be completed\nby all or any assignees."
}
object ConflictError
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/ClientError"
    },
    {
      "properties": {
        "context_info": {
          "type": "object",
          "properties": {
            "conflicts": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/FileConflict"
              },
              "description": "A list of the file conflicts that caused this error."
            }
          }
        }
      }
    }
  ],
  "title": "Conflict error",
  "x-box-tag": "uploads",
  "description": "The error that occurs when a file can not be created due\nto a conflict.",
  "x-box-resource-id": "conflict_error"
}
object DevicePinner
{
  "type": "object",
  "title": "Device pinner",
  "x-box-tag": "device_pinners",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this device pin."
    },
    "type": {
      "enum": [
        "device_pinner"
      ],
      "type": "string",
      "example": "device_pinner",
      "description": "`device_pinner`"
    },
    "owned_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user that the device pin belongs to"
        }
      ]
    },
    "product_name": {
      "type": "string",
      "example": "iPad",
      "description": "The type of device being pinned"
    }
  },
  "description": "Device pins allow enterprises to control what devices can\nuse native Box applications.",
  "x-box-resource-id": "device_pinner"
}
object DevicePinners
{
  "type": "object",
  "title": "Device pinners",
  "x-box-tag": "device_pinners",
  "properties": {
    "limit": {
      "type": "integer",
      "format": "int64",
      "default": 100,
      "example": 200,
      "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed."
    },
    "order": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "by": {
            "enum": [
              "id"
            ],
            "type": "string",
            "example": "id",
            "description": "The field that is ordered by"
          },
          "direction": {
            "enum": [
              "asc",
              "desc"
            ],
            "type": "string",
            "example": "asc",
            "description": "The direction to order by, either ascending or descending"
          }
        },
        "description": "The order in which a pagination is ordered"
      },
      "description": "The order by which items are returned."
    },
    "entries": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/DevicePinner"
      },
      "description": "A list of device pins"
    },
    "next_marker": {
      "type": "integer",
      "format": "int64",
      "example": 3000,
      "description": "The marker for the start of the next page of results."
    }
  },
  "description": "A list of device pins",
  "x-box-resource-id": "device_pinners"
}
object DomainRestrictionsForCollaborationsAddAllowedDomainEntryRequest
{
  "type": "object",
  "required": [
    "domain",
    "direction"
  ],
  "properties": {
    "domain": {
      "type": "string",
      "example": "example.com",
      "description": "The domain to add to the list of allowed domains."
    },
    "direction": {
      "enum": [
        "inbound",
        "outbound",
        "both"
      ],
      "type": "string",
      "example": "inbound",
      "description": "The direction in which to allow collaborations."
    }
  }
}
object DomainRestrictionsUserExemptionsCreateUserExemptionFromCollaborationDomainRestrictionsRequest
{
  "type": "object",
  "required": [
    "user"
  ],
  "properties": {
    "user": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "23522323",
          "description": "The ID of the user to exempt."
        }
      },
      "description": "The user to exempt."
    }
  }
}
string DownloadsFileContentGetResponse
{
  "type": "string",
  "format": "binary",
  "description": "The binary content of the file"
}
object EmailAlias
{
  "type": "object",
  "title": "Email alias",
  "x-box-tag": "email_aliases",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this object"
    },
    "type": {
      "enum": [
        "email_alias"
      ],
      "type": "string",
      "example": "email_alias",
      "description": "`email_alias`"
    },
    "email": {
      "type": "string",
      "example": "alias@example.com",
      "description": "The email address"
    },
    "is_confirmed": {
      "type": "boolean",
      "example": true,
      "description": "Whether the email address has been confirmed"
    }
  },
  "description": "An email alias for a user.",
  "x-box-resource-id": "email_alias"
}
object EmailAliases
{
  "type": "object",
  "title": "Email aliases",
  "x-box-tag": "email_aliases",
  "properties": {
    "entries": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmailAlias"
      },
      "description": "A list of email aliases"
    },
    "total_count": {
      "type": "integer",
      "format": "int64",
      "example": 5000,
      "description": "The number of email aliases."
    }
  },
  "description": "A list of email aliases",
  "x-box-resource-id": "email_aliases"
}
object EmailAliasesCreateNewAliasRequest
{
  "type": "object",
  "required": [
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "example": "alias@example.com",
      "description": "The email address to add to the account as an alias.\n\nNote: The domain of the email alias needs to be registered\n to your enterprise.\nSee the [domain verification guide](https://support.box.com/hc/en-us/articles/4408619650579-Domain-Verification) for steps to add a new domain."
    }
  }
}
object Enterprise--Base
{
  "type": "object",
  "title": "Enterprise (Base)",
  "properties": {
    "id": {
      "type": "string",
      "example": "1910967",
      "description": "The unique identifier for this enterprise"
    },
    "type": {
      "enum": [
        "enterprise"
      ],
      "type": "string",
      "example": "enterprise",
      "nullable": false,
      "description": "`enterprise`"
    }
  },
  "description": "A mini representation of a enterprise, used when\nnested within another resource.",
  "x-box-variant": "base",
  "x-box-variants": [
    "base",
    "mini",
    "standard",
    "full"
  ],
  "x-box-resource-id": "enterprise--base"
}
object Event
{
  "type": "object",
  "title": "Event",
  "x-box-tag": "events",
  "properties": {
    "type": {
      "type": "string",
      "example": "event",
      "description": "`event`"
    },
    "source": {
      "allOf": [
        {
          "oneOf": [
            {
              "$ref": "#/components/schemas/User"
            },
            {
              "$ref": "#/components/schemas/EventSource"
            },
            {
              "$ref": "#/components/schemas/File"
            },
            {
              "$ref": "#/components/schemas/Folder"
            },
            {
              "$ref": "#/components/schemas/GenericSource"
            }
          ]
        },
        {
          "description": "The resource that triggered this event. For more information,\ncheck out the guide on event triggers."
        }
      ]
    },
    "event_id": {
      "type": "string",
      "example": "f82c3ba03e41f7e8a7608363cc6c0390183c3f83",
      "description": "The ID of the event object. You can use this to detect duplicate events"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2022-12-12T10:53:43-08:00",
      "description": "When the event object was created"
    },
    "created_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user that performed the action represented by the event.\nSome events may be performed by users not logged into Box.\nIn that case, not all attributes of the object are populated and the\nevent is attributed to a unknown user (`user_id = 2`)"
        }
      ]
    },
    "event_type": {
      "allOf": [
        {
          "enum": [
            "ACCESS_GRANTED",
            "ACCESS_REVOKED",
            "ADD_DEVICE_ASSOCIATION",
            "ADD_LOGIN_ACTIVITY_DEVICE",
            "ADMIN_LOGIN",
            "APPLICATION_CREATED",
            "APPLICATION_PUBLIC_KEY_ADDED",
            "APPLICATION_PUBLIC_KEY_DELETED",
            "CHANGE_ADMIN_ROLE",
            "CHANGE_FOLDER_PERMISSION",
            "COLLABORATION_ACCEPT",
            "COLLABORATION_EXPIRATION",
            "COLLABORATION_INVITE",
            "COLLABORATION_REMOVE",
            "COLLABORATION_ROLE_CHANGE",
            "COLLAB_ADD_COLLABORATOR",
            "COLLAB_INVITE_COLLABORATOR",
            "COLLAB_REMOVE_COLLABORATOR",
            "COLLAB_ROLE_CHANGE",
            "COMMENT_CREATE",
            "COMMENT_DELETE",
            "CONTENT_ACCESS",
            "CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY",
            "CONTENT_WORKFLOW_AUTOMATION_ADD",
            "CONTENT_WORKFLOW_AUTOMATION_DELETE",
            "CONTENT_WORKFLOW_POLICY_ADD",
            "CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION",
            "CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION",
            "COPY",
            "DATA_RETENTION_CREATE_RETENTION",
            "DATA_RETENTION_REMOVE_RETENTION",
            "DELETE",
            "DELETE_USER",
            "DEVICE_TRUST_CHECK_FAILED",
            "DOWNLOAD",
            "EDIT",
            "EDIT_USER",
            "EMAIL_ALIAS_CONFIRM",
            "EMAIL_ALIAS_REMOVE",
            "ENABLE_TWO_FACTOR_AUTH",
            "ENTERPRISE_APP_AUTHORIZATION_UPDATE",
            "FAILED_LOGIN",
            "FILE_MARKED_MALICIOUS",
            "FILE_WATERMARKED_DOWNLOAD",
            "GROUP_ADD_ITEM",
            "GROUP_ADD_USER",
            "GROUP_CREATION",
            "GROUP_DELETION",
            "GROUP_EDITED",
            "GROUP_REMOVE_ITEM",
            "GROUP_REMOVE_USER",
            "ITEM_COPY",
            "ITEM_CREATE",
            "ITEM_DOWNLOAD",
            "ITEM_MAKE_CURRENT_VERSION",
            "ITEM_MODIFY",
            "ITEM_MOVE",
            "ITEM_OPEN",
            "ITEM_PREVIEW",
            "ITEM_RENAME",
            "ITEM_SHARED",
            "ITEM_SHARED_CREATE",
            "ITEM_SHARED_UNSHARE",
            "ITEM_SHARED_UPDATE",
            "ITEM_SYNC",
            "ITEM_TRASH",
            "ITEM_UNDELETE_VIA_TRASH",
            "ITEM_UNSYNC",
            "ITEM_UPLOAD",
            "LEGAL_HOLD_ASSIGNMENT_CREATE",
            "LEGAL_HOLD_ASSIGNMENT_DELETE",
            "LEGAL_HOLD_POLICY_CREATE",
            "LEGAL_HOLD_POLICY_DELETE",
            "LEGAL_HOLD_POLICY_UPDATE",
            "LOCK",
            "LOCK_CREATE",
            "LOCK_DESTROY",
            "LOGIN",
            "MASTER_INVITE_ACCEPT",
            "MASTER_INVITE_REJECT",
            "METADATA_INSTANCE_CREATE",
            "METADATA_INSTANCE_DELETE",
            "METADATA_INSTANCE_UPDATE",
            "METADATA_TEMPLATE_CREATE",
            "METADATA_TEMPLATE_DELETE",
            "METADATA_TEMPLATE_UPDATE",
            "MOVE",
            "NEW_USER",
            "PREVIEW",
            "REMOVE_DEVICE_ASSOCIATION",
            "REMOVE_LOGIN_ACTIVITY_DEVICE",
            "RENAME",
            "RETENTION_POLICY_ASSIGNMENT_ADD",
            "SHARE",
            "SHARE_EXPIRATION",
            "SHIELD_ALERT",
            "SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED",
            "SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION",
            "SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED",
            "SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION",
            "SHIELD_JUSTIFICATION_APPROVAL",
            "SHIELD_SHARED_LINK_ACCESS_BLOCKED",
            "SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE",
            "SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE",
            "SIGN_DOCUMENT_ASSIGNED",
            "SIGN_DOCUMENT_CANCELLED",
            "SIGN_DOCUMENT_COMPLETED",
            "SIGN_DOCUMENT_CONVERTED",
            "SIGN_DOCUMENT_CREATED",
            "SIGN_DOCUMENT_DECLINED",
            "SIGN_DOCUMENT_EXPIRED",
            "SIGN_DOCUMENT_SIGNED",
            "SIGN_DOCUMENT_VIEWED_BY_SIGNED",
            "SIGNER_DOWNLOADED",
            "SIGNER_FORWARDED",
            "STORAGE_EXPIRATION",
            "TAG_ITEM_CREATE",
            "TASK_ASSIGNMENT_CREATE",
            "TASK_ASSIGNMENT_DELETE",
            "TASK_ASSIGNMENT_UPDATE",
            "TASK_CREATE",
            "TASK_UPDATE",
            "TERMS_OF_SERVICE_ACCEPT",
            "TERMS_OF_SERVICE_REJECT",
            "UNDELETE",
            "UNLOCK",
            "UNSHARE",
            "UPDATE_COLLABORATION_EXPIRATION",
            "UPDATE_SHARE_EXPIRATION",
            "UPLOAD",
            "USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE",
            "WATERMARK_LABEL_CREATE",
            "WATERMARK_LABEL_DELETE"
          ],
          "type": "string",
          "title": "Event Type",
          "example": "FILE_MARKED_MALICIOUS",
          "description": "An event type that can trigger an event"
        },
        {
          "description": "The event type that triggered this event"
        }
      ]
    },
    "session_id": {
      "type": "string",
      "example": "70090280850c8d2a1933c1",
      "description": "The session of the user that performed the action. Not all events will\npopulate this attribute."
    },
    "recorded_at": {
      "type": "string",
      "format": "date-time",
      "example": "2022-12-12T10:54:43-08:00",
      "description": "When the event object was recorded in database"
    },
    "additional_details": {
      "type": "object",
      "example": {
        "key": "value"
      },
      "description": "This object provides additional information about the event if available.\n\nThis can include how a user performed an event as well as additional\ninformation to correlate an event to external KeySafe logs. Not all events\nhave an `additional_details` object.  This object is only available in the\nEnterprise Events."
    }
  },
  "description": "The description of an event that happened within Box",
  "x-box-resource-id": "event"
}
object EventSource
{
  "type": "object",
  "title": "Event source",
  "required": [
    "item_type",
    "item_id",
    "item_name"
  ],
  "properties": {
    "parent": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Folder--Mini"
        },
        {
          "description": "The optional folder that this folder is located within.\n\nThis value may be `null` for some folders such as the\nroot folder or the trash folder."
        }
      ],
      "nullable": true
    },
    "item_id": {
      "type": "string",
      "example": "560284318361",
      "nullable": false,
      "description": "The unique identifier that represents the\nitem.\n"
    },
    "owned_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who owns this item."
        },
        {
          "nullable": false
        }
      ]
    },
    "item_name": {
      "type": "string",
      "example": "report.pdf",
      "nullable": false,
      "description": "The name of the item.\n"
    },
    "item_type": {
      "enum": [
        "file",
        "folder"
      ],
      "type": "string",
      "example": "file",
      "nullable": false,
      "description": "The type of the item that the event\nrepresents. Can be `file` or `folder`.\n"
    },
    "classification": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "example": "Top Secret",
          "description": "The classification's name"
        }
      },
      "description": "The object containing classification information for the item that\ntriggered the event. This field will not appear if the item does not\nhave a classification set."
    }
  },
  "description": "The source file or folder that triggered an event in\nthe event stream.",
  "x-box-resource-id": "event_source"
}
object Events
{
  "type": "object",
  "title": "Events",
  "x-box-tag": "events",
  "properties": {
    "entries": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Event"
      },
      "description": "A list of events"
    },
    "chunk_size": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "The number of events returned in this response."
    },
    "next_stream_position": {
      "type": "string",
      "example": "1152922976252290886",
      "description": "The stream position of the start of the next page (chunk)\nof events."
    }
  },
  "description": "A list of event objects",
  "x-box-resource-id": "events"
}
object File
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/File--Mini"
    },
    {
      "properties": {
        "size": {
          "type": "integer",
          "example": 629644,
          "nullable": false,
          "description": "The file size in bytes. Be careful parsing this integer as it can\nget very large and cause an integer overflow."
        },
        "parent": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Folder--Mini"
            },
            {
              "description": "The folder that this file is located within."
            }
          ],
          "nullable": true
        },
        "owned_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Mini"
            },
            {
              "description": "The user who owns this file"
            },
            {
              "nullable": false
            }
          ]
        },
        "purged_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": true,
          "description": "The time at which this file is expected to be purged\nfrom the trash."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": false,
          "description": "The date and time when the file was created on Box."
        },
        "created_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Mini"
            },
            {
              "description": "The user who created this file"
            }
          ]
        },
        "trashed_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": true,
          "description": "The time at which this file was put in the trash."
        },
        "description": {
          "type": "string",
          "example": "Contract for Q1 renewal",
          "nullable": false,
          "maxLength": 256,
          "description": "The optional description of this file"
        },
        "item_status": {
          "enum": [
            "active",
            "trashed",
            "deleted"
          ],
          "type": "string",
          "example": "active",
          "nullable": false,
          "description": "Defines if this item has been deleted or not.\n\n* `active` when the item has is not in the trash\n* `trashed` when the item has been moved to the trash but not deleted\n* `deleted` when the item has been permanently deleted."
        },
        "modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": false,
          "description": "The date and time when the file was last updated on Box."
        },
        "modified_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Mini"
            },
            {
              "description": "The user who last modified this file"
            },
            {
              "nullable": false
            }
          ]
        },
        "shared_link": {
          "allOf": [
            {
              "type": "object",
              "title": "Shared link",
              "required": [
                "url",
                "accessed",
                "effective_access",
                "effective_permission",
                "is_password_enabled",
                "download_count",
                "preview_count"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "format": "url",
                  "example": "https://www.box.com/s/vspke7y05sb214wjokpk",
                  "nullable": false,
                  "description": "The URL that can be used to access the item on Box.\n\nThis URL will display the item in Box's preview UI where the file\ncan be downloaded if allowed.\n\nThis URL will continue to work even when a custom `vanity_url`\nhas been set for this shared link."
                },
                "access": {
                  "enum": [
                    "open",
                    "company",
                    "collaborators"
                  ],
                  "type": "string",
                  "example": "open",
                  "nullable": false,
                  "description": "The access level for this shared link.\n\n* `open` - provides access to this item to anyone with this link\n* `company` - only provides access to this item to people the same company\n* `collaborators` - only provides access to this item to people who are\n   collaborators on this item\n\nIf this field is omitted when creating the shared link, the access level\nwill be set to the default access level specified by the enterprise admin."
                },
                "vanity_url": {
                  "type": "string",
                  "format": "url",
                  "example": "https://acme.app.box.com/v/my_url/",
                  "nullable": true,
                  "description": "The \"Custom URL\" that can also be used to preview the item on Box.  Custom\nURLs can only be created or modified in the Box Web application."
                },
                "permissions": {
                  "type": "object",
                  "required": [
                    "can_download",
                    "can_preview",
                    "can_edit"
                  ],
                  "properties": {
                    "can_edit": {
                      "type": "boolean",
                      "example": false,
                      "nullable": false,
                      "description": "Defines if the shared link allows for the item to be edited.\n\nThis value can only be `true` if `can_download` is also `true` and if\nthe item has a type of `file`."
                    },
                    "can_preview": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Defines if the shared link allows for the item to be previewed.\n\nThis value is always `true`. For shared links on folders this also\napplies to any items in the folder."
                    },
                    "can_download": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Defines if the shared link allows for the item to be downloaded. For\nshared links on folders, this also applies to any items in the folder.\n\nThis value can be set to `true` when the effective access level is\nset to `open` or `company`, not `collaborators`."
                    }
                  },
                  "description": "Defines if this link allows a user to preview, edit, and download an item.\nThese permissions refer to the shared link only and\ndo not supersede permissions applied to the item itself."
                },
                "unshared_at": {
                  "type": "string",
                  "format": "date-time",
                  "example": "2018-04-13T13:53:23-07:00",
                  "nullable": true,
                  "description": "The date and time when this link will be unshared. This field can only be\nset by users with paid accounts."
                },
                "vanity_name": {
                  "type": "string",
                  "example": "my_url",
                  "nullable": true,
                  "description": "The custom name of a shared link, as used in the `vanity_url` field."
                },
                "download_url": {
                  "type": "string",
                  "format": "url",
                  "example": "https://www.box.com/shared/static/rh935iit6ewrmw0unyul.jpeg",
                  "nullable": true,
                  "description": "A URL that can be used to download the file. This URL can be used in\na browser to download the file. This URL includes the file\nextension so that the file will be saved with the right file type.\n\nThis property will be `null` for folders.",
                  "x-box-premium-feature": true
                },
                "preview_count": {
                  "type": "integer",
                  "example": 3,
                  "nullable": false,
                  "description": "The number of times this item has been previewed."
                },
                "download_count": {
                  "type": "integer",
                  "example": 3,
                  "nullable": false,
                  "description": "The number of times this item has been downloaded."
                },
                "effective_access": {
                  "enum": [
                    "open",
                    "company",
                    "collaborators"
                  ],
                  "type": "string",
                  "example": "company",
                  "nullable": false,
                  "description": "The effective access level for the shared link. This can be a more\nrestrictive access level than the value in the `access` field when the\nenterprise settings restrict the allowed access levels."
                },
                "is_password_enabled": {
                  "type": "boolean",
                  "example": true,
                  "nullable": false,
                  "description": "Defines if the shared link requires a password to access the item."
                },
                "effective_permission": {
                  "enum": [
                    "can_edit",
                    "can_download",
                    "can_preview",
                    "no_access"
                  ],
                  "type": "string",
                  "example": "can_download",
                  "nullable": false,
                  "description": "The effective permissions for this shared link.\nThese result in the more restrictive combination of\nthe share link permissions and the item permissions set\nby the administrator, the owner, and any ancestor item\nsuch as a folder."
                }
              },
              "description": "Shared links provide direct, read-only access to files or folder on Box.\n\nShared links with open access level allow anyone with the URL\nto access the item, while shared links with company or collaborators access\nlevels can only be accessed by appropriately authenticated Box users."
            },
            {
              "description": "The shared link for this file. This will be\n`null` if no shared link has been created for this\nfile."
            },
            {
              "nullable": true
            }
          ]
        },
        "path_collection": {
          "allOf": [
            {
              "type": "object",
              "title": "Path collection",
              "required": [
                "total_count",
                "entries"
              ],
              "properties": {
                "entries": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Folder--Mini"
                  },
                  "nullable": false,
                  "description": "The parent folders for this item"
                },
                "total_count": {
                  "type": "integer",
                  "format": "int64",
                  "example": 1,
                  "nullable": false,
                  "description": "The number of folders in this list."
                }
              },
              "description": "A list of parent folders for an item."
            },
            {
              "description": "The tree of folders that this file is contained in,\nstarting at the root."
            },
            {
              "nullable": false
            }
          ]
        },
        "content_created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": true,
          "description": "The date and time at which this file was originally\ncreated, which might be before it was uploaded to Box."
        },
        "content_modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": true,
          "description": "The date and time at which this file was last updated,\nwhich might be before it was uploaded to Box."
        }
      }
    }
  ],
  "title": "File",
  "description": "A standard representation of a file, as returned from any\nfile API endpoints by default",
  "x-box-variant": "standard",
  "x-box-resource-id": "file"
}
object File--Base
{
  "type": "object",
  "title": "File (Base)",
  "nullable": true,
  "required": [
    "id",
    "type"
  ],
  "x-box-tag": "files",
  "properties": {
    "id": {
      "type": "string",
      "example": "12345",
      "nullable": false,
      "description": "The unique identifier that represent a file.\n\nThe ID for any file can be determined\nby visiting a file in the web application\nand copying the ID from the URL. For example,\nfor the URL `https://*.app.box.com/files/123`\nthe `file_id` is `123`."
    },
    "etag": {
      "type": "string",
      "example": "1",
      "nullable": true,
      "description": "The HTTP `etag` of this file. This can be used within some API\nendpoints in the `If-Match` and `If-None-Match` headers to only\nperform changes on the file if (no) changes have happened."
    },
    "type": {
      "enum": [
        "file"
      ],
      "type": "string",
      "example": "file",
      "nullable": false,
      "description": "`file`"
    }
  },
  "description": "The bare basic representation of a file, the minimal\namount of fields returned when using the `fields` query\nparameter.",
  "x-box-variant": "base",
  "x-box-variants": [
    "base",
    "mini",
    "standard",
    "full"
  ],
  "x-box-sanitized": true,
  "x-box-resource-id": "file--base"
}
object File--Full
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/File"
    },
    {
      "properties": {
        "lock": {
          "allOf": [
            {
              "type": "object",
              "title": "Lock",
              "properties": {
                "id": {
                  "type": "string",
                  "example": "11446498",
                  "description": "The unique identifier for this lock"
                },
                "type": {
                  "enum": [
                    "lock"
                  ],
                  "type": "string",
                  "example": "lock",
                  "description": "`lock`"
                },
                "app_type": {
                  "enum": [
                    "gsuite",
                    "office_wopi",
                    "office_wopiplus",
                    "other"
                  ],
                  "type": "string",
                  "example": "office_wopiplus",
                  "nullable": true,
                  "description": "If the lock is managed by an application rather than a user, this\nfield identifies the type of the application that holds the lock.\nThis is an open enum and may be extended with additional values in\nthe future."
                },
                "created_at": {
                  "type": "string",
                  "format": "date-time",
                  "example": "2012-12-12T10:53:43-08:00",
                  "description": "The time this lock was created at."
                },
                "created_by": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/User--Mini"
                    },
                    {
                      "description": "The user who created the lock."
                    }
                  ]
                },
                "expired_at": {
                  "type": "string",
                  "format": "date-time",
                  "example": "2012-12-12T10:53:43-08:00",
                  "description": "The time this lock is to expire at, which might be in the past."
                },
                "is_download_prevented": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether or not the file can be downloaded while locked."
                }
              },
              "description": "The lock held on a file. A lock prevents a file from being moved,\nrenamed, or otherwise changed by anyone else than the user who created the\nlock."
            },
            {
              "description": "The lock held on this file. If there is no lock, this can either\nbe `null` or have a timestamp in the past."
            }
          ],
          "nullable": true
        },
        "tags": {
          "allOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "approved"
              ],
              "maxItems": 100,
              "minItems": 1,
              "description": "The tags for this item. These tags are shown in\nthe Box web app and mobile apps next to an item.\n\nTo add or remove a tag, retrieve the item's current tags,\nmodify them, and then update this field.\n\nThere is a limit of 100 tags per item, and 10,000\nunique tags per enterprise."
            },
            {
              "nullable": false
            }
          ]
        },
        "metadata": {
          "allOf": [
            {
              "type": "object",
              "title": "Item metadata instances",
              "example": {
                "enterprise_27335": {
                  "marketingCollateral": {
                    "$id": "01234500-12f1-1234-aa12-b1d234cb567e",
                    "$type": "properties-6bcba49f-ca6d-4d2a-a758-57fe6edf44d0",
                    "$scope": "enterprise_27335",
                    "$parent": "folder_59449484661",
                    "$canEdit": true,
                    "$version": 1,
                    "$template": "marketingCollateral",
                    "$typeVersion": 2
                  }
                }
              },
              "description": "A list of metadata instances, nested within key-value pairs of their `scope`\nand `templateKey`.\n\nTo access the metadata for a file or folder, first use the\nmetadata endpoints to determine the metadata templates available to your\nenterprise.\n\nThen use the `GET /files/:id` or `GET /folder/:id`\nendpoint with the `fields` query parameter to get\nthe metadata by ID.\n\nTo request a metadata instance for a particular `scope` and `templateKey`\nuse the following format for the `fields` parameter:\n`metadata.<scope>.<templateKey>`\n\nFor example, `?fields=metadata.enterprise_27335.marketingCollateral`.",
              "additionalProperties": {
                "type": "object",
                "example": {
                  "marketingCollateral": {
                    "$id": "01234500-12f1-1234-aa12-b1d234cb567e",
                    "$type": "properties-6bcba49f-ca6d-4d2a-a758-57fe6edf44d0",
                    "$scope": "enterprise_27335",
                    "$parent": "folder_59449484661",
                    "$canEdit": true,
                    "$version": 1,
                    "$template": "marketingCollateral",
                    "$typeVersion": 2
                  }
                },
                "description": "A list of metadata instances, nested within key-value pairs of their `scope`\nand `templateKey`.",
                "additionalProperties": {
                  "$ref": "#/components/schemas/Metadata--Base"
                }
              }
            },
            {
              "description": "An object containing the metadata instances that have been\nattached to this file.\n\nEach metadata instance is uniquely identified by its `scope` and\n`templateKey`. There can only be one instance of any metadata\ntemplate attached to each file. Each metadata instance is nested\nwithin an object with the `templateKey` as the key, which again\nitself is nested in an object with the `scope` as the key."
            }
          ]
        },
        "extension": {
          "type": "string",
          "example": "pdf",
          "description": "Indicates the (optional) file extension for this file. By default,\nthis is set to an empty string."
        },
        "expires_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": true,
          "description": "When the file will automatically be deleted"
        },
        "is_package": {
          "type": "boolean",
          "example": true,
          "description": "Indicates if the file is a package. Packages are commonly used\nby Mac Applications and can include iWork files."
        },
        "permissions": {
          "allOf": [
            {
              "type": "object",
              "allOf": [
                {
                  "type": "object",
                  "required": [
                    "can_delete",
                    "can_download",
                    "can_invite_collaborator",
                    "can_rename",
                    "can_set_share_access",
                    "can_share"
                  ],
                  "properties": {
                    "can_share": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the user can create a shared link for this item."
                    },
                    "can_delete": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the current user can delete this item."
                    },
                    "can_rename": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the user can rename this item."
                    },
                    "can_download": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the current user can download this item."
                    },
                    "can_set_share_access": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the user can change the access level of an\nexisting shared link on this item."
                    },
                    "can_invite_collaborator": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the current user can invite new\nusers to collaborate on this item, and if the user can\nupdate the role of a user already collaborated on this\nitem."
                    }
                  },
                  "description": "The permissions that the authenticated user has for an item."
                },
                {
                  "properties": {
                    "can_upload": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the user can upload a new version of this file."
                    },
                    "can_comment": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the user can place comments on this file."
                    },
                    "can_preview": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the user can preview this file."
                    },
                    "can_annotate": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the user can place annotations on this file."
                    },
                    "can_view_annotations_all": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the user view all annotations placed on this file"
                    },
                    "can_view_annotations_self": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the user view annotations placed by themselves\non this file"
                    }
                  }
                }
              ],
              "required": [
                "can_annotate",
                "can_comment",
                "can_preview",
                "can_upload",
                "can_view_annotations_all",
                "can_view_annotations_self"
              ],
              "description": "The permissions that the authenticated user has for a file."
            },
            {
              "description": "Describes the permissions that the current user has\nfor this file."
            },
            {
              "nullable": false
            }
          ]
        },
        "comment_count": {
          "type": "integer",
          "example": 10,
          "description": "The number of comments on this file"
        },
        "classification": {
          "allOf": [
            {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "example": "Top Secret",
                  "description": "The name of the classification"
                },
                "color": {
                  "type": "string",
                  "example": "#FF0000",
                  "description": "The color that is used to display the\nclassification label in a user-interface. Colors are defined by the admin\nor co-admin who created the classification in the Box web app."
                },
                "definition": {
                  "type": "string",
                  "example": "Content that should not be shared outside the company.",
                  "description": "An explanation of the meaning of this classification."
                }
              },
              "description": "The classification applied to an item"
            },
            {
              "description": "Details about the classification applied to this file."
            },
            {
              "nullable": true
            }
          ]
        },
        "disposition_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": true,
          "description": "The retention expiration timestamp for the given file"
        },
        "version_number": {
          "type": "string",
          "example": "1",
          "description": "The version number of this file"
        },
        "watermark_info": {
          "allOf": [
            {
              "type": "object",
              "properties": {
                "is_watermarked": {
                  "type": "boolean",
                  "example": true,
                  "nullable": false,
                  "description": "Specifies if this item has a watermark applied."
                }
              },
              "description": "Details about the watermark applied to this item"
            },
            {
              "description": "Details about the watermark applied to this file"
            }
          ]
        },
        "representations": {
          "allOf": [
            {
              "type": "object",
              "title": "Representations",
              "properties": {
                "entries": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "info": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "example": "https://api.box.com/2.0/internal_files/123/versions/345/representations/png_paged_2048x2048",
                            "description": "The API URL that can be used to get more info on this file\nrepresentation. Make sure to make an authenticated API call\nto this endpoint."
                          }
                        },
                        "description": "An object containing the URL that can be used to fetch more info\non this representation."
                      },
                      "status": {
                        "type": "object",
                        "properties": {
                          "state": {
                            "enum": [
                              "success",
                              "viewable",
                              "pending",
                              "none"
                            ],
                            "type": "string",
                            "example": "success",
                            "description": "The status of the representation.\n\n* `success` defines the representation as ready to be viewed.\n* `viewable` defines a video to be ready for viewing.\n* `pending` defines the representation as to be generated. Retry\n  this endpoint to re-check the status.\n* `none` defines that the representation will be created when\n  requested. Request the URL defined in the `info` object to\n  trigger this generation."
                          }
                        },
                        "description": "An object containing the status of this representation."
                      },
                      "content": {
                        "type": "object",
                        "properties": {
                          "url_template": {
                            "type": "string",
                            "example": "https://dl.boxcloud.com/api/2.0/internal_files/123/versions/345/representations/png_paged_2048x2048/content/{+asset_path}?watermark_content=4567",
                            "description": "The download URL that can be used to fetch the representation.\nMake sure to make an authenticated API call to this endpoint.\n\nThis URL is a template and will require the `{+asset_path}` to\nbe replaced by a path. In general, for unpaged representations\nit can be replaced by an empty string.\n\nFor paged representations, replace the `{+asset_path}` with the\npage to request plus the extension for the file, for example\n`1.pdf`.\n\nWhen requesting the download URL the following additional\nquery params can be passed along.\n\n* `set_content_disposition_type` - Sets the\n`Content-Disposition` header in the API response with the\nspecified disposition type of either `inline` or `attachment`.\nIf not supplied, the `Content-Disposition` header is not\nincluded in the response.\n\n* `set_content_disposition_filename` - Allows the application to\n  define the representation's file name used in the\n  `Content-Disposition` header.  If not defined, the filename\n  is derived from the source file name in Box combined with the\n  extension of the representation."
                          }
                        },
                        "description": "An object containing the URL that can be used to actually fetch\nthe representation."
                      },
                      "properties": {
                        "type": "object",
                        "properties": {
                          "paged": {
                            "type": "boolean",
                            "example": true,
                            "description": "Indicates if the representation is build up out of multiple\npages."
                          },
                          "thumb": {
                            "type": "boolean",
                            "example": true,
                            "description": "Indicates if the representation can be used as a thumbnail of\nthe file."
                          },
                          "dimensions": {
                            "type": "string",
                            "format": "<width>x<height>",
                            "example": "2048x2048",
                            "description": "The width by height size of this representation in pixels."
                          }
                        },
                        "description": "An object containing the size and type of this presentation."
                      },
                      "representation": {
                        "type": "string",
                        "example": "png",
                        "description": "Indicates the file type of the returned representation."
                      }
                    },
                    "description": "A file representation"
                  },
                  "description": "A list of files"
                }
              },
              "description": "A list of file representations"
            },
            {
              "description": "A list of representations for a file that can be used to\ndisplay a placeholder of the file in your application. By default\nthis returns all representations and we recommend using the\n`x-rep-hints` header to further customize the desired\nrepresentations."
            }
          ]
        },
        "has_collaborations": {
          "type": "boolean",
          "example": true,
          "nullable": false,
          "description": "Specifies if this file has any other collaborators."
        },
        "expiring_embed_link": {
          "allOf": [
            {
              "type": "object",
              "allOf": [
                {
                  "type": "object",
                  "properties": {
                    "expires_in": {
                      "type": "integer",
                      "format": "int64",
                      "example": 3600,
                      "description": "The time in seconds by which this token will expire."
                    },
                    "token_type": {
                      "enum": [
                        "bearer"
                      ],
                      "type": "string",
                      "example": "bearer",
                      "description": "The type of access token returned."
                    },
                    "access_token": {
                      "type": "string",
                      "format": "token",
                      "example": "c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ",
                      "description": "The requested access token."
                    },
                    "restricted_to": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/FileOrFolderScope"
                      },
                      "description": "The permissions that this access token permits,\nproviding a list of resources (files, folders, etc)\nand the scopes permitted for each of those resources."
                    }
                  },
                  "description": "The basics of an access token"
                },
                {
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "url",
                      "example": "https://cloud.app.box.com/preview/expiring_embed/...",
                      "description": "The actual expiring embed URL for this file, constructed\nfrom the file ID and access tokens specified in this object."
                    }
                  }
                }
              ],
              "title": "Expiring embed link",
              "description": "An expiring Box Embed Link."
            },
            {
              "description": "Requesting this field creates an expiring Box Embed URL for an\nembedded preview session in an `iframe`.\n\nThis URL will expire after 60 seconds and the session will\nexpire after 60 minutes.\n\nNot all file types are supported for these embed URLs. Box Embed\nis not optimized for mobile browsers and should not be used in web\nexperiences designed for mobile devices. Many UI elements, like\nthe **download** and **print** options might not show in mobile\nbrowsers."
            }
          ]
        },
        "is_externally_owned": {
          "type": "boolean",
          "example": true,
          "nullable": false,
          "description": "Specifies if this file is owned by a user outside of the\nauthenticated enterprise."
        },
        "allowed_invitee_roles": {
          "type": "array",
          "items": {
            "enum": [
              "editor",
              "viewer",
              "previewer",
              "uploader",
              "previewer uploader",
              "viewer uploader",
              "co-owner"
            ],
            "type": "string"
          },
          "example": [
            "editor"
          ],
          "nullable": false,
          "description": "A list of the types of roles that user can be invited at\nwhen sharing this file."
        },
        "uploader_display_name": {
          "allOf": [
            {
              "type": "string",
              "title": "Uploader display name",
              "example": "Ellis Wiggins",
              "nullable": false,
              "description": "The display name of the user that uploaded the file. In most cases this is the\nname of the user logged in at the time of the upload.\n\nIf the file was uploaded using a File Request form that requires the user to\nprovide an email address, this field is populated with that email address. If\nan email address was not required in the File Request form, this field is set\nto return a value of `File Request`.\n\nIn all other anonymous cases where no email was provided this field\nwill default to a value of `Someone`."
            }
          ]
        },
        "is_accessible_via_shared_link": {
          "enum": [
            true,
            false
          ],
          "type": "boolean",
          "example": true,
          "description": "Specifies if the file can be accessed\nvia the direct shared link or a shared link\nto a parent folder."
        },
        "shared_link_permission_options": {
          "type": "array",
          "items": {
            "enum": [
              "can_preview",
              "can_download",
              "can_edit"
            ],
            "type": "string"
          },
          "example": [
            "can_preview"
          ],
          "nullable": true,
          "description": "A list of the types of roles that user can be invited at\nwhen sharing this file."
        }
      }
    }
  ],
  "title": "File (Full)",
  "description": "A full representation of a file, as can be returned from any\nfile API endpoints by default",
  "x-box-variant": "full",
  "x-box-resource-id": "file--full"
}
object File--Mini
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/File--Base"
    },
    {
      "properties": {
        "name": {
          "type": "string",
          "example": "Contract.pdf",
          "description": "The name of the file"
        },
        "sha1": {
          "type": "string",
          "format": "digest",
          "example": "85136C79CBF9FE36BB9D05D0639C70C265C18D37",
          "nullable": false,
          "description": "The SHA1 hash of the file. This can be used to compare the contents\nof a file on Box with a local file."
        },
        "sequence_id": {
          "allOf": [
            {
              "type": "string",
              "example": "3",
              "nullable": true,
              "description": "A numeric identifier that represents the most recent user event\nthat has been applied to this item.\n\nThis can be used in combination with the `GET /events`-endpoint\nto filter out user events that would have occurred before this\nidentifier was read.\n\nAn example would be where a Box Drive-like application\nwould fetch an item via the API, and then listen to incoming\nuser events for changes to the item. The application would\nignore any user events where the `sequence_id` in the event\nis smaller than or equal to the `sequence_id` in the originally\nfetched resource."
            },
            {
              "nullable": false
            }
          ]
        },
        "file_version": {
          "allOf": [
            {
              "$ref": "#/components/schemas/FileVersion--Mini"
            },
            {
              "description": "The information about the current version of the file."
            }
          ]
        }
      }
    }
  ],
  "title": "File (Mini)",
  "nullable": true,
  "description": "A mini representation of a file, used when\nnested under another resource.",
  "x-box-variant": "mini",
  "x-box-resource-id": "file--mini"
}
object FileConflict
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/File--Mini"
    },
    {
      "properties": {
        "sha1": {
          "type": "string",
          "example": "85136C79CBF9FE36BB9D05D0639C70C265C18D37",
          "description": "The SHA1 hash of the file."
        },
        "file_version": {
          "$ref": "#/components/schemas/FileVersion--Mini"
        }
      }
    }
  ],
  "title": "File (Conflict)",
  "x-box-tag": null,
  "description": "A representation of a file that is used to show",
  "x-box-sanitized": true,
  "x-box-resource-id": "file_conflict"
}
object FileOrFolderScope
{
  "type": "object",
  "title": "File or folder scope",
  "properties": {
    "scope": {
      "enum": [
        "annotation_edit",
        "annotation_view_all",
        "annotation_view_self",
        "base_explorer",
        "base_picker",
        "base_preview",
        "base_upload",
        "item_delete",
        "item_download",
        "item_preview",
        "item_rename",
        "item_share"
      ],
      "type": "string",
      "example": "item_download",
      "description": "The scopes for the resource access"
    },
    "object": {
      "allOf": [
        {
          "oneOf": [
            {
              "$ref": "#/components/schemas/Folder--Mini"
            },
            {
              "$ref": "#/components/schemas/File--Mini"
            }
          ]
        },
        {
          "description": "The file or folder resource"
        }
      ]
    }
  },
  "description": "A relation between a resource (file or folder) and the scopes for which the resource can be accessed"
}
object FileRequest
{
  "type": "object",
  "title": "File Request",
  "required": [
    "id",
    "type",
    "folder",
    "created_at",
    "updated_at"
  ],
  "x-box-tag": "file_requests",
  "properties": {
    "id": {
      "type": "string",
      "example": "42037322",
      "readOnly": true,
      "description": "The unique identifier for this file request."
    },
    "url": {
      "type": "string",
      "example": "/f/19e57f40ace247278a8e3d336678c64a",
      "readOnly": true,
      "description": "The generated URL for this file request. This URL can be shared\nwith users to let them upload files to the associated folder."
    },
    "etag": {
      "type": "string",
      "example": "1",
      "nullable": true,
      "description": "The HTTP `etag` of this file. This can be used in combination with\nthe `If-Match` header when updating a file request. By providing that\nheader, a change will only be performed on the  file request if the `etag`\non the file request still matches the `etag` provided in the `If-Match`\nheader."
    },
    "type": {
      "enum": [
        "file_request"
      ],
      "type": "string",
      "example": "file_request",
      "readOnly": true,
      "description": "`file_request`"
    },
    "title": {
      "type": "string",
      "example": "Please upload documents",
      "description": "The title of file request. This is shown\nin the Box UI to users uploading files.\n\nThis defaults to title of the file request that was\ncopied to create this file request."
    },
    "folder": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Folder--Mini"
        },
        {
          "description": "The folder that this file request is associated with.\n\nFiles submitted through the file request form will be\nuploaded to this folder."
        }
      ],
      "nullable": false
    },
    "status": {
      "enum": [
        "active",
        "inactive"
      ],
      "type": "string",
      "example": "active",
      "description": "The status of the file request. This defaults\nto `active`.\n\nWhen the status is set to `inactive`, the file request\nwill no longer accept new submissions, and any visitor\nto the file request URL will receive a `HTTP 404` status\ncode.\n\nThis defaults to status of file request that was\ncopied to create this file request."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2020-09-28T10:53:43-08:00",
      "nullable": false,
      "description": "The date and time when the file request was created."
    },
    "created_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who created this file request."
        }
      ]
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "example": "2020-09-28T10:53:43-08:00",
      "description": "The date after which a file request will no longer accept new\nsubmissions.\n\nAfter this date, the `status` will automatically be set to\n`inactive`."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "example": "2020-09-28T10:53:43-08:00",
      "nullable": false,
      "description": "The date and time when the file request was last updated."
    },
    "updated_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who last modified this file request."
        },
        {
          "nullable": false
        }
      ]
    },
    "description": {
      "type": "string",
      "example": "Following documents are requested for your process",
      "nullable": true,
      "description": "The optional description of this file request. This is\nshown in the Box UI to users uploading files.\n\nThis defaults to description of the file request that was\ncopied to create this file request."
    },
    "is_email_required": {
      "type": "boolean",
      "example": true,
      "description": "Whether a file request submitter is required to provide\ntheir email address.\n\nWhen this setting is set to true, the Box UI will show\nan email field on the file request form.\n\nThis defaults to setting of file request that was\ncopied to create this file request."
    },
    "is_description_required": {
      "type": "boolean",
      "example": true,
      "description": "Whether a file request submitter is required to provide\na description of the files they are submitting.\n\nWhen this setting is set to true, the Box UI will show\na description field on the file request form.\n\nThis defaults to setting of file request that was\ncopied to create this file request."
    }
  },
  "description": "A standard representation of a file request, as returned\nfrom any file request API endpoints by default.",
  "x-box-resource-id": "file_request"
}
object FileRequestCopyRequest
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/FileRequestUpdateRequest"
    },
    {
      "properties": {
        "folder": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "42037322",
              "description": "The ID of the folder to associate the new\nfile request to."
            },
            "type": {
              "enum": [
                "folder"
              ],
              "type": "string",
              "example": "folder",
              "description": "`folder`"
            }
          },
          "description": "The folder to associate the new file request to."
        }
      }
    }
  ],
  "title": "File Request (Copy)",
  "required": [
    "folder"
  ],
  "description": "The request body to copy a file request."
}
object FileRequestUpdateRequest
{
  "type": "object",
  "title": "File Request (Update)",
  "properties": {
    "title": {
      "type": "string",
      "example": "Please upload required documents",
      "description": "An optional new title for the file request. This can be\nused to change the title of the file request.\n\nThis will default to the value on the existing file request."
    },
    "status": {
      "enum": [
        "active",
        "inactive"
      ],
      "type": "string",
      "example": "active",
      "description": "An optional new status of the file request.\n\nWhen the status is set to `inactive`, the file request\nwill no longer accept new submissions, and any visitor\nto the file request URL will receive a `HTTP 404` status\ncode.\n\nThis will default to the value on the existing file request."
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "example": "2020-09-28T10:53:43-08:00",
      "description": "The date after which a file request will no longer accept new\nsubmissions.\n\nAfter this date, the `status` will automatically be set to\n`inactive`.\n\nThis will default to the value on the existing file request."
    },
    "description": {
      "type": "string",
      "example": "Please upload required documents",
      "description": "An optional new description for the file request. This can be\nused to change the description of the file request.\n\nThis will default to the value on the existing file request."
    },
    "is_email_required": {
      "type": "boolean",
      "example": true,
      "description": "Whether a file request submitter is required to provide\ntheir email address.\n\nWhen this setting is set to true, the Box UI will show\nan email field on the file request form.\n\nThis will default to the value on the existing file request."
    },
    "is_description_required": {
      "type": "boolean",
      "example": true,
      "description": "Whether a file request submitter is required to provide\na description of the files they are submitting.\n\nWhen this setting is set to true, the Box UI will show\na description field on the file request form.\n\nThis will default to the value on the existing file request."
    }
  },
  "description": "The request body to update a file request."
}
object FileVersion
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/FileVersion--Mini"
    },
    {
      "properties": {
        "name": {
          "type": "string",
          "example": "tigers.jpeg",
          "description": "The name of the file version"
        },
        "size": {
          "type": "integer",
          "format": "int64",
          "example": 629644,
          "description": "Size of the file version in bytes"
        },
        "purged_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": true,
          "description": "When the file version object will be permanently deleted."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When the file version object was created"
        },
        "trashed_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": true,
          "description": "When the file version object was trashed."
        },
        "trashed_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Mini"
            },
            {
              "description": "The user who trashed the file version"
            }
          ]
        },
        "modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When the file version object was last updated"
        },
        "modified_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Mini"
            },
            {
              "description": "The user who last updated the file version"
            }
          ]
        },
        "restored_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": true,
          "description": "When the file version was restored from the trash."
        },
        "restored_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Mini"
            },
            {
              "description": "The user who restored the file version from the trash."
            }
          ]
        },
        "uploader_display_name": {
          "allOf": [
            {
              "type": "string",
              "title": "Uploader display name",
              "example": "Ellis Wiggins",
              "nullable": false,
              "description": "The display name of the user that uploaded the file. In most cases this is the\nname of the user logged in at the time of the upload.\n\nIf the file was uploaded using a File Request form that requires the user to\nprovide an email address, this field is populated with that email address. If\nan email address was not required in the File Request form, this field is set\nto return a value of `File Request`.\n\nIn all other anonymous cases where no email was provided this field\nwill default to a value of `Someone`."
            }
          ]
        }
      }
    }
  ],
  "title": "File version",
  "description": "A standard representation of a file version",
  "x-box-variant": "standard",
  "x-box-resource-id": "file_version"
}
object FileVersion--Base
{
  "type": "object",
  "title": "File version (Base)",
  "required": [
    "id",
    "type"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "12345",
      "nullable": false,
      "description": "The unique identifier that represent a file version."
    },
    "type": {
      "enum": [
        "file_version"
      ],
      "type": "string",
      "example": "file_version",
      "nullable": false,
      "description": "`file_version`"
    }
  },
  "description": "The bare basic representation of a file version, the minimal\namount of fields returned when using the `fields` query\nparameter.",
  "x-box-variant": "base",
  "x-box-variants": [
    "base",
    "mini",
    "standard",
    "full"
  ],
  "x-box-sanitized": true,
  "x-box-resource-id": "file_version--base"
}
object FileVersion--Full
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/FileVersion"
    },
    {
      "properties": {
        "version_number": {
          "type": "string",
          "example": "1",
          "description": "The version number of this file version"
        }
      }
    }
  ],
  "title": "File version (Full)",
  "description": "A full representation of a file version, as can be returned from any\nfile version API endpoints by default",
  "x-box-variant": "full",
  "x-box-resource-id": "file_version--full"
}
object FileVersion--Mini
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/FileVersion--Base"
    },
    {
      "properties": {
        "sha1": {
          "type": "string",
          "example": "134b65991ed521fcfe4724b7d814ab8ded5185dc",
          "description": "The SHA1 hash of this version of the file."
        }
      }
    }
  ],
  "title": "File version (Mini)",
  "description": "A mini representation of a file version, used when\nnested within another resource.",
  "x-box-variant": "mini",
  "x-box-resource-id": "file_version--mini"
}
object FileVersionLegalHold
{
  "type": "object",
  "title": "File version legal hold",
  "x-box-tag": "file_version_legal_holds",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this file version legal hold"
    },
    "file": {
      "allOf": [
        {
          "$ref": "#/components/schemas/File--Mini"
        },
        {
          "description": "The file for the file version held.\nNote that there is no guarantee that the current\nversion of this file is held."
        }
      ]
    },
    "type": {
      "enum": [
        "file_version_legal_hold"
      ],
      "type": "string",
      "example": "file_version_legal_hold",
      "description": "`file_version_legal_hold`"
    },
    "deleted_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "Time that this File-Version-Legal-Hold was\ndeleted."
    },
    "file_version": {
      "allOf": [
        {
          "$ref": "#/components/schemas/FileVersion--Mini"
        },
        {
          "description": "The file version that is held"
        }
      ]
    },
    "legal_hold_policy_assignments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LegalHoldPolicyAssignment"
      },
      "description": "List of assignments contributing to this Hold."
    }
  },
  "description": "File-Version-Legal-Hold is an entity representing all\nholds on a File Version.",
  "x-box-resource-id": "file_version_legal_hold"
}
object FileVersionLegalHolds
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        },
        "prev_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVih",
          "nullable": true,
          "description": "The marker for the start of the previous page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/FileVersionLegalHold"
          },
          "description": "A list of file version legal holds"
        }
      }
    }
  ],
  "title": "File version legal holds",
  "x-box-tag": "file_version_legal_holds",
  "description": "A list of file version legal holds.",
  "x-box-resource-id": "file_version_legal_holds"
}
object FileVersionRetention
{
  "type": "object",
  "title": "File version retention",
  "x-box-tag": "file_version_retentions",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this file version retention."
    },
    "file": {
      "allOf": [
        {
          "$ref": "#/components/schemas/File--Mini"
        },
        {
          "description": "The file this file version retention was applied to"
        }
      ]
    },
    "type": {
      "enum": [
        "file_version_retention"
      ],
      "type": "string",
      "example": "file_version_retention",
      "description": "`file_version_retention`"
    },
    "applied_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "When this file version retention object was\ncreated"
    },
    "file_version": {
      "allOf": [
        {
          "$ref": "#/components/schemas/FileVersion--Mini"
        },
        {
          "description": "The file version this file version retention was\napplied to"
        }
      ]
    },
    "disposition_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "When the retention expires on this file\nversion retention"
    },
    "winning_retention_policy": {
      "allOf": [
        {
          "$ref": "#/components/schemas/RetentionPolicy--Mini"
        },
        {
          "description": "The winning retention policy applied to this file\nversion retention. A file version can have multiple\nretention policies applied."
        }
      ]
    }
  },
  "description": "A retention policy blocks permanent deletion of content\nfor a specified amount of time. Admins can apply policies to\nspecified folders, or an entire enterprise. A file version retention\nis a  record for a retained file version. To use this feature,\nyou must  have the manage retention policies scope enabled for your\nAPI key via  your application management console. For more information\nabout retention policies, please visit our help documentation",
  "x-box-resource-id": "file_version_retention"
}
object FileVersionRetentions
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        },
        "prev_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVih",
          "nullable": true,
          "description": "The marker for the start of the previous page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/FileVersionRetention"
          },
          "description": "A list of file version retentions"
        }
      }
    }
  ],
  "title": "File version retentions",
  "x-box-tag": "file_version_retentions",
  "description": "A list of file version retentions.",
  "x-box-resource-id": "file_version_retentions"
}
object FileVersions
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "order": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "by": {
                "type": "string",
                "example": "type",
                "description": "The field to order by"
              },
              "direction": {
                "enum": [
                  "ASC",
                  "DESC"
                ],
                "type": "string",
                "example": "ASC",
                "description": "The direction to order by, either ascending or descending"
              }
            },
            "description": "The order in which a pagination is ordered"
          },
          "description": "The order by which items are returned.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        },
        "offset": {
          "type": "integer",
          "format": "int64",
          "example": 2000,
          "description": "The 0-based offset of the first entry in this set. This will be the same\nas the `offset` query parameter.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        },
        "total_count": {
          "type": "integer",
          "format": "int64",
          "example": 5000,
          "description": "One greater than the offset of the last entry in the entire collection.\nThe total number of entries in the collection may be less than\n`total_count`.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        }
      },
      "description": "The part of an API response that describes pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/FileVersion--Full"
          },
          "description": "A list of file versions"
        }
      }
    }
  ],
  "title": "File versions",
  "x-box-tag": "file_versions",
  "description": "A list of file versions",
  "x-box-resource-id": "file_versions"
}
object FileVersionsPromoteFileVersionRequest
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The file version ID"
    },
    "type": {
      "enum": [
        "file_version"
      ],
      "type": "string",
      "example": "file_version",
      "description": "The type to promote"
    }
  },
  "description": "The file version to promote"
}
object FileVersionsRestoreVersionRequest
{
  "type": "object",
  "properties": {
    "trashed_at": {
      "type": "string",
      "example": "null",
      "description": "Set this to `null` to clear\nthe date and restore the file."
    }
  },
  "description": "The file version to be\nrestored"
}
object Files
{
  "type": "object",
  "title": "Files",
  "x-box-tag": "files",
  "properties": {
    "entries": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/File--Full"
      },
      "description": "A list of files"
    },
    "total_count": {
      "type": "integer",
      "format": "int64",
      "example": 1,
      "description": "The number of files."
    }
  },
  "description": "A list of files",
  "x-box-resource-id": "files"
}
object FilesCreateCopyRequest
{
  "type": "object",
  "nullable": false,
  "required": [
    "parent"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "FileCopy.txt",
      "maxLength": 255,
      "description": "An optional new name for the copied file.\n\nThere are some restrictions to the file name. Names containing\nnon-printable ASCII characters, forward and backward slashes\n(`/`, `\\`), and protected names like `.` and `..` are\nautomatically sanitized by removing the non-allowed\ncharacters."
    },
    "parent": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "0",
          "description": "The ID of folder to copy the file to."
        }
      },
      "description": "The destination folder to copy the file to."
    },
    "version": {
      "type": "string",
      "example": "0",
      "description": "An optional ID of the specific file version to copy."
    }
  }
}
string FilesGetThumbnail200Response
{
  "type": "string",
  "format": "binary",
  "description": "The thumbnail"
}
string FilesGetThumbnailResponse
{
  "type": "string",
  "format": "binary",
  "description": "The thumbnail"
}
object FilesPreflightCheckBeforeUploadRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "File.mp4",
      "description": "The name for the file"
    },
    "size": {
      "type": "integer",
      "format": "int32",
      "example": 1024,
      "description": "The size of the file in bytes"
    },
    "parent": {
      "allOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "example": "123",
              "description": "The ID of parent item"
            }
          },
          "description": "The parent for this item"
        },
        {
          "description": "The parent folder to upload the file to"
        }
      ]
    }
  }
}
object FilesUnderRetention
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        },
        "prev_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVih",
          "nullable": true,
          "description": "The marker for the start of the previous page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/File--Mini"
          },
          "description": "A list of files"
        }
      }
    }
  ],
  "title": "Files under retention",
  "x-box-tag": "retention_policy_assignments",
  "description": "A list of files under retention.",
  "x-box-resource-id": "files_under_retention"
}
object FilesUpdateFileRequest
{
  "type": "object",
  "properties": {
    "lock": {
      "type": "object",
      "required": [
        "type"
      ],
      "properties": {
        "access": {
          "enum": [
            "lock"
          ],
          "type": "string",
          "example": "lock",
          "description": "The type of this object."
        },
        "expires_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "Defines the time at which the lock expires."
        },
        "is_download_prevented": {
          "type": "boolean",
          "example": true,
          "description": "Defines if the file can be downloaded while it is locked."
        }
      },
      "description": "Defines a lock on an item. This prevents the item from being\nmoved, renamed, or otherwise changed by anyone other than the user\nwho created the lock.\n\nSet this to `null` to remove the lock."
    },
    "name": {
      "type": "string",
      "example": "NewFile.txt",
      "description": "An optional different name for the file. This can be used to\nrename the file."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "approved"
      ],
      "maxItems": 100,
      "minItems": 1,
      "description": "The tags for this item. These tags are shown in\nthe Box web app and mobile apps next to an item.\n\nTo add or remove a tag, retrieve the item's current tags,\nmodify them, and then update this field.\n\nThere is a limit of 100 tags per item, and 10,000\nunique tags per enterprise."
    },
    "parent": {
      "allOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "example": "123",
              "description": "The ID of parent item"
            }
          },
          "description": "The parent for this item"
        },
        {
          "description": "An optional new parent folder for the file. This can be used\nto move the file to a new folder."
        }
      ]
    },
    "collections": {
      "type": "array",
      "items": {
        "type": "object",
        "title": "Reference",
        "properties": {
          "id": {
            "type": "string",
            "example": "11446498",
            "description": "The unique identifier for this object"
          },
          "type": {
            "type": "string",
            "example": "file",
            "description": "The type for this object"
          }
        },
        "description": "The bare basic reference for an object"
      },
      "description": "An array of collections to make this file\na member of. Currently\nwe only support the `favorites` collection.\n\nTo get the ID for a collection, use the\n[List all collections][1] endpoint.\n\nPassing an empty array `[]` or `null` will remove\nthe file from all collections.\n\n[1]: e://get-collections"
    },
    "description": {
      "type": "string",
      "example": "The latest reports. Automatically updated",
      "maxLength": 256,
      "description": "The description for a file. This can be seen in the right-hand sidebar panel\nwhen viewing a file in the Box web app. Additionally, this index is used in\nthe search index of the file, allowing users to find the file by the content\nin the description."
    },
    "permissions": {
      "type": "object",
      "properties": {
        "can_download": {
          "enum": [
            "open",
            "company"
          ],
          "type": "string",
          "example": "open",
          "description": "Defines who is allowed to download this file. The possible\nvalues are either `open` for everyone or `company` for\nthe other members of the user's enterprise.\n\nThis setting overrides the download permissions that are\nnormally part of the `role` of a collaboration. When set to\n`company`, this essentially removes the download option for\nexternal users with `viewer` or `editor` a roles."
        }
      },
      "description": "Defines who can download a file."
    },
    "shared_link": {
      "allOf": [
        {
          "type": "object",
          "properties": {
            "access": {
              "enum": [
                "open",
                "company",
                "collaborators"
              ],
              "type": "string",
              "example": "open",
              "description": "The level of access for the shared link. This can be\nrestricted to anyone with the link (`open`), only people\nwithin the company (`company`) and only those who\nhave been invited to the folder (`collaborators`).\n\nIf not set, this field defaults to the access level specified\nby the enterprise admin. To create a shared link with this\ndefault setting pass the `shared_link` object with\nno `access` field, for example `{ \"shared_link\": {} }`.\n\nThe `company` access level is only available to paid\naccounts."
            },
            "password": {
              "type": "string",
              "example": "do-n8t-use-this-Password",
              "description": "The password required to access the shared link. Set the\npassword to `null` to remove it.\nPasswords must now be at least eight characters\nlong and include a number, upper case letter, or\na non-numeric or non-alphabetic character.\nA password can only be set when `access` is set to `open`."
            },
            "permissions": {
              "type": "object",
              "properties": {
                "can_download": {
                  "type": "boolean",
                  "example": true,
                  "description": "If the shared link allows for downloading of files.\nThis can only be set when `access` is set to\n`open` or `company`."
                }
              }
            },
            "unshared_at": {
              "type": "string",
              "format": "date-time",
              "example": "2012-12-12T10:53:43-08:00",
              "description": "The timestamp at which this shared link will\nexpire. This field can only be set by\nusers with paid accounts."
            },
            "vanity_name": {
              "type": "string",
              "example": "my-shared-link",
              "description": "Defines a custom vanity name to use in the shared link URL,\nfor example `https://app.box.com/v/my-shared-link`.\n\nCustom URLs should not be used when sharing sensitive content\nas vanity URLs are a lot easier to guess than regular shared links."
            }
          },
          "description": "Defines a shared link for an item. Set this to `null` to remove\nthe shared link."
        },
        {
          "description": "Defines a shared link for a file. Set this to `null` to remove\nthe shared link."
        }
      ]
    },
    "disposition_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "The retention expiration timestamp for the given file. This\ndate cannot be shortened once set on a file."
    }
  }
}
object Folder
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Folder--Mini"
    },
    {
      "properties": {
        "size": {
          "type": "integer",
          "format": "int64",
          "example": 629644,
          "nullable": false,
          "description": "The folder size in bytes.\n\nBe careful parsing this integer as its\nvalue can get very large."
        },
        "parent": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Folder--Mini"
            },
            {
              "description": "The optional folder that this folder is located within.\n\nThis value may be `null` for some folders such as the\nroot folder or the trash folder."
            }
          ],
          "nullable": true
        },
        "owned_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Mini"
            },
            {
              "description": "The user who owns this folder."
            },
            {
              "nullable": false
            }
          ]
        },
        "purged_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": true,
          "description": "The time at which this folder is expected to be purged\nfrom the trash."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": true,
          "description": "The date and time when the folder was created. This value may\nbe `null` for some folders such as the root folder or the trash\nfolder."
        },
        "created_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Mini"
            },
            {
              "description": "The user who created this folder"
            },
            {
              "nullable": false
            }
          ]
        },
        "trashed_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": true,
          "description": "The time at which this folder was put in the trash."
        },
        "description": {
          "allOf": [
            {
              "type": "string",
              "example": "Legal contracts for the new ACME deal",
              "nullable": false,
              "maxLength": 256,
              "description": "The optional description of this folder"
            },
            {
              "nullable": false
            }
          ]
        },
        "item_status": {
          "enum": [
            "active",
            "trashed",
            "deleted"
          ],
          "type": "string",
          "example": "active",
          "nullable": false,
          "description": "Defines if this item has been deleted or not.\n\n* `active` when the item has is not in the trash\n* `trashed` when the item has been moved to the trash but not deleted\n* `deleted` when the item has been permanently deleted."
        },
        "modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": true,
          "description": "The date and time when the folder was last updated. This value may\nbe `null` for some folders such as the root folder or the trash\nfolder."
        },
        "modified_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Mini"
            },
            {
              "description": "The user who last modified this folder."
            },
            {
              "nullable": false
            }
          ]
        },
        "shared_link": {
          "allOf": [
            {
              "type": "object",
              "title": "Shared link",
              "required": [
                "url",
                "accessed",
                "effective_access",
                "effective_permission",
                "is_password_enabled",
                "download_count",
                "preview_count"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "format": "url",
                  "example": "https://www.box.com/s/vspke7y05sb214wjokpk",
                  "nullable": false,
                  "description": "The URL that can be used to access the item on Box.\n\nThis URL will display the item in Box's preview UI where the file\ncan be downloaded if allowed.\n\nThis URL will continue to work even when a custom `vanity_url`\nhas been set for this shared link."
                },
                "access": {
                  "enum": [
                    "open",
                    "company",
                    "collaborators"
                  ],
                  "type": "string",
                  "example": "open",
                  "nullable": false,
                  "description": "The access level for this shared link.\n\n* `open` - provides access to this item to anyone with this link\n* `company` - only provides access to this item to people the same company\n* `collaborators` - only provides access to this item to people who are\n   collaborators on this item\n\nIf this field is omitted when creating the shared link, the access level\nwill be set to the default access level specified by the enterprise admin."
                },
                "vanity_url": {
                  "type": "string",
                  "format": "url",
                  "example": "https://acme.app.box.com/v/my_url/",
                  "nullable": true,
                  "description": "The \"Custom URL\" that can also be used to preview the item on Box.  Custom\nURLs can only be created or modified in the Box Web application."
                },
                "permissions": {
                  "type": "object",
                  "required": [
                    "can_download",
                    "can_preview",
                    "can_edit"
                  ],
                  "properties": {
                    "can_edit": {
                      "type": "boolean",
                      "example": false,
                      "nullable": false,
                      "description": "Defines if the shared link allows for the item to be edited.\n\nThis value can only be `true` if `can_download` is also `true` and if\nthe item has a type of `file`."
                    },
                    "can_preview": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Defines if the shared link allows for the item to be previewed.\n\nThis value is always `true`. For shared links on folders this also\napplies to any items in the folder."
                    },
                    "can_download": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Defines if the shared link allows for the item to be downloaded. For\nshared links on folders, this also applies to any items in the folder.\n\nThis value can be set to `true` when the effective access level is\nset to `open` or `company`, not `collaborators`."
                    }
                  },
                  "description": "Defines if this link allows a user to preview, edit, and download an item.\nThese permissions refer to the shared link only and\ndo not supersede permissions applied to the item itself."
                },
                "unshared_at": {
                  "type": "string",
                  "format": "date-time",
                  "example": "2018-04-13T13:53:23-07:00",
                  "nullable": true,
                  "description": "The date and time when this link will be unshared. This field can only be\nset by users with paid accounts."
                },
                "vanity_name": {
                  "type": "string",
                  "example": "my_url",
                  "nullable": true,
                  "description": "The custom name of a shared link, as used in the `vanity_url` field."
                },
                "download_url": {
                  "type": "string",
                  "format": "url",
                  "example": "https://www.box.com/shared/static/rh935iit6ewrmw0unyul.jpeg",
                  "nullable": true,
                  "description": "A URL that can be used to download the file. This URL can be used in\na browser to download the file. This URL includes the file\nextension so that the file will be saved with the right file type.\n\nThis property will be `null` for folders.",
                  "x-box-premium-feature": true
                },
                "preview_count": {
                  "type": "integer",
                  "example": 3,
                  "nullable": false,
                  "description": "The number of times this item has been previewed."
                },
                "download_count": {
                  "type": "integer",
                  "example": 3,
                  "nullable": false,
                  "description": "The number of times this item has been downloaded."
                },
                "effective_access": {
                  "enum": [
                    "open",
                    "company",
                    "collaborators"
                  ],
                  "type": "string",
                  "example": "company",
                  "nullable": false,
                  "description": "The effective access level for the shared link. This can be a more\nrestrictive access level than the value in the `access` field when the\nenterprise settings restrict the allowed access levels."
                },
                "is_password_enabled": {
                  "type": "boolean",
                  "example": true,
                  "nullable": false,
                  "description": "Defines if the shared link requires a password to access the item."
                },
                "effective_permission": {
                  "enum": [
                    "can_edit",
                    "can_download",
                    "can_preview",
                    "no_access"
                  ],
                  "type": "string",
                  "example": "can_download",
                  "nullable": false,
                  "description": "The effective permissions for this shared link.\nThese result in the more restrictive combination of\nthe share link permissions and the item permissions set\nby the administrator, the owner, and any ancestor item\nsuch as a folder."
                }
              },
              "description": "Shared links provide direct, read-only access to files or folder on Box.\n\nShared links with open access level allow anyone with the URL\nto access the item, while shared links with company or collaborators access\nlevels can only be accessed by appropriately authenticated Box users."
            },
            {
              "description": "The shared link for this folder. This will be\n`null` if no shared link has been created for this\nfolder."
            }
          ],
          "nullable": true
        },
        "item_collection": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Items"
            },
            {
              "description": "A page of the items that are in the folder.\n\nThis field can only be requested when querying a folder's\ninformation, not when querying a folder's items."
            },
            {
              "nullable": false
            }
          ]
        },
        "path_collection": {
          "allOf": [
            {
              "type": "object",
              "title": "Path collection",
              "required": [
                "total_count",
                "entries"
              ],
              "properties": {
                "entries": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Folder--Mini"
                  },
                  "nullable": false,
                  "description": "The parent folders for this item"
                },
                "total_count": {
                  "type": "integer",
                  "format": "int64",
                  "example": 1,
                  "nullable": false,
                  "description": "The number of folders in this list."
                }
              },
              "description": "A list of parent folders for an item."
            },
            {
              "description": "The tree of folders that this folder is contained in,\nstarting at the root."
            },
            {
              "nullable": false
            }
          ]
        },
        "content_created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": true,
          "description": "The date and time at which this folder was originally\ncreated."
        },
        "content_modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": true,
          "description": "The date and time at which this folder was last updated."
        },
        "folder_upload_email": {
          "type": "object",
          "nullable": true,
          "properties": {
            "email": {
              "type": "string",
              "format": "email",
              "example": "upload.Contracts.asd7asd@u.box.com",
              "nullable": false,
              "description": "The optional upload email address for this folder."
            },
            "access": {
              "enum": [
                "open",
                "collaborators"
              ],
              "type": "string",
              "example": "open",
              "nullable": false,
              "description": "When this parameter has been set, users can email files\nto the email address that has been automatically\ncreated for this folder.\n\nTo create an email address, set this property either when\ncreating or updating the folder.\n\nWhen set to `collaborators`, only emails from registered email\naddresses for collaborators will be accepted. This includes\nany email aliases a user might have registered.\n\nWhen set to `open` it will accept emails from any email\naddress."
            }
          }
        }
      }
    }
  ],
  "title": "Folder",
  "description": "A standard representation of a folder, as returned from any\nfolder API endpoints by default",
  "x-box-variant": "standard",
  "x-box-resource-id": "folder"
}
object Folder--Base
{
  "type": "object",
  "title": "Folder (Base)",
  "required": [
    "id",
    "type"
  ],
  "x-box-tag": "folders",
  "properties": {
    "id": {
      "type": "string",
      "example": "12345",
      "nullable": false,
      "description": "The unique identifier that represent a folder.\n\nThe ID for any folder can be determined\nby visiting a folder in the web application\nand copying the ID from the URL. For example,\nfor the URL `https://*.app.box.com/folders/123`\nthe `folder_id` is `123`."
    },
    "etag": {
      "type": "string",
      "example": "1",
      "nullable": true,
      "description": "The HTTP `etag` of this folder. This can be used within some API\nendpoints in the `If-Match` and `If-None-Match` headers to only\nperform changes on the folder if (no) changes have happened."
    },
    "type": {
      "enum": [
        "folder"
      ],
      "type": "string",
      "example": "folder",
      "nullable": false,
      "description": "`folder`"
    }
  },
  "description": "The bare basic representation of a folder, the minimal\namount of fields returned when using the `fields` query\nparameter.",
  "x-box-variant": "base",
  "x-box-variants": [
    "base",
    "mini",
    "standard",
    "full"
  ],
  "x-box-sanitized": true,
  "x-box-resource-id": "folder--base"
}
object Folder--Full
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Folder"
    },
    {
      "properties": {
        "tags": {
          "allOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "approved"
              ],
              "maxItems": 100,
              "minItems": 1,
              "description": "The tags for this item. These tags are shown in\nthe Box web app and mobile apps next to an item.\n\nTo add or remove a tag, retrieve the item's current tags,\nmodify them, and then update this field.\n\nThere is a limit of 100 tags per item, and 10,000\nunique tags per enterprise."
            },
            {
              "nullable": false
            }
          ]
        },
        "metadata": {
          "allOf": [
            {
              "type": "object",
              "title": "Item metadata instances",
              "example": {
                "enterprise_27335": {
                  "marketingCollateral": {
                    "$id": "01234500-12f1-1234-aa12-b1d234cb567e",
                    "$type": "properties-6bcba49f-ca6d-4d2a-a758-57fe6edf44d0",
                    "$scope": "enterprise_27335",
                    "$parent": "folder_59449484661",
                    "$canEdit": true,
                    "$version": 1,
                    "$template": "marketingCollateral",
                    "$typeVersion": 2
                  }
                }
              },
              "description": "A list of metadata instances, nested within key-value pairs of their `scope`\nand `templateKey`.\n\nTo access the metadata for a file or folder, first use the\nmetadata endpoints to determine the metadata templates available to your\nenterprise.\n\nThen use the `GET /files/:id` or `GET /folder/:id`\nendpoint with the `fields` query parameter to get\nthe metadata by ID.\n\nTo request a metadata instance for a particular `scope` and `templateKey`\nuse the following format for the `fields` parameter:\n`metadata.<scope>.<templateKey>`\n\nFor example, `?fields=metadata.enterprise_27335.marketingCollateral`.",
              "additionalProperties": {
                "type": "object",
                "example": {
                  "marketingCollateral": {
                    "$id": "01234500-12f1-1234-aa12-b1d234cb567e",
                    "$type": "properties-6bcba49f-ca6d-4d2a-a758-57fe6edf44d0",
                    "$scope": "enterprise_27335",
                    "$parent": "folder_59449484661",
                    "$canEdit": true,
                    "$version": 1,
                    "$template": "marketingCollateral",
                    "$typeVersion": 2
                  }
                },
                "description": "A list of metadata instances, nested within key-value pairs of their `scope`\nand `templateKey`.",
                "additionalProperties": {
                  "$ref": "#/components/schemas/Metadata--Base"
                }
              }
            },
            {
              "description": "An object containing the metadata instances that have been\nattached to this folder.\n\nEach metadata instance is uniquely identified by its `scope` and\n`templateKey`. There can only be one instance of any metadata\ntemplate attached to each folder. Each metadata instance is nested\nwithin an object with the `templateKey` as the key, which again\nitself is nested in an object with the `scope` as the key."
            }
          ]
        },
        "sync_state": {
          "allOf": [
            {
              "enum": [
                "synced",
                "not_synced",
                "partially_synced"
              ],
              "type": "string",
              "example": "synced",
              "nullable": false,
              "description": "Specifies whether a folder should be synced to a\nuser's device or not. This is used by Box Sync\n(discontinued) and is not used by Box Drive."
            }
          ]
        },
        "permissions": {
          "allOf": [
            {
              "type": "object",
              "allOf": [
                {
                  "type": "object",
                  "required": [
                    "can_delete",
                    "can_download",
                    "can_invite_collaborator",
                    "can_rename",
                    "can_set_share_access",
                    "can_share"
                  ],
                  "properties": {
                    "can_share": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the user can create a shared link for this item."
                    },
                    "can_delete": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the current user can delete this item."
                    },
                    "can_rename": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the user can rename this item."
                    },
                    "can_download": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the current user can download this item."
                    },
                    "can_set_share_access": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the user can change the access level of an\nexisting shared link on this item."
                    },
                    "can_invite_collaborator": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the current user can invite new\nusers to collaborate on this item, and if the user can\nupdate the role of a user already collaborated on this\nitem."
                    }
                  },
                  "description": "The permissions that the authenticated user has for an item."
                },
                {
                  "properties": {
                    "can_upload": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Specifies if the user can upload into this folder."
                    }
                  }
                }
              ],
              "required": [
                "can_upload"
              ],
              "description": "The permissions that the authenticated user has for a folder."
            },
            {
              "description": "Describes the permissions that the current user has\nfor this folder"
            },
            {
              "nullable": false
            }
          ]
        },
        "classification": {
          "allOf": [
            {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "example": "Top Secret",
                  "description": "The name of the classification"
                },
                "color": {
                  "type": "string",
                  "example": "#FF0000",
                  "description": "The color that is used to display the\nclassification label in a user-interface. Colors are defined by the admin\nor co-admin who created the classification in the Box web app."
                },
                "definition": {
                  "type": "string",
                  "example": "Content that should not be shared outside the company.",
                  "description": "An explanation of the meaning of this classification."
                }
              },
              "description": "The classification applied to an item"
            },
            {
              "description": "Details about the classification applied to this folder."
            },
            {
              "nullable": true
            }
          ]
        },
        "watermark_info": {
          "allOf": [
            {
              "type": "object",
              "properties": {
                "is_watermarked": {
                  "type": "boolean",
                  "example": true,
                  "nullable": false,
                  "description": "Specifies if this item has a watermark applied."
                }
              },
              "description": "Details about the watermark applied to this item"
            },
            {
              "description": "Details about the watermark applied to this folder"
            },
            {
              "nullable": false
            }
          ]
        },
        "has_collaborations": {
          "type": "boolean",
          "example": true,
          "nullable": false,
          "description": "Specifies if this folder has any other collaborators."
        },
        "is_externally_owned": {
          "type": "boolean",
          "example": true,
          "nullable": false,
          "description": "Specifies if this folder is owned by a user outside of the\nauthenticated enterprise."
        },
        "allowed_invitee_roles": {
          "type": "array",
          "items": {
            "enum": [
              "editor",
              "viewer",
              "previewer",
              "uploader",
              "previewer uploader",
              "viewer uploader",
              "co-owner"
            ],
            "type": "string"
          },
          "example": [
            "editor"
          ],
          "nullable": false,
          "description": "A list of the types of roles that user can be invited at\nwhen sharing this folder."
        },
        "can_non_owners_invite": {
          "allOf": [
            {
              "type": "boolean",
              "example": true,
              "description": "Specifies if users who are not the owner\nof the folder can invite new collaborators to the folder."
            },
            {
              "nullable": false
            }
          ]
        },
        "is_accessible_via_shared_link": {
          "enum": [
            true,
            false
          ],
          "type": "boolean",
          "example": true,
          "description": "Specifies if the folder can be accessed\nwith the direct shared link or a shared link\nto a parent folder."
        },
        "allowed_shared_link_access_levels": {
          "type": "array",
          "items": {
            "enum": [
              "open",
              "company",
              "collaborators"
            ],
            "type": "string"
          },
          "example": [
            "open"
          ],
          "nullable": false,
          "description": "A list of access levels that are available\nfor this folder.\n\nFor some folders, like the root folder, this will always\nbe an empty list as sharing is not allowed at that level."
        },
        "can_non_owners_view_collaborators": {
          "type": "boolean",
          "example": true,
          "description": "Specifies if collaborators who are not owners\nof this folder are restricted from viewing other\ncollaborations on this folder.\n\nIt also restricts non-owners from inviting new\ncollaborators."
        },
        "is_collaboration_restricted_to_enterprise": {
          "allOf": [
            {
              "type": "boolean",
              "example": true,
              "description": "Specifies if new invites to this folder are restricted to users\nwithin the enterprise. This does not affect existing\ncollaborations."
            },
            {
              "nullable": false
            }
          ]
        }
      }
    }
  ],
  "title": "Folder (Full)",
  "description": "A full representation of a folder, as can be returned from any\nfolder API endpoints by default",
  "x-box-variant": "full",
  "x-box-resource-id": "folder--full"
}
object Folder--Mini
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Folder--Base"
    },
    {
      "properties": {
        "name": {
          "type": "string",
          "example": "Contracts",
          "nullable": false,
          "description": "The name of the folder."
        },
        "sequence_id": {
          "allOf": [
            {
              "type": "string",
              "example": "3",
              "nullable": true,
              "description": "A numeric identifier that represents the most recent user event\nthat has been applied to this item.\n\nThis can be used in combination with the `GET /events`-endpoint\nto filter out user events that would have occurred before this\nidentifier was read.\n\nAn example would be where a Box Drive-like application\nwould fetch an item via the API, and then listen to incoming\nuser events for changes to the item. The application would\nignore any user events where the `sequence_id` in the event\nis smaller than or equal to the `sequence_id` in the originally\nfetched resource."
            },
            {
              "nullable": false
            }
          ]
        }
      }
    }
  ],
  "title": "Folder (Mini)",
  "description": "A mini representation of a file version, used when\nnested under another resource.",
  "x-box-variant": "mini",
  "x-box-resource-id": "folder--mini"
}
object FolderLock
{
  "type": "object",
  "title": "Folder Lock",
  "x-box-tag": "folder_locks",
  "properties": {
    "id": {
      "type": "string",
      "example": "12345678",
      "description": "The unique identifier for this folder lock."
    },
    "type": {
      "type": "string",
      "example": "folder_lock",
      "description": "The object type, always `folder_lock`."
    },
    "folder": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Folder--Mini"
        },
        {
          "description": "The folder that the lock applies to."
        }
      ]
    },
    "lock_type": {
      "type": "string",
      "example": "freeze",
      "description": "The lock type, always `freeze`."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2020-09-14T23:12:53Z",
      "description": "When the folder lock object was created."
    },
    "created_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Base"
        },
        {
          "description": "The user or group that created the lock."
        }
      ]
    },
    "locked_operations": {
      "type": "object",
      "required": [
        "move",
        "delete"
      ],
      "properties": {
        "move": {
          "type": "boolean",
          "example": true,
          "nullable": false,
          "description": "Whether moving the folder is restricted."
        },
        "delete": {
          "type": "boolean",
          "example": true,
          "nullable": false,
          "description": "Whether deleting the folder is restricted."
        }
      },
      "description": "The operations that have been locked. Currently the `move`\nand `delete` operations cannot be locked separately, and both need to be\nset to `true`.\n"
    }
  },
  "description": "Folder locks define access restrictions placed by folder owners\nto prevent specific folders from being moved or deleted.",
  "x-box-resource-id": "folder_lock"
}
object FolderLocks
{
  "type": "object",
  "title": "Folder Locks",
  "x-box-tag": "folder_locks",
  "properties": {
    "limit": {
      "type": "string",
      "example": "1000",
      "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
    },
    "entries": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/FolderLock"
      },
      "description": "A list of folder locks"
    },
    "next_marker": {
      "type": "string",
      "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
      "nullable": true,
      "description": "The marker for the start of the next page of results."
    }
  },
  "description": "A list of folder locks",
  "x-box-resource-id": "folder_locks"
}
object FolderLocksCreateRequest
{
  "type": "object",
  "required": [
    "folder"
  ],
  "properties": {
    "folder": {
      "type": "object",
      "required": [
        "type",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "1234567890",
          "description": "The ID of the folder."
        },
        "type": {
          "type": "string",
          "example": "folder",
          "description": "The content type the lock is being applied to. Only `folder`\nis supported."
        }
      },
      "description": "The folder to apply the lock to."
    },
    "locked_operations": {
      "type": "object",
      "required": [
        "move",
        "delete"
      ],
      "properties": {
        "move": {
          "type": "boolean",
          "example": true,
          "description": "Whether moving the folder should be locked."
        },
        "delete": {
          "type": "boolean",
          "example": true,
          "description": "Whether deleting the folder should be locked."
        }
      },
      "description": "The operations to lock for the folder. If `locked_operations` is\nincluded in the request, both `move` and `delete` must also be\nincluded and both set to `true`."
    }
  }
}
object FoldersCreateCopyRequest
{
  "type": "object",
  "nullable": false,
  "required": [
    "parent"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "New Folder",
      "maxLength": 255,
      "minLength": 1,
      "description": "An optional new name for the copied folder.\n\nThere are some restrictions to the file name. Names containing\nnon-printable ASCII characters, forward and backward slashes\n(`/`, `\\`), as well as names with trailing spaces are\nprohibited.\n\nAdditionally, the names `.` and `..` are\nnot allowed either."
    },
    "parent": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "0",
          "description": "The ID of parent folder"
        }
      },
      "description": "The destination folder to copy the folder to."
    }
  }
}
object FoldersUpdateFolderRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "New Folder",
      "description": "The optional new name for this folder."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "approved"
      ],
      "maxItems": 100,
      "minItems": 1,
      "description": "The tags for this item. These tags are shown in\nthe Box web app and mobile apps next to an item.\n\nTo add or remove a tag, retrieve the item's current tags,\nmodify them, and then update this field.\n\nThere is a limit of 100 tags per item, and 10,000\nunique tags per enterprise."
    },
    "parent": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "0",
          "description": "The ID of the new parent folder"
        }
      },
      "description": "The parent folder for this folder. Use this to move\nthe folder or to restore it out of the trash."
    },
    "sync_state": {
      "enum": [
        "synced",
        "not_synced",
        "partially_synced"
      ],
      "type": "string",
      "example": "synced",
      "nullable": false,
      "description": "Specifies whether a folder should be synced to a\nuser's device or not. This is used by Box Sync\n(discontinued) and is not used by Box Drive."
    },
    "collections": {
      "type": "array",
      "items": {
        "type": "object",
        "title": "Reference",
        "properties": {
          "id": {
            "type": "string",
            "example": "11446498",
            "description": "The unique identifier for this object"
          },
          "type": {
            "type": "string",
            "example": "file",
            "description": "The type for this object"
          }
        },
        "description": "The bare basic reference for an object"
      },
      "description": "An array of collections to make this folder\na member of. Currently\nwe only support the `favorites` collection.\n\nTo get the ID for a collection, use the\n[List all collections][1] endpoint.\n\nPassing an empty array `[]` or `null` will remove\nthe folder from all collections.\n\n[1]: e://get-collections"
    },
    "description": {
      "type": "string",
      "example": "Legal contracts for the new ACME deal",
      "nullable": false,
      "maxLength": 256,
      "description": "The optional description of this folder"
    },
    "shared_link": {
      "allOf": [
        {
          "type": "object",
          "properties": {
            "access": {
              "enum": [
                "open",
                "company",
                "collaborators"
              ],
              "type": "string",
              "example": "open",
              "description": "The level of access for the shared link. This can be\nrestricted to anyone with the link (`open`), only people\nwithin the company (`company`) and only those who\nhave been invited to the folder (`collaborators`).\n\nIf not set, this field defaults to the access level specified\nby the enterprise admin. To create a shared link with this\ndefault setting pass the `shared_link` object with\nno `access` field, for example `{ \"shared_link\": {} }`.\n\nThe `company` access level is only available to paid\naccounts."
            },
            "password": {
              "type": "string",
              "example": "do-n8t-use-this-Password",
              "description": "The password required to access the shared link. Set the\npassword to `null` to remove it.\nPasswords must now be at least eight characters\nlong and include a number, upper case letter, or\na non-numeric or non-alphabetic character.\nA password can only be set when `access` is set to `open`."
            },
            "permissions": {
              "type": "object",
              "properties": {
                "can_download": {
                  "type": "boolean",
                  "example": true,
                  "description": "If the shared link allows for downloading of files.\nThis can only be set when `access` is set to\n`open` or `company`."
                }
              }
            },
            "unshared_at": {
              "type": "string",
              "format": "date-time",
              "example": "2012-12-12T10:53:43-08:00",
              "description": "The timestamp at which this shared link will\nexpire. This field can only be set by\nusers with paid accounts."
            },
            "vanity_name": {
              "type": "string",
              "example": "my-shared-link",
              "description": "Defines a custom vanity name to use in the shared link URL,\nfor example `https://app.box.com/v/my-shared-link`.\n\nCustom URLs should not be used when sharing sensitive content\nas vanity URLs are a lot easier to guess than regular shared links."
            }
          },
          "description": "Defines a shared link for an item. Set this to `null` to remove\nthe shared link."
        },
        {
          "description": "Enables the creation of a shared link for a folder."
        }
      ]
    },
    "folder_upload_email": {
      "allOf": [
        {
          "type": "object",
          "title": "Folder upload email",
          "properties": {
            "access": {
              "enum": [
                "open",
                "collaborators"
              ],
              "type": "string",
              "example": "open",
              "nullable": false,
              "description": "When this parameter has been set, users can email files\nto the email address that has been automatically\ncreated for this folder.\n\nTo create an email address, set this property either when\ncreating or updating the folder.\n\nWhen set to `collaborators`, only emails from registered email\naddresses for collaborators will be accepted. This includes\nany email aliases a user might have registered.\n\nWhen set to `open` it will accept emails from any email\naddress."
            }
          },
          "description": "The Write Folder Upload Email object"
        },
        {
          "description": "Setting this object enables the upload email address.\n\nThis email address can be used by users to directly\nupload files directly to the folder via email.\n\nSetting the value to `null` will disable the email address."
        }
      ]
    },
    "can_non_owners_invite": {
      "type": "boolean",
      "example": true,
      "description": "Specifies if users who are not the owner\nof the folder can invite new collaborators to the folder."
    },
    "can_non_owners_view_collaborators": {
      "type": "boolean",
      "example": true,
      "description": "Restricts collaborators who are not the owner of\nthis folder from viewing other collaborations on\nthis folder.\n\nIt also restricts non-owners from inviting new\ncollaborators.\n\nWhen setting this field to `false`, it is required\nto also set `can_non_owners_invite_collaborators` to\n`false` if it has not already been set."
    },
    "is_collaboration_restricted_to_enterprise": {
      "type": "boolean",
      "example": true,
      "description": "Specifies if new invites to this folder are restricted to users\nwithin the enterprise. This does not affect existing\ncollaborations."
    }
  }
}
object GenericSource
{
  "type": "object",
  "title": "Generic source",
  "description": "A generic event source type.",
  "x-box-resource-id": "generic_source",
  "additionalProperties": {
    "allOf": [
      {},
      {
        "description": "A definition of a generic\nevent source object. The set of\nparameters depends on the\nobject type. For example, a Box Shield\nevent source would have the following\nset of parameters:\n```yaml\n{\n\"barrier_id\": 123456,\n\"barrier_status\": \"ENABLED\",\n\"barrier_segments\": [\n  {\n      \"name\": \"8\",\n      \"member_count\": 1\n    },\n  {\n      \"name\": \"9\",\n      \"member_count\": 1\n           }\n       ]\n}   \n```\n"
      }
    ]
  }
}
string GetAuthorizeResponse
{
  "type": "string",
  "format": "html"
}
string GetAuthorizedefaultResponse
{
  "type": "string",
  "format": "html"
}
object GetSearchResponse
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/SearchResults"
    },
    {
      "$ref": "#/components/schemas/SearchResultsWithSharedLinks"
    }
  ]
}
object Group
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Group--Mini"
    },
    {
      "properties": {
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When the group object was created"
        },
        "modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When the group object was last modified"
        }
      }
    }
  ],
  "title": "Group",
  "description": "A standard representation of a group, as returned from any\ngroup API endpoints by default",
  "x-box-variant": "standard",
  "x-box-resource-id": "group"
}
object Group--Base
{
  "type": "object",
  "title": "Group (Base)",
  "required": [
    "id",
    "type"
  ],
  "x-box-tag": "groups",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this object"
    },
    "type": {
      "enum": [
        "group"
      ],
      "type": "string",
      "example": "group",
      "description": "`group`"
    }
  },
  "description": "A base representation of a group.",
  "x-box-variant": "base",
  "x-box-variants": [
    "base",
    "mini",
    "standard",
    "full"
  ],
  "x-box-sanitized": true,
  "x-box-resource-id": "group--base"
}
object Group--Full
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Group"
    },
    {
      "properties": {
        "provenance": {
          "type": "string",
          "example": "Active Directory",
          "maxLength": 255,
          "description": "Keeps track of which external source this group is\ncoming from (e.g. \"Active Directory\", \"Google Groups\",\n\"Facebook Groups\").  Setting this will\nalso prevent Box users from editing the group name\nand its members directly via the Box web application.\nThis is desirable for one-way syncing of groups."
        },
        "description": {
          "type": "string",
          "example": "Support Group - as imported from Active Directory",
          "maxLength": 255,
          "description": "Human readable description of the group."
        },
        "permissions": {
          "allOf": [
            {
              "type": "object",
              "properties": {
                "can_invite_as_collaborator": {
                  "type": "boolean",
                  "example": true,
                  "description": "Specifies if the user can invite the group to collaborate on any items."
                }
              },
              "description": "The permissions that the authenticated user has for a group."
            },
            {
              "description": "Describes the permissions that the current user has\nfor this group."
            }
          ]
        },
        "invitability_level": {
          "enum": [
            "admins_only",
            "admins_and_members",
            "all_managed_users"
          ],
          "type": "string",
          "example": "admins_only",
          "description": "Specifies who can invite the group to collaborate\non items.\n\nWhen set to `admins_only` the enterprise admin, co-admins,\nand the group's admin can invite the group.\n\nWhen set to `admins_and_members` all the admins listed\nabove and group members can invite the group.\n\nWhen set to `all_managed_users` all managed users in the\nenterprise can invite the group."
        },
        "external_sync_identifier": {
          "type": "string",
          "example": "AD:123456",
          "description": "An arbitrary identifier that can be used by\nexternal group sync tools to link this Box Group to\nan external group. Example values of this field\ncould be an Active Directory Object ID or a Google\nGroup ID.  We recommend you use of this field in\norder to avoid issues when group names are updated in\neither Box or external systems."
        },
        "member_viewability_level": {
          "enum": [
            "admins_only",
            "admins_and_members",
            "all_managed_users"
          ],
          "type": "string",
          "example": "admins_only",
          "description": "Specifies who can view the members of the group\n(Get Memberships for Group).\n\n* `admins_only` - the enterprise admin, co-admins, group's\n  group admin\n* `admins_and_members` - all admins and group members\n* `all_managed_users` - all managed users in the\n  enterprise"
        }
      }
    }
  ],
  "title": "Group (Full)",
  "description": "Groups contain a set of users, and can be used in place of\nusers in some operations, such as collaborations.",
  "x-box-variant": "full",
  "x-box-resource-id": "group--full"
}
object Group--Mini
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Group--Base"
    },
    {
      "properties": {
        "name": {
          "type": "string",
          "example": "Support",
          "description": "The name of the group"
        },
        "group_type": {
          "enum": [
            "managed_group",
            "all_users_group"
          ],
          "type": "string",
          "example": "managed_group",
          "description": "The type of the group."
        }
      }
    }
  ],
  "title": "Group (Mini)",
  "description": "Mini representation of a group, including id and name of\ngroup.",
  "x-box-variant": "mini",
  "x-box-resource-id": "group--mini"
}
object GroupMembership
{
  "type": "object",
  "title": "Group membership",
  "x-box-tag": "memberships",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this group membership"
    },
    "role": {
      "enum": [
        "member",
        "admin"
      ],
      "type": "string",
      "example": "member",
      "description": "The role of the user in the group."
    },
    "type": {
      "enum": [
        "group_membership"
      ],
      "type": "string",
      "example": "group_membership",
      "description": "`group_membership`"
    },
    "user": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user that the membership applies to"
        }
      ]
    },
    "group": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Group--Mini"
        },
        {
          "description": "The group that the membership applies to"
        }
      ]
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "The time this membership was created."
    },
    "modified_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "The time this membership was last modified."
    }
  },
  "description": "Membership is used to signify that a user is part of a\ngroup.",
  "x-box-resource-id": "group_membership"
}
object GroupMemberships
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "order": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "by": {
                "type": "string",
                "example": "type",
                "description": "The field to order by"
              },
              "direction": {
                "enum": [
                  "ASC",
                  "DESC"
                ],
                "type": "string",
                "example": "ASC",
                "description": "The direction to order by, either ascending or descending"
              }
            },
            "description": "The order in which a pagination is ordered"
          },
          "description": "The order by which items are returned.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        },
        "offset": {
          "type": "integer",
          "format": "int64",
          "example": 2000,
          "description": "The 0-based offset of the first entry in this set. This will be the same\nas the `offset` query parameter.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        },
        "total_count": {
          "type": "integer",
          "format": "int64",
          "example": 5000,
          "description": "One greater than the offset of the last entry in the entire collection.\nThe total number of entries in the collection may be less than\n`total_count`.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        }
      },
      "description": "The part of an API response that describes pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/GroupMembership"
          },
          "description": "A list of group memberships"
        }
      }
    }
  ],
  "title": "Group memberships",
  "x-box-tag": "memberships",
  "description": "A list of group memberships.",
  "x-box-resource-id": "group_memberships"
}
object GroupMembershipsCreateMembershipRequest
{
  "type": "object",
  "required": [
    "user",
    "group"
  ],
  "properties": {
    "role": {
      "enum": [
        "member",
        "admin"
      ],
      "type": "string",
      "example": "member",
      "description": "The role of the user in the group."
    },
    "user": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "1434325",
          "description": "The ID of the user to add to the group"
        }
      },
      "description": "The user to add to the group."
    },
    "group": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "4545523",
          "description": "The ID of the group to add the user to"
        }
      },
      "description": "The group to add the user to."
    },
    "configurable_permissions": {
      "type": "object",
      "example": {
        "can_run_reports": true
      },
      "description": "Custom configuration for the permissions an admin\nif a group will receive. This option has no effect\non members with a role of `member`.\n\nSetting these permissions overwrites the default\naccess levels of an admin.\n\nSpecifying a value of \"null\" for this object will disable\nall configurable permissions. Specifying permissions will set\nthem accordingly, omitted permissions will be enabled by default.",
      "additionalProperties": {
        "type": "boolean",
        "example": true,
        "description": "A key value pair of custom permissions.",
        "x-box-example-key": "can_run_reports"
      }
    }
  }
}
object GroupMembershipsUpdateMembershipRequest
{
  "type": "object",
  "properties": {
    "role": {
      "enum": [
        "member",
        "admin"
      ],
      "type": "string",
      "example": "member",
      "description": "The role of the user in the group."
    },
    "configurable_permissions": {
      "type": "object",
      "example": {
        "can_run_reports": true
      },
      "description": "Custom configuration for the permissions an admin\nif a group will receive. This option has no effect\non members with a role of `member`.\n\nSetting these permissions overwrites the default\naccess levels of an admin.\n\nSpecifying a value of \"null\" for this object will disable\nall configurable permissions. Specifying permissions will set\nthem accordingly, omitted permissions will be enabled by default.",
      "additionalProperties": {
        "type": "boolean",
        "example": true,
        "description": "A key value pair of custom permissions.",
        "x-box-example-key": "can_run_reports"
      }
    }
  }
}
object Groups
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "order": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "by": {
                "type": "string",
                "example": "type",
                "description": "The field to order by"
              },
              "direction": {
                "enum": [
                  "ASC",
                  "DESC"
                ],
                "type": "string",
                "example": "ASC",
                "description": "The direction to order by, either ascending or descending"
              }
            },
            "description": "The order in which a pagination is ordered"
          },
          "description": "The order by which items are returned.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        },
        "offset": {
          "type": "integer",
          "format": "int64",
          "example": 2000,
          "description": "The 0-based offset of the first entry in this set. This will be the same\nas the `offset` query parameter.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        },
        "total_count": {
          "type": "integer",
          "format": "int64",
          "example": 5000,
          "description": "One greater than the offset of the last entry in the entire collection.\nThe total number of entries in the collection may be less than\n`total_count`.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        }
      },
      "description": "The part of an API response that describes pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Group--Full"
          },
          "description": "A list of groups"
        }
      }
    }
  ],
  "title": "Groups",
  "x-box-tag": "groups",
  "description": "A list of groups.",
  "x-box-resource-id": "groups"
}
object GroupsUpdateGroupRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Customer Support",
      "description": "The name of the new group to be created. Must be unique within the\nenterprise."
    },
    "provenance": {
      "type": "string",
      "example": "Active Directory",
      "maxLength": 255,
      "description": "Keeps track of which external source this group is\ncoming, for example `Active Directory`, or `Okta`.\n\nSetting this will also prevent Box admins from editing\nthe group name and its members directly via the Box\nweb application.\n\nThis is desirable for one-way syncing of groups."
    },
    "description": {
      "type": "string",
      "example": "\"Customer Support Group - as imported from Active Directory\"",
      "maxLength": 255,
      "description": "A human readable description of the group."
    },
    "invitability_level": {
      "enum": [
        "admins_only",
        "admins_and_members",
        "all_managed_users"
      ],
      "type": "string",
      "example": "admins_only",
      "description": "Specifies who can invite the group to collaborate\non folders.\n\nWhen set to `admins_only` the enterprise admin, co-admins,\nand the group's admin can invite the group.\n\nWhen set to `admins_and_members` all the admins listed\nabove and group members can invite the group.\n\nWhen set to `all_managed_users` all managed users in the\nenterprise can invite the group."
    },
    "external_sync_identifier": {
      "type": "string",
      "example": "AD:123456",
      "description": "An arbitrary identifier that can be used by\nexternal group sync tools to link this Box Group to\nan external group.\n\nExample values of this field\ncould be an **Active Directory Object ID** or a **Google\nGroup ID**.\n\nWe recommend you use of this field in\norder to avoid issues when group names are updated in\neither Box or external systems."
    },
    "member_viewability_level": {
      "enum": [
        "admins_only",
        "admins_and_members",
        "all_managed_users"
      ],
      "type": "string",
      "example": "admins_only",
      "description": "Specifies who can see the members of the group.\n\n* `admins_only` - the enterprise admin, co-admins, group's\n  group admin\n* `admins_and_members` - all admins and group members\n* `all_managed_users` - all managed users in the\n  enterprise"
    }
  }
}
object IntegrationMapping
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/IntegrationMapping--Base"
    },
    {
      "properties": {
        "type": {
          "enum": [
            "integration_mapping"
          ],
          "type": "string",
          "example": "integration_mapping",
          "nullable": false,
          "description": "Mapping type"
        },
        "options": {
          "type": "object",
          "anyOf": [
            {
              "$ref": "#/components/schemas/IntegrationMappingSlackOptions"
            }
          ],
          "example": {},
          "nullable": false,
          "description": "Integration mapping options for Slack"
        },
        "box_item": {
          "$ref": "#/components/schemas/Folder--Mini"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": false,
          "description": "When the integration mapping object was created"
        },
        "created_by": {
          "$ref": "#/components/schemas/UserIntegrationMappings"
        },
        "modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": false,
          "description": "When the integration mapping object was last modified"
        },
        "modified_by": {
          "$ref": "#/components/schemas/UserIntegrationMappings"
        },
        "partner_item": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/IntegrationMappingPartnerItemSlack"
            }
          ],
          "nullable": false,
          "description": "Mapped item object for Slack"
        },
        "is_manually_created": {
          "type": "boolean",
          "example": true,
          "nullable": false,
          "description": "Identifies whether the mapping has\nbeen manually set\n(as opposed to being automatically created)"
        }
      }
    }
  ],
  "title": "Integration mapping",
  "required": [
    "type",
    "partner_item",
    "box_item"
  ],
  "x-box-tag": "integration_mappings",
  "description": "A standard representation of an integration\nmapping object.",
  "x-box-variant": "standard",
  "x-box-resource-id": "integration_mapping"
}
object IntegrationMapping--Base
{
  "type": "object",
  "title": "Integration mapping (Base)",
  "x-box-tag": "integration_mappings",
  "properties": {
    "id": {
      "type": "string",
      "example": "12345",
      "nullable": false,
      "description": "A unique identifier of a folder mapping\n(part of a composite key together\nwith `integration_type`)"
    },
    "integration_type": {
      "enum": [
        "slack"
      ],
      "type": "string",
      "example": "slack",
      "nullable": false,
      "description": "Identifies the Box partner app,\nwith which the mapping is associated.\nCurrently only supports Slack.\n(part of the composite key together with `id`)"
    }
  },
  "description": "A base representation of an\nintegration mapping object.",
  "x-box-variant": "base",
  "x-box-variants": [
    "base",
    "standard",
    "mini"
  ],
  "x-box-resource-id": "integration_mapping--base"
}
object IntegrationMapping--Mini
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/IntegrationMapping--Base"
    },
    {
      "properties": {
        "box_item_id": {
          "type": "string",
          "example": "123124351",
          "nullable": false,
          "description": "ID of the Box item mapped to the object referenced in `partner_item_id`"
        },
        "box_item_type": {
          "enum": [
            "folder"
          ],
          "type": "string",
          "example": "folder",
          "nullable": false,
          "description": "Type of the Box object referenced in `box_item_id`"
        },
        "partner_item_id": {
          "type": "string",
          "example": "C12351346",
          "nullable": false,
          "description": "ID of the mapped partner item"
        },
        "partner_item_type": {
          "enum": [
            "channel"
          ],
          "type": "string",
          "example": "channel",
          "nullable": false,
          "description": "Domain-specific type of the mapped partner item"
        }
      }
    }
  ],
  "title": "Integration mapping (Mini)",
  "x-box-tag": "integration_mappings",
  "description": "A mini representation of an\nintegration mapping object.",
  "x-box-variant": "mini",
  "x-box-resource-id": "integration_mapping--mini"
}
object IntegrationMappingBoxItemSlack
{
  "type": "object",
  "title": "Integration mapping Box item schema for type Slack",
  "required": [
    "id",
    "type"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "1234567891",
      "nullable": false,
      "description": "ID of the mapped item (of type referenced in `type`)"
    },
    "type": {
      "enum": [
        "folder"
      ],
      "type": "string",
      "example": "folder",
      "nullable": false,
      "description": "Type of the mapped item referenced in `id`"
    }
  },
  "description": "The schema for an integration mapping Box item object for type Slack"
}
object IntegrationMappingPartnerItemSlack
{
  "type": "object",
  "title": "Integration mapping mapped item schema for type Slack",
  "required": [
    "id",
    "type"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "C12378991223",
      "nullable": false,
      "description": "ID of the mapped item (of type referenced in `type`)"
    },
    "type": {
      "enum": [
        "channel"
      ],
      "type": "string",
      "example": "channel",
      "nullable": false,
      "description": "Type of the mapped item referenced in `id`"
    },
    "slack_org_id": {
      "type": "string",
      "example": "E1234567",
      "nullable": true,
      "description": "ID of the Slack org with which the item is associated. Use this parameter if Box for Slack is installed at the org level. Do not use `slack_workspace_id` at the same time."
    },
    "slack_workspace_id": {
      "type": "string",
      "example": "T12352314",
      "nullable": true,
      "description": "ID of the Slack workspace with which the item is associated. Use this parameter if Box for Slack is installed at a workspace level. Do not use `slack_org_id` at the same time."
    }
  },
  "description": "The schema for an integration mapping mapped item object for type Slack.\n\nDepending if Box for Slack is installed at the org or workspace level,\nprovide **either** `slack_org_id` **or** `slack_workspace_id`.\nDo not use both parameters at the same time."
}
object IntegrationMappingSlackCreateRequest
{
  "type": "object",
  "title": "Create integration mapping request",
  "required": [
    "partner_item",
    "box_item"
  ],
  "properties": {
    "options": {
      "$ref": "#/components/schemas/IntegrationMappingSlackOptions"
    },
    "box_item": {
      "$ref": "#/components/schemas/IntegrationMappingBoxItemSlack"
    },
    "partner_item": {
      "$ref": "#/components/schemas/IntegrationMappingPartnerItemSlack"
    }
  },
  "description": "A request to create a\nSlack Integration Mapping object",
  "x-box-resource-id": "integration_mapping_slack_create_request",
  "x-konfig-properties": {
    "options": {
      "nullable": false
    },
    "box_item": {
      "nullable": false
    },
    "partner_item": {
      "nullable": false
    }
  }
}
object IntegrationMappingSlackOptions
{
  "type": "object",
  "title": "Integration mapping options for type Slack",
  "properties": {
    "is_access_management_disabled": {
      "type": "boolean",
      "example": true,
      "nullable": false,
      "description": "Indicates whether or not channel member\naccess to the underlying box item\nshould be automatically managed.\nDepending on type of channel, access is managed\nthrough creating collaborations or shared links."
    }
  },
  "description": "The schema for an integration mapping options object for Slack type."
}
object IntegrationMappings
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/IntegrationMapping"
          },
          "description": "A list of integration mappings"
        }
      }
    }
  ],
  "title": "Integration mappings",
  "x-box-tag": "integration_mappings",
  "description": "A list of integration mapping\nobjects.",
  "x-box-resource-id": "integration_mappings"
}
object IntegrationMappingsUpdateSlackMappingRequest
{
  "type": "object",
  "properties": {
    "options": {
      "$ref": "#/components/schemas/IntegrationMappingSlackOptions"
    },
    "box_item": {
      "$ref": "#/components/schemas/IntegrationMappingBoxItemSlack"
    }
  },
  "x-konfig-properties": {
    "options": {
      "nullable": false
    },
    "box_item": {
      "nullable": false
    }
  }
}
object Invite
{
  "type": "object",
  "title": "Invite",
  "required": [
    "id",
    "type"
  ],
  "x-box-tag": "invites",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this invite"
    },
    "type": {
      "enum": [
        "invite"
      ],
      "type": "string",
      "example": "invite",
      "description": "`invite`"
    },
    "status": {
      "type": "string",
      "example": "pending",
      "description": "The status of the invite"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "When the invite was created"
    },
    "invited_by": {
      "$ref": "#/components/schemas/User--Mini"
    },
    "invited_to": {
      "type": "object",
      "title": "Enterprise",
      "properties": {
        "id": {
          "type": "string",
          "example": "11446498",
          "description": "The unique identifier for this enterprise."
        },
        "name": {
          "type": "string",
          "example": "Acme Inc.",
          "description": "The name of the enterprise"
        },
        "type": {
          "enum": [
            "enterprise"
          ],
          "type": "string",
          "example": "enterprise",
          "description": "`enterprise`"
        }
      },
      "description": "A representation of a Box enterprise"
    },
    "modified_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "When the invite was modified."
    },
    "actionable_by": {
      "$ref": "#/components/schemas/User--Mini"
    }
  },
  "description": "An invite for a user to an enterprise.",
  "x-box-resource-id": "invite"
}
object Items
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "order": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "by": {
                "type": "string",
                "example": "type",
                "description": "The field to order by"
              },
              "direction": {
                "enum": [
                  "ASC",
                  "DESC"
                ],
                "type": "string",
                "example": "ASC",
                "description": "The direction to order by, either ascending or descending"
              }
            },
            "description": "The order in which a pagination is ordered"
          },
          "description": "The order by which items are returned.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        },
        "offset": {
          "type": "integer",
          "format": "int64",
          "example": 2000,
          "description": "The 0-based offset of the first entry in this set. This will be the same\nas the `offset` query parameter.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        },
        "total_count": {
          "type": "integer",
          "format": "int64",
          "example": 5000,
          "description": "One greater than the offset of the last entry in the entire collection.\nThe total number of entries in the collection may be less than\n`total_count`.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        }
      },
      "description": "The part of an API response that describes pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/File--Full"
              },
              {
                "$ref": "#/components/schemas/Folder--Mini"
              },
              {
                "$ref": "#/components/schemas/WebLink"
              }
            ]
          },
          "description": "The items in this collection."
        }
      }
    }
  ],
  "title": "Items",
  "x-box-tag": "folders",
  "description": "A list of files, folders, and web links in\ntheir mini representation.",
  "x-box-resource-id": "items"
}
object KeywordSkillCard
{
  "type": "object",
  "title": "Keyword Skill Card",
  "required": [
    "type",
    "skill_card_type",
    "skill",
    "invocation",
    "entries"
  ],
  "x-box-tag": "skills",
  "properties": {
    "type": {
      "enum": [
        "skill_card"
      ],
      "type": "string",
      "example": "skill_card",
      "description": "`skill_card`"
    },
    "skill": {
      "type": "object",
      "required": [
        "type",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "image-recognition-service",
          "description": "A custom identifier that represent the service that\napplied this metadata."
        },
        "type": {
          "enum": [
            "service"
          ],
          "type": "string",
          "example": "service",
          "description": "`service`"
        }
      },
      "description": "The service that applied this metadata."
    },
    "entries": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "example": "keyword1",
            "description": "The text of the keyword."
          }
        },
        "description": "An entry in the `entries` attribute of a metadata card"
      },
      "description": "An list of entries in the metadata card."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2018-04-13T13:53:23-07:00",
      "description": "The optional date and time this card was created at."
    },
    "invocation": {
      "type": "object",
      "required": [
        "type",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "image-recognition-service-123",
          "description": "A custom identifier that represent the instance of\nthe service that applied this metadata. For example,\nif your `image-recognition-service` runs on multiple\nnodes, this field can be used to identify the ID of\nthe node that was used to apply the metadata."
        },
        "type": {
          "enum": [
            "skill_invocation"
          ],
          "type": "string",
          "example": "skill_invocation",
          "description": "`skill_invocation`"
        }
      },
      "description": "The invocation of this service, used to track\nwhich instance of a service applied the metadata."
    },
    "skill_card_type": {
      "enum": [
        "keyword"
      ],
      "type": "string",
      "example": "keyword",
      "description": "`keyword`"
    },
    "skill_card_title": {
      "type": "object",
      "required": [
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "example": "labels",
          "description": "An optional identifier for the title."
        },
        "message": {
          "type": "string",
          "example": "Labels",
          "description": "The actual title to show in the UI."
        }
      },
      "description": "The title of the card."
    }
  },
  "description": "A skill card that contains a set of keywords",
  "x-box-resource-id": "keyword_skill_card"
}
object LegalHoldPolicies
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        },
        "prev_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVih",
          "nullable": true,
          "description": "The marker for the start of the previous page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/LegalHoldPolicy"
          },
          "description": "A list of legal hold policies"
        }
      }
    }
  ],
  "title": "Legal hold policies",
  "x-box-tag": "legal_hold_policies",
  "description": "A list of legal hold policies.",
  "x-box-resource-id": "legal_hold_policies"
}
object LegalHoldPoliciesCreateNewPolicyRequest
{
  "type": "object",
  "required": [
    "policy_name"
  ],
  "properties": {
    "is_ongoing": {
      "type": "boolean",
      "example": true,
      "description": "Whether new assignments under this policy should\ncontinue applying to files even after initialization.\n\nWhen this policy is applied using a legal hold assignment,\nit will continue applying the policy to any new file versions\neven after it has been applied.\n\nFor example, if a legal hold assignment is placed on a user\ntoday, and that user uploads a file tomorrow, that file will\nget held. This will continue until the policy is retired.\n\nRequired if no filter dates are set."
    },
    "description": {
      "type": "string",
      "example": "A custom policy for the sales team",
      "maxLength": 500,
      "description": "A description for the policy."
    },
    "policy_name": {
      "type": "string",
      "example": "Sales Policy",
      "maxLength": 254,
      "description": "The name of the policy."
    },
    "filter_ended_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-18T10:53:43-08:00",
      "maxLength": 500,
      "description": "The filter end date.\n\nWhen this policy is applied using a `custodian` legal\nhold assignments, it will only apply to file versions\ncreated or uploaded inside of the\ndate range. Other assignment types, such as folders and\nfiles, will ignore the date filter.\n\nRequired if `is_ongoing` is set to `false`."
    },
    "filter_started_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "maxLength": 500,
      "description": "The filter start date.\n\nWhen this policy is applied using a `custodian` legal\nhold assignments, it will only apply to file versions\ncreated or uploaded inside of the\ndate range. Other assignment types, such as folders and\nfiles, will ignore the date filter.\n\nRequired if `is_ongoing` is set to `false`."
    }
  }
}
object LegalHoldPoliciesUpdatePolicyRequest
{
  "type": "object",
  "properties": {
    "description": {
      "type": "string",
      "example": "A custom policy for the sales team",
      "maxLength": 500,
      "description": "A description for the policy."
    },
    "policy_name": {
      "type": "string",
      "example": "Sales Policy",
      "maxLength": 254,
      "description": "The name of the policy."
    },
    "release_notes": {
      "type": "string",
      "example": "Required for GDPR",
      "maxLength": 500,
      "description": "Notes around why the policy was released."
    }
  }
}
object LegalHoldPolicy
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/LegalHoldPolicy--Mini"
    },
    {
      "properties": {
        "status": {
          "enum": [
            "active",
            "applying",
            "releasing",
            "released"
          ],
          "type": "string",
          "example": "active",
          "description": "* 'active' - the policy is not in a transition state\n* 'applying' - that the policy is in the process of\n  being applied\n* 'releasing' - that the process is in the process\n  of being released\n* 'released' - the policy is no longer active"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When the legal hold policy object was created"
        },
        "created_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Mini"
            },
            {
              "description": "The user who created the legal hold policy object"
            }
          ]
        },
        "deleted_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When the policy release request was sent. (Because\nit can take time for a policy to fully delete, this\nisn't quite the same time that the policy is fully deleted).\n\nIf `null`, the policy was not deleted."
        },
        "description": {
          "type": "string",
          "example": "Postman created policy",
          "maxLength": 500,
          "description": "Description of the legal hold policy. Optional\nproperty with a 500 character limit."
        },
        "modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When the legal hold policy object was modified.\nDoes not update when assignments are added or removed."
        },
        "policy_name": {
          "type": "string",
          "example": "Policy 4",
          "maxLength": 254,
          "description": "Name of the legal hold policy."
        },
        "release_notes": {
          "type": "string",
          "example": "Example",
          "maxLength": 500,
          "description": "Optional notes about why the policy was created."
        },
        "filter_ended_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "User-specified, optional date filter applies to\nCustodian assignments only"
        },
        "assignment_counts": {
          "type": "object",
          "properties": {
            "file": {
              "type": "integer",
              "format": "int64",
              "example": 3,
              "description": "The number of files this policy is applied to"
            },
            "user": {
              "type": "integer",
              "format": "int64",
              "example": 1,
              "description": "The number of users this policy is applied to"
            },
            "folder": {
              "type": "integer",
              "format": "int64",
              "example": 2,
              "description": "The number of folders this policy is applied to"
            },
            "file_version": {
              "type": "integer",
              "format": "int64",
              "example": 4,
              "description": "The number of file versions this policy is applied to"
            }
          },
          "description": "Counts of assignments within this a legal hold policy by item type"
        },
        "filter_started_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "User-specified, optional date filter applies to\nCustodian assignments only"
        }
      }
    }
  ],
  "title": "Legal hold policy",
  "description": "Legal Hold Policy information describes the basic\ncharacteristics of the Policy, such as name, description,\nand filter dates.",
  "x-box-variant": "standard",
  "x-box-resource-id": "legal_hold_policy"
}
object LegalHoldPolicy--Mini
{
  "type": "object",
  "title": "Legal hold policy (Mini)",
  "required": [
    "id",
    "type"
  ],
  "x-box-tag": "legal_hold_policies",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this legal hold policy"
    },
    "type": {
      "enum": [
        "legal_hold_policy"
      ],
      "type": "string",
      "example": "legal_hold_policy",
      "description": "`legal_hold_policy`"
    }
  },
  "description": "A mini legal hold policy",
  "x-box-variant": "mini",
  "x-box-variants": [
    "mini",
    "standard"
  ],
  "x-box-resource-id": "legal_hold_policy--mini"
}
object LegalHoldPolicyAssignment
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/LegalHoldPolicyAssignment--Base"
    },
    {
      "properties": {
        "deleted_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When the assignment release request was sent.\n(Because it can take time for an assignment to fully\ndelete, this isn't quite the same time that the\nassignment is fully deleted). If null, Assignment\nwas not deleted."
        },
        "assigned_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When the legal hold policy assignment object was\ncreated"
        },
        "assigned_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Mini"
            },
            {
              "description": "The user who created the legal hold policy\nassignment"
            }
          ]
        },
        "assigned_to": {
          "allOf": [
            {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/File"
                },
                {
                  "$ref": "#/components/schemas/Folder"
                },
                {
                  "$ref": "#/components/schemas/WebLink"
                }
              ]
            },
            {
              "description": "The item that the the legal hold policy\nis assigned to. Includes type and ID."
            }
          ]
        },
        "legal_hold_policy": {
          "allOf": [
            {
              "$ref": "#/components/schemas/LegalHoldPolicy--Mini"
            },
            {
              "description": "The policy that the legal hold policy assignment\nis part of"
            }
          ]
        }
      }
    }
  ],
  "title": "Legal hold policy assignment",
  "x-box-tag": "legal_hold_policy_assignments",
  "description": "Legal Hold Assignments are used to assign Legal Hold\nPolicies to Users, Folders, Files, or File Versions.\n\nCreating a Legal Hold Assignment puts a hold\non the File-Versions that belong to the Assignment's\n'apply-to' entity.",
  "x-box-resource-id": "legal_hold_policy_assignment"
}
object LegalHoldPolicyAssignment--Base
{
  "type": "object",
  "title": "Legal hold policy assignment (Base)",
  "x-box-tag": "legal_hold_policy_assignments",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this legal hold assignment"
    },
    "type": {
      "enum": [
        "legal_hold_policy_assignment"
      ],
      "type": "string",
      "example": "legal_hold_policy_assignment",
      "description": "`legal_hold_policy_assignment`"
    }
  },
  "description": "Legal Hold Assignments are used to assign Legal Hold\nPolicies to Users, Folders, Files, or File Versions.\n\nCreating a Legal Hold Assignment puts a hold\non the File-Versions that belong to the Assignment's\n'apply-to' entity.",
  "x-box-variant": "base",
  "x-box-variants": [
    "base",
    "standard"
  ],
  "x-box-sanitized": true,
  "x-box-resource-id": "legal_hold_policy_assignment--base"
}
object LegalHoldPolicyAssignments
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        },
        "prev_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVih",
          "nullable": true,
          "description": "The marker for the start of the previous page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/LegalHoldPolicyAssignment"
          },
          "description": "A list of legal hold\npolicy assignments"
        }
      }
    }
  ],
  "title": "Legal hold policy assignments",
  "x-box-tag": "legal_hold_policy_assignments",
  "description": "A list of legal hold policies assignments.",
  "x-box-resource-id": "legal_hold_policy_assignments"
}
object LegalHoldPolicyAssignmentsAssignFileLegalHoldRequest
{
  "type": "object",
  "required": [
    "policy_id",
    "assign_to"
  ],
  "properties": {
    "assign_to": {
      "type": "object",
      "required": [
        "type",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "6564564",
          "description": "The ID of item to assign the policy to"
        },
        "type": {
          "enum": [
            "file",
            "file_version",
            "folder",
            "user"
          ],
          "type": "string",
          "example": "folder",
          "description": "The type of item to assign the policy to"
        }
      },
      "description": "The item to assign the policy to"
    },
    "policy_id": {
      "type": "string",
      "example": "123244",
      "description": "The ID of the policy to assign."
    }
  }
}
object Metadata--Base
{
  "type": "object",
  "title": "Metadata instance (Base)",
  "x-box-tag": "file_metadata",
  "properties": {
    "$scope": {
      "type": "string",
      "example": "enterprise_27335",
      "description": "An ID for the scope in which this template\nhas been applied. This will be `enterprise_{enterprise_id}` for templates\ndefined for use in this enterprise, and `global` for general templates\nthat are available to all enterprises using Box."
    },
    "$parent": {
      "type": "string",
      "example": "folder_59449484661,",
      "description": "The identifier of the item that this metadata instance\nhas been attached to. This combines the `type` and the `id`\nof the parent in the form `{type}_{id}`."
    },
    "$version": {
      "type": "integer",
      "example": 1,
      "description": "The version of the metadata instance. This version starts at 0 and\nincreases every time a user-defined property is modified."
    },
    "$template": {
      "type": "string",
      "example": "marketingCollateral",
      "description": "The name of the template"
    }
  },
  "description": "The base representation of a metadata instance.",
  "x-box-variant": "base",
  "x-box-variants": [
    "base",
    "standard",
    "full"
  ],
  "x-box-sanitized": true,
  "x-box-resource-id": "metadata--base"
}
object Metadata--Full
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Metadata--Base"
    },
    {
      "properties": {
        "$id": {
          "type": "string",
          "format": "uuid",
          "example": "01234500-12f1-1234-aa12-b1d234cb567e",
          "maxLength": 36,
          "description": "A UUID to identify the metadata instance."
        },
        "$type": {
          "type": "string",
          "example": "properties-6bcba49f-ca6d-4d2a-a758-57fe6edf44d0",
          "description": "A unique identifier for the \"type\" of this instance. This is an\ninternal system property and should not be used by a client\napplication."
        },
        "$canEdit": {
          "type": "boolean",
          "example": true,
          "description": "Whether the user can edit this metadata instance."
        },
        "$typeVersion": {
          "type": "integer",
          "example": 2,
          "description": "The last-known version of the template of the object. This is an\ninternal system property and should not be used by a client\napplication."
        }
      }
    },
    {
      "additionalProperties": {
        "allOf": [
          {},
          {
            "example": "Aaron Levie"
          },
          {
            "description": "A value for each of the fields that are present\non the metadata template.\nFor the `global.properties` template this can be\na list of zero or more fields,\nas this template allows for any generic key-value pairs \nto be stored stored in the template."
          }
        ],
        "x-box-example-key": "name"
      }
    }
  ],
  "title": "Metadata instance (Full)",
  "description": "An instance of a metadata template, which has been applied to a file or\nfolder.",
  "x-box-variant": "full",
  "x-box-resource-id": "metadata--full"
}
object MetadataCascadePolicies
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        },
        "prev_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVih",
          "nullable": true,
          "description": "The marker for the start of the previous page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/MetadataCascadePolicy"
          },
          "description": "A list of metadata cascade policies"
        }
      }
    }
  ],
  "title": "Metadata cascade policies",
  "x-box-tag": "metadata_cascade_policies",
  "description": "A list of metadata cascade policies.",
  "x-box-resource-id": "metadata_cascade_policies"
}
object MetadataCascadePoliciesApplyToChildrenRequest
{
  "type": "object",
  "required": [
    "conflict_resolution"
  ],
  "properties": {
    "conflict_resolution": {
      "enum": [
        "none",
        "overwrite"
      ],
      "type": "string",
      "example": "none",
      "description": "Describes the desired behavior when dealing with the conflict\nwhere a metadata template already has an instance applied\nto a child.\n\n* `none` will preserve the existing value on the file\n* `overwrite` will force-apply the templates values over\n  any existing values."
    }
  }
}
object MetadataCascadePoliciesCreatePolicyRequest
{
  "type": "object",
  "required": [
    "folder_id",
    "scope",
    "templateKey"
  ],
  "properties": {
    "scope": {
      "enum": [
        "global",
        "enterprise"
      ],
      "type": "string",
      "example": "enterprise",
      "description": "The scope of the targeted metadata template. This template will\nneed to already have an instance applied to the targeted folder."
    },
    "folder_id": {
      "type": "string",
      "example": "1234567",
      "description": "The ID of the folder to apply the policy to. This folder will\nneed to already have an instance of the targeted metadata\ntemplate applied to it."
    },
    "templateKey": {
      "type": "string",
      "example": "productInfo",
      "description": "The key of the targeted metadata template. This template will\nneed to already have an instance applied to the targeted folder.\n\nIn many cases the template key is automatically derived\nof its display name, for example `Contract Template` would\nbecome `contractTemplate`. In some cases the creator of the\ntemplate will have provided its own template key.\n\nPlease [list the templates for an enterprise][list], or\nget all instances on a [file][file] or [folder][folder]\nto inspect a template's key.\n\n[list]: e://get-metadata-templates-enterprise\n[file]: e://get-files-id-metadata\n[folder]: e://get-folders-id-metadata"
    }
  }
}
object MetadataCascadePolicy
{
  "type": "object",
  "title": "Metadata cascade policy",
  "required": [
    "id",
    "type"
  ],
  "x-box-tag": "metadata_cascade_policies",
  "properties": {
    "id": {
      "type": "string",
      "example": "6fd4ff89-8fc1-42cf-8b29-1890dedd26d7",
      "description": "The ID of the metadata cascade policy object"
    },
    "type": {
      "enum": [
        "metadata_cascade_policy"
      ],
      "type": "string",
      "example": "metadata_cascade_policy",
      "description": "`metadata_cascade_policy`"
    },
    "scope": {
      "type": "string",
      "example": "enterprise_123456",
      "description": "The scope of the metadata cascade policy can either be `global` or\n`enterprise_*`. The `global` scope is used for policies that are\navailable to any Box enterprise. The `enterprise_*` scope represents\npolicies that have been created within a specific enterprise, where `*`\nwill be the ID of that enterprise."
    },
    "parent": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "1234567",
          "description": "The ID of the folder the policy is applied to."
        },
        "type": {
          "enum": [
            "folder"
          ],
          "type": "string",
          "example": "folder",
          "description": "`folder`"
        }
      },
      "description": "Represent the folder the policy is applied to."
    },
    "templateKey": {
      "type": "string",
      "example": "productInfo",
      "description": "The key of the template that is cascaded down to the folder's\nchildren.\n\nIn many cases the template key is automatically derived\nof its display name, for example `Contract Template` would\nbecome `contractTemplate`. In some cases the creator of the\ntemplate will have provided its own template key.\n\nPlease [list the templates for an enterprise][list], or\nget all instances on a [file][file] or [folder][folder]\nto inspect a template's key.\n\n[list]: e://get-metadata-templates-enterprise\n[file]: e://get-files-id-metadata\n[folder]: e://get-folders-id-metadata"
    },
    "owner_enterprise": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "690678",
          "description": "The ID of the enterprise that owns the policy."
        },
        "type": {
          "enum": [
            "enterprise"
          ],
          "type": "string",
          "example": "enterprise",
          "description": "`enterprise`"
        }
      },
      "description": "The enterprise that owns this policy."
    }
  },
  "description": "A metadata cascade policy automatically applies a metadata template instance\nto all the files and folders within the targeted folder.",
  "x-box-resource-id": "metadata_cascade_policy"
}
object MetadataFieldFilterDateRange
{
  "type": "object",
  "title": "Metadata field filter (date range)",
  "example": {
    "expirationDate": {
      "gt": "2016-08-01T00:00:00Z",
      "lt": "2017-08-01T00:00:00Z"
    }
  },
  "description": "Specifies which `date` field on the template to filter the search\nresults by, specifying a range of dates that can match.",
  "x-box-resource-id": "metadata_field_filter_date_range",
  "additionalProperties": {
    "type": "object",
    "example": {
      "gt": "2016-08-01T00:00:00Z",
      "lt": "2017-08-01T00:00:00Z"
    },
    "properties": {
      "gt": {
        "type": "string",
        "format": "date-time",
        "example": "2016-08-01T00:00:00Z",
        "description": "Specifies the (inclusive) lower bound for the metadata field\nvalue. The value of a field must be greater than (`gt`) or\nequal to this value for the search query to match this\ntemplate."
      },
      "lt": {
        "type": "string",
        "format": "date-time",
        "example": "2017-08-01T00:00:00Z",
        "description": "Specifies the (inclusive) upper bound for the metadata field\nvalue. The value of a field must be lower than (`lt`) or\nequal to this value for the search query to match this\ntemplate."
      }
    },
    "description": "Match a `date` metadata field to a range of values.",
    "x-box-example-key": "expirationDate"
  }
}
object MetadataFieldFilterFloat
{
  "type": "object",
  "title": "Metadata field filter (float)",
  "example": {
    "contractValue": 10000
  },
  "description": "Specifies which `float` field on the template to filter the search\nresults by.",
  "x-box-resource-id": "metadata_field_filter_float",
  "additionalProperties": {
    "type": "number",
    "example": 10000,
    "description": "A mapping between a metadata `float` field key and\nthe value to match search results on.",
    "x-box-example-key": "contractValue"
  }
}
object MetadataFieldFilterFloatRange
{
  "type": "object",
  "title": "Metadata field filter (float range)",
  "example": {
    "contractValue": {
      "gt": 100000,
      "lt": 200000
    }
  },
  "description": "Specifies which `float` field on the template to filter the search\nresults by, specifying a range of values that can match.",
  "x-box-resource-id": "metadata_field_filter_float_range",
  "additionalProperties": {
    "type": "object",
    "example": {
      "gt": 100000,
      "lt": 200000
    },
    "properties": {
      "gt": {
        "type": "number",
        "example": 100000,
        "description": "Specifies the (inclusive) lower bound for the metadata field\nvalue. The value of a field must be greater than (`gt`) or\nequal to this value for the search query to match this\ntemplate."
      },
      "lt": {
        "type": "number",
        "example": 200000,
        "description": "Specifies the (inclusive) upper bound for the metadata field\nvalue. The value of a field must be lower than (`lt`) or\nequal to this value for the search query to match this\ntemplate."
      }
    },
    "description": "Specifies which `float` field on the template to filter the search\nresults by, specifying a range of values that can match.",
    "x-box-example-key": "value"
  }
}
object MetadataFieldFilterMultiSelect
{
  "type": "object",
  "title": "Metadata field filter (multi-select)",
  "example": {
    "category": [
      "online",
      "enterprise"
    ]
  },
  "description": "Specifies the values to match for a `multiSelect` metadata\nfield. When performing a search, the query will essentially\nperform an `OR` operation to match any template where any of\nthe provided values match this field.",
  "x-box-resource-id": "metadata_field_filter_multi_select",
  "additionalProperties": {
    "type": "array",
    "items": {
      "type": "string"
    },
    "example": [
      "online",
      "enterprise"
    ],
    "description": "A mapping between a metadata `multiSelect` field key and\nthe one or more values to match search results on.\n\nWhen performing a search, the query will essentially\nperform an `OR` operation to match any template where any of\nthe provided values match this field.",
    "x-box-example-key": "category"
  }
}
object MetadataFieldFilterString
{
  "type": "object",
  "title": "Metadata field filter (string)",
  "example": {
    "category": "online"
  },
  "description": "Specifies which text field on the template to filter the search\nresults by.",
  "x-box-resource-id": "metadata_field_filter_string",
  "additionalProperties": {
    "type": "string",
    "example": "online",
    "description": "A mapping between a metadata `string` field key and\nthe value to match search results on.",
    "x-box-example-key": "category"
  }
}
object MetadataFilter
{
  "type": "object",
  "title": "Metadata filter",
  "x-box-tag": "search",
  "properties": {
    "scope": {
      "enum": [
        "global",
        "enterprise",
        "enterprise_{enterprise_id}"
      ],
      "type": "string",
      "example": "enterprise",
      "description": "Specifies the scope of the template to filter search results by.\n\nThis will be `enterprise_{enterprise_id}` for templates defined\nfor use in this enterprise, and `global` for general templates\nthat are available to all enterprises using Box."
    },
    "filters": {
      "allOf": [
        {
          "anyOf": [
            {
              "$ref": "#/components/schemas/MetadataFieldFilterString"
            },
            {
              "$ref": "#/components/schemas/MetadataFieldFilterFloat"
            },
            {
              "$ref": "#/components/schemas/MetadataFieldFilterMultiSelect"
            },
            {
              "$ref": "#/components/schemas/MetadataFieldFilterFloatRange"
            },
            {
              "$ref": "#/components/schemas/MetadataFieldFilterDateRange"
            }
          ]
        },
        {
          "description": "Specifies which fields on the template to filter the search\nresults by. When more than one field is specified, the query\nperforms a logical `AND` to ensure that the instance of the\ntemplate matches each of the fields specified."
        },
        {
          "example": {
            "category": "online",
            "contractValue": 1000000
          }
        }
      ]
    },
    "templateKey": {
      "type": "string",
      "example": "contract",
      "description": "The key of the template to filter search results by.\n\nIn many cases the template key is automatically derived\nof its display name, for example `Contract Template` would\nbecome `contractTemplate`. In some cases the creator of the\ntemplate will have provided its own template key.\n\nPlease [list the templates for an enterprise][list], or\nget all instances on a [file][file] or [folder][folder]\nto inspect a template's key.\n\n[list]: e://get-metadata-templates-enterprise\n[file]: e://get-files-id-metadata\n[folder]: e://get-folders-id-metadata"
    }
  },
  "description": "A metadata template to filter the search results by.",
  "x-box-resource-id": "metadata_filter"
}
object MetadataInstancesFilesApplyTemplateRequest
{
  "type": "object",
  "example": {
    "name": "Aaron Levie"
  },
  "x-box-example-key": "name",
  "additionalProperties": {
    "allOf": [
      {},
      {
        "example": "Aaron Levie"
      },
      {
        "description": "A value for each of the fields that are present\non the metadata template.\nFor the `global.properties` template this can be\na list of zero or more fields,\nas this template allows for any generic key-value pairs \nto be stored stored in the template."
      }
    ]
  }
}
array MetadataInstancesFilesUpdateInstanceOnFileRequest
{
  "type": "array",
  "items": {
    "type": "object",
    "title": "A metadata instance update operation",
    "properties": {
      "op": {
        "enum": [
          "add",
          "replace",
          "remove",
          "test",
          "move",
          "copy"
        ],
        "type": "string",
        "example": "add",
        "description": "The type of change to perform on the template. Some\nof these are hazardous as they will change existing templates."
      },
      "from": {
        "type": "string",
        "example": "/nextState",
        "description": "The location in the metadata JSON object to move or copy a value\nfrom. Required for `move` or `copy` operations and must be in the\nformat of a [JSON-Pointer](https://tools.ietf.org/html/rfc6901)."
      },
      "path": {
        "type": "string",
        "example": "/currentState",
        "description": "The location in the metadata JSON object\nto apply the changes to, in the format of a\n[JSON-Pointer](https://tools.ietf.org/html/rfc6901).\n\nThe path must always be prefixed with a `/` to represent the root\nof the template. The characters `~` and `/` are reserved\ncharacters and must be escaped in the key."
      },
      "value": {
        "type": "string",
        "example": "reviewed",
        "description": "The value to be set or tested.\n\nRequired for `add`, `replace`, and `test` operations. For `add`,\nif the value exists already the previous value will be overwritten\nby the new value. For `replace`, the value must exist before\nreplacing.\n\nFor `test`, the existing value at the `path` location must match\nthe specified value."
      }
    },
    "description": "A [JSON-Patch](https://tools.ietf.org/html/rfc6902) operation for a\nchange to make to the metadata instance."
  },
  "description": "A [JSON-Patch](https://tools.ietf.org/html/rfc6902)\nspecification for the changes to make to the metadata\ninstance.\n\nThe changes are represented as a JSON array of\noperation objects."
}
object MetadataInstancesFoldersApplyTemplateRequest
{
  "type": "object",
  "example": {
    "name": "Aaron Levie"
  },
  "x-box-example-key": "name",
  "additionalProperties": {
    "allOf": [
      {},
      {
        "example": "Aaron Levie"
      },
      {
        "description": "A value for each of the fields that are present on the metadata\ntemplate.\nFor the `global.properties` template this can be a list of zero\nor more fields, as this template allows for any generic key-value\npairs to be stored in the template."
      }
    ]
  }
}
array MetadataInstancesFoldersUpdateInstanceOnFolderRequest
{
  "type": "array",
  "items": {
    "type": "object",
    "title": "A metadata instance update operation",
    "properties": {
      "op": {
        "enum": [
          "add",
          "replace",
          "remove",
          "test",
          "move",
          "copy"
        ],
        "type": "string",
        "example": "add",
        "description": "The type of change to perform on the template. Some\nof these are hazardous as they will change existing templates."
      },
      "from": {
        "type": "string",
        "example": "/nextState",
        "description": "The location in the metadata JSON object to move or copy a value\nfrom. Required for `move` or `copy` operations and must be in the\nformat of a [JSON-Pointer](https://tools.ietf.org/html/rfc6901)."
      },
      "path": {
        "type": "string",
        "example": "/currentState",
        "description": "The location in the metadata JSON object\nto apply the changes to, in the format of a\n[JSON-Pointer](https://tools.ietf.org/html/rfc6901).\n\nThe path must always be prefixed with a `/` to represent the root\nof the template. The characters `~` and `/` are reserved\ncharacters and must be escaped in the key."
      },
      "value": {
        "type": "string",
        "example": "reviewed",
        "description": "The value to be set or tested.\n\nRequired for `add`, `replace`, and `test` operations. For `add`,\nif the value exists already the previous value will be overwritten\nby the new value. For `replace`, the value must exist before\nreplacing.\n\nFor `test`, the existing value at the `path` location must match\nthe specified value."
      }
    },
    "description": "A [JSON-Patch](https://tools.ietf.org/html/rfc6902) operation for a\nchange to make to the metadata instance."
  },
  "description": "A [JSON-Patch](https://tools.ietf.org/html/rfc6902)\nspecification for the changes to make to the metadata\ninstance.\n\nThe changes are represented as a JSON array of\noperation objects."
}
object MetadataQuery
{
  "type": "object",
  "title": "Metadata query search request",
  "required": [
    "from",
    "ancestor_folder_id"
  ],
  "properties": {
    "from": {
      "type": "string",
      "example": "enterprise_123456.someTemplate",
      "description": "Specifies the template used in the query. Must be in the form\n`scope.templateKey`. Not all templates can be used in this field,\nmost notably the built-in, Box-provided classification templates\ncan not be used in a query."
    },
    "limit": {
      "type": "integer",
      "default": 100,
      "example": 50,
      "maximum": 100,
      "minimum": 0,
      "description": "A value between 0 and 100 that indicates the maximum number of results\nto return for a single request. This only specifies a maximum\nboundary and will not guarantee the minimum number of results\nreturned."
    },
    "query": {
      "type": "string",
      "example": "value >= :amount",
      "description": "The query to perform. A query is a logical expression that is very similar\nto a SQL `SELECT` statement. Values in the search query can be turned into\nparameters specified in the `query_param` arguments list to prevent having\nto manually insert search values into the query string.\n\nFor example, a value of `:amount` would represent the `amount` value in\n`query_params` object."
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "extension",
        "created_at",
        "item_status",
        "metadata.enterprise_1234.contracts",
        "metadata.enterprise_1234.regions.location"
      ],
      "description": "By default, this endpoint returns only the most basic info about the items for\nwhich the query matches. This attribute can be used to specify a list of\nadditional attributes to return for any item, including its metadata.\n\nThis attribute takes a list of item fields, metadata template identifiers,\nor metadata template field identifiers.\n\nFor example:\n\n* `created_by` will add the details of the user who created the item to\nthe response.\n* `metadata.<scope>.<templateKey>` will return the mini-representation\nof the metadata instance identified by the `scope` and `templateKey`.\n* `metadata.<scope>.<templateKey>.<field>` will return all the mini-representation\nof the metadata instance identified by the `scope` and `templateKey` plus\nthe field specified by the `field` name. Multiple fields for the same\n`scope` and `templateKey` can be defined."
    },
    "marker": {
      "type": "string",
      "example": "AAAAAmVYB1FWec8GH6yWu2nwmanfMh07IyYInaa7DZDYjgO1H4KoLW29vPlLY173OKsci6h6xGh61gG73gnaxoS+o0BbI1/h6le6cikjlupVhASwJ2Cj0tOD9wlnrUMHHw3/ISf+uuACzrOMhN6d5fYrbidPzS6MdhJOejuYlvsg4tcBYzjauP3+VU51p77HFAIuObnJT0ff",
      "description": "Marker to use for requesting the next page."
    },
    "order_by": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "direction": {
            "enum": [
              "ASC",
              "DESC",
              "asc",
              "desc"
            ],
            "type": "string",
            "example": "asc",
            "description": "The direction to order by, either ascending or descending.\n\nThe `ordering` direction must be the same for each item in the\narray."
          },
          "field_key": {
            "type": "string",
            "example": "amount",
            "description": "The metadata template field to order by.\n\nThe `field_key` represents the `key` value of a field from the\nmetadata template being searched for."
          }
        },
        "description": "An object representing one of the metadata template fields to sort the\nmetadata query results by."
      },
      "description": "A list of template fields and directions to sort the metadata query\nresults by.\n\nThe ordering `direction` must be the same for each item in the array."
    },
    "query_params": {
      "type": "object",
      "example": {
        "amount": "100"
      },
      "description": "Set of arguments corresponding to the parameters specified in the\n`query`. The type of each parameter used in the `query_params` must match\nthe type of the corresponding metadata template field.",
      "additionalProperties": {
        "type": "string",
        "example": "100",
        "description": "The value for the argument being used in the metadata search.\n\nThe type of this parameter must match the type of the corresponding\nmetadata template field.",
        "x-box-example-key": "amount"
      }
    },
    "ancestor_folder_id": {
      "type": "string",
      "example": "0",
      "description": "The ID of the folder that you are restricting the query to. A\nvalue of zero will return results from all folders you have access\nto. A non-zero value will only return results found in the folder\ncorresponding to the ID or in any of its subfolders."
    }
  },
  "description": "Create a search using SQL-like syntax to return items that match specific\nmetadata."
}
object MetadataQueryIndex
{
  "type": "object",
  "title": "Metadata query index",
  "required": [
    "type",
    "status"
  ],
  "x-box-tag": "search",
  "properties": {
    "id": {
      "type": "string",
      "example": "-9876",
      "description": "The ID of the metadata query index."
    },
    "type": {
      "type": "string",
      "example": "metadata_query_index",
      "nullable": false,
      "description": "Value is always `metadata_query_index`"
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "object",
        "allOf": [
          {
            "properties": {
              "key": {
                "type": "string",
                "example": "vendor name",
                "description": "The metadata template field key."
              },
              "sort_direction": {
                "enum": [
                  "asc",
                  "desc"
                ],
                "type": "string",
                "example": "asc",
                "description": "The sort direction of the field."
              }
            }
          }
        ],
        "description": "The field which makes up the index."
      },
      "description": "A list of template fields which make up the index."
    },
    "status": {
      "enum": [
        "building",
        "active",
        "disabled"
      ],
      "type": "string",
      "example": "active",
      "nullable": false,
      "description": "The status of the metadata query index"
    }
  },
  "description": "A metadata query index",
  "x-box-resource-id": "metadata_query_index"
}
object MetadataQueryResults
{
  "type": "object",
  "title": "Metadata query search results",
  "x-box-tag": "search",
  "properties": {
    "limit": {
      "type": "integer",
      "format": "int64",
      "default": 100,
      "example": 100,
      "description": "The limit that was used for this search. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed."
    },
    "entries": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/File"
          },
          {
            "$ref": "#/components/schemas/Folder"
          }
        ]
      },
      "description": "The mini representation of the files and folders that match the search\nterms.\n\nBy default, this endpoint returns only the most basic info about the\nitems. To get additional fields for each item, including any of the\nmetadata, use the `fields` attribute in the query.",
      "x-box-resource-variant": 1
    },
    "next_marker": {
      "type": "string",
      "example": "0!-M7487OpVfBTNBV-XsQjU50gQFlbFFu5nArMWD7Ck61GH_Qo40M1S2xN5zWZPBzEjaQS1SOjJiQoo5BsXEl1bCVLRZ2pTqo4SKp9tyqzWQK2L51KR_nC1EgF5I_TJSFw7uO2Bx4HweGETOjh5_2oPSWw5iMkM-OvGApeR0lGFO48FDKoyzJyLgz5aogxoKd8VE09CesOOnTnmZvrW0puylDc-hFjY5YLmWFBKox3SOWiSDwKFkmZGNHyjEzza1nSwbZg6CYsAdGsDwGJhuCeTNsFzP5Mo5qx9wMloS0lSPuf2CcBInbIJzl2CKlXF3FvqhANttpm2nzdBTQRSoJyJnjVBpf4Q_HjV2eb4KIZBBlLy067UCVdv2AAWQFd5E2i6s1YiGRTtgMEZntOSUYD4IYLMWWm5Ra7ke_SP32SL3GSjbBQYIyCVQ..",
      "description": "The marker for the start of the next page of results."
    }
  },
  "description": "A page of files and folders that matched the metadata query.",
  "x-box-resource-id": "metadata_query_results"
}
object MetadataTemplate
{
  "type": "object",
  "title": "Metadata template",
  "required": [
    "type",
    "id"
  ],
  "x-box-tag": "metadata_templates",
  "properties": {
    "id": {
      "type": "string",
      "example": "58063d82-4128-7b43-bba9-92f706befcdf",
      "description": "The ID of the metadata template."
    },
    "type": {
      "enum": [
        "metadata_template"
      ],
      "type": "string",
      "example": "metadata_template",
      "nullable": false,
      "description": "`metadata_template`"
    },
    "scope": {
      "type": "string",
      "example": "enterprise_123456",
      "description": "The scope of the metadata template can either be `global` or\n`enterprise_*`. The `global` scope is used for templates that are\navailable to any Box enterprise. The `enterprise_*` scope represents\ntemplates that have been created within a specific enterprise, where `*`\nwill be the ID of that enterprise."
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "object",
        "allOf": [
          {
            "type": "object",
            "title": "Metadata Field (Read)",
            "required": [
              "type",
              "key",
              "displayName"
            ],
            "properties": {
              "key": {
                "type": "string",
                "example": "category",
                "maxLength": 256,
                "description": "A unique identifier for the field. The identifier must\nbe unique within the template to which it belongs."
              },
              "type": {
                "enum": [
                  "string",
                  "float",
                  "date",
                  "enum",
                  "multiSelect",
                  "integer"
                ],
                "type": "string",
                "example": "string",
                "description": "The type of field. The basic fields are a `string` field for text, a\n`float` field for numbers, and a `date` fields to present the user with a\ndate-time picker.\n\nAdditionally, metadata templates support an `enum` field for a basic list\nof items, and ` multiSelect` field for a similar list of items where the\nuser can select more than one value.\n\n**Note**: The `integer` value is deprecated.\nIt is still present in the response,\nbut cannot be used in the POST request."
              },
              "hidden": {
                "type": "boolean",
                "example": true,
                "description": "Whether this field is hidden in the UI for the user and can only be set\nthrough the API instead."
              },
              "options": {
                "type": "array",
                "items": {
                  "type": "object",
                  "title": "Metadata Option (Write)",
                  "required": [
                    "key"
                  ],
                  "properties": {
                    "key": {
                      "type": "string",
                      "example": "Category 1",
                      "description": "The text value of the option. This represents both the display name of the\noption and the internal key used when updating templates."
                    }
                  },
                  "description": "An option for a Metadata Template Field.\n\nOptions only need to be provided for fields of type `enum` and `multiSelect`.\nOptions represent the value(s) a user can select for the field either through\nthe UI or through the API."
                },
                "description": "A list of options for this field. This is used in combination with the\n`enum` and `multiSelect` field types."
              },
              "description": {
                "type": "string",
                "example": "The category",
                "maxLength": 4096,
                "description": "A description of the field. This is not shown to the user."
              },
              "displayName": {
                "type": "string",
                "example": "Category",
                "maxLength": 4096,
                "description": "The display name of the field as it is shown to the user in the web and\nmobile apps."
              }
            },
            "description": "A field within a metadata template. Fields can be a basic text, date, or\nnumber field, or a list of options."
          },
          {
            "properties": {
              "id": {
                "type": "string",
                "example": "822227e0-47a5-921b-88a8-494760b2e6d2",
                "description": "The unique ID of the metadata template field."
              },
              "options": {
                "type": "array",
                "items": {
                  "type": "object",
                  "allOf": [
                    {
                      "type": "object",
                      "title": "Metadata Option (Write)",
                      "required": [
                        "key"
                      ],
                      "properties": {
                        "key": {
                          "type": "string",
                          "example": "Category 1",
                          "description": "The text value of the option. This represents both the display name of the\noption and the internal key used when updating templates."
                        }
                      },
                      "description": "An option for a Metadata Template Field.\n\nOptions only need to be provided for fields of type `enum` and `multiSelect`.\nOptions represent the value(s) a user can select for the field either through\nthe UI or through the API."
                    },
                    {
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "45dc2849-a4a7-40a9-a751-4a699a589190",
                          "description": "The internal unique identifier of the the option."
                        }
                      }
                    }
                  ],
                  "description": "An option for a Metadata Template Field.\n\nOptions are only present for fields of type `enum` and\n`multiSelect`. Options represent the value(s) a user can\nselect for the field either through the UI or through the API."
                },
                "description": "A list of options for this field. This is used in combination\nwith the `enum` and `multiSelect` field types."
              }
            }
          }
        ],
        "description": "A field within a metadata template. Fields can be a basic text, date, or\nnumber field, or a list of options."
      },
      "description": "An ordered list of template fields which are part of the template. Each\nfield can be a regular text field, date field, number field, as well as a\nsingle or multi-select list."
    },
    "hidden": {
      "type": "boolean",
      "example": true,
      "description": "Defines if this template is visible in the Box web app UI, or if\nit is purely intended for usage through the API."
    },
    "displayName": {
      "type": "string",
      "example": "Product Info",
      "maxLength": 4096,
      "description": "The display name of the template. This can be seen in the Box web app\nand mobile apps."
    },
    "templateKey": {
      "type": "string",
      "example": "productInfo",
      "pattern": "^[a-zA-Z_][-a-zA-Z0-9_]*$",
      "maxLength": 64,
      "description": "A unique identifier for the template. This identifier is unique across\nthe `scope` of the enterprise to which the metadata template is being\napplied, yet is not necessarily unique across different enterprises."
    },
    "copyInstanceOnItemCopy": {
      "type": "boolean",
      "example": true,
      "description": "Whether or not to include the metadata when a file or folder is copied."
    }
  },
  "description": "A template for metadata that can be applied to files and folders",
  "x-box-resource-id": "metadata_template"
}
object MetadataTemplates
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        },
        "prev_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVih",
          "nullable": true,
          "description": "The marker for the start of the previous page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/MetadataTemplate"
          },
          "description": "A list of metadata templates"
        }
      }
    }
  ],
  "title": "Metadata templates",
  "x-box-tag": "metadata_templates",
  "description": "A list of metadata templates",
  "x-box-resource-id": "metadata_templates"
}
object MetadataTemplatesCreateNewTemplateRequest
{
  "type": "object",
  "required": [
    "scope",
    "displayName"
  ],
  "properties": {
    "scope": {
      "type": "string",
      "example": "enterprise",
      "description": "The scope of the metadata template to create. Applications can\nonly create templates for use within the authenticated user's\nenterprise.\n\nThis value needs to be set to `enterprise`, as `global` scopes can\nnot be created by applications."
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "object",
        "title": "Metadata Field (Write)",
        "required": [
          "type",
          "key",
          "displayName"
        ],
        "properties": {
          "key": {
            "type": "string",
            "example": "category",
            "maxLength": 256,
            "description": "A unique identifier for the field. The identifier must\nbe unique within the template to which it belongs."
          },
          "type": {
            "enum": [
              "string",
              "float",
              "date",
              "enum",
              "multiSelect"
            ],
            "type": "string",
            "example": "string",
            "description": "The type of field. The basic fields are a `string` field for text, a\n`float` field for numbers, and a `date` fields to present the user with a\ndate-time picker.\n\nAdditionally, metadata templates support an `enum` field for a basic list\nof items, and ` multiSelect` field for a similar list of items where the\nuser can select more than one value."
          },
          "hidden": {
            "type": "boolean",
            "example": true,
            "description": "Whether this field is hidden in the UI for the user and can only be set\nthrough the API instead."
          },
          "options": {
            "type": "array",
            "items": {
              "type": "object",
              "title": "Metadata Option (Write)",
              "required": [
                "key"
              ],
              "properties": {
                "key": {
                  "type": "string",
                  "example": "Category 1",
                  "description": "The text value of the option. This represents both the display name of the\noption and the internal key used when updating templates."
                }
              },
              "description": "An option for a Metadata Template Field.\n\nOptions only need to be provided for fields of type `enum` and `multiSelect`.\nOptions represent the value(s) a user can select for the field either through\nthe UI or through the API."
            },
            "description": "A list of options for this field. This is used in combination with the\n`enum` and `multiSelect` field types."
          },
          "description": {
            "type": "string",
            "example": "The category",
            "maxLength": 4096,
            "description": "A description of the field. This is not shown to the user."
          },
          "displayName": {
            "type": "string",
            "example": "Category",
            "maxLength": 4096,
            "description": "The display name of the field as it is shown to the user in the web and\nmobile apps."
          }
        },
        "description": "A field within a metadata template. Fields can be a basic text, date, or\nnumber field, or a list of options."
      },
      "description": "An ordered list of template fields which are part of the template.\nEach field can be a regular text field, date field, number field,\nas well as a single or multi-select list."
    },
    "hidden": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "Defines if this template is visible in the Box web app UI, or if\nit is purely intended for usage through the API."
    },
    "displayName": {
      "type": "string",
      "example": "Product Info",
      "maxLength": 4096,
      "description": "The display name of the template."
    },
    "templateKey": {
      "type": "string",
      "example": "productInfo",
      "pattern": "^[a-zA-Z_][-a-zA-Z0-9_]*$",
      "maxLength": 64,
      "description": "A unique identifier for the template. This identifier needs to be\nunique across the enterprise for which the metadata template is\nbeing created.\n\nWhen not provided, the API will create a unique `templateKey`\nbased on the value of the `displayName`."
    },
    "copyInstanceOnItemCopy": {
      "type": "boolean",
      "default": false,
      "example": true,
      "description": "Whether or not to copy any metadata attached to a file or folder\nwhen it is copied. By default, metadata is not copied along with a\nfile or folder when it is copied."
    }
  }
}
array MetadataTemplatesUpdateSchemaRequest
{
  "type": "array",
  "items": {
    "type": "object",
    "title": "A metadata template update operation",
    "required": [
      "op"
    ],
    "properties": {
      "op": {
        "enum": [
          "editTemplate",
          "addField",
          "reorderFields",
          "addEnumOption",
          "reorderEnumOptions",
          "reorderMultiSelectOptions",
          "addMultiSelectOption",
          "editField",
          "removeField",
          "editEnumOption",
          "removeEnumOption",
          "editMultiSelectOption",
          "removeMultiSelectOption"
        ],
        "type": "string",
        "example": "addEnumOption",
        "description": "The type of change to perform on the template. Some\nof these are hazardous as they will change existing templates."
      },
      "data": {
        "type": "object",
        "example": {
          "name": "Aaron Levie"
        },
        "description": "The data for the operation. This will vary depending on the\noperation being performed.",
        "additionalProperties": {
          "allOf": [
            {},
            {
              "example": "Aaron Levie"
            },
            {
              "description": "A value for each of the fields that are present\non the metadata template.\nFor the `global.properties` template this can be\na list of zero or more fields,\nas this template allows for any generic key-value pairs \nto be stored stored in the template."
            }
          ],
          "x-box-example-key": "name"
        }
      },
      "fieldKey": {
        "type": "string",
        "example": "category",
        "description": "For operations that affect a single field this defines the key of\nthe field that is affected."
      },
      "fieldKeys": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "example": [
          "category",
          "name"
        ],
        "description": "For operations that affect multiple fields this defines the keys\nof the fields that are affected."
      },
      "enumOptionKey": {
        "type": "string",
        "example": "option1",
        "description": "For operations that affect a single `enum` option this defines\nthe key of the option that is affected."
      },
      "enumOptionKeys": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "example": [
          "option1",
          "option2",
          "option3"
        ],
        "description": "For operations that affect multiple `enum` options this defines\nthe keys of the options that are affected."
      },
      "multiSelectOptionKey": {
        "type": "string",
        "example": "option1",
        "description": "For operations that affect a single multi select option this\ndefines the key of the option that is affected."
      },
      "multiSelectOptionKeys": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "example": [
          "option1",
          "option2",
          "option3"
        ],
        "description": "For operations that affect multiple multi select options this\ndefines the keys of the options that are affected."
      }
    },
    "description": "A [JSON-Patch](https://tools.ietf.org/html/rfc6902) operation for a\nchange to make to the metadata instance."
  },
  "description": "A [JSON-Patch](https://tools.ietf.org/html/rfc6902)\nspecification for the changes to make to the metadata\ntemplate.\n\nThe changes are represented as a JSON array of\noperation objects."
}
object Metadatas
{
  "type": "object",
  "title": "Metadata instances",
  "x-box-tag": "file_metadata",
  "properties": {
    "limit": {
      "type": "integer",
      "example": 100,
      "description": "The limit that was used for this page of results."
    },
    "entries": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Metadata--Base"
      },
      "description": "A list of metadata instances, as applied to this file or folder."
    }
  },
  "description": "A list of metadata instances that have been applied to a file or folder.",
  "x-box-resource-id": "metadatas"
}
object OAuth2Error
{
  "type": "object",
  "title": "OAuth 2.0 error",
  "x-box-tag": "authorization",
  "properties": {
    "error": {
      "type": "string",
      "example": "invalid_client",
      "description": "The type of the error returned."
    },
    "error_description": {
      "type": "string",
      "example": "The client credentials are not valid",
      "description": "The type of the error returned."
    }
  },
  "description": "An OAuth 2.0 error",
  "x-box-resource-id": "oauth2_error"
}
object Outcome
{
  "type": "object",
  "title": "Outcome",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "17363629",
      "description": "ID of a specific outcome"
    },
    "role": {
      "allOf": [
        {
          "$ref": "#/components/schemas/RoleVariable"
        },
        {
          "description": "Determines if the\nworkflow outcome\naffects a specific\ncollaborator role."
        }
      ]
    },
    "collaborators": {
      "allOf": [
        {
          "$ref": "#/components/schemas/CollaboratorVariable"
        },
        {
          "description": "Lists collaborators\naffected by the workflow\nresult."
        }
      ]
    },
    "completion_rule": {
      "allOf": [
        {
          "$ref": "#/components/schemas/CompletionRuleVariable"
        },
        {
          "description": "Determines\nif an action should be completed\nby all or any assignees."
        }
      ]
    },
    "task_collaborators": {
      "allOf": [
        {
          "$ref": "#/components/schemas/CollaboratorVariable"
        },
        {
          "description": "Lists collaborators\naffected by the task workflow\nresult."
        }
      ]
    },
    "file_collaborator_role": {
      "allOf": [
        {
          "$ref": "#/components/schemas/RoleVariable"
        },
        {
          "description": "Determines if the\nworkflow outcome for\na file\naffects a specific\ncollaborator role."
        }
      ]
    }
  },
  "description": "An instance of an outcome."
}
object PostCollaborationsRequest
{
  "type": "object",
  "required": [
    "item",
    "accessible_by",
    "role"
  ],
  "properties": {
    "item": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "11446498",
          "description": "The ID of the item that will be granted access to"
        },
        "type": {
          "enum": [
            "file",
            "folder"
          ],
          "type": "string",
          "example": "file",
          "description": "The type of the item that this collaboration will be\ngranted access to"
        }
      },
      "description": "The item to attach the comment to."
    },
    "role": {
      "enum": [
        "editor",
        "viewer",
        "previewer",
        "uploader",
        "previewer uploader",
        "viewer uploader",
        "co-owner"
      ],
      "type": "string",
      "example": "editor",
      "description": "The level of access granted."
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "example": "2019-08-29T23:59:00-07:00",
      "description": "Set the expiration date for the collaboration. At this date, the\ncollaboration will be automatically removed from the item.\n\nThis feature will only work if the **Automatically remove invited\ncollaborators: Allow folder owners to extend the expiry date**\nsetting has been enabled in the **Enterprise Settings**\nof the **Admin Console**. When the setting is not enabled,\ncollaborations can not have an expiry date and a value for this\nfield will be result in an error."
    },
    "accessible_by": {
      "type": "object",
      "required": [
        "type"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "23522323",
          "description": "The ID of the user or group.\n\nAlternatively, use `login` to specify a user by email\naddress."
        },
        "type": {
          "enum": [
            "user",
            "group"
          ],
          "type": "string",
          "example": "user",
          "description": "The type of collaborator to invite."
        },
        "login": {
          "type": "string",
          "example": "john@example.com",
          "description": "The email address of the user to grant access to the item.\n\nAlternatively, use `id` to specify a user by user ID."
        }
      },
      "description": "The user or group to give access to the item."
    },
    "can_view_path": {
      "type": "boolean",
      "example": true,
      "description": "Determines if the invited users can see the entire parent path to\nthe associated folder. The user will not gain privileges in any\nparent folder and therefore can not see content the user is not\ncollaborated on.\n\nBe aware that this meaningfully increases the time required to load the\ninvitee's **All Files** page. We recommend you limit the number of\ncollaborations with `can_view_path` enabled to 1,000 per user.\n\nOnly owner or co-owners can invite collaborators with a `can_view_path` of\n`true`.\n\n`can_view_path` can only be used for folder collaborations."
    },
    "is_access_only": {
      "type": "boolean",
      "example": true,
      "description": "If set to `true`, collaborators have access to\nshared items, but such items won't be visible in the\nAll Files list. Additionally, collaborators won't\nsee the the path to the root folder for the\nshared item."
    }
  }
}
object PostCommentsRequest
{
  "type": "object",
  "required": [
    "message",
    "item"
  ],
  "properties": {
    "item": {
      "type": "object",
      "required": [
        "id",
        "type"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "11446498",
          "description": "The ID of the item"
        },
        "type": {
          "enum": [
            "file",
            "comment"
          ],
          "type": "string",
          "example": "file",
          "description": "The type of the item that this comment will be placed on."
        }
      },
      "description": "The item to attach the comment to."
    },
    "message": {
      "type": "string",
      "example": "Review completed!",
      "description": "The text of the comment.\n\nTo mention a user, use the `tagged_message`\nparameter instead."
    },
    "tagged_message": {
      "type": "string",
      "example": "@[1234:John] Review completed!",
      "description": "The text of the comment, including `@[user_id:name]`\nsomewhere in the message to mention another user, which\nwill send them an email notification, letting them know\nthey have been mentioned.\n\nThe `user_id` is the target user's ID, where the `name`\ncan be any custom phrase. In the Box UI this name will\nlink to the user's profile.\n\nIf you are not mentioning another user, use `message`\ninstead."
    }
  }
}
object PostFoldersRequest
{
  "type": "object",
  "required": [
    "name",
    "parent"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "New Folder",
      "maxLength": 255,
      "minLength": 1,
      "description": "The name for the new folder.\n\nThere are some restrictions to the file name. Names containing\nnon-printable ASCII characters, forward and backward slashes\n(`/`, `\\`), as well as names with trailing spaces are\nprohibited.\n\nAdditionally, the names `.` and `..` are\nnot allowed either."
    },
    "parent": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "0",
          "description": "The ID of parent folder"
        }
      },
      "description": "The parent folder to create the new folder within."
    },
    "sync_state": {
      "enum": [
        "synced",
        "not_synced",
        "partially_synced"
      ],
      "type": "string",
      "example": "synced",
      "nullable": false,
      "description": "Specifies whether a folder should be synced to a\nuser's device or not. This is used by Box Sync\n(discontinued) and is not used by Box Drive."
    },
    "folder_upload_email": {
      "allOf": [
        {
          "type": "object",
          "title": "Folder upload email",
          "properties": {
            "access": {
              "enum": [
                "open",
                "collaborators"
              ],
              "type": "string",
              "example": "open",
              "nullable": false,
              "description": "When this parameter has been set, users can email files\nto the email address that has been automatically\ncreated for this folder.\n\nTo create an email address, set this property either when\ncreating or updating the folder.\n\nWhen set to `collaborators`, only emails from registered email\naddresses for collaborators will be accepted. This includes\nany email aliases a user might have registered.\n\nWhen set to `open` it will accept emails from any email\naddress."
            }
          },
          "description": "The Write Folder Upload Email object"
        },
        {
          "description": "Setting this object enables the upload email address.\n\nThis email address can be used by users to directly\nupload files directly to the folder via email."
        }
      ]
    }
  }
}
object PostGroupsRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Customer Support",
      "description": "The name of the new group to be created. This name must be unique\nwithin the enterprise."
    },
    "provenance": {
      "type": "string",
      "example": "Active Directory",
      "maxLength": 255,
      "description": "Keeps track of which external source this group is\ncoming, for example `Active Directory`, or `Okta`.\n\nSetting this will also prevent Box admins from editing\nthe group name and its members directly via the Box\nweb application.\n\nThis is desirable for one-way syncing of groups."
    },
    "description": {
      "type": "string",
      "example": "\"Customer Support Group - as imported from Active Directory\"",
      "maxLength": 255,
      "description": "A human readable description of the group."
    },
    "invitability_level": {
      "enum": [
        "admins_only",
        "admins_and_members",
        "all_managed_users"
      ],
      "type": "string",
      "example": "admins_only",
      "description": "Specifies who can invite the group to collaborate\non folders.\n\nWhen set to `admins_only` the enterprise admin, co-admins,\nand the group's admin can invite the group.\n\nWhen set to `admins_and_members` all the admins listed\nabove and group members can invite the group.\n\nWhen set to `all_managed_users` all managed users in the\nenterprise can invite the group."
    },
    "external_sync_identifier": {
      "type": "string",
      "example": "AD:123456",
      "description": "An arbitrary identifier that can be used by\nexternal group sync tools to link this Box Group to\nan external group.\n\nExample values of this field\ncould be an **Active Directory Object ID** or a **Google\nGroup ID**.\n\nWe recommend you use of this field in\norder to avoid issues when group names are updated in\neither Box or external systems."
    },
    "member_viewability_level": {
      "enum": [
        "admins_only",
        "admins_and_members",
        "all_managed_users"
      ],
      "type": "string",
      "example": "admins_only",
      "description": "Specifies who can see the members of the group.\n\n* `admins_only` - the enterprise admin, co-admins, group's\n  group admin\n* `admins_and_members` - all admins and group members\n* `all_managed_users` - all managed users in the\n  enterprise"
    }
  }
}
object PostInvitesRequest
{
  "type": "object",
  "required": [
    "enterprise",
    "actionable_by"
  ],
  "properties": {
    "enterprise": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "1232234",
          "description": "The ID of the enterprise"
        }
      },
      "description": "The enterprise to invite the user to"
    },
    "actionable_by": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "login": {
          "type": "string",
          "example": "john@example.com",
          "description": "The login of the invited user"
        }
      },
      "description": "The user to invite"
    }
  }
}
object PostOAuth2Revoke
{
  "type": "object",
  "title": "Token revocation request",
  "required": [
    "grant_type"
  ],
  "properties": {
    "token": {
      "type": "string",
      "format": "token",
      "example": "n22JPxrh18m4Y0wIZPIqYZK7VRrsMTWW",
      "description": "The access token to revoke."
    },
    "client_id": {
      "type": "string",
      "example": "ly1nj6n11vionaie65emwzk575hnnmrk",
      "description": "The Client ID of the application requesting to revoke the\naccess token."
    },
    "client_secret": {
      "type": "string",
      "example": "hOzsTeFlT6ko0dme22uGbQal04SBPYc1",
      "description": "The client secret of the application requesting to revoke\nan access token."
    }
  },
  "description": "A request to revoke an OAuth 2.0 token"
}
object PostOAuth2Token
{
  "type": "object",
  "title": "Token request",
  "required": [
    "grant_type"
  ],
  "properties": {
    "code": {
      "type": "string",
      "format": "token",
      "example": "n22JPxrh18m4Y0wIZPIqYZK7VRrsMTWW",
      "description": "The client-side authorization code passed to your application by\nBox in the browser redirect after the user has successfully\ngranted your application permission to make API calls on their\nbehalf.\n\nUsed in combination with `authorization_code` as the `grant_type`."
    },
    "scope": {
      "type": "string",
      "format": "space_delimited_list",
      "example": "item_upload item_preview base_explorer",
      "description": "The space-delimited list of scopes that you want apply to the\nnew access token.\n\nThe `subject_token` will need to have all of these scopes or\nthe call will error with **401 Unauthorized**."
    },
    "resource": {
      "type": "string",
      "format": "url",
      "example": "https://api.box.com/2.0/files/123456",
      "description": "Full URL for the file that the token should be generated for."
    },
    "assertion": {
      "type": "string",
      "format": "jwt",
      "example": "xxxxx.yyyyy.zzzzz",
      "description": "A JWT assertion for which to request a new access token.\n\nUsed in combination with `urn:ietf:params:oauth:grant-type:jwt-bearer`\nas the `grant_type`."
    },
    "client_id": {
      "type": "string",
      "example": "ly1nj6n11vionaie65emwzk575hnnmrk",
      "description": "The Client ID of the application requesting an access token.\n\nUsed in combination with `authorization_code`, `client_credentials`, or\n`urn:ietf:params:oauth:grant-type:jwt-bearer` as the `grant_type`."
    },
    "grant_type": {
      "enum": [
        "authorization_code",
        "refresh_token",
        "client_credentials",
        "urn:ietf:params:oauth:grant-type:jwt-bearer",
        "urn:ietf:params:oauth:grant-type:token-exchange"
      ],
      "type": "string",
      "format": "urn",
      "example": "authorization_code",
      "description": "The type of request being made, either using a client-side obtained\nauthorization code, a refresh token, a JWT assertion, client credentials\ngrant or another access token for the purpose of downscoping a token."
    },
    "actor_token": {
      "type": "string",
      "format": "token",
      "example": "c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ",
      "description": "The token used to create an annotator token.\nThis is a JWT assertion.\n\nUsed in combination with `urn:ietf:params:oauth:grant-type:token-exchange`\nas the `grant_type`."
    },
    "client_secret": {
      "type": "string",
      "example": "hOzsTeFlT6ko0dme22uGbQal04SBPYc1",
      "description": "The client secret of the application requesting an access token.\n\nUsed in combination with `authorization_code`, `client_credentials`, or\n`urn:ietf:params:oauth:grant-type:jwt-bearer` as the `grant_type`."
    },
    "refresh_token": {
      "type": "string",
      "format": "token",
      "example": "c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ",
      "description": "A refresh token used to get a new access token with.\n\nUsed in combination with `refresh_token` as the `grant_type`."
    },
    "subject_token": {
      "type": "string",
      "format": "token",
      "example": "c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ",
      "description": "The token to exchange for a downscoped token. This can be a regular\naccess token, a JWT assertion, or an app token.\n\nUsed in combination with `urn:ietf:params:oauth:grant-type:token-exchange`\nas the `grant_type`."
    },
    "box_subject_id": {
      "type": "string",
      "example": "123456789",
      "description": "Used in combination with `client_credentials` as the `grant_type`.\nValue is determined by `box_subject_type`. If `user` use user ID and if\n`enterprise` use enterprise ID."
    },
    "box_shared_link": {
      "type": "string",
      "format": "url",
      "example": "https://cloud.box.com/s/123456",
      "description": "Full URL of the shared link on the file or folder\nthat the token should be generated for."
    },
    "actor_token_type": {
      "enum": [
        "urn:ietf:params:oauth:token-type:id_token"
      ],
      "type": "string",
      "format": "urn",
      "example": "urn:ietf:params:oauth:token-type:id_token",
      "description": "The type of `actor_token` passed in.\n\nUsed in combination with `urn:ietf:params:oauth:grant-type:token-exchange`\nas the `grant_type`."
    },
    "box_subject_type": {
      "enum": [
        "enterprise",
        "user"
      ],
      "type": "string",
      "example": "enterprise",
      "description": "Used in combination with `client_credentials` as the `grant_type`."
    },
    "subject_token_type": {
      "enum": [
        "urn:ietf:params:oauth:token-type:access_token"
      ],
      "type": "string",
      "example": "urn:ietf:params:oauth:token-type:access_token",
      "description": "The type of `subject_token` passed in.\n\nUsed in combination with `urn:ietf:params:oauth:grant-type:token-exchange`\nas the `grant_type`."
    }
  },
  "description": "A request for a new OAuth 2.0 token"
}
object PostOAuth2Token--RefreshAccessToken
{
  "type": "object",
  "title": "Refresh access token",
  "required": [
    "grant_type",
    "client_id",
    "client_secret",
    "refresh_token"
  ],
  "properties": {
    "client_id": {
      "type": "string",
      "example": "ly1nj6n11vionaie65emwzk575hnnmrk",
      "description": "The client ID of the application requesting to refresh the token."
    },
    "grant_type": {
      "enum": [
        "refresh_token"
      ],
      "type": "string",
      "format": "urn",
      "example": "refresh_token",
      "description": "The type of request being made, in this case a refresh request."
    },
    "client_secret": {
      "type": "string",
      "example": "hOzsTeFlT6ko0dme22uGbQal04SBPYc1",
      "description": "The client secret of the application requesting to refresh the token."
    },
    "refresh_token": {
      "type": "string",
      "format": "token",
      "example": "c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ",
      "description": "The refresh token to refresh."
    }
  },
  "description": "A request to refresh an Access Token. Use this API to refresh an expired\nAccess Token using a valid Refresh Token."
}
object PostTasksRequest
{
  "type": "object",
  "required": [
    "item"
  ],
  "properties": {
    "item": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "11446498",
          "description": "The ID of the file"
        },
        "type": {
          "enum": [
            "file"
          ],
          "type": "string",
          "example": "file",
          "description": "`file`"
        }
      },
      "description": "The file to attach the task to."
    },
    "action": {
      "enum": [
        "review",
        "complete"
      ],
      "type": "string",
      "default": "review",
      "example": "review",
      "description": "The action the task assignee will be prompted to do. Must be\n\n* `review` defines an approval task that can be approved or\nrejected\n* `complete` defines a general task which can be completed"
    },
    "due_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "Defines when the task is due. Defaults to `null` if not\nprovided."
    },
    "message": {
      "type": "string",
      "default": "",
      "example": "Please review",
      "description": "An optional message to include with the task."
    },
    "completion_rule": {
      "enum": [
        "all_assignees",
        "any_assignee"
      ],
      "type": "string",
      "default": "all_assignees",
      "example": "all_assignees",
      "description": "Defines which assignees need to complete this task before the task\nis considered completed.\n\n* `all_assignees` (default) requires all assignees to review or\napprove the the task in order for it to be considered completed.\n* `any_assignee` accepts any one assignee to review or\napprove the the task in order for it to be considered completed."
    }
  }
}
object PostUsersRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Aaron Levie",
      "maxLength": 50,
      "description": "The name of the user"
    },
    "role": {
      "enum": [
        "coadmin",
        "user"
      ],
      "type": "string",
      "example": "user",
      "description": "The user’s enterprise role"
    },
    "login": {
      "type": "string",
      "example": "boss@box.com",
      "description": "The email address the user uses to log in\n\nRequired, unless `is_platform_access_only`\nis set to `true`."
    },
    "phone": {
      "type": "string",
      "example": "6509241374",
      "maxLength": 100,
      "description": "The user’s phone number"
    },
    "status": {
      "enum": [
        "active",
        "inactive",
        "cannot_delete_edit",
        "cannot_delete_edit_upload"
      ],
      "type": "string",
      "example": "active",
      "description": "The user's account status"
    },
    "address": {
      "type": "string",
      "example": "900 Jefferson Ave, Redwood City, CA 94063",
      "maxLength": 255,
      "description": "The user’s address"
    },
    "language": {
      "type": "string",
      "example": "en",
      "description": "The language of the user, formatted in modified version of the\n[ISO 639-1](https://raw.githubusercontent.com) format."
    },
    "timezone": {
      "type": "string",
      "format": "timezone",
      "example": "Africa/Bujumbura",
      "description": "The user's timezone"
    },
    "job_title": {
      "type": "string",
      "example": "CEO",
      "maxLength": 100,
      "description": "The user’s job title"
    },
    "space_amount": {
      "type": "integer",
      "format": "int64",
      "example": 11345156112,
      "description": "The user’s total available space in bytes. Set this to `-1` to\nindicate unlimited storage."
    },
    "tracking_codes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TrackingCode"
      },
      "description": "Tracking codes allow an admin to generate reports from the\nadmin console and assign an attribute to a specific group\nof users. This setting must be enabled for an enterprise before it\ncan be used."
    },
    "is_sync_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether the user can use Box Sync"
    },
    "external_app_user_id": {
      "type": "string",
      "example": "my-user-1234",
      "description": "An external identifier for an app user, which can be used to look\nup the user. This can be used to tie user IDs from external\nidentity providers to Box users."
    },
    "can_see_managed_users": {
      "type": "boolean",
      "example": true,
      "description": "Whether the user can see other enterprise users in their\ncontact list"
    },
    "is_platform_access_only": {
      "type": "boolean",
      "example": true,
      "description": "Specifies that the user is an app user."
    },
    "is_exempt_from_device_limits": {
      "type": "boolean",
      "example": true,
      "description": "Whether to exempt the user from enterprise device limits"
    },
    "is_external_collab_restricted": {
      "type": "boolean",
      "example": true,
      "description": "Whether the user is allowed to collaborate with users outside\ntheir enterprise"
    },
    "is_exempt_from_login_verification": {
      "type": "boolean",
      "example": true,
      "description": "Whether the user must use two-factor authentication"
    }
  }
}
object PostWebhooksRequest
{
  "type": "object",
  "required": [
    "target",
    "triggers",
    "address"
  ],
  "properties": {
    "target": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "1231232",
          "description": "The ID of the item to trigger a webhook"
        },
        "type": {
          "enum": [
            "file",
            "folder"
          ],
          "type": "string",
          "example": "file",
          "description": "The type of item to trigger a webhook"
        }
      },
      "description": "The item that will trigger the webhook"
    },
    "address": {
      "type": "string",
      "example": "https://example.com/webhooks",
      "description": "The URL that is notified by this webhook"
    },
    "triggers": {
      "type": "array",
      "items": {
        "enum": [
          "FILE.UPLOADED",
          "FILE.PREVIEWED",
          "FILE.DOWNLOADED",
          "FILE.TRASHED",
          "FILE.DELETED",
          "FILE.RESTORED",
          "FILE.COPIED",
          "FILE.MOVED",
          "FILE.LOCKED",
          "FILE.UNLOCKED",
          "FILE.RENAMED",
          "COMMENT.CREATED",
          "COMMENT.UPDATED",
          "COMMENT.DELETED",
          "TASK_ASSIGNMENT.CREATED",
          "TASK_ASSIGNMENT.UPDATED",
          "METADATA_INSTANCE.CREATED",
          "METADATA_INSTANCE.UPDATED",
          "METADATA_INSTANCE.DELETED",
          "FOLDER.CREATED",
          "FOLDER.RENAMED",
          "FOLDER.DOWNLOADED",
          "FOLDER.RESTORED",
          "FOLDER.DELETED",
          "FOLDER.COPIED",
          "FOLDER.MOVED",
          "FOLDER.TRASHED",
          "WEBHOOK.DELETED",
          "COLLABORATION.CREATED",
          "COLLABORATION.ACCEPTED",
          "COLLABORATION.REJECTED",
          "COLLABORATION.REMOVED",
          "COLLABORATION.UPDATED",
          "SHARED_LINK.DELETED",
          "SHARED_LINK.CREATED",
          "SHARED_LINK.UPDATED",
          "SIGN_REQUEST.COMPLETED",
          "SIGN_REQUEST.DECLINED",
          "SIGN_REQUEST.EXPIRED",
          "SIGN_REQUEST.SIGNER_EMAIL_BOUNCED"
        ],
        "type": "string",
        "title": "Webhook Trigger",
        "example": "FILE.UPLOADED",
        "description": "The event name that triggered this webhook"
      },
      "example": [
        "FILE.UPLOADED"
      ],
      "description": "An array of event names that this webhook is\nto be triggered for"
    }
  }
}
object RealtimeServer
{
  "type": "object",
  "title": "Real-time server",
  "properties": {
    "ttl": {
      "type": "integer",
      "example": 10,
      "description": "The time in minutes for which this server is available"
    },
    "url": {
      "type": "string",
      "example": "http://2.realtime.services.box.net/subscribe?channel=cc807c9c4869ffb1c81a&stream_type=all",
      "description": "The URL for the server."
    },
    "type": {
      "type": "string",
      "example": "realtime_server",
      "description": "`realtime_server`"
    },
    "max_retries": {
      "type": "integer",
      "example": 10,
      "description": "The maximum number of retries this server will\nallow before a new long poll should be started by\ngetting a [new list of server](https://raw.githubusercontent.com)."
    },
    "retry_timeout": {
      "type": "integer",
      "example": 610,
      "description": "The maximum number of seconds without a response\nafter which you should retry the long poll connection.\n\nThis helps to overcome network issues where the long\npoll looks to be working but no packages are coming\nthrough."
    }
  },
  "description": "A real-time server that can be used for\nlong polling user events",
  "x-box-resource-id": "realtime_server"
}
object RealtimeServers
{
  "type": "object",
  "title": "Real-time servers",
  "x-box-tag": "events",
  "properties": {
    "entries": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/RealtimeServer"
      },
      "description": "A list of real-time servers"
    },
    "chunk_size": {
      "type": "integer",
      "format": "int64",
      "example": 1,
      "description": "The number of items in this response."
    }
  },
  "description": "A list of real-time servers that can\nbe used for long-polling.",
  "x-box-resource-id": "realtime_servers"
}
object RecentItem
{
  "type": "object",
  "title": "Recent item",
  "x-box-tag": "recent_items",
  "properties": {
    "item": {
      "allOf": [
        {
          "oneOf": [
            {
              "$ref": "#/components/schemas/File--Full"
            },
            {
              "$ref": "#/components/schemas/Folder--Full"
            },
            {
              "$ref": "#/components/schemas/WebLink"
            }
          ]
        },
        {
          "description": "The item that was recently accessed."
        }
      ]
    },
    "type": {
      "type": "string",
      "example": "recent_item",
      "description": "`recent_item`"
    },
    "interacted_at": {
      "type": "string",
      "format": "date-time",
      "example": "2018-04-13T13:53:23-07:00",
      "description": "The time of the most recent interaction."
    },
    "interaction_type": {
      "enum": [
        "item_preview",
        "item_upload",
        "item_comment",
        "item_open",
        "item_modify"
      ],
      "type": "string",
      "example": "item_preview",
      "description": "The most recent type of access the user performed on\nthe item."
    },
    "interaction_shared_link": {
      "type": "string",
      "example": "https://www.box.com/shared/static/rh935iit6ewrmw0unyul.jpeg",
      "description": "If the item was accessed through a shared link it will appear here,\notherwise this will be null."
    }
  },
  "description": "A recent item accessed by a user.",
  "x-box-resource-id": "recent_item"
}
object RecentItems
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        },
        "prev_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVih",
          "nullable": true,
          "description": "The marker for the start of the previous page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/RecentItem"
          },
          "description": "A list of recent items"
        }
      }
    }
  ],
  "title": "Recent items",
  "description": "A list of recent items.",
  "x-box-resource-id": "recent_items"
}
object RetentionPolicies
{
  "type": "object",
  "allOf": [
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/RetentionPolicy"
          },
          "description": "A list in which each entry represents a retention policy object."
        }
      }
    },
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    }
  ],
  "title": "Retention policies",
  "x-box-tag": "retention_policies",
  "description": "A list of retention policies.",
  "x-box-resource-id": "retention_policies"
}
object RetentionPoliciesCreatePolicyRequest
{
  "type": "object",
  "required": [
    "policy_name",
    "policy_type",
    "disposition_action"
  ],
  "properties": {
    "description": {
      "type": "string",
      "example": "Policy to retain all reports for at least one month",
      "description": "The additional text description of the retention policy."
    },
    "policy_name": {
      "type": "string",
      "example": "Some Policy Name",
      "description": "The name for the retention policy"
    },
    "policy_type": {
      "enum": [
        "finite",
        "indefinite"
      ],
      "type": "string",
      "example": "finite",
      "description": "The type of the retention policy. A retention\npolicy type can either be `finite`, where a\nspecific amount of time to retain the content is known\nupfront, or `indefinite`, where the amount of time\nto retain the content is still unknown."
    },
    "retention_type": {
      "enum": [
        "modifiable",
        "non_modifiable"
      ],
      "type": "string",
      "example": "modifiable",
      "description": "Specifies the retention type:\n\n* `modifiable`: You can modify the retention policy. For example,\nyou can add or remove folders, shorten or lengthen\nthe policy duration, or delete the assignment.\nUse this type if your retention policy\nis not related to any regulatory purposes.\n\n* `non_modifiable`: You can modify the retention policy\nonly in a limited way: add a folder, lengthen the duration,\nretire the policy, change the disposition action\nor notification settings. You cannot perform other actions,\nsuch as deleting the assignment or shortening the\npolicy duration. Use this type to ensure\ncompliance with regulatory retention policies."
    },
    "retention_length": {
      "oneOf": [
        {
          "type": "string",
          "format": "int32",
          "nullable": true
        },
        {
          "type": "number",
          "format": "int32",
          "nullable": false
        }
      ],
      "example": "365",
      "description": "The length of the retention policy. This value\nspecifies the duration in days that the retention\npolicy will be active for after being assigned to\ncontent.  If the policy has a `policy_type` of\n`indefinite`, the `retention_length` will also be\n`indefinite`."
    },
    "disposition_action": {
      "enum": [
        "permanently_delete",
        "remove_retention"
      ],
      "type": "string",
      "example": "permanently_delete",
      "description": "The disposition action of the retention policy.\n`permanently_delete` deletes the content\nretained by the policy permanently.\n`remove_retention` lifts retention policy\nfrom the content, allowing it to be deleted\nby users once the retention policy has expired."
    },
    "are_owners_notified": {
      "enum": [
        true,
        false
      ],
      "type": "boolean",
      "example": true,
      "description": "Whether owner and co-owners of a file are notified\nwhen the policy nears expiration."
    },
    "can_owner_extend_retention": {
      "enum": [
        true,
        false
      ],
      "type": "boolean",
      "example": true,
      "description": "Whether the owner of a file will be allowed to\nextend the retention."
    },
    "custom_notification_recipients": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/User--Mini"
      },
      "description": "A list of users notified when\nthe retention policy duration is about to end."
    }
  }
}
object RetentionPoliciesUpdatePolicyRequest
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "example": "retired",
      "nullable": true,
      "description": "Used to retire a retention policy.\n\nIf not retiring a policy, do not include this parameter\nor set it to `null`."
    },
    "description": {
      "type": "string",
      "example": "Policy to retain all reports for at least one month",
      "nullable": true,
      "description": "The additional text description of the retention policy."
    },
    "policy_name": {
      "type": "string",
      "example": "Some Policy Name",
      "nullable": true,
      "description": "The name for the retention policy"
    },
    "retention_type": {
      "type": "string",
      "example": "non-modifiable",
      "nullable": true,
      "description": "Specifies the retention type:\n\n* `modifiable`: You can modify the retention policy. For example,\nyou can add or remove folders, shorten or lengthen\nthe policy duration, or delete the assignment.\nUse this type if your retention policy\nis not related to any regulatory purposes.\n* `non-modifiable`: You can modify the retention policy\nonly in a limited way: add a folder, lengthen the duration,\nretire the policy, change the disposition action\nor notification settings. You cannot perform other actions,\nsuch as deleting the assignment or shortening the\npolicy duration. Use this type to ensure\ncompliance with regulatory retention policies.\n\nWhen updating a retention policy, you can use\n`non-modifiable` type only. You can convert a\n`modifiable` policy to `non-modifiable`, but\nnot the other way around."
    },
    "retention_length": {
      "oneOf": [
        {
          "type": "string",
          "format": "int32",
          "nullable": true
        },
        {
          "type": "number",
          "format": "int32",
          "nullable": false
        }
      ],
      "example": "365",
      "description": "The length of the retention policy. This value\nspecifies the duration in days that the retention\npolicy will be active for after being assigned to\ncontent.  If the policy has a `policy_type` of\n`indefinite`, the `retention_length` will also be\n`indefinite`."
    },
    "disposition_action": {
      "anyOf": [
        {
          "enum": [
            "permanently_delete",
            "remove_retention"
          ],
          "type": "string"
        },
        {
          "type": "string",
          "pattern": ".^",
          "nullable": true
        }
      ],
      "example": "permanently_delete",
      "description": "The disposition action of the retention policy.\nThis action can be `permanently_delete`, which\nwill cause the content retained by the policy\nto be permanently deleted, or `remove_retention`,\nwhich will lift the retention policy from the content,\nallowing it to be deleted by users,\nonce the retention policy has expired.\nYou can use \"null\" if you don't want to change `disposition_action`."
    },
    "are_owners_notified": {
      "type": "boolean",
      "example": false,
      "nullable": true,
      "description": "Determines if owners and co-owners of items\nunder the policy are notified when\nthe retention duration is about to end."
    },
    "can_owner_extend_retention": {
      "type": "boolean",
      "example": false,
      "nullable": true,
      "description": "Determines if the owner of items under the policy\ncan extend the retention when the original retention\nduration is about to end."
    },
    "custom_notification_recipients": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/User--Base"
      },
      "nullable": true,
      "description": "A list of users notified when the retention duration is about to end."
    }
  }
}
object RetentionPolicy
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/RetentionPolicy--Mini"
    },
    {
      "properties": {
        "status": {
          "enum": [
            "active",
            "retired"
          ],
          "type": "string",
          "example": "active",
          "description": "The status of the retention policy. The status of\na policy will be `active`, unless explicitly retired by an\nadministrator, in which case the status will be `retired`.\nOnce a policy has been retired, it cannot become\nactive again."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When the retention policy object was created."
        },
        "created_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Mini"
            },
            {
              "description": "A mini user object representing the user that\ncreated the retention policy."
            }
          ]
        },
        "description": {
          "type": "string",
          "example": "Policy to retain all reports for at least one month",
          "description": "The additional text description of the retention policy."
        },
        "modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When the retention policy object was last modified."
        },
        "policy_type": {
          "enum": [
            "finite",
            "indefinite"
          ],
          "type": "string",
          "example": "finite",
          "description": "The type of the retention policy. A retention\npolicy type can either be `finite`, where a\nspecific amount of time to retain the content is known\nupfront, or `indefinite`, where the amount of time\nto retain the content is still unknown."
        },
        "retention_type": {
          "enum": [
            "modifiable",
            "non_modifiable"
          ],
          "type": "string",
          "example": "non_modifiable",
          "description": "Specifies the retention type:\n\n* `modifiable`: You can modify the retention policy. For example,\n you can add or remove folders, shorten or lengthen\n the policy duration, or delete the assignment.\n Use this type if your retention policy\n is not related to any regulatory purposes.\n\n* `non-modifiable`: You can modify the retention policy\n only in a limited way: add a folder, lengthen the duration,\n retire the policy, change the disposition action\n or notification settings. You cannot perform other actions,\n such as deleting the assignment or shortening the\n policy duration. Use this type to ensure\n compliance with regulatory retention policies."
        },
        "assignment_counts": {
          "type": "object",
          "properties": {
            "folder": {
              "type": "integer",
              "format": "int64",
              "example": 1,
              "description": "The number of folder assignments this policy has."
            },
            "enterprise": {
              "type": "integer",
              "format": "int64",
              "example": 1,
              "description": "The number of enterprise assignments this policy has. The maximum value is 1."
            },
            "metadata_template": {
              "type": "integer",
              "format": "int64",
              "example": 1,
              "description": "The number of metadata template assignments this policy has."
            }
          },
          "description": "Counts the retention policy assignments for each item type."
        },
        "are_owners_notified": {
          "type": "boolean",
          "example": false,
          "description": "Determines if owners and co-owners of items\nunder the policy are notified when\nthe retention duration is about to end."
        },
        "can_owner_extend_retention": {
          "type": "boolean",
          "example": false,
          "description": "Determines if the owner of items under the policy\ncan extend the retention when the original\nretention duration is about to end."
        },
        "custom_notification_recipients": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/User--Mini"
          },
          "description": "A list of users notified when the retention policy duration is about to end."
        }
      }
    }
  ],
  "title": "Retention policy",
  "x-box-tag": "retention_policies",
  "description": "A retention policy blocks permanent deletion of content\nfor a specified amount of time. Admins can create retention\npolicies and then later assign them to specific folders, metadata\ntemplates, or their entire enterprise.  To use this feature, you must\nhave the manage retention policies scope enabled\nfor your API key via your application management console.",
  "x-box-variant": "standard",
  "x-box-resource-id": "retention_policy"
}
object RetentionPolicy--Base
{
  "type": "object",
  "title": "Retention policy (Base)",
  "required": [
    "id",
    "type"
  ],
  "x-box-tag": "retention_policies",
  "properties": {
    "id": {
      "type": "string",
      "example": "12345",
      "nullable": false,
      "description": "The unique identifier that represents a retention policy."
    },
    "type": {
      "enum": [
        "retention_policy"
      ],
      "type": "string",
      "example": "retention_policy",
      "nullable": false,
      "description": "`retention_policy`"
    }
  },
  "description": "A base representation of a retention policy.",
  "x-box-variant": "base",
  "x-box-variants": [
    "base",
    "mini",
    "standard"
  ],
  "x-box-resource-id": "retention_policy--base"
}
object RetentionPolicy--Mini
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/RetentionPolicy--Base"
    },
    {
      "properties": {
        "policy_name": {
          "type": "string",
          "example": "Some Policy Name",
          "description": "The name given to the retention policy."
        },
        "retention_length": {
          "type": "string",
          "format": "int32",
          "example": "365",
          "minimum": 1,
          "description": "The length of the retention policy. This value\nspecifies the duration in days that the retention\npolicy will be active for after being assigned to\ncontent.  If the policy has a `policy_type` of\n`indefinite`, the `retention_length` will also be\n`indefinite`."
        },
        "disposition_action": {
          "enum": [
            "permanently_delete",
            "remove_retention"
          ],
          "type": "string",
          "example": "permanently_delete",
          "description": "The disposition action of the retention policy.\nThis action can be `permanently_delete`, which\nwill cause the content retained by the policy\nto be permanently deleted, or `remove_retention`,\nwhich will lift the retention policy from the content,\nallowing it to be deleted by users,\nonce the retention policy has expired."
        }
      }
    }
  ],
  "title": "Retention policy (Mini)",
  "description": "A mini representation of a retention policy, used when\nnested within another resource.",
  "x-box-variant": "mini",
  "x-box-resource-id": "retention_policy--mini"
}
object RetentionPolicyAssignment
{
  "type": "object",
  "title": "Retention policy assignment",
  "required": [
    "id",
    "type"
  ],
  "x-box-tag": "retention_policy_assignments",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for a retention policy assignment."
    },
    "type": {
      "enum": [
        "retention_policy_assignment"
      ],
      "type": "string",
      "example": "retention_policy_assignment",
      "description": "`retention_policy_assignment`"
    },
    "assigned_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "When the retention policy assignment object was\ncreated."
    },
    "assigned_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "A mini user object representing the user that\ncreated the retention policy assignment."
        }
      ]
    },
    "assigned_to": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "a983f69f-e85f-4ph4-9f46-4afdf9c1af65",
          "nullable": true,
          "description": "The ID of the folder, enterprise, or metadata template\nthe policy is assigned to.\nSet to null or omit when type is set to enterprise."
        },
        "type": {
          "enum": [
            "folder",
            "enterprise",
            "metadata_template"
          ],
          "type": "string",
          "example": "metadata_template",
          "description": "The type of resource the policy is assigned to."
        }
      },
      "description": "The `type` and `id` of the content that is under\nretention. The `type` can either be `folder`\n`enterprise`, or `metadata_template`."
    },
    "filter_fields": {
      "type": "array",
      "items": {
        "type": "object",
        "nullable": true,
        "properties": {
          "field": {
            "type": "string",
            "example": "a0f4ee4e-1dc1-4h90-a8a9-aef55fc681d4",
            "nullable": true,
            "description": "The metadata attribute key id."
          },
          "value": {
            "type": "string",
            "example": "0c27b756-0p87-4fe0-a43a-59fb661ccc4e",
            "nullable": true,
            "description": "The metadata attribute field id. For value, only\nenum and multiselect types are supported."
          }
        }
      },
      "nullable": true,
      "description": "An array of field objects. Values are only returned if the `assigned_to`\ntype is `metadata_template`. Otherwise, the array is blank."
    },
    "retention_policy": {
      "allOf": [
        {
          "$ref": "#/components/schemas/RetentionPolicy--Mini"
        },
        {
          "description": "A mini representation of a retention policy object\nthat has been assigned to the content."
        }
      ]
    },
    "start_date_field": {
      "type": "string",
      "example": "upload_date",
      "description": "The date the retention policy assignment begins.\nIf the `assigned_to` type is `metadata_template`,\nthis field can be a date field's metadata attribute key id."
    }
  },
  "description": "A retention assignment represents a rule specifying\nthe files a retention policy retains.\nAssignments can retain files based on their folder or metadata,\nor hold all files in the enterprise.",
  "x-box-resource-id": "retention_policy_assignment"
}
object RetentionPolicyAssignment--Base
{
  "type": "object",
  "title": "Retention policy assignment (Base)",
  "required": [
    "id",
    "type"
  ],
  "x-box-tag": "retention_policy_assignments",
  "properties": {
    "id": {
      "type": "string",
      "example": "12345",
      "nullable": false,
      "description": "The unique identifier that represents a file version."
    },
    "type": {
      "enum": [
        "retention_policy_assignment"
      ],
      "type": "string",
      "example": "retention_policy_assignment",
      "nullable": false,
      "description": "`retention_policy_assignment`"
    }
  },
  "description": "A base representation of a retention policy assignment.",
  "x-box-variant": "base",
  "x-box-variants": [
    "base",
    "standard"
  ],
  "x-box-resource-id": "retention_policy_assignment--base"
}
object RetentionPolicyAssignments
{
  "type": "object",
  "allOf": [
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/RetentionPolicyAssignment"
          },
          "description": "A list of retention policy assignments"
        }
      }
    },
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    }
  ],
  "title": "Retention policy assignments",
  "x-box-tag": "retention_policy_assignments",
  "description": "A list of retention policy assignments.",
  "x-box-resource-id": "retention_policy_assignments"
}
object RetentionPolicyAssignmentsCreateRetentionAssignmentRequest
{
  "type": "object",
  "required": [
    "policy_id",
    "assign_to"
  ],
  "properties": {
    "assign_to": {
      "type": "object",
      "required": [
        "type"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "6564564",
          "nullable": true,
          "description": "The ID of item to assign the policy to.\nSet to `null` or omit when `type` is set to\n`enterprise`."
        },
        "type": {
          "enum": [
            "enterprise",
            "folder",
            "metadata_template"
          ],
          "type": "string",
          "example": "metadata_template",
          "description": "The type of item to assign the policy to."
        }
      },
      "description": "The item to assign the policy to"
    },
    "policy_id": {
      "type": "string",
      "example": "173463",
      "description": "The ID of the retention policy to assign"
    },
    "filter_fields": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "example": "a0f4ee4e-1dc1-4h90-a8a9-aef55fc681d4",
            "description": "The metadata attribute key id."
          },
          "value": {
            "type": "string",
            "example": "0c27b756-0p87-4fe0-a43a-59fb661ccc4e",
            "description": "The metadata attribute field id. For value, only\nenum and multiselect types are supported."
          }
        }
      },
      "description": "If the `assign_to` type is `metadata_template`,\nthen optionally add the `filter_fields` parameter which will\nrequire an array of objects with a field entry and a value entry.\nCurrently only one object of `field` and `value` is supported."
    },
    "start_date_field": {
      "type": "string",
      "example": "upload_date",
      "description": "The date the retention policy assignment begins.\n\nIf the `assigned_to` type is `metadata_template`,\nthis field can be a date field's metadata attribute key id."
    }
  }
}
object RoleVariable
{
  "type": "object",
  "title": "Role variable",
  "required": [
    "type",
    "variable_type",
    "variable_value"
  ],
  "properties": {
    "type": {
      "enum": [
        "variable"
      ],
      "type": "string",
      "example": "variable",
      "description": "Role object type.\n"
    },
    "variable_type": {
      "enum": [
        "collaborator_role"
      ],
      "type": "string",
      "example": "collaborator_role",
      "description": "The variable type used\nby the object.\n"
    },
    "variable_value": {
      "allOf": [
        {
          "enum": [
            "editor",
            "viewer",
            "previewer",
            "uploader",
            "previewer uploader",
            "viewer uploader",
            "co-owner"
          ],
          "type": "string",
          "example": "editor",
          "description": "The level of access granted."
        },
        {
          "description": "Variable values you can use\nfor the role parameter."
        }
      ]
    }
  },
  "description": "Determines if the\nworkflow outcome\naffects a specific\ncollaborator role."
}
object SearchResultWithSharedLink
{
  "type": "object",
  "title": "Search Result (including Shared Link)",
  "x-box-tag": "search",
  "properties": {
    "item": {
      "allOf": [
        {
          "oneOf": [
            {
              "$ref": "#/components/schemas/File--Full"
            },
            {
              "$ref": "#/components/schemas/Folder--Full"
            },
            {
              "$ref": "#/components/schemas/WebLink"
            }
          ]
        },
        {
          "description": "The file, folder or web link that matched the\nsearch query."
        }
      ]
    },
    "type": {
      "type": "string",
      "example": "search_result",
      "description": "The result type. The value is always `search_result`."
    },
    "accessible_via_shared_link": {
      "type": "string",
      "format": "url",
      "example": "https://www.box.com/s/vspke7y05sb214wjokpk",
      "description": "The optional shared link through which the user has access to this\nitem. This value is only returned for items for which the user has\nrecently accessed the file through a shared link. For all other\nitems this value will return `null`."
    }
  },
  "description": "A single of files, folder or web link that matched the search query,\nincluding the additional information about the shared link through\nwhich the item has been shared with the user.\n\nThis response format is only returned when the\n`include_recent_shared_links` query parameter has been set to `true`.",
  "x-box-resource-id": "search_result_with_shared_link"
}
object SearchResults
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for this search. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed."
        },
        "offset": {
          "type": "integer",
          "format": "int64",
          "example": 2000,
          "description": "The 0-based offset of the first entry in this set. This will be the same\nas the `offset` query parameter used."
        },
        "total_count": {
          "type": "integer",
          "format": "int64",
          "example": 5000,
          "description": "One greater than the offset of the last entry in the search results.\nThe total number of entries in the collection may be less than\n`total_count`."
        }
      }
    },
    {
      "properties": {
        "type": {
          "enum": [
            "search_results_items"
          ],
          "type": "string",
          "example": "search_results_items",
          "nullable": false,
          "description": "Specifies the response as search result items without shared links"
        },
        "entries": {
          "type": "array",
          "items": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/File--Full"
              },
              {
                "$ref": "#/components/schemas/Folder--Full"
              },
              {
                "$ref": "#/components/schemas/WebLink"
              }
            ]
          },
          "description": "The search results for the query provided."
        }
      }
    }
  ],
  "title": "Search Results",
  "required": [
    "type"
  ],
  "x-box-tag": "search",
  "description": "A list of files, folders and web links that matched the search query.",
  "x-box-resource-id": "search_results"
}
object SearchResultsWithSharedLinks
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for this search. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed."
        },
        "offset": {
          "type": "integer",
          "format": "int64",
          "example": 2000,
          "description": "The 0-based offset of the first entry in this set. This will be the same\nas the `offset` query parameter used."
        },
        "total_count": {
          "type": "integer",
          "format": "int64",
          "example": 5000,
          "description": "One greater than the offset of the last entry in the search results.\nThe total number of entries in the collection may be less than\n`total_count`."
        }
      }
    },
    {
      "properties": {
        "type": {
          "enum": [
            "search_results_with_shared_links"
          ],
          "type": "string",
          "example": "search_results_with_shared_links",
          "nullable": false,
          "description": "Specifies the response as search result items with shared links"
        },
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/SearchResultWithSharedLink"
          },
          "description": "The search results for the query provided, including the\nadditional information about any shared links through\nwhich the item has been shared with the user."
        }
      }
    }
  ],
  "title": "Search Results (including Shared Links)",
  "required": [
    "type"
  ],
  "x-box-tag": "search",
  "description": "A list of files, folders and web links that matched the search query,\nincluding the additional information about any shared links through\nwhich the item has been shared with the user.\n\nThis response format is only returned when the `include_recent_shared_links`\nquery parameter has been set to `true`.",
  "x-box-resource-id": "search_results_with_shared_links"
}
object SessionTerminationCreateSessionTerminationJobsRequest
{
  "type": "object",
  "required": [
    "user_ids",
    "user_logins"
  ],
  "properties": {
    "user_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "123456",
        "456789"
      ],
      "description": "A list of user IDs"
    },
    "user_logins": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "user@sample.com",
        "user2@sample.com"
      ],
      "description": "A list of user logins"
    }
  }
}
object SessionTerminationCreateTerminationJobsRequest
{
  "type": "object",
  "required": [
    "group_ids"
  ],
  "properties": {
    "group_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "123456",
        "456789"
      ],
      "description": "A list of group IDs"
    }
  }
}
object SessionTerminationMessage
{
  "type": "object",
  "title": "Session termination message",
  "x-box-tag": "session_termination",
  "properties": {
    "message": {
      "type": "string",
      "example": "Request is successful, please check the admin\nevents for the status of the job",
      "description": "The unique identifier for the termination job status"
    }
  },
  "description": "A message informing about the\ntermination job status",
  "x-box-resource-id": "session_termination"
}
object SharedLinksFilesAddSharedLinkToFileRequest
{
  "type": "object",
  "properties": {
    "shared_link": {
      "type": "object",
      "properties": {
        "access": {
          "enum": [
            "open",
            "company",
            "collaborators"
          ],
          "type": "string",
          "example": "open",
          "description": "The level of access for the shared link. This can be\nrestricted to anyone with the link (`open`), only people\nwithin the company (`company`) and only those who\nhave been invited to the file (`collaborators`).\n\nIf not set, this field defaults to the access level specified\nby the enterprise admin. To create a shared link with this\ndefault setting pass the `shared_link` object with\nno `access` field, for example `{ \"shared_link\": {} }`.\n\nThe `company` access level is only available to paid\naccounts."
        },
        "password": {
          "type": "string",
          "example": "do-n8t-use-this-Password",
          "description": "The password required to access the shared link. Set the\npassword to `null` to remove it.\nPasswords must now be at least eight characters\nlong and include a number, upper case letter, or\na non-numeric or non-alphabetic character.\nA password can only be set when `access` is set to `open`."
        },
        "permissions": {
          "type": "object",
          "properties": {
            "can_edit": {
              "type": "boolean",
              "example": true,
              "description": "If the shared link allows for editing of files.\nThis can only be set when `access` is set to\n`open` or `company`.\nThis value can only be `true` is `can_download` is\nalso `true`."
            },
            "can_preview": {
              "type": "boolean",
              "example": true,
              "description": "If the shared link allows for previewing of files.\nThis value is always `true`. For shared links on folders\nthis also applies to any items in the folder."
            },
            "can_download": {
              "type": "boolean",
              "example": true,
              "description": "If the shared link allows for downloading of files.\nThis can only be set when `access` is set to\n`open` or `company`."
            }
          }
        },
        "unshared_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "The timestamp at which this shared link will\nexpire. This field can only be set by\nusers with paid accounts. The value must be greater than the\ncurrent date and time."
        },
        "vanity_name": {
          "type": "string",
          "example": "my-shared-link",
          "minLength": 12,
          "description": "Defines a custom vanity name to use in the shared link URL,\nfor example `https://app.box.com/v/my-shared-link`.\n\nCustom URLs should not be used when sharing sensitive content\nas vanity URLs are a lot easier to guess than regular shared\nlinks."
        }
      },
      "description": "The settings for the shared link to create on the file.\nUse an empty object (`{}`) to use the default settings for shared\nlinks."
    }
  }
}
object SharedLinksFilesRemoveSharedLinkRequest
{
  "type": "object",
  "properties": {
    "shared_link": {
      "type": "object",
      "example": null,
      "nullable": true,
      "description": "By setting this value to `null`, the shared link\nis removed from the file."
    }
  }
}
object SharedLinksFilesUpdateLinkOnFileRequest
{
  "type": "object",
  "properties": {
    "shared_link": {
      "type": "object",
      "properties": {
        "access": {
          "enum": [
            "open",
            "company",
            "collaborators"
          ],
          "type": "string",
          "example": "open",
          "description": "The level of access for the shared link. This can be\nrestricted to anyone with the link (`open`), only people\nwithin the company (`company`) and only those who\nhave been invited to the folder (`collaborators`).\n\nIf not set, this field defaults to the access level specified\nby the enterprise admin. To create a shared link with this\ndefault setting pass the `shared_link` object with\nno `access` field, for example `{ \"shared_link\": {} }`.\n\nThe `company` access level is only available to paid\naccounts."
        },
        "password": {
          "type": "string",
          "example": "do-n8t-use-this-Password",
          "description": "The password required to access the shared link. Set the\npassword to `null` to remove it.\nPasswords must now be at least eight characters\nlong and include a number, upper case letter, or\na non-numeric or non-alphabetic character.\nA password can only be set when `access` is set to `open`."
        },
        "permissions": {
          "type": "object",
          "properties": {
            "can_edit": {
              "type": "boolean",
              "example": true,
              "description": "If the shared link allows for editing of files.\nThis can only be set when `access` is set to\n`open` or `company`.\nThis value can only be `true` is `can_download` is\nalso `true`."
            },
            "can_preview": {
              "type": "boolean",
              "example": true,
              "description": "If the shared link allows for previewing of files.\nThis value is always `true`. For shared links on folders\nthis also applies to any items in the folder."
            },
            "can_download": {
              "type": "boolean",
              "example": true,
              "description": "If the shared link allows for downloading of files.\nThis can only be set when `access` is set to\n`open` or `company`."
            }
          }
        },
        "unshared_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "The timestamp at which this shared link will\nexpire. This field can only be set by\nusers with paid accounts. The value must be greater than the\ncurrent date and time."
        },
        "vanity_name": {
          "type": "string",
          "example": "my-shared-link",
          "minLength": 12,
          "description": "Defines a custom vanity name to use in the shared link URL,\nfor example `https://app.box.com/v/my-shared-link`.\n\nCustom URLs should not be used when sharing sensitive content\nas vanity URLs are a lot easier to guess than regular shared\nlinks."
        }
      },
      "description": "The settings for the shared link to update."
    }
  }
}
object SharedLinksFoldersAddLinkToFolderRequest
{
  "type": "object",
  "properties": {
    "shared_link": {
      "type": "object",
      "properties": {
        "access": {
          "enum": [
            "open",
            "company",
            "collaborators"
          ],
          "type": "string",
          "example": "open",
          "description": "The level of access for the shared link. This can be\nrestricted to anyone with the link (`open`), only people\nwithin the company (`company`) and only those who\nhave been invited to the folder (`collaborators`).\n\nIf not set, this field defaults to the access level specified\nby the enterprise admin. To create a shared link with this\ndefault setting pass the `shared_link` object with\nno `access` field, for example `{ \"shared_link\": {} }`.\n\nThe `company` access level is only available to paid\naccounts."
        },
        "password": {
          "type": "string",
          "example": "do-n8t-use-this-Password",
          "description": "The password required to access the shared link. Set the\npassword to `null` to remove it.\nPasswords must now be at least eight characters\nlong and include a number, upper case letter, or\na non-numeric or non-alphabetic character.\nA password can only be set when `access` is set to `open`."
        },
        "permissions": {
          "type": "object",
          "properties": {
            "can_edit": {
              "type": "boolean",
              "example": false,
              "description": "This value can only be `false` for items\nwith a `type` of `folder`."
            },
            "can_preview": {
              "type": "boolean",
              "example": true,
              "description": "If the shared link allows for previewing of files.\nThis value is always `true`. For shared links on folders\nthis also applies to any items in the folder."
            },
            "can_download": {
              "type": "boolean",
              "example": true,
              "description": "If the shared link allows for downloading of files.\nThis can only be set when `access` is set to\n`open` or `company`."
            }
          }
        },
        "unshared_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "The timestamp at which this shared link will\nexpire. This field can only be set by\nusers with paid accounts. The value must be greater than the\ncurrent date and time."
        },
        "vanity_name": {
          "type": "string",
          "example": "my-shared-link",
          "minLength": 12,
          "description": "Defines a custom vanity name to use in the shared link URL,\nfor example `https://app.box.com/v/my-shared-link`.\n\nCustom URLs should not be used when sharing sensitive content\nas vanity URLs are a lot easier to guess than regular shared\nlinks."
        }
      },
      "description": "The settings for the shared link to create on the folder.\n\nUse an empty object (`{}`) to use the default settings for shared\nlinks."
    }
  }
}
object SharedLinksFoldersRemoveFromFolderRequest
{
  "type": "object",
  "properties": {
    "shared_link": {
      "type": "object",
      "example": null,
      "nullable": true,
      "description": "By setting this value to `null`, the shared link\nis removed from the folder."
    }
  }
}
object SharedLinksFoldersUpdateFolderSharedLinkRequest
{
  "type": "object",
  "properties": {
    "shared_link": {
      "type": "object",
      "properties": {
        "access": {
          "enum": [
            "open",
            "company",
            "collaborators"
          ],
          "type": "string",
          "example": "open",
          "description": "The level of access for the shared link. This can be\nrestricted to anyone with the link (`open`), only people\nwithin the company (`company`) and only those who\nhave been invited to the folder (`collaborators`).\n\nIf not set, this field defaults to the access level specified\nby the enterprise admin. To create a shared link with this\ndefault setting pass the `shared_link` object with\nno `access` field, for example `{ \"shared_link\": {} }`.\n\nThe `company` access level is only available to paid\naccounts."
        },
        "password": {
          "type": "string",
          "example": "do-n8t-use-this-Password",
          "description": "The password required to access the shared link. Set the\npassword to `null` to remove it.\nPasswords must now be at least eight characters\nlong and include a number, upper case letter, or\na non-numeric or non-alphabetic character.\nA password can only be set when `access` is set to `open`."
        },
        "permissions": {
          "type": "object",
          "properties": {
            "can_edit": {
              "type": "boolean",
              "example": false,
              "description": "This value can only be `false` for items\nwith a `type` of `folder`."
            },
            "can_preview": {
              "type": "boolean",
              "example": true,
              "description": "If the shared link allows for previewing of files.\nThis value is always `true`. For shared links on folders\nthis also applies to any items in the folder."
            },
            "can_download": {
              "type": "boolean",
              "example": true,
              "description": "If the shared link allows for downloading of files.\nThis can only be set when `access` is set to\n`open` or `company`."
            }
          }
        },
        "unshared_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "The timestamp at which this shared link will\nexpire. This field can only be set by\nusers with paid accounts. The value must be greater than the\ncurrent date and time."
        },
        "vanity_name": {
          "type": "string",
          "example": "my-shared-link",
          "minLength": 12,
          "description": "Defines a custom vanity name to use in the shared link URL,\nfor example `https://app.box.com/v/my-shared-link`.\n\nCustom URLs should not be used when sharing sensitive content\nas vanity URLs are a lot easier to guess than regular shared\nlinks."
        }
      },
      "description": "The settings for the shared link to update."
    }
  }
}
object SharedLinksWebLinksAddLinkToWebLinkRequest
{
  "type": "object",
  "properties": {
    "shared_link": {
      "type": "object",
      "properties": {
        "access": {
          "enum": [
            "open",
            "company",
            "collaborators"
          ],
          "type": "string",
          "example": "open",
          "description": "The level of access for the shared link. This can be\nrestricted to anyone with the link (`open`), only people\nwithin the company (`company`) and only those who\nhave been invited to the file (`collaborators`).\n\nIf not set, this field defaults to the access level specified\nby the enterprise admin. To create a shared link with this\ndefault setting pass the `shared_link` object with\nno `access` field, for example `{ \"shared_link\": {} }`.\n\nThe `company` access level is only available to paid\naccounts."
        },
        "password": {
          "type": "string",
          "example": "do-n8t-use-this-Password",
          "description": "The password required to access the shared link. Set the\npassword to `null` to remove it.\nPasswords must now be at least eight characters\nlong and include a number, upper case letter, or\na non-numeric or non-alphabetic character.\nA password can only be set when `access` is set to `open`."
        },
        "permissions": {
          "type": "object",
          "properties": {
            "can_edit": {
              "type": "boolean",
              "example": false,
              "description": "This value can only be `true` is `type` is `file`."
            },
            "can_preview": {
              "type": "boolean",
              "example": true,
              "description": "If the shared link allows for previewing of files.\nThis value is always `true`. For shared links on folders\nthis also applies to any items in the folder."
            },
            "can_download": {
              "type": "boolean",
              "example": true,
              "description": "If the shared link allows for downloading of files.\nThis can only be set when `access` is set to\n`open` or `company`."
            }
          }
        },
        "unshared_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "The timestamp at which this shared link will\nexpire. This field can only be set by\nusers with paid accounts. The value must be greater than the\ncurrent date and time."
        },
        "vanity_name": {
          "type": "string",
          "example": "my-shared-link",
          "minLength": 12,
          "description": "Defines a custom vanity name to use in the shared link URL,\nfor example `https://app.box.com/v/my-shared-link`.\n\nCustom URLs should not be used when sharing sensitive content\nas vanity URLs are a lot easier to guess than regular shared\nlinks."
        }
      },
      "description": "The settings for the shared link to create on the web link.\n\nUse an empty object (`{}`) to use the default settings for shared\nlinks."
    }
  }
}
object SharedLinksWebLinksRemoveSharedLinkRequest
{
  "type": "object",
  "properties": {
    "shared_link": {
      "type": "object",
      "example": null,
      "nullable": true,
      "description": "By setting this value to `null`, the shared link\nis removed from the web link."
    }
  }
}
object SharedLinksWebLinksUpdateSharedLinkRequest
{
  "type": "object",
  "properties": {
    "shared_link": {
      "type": "object",
      "properties": {
        "access": {
          "enum": [
            "open",
            "company",
            "collaborators"
          ],
          "type": "string",
          "example": "open",
          "description": "The level of access for the shared link. This can be\nrestricted to anyone with the link (`open`), only people\nwithin the company (`company`) and only those who\nhave been invited to the folder (`collaborators`).\n\nIf not set, this field defaults to the access level specified\nby the enterprise admin. To create a shared link with this\ndefault setting pass the `shared_link` object with\nno `access` field, for example `{ \"shared_link\": {} }`.\n\nThe `company` access level is only available to paid\naccounts."
        },
        "password": {
          "type": "string",
          "example": "do-n8t-use-this-Password",
          "description": "The password required to access the shared link. Set the\npassword to `null` to remove it.\nPasswords must now be at least eight characters\nlong and include a number, upper case letter, or\na non-numeric or non-alphabetic character.\nA password can only be set when `access` is set to `open`."
        },
        "permissions": {
          "type": "object",
          "properties": {
            "can_edit": {
              "type": "boolean",
              "example": true,
              "description": "This value can only be `true` is `type` is `file`."
            },
            "can_preview": {
              "type": "boolean",
              "example": true,
              "description": "If the shared link allows for previewing of files.\nThis value is always `true`. For shared links on folders\nthis also applies to any items in the folder."
            },
            "can_download": {
              "type": "boolean",
              "example": true,
              "description": "If the shared link allows for downloading of files.\nThis can only be set when `access` is set to\n`open` or `company`."
            }
          }
        },
        "unshared_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "The timestamp at which this shared link will\nexpire. This field can only be set by\nusers with paid accounts. The value must be greater than the\ncurrent date and time."
        },
        "vanity_name": {
          "type": "string",
          "example": "my-shared-link",
          "minLength": 12,
          "description": "Defines a custom vanity name to use in the shared link URL,\nfor example `https://app.box.com/v/my-shared-link`.\n\nCustom URLs should not be used when sharing sensitive content\nas vanity URLs are a lot easier to guess than regular shared\nlinks."
        }
      },
      "description": "The settings for the shared link to update."
    }
  }
}
object ShieldInformationBarrier
{
  "type": "object",
  "title": "Shield information barrier",
  "x-box-tag": "shield_information_barriers",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for the shield information barrier"
    },
    "type": {
      "enum": [
        "shield_information_barrier"
      ],
      "type": "string",
      "example": "shield_information_barrier",
      "description": "The type of the shield information barrier"
    },
    "status": {
      "enum": [
        "draft",
        "pending",
        "disabled",
        "enabled",
        "invalid"
      ],
      "type": "string",
      "example": "draft",
      "description": "Status of the shield information barrier"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2020-06-26T18:44:45.869Z",
      "description": "ISO date time string when this\nshield information barrier object was created."
    },
    "created_by": {
      "$ref": "#/components/schemas/User--Base"
    },
    "enabled_at": {
      "type": "string",
      "format": "date-time",
      "example": "2020-07-26T18:44:45.869Z",
      "description": "ISO date time string when this shield information barrier was enabled."
    },
    "enabled_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Base"
        },
        {
          "description": "The user that enabled this shield information barrier."
        }
      ]
    },
    "enterprise": {
      "$ref": "#/components/schemas/Enterprise--Base"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "example": "2020-07-26T18:44:45.869Z",
      "description": "ISO date time string when this shield information barrier was updated."
    },
    "updated_by": {
      "$ref": "#/components/schemas/User--Base"
    }
  },
  "description": "A standard representation of a\nshield information barrier object",
  "x-box-variant": "standard",
  "x-box-variants": [
    "base",
    "standard"
  ],
  "x-box-resource-id": "shield_information_barrier",
  "x-konfig-properties": {
    "created_by": {
      "description": "The user who created this shield information barrier."
    },
    "enterprise": {
      "description": "The `type` and `id` of enterprise this barrier is under."
    },
    "updated_by": {
      "description": "The user that updated this shield information barrier."
    }
  }
}
object ShieldInformationBarrier--Base
{
  "type": "object",
  "title": "Shield information barrier (Base)",
  "x-box-tag": "shield_information_barriers",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for the shield information barrier"
    },
    "type": {
      "enum": [
        "shield_information_barrier"
      ],
      "type": "string",
      "example": "shield_information_barrier",
      "description": "The type of the shield information barrier"
    }
  },
  "description": "A base representation of a\nshield information barrier object",
  "x-box-variant": "base",
  "x-box-variants": [
    "base",
    "standard"
  ],
  "x-box-resource-id": "shield_information_barrier--base"
}
object ShieldInformationBarrierReference
{
  "type": "object",
  "title": "Shield information barrier reference",
  "x-box-tag": "shield_information_barrier_reports",
  "properties": {
    "shield_information_barrier": {
      "$ref": "#/components/schemas/ShieldInformationBarrier--Base"
    }
  },
  "description": "A shield information barrier reference for requests and responses",
  "x-box-resource-id": "shield_information_barrier_reference"
}
object ShieldInformationBarrierReport
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/ShieldInformationBarrierReport--Base"
    },
    {
      "properties": {
        "status": {
          "enum": [
            "pending",
            "error",
            "done",
            "cancelled"
          ],
          "type": "string",
          "example": "pending",
          "description": "Status of the shield information report"
        },
        "details": {
          "$ref": "#/components/schemas/ShieldInformationBarrierReportDetails"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2020-06-26T18:44:45.869Z",
          "description": "ISO date time string when this\nshield information barrier report object was created."
        },
        "created_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Base"
            },
            {
              "description": "The user who created this shield information barrier report."
            }
          ]
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "example": "2020-07-26T18:44:45.869Z",
          "description": "ISO date time string when this\nshield information barrier report was updated."
        },
        "shield_information_barrier": {
          "$ref": "#/components/schemas/ShieldInformationBarrierReference"
        }
      }
    }
  ],
  "title": "Shield information barrier report",
  "x-box-tag": "shield_information_barrier_reports",
  "description": "A standard representation\nof a shield information barrier report object",
  "x-box-variant": "standard",
  "x-box-variants": [
    "base",
    "standard"
  ],
  "x-box-resource-id": "shield_information_barrier_report"
}
object ShieldInformationBarrierReport--Base
{
  "type": "object",
  "title": "Shield information barrier report (Base)",
  "x-box-tag": "shield_information_barrier_reports",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for the shield information barrier report"
    },
    "type": {
      "enum": [
        "shield_information_barrier_report"
      ],
      "type": "string",
      "example": "shield_information_barrier_report",
      "description": "The type of the shield information barrier report"
    }
  },
  "description": "A base representation of a\nshield information barrier report object",
  "x-box-variant": "base",
  "x-box-variants": [
    "base",
    "standard"
  ],
  "x-box-resource-id": "shield_information_barrier_report--base"
}
object ShieldInformationBarrierReportDetails
{
  "type": "object",
  "title": "Shield information barrier report details",
  "x-box-tag": "shield_information_barrier_reports",
  "properties": {
    "details": {
      "type": "object",
      "properties": {
        "folder_id": {
          "type": "string",
          "example": "124235",
          "description": "Folder ID for locating this report"
        }
      }
    }
  },
  "description": "Indicates which folder the report\nfile is located and any errors when generating the report.",
  "x-box-resource-id": "shield_information_barrier_report_details"
}
object ShieldInformationBarrierReports
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ShieldInformationBarrierReport"
          },
          "description": "A list of shield information\nbarrier reports."
        }
      }
    }
  ],
  "title": "List of Shield Information Barrier Reports",
  "x-box-tag": "shield_information_barrier_reports",
  "description": "A list of shield barrier reports.",
  "x-box-resource-id": "shield_information_barrier_reports"
}
object ShieldInformationBarrierSegment
{
  "type": "object",
  "title": "Shield information barrier segment",
  "x-box-tag": "shield_information_barrier_segments",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for the shield information barrier segment"
    },
    "name": {
      "type": "string",
      "example": "Investment Banking",
      "description": "Name of the shield information barrier segment"
    },
    "type": {
      "enum": [
        "shield_information_barrier_segment"
      ],
      "type": "string",
      "example": "shield_information_barrier_segment",
      "description": "The type of the shield information barrier segment"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2020-06-26T18:44:45.869Z",
      "description": "ISO date time string when this shield information\nbarrier object was created."
    },
    "created_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Base"
        },
        {
          "description": "The user who created this shield information barrier segment."
        }
      ]
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "example": "2020-07-26T18:44:45.869Z",
      "description": "ISO date time string when this\nshield information barrier segment was updated."
    },
    "updated_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Base"
        },
        {
          "description": "The user that updated this shield information barrier segment."
        }
      ]
    },
    "description": {
      "type": "string",
      "example": "'Corporate division that engages in advisory_based financial\n transactions on behalf of individuals, corporations, and governments.'",
      "description": "Description of the shield information barrier segment"
    },
    "shield_information_barrier": {
      "$ref": "#/components/schemas/ShieldInformationBarrier--Base"
    }
  },
  "description": "A shield information barrier segment object",
  "x-box-resource-id": "shield_information_barrier_segment"
}
object ShieldInformationBarrierSegmentMember
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/ShieldInformationBarrierSegmentMember--Mini"
    },
    {
      "properties": {
        "user": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Base"
            },
            {
              "description": "The `type` and `id` of the requested shield information barrier segment member."
            }
          ]
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2020-06-26T18:44:45.869Z",
          "description": "ISO date time string when this shield\ninformation barrier object was created."
        },
        "created_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Base"
            },
            {
              "description": "The user who created this shield information barrier segment member."
            }
          ]
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "example": "2020-07-26T18:44:45.869Z",
          "description": "ISO date time string when this\nshield information barrier segment Member was updated."
        },
        "updated_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Base"
            },
            {
              "description": "The user that updated this shield information barrier segment Member."
            }
          ]
        },
        "shield_information_barrier": {
          "$ref": "#/components/schemas/ShieldInformationBarrier--Base"
        },
        "shield_information_barrier_segment": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "example": "432554",
              "description": "The ID reference of the requesting\nshield information barrier segment."
            },
            "type": {
              "enum": [
                "shield_information_barrier_segment"
              ],
              "type": "string",
              "example": "shield_information_barrier_segment",
              "description": "The type of the shield information barrier segment"
            }
          },
          "description": "The `type` and `id` of the requested\nshield information barrier segment."
        }
      }
    }
  ],
  "title": "Shield information barrier segment member",
  "x-box-tag": "shield_information_barrier_segment_members",
  "description": "A standard representation of a\nshield information barrier segment member object",
  "x-box-variant": "standard",
  "x-box-variants": [
    "base",
    "mini",
    "standard"
  ],
  "x-box-resource-id": "shield_information_barrier_segment_member"
}
object ShieldInformationBarrierSegmentMember--Base
{
  "type": "object",
  "title": "Shield information barrier segment member (Base)",
  "x-box-tag": "shield_information_barrier_segment_members",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for the\nshield information barrier segment member"
    },
    "type": {
      "enum": [
        "shield_information_barrier_segment_member"
      ],
      "type": "string",
      "example": "shield_information_barrier_segment_member",
      "description": "The type of the shield information barrier segment member"
    }
  },
  "description": "A base representation of a\nshield information barrier segment member object",
  "x-box-variant": "base",
  "x-box-variants": [
    "base",
    "mini",
    "standard"
  ],
  "x-box-resource-id": "shield_information_barrier_segment_member--base"
}
object ShieldInformationBarrierSegmentMember--Mini
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/ShieldInformationBarrierSegmentMember--Base"
    },
    {
      "properties": {
        "user": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Base"
            },
            {
              "description": "The `type` and `id` of the requested shield information barrier segment member."
            }
          ]
        }
      }
    }
  ],
  "title": "Shield information barrier segment member (Mini)",
  "x-box-tag": "shield_information_barrier_segment_members",
  "description": "A mini representation of a\nshield information barrier segment member object",
  "x-box-variant": "mini",
  "x-box-variants": [
    "base",
    "mini",
    "standard"
  ],
  "x-box-resource-id": "shield_information_barrier_segment_member--mini"
}
object ShieldInformationBarrierSegmentMembers
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ShieldInformationBarrierSegmentMember"
          },
          "description": "A list of shield information\nbarrier segment members"
        }
      }
    }
  ],
  "title": "List of Shield Information Barrier Segment Members",
  "x-box-tag": "shield_information_barrier_segment_members",
  "description": "List of Shield Information Barrier Member objects",
  "x-box-resource-id": "shield_information_barrier_segment_members"
}
object ShieldInformationBarrierSegmentMembersCreateNewMemberRequest
{
  "type": "object",
  "required": [
    "shield_information_barrier_segment",
    "user"
  ],
  "properties": {
    "type": {
      "enum": [
        "shield_information_barrier_segment_member"
      ],
      "type": "string",
      "example": "shield_information_barrier_segment_member",
      "description": "-| A type of the shield barrier segment member."
    },
    "user": {
      "$ref": "#/components/schemas/User--Base"
    },
    "shield_information_barrier": {
      "$ref": "#/components/schemas/ShieldInformationBarrier--Base"
    },
    "shield_information_barrier_segment": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "432554",
          "description": "The ID reference of the\nrequesting shield information barrier segment."
        },
        "type": {
          "enum": [
            "shield_information_barrier_segment"
          ],
          "type": "string",
          "example": "shield_information_barrier_segment",
          "description": "The type of the shield barrier segment for this member."
        }
      },
      "description": "The `type` and `id` of the\nrequested shield information barrier segment."
    }
  },
  "x-konfig-properties": {
    "user": {
      "description": "User to which restriction will be applied."
    }
  }
}
object ShieldInformationBarrierSegmentRestriction
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/ShieldInformationBarrierSegmentRestriction--Mini"
    },
    {
      "properties": {
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2020-06-26T18:44:45.869Z",
          "description": "ISO date time string when this\nshield information barrier\nSegment Restriction object was created."
        },
        "created_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Base"
            },
            {
              "description": "The user who created this shield information barrier segment Restriction."
            }
          ]
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "example": "2020-07-26T18:44:45.869Z",
          "description": "ISO date time string when this\nshield information barrier segment\nRestriction was updated."
        },
        "updated_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Base"
            },
            {
              "description": "The user that updated this shield information barrier segment Restriction."
            }
          ]
        },
        "shield_information_barrier": {
          "$ref": "#/components/schemas/ShieldInformationBarrier--Base"
        }
      }
    }
  ],
  "title": "Shield information barrier segment restriction",
  "required": [
    "shield_information_barrier_segment",
    "restricted_segment"
  ],
  "x-box-tag": "shield_information_barrier_segment_restrictions",
  "description": "A standard representation of a\nsegment restriction of a shield information barrier\nobject",
  "x-box-variant": "standard",
  "x-box-variants": [
    "base",
    "mini",
    "standard"
  ],
  "x-box-resource-id": "shield_information_barrier_segment_restriction"
}
object ShieldInformationBarrierSegmentRestriction--Base
{
  "type": "object",
  "title": "Shield information barrier segment restriction (Base)",
  "required": [
    "shield_information_barrier_segment",
    "restricted_segment"
  ],
  "x-box-tag": "shield_information_barrier_segment_restrictions",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for the\nshield information barrier segment restriction."
    },
    "type": {
      "enum": [
        "shield_information_barrier_segment_restriction"
      ],
      "type": "string",
      "example": "shield_information_barrier_segment_restriction",
      "description": "Shield information barrier segment restriction"
    }
  },
  "description": "A base representation of\na segment restriction object for\nthe shield information barrier",
  "x-box-variant": "base",
  "x-box-variants": [
    "base",
    "mini",
    "standard"
  ],
  "x-box-resource-id": "shield_information_barrier_segment_restriction--base"
}
object ShieldInformationBarrierSegmentRestriction--Mini
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/ShieldInformationBarrierSegmentRestriction--Base"
    },
    {
      "properties": {
        "restricted_segment": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "example": "1910967",
              "description": "The ID reference of the\nrestricted shield information barrier segment."
            },
            "type": {
              "enum": [
                "shield_information_barrier_segment"
              ],
              "type": "string",
              "example": "shield_information_barrier_segment",
              "description": "The type of the shield information segment"
            }
          },
          "description": "The `type` and `id` of the\nrestricted shield information barrier segment."
        },
        "shield_information_barrier_segment": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "example": "1910967",
              "description": "The ID reference of the\nrequesting shield information barrier segment."
            },
            "type": {
              "enum": [
                "shield_information_barrier_segment"
              ],
              "type": "string",
              "example": "shield_information_barrier_segment",
              "description": "The type of the shield information barrier segment"
            }
          },
          "description": "The `type` and `id` of the\nrequested shield information barrier segment."
        }
      }
    }
  ],
  "title": "Shield information barrier segment restriction (Mini)",
  "required": [
    "shield_information_barrier_segment",
    "restricted_segment"
  ],
  "x-box-tag": "shield_information_barrier_segment_restrictions",
  "description": "A mini representation of\na segment restriction object for\nthe shield information barrier",
  "x-box-variant": "mini",
  "x-box-variants": [
    "base",
    "mini",
    "standard"
  ],
  "x-box-resource-id": "shield_information_barrier_segment_restriction--mini"
}
object ShieldInformationBarrierSegmentRestrictions
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ShieldInformationBarrierSegmentRestriction"
          },
          "description": "A list of shield information barrier\nsegment restriction objects"
        }
      }
    }
  ],
  "title": "List of Shield Information Barrier Segment Restrictions",
  "x-box-tag": "shield_information_barrier_segment_restrictions",
  "description": "List of shield information barrier segment restriction objects",
  "x-box-resource-id": "shield_information_barrier_segment_restrictions"
}
object ShieldInformationBarrierSegmentRestrictionsCreateBarrierObjectRequest
{
  "type": "object",
  "required": [
    "type",
    "shield_information_barrier_segment",
    "restricted_segment"
  ],
  "properties": {
    "type": {
      "enum": [
        "shield_information_barrier_segment_restriction"
      ],
      "type": "string",
      "example": "shield_information_barrier_segment_restriction",
      "description": "The type of the shield barrier segment\nrestriction for this member."
    },
    "restricted_segment": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "1910967",
          "description": "The ID reference of the restricted\nshield information barrier segment."
        },
        "type": {
          "enum": [
            "shield_information_barrier_segment"
          ],
          "type": "string",
          "example": "shield_information_barrier_segment",
          "description": "The type of the restricted shield\ninformation barrier segment."
        }
      },
      "description": "The `type` and `id` of the restricted\nshield information barrier segment."
    },
    "shield_information_barrier": {
      "$ref": "#/components/schemas/ShieldInformationBarrier--Base"
    },
    "shield_information_barrier_segment": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "1910967",
          "description": "The ID reference of the requesting\nshield information barrier segment."
        },
        "type": {
          "enum": [
            "shield_information_barrier_segment"
          ],
          "type": "string",
          "example": "shield_information_barrier_segment",
          "description": "The type of the shield barrier segment for this member."
        }
      },
      "description": "The `type` and `id` of the requested\nshield information barrier segment."
    }
  }
}
object ShieldInformationBarrierSegments
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ShieldInformationBarrierSegment"
          },
          "description": "A list of shield information barrier\nsegments"
        }
      }
    }
  ],
  "title": "List of Shield Information Barrier Segments",
  "x-box-tag": "shield_information_barrier_segments",
  "description": "List of Shield Information Barrier Segment objects",
  "x-box-resource-id": "shield_information_barrier_segments"
}
object ShieldInformationBarrierSegmentsCreateSegmentRequest
{
  "type": "object",
  "required": [
    "shield_information_barrier",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Investment Banking",
      "description": "Name of the shield information barrier segment"
    },
    "description": {
      "type": "string",
      "example": "'Corporate division that engages in\n advisory_based financial\ntransactions on behalf of individuals,\ncorporations, and governments.'",
      "description": "Description of the shield information barrier segment"
    },
    "shield_information_barrier": {
      "$ref": "#/components/schemas/ShieldInformationBarrier--Base"
    }
  }
}
object ShieldInformationBarrierSegmentsUpdateByIdRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Investment Banking",
      "pattern": "\\S+",
      "description": "The updated name for the shield information barrier segment."
    },
    "description": {
      "type": "string",
      "example": "'Corporate division that engages in advisory_based\nfinancial transactions on behalf of individuals,\ncorporations, and governments.'",
      "nullable": true,
      "description": "The updated description for\nthe shield information barrier segment."
    }
  },
  "description": "An object containing update(s) to be made on the Shield\nInformation Barrier Segment. Possible properties include\n'name' and 'description', the value in object is the update."
}
object ShieldInformationBarriers
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ShieldInformationBarrier"
          },
          "description": "A list of shield information barrier objects"
        }
      }
    }
  ],
  "title": "List of Shield Information Barriers",
  "x-box-tag": "shield_information_barriers",
  "description": "List of Shield Information Barrier objects",
  "x-box-resource-id": "shield_information_barriers"
}
object ShieldInformationBarriersAddChangedStatusRequest
{
  "type": "object",
  "required": [
    "id",
    "status"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "1910967",
      "description": "The ID of the shield information barrier."
    },
    "status": {
      "enum": [
        "pending",
        "disabled"
      ],
      "type": "string",
      "example": "pending",
      "description": "The desired status for the shield information barrier."
    }
  }
}
object ShieldInformationBarriersCreateBarrierRequest
{
  "type": "object",
  "required": [
    "enterprise"
  ],
  "properties": {
    "enterprise": {
      "$ref": "#/components/schemas/Enterprise--Base"
    }
  },
  "x-konfig-properties": {
    "enterprise": {
      "description": "The `type` and `id` of enterprise this barrier is under."
    }
  }
}
object SignRequest
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/SignRequest--Base"
    },
    {
      "properties": {
        "id": {
          "type": "string",
          "example": "12345",
          "description": "Sign request ID"
        },
        "type": {
          "enum": [
            "sign-request"
          ],
          "type": "string",
          "example": "sign-request",
          "description": "object type"
        },
        "status": {
          "enum": [
            "converting",
            "created",
            "sent",
            "viewed",
            "signed",
            "cancelled",
            "declined",
            "error_converting",
            "error_sending",
            "expired",
            "finalizing",
            "error_finalizing"
          ],
          "type": "string",
          "example": "converting",
          "description": "Describes the status of the sign request"
        },
        "signers": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/SignRequestSigner"
          },
          "description": "Array of signers for the sign request"
        },
        "sign_files": {
          "type": "object",
          "properties": {
            "files": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/File--Mini"
              }
            },
            "is_ready_for_download": {
              "type": "boolean",
              "example": true,
              "description": "Indicates whether the `sign_files` documents are processing\nand the PDFs may be out of date. A change to any document\nrequires processing on all `sign_files`. We\nrecommended waiting until processing is finished\n(and this value is true) before downloading the PDFs."
            }
          },
          "description": "List of files that will be signed, which are copies of the original\nsource files. A new version of these files are created as signers sign\nand can be downloaded at any point in the signing process."
        },
        "prepare_url": {
          "type": "string",
          "example": "https://prepareurl.com",
          "nullable": true,
          "description": "This URL is returned if `is_document_preparation_needed` is\nset to `true` in the request. It is used to prepare the sign request\nvia UI. The sign request is not sent until preparation is complete."
        },
        "signing_log": {
          "allOf": [
            {
              "$ref": "#/components/schemas/File--Mini"
            },
            {
              "description": "Reference to a file that holds a log of all signer activity for\nthe request"
            }
          ]
        },
        "source_files": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/File--Base"
          },
          "description": "List of files to create a signing document from. This is currently limited to ten files. Only the ID and type fields are required for each file."
        },
        "parent_folder": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Folder--Mini"
            },
            {
              "description": "The destination folder to place final, signed document and signing\nlog.\n\nWhen this value was not passed in when the signature request was \ncreated, then we will use a default folder which is either the parent\nfolder of the first source file in the payload if we have the permission\nto upload to that folder or a folder called \"My Sign Requests\"."
            }
          ],
          "nullable": false
        },
        "auto_expire_at": {
          "type": "string",
          "format": "date-time",
          "example": "2021-04-26T08:12:13.982Z",
          "nullable": true,
          "description": "Uses `days_valid` to calculate the date and time, in GMT, the sign request will expire if unsigned."
        },
        "signature_color": {
          "type": "string",
          "example": "blue",
          "nullable": true,
          "description": "Force a specific color for the signature (blue, black, or red)."
        }
      }
    }
  ],
  "title": "Sign Request",
  "x-box-tag": "sign_requests",
  "description": "A Sign Request Object",
  "x-box-variant": "standard",
  "x-box-variants": [
    "standard",
    "base"
  ],
  "x-box-resource-id": "sign_request"
}
object SignRequest--Base
{
  "type": "object",
  "title": "Sign Request (Base)",
  "x-box-tag": "sign_requests",
  "properties": {
    "name": {
      "type": "string",
      "example": "name",
      "description": "Name of the sign request."
    },
    "days_valid": {
      "type": "integer",
      "example": 2,
      "maximum": 730,
      "minimum": 0,
      "nullable": true,
      "description": "Set the number of days after which the created signature request will automatically expire if not completed. By default, we do not apply any expiration date on signature requests, and the signature request does not expire."
    },
    "external_id": {
      "type": "string",
      "example": "123",
      "nullable": true,
      "description": "This can be used to reference an ID in an external system that the sign request is related to."
    },
    "template_id": {
      "type": "string",
      "example": "123075213-af2c8822-3ef2-4952-8557-52d69c2fe9cb",
      "nullable": true,
      "description": "When a signature request is created from a template this field will indicate the id of that template."
    },
    "prefill_tags": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SignRequestPrefillTag"
      },
      "description": "When a document contains sign related tags in the content, you can prefill them using this `prefill_tags` by referencing the 'id' of the tag as the `external_id` field of the prefill tag."
    },
    "redirect_url": {
      "type": "string",
      "example": "https://www.example.com",
      "nullable": true,
      "description": "When specified, signature request will be redirected to this url when a document is signed."
    },
    "email_message": {
      "type": "string",
      "example": "Hello! Please sign the document below",
      "nullable": true,
      "description": "Message to include in sign request email. The field is cleaned through sanitization of specific characters. However, some html tags are allowed. Links included in the message are also converted to hyperlinks in the email. The message may contain the following html tags including `a`, `abbr`, `acronym`, `b`, `blockquote`, `code`, `em`, `i`, `ul`, `li`, `ol`, and `strong`. Be aware that when the text to html ratio is too high, the email may end up in spam filters. Custom styles on these tags are not allowed. If this field is not passed, a default message will be used."
    },
    "email_subject": {
      "type": "string",
      "example": "Sign Request from Acme",
      "nullable": true,
      "description": "Subject of sign request email. This is cleaned by sign request. If this field is not passed, a default subject will be used."
    },
    "are_reminders_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Reminds signers to sign a document on day 3, 8, 13 and 18. Reminders are only sent to outstanding signers."
    },
    "declined_redirect_url": {
      "type": "string",
      "example": "https://declined-redirect.com",
      "nullable": true,
      "description": "The uri that a signer will be redirected to after declining to sign a document."
    },
    "are_text_signatures_enabled": {
      "type": "boolean",
      "default": true,
      "example": true,
      "description": "Disables the usage of signatures generated by typing (text)."
    },
    "is_document_preparation_needed": {
      "type": "boolean",
      "example": true,
      "description": "Indicates if the sender should receive a `prepare_url` in the response to complete document preparation via UI."
    },
    "is_phone_verification_required_to_view": {
      "type": "boolean",
      "example": true,
      "nullable": true,
      "description": "Forces signers to verify a text message prior to viewing the document. You must specify the phone number of signers to have this setting apply to them."
    }
  },
  "description": "A request to create a sign request object",
  "x-box-variant": "base",
  "x-box-variants": [
    "standard",
    "base"
  ],
  "x-box-resource-id": "sign_request--base"
}
object SignRequestCreateRequest
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/SignRequest--Base"
    },
    {
      "properties": {
        "signers": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/SignRequestCreateSigner"
          },
          "description": "Array of signers for the sign request. 35 is the max number of signers permitted."
        },
        "source_files": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/File--Base"
          },
          "maxItems": 10,
          "nullable": true,
          "description": "List of files to create a signing document from. This is currently limited to ten files. Only the ID and type fields are required for each file."
        },
        "parent_folder": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Folder--Mini"
            },
            {
              "description": "The destination folder to place final, signed document and signing\nlog. Only `ID` and `type` fields are required. The root folder,\nfolder ID `0`, cannot be used and can also not be null.\n\nWhen this value is not passed in when the signature request, then\nwe will use a default folder which is either the parent folder of\nthe first source file in the payload if we have the permission to\nupload to that folder or a folder called \"My Sign Requests\"."
            }
          ]
        },
        "signature_color": {
          "enum": [
            "blue",
            "black",
            "red"
          ],
          "type": "string",
          "example": "blue",
          "nullable": true,
          "description": "Force a specific color for the signature (blue, black, or red)"
        }
      }
    }
  ],
  "title": "Create a sign request",
  "required": [
    "signers"
  ],
  "description": "A request to create a sign request object"
}
object SignRequestCreateSigner
{
  "type": "object",
  "title": "Signer fields for Create Sign Request",
  "properties": {
    "role": {
      "enum": [
        "signer",
        "approver",
        "final_copy_reader"
      ],
      "type": "string",
      "default": "signer",
      "example": "signer",
      "description": "Defines the role of the signer in the sign request. A `signer`\nmust sign the document and an `approver` must approve the document. A\n`final_copy_reader` only receives the final signed document and signing\nlog."
    },
    "email": {
      "type": "string",
      "example": "example@gmail.com",
      "nullable": true,
      "description": "Email address of the signer.\nThe email address of the signer is required when making signature requests, except when using templates that are configured to include emails."
    },
    "order": {
      "type": "integer",
      "example": 2,
      "minimum": 0,
      "description": "Order of the signer"
    },
    "password": {
      "type": "string",
      "example": "SecretPassword123",
      "nullable": true,
      "writeOnly": true,
      "description": "If set, the signer is required to enter the password before they are able\nto sign a document. This field is write only."
    },
    "is_in_person": {
      "type": "boolean",
      "example": true,
      "description": "Used in combination with an embed URL for a sender. After the\nsender signs, they are redirected to the next `in_person` signer."
    },
    "redirect_url": {
      "type": "string",
      "example": "https://example.com",
      "nullable": true,
      "description": "The URL that a signer will be redirected\nto after signing a document. Defining this URL\noverrides default or global redirect URL\nsettings for a specific signer.\nIf no declined redirect URL is specified,\nthis URL will be used for decline actions as well."
    },
    "login_required": {
      "type": "boolean",
      "example": true,
      "nullable": true,
      "description": "If set to true, signer will need to login to a Box account\nbefore signing the request. If the signer does not have\nan existing account, they will have an option to create\na free Box account."
    },
    "signer_group_id": {
      "type": "string",
      "example": "cd4ff89-8fc1-42cf-8b29-1890dedd26d7",
      "nullable": true,
      "description": "If set, signers who have the same value will be assigned to the same input and to the same signer group.\nA signer group is not a Box Group. It is an entity that belongs to a Sign Request and can only be\nused/accessed within this Sign Request. A signer group is expected to have more than one signer.\nIf the provided value is only used for one signer, this value will be ignored and request will be handled\nas it was intended for an individual signer. The value provided can be any string and only used to\ndetermine which signers belongs to same group. A successful response will provide a generated UUID value\ninstead for signers in the same signer group."
    },
    "declined_redirect_url": {
      "type": "string",
      "example": "https://declined-example.com",
      "nullable": true,
      "description": "The URL that a signer will be redirect\nto after declining to sign a document.\nDefining this URL overrides default or global\ndeclined redirect URL settings for a specific signer."
    },
    "verification_phone_number": {
      "type": "string",
      "example": "6314578901",
      "nullable": true,
      "description": "If set, this phone number is be used to verify the signer\nvia two factor authentication before they are able to sign the document."
    },
    "embed_url_external_user_id": {
      "type": "string",
      "example": "1234",
      "nullable": true,
      "description": "User ID for the signer in an external application responsible\nfor authentication when accessing the embed URL."
    }
  },
  "description": "The schema for a Signer in a POST Sign Request request body"
}
object SignRequestPrefillTag
{
  "type": "object",
  "title": "Sign Request Prefill Tag",
  "properties": {
    "date_value": {
      "type": "string",
      "format": "date",
      "example": "2021-04-26",
      "nullable": true,
      "description": "Date prefill value"
    },
    "text_value": {
      "type": "string",
      "example": "text",
      "nullable": true,
      "description": "Text prefill value"
    },
    "checkbox_value": {
      "type": "boolean",
      "example": true,
      "nullable": true,
      "description": "Checkbox prefill value"
    },
    "document_tag_id": {
      "type": "string",
      "example": "1234",
      "nullable": true,
      "description": "This references the ID of a specific tag contained in a file of the sign request."
    }
  },
  "description": "Prefill tags are used to prefill placeholders with signer input data. Only\none value field can be included."
}
object SignRequestSigner
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/SignRequestCreateSigner"
    },
    {
      "properties": {
        "inputs": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/SignRequestSignerInput"
          },
          "readOnly": true
        },
        "embed_url": {
          "type": "string",
          "example": "https://example.com",
          "nullable": true,
          "readOnly": true,
          "description": "URL to direct a signer to for signing"
        },
        "signer_decision": {
          "type": "object",
          "nullable": true,
          "properties": {
            "type": {
              "enum": [
                "signed",
                "declined"
              ],
              "type": "string",
              "example": "signed",
              "description": "Type of decision made by the signer"
            },
            "finalized_at": {
              "type": "string",
              "format": "date-time",
              "example": "2021-04-26T08:12:13.982Z",
              "description": "Date and Time that the decision was made"
            },
            "additional_info": {
              "type": "string",
              "example": "Requesting changes before signing.",
              "nullable": true,
              "description": "Additional info about the decision, such as the decline reason from the signer"
            }
          },
          "description": "Final decision made by the signer"
        },
        "has_viewed_document": {
          "type": "boolean",
          "example": true,
          "readOnly": true,
          "description": "Set to `true` if the signer views the document"
        },
        "iframeable_embed_url": {
          "type": "string",
          "example": "https://app.box.com/embed/sign/document/gfhr4222-a331-494b-808b-79bc7f3992a3/f14d7098-a331-494b-808b-79bc7f3992a4",
          "nullable": true,
          "description": "This URL is specifically designed for\nsigning documents within an HTML `iframe` tag.\nIt will be returned in the response\nonly if the `embed_url_external_user_id`\nparameter was passed in the\n`create sign request` call."
        }
      }
    }
  ],
  "title": "Signer fields for GET Sign Request response",
  "required": [
    "email"
  ],
  "description": "The schema for a Signer in a GET Sign Request request body"
}
object SignRequestSignerInput
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/SignRequestPrefillTag"
    },
    {
      "properties": {
        "type": {
          "enum": [
            "signature",
            "date",
            "text",
            "checkbox",
            "radio",
            "dropdown"
          ],
          "type": "string",
          "example": "text",
          "description": "Type of input"
        },
        "read_only": {
          "type": "boolean",
          "example": true,
          "description": "Whether this input was defined as read-only(immutable by signers) or not"
        },
        "page_index": {
          "type": "integer",
          "example": 4,
          "description": "Index of page that the input is on"
        },
        "content_type": {
          "enum": [
            "signature",
            "initial",
            "stamp",
            "date",
            "checkbox",
            "text",
            "full_name",
            "first_name",
            "last_name",
            "company",
            "title",
            "email",
            "attachment",
            "radio",
            "dropdown"
          ],
          "type": "string",
          "example": "signature",
          "description": "Content type of input"
        }
      }
    }
  ],
  "title": "Sign Request Signer Input",
  "required": [
    "page_index"
  ],
  "description": "Input created by a Signer on a Sign Request"
}
object SignRequests
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/SignRequest"
          },
          "description": "A list of sign requests"
        }
      }
    }
  ],
  "title": "Box Sign",
  "x-box-tag": "sign_requests",
  "description": "A standard representation of a sign request, as returned from any Box Sign\nAPI endpoints by default.",
  "x-box-resource-id": "sign_requests"
}
object SignTemplate
{
  "type": "object",
  "allOf": [
    {
      "properties": {
        "id": {
          "type": "string",
          "example": "4206996024-14944f75-c34b-478a-95a1-264b1ff80d35",
          "description": "Template identifier."
        },
        "name": {
          "type": "string",
          "example": "Official contract",
          "nullable": true,
          "description": "The name of the template."
        },
        "type": {
          "enum": [
            "sign-template"
          ],
          "type": "string",
          "example": "sign-template",
          "description": "object type"
        },
        "signers": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/TemplateSigner"
          },
          "description": "Array of signers for the template."
        },
        "days_valid": {
          "type": "integer",
          "example": 2,
          "maximum": 730,
          "minimum": 0,
          "nullable": true,
          "description": "Set the number of days after which the created signature request will automatically expire if not completed. By default, we do not apply any expiration date on signature requests, and the signature request does not expire."
        },
        "source_files": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/File--Mini"
          },
          "description": "List of files to create a signing document from. Only the ID and type fields are required for each file."
        },
        "email_message": {
          "type": "string",
          "example": "Hello! Please sign the document below",
          "nullable": true,
          "description": "Message to include in signature request email. The field is cleaned through sanitization of specific characters. However, some html tags are allowed. Links included in the message are also converted to hyperlinks in the email. The message may contain the following html tags including `a`, `abbr`, `acronym`, `b`, `blockquote`, `code`, `em`, `i`, `ul`, `li`, `ol`, and `strong`. Be aware that when the text to html ratio is too high, the email may end up in spam filters. Custom styles on these tags are not allowed. If this field is not passed, a default message will be used."
        },
        "email_subject": {
          "type": "string",
          "example": "Sign Request from Acme",
          "nullable": true,
          "description": "Subject of signature request email. This is cleaned by sign request. If this field is not passed, a default subject will be used."
        },
        "parent_folder": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Folder--Mini"
            },
            {
              "description": "The destination folder to place final, signed document and signing\nlog. Only `ID` and `type` fields are required. The root folder,\nfolder ID `0`, cannot be used."
            }
          ]
        },
        "additional_info": {
          "type": "object",
          "properties": {
            "required": {
              "type": "object",
              "properties": {
                "signers": {
                  "type": "array",
                  "items": {
                    "type": "array",
                    "items": {
                      "enum": [
                        "email"
                      ],
                      "type": "string"
                    },
                    "example": [
                      "email"
                    ]
                  },
                  "example": [
                    [
                      "email"
                    ],
                    [
                      "email"
                    ]
                  ],
                  "description": "Required signer fields."
                }
              },
              "description": "Required fields."
            },
            "non_editable": {
              "type": "array",
              "items": {
                "enum": [
                  "email_subject",
                  "email_message",
                  "name",
                  "days_valid",
                  "signers",
                  "source_files"
                ],
                "type": "string"
              },
              "example": [
                "email_subject",
                "name"
              ],
              "description": "Non editable fields."
            }
          },
          "description": "Additional information on which fields are required and which fields are not editable."
        },
        "custom_branding": {
          "type": "object",
          "nullable": true,
          "properties": {
            "logo_uri": {
              "type": "string",
              "example": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA\nAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A\n8AAQUBAScY42YAAAAASUVORK5CYII=",
              "nullable": true,
              "description": "Custom branding logo URI in the form of a base64 image."
            },
            "company_name": {
              "type": "string",
              "example": "Corporation inc.",
              "nullable": true,
              "description": "Name of the company"
            },
            "branding_color": {
              "type": "string",
              "example": "9E5E6F",
              "nullable": true,
              "description": "Custom branding color in hex."
            },
            "email_footer_text": {
              "type": "string",
              "example": "Contact email email@mail.com",
              "nullable": true,
              "description": "Content of the email footer."
            }
          },
          "description": "Custom branding applied to notifications\nand signature requests."
        },
        "ready_sign_link": {
          "type": "object",
          "nullable": true,
          "properties": {
            "url": {
              "type": "string",
              "example": "\"https://app.box.com/sign/\nready-sign-link/a1cdf2c7-fa81-4a67-8163-1e5f4dbe5178\"",
              "description": "The URL that can be sent to signers."
            },
            "name": {
              "type": "string",
              "example": "Official contract",
              "nullable": true,
              "description": "Request name."
            },
            "folder_id": {
              "type": "string",
              "example": "12345",
              "nullable": true,
              "description": "The destination folder to place final,\nsigned document and signing\nlog. Only `ID` and `type` fields are required.\nThe root folder,\nfolder ID `0`, cannot be used."
            },
            "is_active": {
              "type": "boolean",
              "example": false,
              "description": "Whether the ready sign link is enabled or not."
            },
            "instructions": {
              "type": "string",
              "example": "Hello! Please sign the document below",
              "nullable": true,
              "description": "Extra instructions for all signers."
            },
            "is_notification_disabled": {
              "type": "boolean",
              "example": true,
              "description": "Whether to disable notifications when\na signer has signed."
            }
          },
          "description": "Box's ready-sign link feature enables you to create a link to a signature request that you've created from a template. Use this link when you want to post a signature request on a public form — such as an email, social media post, or web page — without knowing who the signers will be. Note: The ready-sign link feature is limited to Enterprise Plus customers and not available to Box Verified Enterprises."
        },
        "are_files_locked": {
          "type": "boolean",
          "example": true,
          "description": "Indicates if the template files are editable or not. This includes deleting or renaming template files."
        },
        "are_fields_locked": {
          "type": "boolean",
          "example": false,
          "description": "Indicates if the template input fields are editable or not."
        },
        "are_options_locked": {
          "type": "boolean",
          "example": true,
          "description": "Indicates if the template document options are editable or not, for example renaming the document."
        },
        "are_recipients_locked": {
          "type": "boolean",
          "example": false,
          "description": "Indicates if the template signers are editable or not."
        },
        "are_email_settings_locked": {
          "type": "boolean",
          "example": true,
          "description": "Indicates if the template email settings are editable or not."
        }
      }
    }
  ],
  "title": "Box Sign template",
  "x-box-tag": "sign_templates",
  "description": "A Box Sign template object",
  "x-box-resource-id": "sign_template"
}
object SignTemplates
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        },
        "prev_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVih",
          "nullable": true,
          "description": "The marker for the start of the previous page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/SignTemplate"
          },
          "description": "A list of templates."
        }
      }
    }
  ],
  "title": "Box Sign templates",
  "x-box-tag": "sign_templates",
  "description": "A list of templates, as returned from any Box Sign\nAPI endpoints by default.",
  "x-box-resource-id": "sign_templates"
}
object SkillCardsMetadata
{
  "type": "object",
  "title": "Skills metadata instance",
  "x-box-tag": "skills",
  "properties": {
    "$id": {
      "type": "string",
      "format": "uuid",
      "example": "01234500-12f1-1234-aa12-b1d234cb567e",
      "maxLength": 36,
      "description": "A UUID to identify the metadata object"
    },
    "$type": {
      "type": "string",
      "example": "properties-6bcba49f-ca6d-4d2a-a758-57fe6edf44d0",
      "description": "A unique identifier for the \"type\" of this instance. This is an internal\nsystem property and should not be used by a client application."
    },
    "cards": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/KeywordSkillCard"
          },
          {
            "$ref": "#/components/schemas/TimelineSkillCard"
          },
          {
            "$ref": "#/components/schemas/TranscriptSkillCard"
          },
          {
            "$ref": "#/components/schemas/StatusSkillCard"
          }
        ]
      },
      "description": "A list of Box Skill cards that have been applied to this file."
    },
    "$scope": {
      "type": "string",
      "example": "enterprise_27335",
      "description": "An ID for the scope in which this template\nhas been applied"
    },
    "$parent": {
      "type": "string",
      "example": "folder_59449484661,",
      "description": "An ID for the parent folder"
    },
    "$canEdit": {
      "type": "boolean",
      "example": true,
      "description": "Whether the user can edit this metadata"
    },
    "$version": {
      "type": "integer",
      "example": 1,
      "description": "The version of the metadata object. Starts at 0 and increases every time\na user-defined property is modified."
    },
    "$template": {
      "type": "string",
      "example": "properties",
      "description": "The name of the template"
    },
    "$typeVersion": {
      "type": "integer",
      "example": 2,
      "description": "The last-known version of the template of the object. This is an internal\nsystem property and should not be used by a client application."
    }
  },
  "description": "The metadata assigned to a using for Box skills.",
  "x-box-resource-id": "skill_cards_metadata"
}
object SkillInvocation
{
  "type": "object",
  "title": "Skill webhook payload",
  "x-box-tag": "skills",
  "properties": {
    "id": {
      "type": "string",
      "example": "fd1d2e53-35f5-41fb-9c25-4ba326daf2f9_341016304",
      "description": "Unique identifier for the invocation request."
    },
    "type": {
      "enum": [
        "skill_invocation"
      ],
      "type": "string",
      "example": "skill_invocation",
      "description": "`skill_invocation`"
    },
    "event": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Event"
        },
        {
          "description": "The event that triggered this invocation"
        }
      ]
    },
    "skill": {
      "allOf": [
        {
          "type": "object",
          "title": "Skill",
          "properties": {
            "id": {
              "type": "string",
              "example": "11446498",
              "description": "The unique identifier for this skill"
            },
            "name": {
              "type": "string",
              "example": "Hello World Skill",
              "description": "The name of the skill"
            },
            "type": {
              "enum": [
                "skill"
              ],
              "type": "string",
              "example": "skill",
              "description": "`skill`"
            },
            "api_key": {
              "type": "string",
              "example": "hxel2s12wd2h9r8ne103c4gjbqefofih",
              "description": "The client ID of the application"
            }
          },
          "description": "An object representing a skill"
        },
        {
          "description": "The skill that triggered this invocation"
        }
      ]
    },
    "token": {
      "type": "object",
      "properties": {
        "read": {
          "type": "object",
          "properties": {
            "expires_in": {
              "type": "integer",
              "format": "int64",
              "example": 3600,
              "description": "The time in seconds by which this token will expire."
            },
            "token_type": {
              "enum": [
                "bearer"
              ],
              "type": "string",
              "example": "bearer",
              "description": "The type of access token returned."
            },
            "access_token": {
              "type": "string",
              "format": "token",
              "example": "c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ",
              "description": "The requested access token."
            },
            "restricted_to": {
              "type": "string",
              "example": "[{\"scope\":\"gcm\"}, {\"scope\":\"item_upload\",\"object_id\":933941692081,\"object_type\":\"file\"}, {\"scope\":\"manage_skill_invocations\"}]",
              "description": "The permissions that this access token permits,\nproviding a list of resources (files, folders, etc)\nand the scopes permitted for each of those resources."
            }
          },
          "description": "The basics of an access token"
        },
        "write": {
          "type": "object",
          "properties": {
            "expires_in": {
              "type": "integer",
              "format": "int64",
              "example": 3600,
              "description": "The time in seconds by which this token will expire."
            },
            "token_type": {
              "enum": [
                "bearer"
              ],
              "type": "string",
              "example": "bearer",
              "description": "The type of access token returned."
            },
            "access_token": {
              "type": "string",
              "format": "token",
              "example": "c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ",
              "description": "The requested access token."
            },
            "restricted_to": {
              "type": "string",
              "example": "[{\"scope\":\"gcm\"}, {\"scope\":\"item_upload\",\"object_id\":933941692081,\"object_type\":\"file\"}, {\"scope\":\"manage_skill_invocations\"}]",
              "description": "The permissions that this access token permits,\nproviding a list of resources (files, folders, etc)\nand the scopes permitted for each of those resources."
            }
          },
          "description": "The basics of an access token"
        }
      },
      "description": "The read-only and read-write access tokens for this item"
    },
    "source": {
      "allOf": [
        {
          "oneOf": [
            {
              "$ref": "#/components/schemas/File"
            },
            {
              "$ref": "#/components/schemas/Folder"
            }
          ]
        },
        {
          "description": "The item that caused the invocation to trigger"
        }
      ]
    },
    "status": {
      "type": "object",
      "properties": {
        "state": {
          "enum": [
            "invoked",
            "processing",
            "success",
            "transient_failure",
            "permanent_failure"
          ],
          "type": "string",
          "example": "invoked",
          "description": "The state of this event.\n\n* `invoked` - Triggered the skill with event details to start\n  applying skill on the file.\n* `processing` - Currently processing.\n* `success` - Completed processing with a success.\n* `transient_failure` - Encountered an issue which can be\n  retried.\n* `permanent_failure` -  Encountered a permanent issue and\n  retry would not help."
        },
        "message": {
          "type": "string",
          "example": "Example",
          "description": "Status information"
        },
        "error_code": {
          "type": "string",
          "example": "400",
          "description": "Error code information, if error occurred."
        },
        "additional_info": {
          "type": "string",
          "example": "Example",
          "description": "Additional status information."
        }
      },
      "description": "The details status of this event."
    },
    "trigger": {
      "type": "string",
      "example": "FILE_CONTENT",
      "description": "Action that triggered the invocation"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "The time this invocation was created."
    },
    "enterprise": {
      "allOf": [
        {
          "type": "object",
          "title": "Enterprise",
          "properties": {
            "id": {
              "type": "string",
              "example": "11446498",
              "description": "The unique identifier for this enterprise."
            },
            "name": {
              "type": "string",
              "example": "Acme Inc.",
              "description": "The name of the enterprise"
            },
            "type": {
              "enum": [
                "enterprise"
              ],
              "type": "string",
              "example": "enterprise",
              "description": "`enterprise`"
            }
          },
          "description": "A representation of a Box enterprise"
        },
        {
          "description": "The enterprise that this invocation was triggered for"
        }
      ]
    }
  },
  "description": "The payload of a Box skill as sent to a skill's\n`invocation_url`.",
  "x-box-resource-id": "skill_invocation"
}
object SkillsApplyBoxSkillCardsRequest
{
  "type": "object",
  "required": [
    "cards"
  ],
  "properties": {
    "cards": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/KeywordSkillCard"
          },
          {
            "$ref": "#/components/schemas/TimelineSkillCard"
          },
          {
            "$ref": "#/components/schemas/TranscriptSkillCard"
          },
          {
            "$ref": "#/components/schemas/StatusSkillCard"
          }
        ]
      },
      "description": "A list of Box Skill cards to apply to this file."
    }
  }
}
object SkillsUpdateAllBoxSkillCardsRequest
{
  "type": "object",
  "required": [
    "status",
    "metadata",
    "file"
  ],
  "properties": {
    "file": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "3243244",
          "description": "The ID of the file"
        },
        "type": {
          "enum": [
            "file"
          ],
          "type": "string",
          "example": "file",
          "description": "`file`"
        }
      },
      "description": "The file to assign the cards to."
    },
    "usage": {
      "type": "object",
      "properties": {
        "unit": {
          "type": "string",
          "example": "file",
          "description": "`file`"
        },
        "value": {
          "type": "number",
          "example": 1,
          "description": "`1`"
        }
      },
      "description": "A descriptor that defines what items are affected by this call.\n\nSet this to the default values when setting a card to a `success`\nstate, and leave it out in most other situations."
    },
    "status": {
      "enum": [
        "invoked",
        "processing",
        "success",
        "transient_failure",
        "permanent_failure"
      ],
      "type": "string",
      "example": "success",
      "description": "Defines the status of this invocation. Set this to `success` when setting Skill cards."
    },
    "metadata": {
      "type": "object",
      "properties": {
        "cards": {
          "type": "array",
          "items": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/KeywordSkillCard"
              },
              {
                "$ref": "#/components/schemas/TimelineSkillCard"
              },
              {
                "$ref": "#/components/schemas/TranscriptSkillCard"
              },
              {
                "$ref": "#/components/schemas/StatusSkillCard"
              }
            ]
          },
          "description": "A list of Box Skill cards to apply to this file."
        }
      },
      "description": "The metadata to set for this skill. This is a list of\nBox Skills cards. These cards will overwrite any existing Box\nskill cards on the file."
    },
    "file_version": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "731381601045",
          "description": "The ID of the file version"
        },
        "type": {
          "enum": [
            "file_version"
          ],
          "type": "string",
          "example": "file_version",
          "description": "`file_version`"
        }
      },
      "description": "The optional file version to assign the cards to."
    }
  }
}
array SkillsUpdateBoxSkillCardsOnFileRequest
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "op": {
        "enum": [
          "replace"
        ],
        "type": "string",
        "example": "replace",
        "description": "`replace`"
      },
      "path": {
        "type": "string",
        "example": "/cards/0",
        "description": "The JSON Path that represents the card to replace. In most cases\nthis will be in the format `/cards/{index}` where `index` is the\nzero-indexed position of the card in the list of cards."
      },
      "value": {
        "allOf": [
          {
            "oneOf": [
              {
                "$ref": "#/components/schemas/KeywordSkillCard"
              },
              {
                "$ref": "#/components/schemas/TimelineSkillCard"
              },
              {
                "$ref": "#/components/schemas/TranscriptSkillCard"
              },
              {
                "$ref": "#/components/schemas/StatusSkillCard"
              }
            ]
          },
          {
            "description": "The card to insert into the list of cards at the\nposition defined by `path`."
          }
        ]
      }
    },
    "description": "An operation that replaces an existing card."
  },
  "description": "A [JSON-Patch](https://tools.ietf.org/html/rfc6902)\nspecification for the changes to make to the metadata\ntemplate.\n\nThe changes are represented as a JSON array of\noperation objects."
}
object StandardAndZonesStoragePolicyAssignmentsCreateAssignmentRequest
{
  "type": "object",
  "required": [
    "storage_policy",
    "assigned_to"
  ],
  "properties": {
    "assigned_to": {
      "type": "object",
      "required": [
        "type",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "9987987",
          "description": "The ID of the user or enterprise"
        },
        "type": {
          "enum": [
            "user",
            "enterprise"
          ],
          "type": "string",
          "example": "user",
          "description": "The type to assign the policy to."
        }
      },
      "description": "The user or enterprise to assign the storage\npolicy to."
    },
    "storage_policy": {
      "type": "object",
      "required": [
        "type",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "1434325",
          "description": "The ID of the storage policy to assign."
        },
        "type": {
          "enum": [
            "storage_policy"
          ],
          "type": "string",
          "example": "storage_policy",
          "description": "The type to assign."
        }
      },
      "description": "The storage policy to assign to the user or\nenterprise"
    }
  }
}
object StandardAndZonesStoragePolicyAssignmentsUpdateSpecificAssignmentRequest
{
  "type": "object",
  "required": [
    "storage_policy"
  ],
  "properties": {
    "storage_policy": {
      "type": "object",
      "required": [
        "type",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "1434325",
          "description": "The ID of the storage policy to assign."
        },
        "type": {
          "enum": [
            "storage_policy"
          ],
          "type": "string",
          "example": "storage_policy",
          "description": "The type to assign."
        }
      },
      "description": "The storage policy to assign to the user or\nenterprise"
    }
  }
}
object StatusSkillCard
{
  "type": "object",
  "title": "Status Skill Card",
  "required": [
    "type",
    "skill_card_type",
    "skill",
    "invocation",
    "status"
  ],
  "x-box-tag": "skills",
  "properties": {
    "type": {
      "enum": [
        "skill_card"
      ],
      "type": "string",
      "example": "skill_card",
      "description": "`skill_card`"
    },
    "skill": {
      "type": "object",
      "required": [
        "type",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "image-recognition-service",
          "description": "A custom identifier that represent the service that\napplied this metadata."
        },
        "type": {
          "enum": [
            "service"
          ],
          "type": "string",
          "example": "service",
          "description": "`service`"
        }
      },
      "description": "The service that applied this metadata."
    },
    "status": {
      "type": "object",
      "required": [
        "code"
      ],
      "properties": {
        "code": {
          "enum": [
            "invoked",
            "processing",
            "success",
            "transient_failure",
            "permanent_failure"
          ],
          "type": "string",
          "example": "success",
          "description": "A code for the status of this Skill invocation. By\ndefault each of these will have their own accompanied\nmessages. These can be adjusted by setting the `message`\nvalue on this object."
        },
        "message": {
          "type": "string",
          "example": "We're preparing to process your file. Please hold on!",
          "description": "A custom message that can be provided with this status.\nThis will be shown in the web app to the end user."
        }
      },
      "description": "Sets the status of the skill. This can be used to show a message to the user while the Skill is processing the data, or if it was not able to process the file."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2018-04-13T13:53:23-07:00",
      "description": "The optional date and time this card was created at."
    },
    "invocation": {
      "type": "object",
      "required": [
        "type",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "image-recognition-service-123",
          "description": "A custom identifier that represent the instance of\nthe service that applied this metadata. For example,\nif your `image-recognition-service` runs on multiple\nnodes, this field can be used to identify the ID of\nthe node that was used to apply the metadata."
        },
        "type": {
          "enum": [
            "skill_invocation"
          ],
          "type": "string",
          "example": "skill_invocation",
          "description": "`skill_invocation`"
        }
      },
      "description": "The invocation of this service, used to track\nwhich instance of a service applied the metadata."
    },
    "skill_card_type": {
      "enum": [
        "status"
      ],
      "type": "string",
      "example": "status",
      "description": "`status`"
    },
    "skill_card_title": {
      "type": "object",
      "required": [
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "example": "status",
          "description": "An optional identifier for the title."
        },
        "message": {
          "type": "string",
          "example": "Status",
          "description": "The actual title to show in the UI."
        }
      },
      "description": "The title of the card."
    }
  },
  "description": "A Box Skill metadata card that puts a status message in the metadata sidebar.",
  "x-box-resource-id": "status_skill_card"
}
object StoragePolicies
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        },
        "prev_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVih",
          "nullable": true,
          "description": "The marker for the start of the previous page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/StoragePolicy"
          },
          "description": "A list of storage policies"
        }
      }
    }
  ],
  "title": "Storage policies",
  "x-box-tag": "storage_policies",
  "description": "A list of storage policies.",
  "x-box-resource-id": "storage_policies"
}
object StoragePolicy
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/StoragePolicy--Mini"
    },
    {
      "properties": {
        "name": {
          "type": "string",
          "example": "Montreal / Dublin",
          "description": "A descriptive name of the region"
        }
      }
    }
  ],
  "title": "Storage policy",
  "description": "The Storage Policy object describes the storage zone.",
  "x-box-variant": "standard",
  "x-box-resource-id": "storage_policy"
}
object StoragePolicy--Mini
{
  "type": "object",
  "title": "Storage policy (Mini)",
  "required": [
    "id",
    "type"
  ],
  "x-box-tag": "storage_policies",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this storage policy"
    },
    "type": {
      "enum": [
        "storage_policy"
      ],
      "type": "string",
      "example": "storage_policy",
      "description": "`storage_policy`"
    }
  },
  "description": "A mini description of a Storage Policy object",
  "x-box-variant": "mini",
  "x-box-variants": [
    "standard",
    "mini"
  ],
  "x-box-resource-id": "storage_policy--mini"
}
object StoragePolicyAssignment
{
  "type": "object",
  "title": "Storage policy assignment",
  "required": [
    "id",
    "type"
  ],
  "x-box-tag": "storage_policy_assignments",
  "properties": {
    "id": {
      "type": "string",
      "example": "ZW50ZXJwcmlzZV8xMjM0NTY3ODkw",
      "description": "The unique identifier for a storage policy assignment."
    },
    "type": {
      "enum": [
        "storage_policy_assignment"
      ],
      "type": "string",
      "example": "storage_policy_assignment",
      "description": "`storage_policy_assignment`"
    },
    "assigned_to": {
      "allOf": [
        {
          "type": "object",
          "title": "Reference",
          "properties": {
            "id": {
              "type": "string",
              "example": "11446498",
              "description": "The unique identifier for this object"
            },
            "type": {
              "type": "string",
              "example": "file",
              "description": "The type for this object"
            }
          },
          "description": "The bare basic reference for an object"
        },
        {
          "description": "The enterprise or use the policy is assigned to"
        }
      ]
    },
    "storage_policy": {
      "allOf": [
        {
          "$ref": "#/components/schemas/StoragePolicy--Mini"
        },
        {
          "description": "The assigned storage policy"
        }
      ]
    }
  },
  "description": "The assignment of a storage policy to a user or enterprise",
  "x-box-resource-id": "storage_policy_assignment"
}
object StoragePolicyAssignments
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        },
        "prev_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVih",
          "nullable": true,
          "description": "The marker for the start of the previous page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/StoragePolicyAssignment"
          },
          "description": "A list of storage policy assignments"
        }
      }
    }
  ],
  "title": "Storage policy assignments",
  "x-box-tag": "storage_policy_assignments",
  "description": "A list of storage policy assignments.",
  "x-box-resource-id": "storage_policy_assignments"
}
object Task
{
  "type": "object",
  "title": "Task",
  "x-box-tag": "tasks",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this task"
    },
    "item": {
      "allOf": [
        {
          "$ref": "#/components/schemas/File--Mini"
        },
        {
          "description": "The file associated with the task"
        }
      ]
    },
    "type": {
      "enum": [
        "task"
      ],
      "type": "string",
      "example": "task",
      "description": "`task`"
    },
    "action": {
      "enum": [
        "review",
        "complete"
      ],
      "type": "string",
      "example": "review",
      "description": "The type of task the task assignee will be prompted to\nperform."
    },
    "due_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "When the task is due"
    },
    "message": {
      "type": "string",
      "example": "Legal review",
      "description": "A message that will be included with the task"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "When the task object was created"
    },
    "created_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who created the task"
        }
      ]
    },
    "is_completed": {
      "type": "boolean",
      "example": true,
      "description": "Whether the task has been completed"
    },
    "completion_rule": {
      "enum": [
        "all_assignees",
        "any_assignee"
      ],
      "type": "string",
      "example": "all_assignees",
      "description": "Defines which assignees need to complete this task before the task\nis considered completed.\n\n* `all_assignees` requires all assignees to review or\napprove the the task in order for it to be considered completed.\n* `any_assignee` accepts any one assignee to review or\napprove the the task in order for it to be considered completed."
    },
    "task_assignment_collection": {
      "allOf": [
        {
          "$ref": "#/components/schemas/TaskAssignments"
        },
        {
          "description": "A collection of task assignment objects\nassociated with the task"
        }
      ]
    }
  },
  "description": "A task allows for file-centric workflows within Box. Users can\ncreate tasks on files and assign them to other users for them to complete the\ntasks.",
  "x-box-resource-id": "task"
}
object TaskAssignment
{
  "type": "object",
  "title": "Task assignment",
  "x-box-tag": "task_assignments",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this task assignment"
    },
    "item": {
      "allOf": [
        {
          "$ref": "#/components/schemas/File--Mini"
        },
        {
          "description": "The file that the task has been assigned to."
        }
      ]
    },
    "type": {
      "enum": [
        "task_assignment"
      ],
      "type": "string",
      "example": "task_assignment",
      "description": "`task_assignment`"
    },
    "message": {
      "type": "string",
      "example": "Please review",
      "description": "A message that will is included with the task\nassignment. This is visible to the assigned user in the web and mobile\nUI."
    },
    "assigned_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "The date at which this task was assigned to the user."
    },
    "assigned_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who assigned this task."
        }
      ]
    },
    "assigned_to": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user that the task has been assigned to."
        }
      ]
    },
    "reminded_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "The date at which the assigned user was reminded of this task\nassignment."
    },
    "completed_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "The date at which this task assignment was\ncompleted. This will be `null` if the task is not completed yet."
    },
    "resolution_state": {
      "enum": [
        "completed",
        "incomplete",
        "approved",
        "rejected"
      ],
      "type": "string",
      "example": "incomplete",
      "description": "The current state of the assignment. The available states depend on\nthe `action` value of the task object."
    }
  },
  "description": "A task assignment defines which task is assigned to which user to complete.",
  "x-box-resource-id": "task_assignment"
}
object TaskAssignments
{
  "type": "object",
  "title": "Task assignments",
  "x-box-tag": "task_assignments",
  "properties": {
    "entries": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TaskAssignment"
      },
      "description": "A list of task assignments"
    },
    "total_count": {
      "type": "integer",
      "format": "int64",
      "example": 100,
      "description": "The total number of items in this collection."
    }
  },
  "description": "A list of task assignments",
  "x-box-resource-id": "task_assignments"
}
object TaskAssignmentsAssignMultipleUsersRequest
{
  "type": "object",
  "required": [
    "task",
    "assign_to"
  ],
  "properties": {
    "task": {
      "type": "object",
      "required": [
        "id",
        "type"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "11446498",
          "description": "The ID of the task"
        },
        "type": {
          "enum": [
            "task"
          ],
          "type": "string",
          "example": "task",
          "description": "The type of the item to assign."
        }
      },
      "description": "The task to assign to a user."
    },
    "assign_to": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "3242343",
          "description": "The ID of the user to assign to the\ntask.\n\nTo specify a user by their email\naddress use the `login` parameter."
        },
        "login": {
          "type": "string",
          "example": "john@example.com",
          "description": "The email address of the user to assign to the task.\nTo specify a user by their user ID please use the `id` parameter."
        }
      },
      "description": "The user to assign the task to."
    }
  }
}
object TaskAssignmentsUpdateStateAssignedToUserRequest
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "example": "Looks good to me",
      "description": "An optional message by the assignee that can be added to the task."
    },
    "resolution_state": {
      "enum": [
        "completed",
        "incomplete",
        "approved",
        "rejected"
      ],
      "type": "string",
      "example": "completed",
      "description": "The state of the task assigned to the user.\n\n* For a task with an `action` value of `complete` this can be\n`incomplete` or `completed`.\n* For a task with an `action` of `review` this can be\n`incomplete`, `approved`, or `rejected`."
    }
  }
}
object Tasks
{
  "type": "object",
  "title": "Tasks",
  "x-box-tag": "tasks",
  "properties": {
    "entries": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Task"
      },
      "description": "A list of tasks"
    },
    "total_count": {
      "type": "integer",
      "format": "int64",
      "example": 5000,
      "description": "One greater than the offset of the last entry in the entire collection.\nThe total number of entries in the collection may be less than\n`total_count`."
    }
  },
  "description": "A list of tasks",
  "x-box-resource-id": "tasks"
}
object TasksUpdateTaskConfigurationRequest
{
  "type": "object",
  "properties": {
    "action": {
      "enum": [
        "review",
        "complete"
      ],
      "type": "string",
      "example": "review",
      "description": "The action the task assignee will be prompted to do. Must be\n\n* `review` defines an approval task that can be approved or\nrejected\n* `complete` defines a general task which can be completed"
    },
    "due_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "When the task is due at."
    },
    "message": {
      "type": "string",
      "example": "Please review",
      "description": "The message included with the task."
    },
    "completion_rule": {
      "enum": [
        "all_assignees",
        "any_assignee"
      ],
      "type": "string",
      "example": "all_assignees",
      "description": "Defines which assignees need to complete this task before the task\nis considered completed.\n\n* `all_assignees` (default) requires all assignees to review or\napprove the the task in order for it to be considered completed.\n* `any_assignee` accepts any one assignee to review or\napprove the the task in order for it to be considered completed."
    }
  }
}
object TemplateSigner
{
  "type": "object",
  "allOf": [
    {
      "properties": {
        "role": {
          "enum": [
            "signer",
            "approver",
            "final_copy_reader"
          ],
          "type": "string",
          "default": "signer",
          "example": "signer",
          "description": "Defines the role of the signer in the signature request. A role of\n`signer` needs to sign the document, a role `approver`\napproves the document and\na `final_copy_reader` role only\nreceives the final signed document and signing log."
        },
        "email": {
          "type": "string",
          "example": "example@mail.com",
          "nullable": true,
          "description": "Email address of the signer"
        },
        "order": {
          "type": "integer",
          "example": 2,
          "minimum": 0,
          "description": "Order of the signer"
        },
        "inputs": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/TemplateSignerInput"
          },
          "readOnly": true
        },
        "is_in_person": {
          "type": "boolean",
          "example": true,
          "description": "Used in combination with an embed URL for a sender.\nAfter the sender signs, they will be\nredirected to the next `in_person` signer."
        },
        "signer_group_id": {
          "type": "string",
          "example": "cd4ff89-8fc1-42cf-8b29-1890dedd26d7",
          "nullable": true,
          "description": "If provided, this value points signers that are assigned the same inputs and belongs to same signer group.\nA signer group is not a Box Group. It is an entity that belongs to the template itself and can only be used\nwithin Sign Requests created from it."
        }
      }
    }
  ],
  "title": "Signer fields for Templates",
  "description": "The schema for a Signer for Templates"
}
object TemplateSignerInput
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/SignRequestPrefillTag"
    },
    {
      "properties": {
        "type": {
          "enum": [
            "signature",
            "date",
            "text",
            "checkbox",
            "attachment",
            "radio",
            "dropdown"
          ],
          "type": "string",
          "example": "text",
          "description": "Type of input"
        },
        "label": {
          "type": "string",
          "example": "Legal name",
          "nullable": true,
          "description": "The label field is used especially for text, attachment, radio, and checkbox type inputs."
        },
        "group_id": {
          "type": "string",
          "example": "da317330-225a-4c72-89ad-0d6dcaaf4df6",
          "nullable": true,
          "description": "When the input is of type `radio` they can be grouped to gather with this identifier."
        },
        "read_only": {
          "type": "boolean",
          "example": true,
          "description": "Whether this input was defined as read-only(immutable by signers) or not"
        },
        "dimensions": {
          "type": "object",
          "properties": {
            "width": {
              "type": "number",
              "example": 0.2618657937806874,
              "description": "Relative width to the page the input is on, ranging from 0 to 1."
            },
            "height": {
              "type": "number",
              "example": 0.05311728090109673,
              "description": "Relative height to the page the input is on, ranging from 0 to 1."
            }
          },
          "description": "The size of the input."
        },
        "page_index": {
          "type": "integer",
          "example": 4,
          "description": "Index of page that the input is on."
        },
        "coordinates": {
          "type": "object",
          "properties": {
            "x": {
              "type": "number",
              "example": 0.672258592471358,
              "description": "Relative x coordinate to the page the input is on, ranging from 0 to 1."
            },
            "y": {
              "type": "number",
              "example": 0.18654283173599448,
              "description": "Relative y coordinate to the page the input is on, ranging from 0 to 1."
            }
          },
          "description": "Where the input is located on a page."
        },
        "document_id": {
          "type": "string",
          "example": "123075213-eb54b537-8b25-445e-87c1-5a1c67d8cbd7",
          "nullable": true,
          "description": "Document identifier."
        },
        "is_required": {
          "type": "boolean",
          "example": true,
          "description": "Whether or not the input is required."
        },
        "content_type": {
          "enum": [
            "signature",
            "initial",
            "stamp",
            "date",
            "checkbox",
            "text",
            "full_name",
            "first_name",
            "last_name",
            "company",
            "title",
            "email",
            "attachment",
            "radio",
            "dropdown"
          ],
          "type": "string",
          "example": "text",
          "description": "Content type of input"
        },
        "dropdown_choices": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "Yes",
            "No",
            "Maybe"
          ],
          "nullable": true,
          "description": "When the input is of the type `dropdown` this values will be filled with all the dropdown options."
        }
      }
    }
  ],
  "title": "Template Signer Input",
  "required": [
    "page_index"
  ],
  "description": "Input created by a Signer on a Template"
}
object TermsOfService
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/TermsOfService--Base"
    },
    {
      "properties": {
        "text": {
          "type": "string",
          "example": "By using this service, you agree to ...",
          "description": "The text for your terms and conditions. This text could be\nempty if the `status` is set to `disabled`."
        },
        "status": {
          "enum": [
            "enabled",
            "disabled"
          ],
          "type": "string",
          "example": "enabled",
          "description": "Whether these terms are enabled or not"
        },
        "tos_type": {
          "enum": [
            "managed",
            "external"
          ],
          "type": "string",
          "example": "managed",
          "description": "Whether to apply these terms to managed users or external users"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When the legal item was created"
        },
        "enterprise": {
          "allOf": [
            {
              "type": "object",
              "title": "Enterprise",
              "properties": {
                "id": {
                  "type": "string",
                  "example": "11446498",
                  "description": "The unique identifier for this enterprise."
                },
                "name": {
                  "type": "string",
                  "example": "Acme Inc.",
                  "description": "The name of the enterprise"
                },
                "type": {
                  "enum": [
                    "enterprise"
                  ],
                  "type": "string",
                  "example": "enterprise",
                  "description": "`enterprise`"
                }
              },
              "description": "A representation of a Box enterprise"
            },
            {
              "description": "The enterprise these terms apply to"
            }
          ]
        },
        "modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When the legal item was modified."
        }
      }
    }
  ],
  "title": "Terms of service",
  "description": "The root-level record that is supposed to represent a\nsingle Terms of Service.",
  "x-box-variant": "standard",
  "x-box-resource-id": "terms_of_service"
}
object TermsOfService--Base
{
  "type": "object",
  "title": "Terms of service (Base)",
  "required": [
    "id",
    "type"
  ],
  "x-box-tag": "terms_of_services",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this terms of service."
    },
    "type": {
      "enum": [
        "terms_of_service"
      ],
      "type": "string",
      "example": "terms_of_service",
      "description": "`terms_of_service`"
    }
  },
  "description": "The root-level record that is supposed to represent a\nsingle Terms of Service.",
  "x-box-variant": "base",
  "x-box-variants": [
    "base",
    "standard"
  ],
  "x-box-resource-id": "terms_of_service--base"
}
object TermsOfServiceCreateForEnterpriseAndTypeRequest
{
  "type": "object",
  "required": [
    "status",
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "example": "By collaborating on this file you are accepting...",
      "description": "The terms of service text to display to users.\n\nThe text can be set to empty if the `status` is set to `disabled`."
    },
    "status": {
      "enum": [
        "enabled",
        "disabled"
      ],
      "type": "string",
      "example": "enabled",
      "description": "Whether this terms of service is active."
    },
    "tos_type": {
      "enum": [
        "external",
        "managed"
      ],
      "type": "string",
      "example": "managed",
      "description": "The type of user to set the terms of\nservice for."
    }
  }
}
object TermsOfServiceUpdateSpecificTermRequest
{
  "type": "object",
  "required": [
    "status",
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "example": "By collaborating on this file you are accepting...",
      "description": "The terms of service text to display to users.\n\nThe text can be set to empty if the `status` is set to `disabled`."
    },
    "status": {
      "enum": [
        "enabled",
        "disabled"
      ],
      "type": "string",
      "example": "enabled",
      "description": "Whether this terms of service is active."
    }
  }
}
object TermsOfServiceUserStatus
{
  "type": "object",
  "title": "Terms of service user status",
  "required": [
    "id",
    "type"
  ],
  "x-box-tag": "terms_of_service_user_statuses",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this terms of service user status"
    },
    "tos": {
      "allOf": [
        {
          "$ref": "#/components/schemas/TermsOfService--Base"
        },
        {
          "description": "The terms of service"
        }
      ]
    },
    "type": {
      "enum": [
        "terms_of_service_user_status"
      ],
      "type": "string",
      "example": "terms_of_service_user_status",
      "description": "`terms_of_service_user_status`"
    },
    "user": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user"
        }
      ]
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "When the legal item was created"
    },
    "is_accepted": {
      "type": "boolean",
      "example": true,
      "description": "If the user has accepted the terms of services"
    },
    "modified_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "When the legal item was modified."
    }
  },
  "description": "The association between a Terms of Service and a user",
  "x-box-resource-id": "terms_of_service_user_status"
}
object TermsOfServiceUserStatuses
{
  "type": "object",
  "title": "Terms of service user statuses",
  "x-box-tag": "terms_of_service_user_statuses",
  "properties": {
    "entries": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TermsOfServiceUserStatus"
      },
      "description": "A list of terms of service user statuses"
    },
    "total_count": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "The total number of objects."
    }
  },
  "description": "A list of terms of service user statuses",
  "x-box-resource-id": "terms_of_services_user_statuses"
}
object TermsOfServiceUserStatusesCreateUserStatusRequest
{
  "type": "object",
  "required": [
    "tos",
    "user",
    "is_accepted"
  ],
  "properties": {
    "tos": {
      "type": "object",
      "required": [
        "id",
        "type"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "1232132",
          "description": "The ID of terms of service"
        },
        "type": {
          "enum": [
            "terms_of_service"
          ],
          "type": "string",
          "example": "terms_of_service",
          "description": "The type of object."
        }
      },
      "description": "The terms of service to set the status for."
    },
    "user": {
      "type": "object",
      "required": [
        "id",
        "type"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "3423423",
          "description": "The ID of user"
        },
        "type": {
          "enum": [
            "user"
          ],
          "type": "string",
          "example": "user",
          "description": "The type of object."
        }
      },
      "description": "The user to set the status for."
    },
    "is_accepted": {
      "type": "boolean",
      "example": true,
      "description": "Whether the user has accepted the terms."
    }
  }
}
object TermsOfServiceUserStatusesUpdateUserStatusRequest
{
  "type": "object",
  "required": [
    "is_accepted"
  ],
  "properties": {
    "is_accepted": {
      "type": "boolean",
      "example": true,
      "description": "Whether the user has accepted the terms."
    }
  }
}
object TermsOfServices
{
  "type": "object",
  "title": "Terms of services",
  "x-box-tag": "terms_of_services",
  "properties": {
    "entries": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TermsOfService"
      },
      "description": "A list of terms of service objects"
    },
    "total_count": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "The total number of objects."
    }
  },
  "description": "A list of terms of services",
  "x-box-resource-id": "terms_of_services"
}
object TimelineSkillCard
{
  "type": "object",
  "title": "Timeline Skill Card",
  "required": [
    "type",
    "skill_card_type",
    "skill",
    "invocation",
    "entries"
  ],
  "x-box-tag": "skills",
  "properties": {
    "type": {
      "enum": [
        "skill_card"
      ],
      "type": "string",
      "example": "skill_card",
      "description": "`skill_card`"
    },
    "skill": {
      "type": "object",
      "required": [
        "type",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "image-recognition-service",
          "description": "A custom identifier that represent the service that\napplied this metadata."
        },
        "type": {
          "enum": [
            "service"
          ],
          "type": "string",
          "example": "service",
          "description": "`service`"
        }
      },
      "description": "The service that applied this metadata."
    },
    "entries": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "example": "John",
            "description": "The text of the entry. This would be the display\nname for an item being placed on the timeline, for example the name\nof the person who was detected in a video."
          },
          "appears": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "end": {
                  "type": "integer",
                  "example": 20,
                  "description": "The time in seconds when an\nentry should stop appearing on a timeline."
                },
                "start": {
                  "type": "integer",
                  "example": 1,
                  "description": "The time in seconds when an\nentry should start appearing on a timeline."
                }
              },
              "description": "The timestamp for an entry."
            },
            "required": [
              "start",
              "end"
            ],
            "description": "Defines a list of timestamps for when this item should appear on the\ntimeline."
          },
          "image_url": {
            "type": "string",
            "example": "https://example.com/image1.jpg",
            "description": "The image to show on a for an entry that appears\non a timeline. This image URL is required for every entry.\n\nThe image will be shown in a\nlist of items (for example faces), and clicking\nthe image will show the user where that entry\nappears during the duration of this entry."
          }
        },
        "description": "An single item that's placed on multiple items on the timeline."
      },
      "description": "A list of entries on the timeline."
    },
    "duration": {
      "type": "integer",
      "example": 1000,
      "description": "An total duration in seconds of the timeline."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2018-04-13T13:53:23-07:00",
      "description": "The optional date and time this card was created at."
    },
    "invocation": {
      "type": "object",
      "required": [
        "type",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "image-recognition-service-123",
          "description": "A custom identifier that represent the instance of\nthe service that applied this metadata. For example,\nif your `image-recognition-service` runs on multiple\nnodes, this field can be used to identify the ID of\nthe node that was used to apply the metadata."
        },
        "type": {
          "enum": [
            "skill_invocation"
          ],
          "type": "string",
          "example": "skill_invocation",
          "description": "`skill_invocation`"
        }
      },
      "description": "The invocation of this service, used to track\nwhich instance of a service applied the metadata."
    },
    "skill_card_type": {
      "enum": [
        "timeline"
      ],
      "type": "string",
      "example": "timeline",
      "description": "`timeline`"
    },
    "skill_card_title": {
      "type": "object",
      "required": [
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "example": "Faces",
          "description": "An optional identifier for the title."
        },
        "message": {
          "type": "string",
          "example": "Faces",
          "description": "The actual title to show in the UI."
        }
      },
      "description": "The title of the card."
    }
  },
  "description": "A Box Skill metadata card that places a list of images on a\ntimeline.",
  "x-box-resource-id": "timeline_skill_card"
}
object TrackingCode
{
  "type": "object",
  "title": "Tracking code",
  "properties": {
    "name": {
      "type": "string",
      "example": "department",
      "description": "The name of the tracking code, which must be preconfigured in\nthe Admin Console"
    },
    "type": {
      "enum": [
        "tracking_code"
      ],
      "type": "string",
      "example": "tracking_code",
      "description": "`tracking_code`"
    },
    "value": {
      "type": "string",
      "example": "Sales",
      "description": "The value of the tracking code"
    }
  },
  "description": "Tracking codes allow an admin to generate reports from the admin console\nand assign an attribute to a specific group of users.\nThis setting must be enabled for an enterprise before it can be used."
}
object TranscriptSkillCard
{
  "type": "object",
  "title": "Transcript Skill Card",
  "required": [
    "type",
    "skill_card_type",
    "skill",
    "invocation",
    "entries"
  ],
  "x-box-tag": "skills",
  "properties": {
    "type": {
      "enum": [
        "skill_card"
      ],
      "type": "string",
      "example": "skill_card",
      "description": "`skill_card`"
    },
    "skill": {
      "type": "object",
      "required": [
        "type",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "transciption-service",
          "description": "A custom identifier that represent the service that\napplied this metadata."
        },
        "type": {
          "enum": [
            "service"
          ],
          "type": "string",
          "example": "service",
          "description": "`service`"
        }
      },
      "description": "The service that applied this metadata."
    },
    "entries": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "example": "Hi, and welcome to this video...",
            "description": "The text of the entry. This would be the transcribed text assigned\nto the entry on the timeline."
          },
          "appears": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "start": {
                  "type": "integer",
                  "example": 1,
                  "description": "The time in seconds when an\nentry should start appearing on a timeline."
                }
              },
              "description": "The timestamp for an entry."
            },
            "required": [
              "start"
            ],
            "description": "Defines when a transcribed bit of text appears. This only includes a\nstart time and no end time."
          }
        },
        "description": "An entry in the `entries` attribute of a metadata card"
      },
      "description": "An list of entries for the card. This represents the individual entries of\nthe transcription."
    },
    "duration": {
      "type": "integer",
      "example": 1000,
      "description": "An optional total duration in seconds.\n\nUsed with a `skill_card_type` of `transcript` or\n`timeline`."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2018-04-13T13:53:23-07:00",
      "description": "The optional date and time this card was created at."
    },
    "invocation": {
      "type": "object",
      "required": [
        "type",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "transciption-service-123",
          "description": "A custom identifier that represent the instance of\nthe service that applied this metadata. For example,\nif your `image-recognition-service` runs on multiple\nnodes, this field can be used to identify the ID of\nthe node that was used to apply the metadata."
        },
        "type": {
          "enum": [
            "skill_invocation"
          ],
          "type": "string",
          "example": "skill_invocation",
          "description": "`skill_invocation`"
        }
      },
      "description": "The invocation of this service, used to track\nwhich instance of a service applied the metadata."
    },
    "skill_card_type": {
      "enum": [
        "transcript"
      ],
      "type": "string",
      "example": "transcript",
      "description": "`transcript`"
    },
    "skill_card_title": {
      "type": "object",
      "required": [
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "example": "my_transcripts",
          "description": "An optional identifier for the title."
        },
        "message": {
          "type": "string",
          "example": "My Transcripts",
          "description": "The actual title to show in the UI."
        }
      },
      "description": "The title of the card."
    }
  },
  "description": "A Box Skill metadata card that adds a transcript to a file.",
  "x-box-resource-id": "transcript_skill_card"
}
object TransferFoldersToDestinationRequest
{
  "type": "object",
  "required": [
    "owned_by"
  ],
  "properties": {
    "owned_by": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "1232234",
          "description": "The ID of the user who the folder will be\ntransferred to"
        }
      },
      "description": "The user who the folder will be transferred to"
    }
  }
}
object TrashFile
{
  "type": "object",
  "title": "Trashed File",
  "required": [
    "id",
    "type",
    "sequence_id",
    "sha1",
    "description",
    "size",
    "path_collection",
    "created_at",
    "modified_at",
    "modified_by",
    "owned_by",
    "item_status"
  ],
  "x-box-tag": "trashed_files",
  "properties": {
    "id": {
      "type": "string",
      "example": "123456789",
      "nullable": false,
      "description": "The unique identifier that represent a file.\n\nThe ID for any file can be determined\nby visiting a file in the web application\nand copying the ID from the URL. For example,\nfor the URL `https://*.app.box.com/files/123`\nthe `file_id` is `123`."
    },
    "etag": {
      "type": "string",
      "example": "1",
      "nullable": true,
      "description": "The HTTP `etag` of this file. This can be used within some API\nendpoints in the `If-Match` and `If-None-Match` headers to only\nperform changes on the file if (no) changes have happened."
    },
    "name": {
      "type": "string",
      "example": "Contract.pdf",
      "description": "The name of the file"
    },
    "sha1": {
      "type": "string",
      "format": "digest",
      "example": "85136C79CBF9FE36BB9D05D0639C70C265C18D37",
      "nullable": false,
      "description": "The SHA1 hash of the file. This can be used to compare the contents\nof a file on Box with a local file."
    },
    "size": {
      "type": "integer",
      "example": 629644,
      "nullable": false,
      "description": "The file size in bytes. Be careful parsing this integer as it can\nget very large and cause an integer overflow."
    },
    "type": {
      "enum": [
        "file"
      ],
      "type": "string",
      "example": "file",
      "nullable": false,
      "description": "`file`"
    },
    "parent": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Folder--Mini"
        },
        {
          "description": "The folder that this file is located within."
        },
        {
          "nullable": true
        }
      ]
    },
    "owned_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who owns this file"
        },
        {
          "nullable": false
        }
      ]
    },
    "purged_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": true,
      "description": "The time at which this file is expected to be purged\nfrom the trash."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": false,
      "description": "The date and time when the file was created on Box."
    },
    "created_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who created this file"
        }
      ]
    },
    "trashed_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": true,
      "description": "The time at which this file was put in the trash."
    },
    "description": {
      "type": "string",
      "example": "Contract for Q1 renewal",
      "nullable": false,
      "maxLength": 256,
      "description": "The optional description of this file"
    },
    "item_status": {
      "enum": [
        "active",
        "trashed",
        "deleted"
      ],
      "type": "string",
      "example": "trashed",
      "nullable": false,
      "description": "Defines if this item has been deleted or not.\n\n* `active` when the item has is not in the trash\n* `trashed` when the item has been moved to the trash but not deleted\n* `deleted` when the item has been permanently deleted."
    },
    "modified_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": false,
      "description": "The date and time when the file was last updated on Box."
    },
    "modified_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who last modified this file"
        },
        {
          "nullable": false
        }
      ]
    },
    "sequence_id": {
      "allOf": [
        {
          "type": "string",
          "example": "3",
          "nullable": true,
          "description": "A numeric identifier that represents the most recent user event\nthat has been applied to this item.\n\nThis can be used in combination with the `GET /events`-endpoint\nto filter out user events that would have occurred before this\nidentifier was read.\n\nAn example would be where a Box Drive-like application\nwould fetch an item via the API, and then listen to incoming\nuser events for changes to the item. The application would\nignore any user events where the `sequence_id` in the event\nis smaller than or equal to the `sequence_id` in the originally\nfetched resource."
        },
        {
          "nullable": false
        }
      ]
    },
    "shared_link": {
      "type": "string",
      "example": null,
      "nullable": true,
      "description": "The shared link for this file. This will\nbe `null` if a file has been trashed, since the link will no longer\nbe active."
    },
    "file_version": {
      "allOf": [
        {
          "$ref": "#/components/schemas/FileVersion--Mini"
        },
        {
          "description": "The information about the current version of the file."
        }
      ]
    },
    "path_collection": {
      "allOf": [
        {
          "type": "object",
          "title": "Path collection (Trash)",
          "required": [
            "total_count",
            "entries"
          ],
          "properties": {
            "entries": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "example": "123456789",
                    "description": "The unique identifier that represent a folder."
                  },
                  "etag": {
                    "type": "string",
                    "example": null,
                    "nullable": true,
                    "description": "This field is null for the Trash folder"
                  },
                  "name": {
                    "type": "string",
                    "example": "Trash",
                    "nullable": false,
                    "description": "The name of the Trash folder."
                  },
                  "type": {
                    "enum": [
                      "folder"
                    ],
                    "type": "string",
                    "example": "folder",
                    "description": "`folder`"
                  },
                  "sequence_id": {
                    "type": "string",
                    "example": null,
                    "nullable": true,
                    "description": "This field is null for the Trash folder"
                  }
                },
                "description": "The parent folder for this item"
              },
              "description": "Array of folders for this item's path collection"
            },
            "total_count": {
              "type": "integer",
              "format": "int64",
              "example": 1,
              "nullable": false,
              "description": "The number of folders in this list."
            }
          },
          "description": "A list of parent folders for an item in the trash."
        },
        {
          "description": "The tree of folders that this file is contained in,\nstarting at the root."
        },
        {
          "nullable": false
        }
      ]
    },
    "content_created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": true,
      "description": "The date and time at which this file was originally\ncreated, which might be before it was uploaded to Box."
    },
    "content_modified_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": true,
      "description": "The date and time at which this file was last updated,\nwhich might be before it was uploaded to Box."
    }
  },
  "description": "Represents a trashed file.",
  "x-box-resource-id": "trash_file"
}
object TrashFileRestored
{
  "type": "object",
  "title": "Trashed File (Restored)",
  "required": [
    "id",
    "type",
    "sequence_id",
    "sha1",
    "description",
    "size",
    "path_collection",
    "created_at",
    "modified_at",
    "modified_by",
    "owned_by",
    "item_status"
  ],
  "x-box-tag": "trashed_files",
  "properties": {
    "id": {
      "type": "string",
      "example": "123456789",
      "nullable": false,
      "description": "The unique identifier that represent a file.\n\nThe ID for any file can be determined\nby visiting a file in the web application\nand copying the ID from the URL. For example,\nfor the URL `https://*.app.box.com/files/123`\nthe `file_id` is `123`."
    },
    "etag": {
      "type": "string",
      "example": "1",
      "nullable": true,
      "description": "The HTTP `etag` of this file. This can be used within some API\nendpoints in the `If-Match` and `If-None-Match` headers to only\nperform changes on the file if (no) changes have happened."
    },
    "name": {
      "type": "string",
      "example": "Contract.pdf",
      "description": "The name of the file"
    },
    "sha1": {
      "type": "string",
      "format": "digest",
      "example": "85136C79CBF9FE36BB9D05D0639C70C265C18D37",
      "nullable": false,
      "description": "The SHA1 hash of the file. This can be used to compare the contents\nof a file on Box with a local file."
    },
    "size": {
      "type": "integer",
      "example": 629644,
      "nullable": false,
      "description": "The file size in bytes. Be careful parsing this integer as it can\nget very large and cause an integer overflow."
    },
    "type": {
      "enum": [
        "file"
      ],
      "type": "string",
      "example": "file",
      "nullable": false,
      "description": "`file`"
    },
    "parent": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Folder--Mini"
        },
        {
          "description": "The folder that this file is located within."
        },
        {
          "nullable": true
        }
      ]
    },
    "owned_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who owns this file"
        },
        {
          "nullable": false
        }
      ]
    },
    "purged_at": {
      "type": "string",
      "example": null,
      "nullable": true,
      "description": "The time at which this file is expected to be purged\nfrom the trash  - becomes `null` after restore."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": false,
      "description": "The date and time when the file was created on Box."
    },
    "created_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who created this file"
        }
      ]
    },
    "trashed_at": {
      "type": "string",
      "example": null,
      "nullable": true,
      "description": "The time at which this file was put in the\ntrash - becomes `null` after restore."
    },
    "description": {
      "type": "string",
      "example": "Contract for Q1 renewal",
      "nullable": false,
      "maxLength": 256,
      "description": "The optional description of this file"
    },
    "item_status": {
      "enum": [
        "active",
        "trashed",
        "deleted"
      ],
      "type": "string",
      "example": "active",
      "nullable": false,
      "description": "Defines if this item has been deleted or not.\n\n* `active` when the item has is not in the trash\n* `trashed` when the item has been moved to the trash but not deleted\n* `deleted` when the item has been permanently deleted."
    },
    "modified_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": false,
      "description": "The date and time when the file was last updated on Box."
    },
    "modified_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who last modified this file"
        },
        {
          "nullable": false
        }
      ]
    },
    "sequence_id": {
      "allOf": [
        {
          "type": "string",
          "example": "3",
          "nullable": true,
          "description": "A numeric identifier that represents the most recent user event\nthat has been applied to this item.\n\nThis can be used in combination with the `GET /events`-endpoint\nto filter out user events that would have occurred before this\nidentifier was read.\n\nAn example would be where a Box Drive-like application\nwould fetch an item via the API, and then listen to incoming\nuser events for changes to the item. The application would\nignore any user events where the `sequence_id` in the event\nis smaller than or equal to the `sequence_id` in the originally\nfetched resource."
        },
        {
          "nullable": false
        }
      ]
    },
    "shared_link": {
      "type": "string",
      "example": null,
      "nullable": true,
      "description": "The shared link for this file. This will\nbe `null` if a file had been trashed, even though the original shared\nlink does become active again."
    },
    "file_version": {
      "allOf": [
        {
          "$ref": "#/components/schemas/FileVersion--Mini"
        },
        {
          "description": "The information about the current version of the file."
        }
      ]
    },
    "path_collection": {
      "allOf": [
        {
          "type": "object",
          "title": "Path collection",
          "required": [
            "total_count",
            "entries"
          ],
          "properties": {
            "entries": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Folder--Mini"
              },
              "nullable": false,
              "description": "The parent folders for this item"
            },
            "total_count": {
              "type": "integer",
              "format": "int64",
              "example": 1,
              "nullable": false,
              "description": "The number of folders in this list."
            }
          },
          "description": "A list of parent folders for an item."
        },
        {
          "description": "The tree of folders that this file is contained in,\nstarting at the root."
        },
        {
          "nullable": false
        }
      ]
    },
    "content_created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": true,
      "description": "The date and time at which this file was originally\ncreated, which might be before it was uploaded to Box."
    },
    "content_modified_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": true,
      "description": "The date and time at which this file was last updated,\nwhich might be before it was uploaded to Box."
    }
  },
  "description": "Represents a file restored from the trash.",
  "x-box-resource-id": "trash_file_restored"
}
object TrashFolder
{
  "type": "object",
  "title": "Trashed Folder",
  "required": [
    "id",
    "type",
    "name",
    "description",
    "size",
    "path_collection",
    "created_by",
    "modified_by",
    "owned_by",
    "item_status"
  ],
  "x-box-tag": "trashed_folders",
  "properties": {
    "id": {
      "type": "string",
      "example": "123456789",
      "nullable": false,
      "description": "The unique identifier that represent a folder.\n\nThe ID for any folder can be determined\nby visiting a folder in the web application\nand copying the ID from the URL. For example,\nfor the URL `https://*.app.box.com/folders/123`\nthe `folder_id` is `123`."
    },
    "etag": {
      "type": "string",
      "example": "1",
      "nullable": true,
      "description": "The HTTP `etag` of this folder. This can be used within some API\nendpoints in the `If-Match` and `If-None-Match` headers to only\nperform changes on the folder if (no) changes have happened."
    },
    "name": {
      "type": "string",
      "example": "Contracts",
      "nullable": false,
      "description": "The name of the folder."
    },
    "size": {
      "type": "integer",
      "format": "int64",
      "example": 629644,
      "nullable": false,
      "description": "The folder size in bytes.\n\nBe careful parsing this integer as its\nvalue can get very large."
    },
    "type": {
      "enum": [
        "folder"
      ],
      "type": "string",
      "example": "folder",
      "nullable": false,
      "description": "`folder`"
    },
    "parent": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Folder--Mini"
        },
        {
          "description": "The optional folder that this folder is located within.\n\nThis value may be `null` for some folders such as the\nroot folder or the trash folder."
        },
        {
          "nullable": true
        }
      ]
    },
    "owned_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who owns this folder."
        },
        {
          "nullable": false
        }
      ]
    },
    "purged_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": true,
      "description": "The time at which this folder is expected to be purged\nfrom the trash."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": true,
      "description": "The date and time when the folder was created. This value may\nbe `null` for some folders such as the root folder or the trash\nfolder."
    },
    "created_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who created this folder"
        },
        {
          "nullable": false
        }
      ]
    },
    "trashed_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": true,
      "description": "The time at which this folder was put in the trash."
    },
    "description": {
      "allOf": [
        {
          "type": "string",
          "example": "Legal contracts for the new ACME deal",
          "nullable": false,
          "maxLength": 256,
          "description": "The optional description of this folder"
        },
        {
          "nullable": false
        }
      ]
    },
    "item_status": {
      "enum": [
        "active",
        "trashed",
        "deleted"
      ],
      "type": "string",
      "example": "trashed",
      "nullable": false,
      "description": "Defines if this item has been deleted or not.\n\n* `active` when the item has is not in the trash\n* `trashed` when the item has been moved to the trash but not deleted\n* `deleted` when the item has been permanently deleted."
    },
    "modified_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": true,
      "description": "The date and time when the folder was last updated. This value may\nbe `null` for some folders such as the root folder or the trash\nfolder."
    },
    "modified_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who last modified this folder."
        },
        {
          "nullable": false
        }
      ]
    },
    "sequence_id": {
      "allOf": [
        {
          "type": "string",
          "example": "3",
          "nullable": true,
          "description": "A numeric identifier that represents the most recent user event\nthat has been applied to this item.\n\nThis can be used in combination with the `GET /events`-endpoint\nto filter out user events that would have occurred before this\nidentifier was read.\n\nAn example would be where a Box Drive-like application\nwould fetch an item via the API, and then listen to incoming\nuser events for changes to the item. The application would\nignore any user events where the `sequence_id` in the event\nis smaller than or equal to the `sequence_id` in the originally\nfetched resource."
        },
        {
          "nullable": false
        }
      ]
    },
    "shared_link": {
      "type": "string",
      "example": null,
      "nullable": true,
      "description": "The shared link for this folder. This will\nbe `null` if a folder has been trashed, since the link will no longer\nbe active."
    },
    "path_collection": {
      "allOf": [
        {
          "type": "object",
          "title": "Path collection (Trash)",
          "required": [
            "total_count",
            "entries"
          ],
          "properties": {
            "entries": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "example": "123456789",
                    "description": "The unique identifier that represent a folder."
                  },
                  "etag": {
                    "type": "string",
                    "example": null,
                    "nullable": true,
                    "description": "This field is null for the Trash folder"
                  },
                  "name": {
                    "type": "string",
                    "example": "Trash",
                    "nullable": false,
                    "description": "The name of the Trash folder."
                  },
                  "type": {
                    "enum": [
                      "folder"
                    ],
                    "type": "string",
                    "example": "folder",
                    "description": "`folder`"
                  },
                  "sequence_id": {
                    "type": "string",
                    "example": null,
                    "nullable": true,
                    "description": "This field is null for the Trash folder"
                  }
                },
                "description": "The parent folder for this item"
              },
              "description": "Array of folders for this item's path collection"
            },
            "total_count": {
              "type": "integer",
              "format": "int64",
              "example": 1,
              "nullable": false,
              "description": "The number of folders in this list."
            }
          },
          "description": "A list of parent folders for an item in the trash."
        },
        {
          "description": "The tree of folders that this file is contained in,\nstarting at the root."
        },
        {
          "nullable": false
        }
      ]
    },
    "content_created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": true,
      "description": "The date and time at which this folder was originally\ncreated."
    },
    "content_modified_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": true,
      "description": "The date and time at which this folder was last updated."
    },
    "folder_upload_email": {
      "type": "string",
      "example": null,
      "nullable": true,
      "description": "The folder upload email for this folder. This will\nbe `null` if a folder has been trashed, since the upload will no longer\nwork."
    }
  },
  "description": "Represents a trashed folder.",
  "x-box-resource-id": "trash_folder"
}
object TrashFolderRestored
{
  "type": "object",
  "title": "Trashed Folder (Restored)",
  "x-box-tag": "trashed_folders",
  "properties": {
    "id": {
      "type": "string",
      "example": "123456789",
      "nullable": false,
      "description": "The unique identifier that represent a folder.\n\nThe ID for any folder can be determined\nby visiting a folder in the web application\nand copying the ID from the URL. For example,\nfor the URL `https://*.app.box.com/folders/123`\nthe `folder_id` is `123`."
    },
    "etag": {
      "type": "string",
      "example": "1",
      "nullable": true,
      "description": "The HTTP `etag` of this folder. This can be used within some API\nendpoints in the `If-Match` and `If-None-Match` headers to only\nperform changes on the folder if (no) changes have happened."
    },
    "name": {
      "type": "string",
      "example": "Contracts",
      "nullable": false,
      "description": "The name of the folder."
    },
    "size": {
      "type": "integer",
      "format": "int64",
      "example": 629644,
      "nullable": false,
      "description": "The folder size in bytes.\n\nBe careful parsing this integer as its\nvalue can get very large."
    },
    "type": {
      "enum": [
        "folder"
      ],
      "type": "string",
      "example": "folder",
      "nullable": false,
      "description": "`folder`"
    },
    "parent": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Folder--Mini"
        },
        {
          "description": "The optional folder that this folder is located within.\n\nThis value may be `null` for some folders such as the\nroot folder or the trash folder."
        },
        {
          "nullable": true
        }
      ]
    },
    "owned_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who owns this folder."
        },
        {
          "nullable": false
        }
      ]
    },
    "purged_at": {
      "type": "string",
      "example": null,
      "nullable": true,
      "description": "The time at which this folder is expected to be purged\nfrom the trash  - becomes `null` after restore."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": true,
      "description": "The date and time when the folder was created. This value may\nbe `null` for some folders such as the root folder or the trash\nfolder."
    },
    "created_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who created this folder"
        },
        {
          "nullable": false
        }
      ]
    },
    "trashed_at": {
      "type": "string",
      "example": null,
      "nullable": true,
      "description": "The time at which this folder was put in the\ntrash - becomes `null` after restore."
    },
    "description": {
      "allOf": [
        {
          "type": "string",
          "example": "Legal contracts for the new ACME deal",
          "nullable": false,
          "maxLength": 256,
          "description": "The optional description of this folder"
        },
        {
          "nullable": false
        }
      ]
    },
    "item_status": {
      "enum": [
        "active",
        "trashed",
        "deleted"
      ],
      "type": "string",
      "example": "active",
      "nullable": false,
      "description": "Defines if this item has been deleted or not.\n\n* `active` when the item has is not in the trash\n* `trashed` when the item has been moved to the trash but not deleted\n* `deleted` when the item has been permanently deleted."
    },
    "modified_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": true,
      "description": "The date and time when the folder was last updated. This value may\nbe `null` for some folders such as the root folder or the trash\nfolder."
    },
    "modified_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who last modified this folder."
        },
        {
          "nullable": false
        }
      ]
    },
    "sequence_id": {
      "allOf": [
        {
          "type": "string",
          "example": "3",
          "nullable": true,
          "description": "A numeric identifier that represents the most recent user event\nthat has been applied to this item.\n\nThis can be used in combination with the `GET /events`-endpoint\nto filter out user events that would have occurred before this\nidentifier was read.\n\nAn example would be where a Box Drive-like application\nwould fetch an item via the API, and then listen to incoming\nuser events for changes to the item. The application would\nignore any user events where the `sequence_id` in the event\nis smaller than or equal to the `sequence_id` in the originally\nfetched resource."
        },
        {
          "nullable": false
        }
      ]
    },
    "shared_link": {
      "type": "string",
      "example": null,
      "nullable": true,
      "description": "The shared link for this file. This will\nbe `null` if a folder had been trashed, even though the original shared\nlink does become active again."
    },
    "path_collection": {
      "allOf": [
        {
          "type": "object",
          "title": "Path collection",
          "required": [
            "total_count",
            "entries"
          ],
          "properties": {
            "entries": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Folder--Mini"
              },
              "nullable": false,
              "description": "The parent folders for this item"
            },
            "total_count": {
              "type": "integer",
              "format": "int64",
              "example": 1,
              "nullable": false,
              "description": "The number of folders in this list."
            }
          },
          "description": "A list of parent folders for an item."
        },
        {
          "description": "The tree of folders that this file is contained in,\nstarting at the root."
        },
        {
          "nullable": false
        }
      ]
    },
    "content_created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": true,
      "description": "The date and time at which this folder was originally\ncreated."
    },
    "content_modified_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": true,
      "description": "The date and time at which this folder was last updated."
    },
    "folder_upload_email": {
      "type": "string",
      "example": null,
      "nullable": true,
      "description": "The folder upload email for this folder. This will\nbe `null` if a folder has been trashed, even though the original upload\nemail does become active again."
    }
  },
  "description": "Represents a folder restored from the trash.",
  "x-box-resource-id": "trash_folder_restored"
}
object TrashWebLink
{
  "type": "object",
  "title": "Trashed Web Link",
  "x-box-tag": "trashed_web_links",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this web link"
    },
    "url": {
      "type": "string",
      "example": "https://www.example.com/example/1234",
      "description": "The URL this web link points to"
    },
    "etag": {
      "type": "string",
      "example": "1",
      "description": "The entity tag of this web link. Used with `If-Match`\nheaders."
    },
    "name": {
      "type": "string",
      "example": "My Bookmark",
      "description": "The name of the web link"
    },
    "type": {
      "enum": [
        "web_link"
      ],
      "type": "string",
      "example": "web_link",
      "description": "`web_link`"
    },
    "parent": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Folder--Mini"
        },
        {
          "description": "The parent object the web link belongs to"
        }
      ]
    },
    "owned_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who owns this web link"
        }
      ]
    },
    "purged_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": true,
      "description": "When this file will be permanently deleted."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "When this file was created on Box’s servers."
    },
    "created_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who created this web link"
        }
      ]
    },
    "trashed_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "nullable": true,
      "description": "When this file was last moved to the trash."
    },
    "description": {
      "type": "string",
      "example": "Example page",
      "description": "The description accompanying the web link. This is\nvisible within the Box web application."
    },
    "item_status": {
      "enum": [
        "active",
        "trashed",
        "deleted"
      ],
      "type": "string",
      "example": "trashed",
      "description": "Whether this item is deleted or not. Values include `active`,\n`trashed` if the file has been moved to the trash, and `deleted` if\nthe file has been permanently deleted"
    },
    "modified_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "When this file was last updated on the Box\nservers."
    },
    "modified_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who last modified this web link"
        }
      ]
    },
    "sequence_id": {
      "allOf": [
        {
          "type": "string",
          "example": "3",
          "nullable": true,
          "description": "A numeric identifier that represents the most recent user event\nthat has been applied to this item.\n\nThis can be used in combination with the `GET /events`-endpoint\nto filter out user events that would have occurred before this\nidentifier was read.\n\nAn example would be where a Box Drive-like application\nwould fetch an item via the API, and then listen to incoming\nuser events for changes to the item. The application would\nignore any user events where the `sequence_id` in the event\nis smaller than or equal to the `sequence_id` in the originally\nfetched resource."
        },
        {
          "nullable": false
        }
      ]
    },
    "shared_link": {
      "type": "string",
      "example": null,
      "nullable": true,
      "description": "The shared link for this bookmark. This will\nbe `null` if a bookmark has been trashed, since the link will no longer\nbe active."
    },
    "path_collection": {
      "allOf": [
        {
          "type": "object",
          "title": "Path collection (Trash)",
          "required": [
            "total_count",
            "entries"
          ],
          "properties": {
            "entries": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "example": "123456789",
                    "description": "The unique identifier that represent a folder."
                  },
                  "etag": {
                    "type": "string",
                    "example": null,
                    "nullable": true,
                    "description": "This field is null for the Trash folder"
                  },
                  "name": {
                    "type": "string",
                    "example": "Trash",
                    "nullable": false,
                    "description": "The name of the Trash folder."
                  },
                  "type": {
                    "enum": [
                      "folder"
                    ],
                    "type": "string",
                    "example": "folder",
                    "description": "`folder`"
                  },
                  "sequence_id": {
                    "type": "string",
                    "example": null,
                    "nullable": true,
                    "description": "This field is null for the Trash folder"
                  }
                },
                "description": "The parent folder for this item"
              },
              "description": "Array of folders for this item's path collection"
            },
            "total_count": {
              "type": "integer",
              "format": "int64",
              "example": 1,
              "nullable": false,
              "description": "The number of folders in this list."
            }
          },
          "description": "A list of parent folders for an item in the trash."
        },
        {
          "description": "The tree of folders that this web link is contained in,\nstarting at the root."
        },
        {
          "nullable": false
        }
      ]
    }
  },
  "description": "Represents a trashed web link.",
  "x-box-resource-id": "trash_web_link"
}
object TrashWebLinkRestored
{
  "type": "object",
  "title": "Trashed Web Link (Restored)",
  "required": [
    "sequence_id",
    "path_collection"
  ],
  "x-box-tag": "trashed_web_links",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this web link"
    },
    "url": {
      "type": "string",
      "example": "https://www.example.com/example/1234",
      "description": "The URL this web link points to"
    },
    "etag": {
      "type": "string",
      "example": "1",
      "description": "The entity tag of this web link. Used with `If-Match`\nheaders."
    },
    "name": {
      "type": "string",
      "example": "My Bookmark",
      "description": "The name of the web link"
    },
    "type": {
      "enum": [
        "web_link"
      ],
      "type": "string",
      "example": "web_link",
      "description": "`web_link`"
    },
    "parent": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Folder--Mini"
        },
        {
          "description": "The parent object the web link belongs to"
        }
      ]
    },
    "owned_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who owns this web link"
        }
      ]
    },
    "purged_at": {
      "type": "string",
      "example": null,
      "nullable": true,
      "description": "The time at which this bookmark will be permanently\ndeleted - becomes `null` after restore."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "When this file was created on Box’s servers."
    },
    "created_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who created this web link"
        }
      ]
    },
    "trashed_at": {
      "type": "string",
      "example": null,
      "nullable": true,
      "description": "The time at which this bookmark was put in the\ntrash - becomes `null` after restore."
    },
    "description": {
      "type": "string",
      "example": "Example page",
      "description": "The description accompanying the web link. This is\nvisible within the Box web application."
    },
    "item_status": {
      "enum": [
        "active",
        "trashed",
        "deleted"
      ],
      "type": "string",
      "example": "trashed",
      "description": "Whether this item is deleted or not. Values include `active`,\n`trashed` if the file has been moved to the trash, and `deleted` if\nthe file has been permanently deleted"
    },
    "modified_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "When this file was last updated on the Box\nservers."
    },
    "modified_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user who last modified this web link"
        }
      ]
    },
    "sequence_id": {
      "allOf": [
        {
          "type": "string",
          "example": "3",
          "nullable": true,
          "description": "A numeric identifier that represents the most recent user event\nthat has been applied to this item.\n\nThis can be used in combination with the `GET /events`-endpoint\nto filter out user events that would have occurred before this\nidentifier was read.\n\nAn example would be where a Box Drive-like application\nwould fetch an item via the API, and then listen to incoming\nuser events for changes to the item. The application would\nignore any user events where the `sequence_id` in the event\nis smaller than or equal to the `sequence_id` in the originally\nfetched resource."
        },
        {
          "nullable": false
        }
      ]
    },
    "shared_link": {
      "type": "string",
      "example": null,
      "nullable": true,
      "description": "The shared link for this bookmark. This will\nbe `null` if a bookmark had been trashed, even though the original shared\nlink does become active again."
    },
    "path_collection": {
      "allOf": [
        {
          "type": "object",
          "title": "Path collection",
          "required": [
            "total_count",
            "entries"
          ],
          "properties": {
            "entries": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Folder--Mini"
              },
              "nullable": false,
              "description": "The parent folders for this item"
            },
            "total_count": {
              "type": "integer",
              "format": "int64",
              "example": 1,
              "nullable": false,
              "description": "The number of folders in this list."
            }
          },
          "description": "A list of parent folders for an item."
        },
        {
          "description": "The tree of folders that this web link is contained in,\nstarting at the root."
        },
        {
          "nullable": false
        }
      ]
    }
  },
  "description": "Represents a web link restored from the trash.",
  "x-box-resource-id": "trash_web_link_restored"
}
object TrashedFilesRestoreFileRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Restored.docx",
      "description": "An optional new name for the file."
    },
    "parent": {
      "allOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "example": "123",
              "description": "The ID of parent item"
            }
          },
          "description": "The parent for this item"
        },
        {
          "description": "Specifies an optional ID of a folder to restore the file to\nwhen the original folder no longer exists.\n\nPlease be aware that this ID will only be used if the original\nfolder no longer exists. Use this ID to provide a fallback\nlocation to restore the file to if the original location\nhas been deleted."
        }
      ]
    }
  }
}
object TrashedFoldersRestoreFolderRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Restored Photos",
      "description": "An optional new name for the folder."
    },
    "parent": {
      "allOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "example": "123",
              "description": "The ID of parent item"
            }
          },
          "description": "The parent for this item"
        },
        {
          "description": "Specifies an optional ID of a folder to restore the folder\nto when the original folder no longer exists.\n\nPlease be aware that this ID will only be used if the original\nfolder no longer exists. Use this ID to provide a fallback\nlocation to restore the folder to if the original location\nhas been deleted."
        }
      ]
    }
  }
}
object TrashedWebLinksRestoreWebLinkRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Restored.docx",
      "description": "An optional new name for the web link."
    },
    "parent": {
      "allOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "example": "123",
              "description": "The ID of parent item"
            }
          },
          "description": "The parent for this item"
        },
        {
          "description": "Specifies an optional ID of a folder to restore the web link\nto when the original folder no longer exists.\n\nPlease be aware that this ID will only be used if the original\nfolder no longer exists. Use this ID to provide a fallback\nlocation to restore the web link to if the original location\nhas been deleted."
        }
      ]
    }
  }
}
object UploadPart
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/UploadPart--Mini"
    },
    {
      "properties": {
        "sha1": {
          "type": "string",
          "example": "134b65991ed521fcfe4724b7d814ab8ded5185dc",
          "description": "The SHA1 hash of the chunk."
        }
      }
    }
  ],
  "title": "Upload part",
  "description": "The representation of an upload\nsession chunk.",
  "x-box-variant": "standard",
  "x-box-resource-id": "upload_part"
}
object UploadPart--Mini
{
  "type": "object",
  "title": "Upload part (Mini)",
  "x-box-tag": "chunked_uploads",
  "properties": {
    "size": {
      "type": "integer",
      "format": "int64",
      "example": 3222784,
      "description": "The size of the chunk in bytes."
    },
    "offset": {
      "type": "integer",
      "format": "int64",
      "example": 16777216,
      "description": "The offset of the chunk within the file\nin bytes. The lower bound of the position\nof the chunk within the file."
    },
    "part_id": {
      "type": "string",
      "example": "6F2D3486",
      "description": "The unique ID of the chunk."
    }
  },
  "description": "The basic representation of an upload\nsession chunk.",
  "x-box-variant": "mini",
  "x-box-variants": [
    "mini",
    "standard"
  ],
  "x-box-resource-id": "upload_part--mini"
}
object UploadParts
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "order": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "by": {
                "type": "string",
                "example": "type",
                "description": "The field to order by"
              },
              "direction": {
                "enum": [
                  "ASC",
                  "DESC"
                ],
                "type": "string",
                "example": "ASC",
                "description": "The direction to order by, either ascending or descending"
              }
            },
            "description": "The order in which a pagination is ordered"
          },
          "description": "The order by which items are returned.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        },
        "offset": {
          "type": "integer",
          "format": "int64",
          "example": 2000,
          "description": "The 0-based offset of the first entry in this set. This will be the same\nas the `offset` query parameter.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        },
        "total_count": {
          "type": "integer",
          "format": "int64",
          "example": 5000,
          "description": "One greater than the offset of the last entry in the entire collection.\nThe total number of entries in the collection may be less than\n`total_count`.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        }
      },
      "description": "The part of an API response that describes pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/UploadPart"
          },
          "description": "A list of uploaded chunks for an upload\nsession"
        }
      }
    }
  ],
  "title": "Upload parts",
  "x-box-tag": "chunked_uploads",
  "description": "A list of uploaded chunks for an upload\nsession.",
  "x-box-resource-id": "upload_parts"
}
object UploadSession
{
  "type": "object",
  "title": "Upload session",
  "x-box-tag": "chunked_uploads",
  "properties": {
    "id": {
      "type": "string",
      "example": "F971964745A5CD0C001BBE4E58196BFD",
      "description": "The unique identifier for this session"
    },
    "type": {
      "enum": [
        "upload_session"
      ],
      "type": "string",
      "example": "upload_session",
      "description": "`upload_session`"
    },
    "part_size": {
      "type": "integer",
      "format": "int64",
      "example": 1024,
      "description": "The  size in bytes that must be used for all parts of of the\nupload.\n\nOnly the last part is allowed to be of a smaller size."
    },
    "total_parts": {
      "type": "integer",
      "format": "int32",
      "example": 1000,
      "description": "The total number of parts expected in this upload session,\nas determined by the file size and part size."
    },
    "session_endpoints": {
      "allOf": [
        {
          "type": "object",
          "title": "Session endpoints",
          "properties": {
            "abort": {
              "type": "string",
              "example": "https://upload.box.com/api/2.0/files/upload_sessions/F971964745A5CD0C001BBE4E58196BFD",
              "description": "The URL for used to abort the session."
            },
            "commit": {
              "type": "string",
              "example": "https://upload.box.com/api/2.0/files/upload_sessions/F971964745A5CD0C001BBE4E58196BFD/commit",
              "description": "The URL used to commit the file"
            },
            "status": {
              "type": "string",
              "example": "https://upload.box.com/api/2.0/files/upload_sessions/F971964745A5CD0C001BBE4E58196BFD",
              "description": "The URL used to get the status of the upload."
            },
            "log_event": {
              "type": "string",
              "example": "https://upload.box.com/api/2.0/files/upload_sessions/F971964745A5CD0C001BBE4E58196BFD/log",
              "description": "The URL used to get the upload log from."
            },
            "list_parts": {
              "type": "string",
              "example": "https://upload.box.com/api/2.0/files/upload_sessions/F971964745A5CD0C001BBE4E58196BFD/parts",
              "description": "The URL users to list all parts."
            },
            "upload_part": {
              "type": "string",
              "example": "https://upload.box.com/api/2.0/files/upload_sessions/F971964745A5CD0C001BBE4E58196BFD",
              "description": "The URL to upload parts to"
            }
          },
          "description": "A list of endpoints for a chunked upload session."
        },
        {
          "description": "A list of endpoints for this session."
        }
      ]
    },
    "session_expires_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "The date and time when this session expires."
    },
    "num_parts_processed": {
      "type": "integer",
      "format": "int32",
      "example": 455,
      "description": "The number of parts that have been uploaded and processed\nby the server. This starts at `0`.\n\nWhen committing a file files, inspecting this property can\nprovide insight if all parts have been uploaded correctly."
    }
  },
  "description": "An upload session for chunk uploading a file.",
  "x-box-resource-id": "upload_session"
}
object UploadUrl
{
  "type": "object",
  "title": "Upload URL",
  "x-box-tag": "uploads",
  "properties": {
    "upload_url": {
      "type": "string",
      "example": "https://upload-las.app.box.com/api/2.0/files/content?upload_session_id=1234",
      "description": "A URL for an upload session that can be used to upload\nthe file."
    },
    "upload_token": {
      "type": "string",
      "example": "Pc3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQP",
      "description": "An optional access token to use to upload the file"
    }
  },
  "description": "The details for the upload session for the file.",
  "x-box-resource-id": "upload_url"
}
object UploadedPart
{
  "type": "object",
  "title": "Uploaded part",
  "x-box-tag": "chunked_uploads",
  "properties": {
    "part": {
      "$ref": "#/components/schemas/UploadPart"
    }
  },
  "description": "A chunk of a file uploaded as part of\nan upload session, as returned by some endpoints.",
  "x-box-resource-id": "uploaded_part"
}
object UploadsChunkedCommitSessionRequest
{
  "type": "object",
  "required": [
    "parts"
  ],
  "properties": {
    "parts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/UploadPart"
      },
      "description": "The list details for the uploaded parts"
    }
  }
}
object UploadsChunkedCreateSessionForUploadRequest
{
  "type": "object",
  "required": [
    "folder_id",
    "file_size",
    "file_name"
  ],
  "properties": {
    "file_name": {
      "type": "string",
      "example": "Project.mov",
      "description": "The name of new file"
    },
    "file_size": {
      "type": "integer",
      "format": "int64",
      "example": 104857600,
      "description": "The total number of bytes of the file to be uploaded"
    },
    "folder_id": {
      "type": "string",
      "example": "0",
      "description": "The ID of the folder to upload the new file to."
    }
  }
}
object UploadsChunkedCreateSessionForUploadRequest1
{
  "type": "object",
  "required": [
    "file_size"
  ],
  "properties": {
    "file_name": {
      "type": "string",
      "example": "Project.mov",
      "description": "The optional new name of new file"
    },
    "file_size": {
      "type": "integer",
      "format": "int64",
      "example": 104857600,
      "description": "The total number of bytes of the file to be uploaded"
    }
  }
}
string UploadsChunkedFilePartUpdateRequest
{
  "type": "string",
  "format": "binary",
  "description": "The binary content of the file"
}
object UploadsFileContentUpdateRequest
{
  "type": "object",
  "required": [
    "attributes",
    "file"
  ],
  "properties": {
    "file": {
      "type": "string",
      "format": "binary",
      "description": "The content of the file to upload to Box.\n\n<Message warning>\n\n  The `attributes` part of the body must come **before** the\n  `file` part. Requests that do not follow this format when\n  uploading the file will receive a HTTP `400` error with a\n  `metadata_after_file_contents` error code.\n\n</Message>"
    },
    "attributes": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "Photo 2.0.png",
          "description": "An optional new name for the file. If specified, the file\nwill be renamed when the new version is uploaded."
        },
        "content_modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "Defines the time the file was last modified at.\n\nIf not set, the upload time will be used."
        }
      },
      "description": "The additional attributes of the file being uploaded. Mainly the\nname and the parent folder. These attributes are part of the multi\npart request body and are in JSON format.\n\n<Message warning>\n\n  The `attributes` part of the body must come **before** the\n  `file` part. Requests that do not follow this format when\n  uploading the file will receive a HTTP `400` error with a\n  `metadata_after_file_contents` error code.\n\n</Message>"
    }
  }
}
object UploadsSmallFileRequest
{
  "type": "object",
  "required": [
    "attributes",
    "file"
  ],
  "properties": {
    "file": {
      "type": "string",
      "format": "binary",
      "description": "The content of the file to upload to Box.\n\n<Message warning>\n\n  The `attributes` part of the body must come **before** the\n  `file` part. Requests that do not follow this format when\n  uploading the file will receive a HTTP `400` error with a\n  `metadata_after_file_contents` error code.\n\n</Message>"
    },
    "attributes": {
      "type": "object",
      "required": [
        "name",
        "parent"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "Photo.png",
          "description": "The name of the file"
        },
        "parent": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": "124132",
              "description": "The id of the parent folder. Use\n`0` for the user's root folder."
            }
          },
          "description": "The parent folder to upload the file to"
        },
        "content_created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "Defines the time the file was originally created at.\n\nIf not set, the upload time will be used."
        },
        "content_modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "Defines the time the file was last modified at.\n\nIf not set, the upload time will be used."
        }
      },
      "description": "The additional attributes of the file being uploaded. Mainly the\nname and the parent folder. These attributes are part of the multi\npart request body and are in JSON format.\n\n<Message warning>\n\n  The `attributes` part of the body must come **before** the\n  `file` part. Requests that do not follow this format when\n  uploading the file will receive a HTTP `400` error with a\n  `metadata_after_file_contents` error code.\n\n</Message>"
    }
  }
}
object User
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/User--Mini"
    },
    {
      "properties": {
        "phone": {
          "type": "string",
          "example": "6509241374",
          "maxLength": 100,
          "description": "The user’s phone number"
        },
        "status": {
          "enum": [
            "active",
            "inactive",
            "cannot_delete_edit",
            "cannot_delete_edit_upload"
          ],
          "type": "string",
          "example": "active",
          "description": "The user's account status"
        },
        "address": {
          "type": "string",
          "example": "900 Jefferson Ave, Redwood City, CA 94063",
          "maxLength": 255,
          "description": "The user’s address"
        },
        "language": {
          "type": "string",
          "example": "en",
          "description": "The language of the user, formatted in modified version of the\n[ISO 639-1](https://raw.githubusercontent.com) format."
        },
        "timezone": {
          "type": "string",
          "format": "timezone",
          "example": "Africa/Bujumbura",
          "description": "The user's timezone"
        },
        "job_title": {
          "type": "string",
          "example": "CEO",
          "maxLength": 100,
          "description": "The user’s job title"
        },
        "avatar_url": {
          "type": "string",
          "example": "https://www.box.com/api/avatar/large/181216415",
          "description": "URL of the user’s avatar image"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When the user object was created"
        },
        "space_used": {
          "type": "integer",
          "format": "int64",
          "example": 1237009912,
          "description": "The amount of space in use by the user"
        },
        "modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When the user object was last modified"
        },
        "space_amount": {
          "type": "integer",
          "format": "int64",
          "example": 11345156112,
          "description": "The user’s total available space amount in bytes"
        },
        "max_upload_size": {
          "type": "integer",
          "format": "int64",
          "example": 2147483648,
          "description": "The maximum individual file size in bytes the user can have"
        },
        "notification_email": {
          "type": "object",
          "nullable": true,
          "properties": {
            "email": {
              "type": "string",
              "example": "notifications@example.com",
              "description": "The email address to send the notifications to."
            },
            "is_confirmed": {
              "type": "boolean",
              "example": true,
              "description": "Specifies if this email address has been confirmed."
            }
          },
          "description": "An alternate notification email address to which email\nnotifications are sent. When it's confirmed, this will be\nthe email address to which notifications are sent instead of\nto the primary email address."
        }
      }
    }
  ],
  "title": "User",
  "description": "A standard representation of a user, as returned from any\nuser API endpoints by default",
  "x-box-variant": "standard",
  "x-box-resource-id": "user"
}
object User--Base
{
  "type": "object",
  "title": "User (Base)",
  "required": [
    "type",
    "id"
  ],
  "x-box-tag": "users",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this user"
    },
    "type": {
      "enum": [
        "user"
      ],
      "type": "string",
      "example": "user",
      "nullable": false,
      "description": "`user`"
    }
  },
  "description": "A mini representation of a user, used when\nnested within another resource.",
  "x-box-variant": "base",
  "x-box-variants": [
    "base",
    "mini",
    "standard",
    "full"
  ],
  "x-box-resource-id": "user--base"
}
object User--Collaborations
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/User--Base"
    },
    {
      "properties": {
        "name": {
          "type": "string",
          "example": "Aaron Levie",
          "nullable": false,
          "maxLength": 50,
          "description": "The display name of this user. If the collaboration status is `pending`, an empty string is returned."
        },
        "login": {
          "type": "string",
          "format": "email",
          "example": "ceo@example.com",
          "nullable": false,
          "description": "The primary email address of this user. If the collaboration status is `pending`, an empty string is returned."
        }
      }
    }
  ],
  "title": "User (Collaborations)",
  "description": "A mini representation of a user, can be returned only when\nthe status is `pending`.",
  "x-box-variant": "collaborations",
  "x-box-resource-id": "user_collaborations"
}
object User--Full
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/User"
    },
    {
      "properties": {
        "role": {
          "enum": [
            "admin",
            "coadmin",
            "user"
          ],
          "type": "string",
          "example": "admin",
          "description": "The user’s enterprise role"
        },
        "my_tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "important"
          ],
          "description": "Tags for all files and folders owned by the user. Values returned\nwill only contain tags that were set by the requester."
        },
        "hostname": {
          "type": "string",
          "example": "https://example.app.box.com/",
          "description": "The root (protocol, subdomain, domain) of any links that need to be\ngenerated for the user"
        },
        "enterprise": {
          "allOf": [
            {
              "type": "object",
              "title": "Enterprise",
              "properties": {
                "id": {
                  "type": "string",
                  "example": "11446498",
                  "description": "The unique identifier for this enterprise."
                },
                "name": {
                  "type": "string",
                  "example": "Acme Inc.",
                  "description": "The name of the enterprise"
                },
                "type": {
                  "enum": [
                    "enterprise"
                  ],
                  "type": "string",
                  "example": "enterprise",
                  "description": "`enterprise`"
                }
              },
              "description": "A representation of a Box enterprise"
            },
            {
              "description": "Representation of the user’s enterprise"
            }
          ]
        },
        "tracking_codes": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/TrackingCode"
          },
          "description": "Tracking codes allow an admin to generate reports from the\nadmin console and assign an attribute to a specific group\nof users. This setting must be enabled for an enterprise\nbefore it can be used."
        },
        "is_sync_enabled": {
          "type": "boolean",
          "example": true,
          "description": "Whether the user can use Box Sync"
        },
        "external_app_user_id": {
          "type": "string",
          "example": "my-user-1234",
          "description": "An external identifier for an app user, which can be used to look up\nthe user. This can be used to tie user IDs from external identity\nproviders to Box users."
        },
        "can_see_managed_users": {
          "type": "boolean",
          "example": true,
          "description": "Whether the user can see other enterprise users in their contact list"
        },
        "is_platform_access_only": {
          "type": "boolean",
          "example": true,
          "description": "Whether the user is an App User"
        },
        "is_exempt_from_device_limits": {
          "type": "boolean",
          "example": true,
          "description": "Whether to exempt the user from Enterprise device limits"
        },
        "is_external_collab_restricted": {
          "type": "boolean",
          "example": true,
          "description": "Whether the user is allowed to collaborate with users outside their\nenterprise"
        },
        "is_exempt_from_login_verification": {
          "type": "boolean",
          "example": true,
          "description": "Whether the user must use two-factor authentication"
        }
      }
    }
  ],
  "title": "User (Full)",
  "description": "A full representation of a user, as can be returned from any\nuser API endpoint.",
  "x-box-variant": "full",
  "x-box-resource-id": "user--full"
}
object User--Mini
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/User--Base"
    },
    {
      "properties": {
        "name": {
          "type": "string",
          "example": "Aaron Levie",
          "nullable": false,
          "maxLength": 50,
          "description": "The display name of this user"
        },
        "login": {
          "type": "string",
          "format": "email",
          "example": "ceo@example.com",
          "nullable": false,
          "description": "The primary email address of this user"
        }
      }
    }
  ],
  "title": "User (Mini)",
  "description": "A mini representation of a user, as can be returned when nested within other\nresources.",
  "x-box-variant": "mini",
  "x-box-resource-id": "user--mini"
}
object UserAvatar
{
  "type": "object",
  "title": "User avatar",
  "x-box-tag": "avatars",
  "properties": {
    "pic_urls": {
      "type": "object",
      "properties": {
        "large": {
          "type": "string",
          "example": "https://app.box.com/index.php?rm=pic_storage_auth&pic=euks\npac3kv01!lipGQlQQOtCTCoB6zCOArUjVWLFJtLr5tn6aOZMCybhRx0NNuFQbVI36nw\njtEk5YjUUz1KVdVuvU2yDhu_ftK_bvxeKP1Ffrx9vKGVvJ-UJc1z32p6n2CmFzzpc\ngSoX4pnPhFgydAL-u9jDspXUGElr-htDG_HPMiE9DZjqDueOxXHy8xe22wbaPAheC\nao1emv8r_fmufaUgSndeMYmyZj-KqOYsLBrBNgdeiK5tZmPOQggAEUmyQPkrd8W92TQ6sSlIp0r",
          "description": "The location of a large-sized avatar."
        },
        "small": {
          "type": "string",
          "example": "https://app.box.com/index.php?rm=pic_storage_auth&pic=euks! pac3kv01!7B6R5cZLmurEV_xB-KkycPk8Oi7oENUX2O_qUtIuO4342CG IldyCto9hqiQP7uxqYU5V2w63Ft4ln4UVVLDtDZu903OqzkflY2O-Lq00 ubA29xU-RJ6b_KzJEWRYgUhX1zEl3dzWo12g8eWRE2rStf123DF7AYahNqM 1BmLmviL_nODc7SDQHedTXPAjxURUAra5BvtLe7B05AizbNXdPlCNp-LNh _S-eZ_RjDXcGO-MkRWd_3BOMHnvjf450t5BfKoJ15WhEfiMlfXH1tmouHXrsC 66cT6-pzF9E40Iir_zThqSlrFxzP_xcmXzHapr_k-0E2qr2TXp4iC396TSlEw\n",
          "description": "The location of a small-sized avatar."
        },
        "preview": {
          "type": "string",
          "example": "https://app.box.com/index.php?rm=pic_storage_auth&pic=euks!\npac3kv01!8UcNPweOOAWj2DtHk_dCQB4wJpzyPkl7mT5nHj5ZdjY92ejYCBBZc95--403b29CW\nk-8hSo_uBjh5h9QG42Ihu-cOZ-816sej1kof3SOm5gjn7qjMAx89cHjUaNK-6XasRqSNboenjZ\n04laZuV9vSH12BZGAYycIZvvQ5R66Go8xG5GTMARf2nBU84c4H_SL5iws-HeBS4oQJWOJh6FBl\nsSJDSTI74LGXqeZb3EY_As34VFC95F10uozoTOSubZmPYylPlaKXoKWk2f9wYQso1ZTN7sh-Gc\n9Kp43zMLhArIWhok0Im6FlRAuWOQ03KYgL-k4L5EZp4Gw6B7uqVRwcBbsTwMIorWq1g",
          "description": "The location of the avatar preview."
        }
      },
      "description": "Represents an object with user avatar URLs."
    }
  },
  "description": "A resource holding URLs to the\navatar uploaded to a Box application.",
  "x-box-resource-id": "user_avatar"
}
object UserAvatarsAddOrUpdateImageRequest
{
  "type": "object",
  "required": [
    "pic"
  ],
  "properties": {
    "pic": {
      "type": "string",
      "format": "binary",
      "description": "The image file to be uploaded to Box.\nAccepted file extensions are `.jpg` or `.png`.\nThe maximum file size is 1MB."
    }
  }
}
string UserAvatarsGetImageResponse
{
  "type": "string",
  "format": "binary",
  "description": "The avatar"
}
object UserIntegrationMappings
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/User--Base"
    },
    {
      "properties": {
        "name": {
          "type": "string",
          "example": "Aaron Levie",
          "nullable": false,
          "maxLength": 50,
          "description": "The display name of this user"
        },
        "login": {
          "type": "string",
          "format": "email",
          "example": "ceo@example.com",
          "nullable": false,
          "description": "The primary email address of this user"
        }
      }
    }
  ],
  "title": "User (Integration Mappings)",
  "x-box-tag": "users",
  "description": "A user representation for integration mappings\nAPI purposes. Fields name and login are not required.",
  "x-box-resource-id": "user_integration_mappings_reference"
}
object Users
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "order": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "by": {
                "type": "string",
                "example": "type",
                "description": "The field to order by"
              },
              "direction": {
                "enum": [
                  "ASC",
                  "DESC"
                ],
                "type": "string",
                "example": "ASC",
                "description": "The direction to order by, either ascending or descending"
              }
            },
            "description": "The order in which a pagination is ordered"
          },
          "description": "The order by which items are returned.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        },
        "offset": {
          "type": "integer",
          "format": "int64",
          "example": 2000,
          "description": "The 0-based offset of the first entry in this set. This will be the same\nas the `offset` query parameter.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        },
        "total_count": {
          "type": "integer",
          "format": "int64",
          "example": 5000,
          "description": "One greater than the offset of the last entry in the entire collection.\nThe total number of entries in the collection may be less than\n`total_count`.\n\nThis field is only returned for calls that use offset-based pagination.\nFor marker-based paginated APIs, this field will be omitted."
        }
      },
      "description": "The part of an API response that describes pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/User--Full"
          },
          "description": "A list of users"
        }
      }
    }
  ],
  "title": "Users",
  "x-box-tag": "users",
  "description": "A list of users.",
  "x-box-resource-id": "users"
}
object UsersUpdateManagedUserRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Aaron Levie",
      "maxLength": 50,
      "description": "The name of the user"
    },
    "role": {
      "enum": [
        "coadmin",
        "user"
      ],
      "type": "string",
      "example": "user",
      "description": "The user’s enterprise role"
    },
    "login": {
      "type": "string",
      "example": "somename@box.com",
      "description": "The email address the user uses to log in\n\nNote: If the target user's email is not confirmed, then the\nprimary login address cannot be changed."
    },
    "phone": {
      "type": "string",
      "example": "6509241374",
      "maxLength": 100,
      "description": "The user’s phone number"
    },
    "notify": {
      "type": "boolean",
      "example": true,
      "description": "Whether the user should receive an email when they\nare rolled out of an enterprise"
    },
    "status": {
      "enum": [
        "active",
        "inactive",
        "cannot_delete_edit",
        "cannot_delete_edit_upload"
      ],
      "type": "string",
      "example": "active",
      "description": "The user's account status"
    },
    "address": {
      "type": "string",
      "example": "900 Jefferson Ave, Redwood City, CA 94063",
      "maxLength": 255,
      "description": "The user’s address"
    },
    "language": {
      "type": "string",
      "example": "en",
      "description": "The language of the user, formatted in modified version of the\n[ISO 639-1](https://raw.githubusercontent.com) format."
    },
    "timezone": {
      "type": "string",
      "format": "timezone",
      "example": "Africa/Bujumbura",
      "description": "The user's timezone"
    },
    "job_title": {
      "type": "string",
      "example": "CEO",
      "maxLength": 100,
      "description": "The user’s job title"
    },
    "enterprise": {
      "type": "string",
      "example": null,
      "nullable": true,
      "description": "Set this to `null` to roll the user out of the enterprise\nand make them a free user"
    },
    "space_amount": {
      "type": "integer",
      "format": "int64",
      "example": 11345156112,
      "description": "The user’s total available space in bytes. Set this to `-1` to\nindicate unlimited storage."
    },
    "tracking_codes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TrackingCode"
      },
      "description": "Tracking codes allow an admin to generate reports from the\nadmin console and assign an attribute to a specific group\nof users. This setting must be enabled for an enterprise before it\ncan be used."
    },
    "is_sync_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether the user can use Box Sync"
    },
    "notification_email": {
      "type": "object",
      "nullable": true,
      "properties": {
        "email": {
          "type": "string",
          "example": "notifications@example.com",
          "description": "The email address to send the notifications to."
        }
      },
      "description": "An alternate notification email address to which email\nnotifications are sent. When it's confirmed, this will be\nthe email address to which notifications are sent instead of\nto the primary email address.\n\nSet this value to `null` to remove the notification email."
    },
    "external_app_user_id": {
      "type": "string",
      "example": "my-user-1234",
      "description": "An external identifier for an app user, which can be used to look\nup the user. This can be used to tie user IDs from external\nidentity providers to Box users.\n\nNote: In order to update this field, you need to request a token\nusing the application that created the app user."
    },
    "can_see_managed_users": {
      "type": "boolean",
      "example": true,
      "description": "Whether the user can see other enterprise users in their\ncontact list"
    },
    "is_password_reset_required": {
      "type": "boolean",
      "example": true,
      "description": "Whether the user is required to reset their password"
    },
    "is_exempt_from_device_limits": {
      "type": "boolean",
      "example": true,
      "description": "Whether to exempt the user from enterprise device limits"
    },
    "is_external_collab_restricted": {
      "type": "boolean",
      "example": true,
      "description": "Whether the user is allowed to collaborate with users outside\ntheir enterprise"
    },
    "is_exempt_from_login_verification": {
      "type": "boolean",
      "example": true,
      "description": "Whether the user must use two-factor authentication"
    }
  }
}
object Watermark
{
  "type": "object",
  "title": "Watermark",
  "x-box-tag": "file_watermarks",
  "properties": {
    "watermark": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When this watermark was created"
        },
        "modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When this task was modified"
        }
      }
    }
  },
  "description": "A watermark is a semi-transparent overlay on an embedded file\npreview that displays a viewer's email address or user ID\nand the time of access over a file's content",
  "x-box-resource-id": "watermark"
}
object WatermarksFilesApplyWatermarkToFileRequest
{
  "type": "object",
  "required": [
    "watermark"
  ],
  "properties": {
    "watermark": {
      "type": "object",
      "required": [
        "imprint"
      ],
      "properties": {
        "imprint": {
          "enum": [
            "default"
          ],
          "type": "string",
          "example": "default",
          "description": "The type of watermark to apply.\n\nCurrently only supports one option."
        }
      },
      "description": "The watermark to imprint on the file"
    }
  }
}
object WatermarksFoldersApplyToFolderRequest
{
  "type": "object",
  "required": [
    "watermark"
  ],
  "properties": {
    "watermark": {
      "type": "object",
      "required": [
        "imprint"
      ],
      "properties": {
        "imprint": {
          "enum": [
            "default"
          ],
          "type": "string",
          "example": "default",
          "description": "The type of watermark to apply.\n\nCurrently only supports one option."
        }
      },
      "description": "The watermark to imprint on the folder"
    }
  }
}
object WebLink
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WebLink--Mini"
    },
    {
      "properties": {
        "parent": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Folder--Mini"
            },
            {
              "description": "The parent object the web link belongs to"
            }
          ]
        },
        "owned_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Mini"
            },
            {
              "description": "The user who owns this web link"
            }
          ]
        },
        "purged_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": true,
          "description": "When this file will be permanently deleted."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When this file was created on Box’s servers."
        },
        "created_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Mini"
            },
            {
              "description": "The user who created this web link"
            }
          ]
        },
        "trashed_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "nullable": true,
          "description": "When this file was moved to the trash."
        },
        "description": {
          "type": "string",
          "example": "Example page",
          "description": "The description accompanying the web link. This is\nvisible within the Box web application."
        },
        "item_status": {
          "enum": [
            "active",
            "trashed",
            "deleted"
          ],
          "type": "string",
          "example": "active",
          "description": "Whether this item is deleted or not. Values include `active`,\n`trashed` if the file has been moved to the trash, and `deleted` if\nthe file has been permanently deleted"
        },
        "modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "When this file was last updated on the Box\nservers."
        },
        "modified_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Mini"
            },
            {
              "description": "The user who last modified this web link"
            }
          ]
        },
        "shared_link": {
          "allOf": [
            {
              "type": "object",
              "title": "Shared link",
              "required": [
                "url",
                "accessed",
                "effective_access",
                "effective_permission",
                "is_password_enabled",
                "download_count",
                "preview_count"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "format": "url",
                  "example": "https://www.box.com/s/vspke7y05sb214wjokpk",
                  "nullable": false,
                  "description": "The URL that can be used to access the item on Box.\n\nThis URL will display the item in Box's preview UI where the file\ncan be downloaded if allowed.\n\nThis URL will continue to work even when a custom `vanity_url`\nhas been set for this shared link."
                },
                "access": {
                  "enum": [
                    "open",
                    "company",
                    "collaborators"
                  ],
                  "type": "string",
                  "example": "open",
                  "nullable": false,
                  "description": "The access level for this shared link.\n\n* `open` - provides access to this item to anyone with this link\n* `company` - only provides access to this item to people the same company\n* `collaborators` - only provides access to this item to people who are\n   collaborators on this item\n\nIf this field is omitted when creating the shared link, the access level\nwill be set to the default access level specified by the enterprise admin."
                },
                "vanity_url": {
                  "type": "string",
                  "format": "url",
                  "example": "https://acme.app.box.com/v/my_url/",
                  "nullable": true,
                  "description": "The \"Custom URL\" that can also be used to preview the item on Box.  Custom\nURLs can only be created or modified in the Box Web application."
                },
                "permissions": {
                  "type": "object",
                  "required": [
                    "can_download",
                    "can_preview",
                    "can_edit"
                  ],
                  "properties": {
                    "can_edit": {
                      "type": "boolean",
                      "example": false,
                      "nullable": false,
                      "description": "Defines if the shared link allows for the item to be edited.\n\nThis value can only be `true` if `can_download` is also `true` and if\nthe item has a type of `file`."
                    },
                    "can_preview": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Defines if the shared link allows for the item to be previewed.\n\nThis value is always `true`. For shared links on folders this also\napplies to any items in the folder."
                    },
                    "can_download": {
                      "type": "boolean",
                      "example": true,
                      "nullable": false,
                      "description": "Defines if the shared link allows for the item to be downloaded. For\nshared links on folders, this also applies to any items in the folder.\n\nThis value can be set to `true` when the effective access level is\nset to `open` or `company`, not `collaborators`."
                    }
                  },
                  "description": "Defines if this link allows a user to preview, edit, and download an item.\nThese permissions refer to the shared link only and\ndo not supersede permissions applied to the item itself."
                },
                "unshared_at": {
                  "type": "string",
                  "format": "date-time",
                  "example": "2018-04-13T13:53:23-07:00",
                  "nullable": true,
                  "description": "The date and time when this link will be unshared. This field can only be\nset by users with paid accounts."
                },
                "vanity_name": {
                  "type": "string",
                  "example": "my_url",
                  "nullable": true,
                  "description": "The custom name of a shared link, as used in the `vanity_url` field."
                },
                "download_url": {
                  "type": "string",
                  "format": "url",
                  "example": "https://www.box.com/shared/static/rh935iit6ewrmw0unyul.jpeg",
                  "nullable": true,
                  "description": "A URL that can be used to download the file. This URL can be used in\na browser to download the file. This URL includes the file\nextension so that the file will be saved with the right file type.\n\nThis property will be `null` for folders.",
                  "x-box-premium-feature": true
                },
                "preview_count": {
                  "type": "integer",
                  "example": 3,
                  "nullable": false,
                  "description": "The number of times this item has been previewed."
                },
                "download_count": {
                  "type": "integer",
                  "example": 3,
                  "nullable": false,
                  "description": "The number of times this item has been downloaded."
                },
                "effective_access": {
                  "enum": [
                    "open",
                    "company",
                    "collaborators"
                  ],
                  "type": "string",
                  "example": "company",
                  "nullable": false,
                  "description": "The effective access level for the shared link. This can be a more\nrestrictive access level than the value in the `access` field when the\nenterprise settings restrict the allowed access levels."
                },
                "is_password_enabled": {
                  "type": "boolean",
                  "example": true,
                  "nullable": false,
                  "description": "Defines if the shared link requires a password to access the item."
                },
                "effective_permission": {
                  "enum": [
                    "can_edit",
                    "can_download",
                    "can_preview",
                    "no_access"
                  ],
                  "type": "string",
                  "example": "can_download",
                  "nullable": false,
                  "description": "The effective permissions for this shared link.\nThese result in the more restrictive combination of\nthe share link permissions and the item permissions set\nby the administrator, the owner, and any ancestor item\nsuch as a folder."
                }
              },
              "description": "Shared links provide direct, read-only access to files or folder on Box.\n\nShared links with open access level allow anyone with the URL\nto access the item, while shared links with company or collaborators access\nlevels can only be accessed by appropriately authenticated Box users."
            },
            {
              "description": "The shared link object for this item. Will be\n`null` if no shared link has been created."
            },
            {
              "nullable": true
            }
          ]
        },
        "path_collection": {
          "allOf": [
            {
              "type": "object",
              "title": "Path collection",
              "required": [
                "total_count",
                "entries"
              ],
              "properties": {
                "entries": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Folder--Mini"
                  },
                  "nullable": false,
                  "description": "The parent folders for this item"
                },
                "total_count": {
                  "type": "integer",
                  "format": "int64",
                  "example": 1,
                  "nullable": false,
                  "description": "The number of folders in this list."
                }
              },
              "description": "A list of parent folders for an item."
            },
            {
              "description": "The tree of folders that this web link is contained in,\nstarting at the root."
            },
            {
              "nullable": false
            }
          ]
        }
      }
    }
  ],
  "title": "Web link",
  "description": "Web links are objects that point to URLs. These objects\nare also known as bookmarks within the Box web application.\n\nWeb link objects are treated similarly to file objects,\nthey will also support most actions that apply to regular files.",
  "x-box-variant": "standard",
  "x-box-resource-id": "web_link"
}
object WebLink--Base
{
  "type": "object",
  "title": "Web link (Base)",
  "required": [
    "id",
    "type"
  ],
  "x-box-tag": "web_links",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this web link"
    },
    "etag": {
      "type": "string",
      "example": "1",
      "description": "The entity tag of this web link. Used with `If-Match`\nheaders."
    },
    "type": {
      "enum": [
        "web_link"
      ],
      "type": "string",
      "example": "web_link",
      "description": "`web_link`"
    }
  },
  "description": "Web links are objects that point to URLs. These objects\nare also known as bookmarks within the Box web application.\n\nWeb link objects are treated similarly to file objects,\nthey will also support most actions that apply to regular files.",
  "x-box-variant": "base",
  "x-box-variants": [
    "base",
    "mini",
    "standard"
  ],
  "x-box-resource-id": "web_link--base"
}
object WebLink--Mini
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WebLink--Base"
    },
    {
      "properties": {
        "url": {
          "type": "string",
          "example": "https://www.example.com/example/1234",
          "description": "The URL this web link points to"
        },
        "name": {
          "type": "string",
          "example": "My Bookmark",
          "description": "The name of the web link"
        },
        "sequence_id": {
          "allOf": [
            {
              "type": "string",
              "example": "3",
              "nullable": true,
              "description": "A numeric identifier that represents the most recent user event\nthat has been applied to this item.\n\nThis can be used in combination with the `GET /events`-endpoint\nto filter out user events that would have occurred before this\nidentifier was read.\n\nAn example would be where a Box Drive-like application\nwould fetch an item via the API, and then listen to incoming\nuser events for changes to the item. The application would\nignore any user events where the `sequence_id` in the event\nis smaller than or equal to the `sequence_id` in the originally\nfetched resource."
            },
            {
              "nullable": false
            }
          ]
        }
      }
    }
  ],
  "title": "Web link (Mini)",
  "description": "Web links are objects that point to URLs. These objects\nare also known as bookmarks within the Box web application.\n\nWeb link objects are treated similarly to file objects,\nthey will also support most actions that apply to regular files.",
  "x-box-variant": "mini",
  "x-box-resource-id": "web_link--mini"
}
object WebLinksCreateObjectRequest
{
  "type": "object",
  "required": [
    "parent",
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "example": "https://box.com",
      "description": "The URL that this web link links to. Must start with\n`\"http://\"` or `\"https://\"`."
    },
    "name": {
      "type": "string",
      "example": "Box Website",
      "description": "Name of the web link. Defaults to the URL if not set."
    },
    "parent": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "0",
          "description": "The ID of parent folder"
        }
      },
      "description": "The parent folder to create the web link within."
    },
    "description": {
      "type": "string",
      "example": "Cloud Content Management",
      "description": "Description of the web link."
    }
  }
}
object WebLinksUpdateObjectRequest
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "example": "https://box.com",
      "description": "The new URL that the web link links to. Must start with\n`\"http://\"` or `\"https://\"`."
    },
    "name": {
      "type": "string",
      "example": "Box Website",
      "description": "A new name for the web link. Defaults to the URL if not set."
    },
    "parent": {
      "allOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "example": "123",
              "description": "The ID of parent item"
            }
          },
          "description": "The parent for this item"
        },
        {
          "description": "The new parent folder to put the web link in.\nUse this to move the web link to a different folder."
        }
      ]
    },
    "description": {
      "type": "string",
      "example": "Cloud Content Management",
      "description": "A new description of the web link."
    },
    "shared_link": {
      "type": "object",
      "properties": {
        "access": {
          "enum": [
            "open",
            "company",
            "collaborators"
          ],
          "type": "string",
          "example": "open",
          "description": "The level of access for the shared link. This can be\nrestricted to anyone with the link (`open`), only people\nwithin the company (`company`) and only those who\nhave been invited to the folder (`collaborators`).\n\nIf not set, this field defaults to the access level specified\nby the enterprise admin. To create a shared link with this\ndefault setting pass the `shared_link` object with\nno `access` field, for example `{ \"shared_link\": {} }`.\n\nThe `company` access level is only available to paid\naccounts."
        },
        "password": {
          "type": "string",
          "example": "do-not-use-this-password",
          "description": "The password required to access the shared link. Set the\npassword to `null` to remove it.\nPasswords must now be at least eight characters\nlong and include a number, upper case letter, or\na non-numeric or non-alphabetic character.\nA password can only be set when `access` is set to `open`."
        },
        "unshared_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "The timestamp at which this shared link will\nexpire. This field can only be set by\nusers with paid accounts. The value must be greater than the\ncurrent date and time."
        },
        "vanity_name": {
          "type": "string",
          "example": "my-shared-link",
          "minLength": 12,
          "description": "Defines a custom vanity name to use in the shared link URL,\nfor example `https://app.box.com/v/my-shared-link`.\n\nCustom URLs should not be used when sharing sensitive content\nas vanity URLs are a lot easier to guess than regular shared\nlinks."
        }
      },
      "description": "The settings for the shared link to update."
    }
  }
}
object Webhook
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Webhook--Mini"
    },
    {
      "properties": {
        "address": {
          "type": "string",
          "example": "https://example.com/webhooks",
          "description": "The URL that is notified by this webhook"
        },
        "triggers": {
          "type": "array",
          "items": {
            "enum": [
              "FILE.UPLOADED",
              "FILE.PREVIEWED",
              "FILE.DOWNLOADED",
              "FILE.TRASHED",
              "FILE.DELETED",
              "FILE.RESTORED",
              "FILE.COPIED",
              "FILE.MOVED",
              "FILE.LOCKED",
              "FILE.UNLOCKED",
              "FILE.RENAMED",
              "COMMENT.CREATED",
              "COMMENT.UPDATED",
              "COMMENT.DELETED",
              "TASK_ASSIGNMENT.CREATED",
              "TASK_ASSIGNMENT.UPDATED",
              "METADATA_INSTANCE.CREATED",
              "METADATA_INSTANCE.UPDATED",
              "METADATA_INSTANCE.DELETED",
              "FOLDER.CREATED",
              "FOLDER.RENAMED",
              "FOLDER.DOWNLOADED",
              "FOLDER.RESTORED",
              "FOLDER.DELETED",
              "FOLDER.COPIED",
              "FOLDER.MOVED",
              "FOLDER.TRASHED",
              "WEBHOOK.DELETED",
              "COLLABORATION.CREATED",
              "COLLABORATION.ACCEPTED",
              "COLLABORATION.REJECTED",
              "COLLABORATION.REMOVED",
              "COLLABORATION.UPDATED",
              "SHARED_LINK.DELETED",
              "SHARED_LINK.CREATED",
              "SHARED_LINK.UPDATED",
              "SIGN_REQUEST.COMPLETED",
              "SIGN_REQUEST.DECLINED",
              "SIGN_REQUEST.EXPIRED",
              "SIGN_REQUEST.SIGNER_EMAIL_BOUNCED"
            ],
            "type": "string",
            "title": "Webhook Trigger",
            "example": "FILE.UPLOADED",
            "description": "The event name that triggered this webhook"
          },
          "example": [
            "FILE.UPLOADED"
          ],
          "description": "An array of event names that this webhook is\nto be triggered for"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "A timestamp identifying the time that\nthe webhook was created."
        },
        "created_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Mini"
            },
            {
              "description": "The user who created the webhook"
            }
          ]
        }
      }
    }
  ],
  "title": "Webhook",
  "x-box-tag": "webhooks",
  "description": "Represents a configured webhook.",
  "x-box-variant": "standard",
  "x-box-resource-id": "webhook"
}
object Webhook--Mini
{
  "type": "object",
  "title": "Webhook (Mini)",
  "x-box-tag": "webhooks",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this webhook."
    },
    "type": {
      "enum": [
        "webhook"
      ],
      "type": "string",
      "example": "webhook",
      "description": "`webhook`"
    },
    "target": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "1231232",
          "description": "The ID of the item to trigger a webhook"
        },
        "type": {
          "enum": [
            "file",
            "folder"
          ],
          "type": "string",
          "example": "file",
          "description": "The type of item to trigger a webhook"
        }
      },
      "description": "The item that will trigger the webhook"
    }
  },
  "description": "Represents a configured webhook.",
  "x-box-variant": "mini",
  "x-box-variants": [
    "mini",
    "standard"
  ],
  "x-box-resource-id": "webhook--mini"
}
object WebhookInvocation
{
  "type": "object",
  "title": "Webhook (V2) payload",
  "x-box-tag": "webhooks",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for this webhook invocation"
    },
    "type": {
      "enum": [
        "webhook_event"
      ],
      "type": "string",
      "example": "webhook_event",
      "description": "`webhook_event`"
    },
    "source": {
      "allOf": [
        {
          "oneOf": [
            {
              "$ref": "#/components/schemas/File"
            },
            {
              "$ref": "#/components/schemas/Folder"
            }
          ]
        },
        {
          "description": "The item that caused the event to trigger"
        }
      ]
    },
    "trigger": {
      "allOf": [
        {
          "enum": [
            "FILE.UPLOADED",
            "FILE.PREVIEWED",
            "FILE.DOWNLOADED",
            "FILE.TRASHED",
            "FILE.DELETED",
            "FILE.RESTORED",
            "FILE.COPIED",
            "FILE.MOVED",
            "FILE.LOCKED",
            "FILE.UNLOCKED",
            "FILE.RENAMED",
            "COMMENT.CREATED",
            "COMMENT.UPDATED",
            "COMMENT.DELETED",
            "TASK_ASSIGNMENT.CREATED",
            "TASK_ASSIGNMENT.UPDATED",
            "METADATA_INSTANCE.CREATED",
            "METADATA_INSTANCE.UPDATED",
            "METADATA_INSTANCE.DELETED",
            "FOLDER.CREATED",
            "FOLDER.RENAMED",
            "FOLDER.DOWNLOADED",
            "FOLDER.RESTORED",
            "FOLDER.DELETED",
            "FOLDER.COPIED",
            "FOLDER.MOVED",
            "FOLDER.TRASHED",
            "WEBHOOK.DELETED",
            "COLLABORATION.CREATED",
            "COLLABORATION.ACCEPTED",
            "COLLABORATION.REJECTED",
            "COLLABORATION.REMOVED",
            "COLLABORATION.UPDATED",
            "SHARED_LINK.DELETED",
            "SHARED_LINK.CREATED",
            "SHARED_LINK.UPDATED",
            "SIGN_REQUEST.COMPLETED",
            "SIGN_REQUEST.DECLINED",
            "SIGN_REQUEST.EXPIRED",
            "SIGN_REQUEST.SIGNER_EMAIL_BOUNCED"
          ],
          "type": "string",
          "title": "Webhook Trigger",
          "example": "FILE.UPLOADED",
          "description": "The event name that triggered this webhook"
        },
        {
          "description": "The event name that triggered this webhook"
        }
      ]
    },
    "webhook": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Webhook"
        },
        {
          "description": "The webhook object that triggered this event"
        }
      ]
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2012-12-12T10:53:43-08:00",
      "description": "A timestamp identifying the time that\nthe webhook event was triggered."
    },
    "created_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/User--Mini"
        },
        {
          "description": "The user that triggered this event"
        }
      ]
    }
  },
  "description": "The event that is sent to a webhook address when an event happens.",
  "x-box-resource-id": "webhook_invocation"
}
object Webhooks
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        },
        "prev_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVih",
          "nullable": true,
          "description": "The marker for the start of the previous page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Webhook--Mini"
          },
          "description": "A list of webhooks"
        }
      }
    }
  ],
  "title": "Webhooks",
  "x-box-tag": "webhooks",
  "description": "A list of webhooks.",
  "x-box-resource-id": "webhooks"
}
object WebhooksUpdateWebhookRequest
{
  "type": "object",
  "properties": {
    "target": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "1231232",
          "description": "The ID of the item to trigger a webhook"
        },
        "type": {
          "enum": [
            "file",
            "folder"
          ],
          "type": "string",
          "example": "file",
          "description": "The type of item to trigger a webhook"
        }
      },
      "description": "The item that will trigger the webhook"
    },
    "address": {
      "type": "string",
      "example": "https://example.com/webhooks",
      "description": "The URL that is notified by this webhook"
    },
    "triggers": {
      "type": "array",
      "items": {
        "enum": [
          "FILE.UPLOADED",
          "FILE.PREVIEWED",
          "FILE.DOWNLOADED",
          "FILE.TRASHED",
          "FILE.DELETED",
          "FILE.RESTORED",
          "FILE.COPIED",
          "FILE.MOVED",
          "FILE.LOCKED",
          "FILE.UNLOCKED",
          "FILE.RENAMED",
          "COMMENT.CREATED",
          "COMMENT.UPDATED",
          "COMMENT.DELETED",
          "TASK_ASSIGNMENT.CREATED",
          "TASK_ASSIGNMENT.UPDATED",
          "METADATA_INSTANCE.CREATED",
          "METADATA_INSTANCE.UPDATED",
          "METADATA_INSTANCE.DELETED",
          "FOLDER.CREATED",
          "FOLDER.RENAMED",
          "FOLDER.DOWNLOADED",
          "FOLDER.RESTORED",
          "FOLDER.DELETED",
          "FOLDER.COPIED",
          "FOLDER.MOVED",
          "FOLDER.TRASHED",
          "WEBHOOK.DELETED",
          "COLLABORATION.CREATED",
          "COLLABORATION.ACCEPTED",
          "COLLABORATION.REJECTED",
          "COLLABORATION.REMOVED",
          "COLLABORATION.UPDATED",
          "SHARED_LINK.DELETED",
          "SHARED_LINK.CREATED",
          "SHARED_LINK.UPDATED",
          "SIGN_REQUEST.COMPLETED",
          "SIGN_REQUEST.DECLINED",
          "SIGN_REQUEST.EXPIRED",
          "SIGN_REQUEST.SIGNER_EMAIL_BOUNCED"
        ],
        "type": "string",
        "title": "Webhook Trigger",
        "example": "FILE.UPLOADED",
        "description": "The event name that triggered this webhook"
      },
      "example": [
        "FILE.UPLOADED"
      ],
      "description": "An array of event names that this webhook is\nto be triggered for"
    }
  }
}
object Workflow
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Workflow--Mini"
    },
    {
      "properties": {
        "flows": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "12345",
                "description": "The identifier of the flow"
              },
              "type": {
                "enum": [
                  "flow"
                ],
                "type": "string",
                "example": "flow",
                "description": "The flow's resource type"
              },
              "trigger": {
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "enum": [
                          "trigger"
                        ],
                        "type": "string",
                        "example": "trigger",
                        "description": "The trigger's resource type"
                      },
                      "scope": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "ref": {
                              "type": "string",
                              "example": "/event/source/parameters/folder",
                              "description": "Indicates the path of the condition value to check"
                            },
                            "type": {
                              "enum": [
                                "trigger_scope"
                              ],
                              "type": "string",
                              "example": "trigger_scope",
                              "description": "The trigger scope's resource type"
                            },
                            "object": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "example": "12345",
                                  "description": "The id of the object"
                                },
                                "type": {
                                  "enum": [
                                    "folder"
                                  ],
                                  "type": "string",
                                  "example": "folder",
                                  "description": "The type of the object"
                                }
                              },
                              "description": "The object the `ref` points to"
                            }
                          },
                          "description": "Object that describes where and how a Trigger condition is met"
                        },
                        "description": "List of trigger scopes"
                      },
                      "trigger_type": {
                        "enum": [
                          "WORKFLOW_MANUAL_START"
                        ],
                        "type": "string",
                        "example": "WORKFLOW_MANUAL_START",
                        "description": "The type of trigger selected for this flow"
                      }
                    }
                  },
                  {
                    "description": "Trigger that initiates flow"
                  }
                ]
              },
              "outcomes": {
                "allOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "12345",
                          "description": "The identifier of the outcome"
                        },
                        "name": {
                          "type": "string",
                          "example": "Task Approval Outcome",
                          "description": "The name of the outcome"
                        },
                        "type": {
                          "enum": [
                            "outcome"
                          ],
                          "type": "string",
                          "example": "outcome",
                          "description": "The outcomes resource type"
                        },
                        "action_type": {
                          "allOf": [
                            {
                              "enum": [
                                "add_metadata",
                                "assign_task",
                                "copy_file",
                                "copy_folder",
                                "create_folder",
                                "delete_file",
                                "delete_folder",
                                "lock_file",
                                "move_file",
                                "move_folder",
                                "remove_watermark_file",
                                "rename_folder",
                                "restore_folder",
                                "share_file",
                                "share_folder",
                                "unlock_file",
                                "upload_file",
                                "wait_for_task",
                                "watermark_file",
                                "go_back_to_step",
                                "apply_file_classification",
                                "apply_folder_classification",
                                "send_notification"
                              ],
                              "type": "string",
                              "title": "Action Type",
                              "example": "assign_task",
                              "description": "The type of outcome"
                            },
                            {
                              "description": "The type of outcome"
                            }
                          ]
                        },
                        "if_rejected": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "example": "12345",
                                "description": "The identifier of the outcome"
                              },
                              "name": {
                                "type": "string",
                                "example": "Approval Rejection Outcome",
                                "description": "The name of the outcome"
                              },
                              "type": {
                                "enum": [
                                  "outcome"
                                ],
                                "type": "string",
                                "example": "outcome",
                                "description": "The outcomes resource type"
                              },
                              "action_type": {
                                "allOf": [
                                  {
                                    "enum": [
                                      "add_metadata",
                                      "assign_task",
                                      "copy_file",
                                      "copy_folder",
                                      "create_folder",
                                      "delete_file",
                                      "delete_folder",
                                      "lock_file",
                                      "move_file",
                                      "move_folder",
                                      "remove_watermark_file",
                                      "rename_folder",
                                      "restore_folder",
                                      "share_file",
                                      "share_folder",
                                      "unlock_file",
                                      "upload_file",
                                      "wait_for_task",
                                      "watermark_file",
                                      "go_back_to_step",
                                      "apply_file_classification",
                                      "apply_folder_classification",
                                      "send_notification"
                                    ],
                                    "type": "string",
                                    "title": "Action Type",
                                    "example": "assign_task",
                                    "description": "The type of outcome"
                                  },
                                  {
                                    "description": "The type of outcome"
                                  }
                                ]
                              }
                            }
                          },
                          "description": "If `action_type` is `assign_task` and the task is rejected, returns a\nlist of outcomes to complete"
                        }
                      },
                      "description": "List of outcomes to perform once the conditions of trigger are met."
                    }
                  },
                  {
                    "description": "Actions that are completed once the flow is triggered"
                  }
                ]
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "example": "2012-12-12T10:53:43-08:00",
                "description": "When this flow was created"
              },
              "created_by": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/User--Base"
                  },
                  {
                    "description": "The user who created this flow"
                  }
                ]
              }
            },
            "description": "A step in a Box Relay Workflow. Each flow contains a `Trigger` and\na collection of Outcomes to perform once the conditions of a\n`Trigger` are met"
          },
          "description": "A list of flows assigned to a workflow."
        }
      }
    }
  ],
  "title": "Workflow",
  "description": "Box Relay Workflows are objects that represent a named collection of flows.\n\nYour application must be authorized to use the `Manage Box Relay` application\nscope within the developer console in order to use this resource.",
  "x-box-variant": "standard",
  "x-box-resource-id": "workflow"
}
object Workflow--Full
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Workflow"
    },
    {
      "properties": {
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "The date and time when the workflow was created on Box"
        },
        "created_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Base"
            },
            {
              "description": "The user who created this workflow"
            }
          ]
        },
        "modified_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-12-12T10:53:43-08:00",
          "description": "The date and time when the workflow was last updated on Box"
        },
        "modified_by": {
          "allOf": [
            {
              "$ref": "#/components/schemas/User--Base"
            },
            {
              "description": "The user who last modified this workflow"
            }
          ]
        }
      }
    }
  ],
  "title": "Workflow (Full)",
  "description": "Box Relay Workflows are objects that represent a named collection of flows.\n\nYou application must be authorized to use the `Manage Box Relay` application\nscope within the developer console in order to use this resource.",
  "x-box-variant": "full",
  "x-box-resource-id": "workflow--full"
}
object Workflow--Mini
{
  "type": "object",
  "title": "Workflow (Mini)",
  "x-box-tag": "workflows",
  "properties": {
    "id": {
      "type": "string",
      "example": "11446498",
      "description": "The unique identifier for the workflow"
    },
    "name": {
      "type": "string",
      "example": "New Hire Workflow",
      "description": "The name of the workflow"
    },
    "type": {
      "enum": [
        "workflow"
      ],
      "type": "string",
      "example": "workflow",
      "description": "`workflow`"
    },
    "is_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Specifies if this workflow is enabled"
    },
    "description": {
      "type": "string",
      "example": "This workflow sets off a new hire approval flow",
      "description": "The description for a workflow."
    }
  },
  "description": "Box Relay Workflows are objects that represent a named collection of flows.\n\nYou application must be authorized to use the `Manage Box Relay` application\nscope within the developer console in order to use this resource.",
  "x-box-variant": "mini",
  "x-box-variants": [
    "mini",
    "standard",
    "full"
  ],
  "x-box-resource-id": "workflow--mini"
}
object Workflows
{
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "format": "int64",
          "example": 1000,
          "description": "The limit that was used for these entries. This will be the same as the\n`limit` query parameter unless that value exceeded the maximum value\nallowed. The maximum value varies by API."
        },
        "next_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVii",
          "nullable": true,
          "description": "The marker for the start of the next page of results."
        },
        "prev_marker": {
          "type": "string",
          "example": "JV9IRGZmieiBasejOG9yDCRNgd2ymoZIbjsxbJMjIs3kioVih",
          "nullable": true,
          "description": "The marker for the start of the previous page of results."
        }
      },
      "description": "The part of an API response that describes marker\nbased pagination"
    },
    {
      "properties": {
        "entries": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Workflow"
          },
          "description": "A list of workflows"
        }
      }
    }
  ],
  "title": "Workflows",
  "x-box-tag": "workflows",
  "description": "A list of workflows.\n\nYou application must be authorized to use the `Manage Box Relay` application\nscope within the developer console in order to use this resource.",
  "x-box-resource-id": "workflows"
}
object WorkflowsStartBasedOnRequestRequest
{
  "type": "object",
  "required": [
    "flow",
    "files",
    "folder"
  ],
  "properties": {
    "flow": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "123456789",
          "description": "The id of the flow"
        },
        "type": {
          "type": "string",
          "example": "flow",
          "description": "The type of the flow object"
        }
      },
      "description": "The flow that will be triggered"
    },
    "type": {
      "enum": [
        "workflow_parameters"
      ],
      "type": "string",
      "example": "workflow_parameters",
      "description": "The type of the parameters object"
    },
    "files": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "12345678",
            "description": "The id of the file"
          },
          "type": {
            "enum": [
              "file"
            ],
            "type": "string",
            "example": "file",
            "description": "The type of the file object"
          }
        },
        "description": "A file the workflow should start for"
      },
      "description": "The array of files for which the workflow should start. All files\nmust be in the workflow's configured folder."
    },
    "folder": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "87654321",
          "description": "The id of the folder"
        },
        "type": {
          "enum": [
            "folder"
          ],
          "type": "string",
          "example": "folder",
          "description": "The type of the folder object"
        }
      },
      "description": "The folder object for which the workflow is configured."
    },
    "outcomes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Outcome"
      },
      "description": "A configurable outcome the workflow should complete."
    }
  }
}
object ZipDownload
{
  "type": "object",
  "title": "Zip download",
  "example": {
    "expires_at": "2020-07-22T11:26:08Z",
    "status_url": "https://api.box.com/2.0/zip_downloads/29l00nfxDyHOt7RphI9zT_w==nDnZEDjY2S8iEWWCHEEiptFxwoWojjlibZjJ6geuE5xnXENDTPxzgbks_yY=/status",
    "download_url": "https://dl.boxcloud.com/2.0/zip_downloads/29l00nfxDyHOt7RphI9zT_w==nDnZEDjY2S8iEWWCHEEiptFxwoWojjlibZjJ6geuE5xnXENDTPxzgbks_yY=/content",
    "name_conflicts": [
      [
        {
          "id": "12345X",
          "type": "file",
          "download_name": "3aa6a7.pdf",
          "original_name": "Report.pdf"
        },
        {
          "id": "34325X",
          "type": "file",
          "download_name": "5d53f2.pdf",
          "original_name": "Report.pdf"
        }
      ]
    ]
  },
  "x-box-tag": "zip_downloads",
  "properties": {
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "example": "2019-08-29T23:59:00-07:00",
      "description": "The time and date when this archive will expire. After this time the\n`status_url` and `download_url` will return an error.\n\nBy default, these URLs are only valid for a few seconds, unless a download\nis started after which the `download_url` is valid for the duration of the\ndownload, and the `status_url` is valid for 12 hours from the start of the\ndownload."
    },
    "status_url": {
      "type": "string",
      "example": "https://api.box.com/2.0/zip_downloads/Lu6fA9Ob-jyysp3AAvMF4AkLEwZwAYbL=tgj2zIC=eK9RvJnJbjJl9rNh2qBgHDpyOCAOhpM=vajg2mKq8Mdd/status",
      "description": "The URL that can be used to get the status of the `zip` archive being\ndownloaded. A `Get` request to this URL will return the number of files\nin the archive as well as the number of items already downloaded or\nskipped. By default, this URL is only valid for a few seconds, until the\n`expires_at` time, unless a download is started after which the URL is\nvalid for 12 hours from the start of the download.\n\nIt is important to note that the domain and path of this URL might change\nbetween API calls, and therefore it's important to use this URL as-is."
    },
    "download_url": {
      "type": "string",
      "example": "https://dl.boxcloud.com/2.0/zip_downloads/Lu6fA9Ob-jyysp3AAvMF4AkLEwZwAYbL=tgj2zIC=eK9RvJnJbjJl9rNh2qBgHDpyOCAOhpM=vajg2mKq8Mdd/content",
      "description": "The URL that can be used to download the `zip` archive. A `Get` request to\nthis URL will start streaming the items requested. By default, this URL\nis only valid for a few seconds, until the `expires_at` time, unless a\ndownload is started after which it is valid for the duration of the\ndownload.\n\nIt is important to note that the domain and path of this URL might change\nbetween API calls, and therefore it's important to use this URL as-is."
    },
    "name_conflicts": {
      "type": "array",
      "items": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "example": "12345",
              "description": "The identifier of the item"
            },
            "type": {
              "enum": [
                "file",
                "folder"
              ],
              "type": "string",
              "example": "file",
              "description": "The type of this item"
            },
            "download_name": {
              "type": "string",
              "example": "3aa6a7.pdf",
              "description": "The new name of this item as it will appear in the\ndownloaded `zip` archive."
            },
            "original_name": {
              "type": "string",
              "example": "Report.pdf",
              "description": "The original name of this item"
            }
          },
          "description": "A file or folder for which a conflict was encountered, This object provides the type and identifier of the original item, as well as a mapping between its original name and it's new name as it will appear in the archive."
        },
        "description": "An individual conflict that occurred when trying to create the archive.\nThis includes an array of 2 objects, each containing the original name\nand the renamed filename of a file or folder for which the names\nconflicted."
      },
      "description": "A list of conflicts that occurred when trying to create the archive. This\nwould occur when multiple items have been requested with the\nsame name.\n\nTo solve these conflicts, the API will automatically rename an item\nand return a mapping between the original item's name and its new\nname.\n\nFor every conflict, both files will be renamed and therefore this list\nwill always be a multiple of 2."
    }
  },
  "description": "Represents a successful request to create a `zip` archive of a list of files\nand folders.",
  "x-box-resource-id": "zip_download",
  "x-box-reference-category": "zip_downloads"
}
object ZipDownloadRequest
{
  "type": "object",
  "title": "Create a `zip` archive",
  "required": [
    "items"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "type",
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "example": "12345",
            "description": "The identifier of the item to add to the archive. When this item is\na folder then this can not be the root folder with ID `0`."
          },
          "type": {
            "enum": [
              "file",
              "folder"
            ],
            "type": "string",
            "example": "file",
            "description": "The type of the item to add to the archive."
          }
        },
        "description": "An item to add to the `zip` archive. This can be a file or a folder."
      },
      "description": "A list of items to add to the `zip` archive. These can\nbe folders or files."
    },
    "download_file_name": {
      "type": "string",
      "example": "January Financials",
      "description": "The optional name of the `zip` archive. This name will be appended by the\n`.zip` file extension, for example `January Financials.zip`."
    }
  },
  "description": "A request to create a `zip` archive to download"
}
object ZipDownloadStatus
{
  "type": "object",
  "title": "Zip download status",
  "x-box-tag": "zip_downloads",
  "properties": {
    "state": {
      "enum": [
        "in_progress",
        "failed",
        "succeeded"
      ],
      "type": "string",
      "default": "in_progress",
      "example": "succeeded",
      "description": "The state of the archive being downloaded."
    },
    "total_file_count": {
      "type": "integer",
      "example": 20,
      "maximum": 10000,
      "minimum": 0,
      "description": "The total number of files in the archive."
    },
    "skipped_file_count": {
      "type": "integer",
      "example": 5,
      "minimum": 0,
      "description": "The number of files that have been skipped as they could not be\ndownloaded. In many cases this is due to permission issues that have\nsurfaced between the creation of the request for the archive and the\narchive being downloaded."
    },
    "skipped_folder_count": {
      "type": "integer",
      "example": 5,
      "minimum": 0,
      "description": "The number of folders that have been skipped as they could not be\ndownloaded. In many cases this is due to permission issues that have\nsurfaced between the creation of the request for the archive and the\narchive being downloaded."
    },
    "downloaded_file_count": {
      "type": "integer",
      "example": 10,
      "minimum": 0,
      "description": "The number of files that have already been downloaded."
    }
  },
  "description": "The status of a `zip` archive being downloaded.",
  "x-box-resource-id": "zip_download_status",
  "x-box-reference-category": "zip_downloads"
}
string ZipDownloadsGetContentByIdResponse
{
  "type": "string",
  "format": "binary",
  "description": "The binary content of the archive, which will include the items\nrequested for this download."
}