diff --git a/credentials.json b/credentials.json new file mode 100644 index 0000000000000000000000000000000000000000..691cae41c8e79a69cc3dacb279d3e5345d469ebc --- /dev/null +++ b/credentials.json @@ -0,0 +1,13 @@ +{ + "type": "service_account", + "project_id": "adr-demo1", + "private_key_id": "4cc6ab0f41bd07b7458c4ac31001a58da494e701", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCkXzEvAM42FL15\ngkRvnJMxi6bcNxWTE96UJYJ+Y+WaHkXr3v4BrWV3sJnYOI3HFiUpcG/BbKZUzoxJ\nL1vTtzZIhA/OrEl9xDF9Ta4xxDiwaZWBQnwbtCZIIqk8Al5UvjHcP8ZpR3dZ3luf\nql/M+o8Wh1pllejrHtq/rrXDhuFYEuyBh/Oft8wpqIoPwKLW51I3jn42Q0u9hOJO\n56lHultNfCPzGzRd6H0XpbCi5S0Doo8m1mOMjHdrHUAk2/4CQ39wepeyB/77LXhD\n51/9PIaSKHo7tY4GMfIhAmAPuOF2718EY8xJWjkOdzbs9kXheW7OFTBq5zyrNLwm\nRaDUFXmBAgMBAAECggEAAQ9hcH1/gaHInGFWslGUMXGbyzfKZSnE+bee4SnLxUla\nB2y8vqNbpYCiErRAAH9dZf2vpX5fOZTLcCgPXjeERhtz7qVLJAsr4TRVt0RzXnqP\n2Ebm01bqGEpWRRN5gEUUapM5YwcZofQT1d0cw7mp9T885K1+1GVdNndDUiuAheI2\ntrAca4JApH6uRy6rbeEm0pPnIsvwIDA/6YuaQJvPuBclN44aLanAO/M2UhtXnuYI\nfXCMdV0EG3dwTmQGpjPWJxEjXO8pQn67pqJfBej0x8ZZ/qJCR0P8hGhPOrZcu+db\nZ6XxeKHMX0t95tuonMAx+0XaUnKXfG0VorJ3EDsbQQKBgQDSYWc9jK043hJk588F\ndPmRavuSQCjJbEShVtbf1bIhW6vlemqCnkkGg5X8OfLprf+eikzLbx2ToVPx6x+j\nMzEYXr5ZsWmXhN8MXY+wka5bl+V1XI7bekTB+dKjUauF22SFvEv2XPVvi/5m7S3L\nCrjfIYSAzTtjv0Q9W2NAOwHvhQKBgQDIA8RhgnuLK7GJyBOQ77WbAdaG/r17x7yP\nBhaP+uB09OyGUyWMvgzzh3m8fo0T8hxyJGNL2lG77MlxdUt49FRoin4z3SwD73JF\nHaXSyHBF/gSSaEje2OOg+XY3Ry7Nt8CRM+UWlZ5S8TEFfaBsDfxIH1cwpTGKX+JT\nUOFPnwe8zQKBgQCRrk1Ve8K/7FeEdFkRCE2Bezm1rqQPxt9HceDdoxb0row8Hib/\nSCh9UEVeIaqqUoj9+frvrIQopMCCdzSzSFGo9IKPjaD3AVWLNIa52EeKuYZ1XKC4\nLtTKFfrciUNjL+dODHP1p611jtWd5IOfZE9cg9NDddq4WcwhSNVTtwjCGQKBgDIA\nvxehh0FDqx7G5h1V0BDwZLFa/gPz6y/WVc2o6nRSxs7N+pU07gfz1ntJJ/vUi0f9\n0NUlv0k76SB0MmoKqw93kBVnNZnGQssEnnATq/3Tg1EWwSD1F/MmamdnZEwJpBqo\n3pzGys3xfk/hGDnrRSbCrwl6QuhVED/D+I/vMgABAoGBAMyMz38hTbEnp/qePGJy\nUwIcJrgd0GexJBayR29zFcUIeJRX7bq11/LRu+bFYJ5wuCem72QndfEneU5T1l1F\nwIPBhJsK1XP9m0sLIR3TWNywRX+1omfK0V9rxoAm22Tq9t/CXwQuXjHBqUyvoE3c\nvFo3c3iTC+cUM7XnlDzOQDsV\n-----END PRIVATE KEY-----\n", + "client_email": "adrgooglesheet@adr-demo1.iam.gserviceaccount.com", + "client_id": "114059569575086599132", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/adrgooglesheet%40adr-demo1.iam.gserviceaccount.com", + "universe_domain": "googleapis.com" +} diff --git a/dropbox_plans/2301 BMW job1 external.pdf b/dropbox_plans/2301 BMW job1 external.pdf new file mode 100644 index 0000000000000000000000000000000000000000..faef0b11e8f2f6c1567f861da9934f19a9fa28be Binary files /dev/null and b/dropbox_plans/2301 BMW job1 external.pdf differ diff --git a/dropbox_plans/2301 BMW job1 foundation.pdf b/dropbox_plans/2301 BMW job1 foundation.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cfc1378e435bb75e4ea6896294c4e82ce699a790 Binary files /dev/null and b/dropbox_plans/2301 BMW job1 foundation.pdf differ diff --git a/dropbox_plans/2301 BMW job1 pc2.pdf b/dropbox_plans/2301 BMW job1 pc2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fd4c17741770a45ee05723ce7383e91a7a6457b6 Binary files /dev/null and b/dropbox_plans/2301 BMW job1 pc2.pdf differ diff --git a/dropbox_plans/2301 BMW job1 pc3.pdf b/dropbox_plans/2301 BMW job1 pc3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..faef0b11e8f2f6c1567f861da9934f19a9fa28be Binary files /dev/null and b/dropbox_plans/2301 BMW job1 pc3.pdf differ diff --git a/dropbox_plans/2301 BMW job1 piles.pdf b/dropbox_plans/2301 BMW job1 piles.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fd4c17741770a45ee05723ce7383e91a7a6457b6 Binary files /dev/null and b/dropbox_plans/2301 BMW job1 piles.pdf differ diff --git a/dropbox_plans/2301 BMW job2 external.pdf b/dropbox_plans/2301 BMW job2 external.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e5c473a10ffbf6919154830a133b1f34767fb45e Binary files /dev/null and b/dropbox_plans/2301 BMW job2 external.pdf differ diff --git a/dropbox_plans/2301 BMW job2 interior.pdf b/dropbox_plans/2301 BMW job2 interior.pdf new file mode 100644 index 0000000000000000000000000000000000000000..de57b90c6025b12f6bbe26fd68af7d3a521808a0 Binary files /dev/null and b/dropbox_plans/2301 BMW job2 interior.pdf differ diff --git a/dropbox_plans/2301 BMW job2 pc5.pdf b/dropbox_plans/2301 BMW job2 pc5.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e5c473a10ffbf6919154830a133b1f34767fb45e Binary files /dev/null and b/dropbox_plans/2301 BMW job2 pc5.pdf differ diff --git a/dropbox_plans/2301 BMW job2 pc7.pdf b/dropbox_plans/2301 BMW job2 pc7.pdf new file mode 100644 index 0000000000000000000000000000000000000000..de57b90c6025b12f6bbe26fd68af7d3a521808a0 Binary files /dev/null and b/dropbox_plans/2301 BMW job2 pc7.pdf differ diff --git a/dropbox_plans/2301BMWfoundation.pdf b/dropbox_plans/2301BMWfoundation.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/dropbox_plans/2301BMWpc2.pdf b/dropbox_plans/2301BMWpc2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/dropbox_plans/2301BMWpc3.pdf b/dropbox_plans/2301BMWpc3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/dropbox_plans/BMW job1 23-HRW-01-BG-DR-S-110_P.02_FN.pdf b/dropbox_plans/BMW job1 23-HRW-01-BG-DR-S-110_P.02_FN.pdf new file mode 100644 index 0000000000000000000000000000000000000000..60dfb7dd20a90955b64415b3269ad794e8c9bce7 Binary files /dev/null and b/dropbox_plans/BMW job1 23-HRW-01-BG-DR-S-110_P.02_FN.pdf differ diff --git a/dropbox_plans/foundation.pdf b/dropbox_plans/foundation.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cfc1378e435bb75e4ea6896294c4e82ce699a790 Binary files /dev/null and b/dropbox_plans/foundation.pdf differ diff --git a/dropbox_plans/foundation2023.pdf b/dropbox_plans/foundation2023.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cfc1378e435bb75e4ea6896294c4e82ce699a790 Binary files /dev/null and b/dropbox_plans/foundation2023.pdf differ diff --git a/dropbox_plans/pc2-2023.pdf b/dropbox_plans/pc2-2023.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fd4c17741770a45ee05723ce7383e91a7a6457b6 Binary files /dev/null and b/dropbox_plans/pc2-2023.pdf differ diff --git a/dropbox_plans/pc2.pdf b/dropbox_plans/pc2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fd4c17741770a45ee05723ce7383e91a7a6457b6 Binary files /dev/null and b/dropbox_plans/pc2.pdf differ diff --git a/dropbox_plans/pc3-2023.pdf b/dropbox_plans/pc3-2023.pdf new file mode 100644 index 0000000000000000000000000000000000000000..faef0b11e8f2f6c1567f861da9934f19a9fa28be Binary files /dev/null and b/dropbox_plans/pc3-2023.pdf differ diff --git a/dropbox_plans/pc3.pdf b/dropbox_plans/pc3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..faef0b11e8f2f6c1567f861da9934f19a9fa28be Binary files /dev/null and b/dropbox_plans/pc3.pdf differ diff --git a/dropbox_plans/pc5 2023.pdf b/dropbox_plans/pc5 2023.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e5c473a10ffbf6919154830a133b1f34767fb45e Binary files /dev/null and b/dropbox_plans/pc5 2023.pdf differ diff --git a/dropbox_plans/pc5.pdf b/dropbox_plans/pc5.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e5c473a10ffbf6919154830a133b1f34767fb45e Binary files /dev/null and b/dropbox_plans/pc5.pdf differ diff --git a/dropbox_plans/pc7 2023.pdf b/dropbox_plans/pc7 2023.pdf new file mode 100644 index 0000000000000000000000000000000000000000..de57b90c6025b12f6bbe26fd68af7d3a521808a0 Binary files /dev/null and b/dropbox_plans/pc7 2023.pdf differ diff --git a/dropbox_plans/pc7.pdf b/dropbox_plans/pc7.pdf new file mode 100644 index 0000000000000000000000000000000000000000..de57b90c6025b12f6bbe26fd68af7d3a521808a0 Binary files /dev/null and b/dropbox_plans/pc7.pdf differ diff --git a/dropbox_plans/piles_origCountSummary.csv b/dropbox_plans/piles_origCountSummary.csv new file mode 100644 index 0000000000000000000000000000000000000000..77df10231ef15aa5d63bbff9219258fb594b235e --- /dev/null +++ b/dropbox_plans/piles_origCountSummary.csv @@ -0,0 +1,2 @@ +Plan_Name,Matched items,Sensitivity +piles_orig.pdf,8,70 diff --git a/node_modules/node-fetch/LICENSE.md b/node_modules/node-fetch/LICENSE.md new file mode 100644 index 0000000000000000000000000000000000000000..660ffecb58b02f27a562c193c71f14b7b573fc96 --- /dev/null +++ b/node_modules/node-fetch/LICENSE.md @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2016 David Frank + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/node_modules/node-fetch/README.md b/node_modules/node-fetch/README.md new file mode 100644 index 0000000000000000000000000000000000000000..4f87a59a0638185f29cc0e0251311a48fe1a443d --- /dev/null +++ b/node_modules/node-fetch/README.md @@ -0,0 +1,633 @@ +node-fetch +========== + +[![npm version][npm-image]][npm-url] +[![build status][travis-image]][travis-url] +[![coverage status][codecov-image]][codecov-url] +[![install size][install-size-image]][install-size-url] +[![Discord][discord-image]][discord-url] + +A light-weight module that brings `window.fetch` to Node.js + +(We are looking for [v2 maintainers and collaborators](https://github.com/bitinn/node-fetch/issues/567)) + +[![Backers][opencollective-image]][opencollective-url] + + + +- [Motivation](#motivation) +- [Features](#features) +- [Difference from client-side fetch](#difference-from-client-side-fetch) +- [Installation](#installation) +- [Loading and configuring the module](#loading-and-configuring-the-module) +- [Common Usage](#common-usage) + - [Plain text or HTML](#plain-text-or-html) + - [JSON](#json) + - [Simple Post](#simple-post) + - [Post with JSON](#post-with-json) + - [Post with form parameters](#post-with-form-parameters) + - [Handling exceptions](#handling-exceptions) + - [Handling client and server errors](#handling-client-and-server-errors) +- [Advanced Usage](#advanced-usage) + - [Streams](#streams) + - [Buffer](#buffer) + - [Accessing Headers and other Meta data](#accessing-headers-and-other-meta-data) + - [Extract Set-Cookie Header](#extract-set-cookie-header) + - [Post data using a file stream](#post-data-using-a-file-stream) + - [Post with form-data (detect multipart)](#post-with-form-data-detect-multipart) + - [Request cancellation with AbortSignal](#request-cancellation-with-abortsignal) +- [API](#api) + - [fetch(url[, options])](#fetchurl-options) + - [Options](#options) + - [Class: Request](#class-request) + - [Class: Response](#class-response) + - [Class: Headers](#class-headers) + - [Interface: Body](#interface-body) + - [Class: FetchError](#class-fetcherror) +- [License](#license) +- [Acknowledgement](#acknowledgement) + + + +## Motivation + +Instead of implementing `XMLHttpRequest` in Node.js to run browser-specific [Fetch polyfill](https://github.com/github/fetch), why not go from native `http` to `fetch` API directly? Hence, `node-fetch`, minimal code for a `window.fetch` compatible API on Node.js runtime. + +See Matt Andrews' [isomorphic-fetch](https://github.com/matthew-andrews/isomorphic-fetch) or Leonardo Quixada's [cross-fetch](https://github.com/lquixada/cross-fetch) for isomorphic usage (exports `node-fetch` for server-side, `whatwg-fetch` for client-side). + +## Features + +- Stay consistent with `window.fetch` API. +- Make conscious trade-off when following [WHATWG fetch spec][whatwg-fetch] and [stream spec](https://streams.spec.whatwg.org/) implementation details, document known differences. +- Use native promise but allow substituting it with [insert your favorite promise library]. +- Use native Node streams for body on both request and response. +- Decode content encoding (gzip/deflate) properly and convert string output (such as `res.text()` and `res.json()`) to UTF-8 automatically. +- Useful extensions such as timeout, redirect limit, response size limit, [explicit errors](ERROR-HANDLING.md) for troubleshooting. + +## Difference from client-side fetch + +- See [Known Differences](LIMITS.md) for details. +- If you happen to use a missing feature that `window.fetch` offers, feel free to open an issue. +- Pull requests are welcomed too! + +## Installation + +Current stable release (`2.x`) + +```sh +$ npm install node-fetch +``` + +## Loading and configuring the module +We suggest you load the module via `require` until the stabilization of ES modules in node: +```js +const fetch = require('node-fetch'); +``` + +If you are using a Promise library other than native, set it through `fetch.Promise`: +```js +const Bluebird = require('bluebird'); + +fetch.Promise = Bluebird; +``` + +## Common Usage + +NOTE: The documentation below is up-to-date with `2.x` releases; see the [`1.x` readme](https://github.com/bitinn/node-fetch/blob/1.x/README.md), [changelog](https://github.com/bitinn/node-fetch/blob/1.x/CHANGELOG.md) and [2.x upgrade guide](UPGRADE-GUIDE.md) for the differences. + +#### Plain text or HTML +```js +fetch('https://github.com/') + .then(res => res.text()) + .then(body => console.log(body)); +``` + +#### JSON + +```js + +fetch('https://api.github.com/users/github') + .then(res => res.json()) + .then(json => console.log(json)); +``` + +#### Simple Post +```js +fetch('https://httpbin.org/post', { method: 'POST', body: 'a=1' }) + .then(res => res.json()) // expecting a json response + .then(json => console.log(json)); +``` + +#### Post with JSON + +```js +const body = { a: 1 }; + +fetch('https://httpbin.org/post', { + method: 'post', + body: JSON.stringify(body), + headers: { 'Content-Type': 'application/json' }, + }) + .then(res => res.json()) + .then(json => console.log(json)); +``` + +#### Post with form parameters +`URLSearchParams` is available in Node.js as of v7.5.0. See [official documentation](https://nodejs.org/api/url.html#url_class_urlsearchparams) for more usage methods. + +NOTE: The `Content-Type` header is only set automatically to `x-www-form-urlencoded` when an instance of `URLSearchParams` is given as such: + +```js +const { URLSearchParams } = require('url'); + +const params = new URLSearchParams(); +params.append('a', 1); + +fetch('https://httpbin.org/post', { method: 'POST', body: params }) + .then(res => res.json()) + .then(json => console.log(json)); +``` + +#### Handling exceptions +NOTE: 3xx-5xx responses are *NOT* exceptions and should be handled in `then()`; see the next section for more information. + +Adding a catch to the fetch promise chain will catch *all* exceptions, such as errors originating from node core libraries, network errors and operational errors, which are instances of FetchError. See the [error handling document](ERROR-HANDLING.md) for more details. + +```js +fetch('https://domain.invalid/') + .catch(err => console.error(err)); +``` + +#### Handling client and server errors +It is common to create a helper function to check that the response contains no client (4xx) or server (5xx) error responses: + +```js +function checkStatus(res) { + if (res.ok) { // res.status >= 200 && res.status < 300 + return res; + } else { + throw MyCustomError(res.statusText); + } +} + +fetch('https://httpbin.org/status/400') + .then(checkStatus) + .then(res => console.log('will not get here...')) +``` + +## Advanced Usage + +#### Streams +The "Node.js way" is to use streams when possible: + +```js +fetch('https://assets-cdn.github.com/images/modules/logos_page/Octocat.png') + .then(res => { + const dest = fs.createWriteStream('./octocat.png'); + res.body.pipe(dest); + }); +``` + +In Node.js 14 you can also use async iterators to read `body`; however, be careful to catch +errors -- the longer a response runs, the more likely it is to encounter an error. + +```js +const fetch = require('node-fetch'); +const response = await fetch('https://httpbin.org/stream/3'); +try { + for await (const chunk of response.body) { + console.dir(JSON.parse(chunk.toString())); + } +} catch (err) { + console.error(err.stack); +} +``` + +In Node.js 12 you can also use async iterators to read `body`; however, async iterators with streams +did not mature until Node.js 14, so you need to do some extra work to ensure you handle errors +directly from the stream and wait on it response to fully close. + +```js +const fetch = require('node-fetch'); +const read = async body => { + let error; + body.on('error', err => { + error = err; + }); + for await (const chunk of body) { + console.dir(JSON.parse(chunk.toString())); + } + return new Promise((resolve, reject) => { + body.on('close', () => { + error ? reject(error) : resolve(); + }); + }); +}; +try { + const response = await fetch('https://httpbin.org/stream/3'); + await read(response.body); +} catch (err) { + console.error(err.stack); +} +``` + +#### Buffer +If you prefer to cache binary data in full, use buffer(). (NOTE: `buffer()` is a `node-fetch`-only API) + +```js +const fileType = require('file-type'); + +fetch('https://assets-cdn.github.com/images/modules/logos_page/Octocat.png') + .then(res => res.buffer()) + .then(buffer => fileType(buffer)) + .then(type => { /* ... */ }); +``` + +#### Accessing Headers and other Meta data +```js +fetch('https://github.com/') + .then(res => { + console.log(res.ok); + console.log(res.status); + console.log(res.statusText); + console.log(res.headers.raw()); + console.log(res.headers.get('content-type')); + }); +``` + +#### Extract Set-Cookie Header + +Unlike browsers, you can access raw `Set-Cookie` headers manually using `Headers.raw()`. This is a `node-fetch` only API. + +```js +fetch(url).then(res => { + // returns an array of values, instead of a string of comma-separated values + console.log(res.headers.raw()['set-cookie']); +}); +``` + +#### Post data using a file stream + +```js +const { createReadStream } = require('fs'); + +const stream = createReadStream('input.txt'); + +fetch('https://httpbin.org/post', { method: 'POST', body: stream }) + .then(res => res.json()) + .then(json => console.log(json)); +``` + +#### Post with form-data (detect multipart) + +```js +const FormData = require('form-data'); + +const form = new FormData(); +form.append('a', 1); + +fetch('https://httpbin.org/post', { method: 'POST', body: form }) + .then(res => res.json()) + .then(json => console.log(json)); + +// OR, using custom headers +// NOTE: getHeaders() is non-standard API + +const form = new FormData(); +form.append('a', 1); + +const options = { + method: 'POST', + body: form, + headers: form.getHeaders() +} + +fetch('https://httpbin.org/post', options) + .then(res => res.json()) + .then(json => console.log(json)); +``` + +#### Request cancellation with AbortSignal + +> NOTE: You may cancel streamed requests only on Node >= v8.0.0 + +You may cancel requests with `AbortController`. A suggested implementation is [`abort-controller`](https://www.npmjs.com/package/abort-controller). + +An example of timing out a request after 150ms could be achieved as the following: + +```js +import AbortController from 'abort-controller'; + +const controller = new AbortController(); +const timeout = setTimeout( + () => { controller.abort(); }, + 150, +); + +fetch(url, { signal: controller.signal }) + .then(res => res.json()) + .then( + data => { + useData(data) + }, + err => { + if (err.name === 'AbortError') { + // request was aborted + } + }, + ) + .finally(() => { + clearTimeout(timeout); + }); +``` + +See [test cases](https://github.com/bitinn/node-fetch/blob/master/test/test.js) for more examples. + + +## API + +### fetch(url[, options]) + +- `url` A string representing the URL for fetching +- `options` [Options](#fetch-options) for the HTTP(S) request +- Returns: Promise<[Response](#class-response)> + +Perform an HTTP(S) fetch. + +`url` should be an absolute url, such as `https://example.com/`. A path-relative URL (`/file/under/root`) or protocol-relative URL (`//can-be-http-or-https.com/`) will result in a rejected `Promise`. + + +### Options + +The default values are shown after each option key. + +```js +{ + // These properties are part of the Fetch Standard + method: 'GET', + headers: {}, // request headers. format is the identical to that accepted by the Headers constructor (see below) + body: null, // request body. can be null, a string, a Buffer, a Blob, or a Node.js Readable stream + redirect: 'follow', // set to `manual` to extract redirect headers, `error` to reject redirect + signal: null, // pass an instance of AbortSignal to optionally abort requests + + // The following properties are node-fetch extensions + follow: 20, // maximum redirect count. 0 to not follow redirect + timeout: 0, // req/res timeout in ms, it resets on redirect. 0 to disable (OS limit applies). Signal is recommended instead. + compress: true, // support gzip/deflate content encoding. false to disable + size: 0, // maximum response body size in bytes. 0 to disable + agent: null // http(s).Agent instance or function that returns an instance (see below) +} +``` + +##### Default Headers + +If no values are set, the following request headers will be sent automatically: + +Header | Value +------------------- | -------------------------------------------------------- +`Accept-Encoding` | `gzip,deflate` _(when `options.compress === true`)_ +`Accept` | `*/*` +`Connection` | `close` _(when no `options.agent` is present)_ +`Content-Length` | _(automatically calculated, if possible)_ +`Transfer-Encoding` | `chunked` _(when `req.body` is a stream)_ +`User-Agent` | `node-fetch/1.0 (+https://github.com/bitinn/node-fetch)` + +Note: when `body` is a `Stream`, `Content-Length` is not set automatically. + +##### Custom Agent + +The `agent` option allows you to specify networking related options which are out of the scope of Fetch, including and not limited to the following: + +- Support self-signed certificate +- Use only IPv4 or IPv6 +- Custom DNS Lookup + +See [`http.Agent`](https://nodejs.org/api/http.html#http_new_agent_options) for more information. + +In addition, the `agent` option accepts a function that returns `http`(s)`.Agent` instance given current [URL](https://nodejs.org/api/url.html), this is useful during a redirection chain across HTTP and HTTPS protocol. + +```js +const httpAgent = new http.Agent({ + keepAlive: true +}); +const httpsAgent = new https.Agent({ + keepAlive: true +}); + +const options = { + agent: function (_parsedURL) { + if (_parsedURL.protocol == 'http:') { + return httpAgent; + } else { + return httpsAgent; + } + } +} +``` + + +### Class: Request + +An HTTP(S) request containing information about URL, method, headers, and the body. This class implements the [Body](#iface-body) interface. + +Due to the nature of Node.js, the following properties are not implemented at this moment: + +- `type` +- `destination` +- `referrer` +- `referrerPolicy` +- `mode` +- `credentials` +- `cache` +- `integrity` +- `keepalive` + +The following node-fetch extension properties are provided: + +- `follow` +- `compress` +- `counter` +- `agent` + +See [options](#fetch-options) for exact meaning of these extensions. + +#### new Request(input[, options]) + +*(spec-compliant)* + +- `input` A string representing a URL, or another `Request` (which will be cloned) +- `options` [Options][#fetch-options] for the HTTP(S) request + +Constructs a new `Request` object. The constructor is identical to that in the [browser](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request). + +In most cases, directly `fetch(url, options)` is simpler than creating a `Request` object. + + +### Class: Response + +An HTTP(S) response. This class implements the [Body](#iface-body) interface. + +The following properties are not implemented in node-fetch at this moment: + +- `Response.error()` +- `Response.redirect()` +- `type` +- `trailer` + +#### new Response([body[, options]]) + +*(spec-compliant)* + +- `body` A `String` or [`Readable` stream][node-readable] +- `options` A [`ResponseInit`][response-init] options dictionary + +Constructs a new `Response` object. The constructor is identical to that in the [browser](https://developer.mozilla.org/en-US/docs/Web/API/Response/Response). + +Because Node.js does not implement service workers (for which this class was designed), one rarely has to construct a `Response` directly. + +#### response.ok + +*(spec-compliant)* + +Convenience property representing if the request ended normally. Will evaluate to true if the response status was greater than or equal to 200 but smaller than 300. + +#### response.redirected + +*(spec-compliant)* + +Convenience property representing if the request has been redirected at least once. Will evaluate to true if the internal redirect counter is greater than 0. + + +### Class: Headers + +This class allows manipulating and iterating over a set of HTTP headers. All methods specified in the [Fetch Standard][whatwg-fetch] are implemented. + +#### new Headers([init]) + +*(spec-compliant)* + +- `init` Optional argument to pre-fill the `Headers` object + +Construct a new `Headers` object. `init` can be either `null`, a `Headers` object, an key-value map object or any iterable object. + +```js +// Example adapted from https://fetch.spec.whatwg.org/#example-headers-class + +const meta = { + 'Content-Type': 'text/xml', + 'Breaking-Bad': '<3' +}; +const headers = new Headers(meta); + +// The above is equivalent to +const meta = [ + [ 'Content-Type', 'text/xml' ], + [ 'Breaking-Bad', '<3' ] +]; +const headers = new Headers(meta); + +// You can in fact use any iterable objects, like a Map or even another Headers +const meta = new Map(); +meta.set('Content-Type', 'text/xml'); +meta.set('Breaking-Bad', '<3'); +const headers = new Headers(meta); +const copyOfHeaders = new Headers(headers); +``` + + +### Interface: Body + +`Body` is an abstract interface with methods that are applicable to both `Request` and `Response` classes. + +The following methods are not yet implemented in node-fetch at this moment: + +- `formData()` + +#### body.body + +*(deviation from spec)* + +* Node.js [`Readable` stream][node-readable] + +Data are encapsulated in the `Body` object. Note that while the [Fetch Standard][whatwg-fetch] requires the property to always be a WHATWG `ReadableStream`, in node-fetch it is a Node.js [`Readable` stream][node-readable]. + +#### body.bodyUsed + +*(spec-compliant)* + +* `Boolean` + +A boolean property for if this body has been consumed. Per the specs, a consumed body cannot be used again. + +#### body.arrayBuffer() +#### body.blob() +#### body.json() +#### body.text() + +*(spec-compliant)* + +* Returns: Promise + +Consume the body and return a promise that will resolve to one of these formats. + +#### body.buffer() + +*(node-fetch extension)* + +* Returns: Promise<Buffer> + +Consume the body and return a promise that will resolve to a Buffer. + +#### body.textConverted() + +*(node-fetch extension)* + +* Returns: Promise<String> + +Identical to `body.text()`, except instead of always converting to UTF-8, encoding sniffing will be performed and text converted to UTF-8 if possible. + +(This API requires an optional dependency of the npm package [encoding](https://www.npmjs.com/package/encoding), which you need to install manually. `webpack` users may see [a warning message](https://github.com/bitinn/node-fetch/issues/412#issuecomment-379007792) due to this optional dependency.) + + +### Class: FetchError + +*(node-fetch extension)* + +An operational error in the fetching process. See [ERROR-HANDLING.md][] for more info. + + +### Class: AbortError + +*(node-fetch extension)* + +An Error thrown when the request is aborted in response to an `AbortSignal`'s `abort` event. It has a `name` property of `AbortError`. See [ERROR-HANDLING.MD][] for more info. + +## Acknowledgement + +Thanks to [github/fetch](https://github.com/github/fetch) for providing a solid implementation reference. + +`node-fetch` v1 was maintained by [@bitinn](https://github.com/bitinn); v2 was maintained by [@TimothyGu](https://github.com/timothygu), [@bitinn](https://github.com/bitinn) and [@jimmywarting](https://github.com/jimmywarting); v2 readme is written by [@jkantr](https://github.com/jkantr). + +## License + +MIT + +[npm-image]: https://flat.badgen.net/npm/v/node-fetch +[npm-url]: https://www.npmjs.com/package/node-fetch +[travis-image]: https://flat.badgen.net/travis/bitinn/node-fetch +[travis-url]: https://travis-ci.org/bitinn/node-fetch +[codecov-image]: https://flat.badgen.net/codecov/c/github/bitinn/node-fetch/master +[codecov-url]: https://codecov.io/gh/bitinn/node-fetch +[install-size-image]: https://flat.badgen.net/packagephobia/install/node-fetch +[install-size-url]: https://packagephobia.now.sh/result?p=node-fetch +[discord-image]: https://img.shields.io/discord/619915844268326952?color=%237289DA&label=Discord&style=flat-square +[discord-url]: https://discord.gg/Zxbndcm +[opencollective-image]: https://opencollective.com/node-fetch/backers.svg +[opencollective-url]: https://opencollective.com/node-fetch +[whatwg-fetch]: https://fetch.spec.whatwg.org/ +[response-init]: https://fetch.spec.whatwg.org/#responseinit +[node-readable]: https://nodejs.org/api/stream.html#stream_readable_streams +[mdn-headers]: https://developer.mozilla.org/en-US/docs/Web/API/Headers +[LIMITS.md]: https://github.com/bitinn/node-fetch/blob/master/LIMITS.md +[ERROR-HANDLING.md]: https://github.com/bitinn/node-fetch/blob/master/ERROR-HANDLING.md +[UPGRADE-GUIDE.md]: https://github.com/bitinn/node-fetch/blob/master/UPGRADE-GUIDE.md diff --git a/node_modules/node-fetch/browser.js b/node_modules/node-fetch/browser.js new file mode 100644 index 0000000000000000000000000000000000000000..ee86265ae3adab9f03cf10f486384735417320e6 --- /dev/null +++ b/node_modules/node-fetch/browser.js @@ -0,0 +1,25 @@ +"use strict"; + +// ref: https://github.com/tc39/proposal-global +var getGlobal = function () { + // the only reliable means to get the global object is + // `Function('return this')()` + // However, this causes CSP violations in Chrome apps. + if (typeof self !== 'undefined') { return self; } + if (typeof window !== 'undefined') { return window; } + if (typeof global !== 'undefined') { return global; } + throw new Error('unable to locate global object'); +} + +var globalObject = getGlobal(); + +module.exports = exports = globalObject.fetch; + +// Needed for TypeScript and Webpack. +if (globalObject.fetch) { + exports.default = globalObject.fetch.bind(globalObject); +} + +exports.Headers = globalObject.Headers; +exports.Request = globalObject.Request; +exports.Response = globalObject.Response; diff --git a/node_modules/node-fetch/lib/index.es.js b/node_modules/node-fetch/lib/index.es.js new file mode 100644 index 0000000000000000000000000000000000000000..79d717be9ae56d455f7f5c7890178bc4bb65da9c --- /dev/null +++ b/node_modules/node-fetch/lib/index.es.js @@ -0,0 +1,1778 @@ +process.emitWarning("The .es.js file is deprecated. Use .mjs instead."); + +import Stream from 'stream'; +import http from 'http'; +import Url from 'url'; +import whatwgUrl from 'whatwg-url'; +import https from 'https'; +import zlib from 'zlib'; + +// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js + +// fix for "Readable" isn't a named export issue +const Readable = Stream.Readable; + +const BUFFER = Symbol('buffer'); +const TYPE = Symbol('type'); + +class Blob { + constructor() { + this[TYPE] = ''; + + const blobParts = arguments[0]; + const options = arguments[1]; + + const buffers = []; + let size = 0; + + if (blobParts) { + const a = blobParts; + const length = Number(a.length); + for (let i = 0; i < length; i++) { + const element = a[i]; + let buffer; + if (element instanceof Buffer) { + buffer = element; + } else if (ArrayBuffer.isView(element)) { + buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); + } else if (element instanceof ArrayBuffer) { + buffer = Buffer.from(element); + } else if (element instanceof Blob) { + buffer = element[BUFFER]; + } else { + buffer = Buffer.from(typeof element === 'string' ? element : String(element)); + } + size += buffer.length; + buffers.push(buffer); + } + } + + this[BUFFER] = Buffer.concat(buffers); + + let type = options && options.type !== undefined && String(options.type).toLowerCase(); + if (type && !/[^\u0020-\u007E]/.test(type)) { + this[TYPE] = type; + } + } + get size() { + return this[BUFFER].length; + } + get type() { + return this[TYPE]; + } + text() { + return Promise.resolve(this[BUFFER].toString()); + } + arrayBuffer() { + const buf = this[BUFFER]; + const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + return Promise.resolve(ab); + } + stream() { + const readable = new Readable(); + readable._read = function () {}; + readable.push(this[BUFFER]); + readable.push(null); + return readable; + } + toString() { + return '[object Blob]'; + } + slice() { + const size = this.size; + + const start = arguments[0]; + const end = arguments[1]; + let relativeStart, relativeEnd; + if (start === undefined) { + relativeStart = 0; + } else if (start < 0) { + relativeStart = Math.max(size + start, 0); + } else { + relativeStart = Math.min(start, size); + } + if (end === undefined) { + relativeEnd = size; + } else if (end < 0) { + relativeEnd = Math.max(size + end, 0); + } else { + relativeEnd = Math.min(end, size); + } + const span = Math.max(relativeEnd - relativeStart, 0); + + const buffer = this[BUFFER]; + const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); + const blob = new Blob([], { type: arguments[2] }); + blob[BUFFER] = slicedBuffer; + return blob; + } +} + +Object.defineProperties(Blob.prototype, { + size: { enumerable: true }, + type: { enumerable: true }, + slice: { enumerable: true } +}); + +Object.defineProperty(Blob.prototype, Symbol.toStringTag, { + value: 'Blob', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * fetch-error.js + * + * FetchError interface for operational errors + */ + +/** + * Create FetchError instance + * + * @param String message Error message for human + * @param String type Error type for machine + * @param String systemError For Node.js system error + * @return FetchError + */ +function FetchError(message, type, systemError) { + Error.call(this, message); + + this.message = message; + this.type = type; + + // when err.type is `system`, err.code contains system error code + if (systemError) { + this.code = this.errno = systemError.code; + } + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +FetchError.prototype = Object.create(Error.prototype); +FetchError.prototype.constructor = FetchError; +FetchError.prototype.name = 'FetchError'; + +let convert; +try { + convert = require('encoding').convert; +} catch (e) {} + +const INTERNALS = Symbol('Body internals'); + +// fix an issue where "PassThrough" isn't a named export for node <10 +const PassThrough = Stream.PassThrough; + +/** + * Body mixin + * + * Ref: https://fetch.spec.whatwg.org/#body + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +function Body(body) { + var _this = this; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref$size = _ref.size; + + let size = _ref$size === undefined ? 0 : _ref$size; + var _ref$timeout = _ref.timeout; + let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; + + if (body == null) { + // body is undefined or null + body = null; + } else if (isURLSearchParams(body)) { + // body is a URLSearchParams + body = Buffer.from(body.toString()); + } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { + // body is ArrayBuffer + body = Buffer.from(body); + } else if (ArrayBuffer.isView(body)) { + // body is ArrayBufferView + body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); + } else if (body instanceof Stream) ; else { + // none of the above + // coerce to string then buffer + body = Buffer.from(String(body)); + } + this[INTERNALS] = { + body, + disturbed: false, + error: null + }; + this.size = size; + this.timeout = timeout; + + if (body instanceof Stream) { + body.on('error', function (err) { + const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err); + _this[INTERNALS].error = error; + }); + } +} + +Body.prototype = { + get body() { + return this[INTERNALS].body; + }, + + get bodyUsed() { + return this[INTERNALS].disturbed; + }, + + /** + * Decode response as ArrayBuffer + * + * @return Promise + */ + arrayBuffer() { + return consumeBody.call(this).then(function (buf) { + return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + }); + }, + + /** + * Return raw response as Blob + * + * @return Promise + */ + blob() { + let ct = this.headers && this.headers.get('content-type') || ''; + return consumeBody.call(this).then(function (buf) { + return Object.assign( + // Prevent copying + new Blob([], { + type: ct.toLowerCase() + }), { + [BUFFER]: buf + }); + }); + }, + + /** + * Decode response as json + * + * @return Promise + */ + json() { + var _this2 = this; + + return consumeBody.call(this).then(function (buffer) { + try { + return JSON.parse(buffer.toString()); + } catch (err) { + return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json')); + } + }); + }, + + /** + * Decode response as text + * + * @return Promise + */ + text() { + return consumeBody.call(this).then(function (buffer) { + return buffer.toString(); + }); + }, + + /** + * Decode response as buffer (non-spec api) + * + * @return Promise + */ + buffer() { + return consumeBody.call(this); + }, + + /** + * Decode response as text, while automatically detecting the encoding and + * trying to decode to UTF-8 (non-spec api) + * + * @return Promise + */ + textConverted() { + var _this3 = this; + + return consumeBody.call(this).then(function (buffer) { + return convertBody(buffer, _this3.headers); + }); + } +}; + +// In browsers, all properties are enumerable. +Object.defineProperties(Body.prototype, { + body: { enumerable: true }, + bodyUsed: { enumerable: true }, + arrayBuffer: { enumerable: true }, + blob: { enumerable: true }, + json: { enumerable: true }, + text: { enumerable: true } +}); + +Body.mixIn = function (proto) { + for (const name of Object.getOwnPropertyNames(Body.prototype)) { + // istanbul ignore else: future proof + if (!(name in proto)) { + const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); + Object.defineProperty(proto, name, desc); + } + } +}; + +/** + * Consume and convert an entire Body to a Buffer. + * + * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body + * + * @return Promise + */ +function consumeBody() { + var _this4 = this; + + if (this[INTERNALS].disturbed) { + return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); + } + + this[INTERNALS].disturbed = true; + + if (this[INTERNALS].error) { + return Body.Promise.reject(this[INTERNALS].error); + } + + let body = this.body; + + // body is null + if (body === null) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is blob + if (isBlob(body)) { + body = body.stream(); + } + + // body is buffer + if (Buffer.isBuffer(body)) { + return Body.Promise.resolve(body); + } + + // istanbul ignore if: should never happen + if (!(body instanceof Stream)) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is stream + // get ready to actually consume the body + let accum = []; + let accumBytes = 0; + let abort = false; + + return new Body.Promise(function (resolve, reject) { + let resTimeout; + + // allow timeout on slow response body + if (_this4.timeout) { + resTimeout = setTimeout(function () { + abort = true; + reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout')); + }, _this4.timeout); + } + + // handle stream errors + body.on('error', function (err) { + if (err.name === 'AbortError') { + // if the request was aborted, reject with this Error + abort = true; + reject(err); + } else { + // other errors, such as incorrect content-encoding + reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + + body.on('data', function (chunk) { + if (abort || chunk === null) { + return; + } + + if (_this4.size && accumBytes + chunk.length > _this4.size) { + abort = true; + reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size')); + return; + } + + accumBytes += chunk.length; + accum.push(chunk); + }); + + body.on('end', function () { + if (abort) { + return; + } + + clearTimeout(resTimeout); + + try { + resolve(Buffer.concat(accum, accumBytes)); + } catch (err) { + // handle streams that have accumulated too much data (issue #414) + reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + }); +} + +/** + * Detect buffer encoding and convert to target encoding + * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding + * + * @param Buffer buffer Incoming buffer + * @param String encoding Target encoding + * @return String + */ +function convertBody(buffer, headers) { + if (typeof convert !== 'function') { + throw new Error('The package `encoding` must be installed to use the textConverted() function'); + } + + const ct = headers.get('content-type'); + let charset = 'utf-8'; + let res, str; + + // header + if (ct) { + res = /charset=([^;]*)/i.exec(ct); + } + + // no charset in content type, peek at response body for at most 1024 bytes + str = buffer.slice(0, 1024).toString(); + + // html5 + if (!res && str) { + res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined; + + this[MAP] = Object.create(null); + + if (init instanceof Headers) { + const rawHeaders = init.raw(); + const headerNames = Object.keys(rawHeaders); + + for (const headerName of headerNames) { + for (const value of rawHeaders[headerName]) { + this.append(headerName, value); + } + } + + return; + } + + // We don't worry about converting prop to ByteString here as append() + // will handle it. + if (init == null) ; else if (typeof init === 'object') { + const method = init[Symbol.iterator]; + if (method != null) { + if (typeof method !== 'function') { + throw new TypeError('Header pairs must be iterable'); + } + + // sequence> + // Note: per spec we have to first exhaust the lists then process them + const pairs = []; + for (const pair of init) { + if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') { + throw new TypeError('Each header pair must be iterable'); + } + pairs.push(Array.from(pair)); + } + + for (const pair of pairs) { + if (pair.length !== 2) { + throw new TypeError('Each header pair must be a name/value tuple'); + } + this.append(pair[0], pair[1]); + } + } else { + // record + for (const key of Object.keys(init)) { + const value = init[key]; + this.append(key, value); + } + } + } else { + throw new TypeError('Provided initializer must be an object'); + } + } + + /** + * Return combined header value given name + * + * @param String name Header name + * @return Mixed + */ + get(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key === undefined) { + return null; + } + + return this[MAP][key].join(', '); + } + + /** + * Iterate over all headers + * + * @param Function callback Executed for each item with parameters (value, name, thisArg) + * @param Boolean thisArg `this` context for callback function + * @return Void + */ + forEach(callback) { + let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; + + let pairs = getHeaders(this); + let i = 0; + while (i < pairs.length) { + var _pairs$i = pairs[i]; + const name = _pairs$i[0], + value = _pairs$i[1]; + + callback.call(thisArg, value, name, this); + pairs = getHeaders(this); + i++; + } + } + + /** + * Overwrite header values given name + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + set(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + this[MAP][key !== undefined ? key : name] = [value]; + } + + /** + * Append a value onto existing header + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + append(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + if (key !== undefined) { + this[MAP][key].push(value); + } else { + this[MAP][name] = [value]; + } + } + + /** + * Check for header name existence + * + * @param String name Header name + * @return Boolean + */ + has(name) { + name = `${name}`; + validateName(name); + return find(this[MAP], name) !== undefined; + } + + /** + * Delete all header values given name + * + * @param String name Header name + * @return Void + */ + delete(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key !== undefined) { + delete this[MAP][key]; + } + } + + /** + * Return raw headers (non-spec api) + * + * @return Object + */ + raw() { + return this[MAP]; + } + + /** + * Get an iterator on keys. + * + * @return Iterator + */ + keys() { + return createHeadersIterator(this, 'key'); + } + + /** + * Get an iterator on values. + * + * @return Iterator + */ + values() { + return createHeadersIterator(this, 'value'); + } + + /** + * Get an iterator on entries. + * + * This is the default iterator of the Headers object. + * + * @return Iterator + */ + [Symbol.iterator]() { + return createHeadersIterator(this, 'key+value'); + } +} +Headers.prototype.entries = Headers.prototype[Symbol.iterator]; + +Object.defineProperty(Headers.prototype, Symbol.toStringTag, { + value: 'Headers', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Headers.prototype, { + get: { enumerable: true }, + forEach: { enumerable: true }, + set: { enumerable: true }, + append: { enumerable: true }, + has: { enumerable: true }, + delete: { enumerable: true }, + keys: { enumerable: true }, + values: { enumerable: true }, + entries: { enumerable: true } +}); + +function getHeaders(headers) { + let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; + + const keys = Object.keys(headers[MAP]).sort(); + return keys.map(kind === 'key' ? function (k) { + return k.toLowerCase(); + } : kind === 'value' ? function (k) { + return headers[MAP][k].join(', '); + } : function (k) { + return [k.toLowerCase(), headers[MAP][k].join(', ')]; + }); +} + +const INTERNAL = Symbol('internal'); + +function createHeadersIterator(target, kind) { + const iterator = Object.create(HeadersIteratorPrototype); + iterator[INTERNAL] = { + target, + kind, + index: 0 + }; + return iterator; +} + +const HeadersIteratorPrototype = Object.setPrototypeOf({ + next() { + // istanbul ignore if + if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { + throw new TypeError('Value of `this` is not a HeadersIterator'); + } + + var _INTERNAL = this[INTERNAL]; + const target = _INTERNAL.target, + kind = _INTERNAL.kind, + index = _INTERNAL.index; + + const values = getHeaders(target, kind); + const len = values.length; + if (index >= len) { + return { + value: undefined, + done: true + }; + } + + this[INTERNAL].index = index + 1; + + return { + value: values[index], + done: false + }; + } +}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); + +Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { + value: 'HeadersIterator', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * Export the Headers object in a form that Node.js can consume. + * + * @param Headers headers + * @return Object + */ +function exportNodeCompatibleHeaders(headers) { + const obj = Object.assign({ __proto__: null }, headers[MAP]); + + // http.request() only supports string as Host header. This hack makes + // specifying custom Host header possible. + const hostHeaderKey = find(headers[MAP], 'Host'); + if (hostHeaderKey !== undefined) { + obj[hostHeaderKey] = obj[hostHeaderKey][0]; + } + + return obj; +} + +/** + * Create a Headers object from an object of headers, ignoring those that do + * not conform to HTTP grammar productions. + * + * @param Object obj Object of headers + * @return Headers + */ +function createHeadersLenient(obj) { + const headers = new Headers(); + for (const name of Object.keys(obj)) { + if (invalidTokenRegex.test(name)) { + continue; + } + if (Array.isArray(obj[name])) { + for (const val of obj[name]) { + if (invalidHeaderCharRegex.test(val)) { + continue; + } + if (headers[MAP][name] === undefined) { + headers[MAP][name] = [val]; + } else { + headers[MAP][name].push(val); + } + } + } else if (!invalidHeaderCharRegex.test(obj[name])) { + headers[MAP][name] = [obj[name]]; + } + } + return headers; +} + +const INTERNALS$1 = Symbol('Response internals'); + +// fix an issue where "STATUS_CODES" aren't a named export for node <10 +const STATUS_CODES = http.STATUS_CODES; + +/** + * Response class + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +class Response { + constructor() { + let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + Body.call(this, body, opts); + + const status = opts.status || 200; + const headers = new Headers(opts.headers); + + if (body != null && !headers.has('Content-Type')) { + const contentType = extractContentType(body); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + this[INTERNALS$1] = { + url: opts.url, + status, + statusText: opts.statusText || STATUS_CODES[status], + headers, + counter: opts.counter + }; + } + + get url() { + return this[INTERNALS$1].url || ''; + } + + get status() { + return this[INTERNALS$1].status; + } + + /** + * Convenience property representing if the request ended normally + */ + get ok() { + return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; + } + + get redirected() { + return this[INTERNALS$1].counter > 0; + } + + get statusText() { + return this[INTERNALS$1].statusText; + } + + get headers() { + return this[INTERNALS$1].headers; + } + + /** + * Clone this response + * + * @return Response + */ + clone() { + return new Response(clone(this), { + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok, + redirected: this.redirected + }); + } +} + +Body.mixIn(Response.prototype); + +Object.defineProperties(Response.prototype, { + url: { enumerable: true }, + status: { enumerable: true }, + ok: { enumerable: true }, + redirected: { enumerable: true }, + statusText: { enumerable: true }, + headers: { enumerable: true }, + clone: { enumerable: true } +}); + +Object.defineProperty(Response.prototype, Symbol.toStringTag, { + value: 'Response', + writable: false, + enumerable: false, + configurable: true +}); + +const INTERNALS$2 = Symbol('Request internals'); +const URL = Url.URL || whatwgUrl.URL; + +// fix an issue where "format", "parse" aren't a named export for node <10 +const parse_url = Url.parse; +const format_url = Url.format; + +/** + * Wrapper around `new URL` to handle arbitrary URLs + * + * @param {string} urlStr + * @return {void} + */ +function parseURL(urlStr) { + /* + Check whether the URL is absolute or not + Scheme: https://tools.ietf.org/html/rfc3986#section-3.1 + Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3 + */ + if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) { + urlStr = new URL(urlStr).toString(); + } + + // Fallback to old implementation for arbitrary URLs + return parse_url(urlStr); +} + +const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; + +/** + * Check if a value is an instance of Request. + * + * @param Mixed input + * @return Boolean + */ +function isRequest(input) { + return typeof input === 'object' && typeof input[INTERNALS$2] === 'object'; +} + +function isAbortSignal(signal) { + const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal); + return !!(proto && proto.constructor.name === 'AbortSignal'); +} + +/** + * Request class + * + * @param Mixed input Url or Request instance + * @param Object init Custom options + * @return Void + */ +class Request { + constructor(input) { + let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + let parsedURL; + + // normalize input + if (!isRequest(input)) { + if (input && input.href) { + // in order to support Node.js' Url objects; though WHATWG's URL objects + // will fall into this branch also (since their `toString()` will return + // `href` property anyway) + parsedURL = parseURL(input.href); + } else { + // coerce input to a string before attempting to parse + parsedURL = parseURL(`${input}`); + } + input = {}; + } else { + parsedURL = parseURL(input.url); + } + + let method = init.method || input.method || 'GET'; + method = method.toUpperCase(); + + if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) { + throw new TypeError('Request with GET/HEAD method cannot have body'); + } + + let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null; + + Body.call(this, inputBody, { + timeout: init.timeout || input.timeout || 0, + size: init.size || input.size || 0 + }); + + const headers = new Headers(init.headers || input.headers || {}); + + if (inputBody != null && !headers.has('Content-Type')) { + const contentType = extractContentType(inputBody); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + let signal = isRequest(input) ? input.signal : null; + if ('signal' in init) signal = init.signal; + + if (signal != null && !isAbortSignal(signal)) { + throw new TypeError('Expected signal to be an instanceof AbortSignal'); + } + + this[INTERNALS$2] = { + method, + redirect: init.redirect || input.redirect || 'follow', + headers, + parsedURL, + signal + }; + + // node-fetch-only options + this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20; + this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true; + this.counter = init.counter || input.counter || 0; + this.agent = init.agent || input.agent; + } + + get method() { + return this[INTERNALS$2].method; + } + + get url() { + return format_url(this[INTERNALS$2].parsedURL); + } + + get headers() { + return this[INTERNALS$2].headers; + } + + get redirect() { + return this[INTERNALS$2].redirect; + } + + get signal() { + return this[INTERNALS$2].signal; + } + + /** + * Clone this request + * + * @return Request + */ + clone() { + return new Request(this); + } +} + +Body.mixIn(Request.prototype); + +Object.defineProperty(Request.prototype, Symbol.toStringTag, { + value: 'Request', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Request.prototype, { + method: { enumerable: true }, + url: { enumerable: true }, + headers: { enumerable: true }, + redirect: { enumerable: true }, + clone: { enumerable: true }, + signal: { enumerable: true } +}); + +/** + * Convert a Request to Node.js http request options. + * + * @param Request A Request instance + * @return Object The options object to be passed to http.request + */ +function getNodeRequestOptions(request) { + const parsedURL = request[INTERNALS$2].parsedURL; + const headers = new Headers(request[INTERNALS$2].headers); + + // fetch step 1.3 + if (!headers.has('Accept')) { + headers.set('Accept', '*/*'); + } + + // Basic fetch + if (!parsedURL.protocol || !parsedURL.hostname) { + throw new TypeError('Only absolute URLs are supported'); + } + + if (!/^https?:$/.test(parsedURL.protocol)) { + throw new TypeError('Only HTTP(S) protocols are supported'); + } + + if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { + throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); + } + + // HTTP-network-or-cache fetch steps 2.4-2.7 + let contentLengthValue = null; + if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { + contentLengthValue = '0'; + } + if (request.body != null) { + const totalBytes = getTotalBytes(request); + if (typeof totalBytes === 'number') { + contentLengthValue = String(totalBytes); + } + } + if (contentLengthValue) { + headers.set('Content-Length', contentLengthValue); + } + + // HTTP-network-or-cache fetch step 2.11 + if (!headers.has('User-Agent')) { + headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); + } + + // HTTP-network-or-cache fetch step 2.15 + if (request.compress && !headers.has('Accept-Encoding')) { + headers.set('Accept-Encoding', 'gzip,deflate'); + } + + let agent = request.agent; + if (typeof agent === 'function') { + agent = agent(parsedURL); + } + + if (!headers.has('Connection') && !agent) { + headers.set('Connection', 'close'); + } + + // HTTP-network fetch step 4.2 + // chunked encoding is handled by Node.js + + return Object.assign({}, parsedURL, { + method: request.method, + headers: exportNodeCompatibleHeaders(headers), + agent + }); +} + +/** + * abort-error.js + * + * AbortError interface for cancelled requests + */ + +/** + * Create AbortError instance + * + * @param String message Error message for human + * @return AbortError + */ +function AbortError(message) { + Error.call(this, message); + + this.type = 'aborted'; + this.message = message; + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +AbortError.prototype = Object.create(Error.prototype); +AbortError.prototype.constructor = AbortError; +AbortError.prototype.name = 'AbortError'; + +const URL$1 = Url.URL || whatwgUrl.URL; + +// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 +const PassThrough$1 = Stream.PassThrough; + +const isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) { + const orig = new URL$1(original).hostname; + const dest = new URL$1(destination).hostname; + + return orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest); +}; + +/** + * isSameProtocol reports whether the two provided URLs use the same protocol. + * + * Both domains must already be in canonical form. + * @param {string|URL} original + * @param {string|URL} destination + */ +const isSameProtocol = function isSameProtocol(destination, original) { + const orig = new URL$1(original).protocol; + const dest = new URL$1(destination).protocol; + + return orig === dest; +}; + +/** + * Fetch function + * + * @param Mixed url Absolute url or Request instance + * @param Object opts Fetch options + * @return Promise + */ +function fetch(url, opts) { + + // allow custom promise + if (!fetch.Promise) { + throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); + } + + Body.Promise = fetch.Promise; + + // wrap http.request into fetch + return new fetch.Promise(function (resolve, reject) { + // build request object + const request = new Request(url, opts); + const options = getNodeRequestOptions(request); + + const send = (options.protocol === 'https:' ? https : http).request; + const signal = request.signal; + + let response = null; + + const abort = function abort() { + let error = new AbortError('The user aborted a request.'); + reject(error); + if (request.body && request.body instanceof Stream.Readable) { + destroyStream(request.body, error); + } + if (!response || !response.body) return; + response.body.emit('error', error); + }; + + if (signal && signal.aborted) { + abort(); + return; + } + + const abortAndFinalize = function abortAndFinalize() { + abort(); + finalize(); + }; + + // send request + const req = send(options); + let reqTimeout; + + if (signal) { + signal.addEventListener('abort', abortAndFinalize); + } + + function finalize() { + req.abort(); + if (signal) signal.removeEventListener('abort', abortAndFinalize); + clearTimeout(reqTimeout); + } + + if (request.timeout) { + req.once('socket', function (socket) { + reqTimeout = setTimeout(function () { + reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout')); + finalize(); + }, request.timeout); + }); + } + + req.on('error', function (err) { + reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err)); + + if (response && response.body) { + destroyStream(response.body, err); + } + + finalize(); + }); + + fixResponseChunkedTransferBadEnding(req, function (err) { + if (signal && signal.aborted) { + return; + } + + if (response && response.body) { + destroyStream(response.body, err); + } + }); + + /* c8 ignore next 18 */ + if (parseInt(process.version.substring(1)) < 14) { + // Before Node.js 14, pipeline() does not fully support async iterators and does not always + // properly handle when the socket close/end events are out of order. + req.on('socket', function (s) { + s.addListener('close', function (hadError) { + // if a data listener is still present we didn't end cleanly + const hasDataListener = s.listenerCount('data') > 0; + + // if end happened before close but the socket didn't emit an error, do it now + if (response && hasDataListener && !hadError && !(signal && signal.aborted)) { + const err = new Error('Premature close'); + err.code = 'ERR_STREAM_PREMATURE_CLOSE'; + response.body.emit('error', err); + } + }); + }); + } + + req.on('response', function (res) { + clearTimeout(reqTimeout); + + const headers = createHeadersLenient(res.headers); + + // HTTP fetch step 5 + if (fetch.isRedirect(res.statusCode)) { + // HTTP fetch step 5.2 + const location = headers.get('Location'); + + // HTTP fetch step 5.3 + let locationURL = null; + try { + locationURL = location === null ? null : new URL$1(location, request.url).toString(); + } catch (err) { + // error here can only be invalid URL in Location: header + // do not throw when options.redirect == manual + // let the user extract the errorneous redirect URL + if (request.redirect !== 'manual') { + reject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect')); + finalize(); + return; + } + } + + // HTTP fetch step 5.5 + switch (request.redirect) { + case 'error': + reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect')); + finalize(); + return; + case 'manual': + // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. + if (locationURL !== null) { + // handle corrupted header + try { + headers.set('Location', locationURL); + } catch (err) { + // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request + reject(err); + } + } + break; + case 'follow': + // HTTP-redirect fetch step 2 + if (locationURL === null) { + break; + } + + // HTTP-redirect fetch step 5 + if (request.counter >= request.follow) { + reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 6 (counter increment) + // Create a new Request object. + const requestOpts = { + headers: new Headers(request.headers), + follow: request.follow, + counter: request.counter + 1, + agent: request.agent, + compress: request.compress, + method: request.method, + body: request.body, + signal: request.signal, + timeout: request.timeout, + size: request.size + }; + + if (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) { + for (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) { + requestOpts.headers.delete(name); + } + } + + // HTTP-redirect fetch step 9 + if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { + reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 11 + if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') { + requestOpts.method = 'GET'; + requestOpts.body = undefined; + requestOpts.headers.delete('content-length'); + } + + // HTTP-redirect fetch step 15 + resolve(fetch(new Request(locationURL, requestOpts))); + finalize(); + return; + } + } + + // prepare response + res.once('end', function () { + if (signal) signal.removeEventListener('abort', abortAndFinalize); + }); + let body = res.pipe(new PassThrough$1()); + + const response_options = { + url: request.url, + status: res.statusCode, + statusText: res.statusMessage, + headers: headers, + size: request.size, + timeout: request.timeout, + counter: request.counter + }; + + // HTTP-network fetch step 12.1.1.3 + const codings = headers.get('Content-Encoding'); + + // HTTP-network fetch step 12.1.1.4: handle content codings + + // in following scenarios we ignore compression support + // 1. compression support is disabled + // 2. HEAD request + // 3. no Content-Encoding header + // 4. no content response (204) + // 5. content not modified response (304) + if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) { + response = new Response(body, response_options); + resolve(response); + return; + } + + // For Node v6+ + // Be less strict when decoding compressed responses, since sometimes + // servers send slightly invalid responses that are still accepted + // by common browsers. + // Always using Z_SYNC_FLUSH is what cURL does. + const zlibOptions = { + flush: zlib.Z_SYNC_FLUSH, + finishFlush: zlib.Z_SYNC_FLUSH + }; + + // for gzip + if (codings == 'gzip' || codings == 'x-gzip') { + body = body.pipe(zlib.createGunzip(zlibOptions)); + response = new Response(body, response_options); + resolve(response); + return; + } + + // for deflate + if (codings == 'deflate' || codings == 'x-deflate') { + // handle the infamous raw deflate response from old servers + // a hack for old IIS and Apache servers + const raw = res.pipe(new PassThrough$1()); + raw.once('data', function (chunk) { + // see http://stackoverflow.com/questions/37519828 + if ((chunk[0] & 0x0F) === 0x08) { + body = body.pipe(zlib.createInflate()); + } else { + body = body.pipe(zlib.createInflateRaw()); + } + response = new Response(body, response_options); + resolve(response); + }); + raw.on('end', function () { + // some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted. + if (!response) { + response = new Response(body, response_options); + resolve(response); + } + }); + return; + } + + // for br + if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { + body = body.pipe(zlib.createBrotliDecompress()); + response = new Response(body, response_options); + resolve(response); + return; + } + + // otherwise, use response as-is + response = new Response(body, response_options); + resolve(response); + }); + + writeToStream(req, request); + }); +} +function fixResponseChunkedTransferBadEnding(request, errorCallback) { + let socket; + + request.on('socket', function (s) { + socket = s; + }); + + request.on('response', function (response) { + const headers = response.headers; + + if (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) { + response.once('close', function (hadError) { + // if a data listener is still present we didn't end cleanly + const hasDataListener = socket.listenerCount('data') > 0; + + if (hasDataListener && !hadError) { + const err = new Error('Premature close'); + err.code = 'ERR_STREAM_PREMATURE_CLOSE'; + errorCallback(err); + } + }); + } + }); +} + +function destroyStream(stream, err) { + if (stream.destroy) { + stream.destroy(err); + } else { + // node < 8 + stream.emit('error', err); + stream.end(); + } +} + +/** + * Redirect code matching + * + * @param Number code Status code + * @return Boolean + */ +fetch.isRedirect = function (code) { + return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; +}; + +// expose Promise +fetch.Promise = global.Promise; + +export default fetch; +export { Headers, Request, Response, FetchError }; diff --git a/node_modules/node-fetch/lib/index.js b/node_modules/node-fetch/lib/index.js new file mode 100644 index 0000000000000000000000000000000000000000..337d6e52e5fc62c26f1f46ac115505fa8e327b5c --- /dev/null +++ b/node_modules/node-fetch/lib/index.js @@ -0,0 +1,1787 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var Stream = _interopDefault(require('stream')); +var http = _interopDefault(require('http')); +var Url = _interopDefault(require('url')); +var whatwgUrl = _interopDefault(require('whatwg-url')); +var https = _interopDefault(require('https')); +var zlib = _interopDefault(require('zlib')); + +// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js + +// fix for "Readable" isn't a named export issue +const Readable = Stream.Readable; + +const BUFFER = Symbol('buffer'); +const TYPE = Symbol('type'); + +class Blob { + constructor() { + this[TYPE] = ''; + + const blobParts = arguments[0]; + const options = arguments[1]; + + const buffers = []; + let size = 0; + + if (blobParts) { + const a = blobParts; + const length = Number(a.length); + for (let i = 0; i < length; i++) { + const element = a[i]; + let buffer; + if (element instanceof Buffer) { + buffer = element; + } else if (ArrayBuffer.isView(element)) { + buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); + } else if (element instanceof ArrayBuffer) { + buffer = Buffer.from(element); + } else if (element instanceof Blob) { + buffer = element[BUFFER]; + } else { + buffer = Buffer.from(typeof element === 'string' ? element : String(element)); + } + size += buffer.length; + buffers.push(buffer); + } + } + + this[BUFFER] = Buffer.concat(buffers); + + let type = options && options.type !== undefined && String(options.type).toLowerCase(); + if (type && !/[^\u0020-\u007E]/.test(type)) { + this[TYPE] = type; + } + } + get size() { + return this[BUFFER].length; + } + get type() { + return this[TYPE]; + } + text() { + return Promise.resolve(this[BUFFER].toString()); + } + arrayBuffer() { + const buf = this[BUFFER]; + const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + return Promise.resolve(ab); + } + stream() { + const readable = new Readable(); + readable._read = function () {}; + readable.push(this[BUFFER]); + readable.push(null); + return readable; + } + toString() { + return '[object Blob]'; + } + slice() { + const size = this.size; + + const start = arguments[0]; + const end = arguments[1]; + let relativeStart, relativeEnd; + if (start === undefined) { + relativeStart = 0; + } else if (start < 0) { + relativeStart = Math.max(size + start, 0); + } else { + relativeStart = Math.min(start, size); + } + if (end === undefined) { + relativeEnd = size; + } else if (end < 0) { + relativeEnd = Math.max(size + end, 0); + } else { + relativeEnd = Math.min(end, size); + } + const span = Math.max(relativeEnd - relativeStart, 0); + + const buffer = this[BUFFER]; + const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); + const blob = new Blob([], { type: arguments[2] }); + blob[BUFFER] = slicedBuffer; + return blob; + } +} + +Object.defineProperties(Blob.prototype, { + size: { enumerable: true }, + type: { enumerable: true }, + slice: { enumerable: true } +}); + +Object.defineProperty(Blob.prototype, Symbol.toStringTag, { + value: 'Blob', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * fetch-error.js + * + * FetchError interface for operational errors + */ + +/** + * Create FetchError instance + * + * @param String message Error message for human + * @param String type Error type for machine + * @param String systemError For Node.js system error + * @return FetchError + */ +function FetchError(message, type, systemError) { + Error.call(this, message); + + this.message = message; + this.type = type; + + // when err.type is `system`, err.code contains system error code + if (systemError) { + this.code = this.errno = systemError.code; + } + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +FetchError.prototype = Object.create(Error.prototype); +FetchError.prototype.constructor = FetchError; +FetchError.prototype.name = 'FetchError'; + +let convert; +try { + convert = require('encoding').convert; +} catch (e) {} + +const INTERNALS = Symbol('Body internals'); + +// fix an issue where "PassThrough" isn't a named export for node <10 +const PassThrough = Stream.PassThrough; + +/** + * Body mixin + * + * Ref: https://fetch.spec.whatwg.org/#body + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +function Body(body) { + var _this = this; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref$size = _ref.size; + + let size = _ref$size === undefined ? 0 : _ref$size; + var _ref$timeout = _ref.timeout; + let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; + + if (body == null) { + // body is undefined or null + body = null; + } else if (isURLSearchParams(body)) { + // body is a URLSearchParams + body = Buffer.from(body.toString()); + } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { + // body is ArrayBuffer + body = Buffer.from(body); + } else if (ArrayBuffer.isView(body)) { + // body is ArrayBufferView + body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); + } else if (body instanceof Stream) ; else { + // none of the above + // coerce to string then buffer + body = Buffer.from(String(body)); + } + this[INTERNALS] = { + body, + disturbed: false, + error: null + }; + this.size = size; + this.timeout = timeout; + + if (body instanceof Stream) { + body.on('error', function (err) { + const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err); + _this[INTERNALS].error = error; + }); + } +} + +Body.prototype = { + get body() { + return this[INTERNALS].body; + }, + + get bodyUsed() { + return this[INTERNALS].disturbed; + }, + + /** + * Decode response as ArrayBuffer + * + * @return Promise + */ + arrayBuffer() { + return consumeBody.call(this).then(function (buf) { + return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + }); + }, + + /** + * Return raw response as Blob + * + * @return Promise + */ + blob() { + let ct = this.headers && this.headers.get('content-type') || ''; + return consumeBody.call(this).then(function (buf) { + return Object.assign( + // Prevent copying + new Blob([], { + type: ct.toLowerCase() + }), { + [BUFFER]: buf + }); + }); + }, + + /** + * Decode response as json + * + * @return Promise + */ + json() { + var _this2 = this; + + return consumeBody.call(this).then(function (buffer) { + try { + return JSON.parse(buffer.toString()); + } catch (err) { + return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json')); + } + }); + }, + + /** + * Decode response as text + * + * @return Promise + */ + text() { + return consumeBody.call(this).then(function (buffer) { + return buffer.toString(); + }); + }, + + /** + * Decode response as buffer (non-spec api) + * + * @return Promise + */ + buffer() { + return consumeBody.call(this); + }, + + /** + * Decode response as text, while automatically detecting the encoding and + * trying to decode to UTF-8 (non-spec api) + * + * @return Promise + */ + textConverted() { + var _this3 = this; + + return consumeBody.call(this).then(function (buffer) { + return convertBody(buffer, _this3.headers); + }); + } +}; + +// In browsers, all properties are enumerable. +Object.defineProperties(Body.prototype, { + body: { enumerable: true }, + bodyUsed: { enumerable: true }, + arrayBuffer: { enumerable: true }, + blob: { enumerable: true }, + json: { enumerable: true }, + text: { enumerable: true } +}); + +Body.mixIn = function (proto) { + for (const name of Object.getOwnPropertyNames(Body.prototype)) { + // istanbul ignore else: future proof + if (!(name in proto)) { + const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); + Object.defineProperty(proto, name, desc); + } + } +}; + +/** + * Consume and convert an entire Body to a Buffer. + * + * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body + * + * @return Promise + */ +function consumeBody() { + var _this4 = this; + + if (this[INTERNALS].disturbed) { + return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); + } + + this[INTERNALS].disturbed = true; + + if (this[INTERNALS].error) { + return Body.Promise.reject(this[INTERNALS].error); + } + + let body = this.body; + + // body is null + if (body === null) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is blob + if (isBlob(body)) { + body = body.stream(); + } + + // body is buffer + if (Buffer.isBuffer(body)) { + return Body.Promise.resolve(body); + } + + // istanbul ignore if: should never happen + if (!(body instanceof Stream)) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is stream + // get ready to actually consume the body + let accum = []; + let accumBytes = 0; + let abort = false; + + return new Body.Promise(function (resolve, reject) { + let resTimeout; + + // allow timeout on slow response body + if (_this4.timeout) { + resTimeout = setTimeout(function () { + abort = true; + reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout')); + }, _this4.timeout); + } + + // handle stream errors + body.on('error', function (err) { + if (err.name === 'AbortError') { + // if the request was aborted, reject with this Error + abort = true; + reject(err); + } else { + // other errors, such as incorrect content-encoding + reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + + body.on('data', function (chunk) { + if (abort || chunk === null) { + return; + } + + if (_this4.size && accumBytes + chunk.length > _this4.size) { + abort = true; + reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size')); + return; + } + + accumBytes += chunk.length; + accum.push(chunk); + }); + + body.on('end', function () { + if (abort) { + return; + } + + clearTimeout(resTimeout); + + try { + resolve(Buffer.concat(accum, accumBytes)); + } catch (err) { + // handle streams that have accumulated too much data (issue #414) + reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + }); +} + +/** + * Detect buffer encoding and convert to target encoding + * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding + * + * @param Buffer buffer Incoming buffer + * @param String encoding Target encoding + * @return String + */ +function convertBody(buffer, headers) { + if (typeof convert !== 'function') { + throw new Error('The package `encoding` must be installed to use the textConverted() function'); + } + + const ct = headers.get('content-type'); + let charset = 'utf-8'; + let res, str; + + // header + if (ct) { + res = /charset=([^;]*)/i.exec(ct); + } + + // no charset in content type, peek at response body for at most 1024 bytes + str = buffer.slice(0, 1024).toString(); + + // html5 + if (!res && str) { + res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined; + + this[MAP] = Object.create(null); + + if (init instanceof Headers) { + const rawHeaders = init.raw(); + const headerNames = Object.keys(rawHeaders); + + for (const headerName of headerNames) { + for (const value of rawHeaders[headerName]) { + this.append(headerName, value); + } + } + + return; + } + + // We don't worry about converting prop to ByteString here as append() + // will handle it. + if (init == null) ; else if (typeof init === 'object') { + const method = init[Symbol.iterator]; + if (method != null) { + if (typeof method !== 'function') { + throw new TypeError('Header pairs must be iterable'); + } + + // sequence> + // Note: per spec we have to first exhaust the lists then process them + const pairs = []; + for (const pair of init) { + if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') { + throw new TypeError('Each header pair must be iterable'); + } + pairs.push(Array.from(pair)); + } + + for (const pair of pairs) { + if (pair.length !== 2) { + throw new TypeError('Each header pair must be a name/value tuple'); + } + this.append(pair[0], pair[1]); + } + } else { + // record + for (const key of Object.keys(init)) { + const value = init[key]; + this.append(key, value); + } + } + } else { + throw new TypeError('Provided initializer must be an object'); + } + } + + /** + * Return combined header value given name + * + * @param String name Header name + * @return Mixed + */ + get(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key === undefined) { + return null; + } + + return this[MAP][key].join(', '); + } + + /** + * Iterate over all headers + * + * @param Function callback Executed for each item with parameters (value, name, thisArg) + * @param Boolean thisArg `this` context for callback function + * @return Void + */ + forEach(callback) { + let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; + + let pairs = getHeaders(this); + let i = 0; + while (i < pairs.length) { + var _pairs$i = pairs[i]; + const name = _pairs$i[0], + value = _pairs$i[1]; + + callback.call(thisArg, value, name, this); + pairs = getHeaders(this); + i++; + } + } + + /** + * Overwrite header values given name + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + set(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + this[MAP][key !== undefined ? key : name] = [value]; + } + + /** + * Append a value onto existing header + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + append(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + if (key !== undefined) { + this[MAP][key].push(value); + } else { + this[MAP][name] = [value]; + } + } + + /** + * Check for header name existence + * + * @param String name Header name + * @return Boolean + */ + has(name) { + name = `${name}`; + validateName(name); + return find(this[MAP], name) !== undefined; + } + + /** + * Delete all header values given name + * + * @param String name Header name + * @return Void + */ + delete(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key !== undefined) { + delete this[MAP][key]; + } + } + + /** + * Return raw headers (non-spec api) + * + * @return Object + */ + raw() { + return this[MAP]; + } + + /** + * Get an iterator on keys. + * + * @return Iterator + */ + keys() { + return createHeadersIterator(this, 'key'); + } + + /** + * Get an iterator on values. + * + * @return Iterator + */ + values() { + return createHeadersIterator(this, 'value'); + } + + /** + * Get an iterator on entries. + * + * This is the default iterator of the Headers object. + * + * @return Iterator + */ + [Symbol.iterator]() { + return createHeadersIterator(this, 'key+value'); + } +} +Headers.prototype.entries = Headers.prototype[Symbol.iterator]; + +Object.defineProperty(Headers.prototype, Symbol.toStringTag, { + value: 'Headers', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Headers.prototype, { + get: { enumerable: true }, + forEach: { enumerable: true }, + set: { enumerable: true }, + append: { enumerable: true }, + has: { enumerable: true }, + delete: { enumerable: true }, + keys: { enumerable: true }, + values: { enumerable: true }, + entries: { enumerable: true } +}); + +function getHeaders(headers) { + let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; + + const keys = Object.keys(headers[MAP]).sort(); + return keys.map(kind === 'key' ? function (k) { + return k.toLowerCase(); + } : kind === 'value' ? function (k) { + return headers[MAP][k].join(', '); + } : function (k) { + return [k.toLowerCase(), headers[MAP][k].join(', ')]; + }); +} + +const INTERNAL = Symbol('internal'); + +function createHeadersIterator(target, kind) { + const iterator = Object.create(HeadersIteratorPrototype); + iterator[INTERNAL] = { + target, + kind, + index: 0 + }; + return iterator; +} + +const HeadersIteratorPrototype = Object.setPrototypeOf({ + next() { + // istanbul ignore if + if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { + throw new TypeError('Value of `this` is not a HeadersIterator'); + } + + var _INTERNAL = this[INTERNAL]; + const target = _INTERNAL.target, + kind = _INTERNAL.kind, + index = _INTERNAL.index; + + const values = getHeaders(target, kind); + const len = values.length; + if (index >= len) { + return { + value: undefined, + done: true + }; + } + + this[INTERNAL].index = index + 1; + + return { + value: values[index], + done: false + }; + } +}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); + +Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { + value: 'HeadersIterator', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * Export the Headers object in a form that Node.js can consume. + * + * @param Headers headers + * @return Object + */ +function exportNodeCompatibleHeaders(headers) { + const obj = Object.assign({ __proto__: null }, headers[MAP]); + + // http.request() only supports string as Host header. This hack makes + // specifying custom Host header possible. + const hostHeaderKey = find(headers[MAP], 'Host'); + if (hostHeaderKey !== undefined) { + obj[hostHeaderKey] = obj[hostHeaderKey][0]; + } + + return obj; +} + +/** + * Create a Headers object from an object of headers, ignoring those that do + * not conform to HTTP grammar productions. + * + * @param Object obj Object of headers + * @return Headers + */ +function createHeadersLenient(obj) { + const headers = new Headers(); + for (const name of Object.keys(obj)) { + if (invalidTokenRegex.test(name)) { + continue; + } + if (Array.isArray(obj[name])) { + for (const val of obj[name]) { + if (invalidHeaderCharRegex.test(val)) { + continue; + } + if (headers[MAP][name] === undefined) { + headers[MAP][name] = [val]; + } else { + headers[MAP][name].push(val); + } + } + } else if (!invalidHeaderCharRegex.test(obj[name])) { + headers[MAP][name] = [obj[name]]; + } + } + return headers; +} + +const INTERNALS$1 = Symbol('Response internals'); + +// fix an issue where "STATUS_CODES" aren't a named export for node <10 +const STATUS_CODES = http.STATUS_CODES; + +/** + * Response class + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +class Response { + constructor() { + let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + Body.call(this, body, opts); + + const status = opts.status || 200; + const headers = new Headers(opts.headers); + + if (body != null && !headers.has('Content-Type')) { + const contentType = extractContentType(body); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + this[INTERNALS$1] = { + url: opts.url, + status, + statusText: opts.statusText || STATUS_CODES[status], + headers, + counter: opts.counter + }; + } + + get url() { + return this[INTERNALS$1].url || ''; + } + + get status() { + return this[INTERNALS$1].status; + } + + /** + * Convenience property representing if the request ended normally + */ + get ok() { + return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; + } + + get redirected() { + return this[INTERNALS$1].counter > 0; + } + + get statusText() { + return this[INTERNALS$1].statusText; + } + + get headers() { + return this[INTERNALS$1].headers; + } + + /** + * Clone this response + * + * @return Response + */ + clone() { + return new Response(clone(this), { + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok, + redirected: this.redirected + }); + } +} + +Body.mixIn(Response.prototype); + +Object.defineProperties(Response.prototype, { + url: { enumerable: true }, + status: { enumerable: true }, + ok: { enumerable: true }, + redirected: { enumerable: true }, + statusText: { enumerable: true }, + headers: { enumerable: true }, + clone: { enumerable: true } +}); + +Object.defineProperty(Response.prototype, Symbol.toStringTag, { + value: 'Response', + writable: false, + enumerable: false, + configurable: true +}); + +const INTERNALS$2 = Symbol('Request internals'); +const URL = Url.URL || whatwgUrl.URL; + +// fix an issue where "format", "parse" aren't a named export for node <10 +const parse_url = Url.parse; +const format_url = Url.format; + +/** + * Wrapper around `new URL` to handle arbitrary URLs + * + * @param {string} urlStr + * @return {void} + */ +function parseURL(urlStr) { + /* + Check whether the URL is absolute or not + Scheme: https://tools.ietf.org/html/rfc3986#section-3.1 + Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3 + */ + if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) { + urlStr = new URL(urlStr).toString(); + } + + // Fallback to old implementation for arbitrary URLs + return parse_url(urlStr); +} + +const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; + +/** + * Check if a value is an instance of Request. + * + * @param Mixed input + * @return Boolean + */ +function isRequest(input) { + return typeof input === 'object' && typeof input[INTERNALS$2] === 'object'; +} + +function isAbortSignal(signal) { + const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal); + return !!(proto && proto.constructor.name === 'AbortSignal'); +} + +/** + * Request class + * + * @param Mixed input Url or Request instance + * @param Object init Custom options + * @return Void + */ +class Request { + constructor(input) { + let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + let parsedURL; + + // normalize input + if (!isRequest(input)) { + if (input && input.href) { + // in order to support Node.js' Url objects; though WHATWG's URL objects + // will fall into this branch also (since their `toString()` will return + // `href` property anyway) + parsedURL = parseURL(input.href); + } else { + // coerce input to a string before attempting to parse + parsedURL = parseURL(`${input}`); + } + input = {}; + } else { + parsedURL = parseURL(input.url); + } + + let method = init.method || input.method || 'GET'; + method = method.toUpperCase(); + + if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) { + throw new TypeError('Request with GET/HEAD method cannot have body'); + } + + let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null; + + Body.call(this, inputBody, { + timeout: init.timeout || input.timeout || 0, + size: init.size || input.size || 0 + }); + + const headers = new Headers(init.headers || input.headers || {}); + + if (inputBody != null && !headers.has('Content-Type')) { + const contentType = extractContentType(inputBody); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + let signal = isRequest(input) ? input.signal : null; + if ('signal' in init) signal = init.signal; + + if (signal != null && !isAbortSignal(signal)) { + throw new TypeError('Expected signal to be an instanceof AbortSignal'); + } + + this[INTERNALS$2] = { + method, + redirect: init.redirect || input.redirect || 'follow', + headers, + parsedURL, + signal + }; + + // node-fetch-only options + this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20; + this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true; + this.counter = init.counter || input.counter || 0; + this.agent = init.agent || input.agent; + } + + get method() { + return this[INTERNALS$2].method; + } + + get url() { + return format_url(this[INTERNALS$2].parsedURL); + } + + get headers() { + return this[INTERNALS$2].headers; + } + + get redirect() { + return this[INTERNALS$2].redirect; + } + + get signal() { + return this[INTERNALS$2].signal; + } + + /** + * Clone this request + * + * @return Request + */ + clone() { + return new Request(this); + } +} + +Body.mixIn(Request.prototype); + +Object.defineProperty(Request.prototype, Symbol.toStringTag, { + value: 'Request', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Request.prototype, { + method: { enumerable: true }, + url: { enumerable: true }, + headers: { enumerable: true }, + redirect: { enumerable: true }, + clone: { enumerable: true }, + signal: { enumerable: true } +}); + +/** + * Convert a Request to Node.js http request options. + * + * @param Request A Request instance + * @return Object The options object to be passed to http.request + */ +function getNodeRequestOptions(request) { + const parsedURL = request[INTERNALS$2].parsedURL; + const headers = new Headers(request[INTERNALS$2].headers); + + // fetch step 1.3 + if (!headers.has('Accept')) { + headers.set('Accept', '*/*'); + } + + // Basic fetch + if (!parsedURL.protocol || !parsedURL.hostname) { + throw new TypeError('Only absolute URLs are supported'); + } + + if (!/^https?:$/.test(parsedURL.protocol)) { + throw new TypeError('Only HTTP(S) protocols are supported'); + } + + if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { + throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); + } + + // HTTP-network-or-cache fetch steps 2.4-2.7 + let contentLengthValue = null; + if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { + contentLengthValue = '0'; + } + if (request.body != null) { + const totalBytes = getTotalBytes(request); + if (typeof totalBytes === 'number') { + contentLengthValue = String(totalBytes); + } + } + if (contentLengthValue) { + headers.set('Content-Length', contentLengthValue); + } + + // HTTP-network-or-cache fetch step 2.11 + if (!headers.has('User-Agent')) { + headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); + } + + // HTTP-network-or-cache fetch step 2.15 + if (request.compress && !headers.has('Accept-Encoding')) { + headers.set('Accept-Encoding', 'gzip,deflate'); + } + + let agent = request.agent; + if (typeof agent === 'function') { + agent = agent(parsedURL); + } + + if (!headers.has('Connection') && !agent) { + headers.set('Connection', 'close'); + } + + // HTTP-network fetch step 4.2 + // chunked encoding is handled by Node.js + + return Object.assign({}, parsedURL, { + method: request.method, + headers: exportNodeCompatibleHeaders(headers), + agent + }); +} + +/** + * abort-error.js + * + * AbortError interface for cancelled requests + */ + +/** + * Create AbortError instance + * + * @param String message Error message for human + * @return AbortError + */ +function AbortError(message) { + Error.call(this, message); + + this.type = 'aborted'; + this.message = message; + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +AbortError.prototype = Object.create(Error.prototype); +AbortError.prototype.constructor = AbortError; +AbortError.prototype.name = 'AbortError'; + +const URL$1 = Url.URL || whatwgUrl.URL; + +// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 +const PassThrough$1 = Stream.PassThrough; + +const isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) { + const orig = new URL$1(original).hostname; + const dest = new URL$1(destination).hostname; + + return orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest); +}; + +/** + * isSameProtocol reports whether the two provided URLs use the same protocol. + * + * Both domains must already be in canonical form. + * @param {string|URL} original + * @param {string|URL} destination + */ +const isSameProtocol = function isSameProtocol(destination, original) { + const orig = new URL$1(original).protocol; + const dest = new URL$1(destination).protocol; + + return orig === dest; +}; + +/** + * Fetch function + * + * @param Mixed url Absolute url or Request instance + * @param Object opts Fetch options + * @return Promise + */ +function fetch(url, opts) { + + // allow custom promise + if (!fetch.Promise) { + throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); + } + + Body.Promise = fetch.Promise; + + // wrap http.request into fetch + return new fetch.Promise(function (resolve, reject) { + // build request object + const request = new Request(url, opts); + const options = getNodeRequestOptions(request); + + const send = (options.protocol === 'https:' ? https : http).request; + const signal = request.signal; + + let response = null; + + const abort = function abort() { + let error = new AbortError('The user aborted a request.'); + reject(error); + if (request.body && request.body instanceof Stream.Readable) { + destroyStream(request.body, error); + } + if (!response || !response.body) return; + response.body.emit('error', error); + }; + + if (signal && signal.aborted) { + abort(); + return; + } + + const abortAndFinalize = function abortAndFinalize() { + abort(); + finalize(); + }; + + // send request + const req = send(options); + let reqTimeout; + + if (signal) { + signal.addEventListener('abort', abortAndFinalize); + } + + function finalize() { + req.abort(); + if (signal) signal.removeEventListener('abort', abortAndFinalize); + clearTimeout(reqTimeout); + } + + if (request.timeout) { + req.once('socket', function (socket) { + reqTimeout = setTimeout(function () { + reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout')); + finalize(); + }, request.timeout); + }); + } + + req.on('error', function (err) { + reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err)); + + if (response && response.body) { + destroyStream(response.body, err); + } + + finalize(); + }); + + fixResponseChunkedTransferBadEnding(req, function (err) { + if (signal && signal.aborted) { + return; + } + + if (response && response.body) { + destroyStream(response.body, err); + } + }); + + /* c8 ignore next 18 */ + if (parseInt(process.version.substring(1)) < 14) { + // Before Node.js 14, pipeline() does not fully support async iterators and does not always + // properly handle when the socket close/end events are out of order. + req.on('socket', function (s) { + s.addListener('close', function (hadError) { + // if a data listener is still present we didn't end cleanly + const hasDataListener = s.listenerCount('data') > 0; + + // if end happened before close but the socket didn't emit an error, do it now + if (response && hasDataListener && !hadError && !(signal && signal.aborted)) { + const err = new Error('Premature close'); + err.code = 'ERR_STREAM_PREMATURE_CLOSE'; + response.body.emit('error', err); + } + }); + }); + } + + req.on('response', function (res) { + clearTimeout(reqTimeout); + + const headers = createHeadersLenient(res.headers); + + // HTTP fetch step 5 + if (fetch.isRedirect(res.statusCode)) { + // HTTP fetch step 5.2 + const location = headers.get('Location'); + + // HTTP fetch step 5.3 + let locationURL = null; + try { + locationURL = location === null ? null : new URL$1(location, request.url).toString(); + } catch (err) { + // error here can only be invalid URL in Location: header + // do not throw when options.redirect == manual + // let the user extract the errorneous redirect URL + if (request.redirect !== 'manual') { + reject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect')); + finalize(); + return; + } + } + + // HTTP fetch step 5.5 + switch (request.redirect) { + case 'error': + reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect')); + finalize(); + return; + case 'manual': + // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. + if (locationURL !== null) { + // handle corrupted header + try { + headers.set('Location', locationURL); + } catch (err) { + // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request + reject(err); + } + } + break; + case 'follow': + // HTTP-redirect fetch step 2 + if (locationURL === null) { + break; + } + + // HTTP-redirect fetch step 5 + if (request.counter >= request.follow) { + reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 6 (counter increment) + // Create a new Request object. + const requestOpts = { + headers: new Headers(request.headers), + follow: request.follow, + counter: request.counter + 1, + agent: request.agent, + compress: request.compress, + method: request.method, + body: request.body, + signal: request.signal, + timeout: request.timeout, + size: request.size + }; + + if (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) { + for (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) { + requestOpts.headers.delete(name); + } + } + + // HTTP-redirect fetch step 9 + if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { + reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 11 + if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') { + requestOpts.method = 'GET'; + requestOpts.body = undefined; + requestOpts.headers.delete('content-length'); + } + + // HTTP-redirect fetch step 15 + resolve(fetch(new Request(locationURL, requestOpts))); + finalize(); + return; + } + } + + // prepare response + res.once('end', function () { + if (signal) signal.removeEventListener('abort', abortAndFinalize); + }); + let body = res.pipe(new PassThrough$1()); + + const response_options = { + url: request.url, + status: res.statusCode, + statusText: res.statusMessage, + headers: headers, + size: request.size, + timeout: request.timeout, + counter: request.counter + }; + + // HTTP-network fetch step 12.1.1.3 + const codings = headers.get('Content-Encoding'); + + // HTTP-network fetch step 12.1.1.4: handle content codings + + // in following scenarios we ignore compression support + // 1. compression support is disabled + // 2. HEAD request + // 3. no Content-Encoding header + // 4. no content response (204) + // 5. content not modified response (304) + if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) { + response = new Response(body, response_options); + resolve(response); + return; + } + + // For Node v6+ + // Be less strict when decoding compressed responses, since sometimes + // servers send slightly invalid responses that are still accepted + // by common browsers. + // Always using Z_SYNC_FLUSH is what cURL does. + const zlibOptions = { + flush: zlib.Z_SYNC_FLUSH, + finishFlush: zlib.Z_SYNC_FLUSH + }; + + // for gzip + if (codings == 'gzip' || codings == 'x-gzip') { + body = body.pipe(zlib.createGunzip(zlibOptions)); + response = new Response(body, response_options); + resolve(response); + return; + } + + // for deflate + if (codings == 'deflate' || codings == 'x-deflate') { + // handle the infamous raw deflate response from old servers + // a hack for old IIS and Apache servers + const raw = res.pipe(new PassThrough$1()); + raw.once('data', function (chunk) { + // see http://stackoverflow.com/questions/37519828 + if ((chunk[0] & 0x0F) === 0x08) { + body = body.pipe(zlib.createInflate()); + } else { + body = body.pipe(zlib.createInflateRaw()); + } + response = new Response(body, response_options); + resolve(response); + }); + raw.on('end', function () { + // some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted. + if (!response) { + response = new Response(body, response_options); + resolve(response); + } + }); + return; + } + + // for br + if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { + body = body.pipe(zlib.createBrotliDecompress()); + response = new Response(body, response_options); + resolve(response); + return; + } + + // otherwise, use response as-is + response = new Response(body, response_options); + resolve(response); + }); + + writeToStream(req, request); + }); +} +function fixResponseChunkedTransferBadEnding(request, errorCallback) { + let socket; + + request.on('socket', function (s) { + socket = s; + }); + + request.on('response', function (response) { + const headers = response.headers; + + if (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) { + response.once('close', function (hadError) { + // if a data listener is still present we didn't end cleanly + const hasDataListener = socket.listenerCount('data') > 0; + + if (hasDataListener && !hadError) { + const err = new Error('Premature close'); + err.code = 'ERR_STREAM_PREMATURE_CLOSE'; + errorCallback(err); + } + }); + } + }); +} + +function destroyStream(stream, err) { + if (stream.destroy) { + stream.destroy(err); + } else { + // node < 8 + stream.emit('error', err); + stream.end(); + } +} + +/** + * Redirect code matching + * + * @param Number code Status code + * @return Boolean + */ +fetch.isRedirect = function (code) { + return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; +}; + +// expose Promise +fetch.Promise = global.Promise; + +module.exports = exports = fetch; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = exports; +exports.Headers = Headers; +exports.Request = Request; +exports.Response = Response; +exports.FetchError = FetchError; diff --git a/node_modules/node-fetch/lib/index.mjs b/node_modules/node-fetch/lib/index.mjs new file mode 100644 index 0000000000000000000000000000000000000000..ace669fd0fee2f3a0e6ca0d34e46c60377da7c78 --- /dev/null +++ b/node_modules/node-fetch/lib/index.mjs @@ -0,0 +1,1776 @@ +import Stream from 'stream'; +import http from 'http'; +import Url from 'url'; +import whatwgUrl from 'whatwg-url'; +import https from 'https'; +import zlib from 'zlib'; + +// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js + +// fix for "Readable" isn't a named export issue +const Readable = Stream.Readable; + +const BUFFER = Symbol('buffer'); +const TYPE = Symbol('type'); + +class Blob { + constructor() { + this[TYPE] = ''; + + const blobParts = arguments[0]; + const options = arguments[1]; + + const buffers = []; + let size = 0; + + if (blobParts) { + const a = blobParts; + const length = Number(a.length); + for (let i = 0; i < length; i++) { + const element = a[i]; + let buffer; + if (element instanceof Buffer) { + buffer = element; + } else if (ArrayBuffer.isView(element)) { + buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); + } else if (element instanceof ArrayBuffer) { + buffer = Buffer.from(element); + } else if (element instanceof Blob) { + buffer = element[BUFFER]; + } else { + buffer = Buffer.from(typeof element === 'string' ? element : String(element)); + } + size += buffer.length; + buffers.push(buffer); + } + } + + this[BUFFER] = Buffer.concat(buffers); + + let type = options && options.type !== undefined && String(options.type).toLowerCase(); + if (type && !/[^\u0020-\u007E]/.test(type)) { + this[TYPE] = type; + } + } + get size() { + return this[BUFFER].length; + } + get type() { + return this[TYPE]; + } + text() { + return Promise.resolve(this[BUFFER].toString()); + } + arrayBuffer() { + const buf = this[BUFFER]; + const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + return Promise.resolve(ab); + } + stream() { + const readable = new Readable(); + readable._read = function () {}; + readable.push(this[BUFFER]); + readable.push(null); + return readable; + } + toString() { + return '[object Blob]'; + } + slice() { + const size = this.size; + + const start = arguments[0]; + const end = arguments[1]; + let relativeStart, relativeEnd; + if (start === undefined) { + relativeStart = 0; + } else if (start < 0) { + relativeStart = Math.max(size + start, 0); + } else { + relativeStart = Math.min(start, size); + } + if (end === undefined) { + relativeEnd = size; + } else if (end < 0) { + relativeEnd = Math.max(size + end, 0); + } else { + relativeEnd = Math.min(end, size); + } + const span = Math.max(relativeEnd - relativeStart, 0); + + const buffer = this[BUFFER]; + const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); + const blob = new Blob([], { type: arguments[2] }); + blob[BUFFER] = slicedBuffer; + return blob; + } +} + +Object.defineProperties(Blob.prototype, { + size: { enumerable: true }, + type: { enumerable: true }, + slice: { enumerable: true } +}); + +Object.defineProperty(Blob.prototype, Symbol.toStringTag, { + value: 'Blob', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * fetch-error.js + * + * FetchError interface for operational errors + */ + +/** + * Create FetchError instance + * + * @param String message Error message for human + * @param String type Error type for machine + * @param String systemError For Node.js system error + * @return FetchError + */ +function FetchError(message, type, systemError) { + Error.call(this, message); + + this.message = message; + this.type = type; + + // when err.type is `system`, err.code contains system error code + if (systemError) { + this.code = this.errno = systemError.code; + } + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +FetchError.prototype = Object.create(Error.prototype); +FetchError.prototype.constructor = FetchError; +FetchError.prototype.name = 'FetchError'; + +let convert; +try { + convert = require('encoding').convert; +} catch (e) {} + +const INTERNALS = Symbol('Body internals'); + +// fix an issue where "PassThrough" isn't a named export for node <10 +const PassThrough = Stream.PassThrough; + +/** + * Body mixin + * + * Ref: https://fetch.spec.whatwg.org/#body + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +function Body(body) { + var _this = this; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref$size = _ref.size; + + let size = _ref$size === undefined ? 0 : _ref$size; + var _ref$timeout = _ref.timeout; + let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; + + if (body == null) { + // body is undefined or null + body = null; + } else if (isURLSearchParams(body)) { + // body is a URLSearchParams + body = Buffer.from(body.toString()); + } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { + // body is ArrayBuffer + body = Buffer.from(body); + } else if (ArrayBuffer.isView(body)) { + // body is ArrayBufferView + body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); + } else if (body instanceof Stream) ; else { + // none of the above + // coerce to string then buffer + body = Buffer.from(String(body)); + } + this[INTERNALS] = { + body, + disturbed: false, + error: null + }; + this.size = size; + this.timeout = timeout; + + if (body instanceof Stream) { + body.on('error', function (err) { + const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err); + _this[INTERNALS].error = error; + }); + } +} + +Body.prototype = { + get body() { + return this[INTERNALS].body; + }, + + get bodyUsed() { + return this[INTERNALS].disturbed; + }, + + /** + * Decode response as ArrayBuffer + * + * @return Promise + */ + arrayBuffer() { + return consumeBody.call(this).then(function (buf) { + return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + }); + }, + + /** + * Return raw response as Blob + * + * @return Promise + */ + blob() { + let ct = this.headers && this.headers.get('content-type') || ''; + return consumeBody.call(this).then(function (buf) { + return Object.assign( + // Prevent copying + new Blob([], { + type: ct.toLowerCase() + }), { + [BUFFER]: buf + }); + }); + }, + + /** + * Decode response as json + * + * @return Promise + */ + json() { + var _this2 = this; + + return consumeBody.call(this).then(function (buffer) { + try { + return JSON.parse(buffer.toString()); + } catch (err) { + return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json')); + } + }); + }, + + /** + * Decode response as text + * + * @return Promise + */ + text() { + return consumeBody.call(this).then(function (buffer) { + return buffer.toString(); + }); + }, + + /** + * Decode response as buffer (non-spec api) + * + * @return Promise + */ + buffer() { + return consumeBody.call(this); + }, + + /** + * Decode response as text, while automatically detecting the encoding and + * trying to decode to UTF-8 (non-spec api) + * + * @return Promise + */ + textConverted() { + var _this3 = this; + + return consumeBody.call(this).then(function (buffer) { + return convertBody(buffer, _this3.headers); + }); + } +}; + +// In browsers, all properties are enumerable. +Object.defineProperties(Body.prototype, { + body: { enumerable: true }, + bodyUsed: { enumerable: true }, + arrayBuffer: { enumerable: true }, + blob: { enumerable: true }, + json: { enumerable: true }, + text: { enumerable: true } +}); + +Body.mixIn = function (proto) { + for (const name of Object.getOwnPropertyNames(Body.prototype)) { + // istanbul ignore else: future proof + if (!(name in proto)) { + const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); + Object.defineProperty(proto, name, desc); + } + } +}; + +/** + * Consume and convert an entire Body to a Buffer. + * + * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body + * + * @return Promise + */ +function consumeBody() { + var _this4 = this; + + if (this[INTERNALS].disturbed) { + return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); + } + + this[INTERNALS].disturbed = true; + + if (this[INTERNALS].error) { + return Body.Promise.reject(this[INTERNALS].error); + } + + let body = this.body; + + // body is null + if (body === null) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is blob + if (isBlob(body)) { + body = body.stream(); + } + + // body is buffer + if (Buffer.isBuffer(body)) { + return Body.Promise.resolve(body); + } + + // istanbul ignore if: should never happen + if (!(body instanceof Stream)) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is stream + // get ready to actually consume the body + let accum = []; + let accumBytes = 0; + let abort = false; + + return new Body.Promise(function (resolve, reject) { + let resTimeout; + + // allow timeout on slow response body + if (_this4.timeout) { + resTimeout = setTimeout(function () { + abort = true; + reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout')); + }, _this4.timeout); + } + + // handle stream errors + body.on('error', function (err) { + if (err.name === 'AbortError') { + // if the request was aborted, reject with this Error + abort = true; + reject(err); + } else { + // other errors, such as incorrect content-encoding + reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + + body.on('data', function (chunk) { + if (abort || chunk === null) { + return; + } + + if (_this4.size && accumBytes + chunk.length > _this4.size) { + abort = true; + reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size')); + return; + } + + accumBytes += chunk.length; + accum.push(chunk); + }); + + body.on('end', function () { + if (abort) { + return; + } + + clearTimeout(resTimeout); + + try { + resolve(Buffer.concat(accum, accumBytes)); + } catch (err) { + // handle streams that have accumulated too much data (issue #414) + reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + }); +} + +/** + * Detect buffer encoding and convert to target encoding + * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding + * + * @param Buffer buffer Incoming buffer + * @param String encoding Target encoding + * @return String + */ +function convertBody(buffer, headers) { + if (typeof convert !== 'function') { + throw new Error('The package `encoding` must be installed to use the textConverted() function'); + } + + const ct = headers.get('content-type'); + let charset = 'utf-8'; + let res, str; + + // header + if (ct) { + res = /charset=([^;]*)/i.exec(ct); + } + + // no charset in content type, peek at response body for at most 1024 bytes + str = buffer.slice(0, 1024).toString(); + + // html5 + if (!res && str) { + res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined; + + this[MAP] = Object.create(null); + + if (init instanceof Headers) { + const rawHeaders = init.raw(); + const headerNames = Object.keys(rawHeaders); + + for (const headerName of headerNames) { + for (const value of rawHeaders[headerName]) { + this.append(headerName, value); + } + } + + return; + } + + // We don't worry about converting prop to ByteString here as append() + // will handle it. + if (init == null) ; else if (typeof init === 'object') { + const method = init[Symbol.iterator]; + if (method != null) { + if (typeof method !== 'function') { + throw new TypeError('Header pairs must be iterable'); + } + + // sequence> + // Note: per spec we have to first exhaust the lists then process them + const pairs = []; + for (const pair of init) { + if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') { + throw new TypeError('Each header pair must be iterable'); + } + pairs.push(Array.from(pair)); + } + + for (const pair of pairs) { + if (pair.length !== 2) { + throw new TypeError('Each header pair must be a name/value tuple'); + } + this.append(pair[0], pair[1]); + } + } else { + // record + for (const key of Object.keys(init)) { + const value = init[key]; + this.append(key, value); + } + } + } else { + throw new TypeError('Provided initializer must be an object'); + } + } + + /** + * Return combined header value given name + * + * @param String name Header name + * @return Mixed + */ + get(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key === undefined) { + return null; + } + + return this[MAP][key].join(', '); + } + + /** + * Iterate over all headers + * + * @param Function callback Executed for each item with parameters (value, name, thisArg) + * @param Boolean thisArg `this` context for callback function + * @return Void + */ + forEach(callback) { + let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; + + let pairs = getHeaders(this); + let i = 0; + while (i < pairs.length) { + var _pairs$i = pairs[i]; + const name = _pairs$i[0], + value = _pairs$i[1]; + + callback.call(thisArg, value, name, this); + pairs = getHeaders(this); + i++; + } + } + + /** + * Overwrite header values given name + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + set(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + this[MAP][key !== undefined ? key : name] = [value]; + } + + /** + * Append a value onto existing header + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + append(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + if (key !== undefined) { + this[MAP][key].push(value); + } else { + this[MAP][name] = [value]; + } + } + + /** + * Check for header name existence + * + * @param String name Header name + * @return Boolean + */ + has(name) { + name = `${name}`; + validateName(name); + return find(this[MAP], name) !== undefined; + } + + /** + * Delete all header values given name + * + * @param String name Header name + * @return Void + */ + delete(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key !== undefined) { + delete this[MAP][key]; + } + } + + /** + * Return raw headers (non-spec api) + * + * @return Object + */ + raw() { + return this[MAP]; + } + + /** + * Get an iterator on keys. + * + * @return Iterator + */ + keys() { + return createHeadersIterator(this, 'key'); + } + + /** + * Get an iterator on values. + * + * @return Iterator + */ + values() { + return createHeadersIterator(this, 'value'); + } + + /** + * Get an iterator on entries. + * + * This is the default iterator of the Headers object. + * + * @return Iterator + */ + [Symbol.iterator]() { + return createHeadersIterator(this, 'key+value'); + } +} +Headers.prototype.entries = Headers.prototype[Symbol.iterator]; + +Object.defineProperty(Headers.prototype, Symbol.toStringTag, { + value: 'Headers', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Headers.prototype, { + get: { enumerable: true }, + forEach: { enumerable: true }, + set: { enumerable: true }, + append: { enumerable: true }, + has: { enumerable: true }, + delete: { enumerable: true }, + keys: { enumerable: true }, + values: { enumerable: true }, + entries: { enumerable: true } +}); + +function getHeaders(headers) { + let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; + + const keys = Object.keys(headers[MAP]).sort(); + return keys.map(kind === 'key' ? function (k) { + return k.toLowerCase(); + } : kind === 'value' ? function (k) { + return headers[MAP][k].join(', '); + } : function (k) { + return [k.toLowerCase(), headers[MAP][k].join(', ')]; + }); +} + +const INTERNAL = Symbol('internal'); + +function createHeadersIterator(target, kind) { + const iterator = Object.create(HeadersIteratorPrototype); + iterator[INTERNAL] = { + target, + kind, + index: 0 + }; + return iterator; +} + +const HeadersIteratorPrototype = Object.setPrototypeOf({ + next() { + // istanbul ignore if + if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { + throw new TypeError('Value of `this` is not a HeadersIterator'); + } + + var _INTERNAL = this[INTERNAL]; + const target = _INTERNAL.target, + kind = _INTERNAL.kind, + index = _INTERNAL.index; + + const values = getHeaders(target, kind); + const len = values.length; + if (index >= len) { + return { + value: undefined, + done: true + }; + } + + this[INTERNAL].index = index + 1; + + return { + value: values[index], + done: false + }; + } +}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); + +Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { + value: 'HeadersIterator', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * Export the Headers object in a form that Node.js can consume. + * + * @param Headers headers + * @return Object + */ +function exportNodeCompatibleHeaders(headers) { + const obj = Object.assign({ __proto__: null }, headers[MAP]); + + // http.request() only supports string as Host header. This hack makes + // specifying custom Host header possible. + const hostHeaderKey = find(headers[MAP], 'Host'); + if (hostHeaderKey !== undefined) { + obj[hostHeaderKey] = obj[hostHeaderKey][0]; + } + + return obj; +} + +/** + * Create a Headers object from an object of headers, ignoring those that do + * not conform to HTTP grammar productions. + * + * @param Object obj Object of headers + * @return Headers + */ +function createHeadersLenient(obj) { + const headers = new Headers(); + for (const name of Object.keys(obj)) { + if (invalidTokenRegex.test(name)) { + continue; + } + if (Array.isArray(obj[name])) { + for (const val of obj[name]) { + if (invalidHeaderCharRegex.test(val)) { + continue; + } + if (headers[MAP][name] === undefined) { + headers[MAP][name] = [val]; + } else { + headers[MAP][name].push(val); + } + } + } else if (!invalidHeaderCharRegex.test(obj[name])) { + headers[MAP][name] = [obj[name]]; + } + } + return headers; +} + +const INTERNALS$1 = Symbol('Response internals'); + +// fix an issue where "STATUS_CODES" aren't a named export for node <10 +const STATUS_CODES = http.STATUS_CODES; + +/** + * Response class + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +class Response { + constructor() { + let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + Body.call(this, body, opts); + + const status = opts.status || 200; + const headers = new Headers(opts.headers); + + if (body != null && !headers.has('Content-Type')) { + const contentType = extractContentType(body); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + this[INTERNALS$1] = { + url: opts.url, + status, + statusText: opts.statusText || STATUS_CODES[status], + headers, + counter: opts.counter + }; + } + + get url() { + return this[INTERNALS$1].url || ''; + } + + get status() { + return this[INTERNALS$1].status; + } + + /** + * Convenience property representing if the request ended normally + */ + get ok() { + return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; + } + + get redirected() { + return this[INTERNALS$1].counter > 0; + } + + get statusText() { + return this[INTERNALS$1].statusText; + } + + get headers() { + return this[INTERNALS$1].headers; + } + + /** + * Clone this response + * + * @return Response + */ + clone() { + return new Response(clone(this), { + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok, + redirected: this.redirected + }); + } +} + +Body.mixIn(Response.prototype); + +Object.defineProperties(Response.prototype, { + url: { enumerable: true }, + status: { enumerable: true }, + ok: { enumerable: true }, + redirected: { enumerable: true }, + statusText: { enumerable: true }, + headers: { enumerable: true }, + clone: { enumerable: true } +}); + +Object.defineProperty(Response.prototype, Symbol.toStringTag, { + value: 'Response', + writable: false, + enumerable: false, + configurable: true +}); + +const INTERNALS$2 = Symbol('Request internals'); +const URL = Url.URL || whatwgUrl.URL; + +// fix an issue where "format", "parse" aren't a named export for node <10 +const parse_url = Url.parse; +const format_url = Url.format; + +/** + * Wrapper around `new URL` to handle arbitrary URLs + * + * @param {string} urlStr + * @return {void} + */ +function parseURL(urlStr) { + /* + Check whether the URL is absolute or not + Scheme: https://tools.ietf.org/html/rfc3986#section-3.1 + Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3 + */ + if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) { + urlStr = new URL(urlStr).toString(); + } + + // Fallback to old implementation for arbitrary URLs + return parse_url(urlStr); +} + +const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; + +/** + * Check if a value is an instance of Request. + * + * @param Mixed input + * @return Boolean + */ +function isRequest(input) { + return typeof input === 'object' && typeof input[INTERNALS$2] === 'object'; +} + +function isAbortSignal(signal) { + const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal); + return !!(proto && proto.constructor.name === 'AbortSignal'); +} + +/** + * Request class + * + * @param Mixed input Url or Request instance + * @param Object init Custom options + * @return Void + */ +class Request { + constructor(input) { + let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + let parsedURL; + + // normalize input + if (!isRequest(input)) { + if (input && input.href) { + // in order to support Node.js' Url objects; though WHATWG's URL objects + // will fall into this branch also (since their `toString()` will return + // `href` property anyway) + parsedURL = parseURL(input.href); + } else { + // coerce input to a string before attempting to parse + parsedURL = parseURL(`${input}`); + } + input = {}; + } else { + parsedURL = parseURL(input.url); + } + + let method = init.method || input.method || 'GET'; + method = method.toUpperCase(); + + if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) { + throw new TypeError('Request with GET/HEAD method cannot have body'); + } + + let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null; + + Body.call(this, inputBody, { + timeout: init.timeout || input.timeout || 0, + size: init.size || input.size || 0 + }); + + const headers = new Headers(init.headers || input.headers || {}); + + if (inputBody != null && !headers.has('Content-Type')) { + const contentType = extractContentType(inputBody); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + let signal = isRequest(input) ? input.signal : null; + if ('signal' in init) signal = init.signal; + + if (signal != null && !isAbortSignal(signal)) { + throw new TypeError('Expected signal to be an instanceof AbortSignal'); + } + + this[INTERNALS$2] = { + method, + redirect: init.redirect || input.redirect || 'follow', + headers, + parsedURL, + signal + }; + + // node-fetch-only options + this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20; + this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true; + this.counter = init.counter || input.counter || 0; + this.agent = init.agent || input.agent; + } + + get method() { + return this[INTERNALS$2].method; + } + + get url() { + return format_url(this[INTERNALS$2].parsedURL); + } + + get headers() { + return this[INTERNALS$2].headers; + } + + get redirect() { + return this[INTERNALS$2].redirect; + } + + get signal() { + return this[INTERNALS$2].signal; + } + + /** + * Clone this request + * + * @return Request + */ + clone() { + return new Request(this); + } +} + +Body.mixIn(Request.prototype); + +Object.defineProperty(Request.prototype, Symbol.toStringTag, { + value: 'Request', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Request.prototype, { + method: { enumerable: true }, + url: { enumerable: true }, + headers: { enumerable: true }, + redirect: { enumerable: true }, + clone: { enumerable: true }, + signal: { enumerable: true } +}); + +/** + * Convert a Request to Node.js http request options. + * + * @param Request A Request instance + * @return Object The options object to be passed to http.request + */ +function getNodeRequestOptions(request) { + const parsedURL = request[INTERNALS$2].parsedURL; + const headers = new Headers(request[INTERNALS$2].headers); + + // fetch step 1.3 + if (!headers.has('Accept')) { + headers.set('Accept', '*/*'); + } + + // Basic fetch + if (!parsedURL.protocol || !parsedURL.hostname) { + throw new TypeError('Only absolute URLs are supported'); + } + + if (!/^https?:$/.test(parsedURL.protocol)) { + throw new TypeError('Only HTTP(S) protocols are supported'); + } + + if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { + throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); + } + + // HTTP-network-or-cache fetch steps 2.4-2.7 + let contentLengthValue = null; + if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { + contentLengthValue = '0'; + } + if (request.body != null) { + const totalBytes = getTotalBytes(request); + if (typeof totalBytes === 'number') { + contentLengthValue = String(totalBytes); + } + } + if (contentLengthValue) { + headers.set('Content-Length', contentLengthValue); + } + + // HTTP-network-or-cache fetch step 2.11 + if (!headers.has('User-Agent')) { + headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); + } + + // HTTP-network-or-cache fetch step 2.15 + if (request.compress && !headers.has('Accept-Encoding')) { + headers.set('Accept-Encoding', 'gzip,deflate'); + } + + let agent = request.agent; + if (typeof agent === 'function') { + agent = agent(parsedURL); + } + + if (!headers.has('Connection') && !agent) { + headers.set('Connection', 'close'); + } + + // HTTP-network fetch step 4.2 + // chunked encoding is handled by Node.js + + return Object.assign({}, parsedURL, { + method: request.method, + headers: exportNodeCompatibleHeaders(headers), + agent + }); +} + +/** + * abort-error.js + * + * AbortError interface for cancelled requests + */ + +/** + * Create AbortError instance + * + * @param String message Error message for human + * @return AbortError + */ +function AbortError(message) { + Error.call(this, message); + + this.type = 'aborted'; + this.message = message; + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +AbortError.prototype = Object.create(Error.prototype); +AbortError.prototype.constructor = AbortError; +AbortError.prototype.name = 'AbortError'; + +const URL$1 = Url.URL || whatwgUrl.URL; + +// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 +const PassThrough$1 = Stream.PassThrough; + +const isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) { + const orig = new URL$1(original).hostname; + const dest = new URL$1(destination).hostname; + + return orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest); +}; + +/** + * isSameProtocol reports whether the two provided URLs use the same protocol. + * + * Both domains must already be in canonical form. + * @param {string|URL} original + * @param {string|URL} destination + */ +const isSameProtocol = function isSameProtocol(destination, original) { + const orig = new URL$1(original).protocol; + const dest = new URL$1(destination).protocol; + + return orig === dest; +}; + +/** + * Fetch function + * + * @param Mixed url Absolute url or Request instance + * @param Object opts Fetch options + * @return Promise + */ +function fetch(url, opts) { + + // allow custom promise + if (!fetch.Promise) { + throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); + } + + Body.Promise = fetch.Promise; + + // wrap http.request into fetch + return new fetch.Promise(function (resolve, reject) { + // build request object + const request = new Request(url, opts); + const options = getNodeRequestOptions(request); + + const send = (options.protocol === 'https:' ? https : http).request; + const signal = request.signal; + + let response = null; + + const abort = function abort() { + let error = new AbortError('The user aborted a request.'); + reject(error); + if (request.body && request.body instanceof Stream.Readable) { + destroyStream(request.body, error); + } + if (!response || !response.body) return; + response.body.emit('error', error); + }; + + if (signal && signal.aborted) { + abort(); + return; + } + + const abortAndFinalize = function abortAndFinalize() { + abort(); + finalize(); + }; + + // send request + const req = send(options); + let reqTimeout; + + if (signal) { + signal.addEventListener('abort', abortAndFinalize); + } + + function finalize() { + req.abort(); + if (signal) signal.removeEventListener('abort', abortAndFinalize); + clearTimeout(reqTimeout); + } + + if (request.timeout) { + req.once('socket', function (socket) { + reqTimeout = setTimeout(function () { + reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout')); + finalize(); + }, request.timeout); + }); + } + + req.on('error', function (err) { + reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err)); + + if (response && response.body) { + destroyStream(response.body, err); + } + + finalize(); + }); + + fixResponseChunkedTransferBadEnding(req, function (err) { + if (signal && signal.aborted) { + return; + } + + if (response && response.body) { + destroyStream(response.body, err); + } + }); + + /* c8 ignore next 18 */ + if (parseInt(process.version.substring(1)) < 14) { + // Before Node.js 14, pipeline() does not fully support async iterators and does not always + // properly handle when the socket close/end events are out of order. + req.on('socket', function (s) { + s.addListener('close', function (hadError) { + // if a data listener is still present we didn't end cleanly + const hasDataListener = s.listenerCount('data') > 0; + + // if end happened before close but the socket didn't emit an error, do it now + if (response && hasDataListener && !hadError && !(signal && signal.aborted)) { + const err = new Error('Premature close'); + err.code = 'ERR_STREAM_PREMATURE_CLOSE'; + response.body.emit('error', err); + } + }); + }); + } + + req.on('response', function (res) { + clearTimeout(reqTimeout); + + const headers = createHeadersLenient(res.headers); + + // HTTP fetch step 5 + if (fetch.isRedirect(res.statusCode)) { + // HTTP fetch step 5.2 + const location = headers.get('Location'); + + // HTTP fetch step 5.3 + let locationURL = null; + try { + locationURL = location === null ? null : new URL$1(location, request.url).toString(); + } catch (err) { + // error here can only be invalid URL in Location: header + // do not throw when options.redirect == manual + // let the user extract the errorneous redirect URL + if (request.redirect !== 'manual') { + reject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect')); + finalize(); + return; + } + } + + // HTTP fetch step 5.5 + switch (request.redirect) { + case 'error': + reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect')); + finalize(); + return; + case 'manual': + // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. + if (locationURL !== null) { + // handle corrupted header + try { + headers.set('Location', locationURL); + } catch (err) { + // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request + reject(err); + } + } + break; + case 'follow': + // HTTP-redirect fetch step 2 + if (locationURL === null) { + break; + } + + // HTTP-redirect fetch step 5 + if (request.counter >= request.follow) { + reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 6 (counter increment) + // Create a new Request object. + const requestOpts = { + headers: new Headers(request.headers), + follow: request.follow, + counter: request.counter + 1, + agent: request.agent, + compress: request.compress, + method: request.method, + body: request.body, + signal: request.signal, + timeout: request.timeout, + size: request.size + }; + + if (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) { + for (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) { + requestOpts.headers.delete(name); + } + } + + // HTTP-redirect fetch step 9 + if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { + reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 11 + if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') { + requestOpts.method = 'GET'; + requestOpts.body = undefined; + requestOpts.headers.delete('content-length'); + } + + // HTTP-redirect fetch step 15 + resolve(fetch(new Request(locationURL, requestOpts))); + finalize(); + return; + } + } + + // prepare response + res.once('end', function () { + if (signal) signal.removeEventListener('abort', abortAndFinalize); + }); + let body = res.pipe(new PassThrough$1()); + + const response_options = { + url: request.url, + status: res.statusCode, + statusText: res.statusMessage, + headers: headers, + size: request.size, + timeout: request.timeout, + counter: request.counter + }; + + // HTTP-network fetch step 12.1.1.3 + const codings = headers.get('Content-Encoding'); + + // HTTP-network fetch step 12.1.1.4: handle content codings + + // in following scenarios we ignore compression support + // 1. compression support is disabled + // 2. HEAD request + // 3. no Content-Encoding header + // 4. no content response (204) + // 5. content not modified response (304) + if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) { + response = new Response(body, response_options); + resolve(response); + return; + } + + // For Node v6+ + // Be less strict when decoding compressed responses, since sometimes + // servers send slightly invalid responses that are still accepted + // by common browsers. + // Always using Z_SYNC_FLUSH is what cURL does. + const zlibOptions = { + flush: zlib.Z_SYNC_FLUSH, + finishFlush: zlib.Z_SYNC_FLUSH + }; + + // for gzip + if (codings == 'gzip' || codings == 'x-gzip') { + body = body.pipe(zlib.createGunzip(zlibOptions)); + response = new Response(body, response_options); + resolve(response); + return; + } + + // for deflate + if (codings == 'deflate' || codings == 'x-deflate') { + // handle the infamous raw deflate response from old servers + // a hack for old IIS and Apache servers + const raw = res.pipe(new PassThrough$1()); + raw.once('data', function (chunk) { + // see http://stackoverflow.com/questions/37519828 + if ((chunk[0] & 0x0F) === 0x08) { + body = body.pipe(zlib.createInflate()); + } else { + body = body.pipe(zlib.createInflateRaw()); + } + response = new Response(body, response_options); + resolve(response); + }); + raw.on('end', function () { + // some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted. + if (!response) { + response = new Response(body, response_options); + resolve(response); + } + }); + return; + } + + // for br + if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { + body = body.pipe(zlib.createBrotliDecompress()); + response = new Response(body, response_options); + resolve(response); + return; + } + + // otherwise, use response as-is + response = new Response(body, response_options); + resolve(response); + }); + + writeToStream(req, request); + }); +} +function fixResponseChunkedTransferBadEnding(request, errorCallback) { + let socket; + + request.on('socket', function (s) { + socket = s; + }); + + request.on('response', function (response) { + const headers = response.headers; + + if (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) { + response.once('close', function (hadError) { + // if a data listener is still present we didn't end cleanly + const hasDataListener = socket.listenerCount('data') > 0; + + if (hasDataListener && !hadError) { + const err = new Error('Premature close'); + err.code = 'ERR_STREAM_PREMATURE_CLOSE'; + errorCallback(err); + } + }); + } + }); +} + +function destroyStream(stream, err) { + if (stream.destroy) { + stream.destroy(err); + } else { + // node < 8 + stream.emit('error', err); + stream.end(); + } +} + +/** + * Redirect code matching + * + * @param Number code Status code + * @return Boolean + */ +fetch.isRedirect = function (code) { + return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; +}; + +// expose Promise +fetch.Promise = global.Promise; + +export default fetch; +export { Headers, Request, Response, FetchError }; diff --git a/node_modules/node-fetch/package.json b/node_modules/node-fetch/package.json new file mode 100644 index 0000000000000000000000000000000000000000..fb18d9959632da9db1c8f71c960e1ecb5332146a --- /dev/null +++ b/node_modules/node-fetch/package.json @@ -0,0 +1,116 @@ +{ + "_from": "node-fetch@^2.6.1", + "_id": "node-fetch@2.6.11", + "_inBundle": false, + "_integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "_location": "/node-fetch", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "node-fetch@^2.6.1", + "name": "node-fetch", + "escapedName": "node-fetch", + "rawSpec": "^2.6.1", + "saveSpec": null, + "fetchSpec": "^2.6.1" + }, + "_requiredBy": [ + "/dropbox" + ], + "_resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", + "_shasum": "cde7fc71deef3131ef80a738919f999e6edfff25", + "_spec": "node-fetch@^2.6.1", + "_where": "C:\\Users\\lenovo\\TSA\\node_modules\\dropbox", + "author": { + "name": "David Frank" + }, + "browser": "./browser.js", + "bugs": { + "url": "https://github.com/bitinn/node-fetch/issues" + }, + "bundleDependencies": false, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "deprecated": false, + "description": "A light-weight module that brings window.fetch to node.js", + "devDependencies": { + "@ungap/url-search-params": "^0.1.2", + "abort-controller": "^1.1.0", + "abortcontroller-polyfill": "^1.3.0", + "babel-core": "^6.26.3", + "babel-plugin-istanbul": "^4.1.6", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-polyfill": "^6.26.0", + "babel-preset-env": "1.4.0", + "babel-register": "^6.16.3", + "chai": "^3.5.0", + "chai-as-promised": "^7.1.1", + "chai-iterator": "^1.1.1", + "chai-string": "~1.3.0", + "codecov": "3.3.0", + "cross-env": "^5.2.0", + "form-data": "^2.3.3", + "is-builtin-module": "^1.0.0", + "mocha": "^5.0.0", + "nyc": "11.9.0", + "parted": "^0.1.1", + "promise": "^8.0.3", + "resumer": "0.0.0", + "rollup": "^0.63.4", + "rollup-plugin-babel": "^3.0.7", + "string-to-arraybuffer": "^1.0.2", + "teeny-request": "3.7.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "files": [ + "lib/index.js", + "lib/index.mjs", + "lib/index.es.js", + "browser.js" + ], + "homepage": "https://github.com/bitinn/node-fetch", + "keywords": [ + "fetch", + "http", + "promise" + ], + "license": "MIT", + "main": "lib/index.js", + "module": "lib/index.mjs", + "name": "node-fetch", + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + }, + "release": { + "branches": [ + "+([0-9]).x", + "main", + "next", + { + "name": "beta", + "prerelease": true + } + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/bitinn/node-fetch.git" + }, + "scripts": { + "build": "cross-env BABEL_ENV=rollup rollup -c", + "coverage": "cross-env BABEL_ENV=coverage nyc --reporter json --reporter text mocha -R spec test/test.js && codecov -f coverage/coverage-final.json", + "prepare": "npm run build", + "report": "cross-env BABEL_ENV=coverage nyc --reporter lcov --reporter text mocha -R spec test/test.js", + "test": "cross-env BABEL_ENV=test mocha --require babel-register --throw-deprecation test/test.js" + }, + "version": "2.6.11" +} diff --git a/node_modules/tr46/.npmignore b/node_modules/tr46/.npmignore new file mode 100644 index 0000000000000000000000000000000000000000..96e9161fde31e9906718f689d5cc135e507a51e1 --- /dev/null +++ b/node_modules/tr46/.npmignore @@ -0,0 +1,4 @@ +scripts/ +test/ + +!lib/mapping_table.json diff --git a/node_modules/tr46/dropbox/CODE_OF_CONDUCT.md b/node_modules/tr46/dropbox/CODE_OF_CONDUCT.md new file mode 100644 index 0000000000000000000000000000000000000000..0492b588e450a5681b5f70cc938245e5cc0bbb76 --- /dev/null +++ b/node_modules/tr46/dropbox/CODE_OF_CONDUCT.md @@ -0,0 +1,5 @@ +# Dropbox Code Of Conduct + +*Dropbox believes that an inclusive development environment fosters greater technical achievement. To encourage a diverse group of contributors we've adopted this code of conduct.* + +Please read the Official Dropbox [Code of Conduct](https://opensource.dropbox.com/coc/) before contributing. \ No newline at end of file diff --git a/node_modules/tr46/dropbox/CONTRIBUTING.md b/node_modules/tr46/dropbox/CONTRIBUTING.md new file mode 100644 index 0000000000000000000000000000000000000000..ec595d58ade3040ceca5ee8533fba6c5bf9ad688 --- /dev/null +++ b/node_modules/tr46/dropbox/CONTRIBUTING.md @@ -0,0 +1,62 @@ +# Contributing to the Dropbox SDK for Javascript +We value and rely on the feedback from our community. This comes in the form of bug reports, feature requests, and general guidance. We welcome your issues and pull requests and try our hardest to be timely in both response and resolution. Please read through this document before submitting issues or pull requests to ensure we have the necessary information to help you resolve your issue. + +## Filing Bug Reports +You can file a bug report on the [GitHub Issues][issues] page. + +1. Search through existing issues to ensure that your issue has not been reported. If it is a common issue, there is likely already an issue. + +2. Please ensure you are using the latest version of the SDK. While this may be a valid issue, we only will fix bugs affecting the latest version and your bug may have been fixed in a newer version. + +3. Provide as much information as you can regarding the language version, SDK version, and any other relevant information about your environment so we can help resolve the issue as quickly as possible. + +## Submitting Pull Requests + +We are more than happy to recieve pull requests helping us improve the state of our SDK. You can open a new pull request on the [GitHub Pull Requests][pr] page. + +1. Please ensure that you have read the [License][license], [Code of Conduct][coc] and have signed the [Contributing License Agreement (CLA)][cla]. + +2. Please add tests confirming the new functionality works. Pull requests will not be merged without passing continuous integration tests unless the pull requests aims to fix existing issues with these tests. + +3. If the pull request is modifying typescript definitions, please remember to change the template found under `generator/typescript` and run the generation instead of manually changing types. If there is an issue with the generation, please file an issue. + +## Updating Generated Code + +Generated code can be updated by running the following commands: + +``` +$ git submodule init +$ git submodule update --remote --recursive +$ cd generator/stone +$ python setup.py install +$ cd .. +$ python generate_routes.py +``` + +This will generate typescript definitions and route code. + +## Testing the Code + +Tests live under the `test/` folder and are then broken down into the type of test it is. To run both the unit tests and the typescript tests, you can use: + +``` +$ npm test +``` + +If you would like to run the integration tests locally, you can run: + +``` +export DROPBOX_TOKEN={fill in user token} +export DROPBOX_TEAM_TOKEN={fill in team token} +export DROPBOX_USER_ID={fill in assume user id} +export DROPBOX_SHARED_LINK={fill in shared link} +$ npm run test:integration +``` + +Note: If you do not have all of these tokens available, we run integration tests as a part of pull request validation and you are able to rely on those if you are unable to obtain yourself. + +[issues]: https://github.com/dropbox/dropbox-sdk-js/issues +[pr]: https://github.com/dropbox/dropbox-sdk-js/pulls +[coc]: https://github.com/dropbox/dropbox-sdk-js/blob/main/CODE_OF_CONDUCT.md +[license]: https://github.com/dropbox/dropbox-sdk-js/blob/main/LICENSE +[cla]: https://opensource.dropbox.com/cla/ \ No newline at end of file diff --git a/node_modules/tr46/dropbox/LICENSE b/node_modules/tr46/dropbox/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9f5dd9376dc46facaabeb20998fef69be5fe3d16 --- /dev/null +++ b/node_modules/tr46/dropbox/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2020 Dropbox Inc., http://www.dropbox.com/ + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/tr46/dropbox/README.md b/node_modules/tr46/dropbox/README.md new file mode 100644 index 0000000000000000000000000000000000000000..f06cccdaaa58d9ff69024ce109d26c7213e0e9df --- /dev/null +++ b/node_modules/tr46/dropbox/README.md @@ -0,0 +1,70 @@ +[![Logo][logo]][repo] + +[![node-current](https://img.shields.io/node/v/dropbox)](https://www.npmjs.com/package/dropbox) +[![npm](https://img.shields.io/npm/v/dropbox)](https://www.npmjs.com/package/dropbox) +[![codecov](https://codecov.io/gh/dropbox/dropbox-sdk-js/branch/main/graph/badge.svg)](https://codecov.io/gh/dropbox/dropbox-sdk-js) + +The offical Dropbox SDK for Javascript. + +Documentation can be found on [GitHub Pages][documentation] + +## Installation + +Create an app via the [Developer Console][devconsole] + +Install via [npm](https://www.npmjs.com/) + +``` +$ npm install --save dropbox +``` + +Install from source: + +``` +$ git clone https://github.com/dropbox/dropbox-sdk-js.git +$ cd dropbox-sdk-js +$ npm install +``` + +If you are using the repository from the browser, you can use any CDNs that hosts the Dropbox package by including a script tag with the link to the package. However, we highly recommend you do not directly import the latest version and instead choose a specific version. When we update and release a breaking change, this could break production code which we hope to avoid. Note, we follow [semver](https://semver.org/) naming conventions which means that any major version update could contain a breaking change. + +After installation, follow one of our [Examples][examples] or read the [Documentation][documentation]. + +You can also view our [OAuth guide][oauthguide]. + +## Examples + +We provide [Examples][examples] to help get you started with a lot of the basic functionality in the SDK. We provide most examples in both Javascript and Typescript with some having a Node equivalent. + +- **OAuth** + - Auth - [ [JS](https://github.com/dropbox/dropbox-sdk-js/tree/main/examples/javascript/auth) ] - A simple auth example to get an access token and list the files in the root of your Dropbox account. + - Simple Backend [ [JS](https://github.com/dropbox/dropbox-sdk-js/tree/main/examples/javascript/simple-backend) ] - A simple example of a node backend doing a multi-step auth flow for Short Lived Tokens. + - PKCE Backend [ [JS](https://github.com/dropbox/dropbox-sdk-js/tree/main/examples/javascript/PKCE-backend) ] - A simple example of a node backend doing a multi-step auth flow using PKCE and Short Lived Tokens. + - PKCE Browser [ [JS](https://github.com/dropbox/dropbox-sdk-js/tree/main/examples/javascript/pkce-browser) ] - A simple example of a frontend doing a multi-step auth flow using PKCE and Short Lived Tokens. + +- **Other Examples** + - Basic - [ [TS](https://github.com/dropbox/dropbox-sdk-js/tree/main/examples/typescript/node), [JS](https://github.com/dropbox/dropbox-sdk-js/tree/main/examples/javascript/basic) ] - A simple example that takes in a token and fetches files from your Dropbox account. + - Download - [ [TS](https://github.com/dropbox/dropbox-sdk-js/tree/main/examples/typescript/node), [JS](https://github.com/dropbox/dropbox-sdk-js/tree/main/examples/javascript/download) ] - An example showing how to download a shared file. + - Team As User - [ [TS](https://github.com/dropbox/dropbox-sdk-js/tree/main/examples/typescript/node), [JS](https://github.com/dropbox/dropbox-sdk-js/tree/main/examples/javascript/team-as-user) ] - An example showing how to act as a user. + - Team - [ [TS](https://github.com/dropbox/dropbox-sdk-js/tree/main/examples/typescript/node), [JS](https://github.com/dropbox/dropbox-sdk-js/tree/main/examples/javascript/team) ] - An example showing how to use the team functionality and list team devices. + - Upload [ [TS](https://github.com/dropbox/dropbox-sdk-js/tree/main/examples/typescript/node), [JS](https://github.com/dropbox/dropbox-sdk-js/tree/main/examples/javascript/upload) ] - An example showing how to upload a file to Dropbox. + +## Getting Help + +If you find a bug, please see [CONTRIBUTING.md][contributing] for information on how to report it. + +If you need help that is not specific to this SDK, please reach out to [Dropbox Support][support]. + +## License + +This SDK is distributed under the MIT license, please see [LICENSE][license] for more information. + +[logo]: https://cfl.dropboxstatic.com/static/images/sdk/javascript_banner.png +[repo]: https://github.com/dropbox/dropbox-sdk-js +[documentation]: https://dropbox.github.io/dropbox-sdk-js/ +[examples]: https://github.com/dropbox/dropbox-sdk-js/tree/main/examples +[license]: https://github.com/dropbox/dropbox-sdk-js/blob/main/LICENSE +[contributing]: https://github.com/dropbox/dropbox-sdk-js/blob/main/CONTRIBUTING.md +[devconsole]: https://dropbox.com/developers/apps +[oauthguide]: https://www.dropbox.com/lp/developers/reference/oauth-guide +[support]: https://www.dropbox.com/developers/contact diff --git a/node_modules/tr46/dropbox/UPGRADING.md b/node_modules/tr46/dropbox/UPGRADING.md new file mode 100644 index 0000000000000000000000000000000000000000..64c20a1fb5d4b3fac762e499997633a17a5a07d9 --- /dev/null +++ b/node_modules/tr46/dropbox/UPGRADING.md @@ -0,0 +1,163 @@ +# Upgrading the Dropbox SDK + +This document is designed to show you how to upgrade to the latest version of the SDK accomodating any breaking changes introduced by major version updates. If you find any issues with either this guide on upgrading or the changes introduced in the new version, please see [CONTRIBUTING.md][contributing] + +# Upgrading from v9.X.X to v10.0.0 + +## 1. Deprecating the `authenticateWithCordova` function + +The `authenticateWithCordova` function used an in-app browser within the Cordova framework to authenticate users via OAuth. As a part of hardening security, we are following [Google’s recommendation](https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html) to remove support for authentication via a “web-view” or in-app browsers. Since the `authenticateWithCordova` function relies on running in an in-app browser, we have made the choice to deprecate this function. + +Instead, apps will need to implement logic to handle this use case. The high level logic would be as follows: + +1. getAuthenticationUrl with your app’s parameters. For Native Apps, we highly encourage using PKCE to increase your app’s security. +2. Open the authentication URL in the default system browser +3. Redirect back into your app upon completion of the OAuth flow. + +We recommend using a custom URI for redirect to ensure you are redirecting directly back into your app. You can read up on this process more in detail on the [OAuth site](https://www.oauth.com/oauth2-servers/redirect-uris/redirect-uris-native-apps/). + +# Upgrading from v8.X.X to v9.0.0 + +## 1. Unblocking browser PKCE flow + +Previously, there was an issue in which Node and the Browser use different processes to generate the `codeVerifier` and `codeChallenge`. In order to remedy this, both `generatePKCECodes` and `getAuthenticationUrl` now return promises due to the how the browser digests hashes. + +Previous Implementation(synchronous): +``` +var authUrl = dbxAuth.getAuthenticationUrl(redirectUri, null, 'code', 'offline', null, 'none', false) +// logic for navigating to authUrl +``` +New Implementation(async): +``` +dbxAuth.getAuthenticationUrl(redirectUri, null, 'code', 'offline', null, 'none', false) + .then((authUrl) => { + // logic for navigating to authUrl + }); +``` +# Upgrading from v7.X.X to v8.0.0 + +## 1. Throwing Errors as `DropboxResponseError` rather than a literal object + +We have created a new Error class called `DropboxResponseError` which contains the same members as the literal that was thrown, but in a cleaner format. It also allows you to leverage the fact this class now extends the builtin `Error` class. + +# Upgrading from v6.X.X to v7.0.0 + +## 1. Fixing the Typescript argument parameter bug ([#41](https://github.com/dropbox/dropbox-sdk-js/issues/41)) + +We noticed a long lasting bug where the Typescript definitions of routes with no arg would require a `void` argument. This required users to make calls like this: + +``` +var result = dbx.usersGetCurrentAccount(null); +``` + +We have since fixed this to no longer require the null parameter. + +# Upgrading from v5.X.X to v6.0.0 + +## 1. Unifying Dropbox and DropboxTeam + +We made the decision to unify the Dropbox and DropboxTeam objects to further simplify the logic in the SDK. Migrating is very straightforward, a reference like this: + +``` +var dbx = new DropboxTeam({ + accessToken: 'my_token' +}); +``` + +Can be rewritten as: + +``` +var dbx = new Dropbox({ + accessToken: 'my_token' +}); +``` + +Additionally, when using features like assume user, select admin, or path root they are not set as a part of the constructor rather than creating a new client. Logic like this: + +``` +var dbx = new DropboxTeam({ + accessToken: 'my_token' +}); +var dbx_user = dbx.actAsUser(user_id); +dbx_user.usersGetCurrentAccount(); +``` + +Can be rewritten as: + +``` +var dbx = new Dropbox({ + accessToken: 'my_token', + selectUser: 'my_user_id' +}); +dbx.usersGetcurrentAccount(); +``` + +## 2. Moving authentication to DropboxAuth + +Another change that was made was to move all auth related functionality into the DropboxAuth object. The main Dropbox object can be constructed the same way but this will internally create a DropboxAuth object. In order to access any auth functions from the main client you must change your code as such: + +``` +dbx.get_authentication_url(...); +``` + +Would become something like this: + +``` +dbx.auth.get_authentication_url(...); +``` + +However, we recommend creating a DropboxAuth object before creating a client and then constructing as such: + +``` +var dbxAuth = new DropboxAuth(); +... // Do auth logic +var dbx = new Dropbox(dbxAuth); +``` + +That way if you need to create another instance of the client, you can easily plug in the same auth object. + +## 3. Changing Typescript export format + +We have updated the Typescript definitions to be a part of `Dropbox` namespace rather than the `DropboxTypes` namespace. This would look like: + +``` +const result: DropboxTypes.users.FullAccount dbx.usersGetCurrentAccount(); +``` + +Would become: + +``` +const result: Dropbox.users.FullAccount dbx.usersGetCurrentAccount(); +``` + +## 4. Updating the Response object + +We have wrapped the raw responses into the `DropboxResponse` object in order to expose more information out to users. This change looks like: + +``` +var response = dbx.usersGetcurrentAccount(); +console.log(response.fileBlob); //or fileBinary if using workers +``` + +Would become: + +``` +var response = dbx.usersGetcurrentAccount(); +console.log(response.result.fileBlob); //or fileBinary if using workers +``` + +This also exposes the other components of the response like the status and headers which was not previously available. + +``` +var response = dbx.usersGetcurrentAccount(); +console.log(response.status); +console.log(response.headers); +``` + +## 5. Default behavior for `fetch`. + +Previously we have provided guidance to SDK users that they should not rely on the Dropbox SDK's global fetch and that it would be deprecated in future versions. In 6.0.0 onwards, we now include the `node-fetch` dependency as part of the NPM package. For browser environments, we fallback to `window.fetch` by default. + +As a result, you should not pass in your own `fetch` to the Dropbox constructor unless you have a specific reason to do so (mocking, etc). Note that if you opt to pass in fetch to support your use case, you may need to bind your fetch to the appropriate context e.g. `fetch.bind(your_context)`. + +[contributing]: https://github.com/dropbox/dropbox-sdk-js/blob/main/CONTRIBUTING.md diff --git a/node_modules/tr46/dropbox/cjs/index.js b/node_modules/tr46/dropbox/cjs/index.js new file mode 100644 index 0000000000000000000000000000000000000000..c09420a33152dbe6de57cfb27938bf06ed446306 --- /dev/null +++ b/node_modules/tr46/dropbox/cjs/index.js @@ -0,0 +1,41 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _dropbox = require("./src/dropbox.js"); + +Object.defineProperty(exports, "Dropbox", { + enumerable: true, + get: function get() { + return _dropbox["default"]; + } +}); + +var _auth = require("./src/auth.js"); + +Object.defineProperty(exports, "DropboxAuth", { + enumerable: true, + get: function get() { + return _auth["default"]; + } +}); + +var _response = require("./src/response.js"); + +Object.defineProperty(exports, "DropboxResponse", { + enumerable: true, + get: function get() { + return _response.DropboxResponse; + } +}); + +var _error = require("./src/error.js"); + +Object.defineProperty(exports, "DropboxResponseError", { + enumerable: true, + get: function get() { + return _error.DropboxResponseError; + } +}); \ No newline at end of file diff --git a/node_modules/tr46/dropbox/cjs/lib/routes.js b/node_modules/tr46/dropbox/cjs/lib/routes.js new file mode 100644 index 0000000000000000000000000000000000000000..9aa3d526ea1522098ea9e61de339b38ba5adc9a1 --- /dev/null +++ b/node_modules/tr46/dropbox/cjs/lib/routes.js @@ -0,0 +1,4048 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +// Auto-generated by Stone, do not modify. +var routes = {}; +/** + * Sets a user's profile photo. + * Route attributes: + * scope: account_info.write + * @function Dropbox#accountSetProfilePhoto + * @arg {AccountSetProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + +routes.accountSetProfilePhoto = function (arg) { + return this.request('account/set_profile_photo', arg, 'user', 'api', 'rpc', 'account_info.write'); +}; +/** + * Creates an OAuth 2.0 access token from the supplied OAuth 1.0 access token. + * @function Dropbox#authTokenFromOauth1 + * @arg {AuthTokenFromOAuth1Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.authTokenFromOauth1 = function (arg) { + return this.request('auth/token/from_oauth1', arg, 'app', 'api', 'rpc', null); +}; +/** + * Disables the access token used to authenticate the call. If there is a + * corresponding refresh token for the access token, this disables that refresh + * token, as well as any other access tokens for that refresh token. + * @function Dropbox#authTokenRevoke + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.authTokenRevoke = function () { + return this.request('auth/token/revoke', null, 'user', 'api', 'rpc', null); +}; +/** + * This endpoint performs App Authentication, validating the supplied app key + * and secret, and returns the supplied string, to allow you to test your code + * and connection to the Dropbox API. It has no other effect. If you receive an + * HTTP 200 response with the supplied query, it indicates at least part of the + * Dropbox API infrastructure is working and that the app key and secret valid. + * @function Dropbox#checkApp + * @arg {CheckEchoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.checkApp = function (arg) { + return this.request('check/app', arg, 'app', 'api', 'rpc', null); +}; +/** + * This endpoint performs User Authentication, validating the supplied access + * token, and returns the supplied string, to allow you to test your code and + * connection to the Dropbox API. It has no other effect. If you receive an HTTP + * 200 response with the supplied query, it indicates at least part of the + * Dropbox API infrastructure is working and that the access token is valid. + * Route attributes: + * scope: account_info.read + * @function Dropbox#checkUser + * @arg {CheckEchoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.checkUser = function (arg) { + return this.request('check/user', arg, 'user', 'api', 'rpc', 'account_info.read'); +}; +/** + * Removes all manually added contacts. You'll still keep contacts who are on + * your team or who you imported. New contacts will be added when you share. + * Route attributes: + * scope: contacts.write + * @function Dropbox#contactsDeleteManualContacts + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.contactsDeleteManualContacts = function () { + return this.request('contacts/delete_manual_contacts', null, 'user', 'api', 'rpc', 'contacts.write'); +}; +/** + * Removes manually added contacts from the given list. + * Route attributes: + * scope: contacts.write + * @function Dropbox#contactsDeleteManualContactsBatch + * @arg {ContactsDeleteManualContactsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.contactsDeleteManualContactsBatch = function (arg) { + return this.request('contacts/delete_manual_contacts_batch', arg, 'user', 'api', 'rpc', 'contacts.write'); +}; +/** + * Add property groups to a Dropbox file. See templates/add_for_user or + * templates/add_for_team to create new templates. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesPropertiesAdd + * @arg {FilePropertiesAddPropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesPropertiesAdd = function (arg) { + return this.request('file_properties/properties/add', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Overwrite property groups associated with a file. This endpoint should be + * used instead of properties/update when property groups are being updated via + * a "snapshot" instead of via a "delta". In other words, this endpoint will + * delete all omitted fields from a property group, whereas properties/update + * will only delete fields that are explicitly marked for deletion. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesPropertiesOverwrite + * @arg {FilePropertiesOverwritePropertyGroupArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesPropertiesOverwrite = function (arg) { + return this.request('file_properties/properties/overwrite', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Permanently removes the specified property group from the file. To remove + * specific property field key value pairs, see properties/update. To update a + * template, see templates/update_for_user or templates/update_for_team. To + * remove a template, see templates/remove_for_user or + * templates/remove_for_team. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesPropertiesRemove + * @arg {FilePropertiesRemovePropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesPropertiesRemove = function (arg) { + return this.request('file_properties/properties/remove', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Search across property templates for particular property field values. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filePropertiesPropertiesSearch + * @arg {FilePropertiesPropertiesSearchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesPropertiesSearch = function (arg) { + return this.request('file_properties/properties/search', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Once a cursor has been retrieved from properties/search, use this to paginate + * through all search results. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filePropertiesPropertiesSearchContinue + * @arg {FilePropertiesPropertiesSearchContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesPropertiesSearchContinue = function (arg) { + return this.request('file_properties/properties/search/continue', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Add, update or remove properties associated with the supplied file and + * templates. This endpoint should be used instead of properties/overwrite when + * property groups are being updated via a "delta" instead of via a "snapshot" . + * In other words, this endpoint will not delete any omitted fields from a + * property group, whereas properties/overwrite will delete any fields that are + * omitted from a property group. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesPropertiesUpdate + * @arg {FilePropertiesUpdatePropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesPropertiesUpdate = function (arg) { + return this.request('file_properties/properties/update', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Add a template associated with a team. See properties/add to add properties + * to a file or folder. Note: this endpoint will create team-owned templates. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesAddForTeam + * @arg {FilePropertiesAddTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesAddForTeam = function (arg) { + return this.request('file_properties/templates/add_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; +/** + * Add a template associated with a user. See properties/add to add properties + * to a file. This endpoint can't be called on a team member or admin's behalf. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesTemplatesAddForUser + * @arg {FilePropertiesAddTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesAddForUser = function (arg) { + return this.request('file_properties/templates/add_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Get the schema for a specified template. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesGetForTeam + * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesGetForTeam = function (arg) { + return this.request('file_properties/templates/get_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; +/** + * Get the schema for a specified template. This endpoint can't be called on a + * team member or admin's behalf. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filePropertiesTemplatesGetForUser + * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesGetForUser = function (arg) { + return this.request('file_properties/templates/get_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Get the template identifiers for a team. To get the schema of each template + * use templates/get_for_team. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesListForTeam + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesListForTeam = function () { + return this.request('file_properties/templates/list_for_team', null, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; +/** + * Get the template identifiers for a team. To get the schema of each template + * use templates/get_for_user. This endpoint can't be called on a team member or + * admin's behalf. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filePropertiesTemplatesListForUser + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesListForUser = function () { + return this.request('file_properties/templates/list_for_user', null, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Permanently removes the specified template created from + * templates/add_for_user. All properties associated with the template will also + * be removed. This action cannot be undone. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesRemoveForTeam + * @arg {FilePropertiesRemoveTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesRemoveForTeam = function (arg) { + return this.request('file_properties/templates/remove_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; +/** + * Permanently removes the specified template created from + * templates/add_for_user. All properties associated with the template will also + * be removed. This action cannot be undone. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesTemplatesRemoveForUser + * @arg {FilePropertiesRemoveTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesRemoveForUser = function (arg) { + return this.request('file_properties/templates/remove_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Update a template associated with a team. This route can update the template + * name, the template description and add optional properties to templates. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesUpdateForTeam + * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesUpdateForTeam = function (arg) { + return this.request('file_properties/templates/update_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; +/** + * Update a template associated with a user. This route can update the template + * name, the template description and add optional properties to templates. This + * endpoint can't be called on a team member or admin's behalf. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesTemplatesUpdateForUser + * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesUpdateForUser = function (arg) { + return this.request('file_properties/templates/update_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Returns the total number of file requests owned by this user. Includes both + * open and closed file requests. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsCount + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.fileRequestsCount = function () { + return this.request('file_requests/count', null, 'user', 'api', 'rpc', 'file_requests.read'); +}; +/** + * Creates a file request for this user. + * Route attributes: + * scope: file_requests.write + * @function Dropbox#fileRequestsCreate + * @arg {FileRequestsCreateFileRequestArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.fileRequestsCreate = function (arg) { + return this.request('file_requests/create', arg, 'user', 'api', 'rpc', 'file_requests.write'); +}; +/** + * Delete a batch of closed file requests. + * Route attributes: + * scope: file_requests.write + * @function Dropbox#fileRequestsDelete + * @arg {FileRequestsDeleteFileRequestArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.fileRequestsDelete = function (arg) { + return this.request('file_requests/delete', arg, 'user', 'api', 'rpc', 'file_requests.write'); +}; +/** + * Delete all closed file requests owned by this user. + * Route attributes: + * scope: file_requests.write + * @function Dropbox#fileRequestsDeleteAllClosed + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.fileRequestsDeleteAllClosed = function () { + return this.request('file_requests/delete_all_closed', null, 'user', 'api', 'rpc', 'file_requests.write'); +}; +/** + * Returns the specified file request. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsGet + * @arg {FileRequestsGetFileRequestArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.fileRequestsGet = function (arg) { + return this.request('file_requests/get', arg, 'user', 'api', 'rpc', 'file_requests.read'); +}; +/** + * Returns a list of file requests owned by this user. For apps with the app + * folder permission, this will only return file requests with destinations in + * the app folder. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsListV2 + * @arg {FileRequestsListFileRequestsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.fileRequestsListV2 = function (arg) { + return this.request('file_requests/list_v2', arg, 'user', 'api', 'rpc', 'file_requests.read'); +}; +/** + * Returns a list of file requests owned by this user. For apps with the app + * folder permission, this will only return file requests with destinations in + * the app folder. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsList + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.fileRequestsList = function () { + return this.request('file_requests/list', null, 'user', 'api', 'rpc', 'file_requests.read'); +}; +/** + * Once a cursor has been retrieved from list_v2, use this to paginate through + * all file requests. The cursor must come from a previous call to list_v2 or + * list/continue. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsListContinue + * @arg {FileRequestsListFileRequestsContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.fileRequestsListContinue = function (arg) { + return this.request('file_requests/list/continue', arg, 'user', 'api', 'rpc', 'file_requests.read'); +}; +/** + * Update a file request. + * Route attributes: + * scope: file_requests.write + * @function Dropbox#fileRequestsUpdate + * @arg {FileRequestsUpdateFileRequestArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.fileRequestsUpdate = function (arg) { + return this.request('file_requests/update', arg, 'user', 'api', 'rpc', 'file_requests.write'); +}; +/** + * Returns the metadata for a file or folder. This is an alpha endpoint + * compatible with the properties API. Note: Metadata for the root folder is + * unsupported. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesAlphaGetMetadata + * @deprecated + * @arg {FilesAlphaGetMetadataArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesAlphaGetMetadata = function (arg) { + return this.request('files/alpha/get_metadata', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Create a new file with the contents provided in the request. Note that the + * behavior of this alpha endpoint is unstable and subject to change. Do not use + * this to upload a file larger than 150 MB. Instead, create an upload session + * with upload_session/start. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesAlphaUpload + * @deprecated + * @arg {FilesUploadArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesAlphaUpload = function (arg) { + return this.request('files/alpha/upload', arg, 'user', 'content', 'upload', 'files.content.write'); +}; +/** + * Copy a file or folder to a different location in the user's Dropbox. If the + * source path is a folder all its contents will be copied. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyV2 + * @arg {FilesRelocationArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCopyV2 = function (arg) { + return this.request('files/copy_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Copy a file or folder to a different location in the user's Dropbox. If the + * source path is a folder all its contents will be copied. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopy + * @deprecated + * @arg {FilesRelocationArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCopy = function (arg) { + return this.request('files/copy', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Copy multiple files or folders to different locations at once in the user's + * Dropbox. This route will replace copy_batch. The main difference is this + * route will return status for each entry, while copy_batch raises failure if + * any entry fails. This route will either finish synchronously, or return a job + * ID and do the async copy job in background. Please use copy_batch/check_v2 to + * check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyBatchV2 + * @arg {Object} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCopyBatchV2 = function (arg) { + return this.request('files/copy_batch_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Copy multiple files or folders to different locations at once in the user's + * Dropbox. This route will return job ID immediately and do the async copy job + * in background. Please use copy_batch/check to check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyBatch + * @deprecated + * @arg {FilesRelocationBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCopyBatch = function (arg) { + return this.request('files/copy_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Returns the status of an asynchronous job for copy_batch_v2. It returns list + * of results for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyBatchCheckV2 + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCopyBatchCheckV2 = function (arg) { + return this.request('files/copy_batch/check_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Returns the status of an asynchronous job for copy_batch. If success, it + * returns list of results for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyBatchCheck + * @deprecated + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCopyBatchCheck = function (arg) { + return this.request('files/copy_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Get a copy reference to a file or folder. This reference string can be used + * to save that file or folder to another user's Dropbox by passing it to + * copy_reference/save. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyReferenceGet + * @arg {FilesGetCopyReferenceArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCopyReferenceGet = function (arg) { + return this.request('files/copy_reference/get', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Save a copy reference returned by copy_reference/get to the user's Dropbox. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyReferenceSave + * @arg {FilesSaveCopyReferenceArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCopyReferenceSave = function (arg) { + return this.request('files/copy_reference/save', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Create a folder at a given path. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCreateFolderV2 + * @arg {FilesCreateFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCreateFolderV2 = function (arg) { + return this.request('files/create_folder_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Create a folder at a given path. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCreateFolder + * @deprecated + * @arg {FilesCreateFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCreateFolder = function (arg) { + return this.request('files/create_folder', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Create multiple folders at once. This route is asynchronous for large + * batches, which returns a job ID immediately and runs the create folder batch + * asynchronously. Otherwise, creates the folders and returns the result + * synchronously for smaller inputs. You can force asynchronous behaviour by + * using the CreateFolderBatchArg.force_async flag. Use + * create_folder_batch/check to check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCreateFolderBatch + * @arg {FilesCreateFolderBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCreateFolderBatch = function (arg) { + return this.request('files/create_folder_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Returns the status of an asynchronous job for create_folder_batch. If + * success, it returns list of result for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCreateFolderBatchCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCreateFolderBatchCheck = function (arg) { + return this.request('files/create_folder_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Delete the file or folder at a given path. If the path is a folder, all its + * contents will be deleted too. A successful response indicates that the file + * or folder was deleted. The returned metadata will be the corresponding + * FileMetadata or FolderMetadata for the item at time of deletion, and not a + * DeletedMetadata object. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesDeleteV2 + * @arg {FilesDeleteArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesDeleteV2 = function (arg) { + return this.request('files/delete_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Delete the file or folder at a given path. If the path is a folder, all its + * contents will be deleted too. A successful response indicates that the file + * or folder was deleted. The returned metadata will be the corresponding + * FileMetadata or FolderMetadata for the item at time of deletion, and not a + * DeletedMetadata object. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesDelete + * @deprecated + * @arg {FilesDeleteArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesDelete = function (arg) { + return this.request('files/delete', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Delete multiple files/folders at once. This route is asynchronous, which + * returns a job ID immediately and runs the delete batch asynchronously. Use + * delete_batch/check to check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesDeleteBatch + * @arg {FilesDeleteBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesDeleteBatch = function (arg) { + return this.request('files/delete_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Returns the status of an asynchronous job for delete_batch. If success, it + * returns list of result for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesDeleteBatchCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesDeleteBatchCheck = function (arg) { + return this.request('files/delete_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Download a file from a user's Dropbox. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesDownload + * @arg {FilesDownloadArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesDownload = function (arg) { + return this.request('files/download', arg, 'user', 'content', 'download', 'files.content.read'); +}; +/** + * Download a folder from the user's Dropbox, as a zip file. The folder must be + * less than 20 GB in size and any single file within must be less than 4 GB in + * size. The resulting zip must have fewer than 10,000 total file and folder + * entries, including the top level folder. The input cannot be a single file. + * Note: this endpoint does not support HTTP range requests. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesDownloadZip + * @arg {FilesDownloadZipArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesDownloadZip = function (arg) { + return this.request('files/download_zip', arg, 'user', 'content', 'download', 'files.content.read'); +}; +/** + * Export a file from a user's Dropbox. This route only supports exporting files + * that cannot be downloaded directly and whose ExportResult.file_metadata has + * ExportInfo.export_as populated. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesExport + * @arg {FilesExportArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesExport = function (arg) { + return this.request('files/export', arg, 'user', 'content', 'download', 'files.content.read'); +}; +/** + * Return the lock metadata for the given list of paths. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetFileLockBatch + * @arg {FilesLockFileBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesGetFileLockBatch = function (arg) { + return this.request('files/get_file_lock_batch', arg, 'user', 'api', 'rpc', 'files.content.read'); +}; +/** + * Returns the metadata for a file or folder. Note: Metadata for the root folder + * is unsupported. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesGetMetadata + * @arg {FilesGetMetadataArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesGetMetadata = function (arg) { + return this.request('files/get_metadata', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Get a preview for a file. Currently, PDF previews are generated for files + * with the following extensions: .ai, .doc, .docm, .docx, .eps, .gdoc, + * .gslides, .odp, .odt, .pps, .ppsm, .ppsx, .ppt, .pptm, .pptx, .rtf. HTML + * previews are generated for files with the following extensions: .csv, .ods, + * .xls, .xlsm, .gsheet, .xlsx. Other formats will return an unsupported + * extension error. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetPreview + * @arg {FilesPreviewArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesGetPreview = function (arg) { + return this.request('files/get_preview', arg, 'user', 'content', 'download', 'files.content.read'); +}; +/** + * Get a temporary link to stream content of a file. This link will expire in + * four hours and afterwards you will get 410 Gone. This URL should not be used + * to display content directly in the browser. The Content-Type of the link is + * determined automatically by the file's mime type. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetTemporaryLink + * @arg {FilesGetTemporaryLinkArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesGetTemporaryLink = function (arg) { + return this.request('files/get_temporary_link', arg, 'user', 'api', 'rpc', 'files.content.read'); +}; +/** + * Get a one-time use temporary upload link to upload a file to a Dropbox + * location. This endpoint acts as a delayed upload. The returned temporary + * upload link may be used to make a POST request with the data to be uploaded. + * The upload will then be perfomed with the CommitInfo previously provided to + * get_temporary_upload_link but evaluated only upon consumption. Hence, errors + * stemming from invalid CommitInfo with respect to the state of the user's + * Dropbox will only be communicated at consumption time. Additionally, these + * errors are surfaced as generic HTTP 409 Conflict responses, potentially + * hiding issue details. The maximum temporary upload link duration is 4 hours. + * Upon consumption or expiration, a new link will have to be generated. + * Multiple links may exist for a specific upload path at any given time. The + * POST request on the temporary upload link must have its Content-Type set to + * "application/octet-stream". Example temporary upload link consumption + * request: curl -X POST + * https://content.dropboxapi.com/apitul/1/bNi2uIYF51cVBND --header + * "Content-Type: application/octet-stream" --data-binary @local_file.txt A + * successful temporary upload link consumption request returns the content hash + * of the uploaded data in JSON format. Example successful temporary upload + * link consumption response: {"content-hash": + * "599d71033d700ac892a0e48fa61b125d2f5994"} An unsuccessful temporary upload + * link consumption request returns any of the following status codes: HTTP 400 + * Bad Request: Content-Type is not one of application/octet-stream and + * text/plain or request is invalid. HTTP 409 Conflict: The temporary upload + * link does not exist or is currently unavailable, the upload failed, or + * another error happened. HTTP 410 Gone: The temporary upload link is expired + * or consumed. Example unsuccessful temporary upload link consumption + * response: Temporary upload link has been recently consumed. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesGetTemporaryUploadLink + * @arg {FilesGetTemporaryUploadLinkArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesGetTemporaryUploadLink = function (arg) { + return this.request('files/get_temporary_upload_link', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Get a thumbnail for an image. This method currently supports files with the + * following file extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp. + * Photos that are larger than 20MB in size won't be converted to a thumbnail. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetThumbnail + * @arg {FilesThumbnailArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesGetThumbnail = function (arg) { + return this.request('files/get_thumbnail', arg, 'user', 'content', 'download', 'files.content.read'); +}; +/** + * Get a thumbnail for an image. This method currently supports files with the + * following file extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp. + * Photos that are larger than 20MB in size won't be converted to a thumbnail. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetThumbnailV2 + * @arg {FilesThumbnailV2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesGetThumbnailV2 = function (arg) { + return this.request('files/get_thumbnail_v2', arg, 'app, user', 'content', 'download', 'files.content.read'); +}; +/** + * Get thumbnails for a list of images. We allow up to 25 thumbnails in a single + * batch. This method currently supports files with the following file + * extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp. Photos that + * are larger than 20MB in size won't be converted to a thumbnail. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetThumbnailBatch + * @arg {FilesGetThumbnailBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesGetThumbnailBatch = function (arg) { + return this.request('files/get_thumbnail_batch', arg, 'user', 'content', 'rpc', 'files.content.read'); +}; +/** + * Starts returning the contents of a folder. If the result's + * ListFolderResult.has_more field is true, call list_folder/continue with the + * returned ListFolderResult.cursor to retrieve more entries. If you're using + * ListFolderArg.recursive set to true to keep a local cache of the contents of + * a Dropbox account, iterate through each entry in order and process them as + * follows to keep your local state in sync: For each FileMetadata, store the + * new entry at the given path in your local state. If the required parent + * folders don't exist yet, create them. If there's already something else at + * the given path, replace it and remove all its children. For each + * FolderMetadata, store the new entry at the given path in your local state. If + * the required parent folders don't exist yet, create them. If there's already + * something else at the given path, replace it but leave the children as they + * are. Check the new entry's FolderSharingInfo.read_only and set all its + * children's read-only statuses to match. For each DeletedMetadata, if your + * local state has something at the given path, remove it and all its children. + * If there's nothing at the given path, ignore this entry. Note: + * auth.RateLimitError may be returned if multiple list_folder or + * list_folder/continue calls with same parameters are made simultaneously by + * same API app for same user. If your app implements retry logic, please hold + * off the retry until the previous request finishes. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListFolder + * @arg {FilesListFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesListFolder = function (arg) { + return this.request('files/list_folder', arg, 'app, user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Once a cursor has been retrieved from list_folder, use this to paginate + * through all files and retrieve updates to the folder, following the same + * rules as documented for list_folder. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListFolderContinue + * @arg {FilesListFolderContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesListFolderContinue = function (arg) { + return this.request('files/list_folder/continue', arg, 'app, user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * A way to quickly get a cursor for the folder's state. Unlike list_folder, + * list_folder/get_latest_cursor doesn't return any entries. This endpoint is + * for app which only needs to know about new files and modifications and + * doesn't need to know about files that already exist in Dropbox. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListFolderGetLatestCursor + * @arg {FilesListFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesListFolderGetLatestCursor = function (arg) { + return this.request('files/list_folder/get_latest_cursor', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * A longpoll endpoint to wait for changes on an account. In conjunction with + * list_folder/continue, this call gives you a low-latency way to monitor an + * account for file changes. The connection will block until there are changes + * available or a timeout occurs. This endpoint is useful mostly for client-side + * apps. If you're looking for server-side notifications, check out our webhooks + * documentation https://www.dropbox.com/developers/reference/webhooks. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListFolderLongpoll + * @arg {FilesListFolderLongpollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesListFolderLongpoll = function (arg) { + return this.request('files/list_folder/longpoll', arg, 'noauth', 'notify', 'rpc', 'files.metadata.read'); +}; +/** + * Returns revisions for files based on a file path or a file id. The file path + * or file id is identified from the latest file entry at the given file path or + * id. This end point allows your app to query either by file path or file id by + * setting the mode parameter appropriately. In the ListRevisionsMode.path + * (default) mode, all revisions at the same file path as the latest file entry + * are returned. If revisions with the same file id are desired, then mode must + * be set to ListRevisionsMode.id. The ListRevisionsMode.id mode is useful to + * retrieve revisions for a given file across moves or renames. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListRevisions + * @arg {FilesListRevisionsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesListRevisions = function (arg) { + return this.request('files/list_revisions', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Lock the files at the given paths. A locked file will be writable only by the + * lock holder. A successful response indicates that the file has been locked. + * Returns a list of the locked file paths and their metadata after this + * operation. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesLockFileBatch + * @arg {FilesLockFileBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesLockFileBatch = function (arg) { + return this.request('files/lock_file_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Move a file or folder to a different location in the user's Dropbox. If the + * source path is a folder all its contents will be moved. Note that we do not + * currently support case-only renaming. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveV2 + * @arg {FilesRelocationArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesMoveV2 = function (arg) { + return this.request('files/move_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Move a file or folder to a different location in the user's Dropbox. If the + * source path is a folder all its contents will be moved. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMove + * @deprecated + * @arg {FilesRelocationArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesMove = function (arg) { + return this.request('files/move', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Move multiple files or folders to different locations at once in the user's + * Dropbox. Note that we do not currently support case-only renaming. This route + * will replace move_batch. The main difference is this route will return status + * for each entry, while move_batch raises failure if any entry fails. This + * route will either finish synchronously, or return a job ID and do the async + * move job in background. Please use move_batch/check_v2 to check the job + * status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveBatchV2 + * @arg {FilesMoveBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesMoveBatchV2 = function (arg) { + return this.request('files/move_batch_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Move multiple files or folders to different locations at once in the user's + * Dropbox. This route will return job ID immediately and do the async moving + * job in background. Please use move_batch/check to check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveBatch + * @deprecated + * @arg {FilesRelocationBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesMoveBatch = function (arg) { + return this.request('files/move_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Returns the status of an asynchronous job for move_batch_v2. It returns list + * of results for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveBatchCheckV2 + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesMoveBatchCheckV2 = function (arg) { + return this.request('files/move_batch/check_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Returns the status of an asynchronous job for move_batch. If success, it + * returns list of results for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveBatchCheck + * @deprecated + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesMoveBatchCheck = function (arg) { + return this.request('files/move_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Creates a new Paper doc with the provided content. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesPaperCreate + * @arg {FilesPaperCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesPaperCreate = function (arg) { + return this.request('files/paper/create', arg, 'user', 'api', 'upload', 'files.content.write'); +}; +/** + * Updates an existing Paper doc with the provided content. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesPaperUpdate + * @arg {FilesPaperUpdateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesPaperUpdate = function (arg) { + return this.request('files/paper/update', arg, 'user', 'api', 'upload', 'files.content.write'); +}; +/** + * Permanently delete the file or folder at a given path (see + * https://www.dropbox.com/en/help/40). If the given file or folder is not yet + * deleted, this route will first delete it. It is possible for this route to + * successfully delete, then fail to permanently delete. Note: This endpoint is + * only available for Dropbox Business apps. + * Route attributes: + * scope: files.permanent_delete + * @function Dropbox#filesPermanentlyDelete + * @arg {FilesDeleteArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesPermanentlyDelete = function (arg) { + return this.request('files/permanently_delete', arg, 'user', 'api', 'rpc', 'files.permanent_delete'); +}; +/** + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesPropertiesAdd + * @deprecated + * @arg {FilePropertiesAddPropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesPropertiesAdd = function (arg) { + return this.request('files/properties/add', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesPropertiesOverwrite + * @deprecated + * @arg {FilePropertiesOverwritePropertyGroupArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesPropertiesOverwrite = function (arg) { + return this.request('files/properties/overwrite', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesPropertiesRemove + * @deprecated + * @arg {FilePropertiesRemovePropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesPropertiesRemove = function (arg) { + return this.request('files/properties/remove', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesPropertiesTemplateGet + * @deprecated + * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesPropertiesTemplateGet = function (arg) { + return this.request('files/properties/template/get', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesPropertiesTemplateList + * @deprecated + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesPropertiesTemplateList = function () { + return this.request('files/properties/template/list', null, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesPropertiesUpdate + * @deprecated + * @arg {FilePropertiesUpdatePropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesPropertiesUpdate = function (arg) { + return this.request('files/properties/update', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Restore a specific revision of a file to the given path. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesRestore + * @arg {FilesRestoreArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesRestore = function (arg) { + return this.request('files/restore', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Save the data from a specified URL into a file in user's Dropbox. Note that + * the transfer from the URL must complete within 5 minutes, or the operation + * will time out and the job will fail. If the given path already exists, the + * file will be renamed to avoid the conflict (e.g. myfile (1).txt). + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesSaveUrl + * @arg {FilesSaveUrlArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesSaveUrl = function (arg) { + return this.request('files/save_url', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Check the status of a save_url job. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesSaveUrlCheckJobStatus + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesSaveUrlCheckJobStatus = function (arg) { + return this.request('files/save_url/check_job_status', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Searches for files and folders. Note: Recent changes will be reflected in + * search results within a few seconds and older revisions of existing files may + * still match your query for up to a few days. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesSearch + * @deprecated + * @arg {FilesSearchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesSearch = function (arg) { + return this.request('files/search', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Searches for files and folders. Note: search_v2 along with search/continue_v2 + * can only be used to retrieve a maximum of 10,000 matches. Recent changes may + * not immediately be reflected in search results due to a short delay in + * indexing. Duplicate results may be returned across pages. Some results may + * not be returned. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesSearchV2 + * @arg {FilesSearchV2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesSearchV2 = function (arg) { + return this.request('files/search_v2', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Fetches the next page of search results returned from search_v2. Note: + * search_v2 along with search/continue_v2 can only be used to retrieve a + * maximum of 10,000 matches. Recent changes may not immediately be reflected in + * search results due to a short delay in indexing. Duplicate results may be + * returned across pages. Some results may not be returned. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesSearchContinueV2 + * @arg {FilesSearchV2ContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesSearchContinueV2 = function (arg) { + return this.request('files/search/continue_v2', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Add a tag to an item. A tag is a string. The strings are automatically + * converted to lowercase letters. No more than 20 tags can be added to a given + * item. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesTagsAdd + * @arg {FilesAddTagArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesTagsAdd = function (arg) { + return this.request('files/tags/add', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Get list of tags assigned to items. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesTagsGet + * @arg {FilesGetTagsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesTagsGet = function (arg) { + return this.request('files/tags/get', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Remove a tag from an item. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesTagsRemove + * @arg {FilesRemoveTagArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesTagsRemove = function (arg) { + return this.request('files/tags/remove', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Unlock the files at the given paths. A locked file can only be unlocked by + * the lock holder or, if a business account, a team admin. A successful + * response indicates that the file has been unlocked. Returns a list of the + * unlocked file paths and their metadata after this operation. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUnlockFileBatch + * @arg {FilesUnlockFileBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUnlockFileBatch = function (arg) { + return this.request('files/unlock_file_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Create a new file with the contents provided in the request. Do not use this + * to upload a file larger than 150 MB. Instead, create an upload session with + * upload_session/start. Calls to this endpoint will count as data transport + * calls for any Dropbox Business teams with a limit on the number of data + * transport calls allowed per month. For more information, see the Data + * transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUpload + * @arg {FilesUploadArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUpload = function (arg) { + return this.request('files/upload', arg, 'user', 'content', 'upload', 'files.content.write'); +}; +/** + * Append more data to an upload session. When the parameter close is set, this + * call will close the session. A single request should not upload more than 150 + * MB. The maximum size of a file one can upload to an upload session is 350 GB. + * Calls to this endpoint will count as data transport calls for any Dropbox + * Business teams with a limit on the number of data transport calls allowed per + * month. For more information, see the Data transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionAppendV2 + * @arg {FilesUploadSessionAppendArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUploadSessionAppendV2 = function (arg) { + return this.request('files/upload_session/append_v2', arg, 'user', 'content', 'upload', 'files.content.write'); +}; +/** + * Append more data to an upload session. A single request should not upload + * more than 150 MB. The maximum size of a file one can upload to an upload + * session is 350 GB. Calls to this endpoint will count as data transport calls + * for any Dropbox Business teams with a limit on the number of data transport + * calls allowed per month. For more information, see the Data transport limit + * page https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionAppend + * @deprecated + * @arg {FilesUploadSessionCursor} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUploadSessionAppend = function (arg) { + return this.request('files/upload_session/append', arg, 'user', 'content', 'upload', 'files.content.write'); +}; +/** + * Finish an upload session and save the uploaded data to the given file path. A + * single request should not upload more than 150 MB. The maximum size of a file + * one can upload to an upload session is 350 GB. Calls to this endpoint will + * count as data transport calls for any Dropbox Business teams with a limit on + * the number of data transport calls allowed per month. For more information, + * see the Data transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionFinish + * @arg {FilesUploadSessionFinishArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUploadSessionFinish = function (arg) { + return this.request('files/upload_session/finish', arg, 'user', 'content', 'upload', 'files.content.write'); +}; +/** + * This route helps you commit many files at once into a user's Dropbox. Use + * upload_session/start and upload_session/append_v2 to upload file contents. We + * recommend uploading many files in parallel to increase throughput. Once the + * file contents have been uploaded, rather than calling upload_session/finish, + * use this route to finish all your upload sessions in a single request. + * UploadSessionStartArg.close or UploadSessionAppendArg.close needs to be true + * for the last upload_session/start or upload_session/append_v2 call. The + * maximum size of a file one can upload to an upload session is 350 GB. This + * route will return a job_id immediately and do the async commit job in + * background. Use upload_session/finish_batch/check to check the job status. + * For the same account, this route should be executed serially. That means you + * should not start the next job before current job finishes. We allow up to + * 1000 entries in a single request. Calls to this endpoint will count as data + * transport calls for any Dropbox Business teams with a limit on the number of + * data transport calls allowed per month. For more information, see the Data + * transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionFinishBatch + * @deprecated + * @arg {FilesUploadSessionFinishBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUploadSessionFinishBatch = function (arg) { + return this.request('files/upload_session/finish_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * This route helps you commit many files at once into a user's Dropbox. Use + * upload_session/start and upload_session/append_v2 to upload file contents. We + * recommend uploading many files in parallel to increase throughput. Once the + * file contents have been uploaded, rather than calling upload_session/finish, + * use this route to finish all your upload sessions in a single request. + * UploadSessionStartArg.close or UploadSessionAppendArg.close needs to be true + * for the last upload_session/start or upload_session/append_v2 call of each + * upload session. The maximum size of a file one can upload to an upload + * session is 350 GB. We allow up to 1000 entries in a single request. Calls to + * this endpoint will count as data transport calls for any Dropbox Business + * teams with a limit on the number of data transport calls allowed per month. + * For more information, see the Data transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionFinishBatchV2 + * @arg {FilesUploadSessionFinishBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUploadSessionFinishBatchV2 = function (arg) { + return this.request('files/upload_session/finish_batch_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Returns the status of an asynchronous job for upload_session/finish_batch. If + * success, it returns list of result for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionFinishBatchCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUploadSessionFinishBatchCheck = function (arg) { + return this.request('files/upload_session/finish_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Upload sessions allow you to upload a single file in one or more requests, + * for example where the size of the file is greater than 150 MB. This call + * starts a new upload session with the given data. You can then use + * upload_session/append_v2 to add more data and upload_session/finish to save + * all the data to a file in Dropbox. A single request should not upload more + * than 150 MB. The maximum size of a file one can upload to an upload session + * is 350 GB. An upload session can be used for a maximum of 7 days. Attempting + * to use an UploadSessionStartResult.session_id with upload_session/append_v2 + * or upload_session/finish more than 7 days after its creation will return a + * UploadSessionLookupError.not_found. Calls to this endpoint will count as data + * transport calls for any Dropbox Business teams with a limit on the number of + * data transport calls allowed per month. For more information, see the Data + * transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. By + * default, upload sessions require you to send content of the file in + * sequential order via consecutive upload_session/start, + * upload_session/append_v2, upload_session/finish calls. For better + * performance, you can instead optionally use a UploadSessionType.concurrent + * upload session. To start a new concurrent session, set + * UploadSessionStartArg.session_type to UploadSessionType.concurrent. After + * that, you can send file data in concurrent upload_session/append_v2 requests. + * Finally finish the session with upload_session/finish. There are couple of + * constraints with concurrent sessions to make them work. You can not send data + * with upload_session/start or upload_session/finish call, only with + * upload_session/append_v2 call. Also data uploaded in upload_session/append_v2 + * call must be multiple of 4194304 bytes (except for last + * upload_session/append_v2 with UploadSessionStartArg.close to true, that may + * contain any remaining data). + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionStart + * @arg {FilesUploadSessionStartArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUploadSessionStart = function (arg) { + return this.request('files/upload_session/start', arg, 'user', 'content', 'upload', 'files.content.write'); +}; +/** + * This route starts batch of upload_sessions. Please refer to + * `upload_session/start` usage. Calls to this endpoint will count as data + * transport calls for any Dropbox Business teams with a limit on the number of + * data transport calls allowed per month. For more information, see the Data + * transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionStartBatch + * @arg {FilesUploadSessionStartBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUploadSessionStartBatch = function (arg) { + return this.request('files/upload_session/start_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * This route is used for refreshing the info that is found in the id_token + * during the OIDC flow. This route doesn't require any arguments and will use + * the scopes approved for the given access token. + * Route attributes: + * scope: openid + * @function Dropbox#openidUserinfo + * @arg {OpenidUserInfoArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.openidUserinfo = function (arg) { + return this.request('openid/userinfo', arg, 'user', 'api', 'rpc', 'openid'); +}; +/** + * Marks the given Paper doc as archived. This action can be performed or undone + * by anyone with edit permissions to the doc. Note that this endpoint will + * continue to work for content created by users on the older version of Paper. + * To check which version of Paper a user is on, use /users/features/get_values. + * If the paper_as_files feature is enabled, then the user is running the new + * version of Paper. This endpoint will be retired in September 2020. Refer to + * the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * more information. + * Route attributes: + * scope: files.content.write + * @function Dropbox#paperDocsArchive + * @deprecated + * @arg {PaperRefPaperDoc} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsArchive = function (arg) { + return this.request('paper/docs/archive', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Creates a new Paper doc with the provided content. Note that this endpoint + * will continue to work for content created by users on the older version of + * Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. This endpoint will be retired + * in September 2020. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * more information. + * Route attributes: + * scope: files.content.write + * @function Dropbox#paperDocsCreate + * @deprecated + * @arg {PaperPaperDocCreateArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsCreate = function (arg) { + return this.request('paper/docs/create', arg, 'user', 'api', 'upload', 'files.content.write'); +}; +/** + * Exports and downloads Paper doc either as HTML or markdown. Note that this + * endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: files.content.read + * @function Dropbox#paperDocsDownload + * @deprecated + * @arg {PaperPaperDocExport} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsDownload = function (arg) { + return this.request('paper/docs/download', arg, 'user', 'api', 'download', 'files.content.read'); +}; +/** + * Lists the users who are explicitly invited to the Paper folder in which the + * Paper doc is contained. For private folders all users (including owner) + * shared on the folder are listed and for team folders all non-team users + * shared on the folder are returned. Note that this endpoint will continue to + * work for content created by users on the older version of Paper. To check + * which version of Paper a user is on, use /users/features/get_values. If the + * paper_as_files feature is enabled, then the user is running the new version + * of Paper. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsFolderUsersList + * @deprecated + * @arg {PaperListUsersOnFolderArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsFolderUsersList = function (arg) { + return this.request('paper/docs/folder_users/list', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Once a cursor has been retrieved from docs/folder_users/list, use this to + * paginate through all users on the Paper folder. Note that this endpoint will + * continue to work for content created by users on the older version of Paper. + * To check which version of Paper a user is on, use /users/features/get_values. + * If the paper_as_files feature is enabled, then the user is running the new + * version of Paper. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsFolderUsersListContinue + * @deprecated + * @arg {PaperListUsersOnFolderContinueArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsFolderUsersListContinue = function (arg) { + return this.request('paper/docs/folder_users/list/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Retrieves folder information for the given Paper doc. This includes: - + * folder sharing policy; permissions for subfolders are set by the top-level + * folder. - full 'filepath', i.e. the list of folders (both folderId and + * folderName) from the root folder to the folder directly containing the + * Paper doc. If the Paper doc is not in any folder (aka unfiled) the response + * will be empty. Note that this endpoint will continue to work for content + * created by users on the older version of Paper. To check which version of + * Paper a user is on, use /users/features/get_values. If the paper_as_files + * feature is enabled, then the user is running the new version of Paper. Refer + * to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsGetFolderInfo + * @deprecated + * @arg {PaperRefPaperDoc} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsGetFolderInfo = function (arg) { + return this.request('paper/docs/get_folder_info', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Return the list of all Paper docs according to the argument specifications. + * To iterate over through the full pagination, pass the cursor to + * docs/list/continue. Note that this endpoint will continue to work for content + * created by users on the older version of Paper. To check which version of + * Paper a user is on, use /users/features/get_values. If the paper_as_files + * feature is enabled, then the user is running the new version of Paper. Refer + * to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#paperDocsList + * @deprecated + * @arg {PaperListPaperDocsArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsList = function (arg) { + return this.request('paper/docs/list', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Once a cursor has been retrieved from docs/list, use this to paginate through + * all Paper doc. Note that this endpoint will continue to work for content + * created by users on the older version of Paper. To check which version of + * Paper a user is on, use /users/features/get_values. If the paper_as_files + * feature is enabled, then the user is running the new version of Paper. Refer + * to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#paperDocsListContinue + * @deprecated + * @arg {PaperListPaperDocsContinueArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsListContinue = function (arg) { + return this.request('paper/docs/list/continue', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Permanently deletes the given Paper doc. This operation is final as the doc + * cannot be recovered. This action can be performed only by the doc owner. Note + * that this endpoint will continue to work for content created by users on the + * older version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: files.permanent_delete + * @function Dropbox#paperDocsPermanentlyDelete + * @deprecated + * @arg {PaperRefPaperDoc} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsPermanentlyDelete = function (arg) { + return this.request('paper/docs/permanently_delete', arg, 'user', 'api', 'rpc', 'files.permanent_delete'); +}; +/** + * Gets the default sharing policy for the given Paper doc. Note that this + * endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsSharingPolicyGet + * @deprecated + * @arg {PaperRefPaperDoc} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsSharingPolicyGet = function (arg) { + return this.request('paper/docs/sharing_policy/get', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Sets the default sharing policy for the given Paper doc. The default + * 'team_sharing_policy' can be changed only by teams, omit this field for + * personal accounts. The 'public_sharing_policy' policy can't be set to the + * value 'disabled' because this setting can be changed only via the team admin + * console. Note that this endpoint will continue to work for content created by + * users on the older version of Paper. To check which version of Paper a user + * is on, use /users/features/get_values. If the paper_as_files feature is + * enabled, then the user is running the new version of Paper. Refer to the + * Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.write + * @function Dropbox#paperDocsSharingPolicySet + * @deprecated + * @arg {PaperPaperDocSharingPolicy} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsSharingPolicySet = function (arg) { + return this.request('paper/docs/sharing_policy/set', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Updates an existing Paper doc with the provided content. Note that this + * endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. This endpoint will be retired + * in September 2020. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * more information. + * Route attributes: + * scope: files.content.write + * @function Dropbox#paperDocsUpdate + * @deprecated + * @arg {PaperPaperDocUpdateArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsUpdate = function (arg) { + return this.request('paper/docs/update', arg, 'user', 'api', 'upload', 'files.content.write'); +}; +/** + * Allows an owner or editor to add users to a Paper doc or change their + * permissions using their email address or Dropbox account ID. The doc owner's + * permissions cannot be changed. Note that this endpoint will continue to work + * for content created by users on the older version of Paper. To check which + * version of Paper a user is on, use /users/features/get_values. If the + * paper_as_files feature is enabled, then the user is running the new version + * of Paper. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.write + * @function Dropbox#paperDocsUsersAdd + * @deprecated + * @arg {PaperAddPaperDocUser} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + +routes.paperDocsUsersAdd = function (arg) { + return this.request('paper/docs/users/add', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Lists all users who visited the Paper doc or users with explicit access. This + * call excludes users who have been removed. The list is sorted by the date of + * the visit or the share date. The list will include both users, the explicitly + * shared ones as well as those who came in using the Paper url link. Note that + * this endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsUsersList + * @deprecated + * @arg {PaperListUsersOnPaperDocArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsUsersList = function (arg) { + return this.request('paper/docs/users/list', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Once a cursor has been retrieved from docs/users/list, use this to paginate + * through all users on the Paper doc. Note that this endpoint will continue to + * work for content created by users on the older version of Paper. To check + * which version of Paper a user is on, use /users/features/get_values. If the + * paper_as_files feature is enabled, then the user is running the new version + * of Paper. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsUsersListContinue + * @deprecated + * @arg {PaperListUsersOnPaperDocContinueArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsUsersListContinue = function (arg) { + return this.request('paper/docs/users/list/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Allows an owner or editor to remove users from a Paper doc using their email + * address or Dropbox account ID. The doc owner cannot be removed. Note that + * this endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: sharing.write + * @function Dropbox#paperDocsUsersRemove + * @deprecated + * @arg {PaperRemovePaperDocUser} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsUsersRemove = function (arg) { + return this.request('paper/docs/users/remove', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Create a new Paper folder with the provided info. Note that this endpoint + * will continue to work for content created by users on the older version of + * Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: files.content.write + * @function Dropbox#paperFoldersCreate + * @deprecated + * @arg {PaperPaperFolderCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperFoldersCreate = function (arg) { + return this.request('paper/folders/create', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Adds specified members to a file. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingAddFileMember + * @arg {SharingAddFileMemberArgs} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + +routes.sharingAddFileMember = function (arg) { + return this.request('sharing/add_file_member', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Allows an owner or editor (if the ACL update policy allows) of a shared + * folder to add another member. For the new member to get access to all the + * functionality for this folder, you will need to call mount_folder on their + * behalf. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingAddFolderMember + * @arg {SharingAddFolderMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingAddFolderMember = function (arg) { + return this.request('sharing/add_folder_member', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Returns the status of an asynchronous job. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCheckJobStatus + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingCheckJobStatus = function (arg) { + return this.request('sharing/check_job_status', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Returns the status of an asynchronous job for sharing a folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCheckRemoveMemberJobStatus + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingCheckRemoveMemberJobStatus = function (arg) { + return this.request('sharing/check_remove_member_job_status', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Returns the status of an asynchronous job for sharing a folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCheckShareJobStatus + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingCheckShareJobStatus = function (arg) { + return this.request('sharing/check_share_job_status', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Create a shared link. If a shared link already exists for the given path, + * that link is returned. Previously, it was technically possible to break a + * shared link by moving or renaming the corresponding file or folder. In the + * future, this will no longer be the case, so your app shouldn't rely on this + * behavior. Instead, if your app needs to revoke a shared link, use + * revoke_shared_link. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCreateSharedLink + * @deprecated + * @arg {SharingCreateSharedLinkArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingCreateSharedLink = function (arg) { + return this.request('sharing/create_shared_link', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Create a shared link with custom settings. If no settings are given then the + * default visibility is RequestedVisibility.public (The resolved visibility, + * though, may depend on other aspects such as team and shared folder settings). + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCreateSharedLinkWithSettings + * @arg {SharingCreateSharedLinkWithSettingsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingCreateSharedLinkWithSettings = function (arg) { + return this.request('sharing/create_shared_link_with_settings', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Returns shared file metadata. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetFileMetadata + * @arg {SharingGetFileMetadataArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingGetFileMetadata = function (arg) { + return this.request('sharing/get_file_metadata', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Returns shared file metadata. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetFileMetadataBatch + * @arg {SharingGetFileMetadataBatchArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + +routes.sharingGetFileMetadataBatch = function (arg) { + return this.request('sharing/get_file_metadata/batch', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Returns shared folder metadata by its folder ID. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetFolderMetadata + * @arg {SharingGetMetadataArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingGetFolderMetadata = function (arg) { + return this.request('sharing/get_folder_metadata', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Download the shared link's file from a user's Dropbox. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetSharedLinkFile + * @arg {Object} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingGetSharedLinkFile = function (arg) { + return this.request('sharing/get_shared_link_file', arg, 'user', 'content', 'download', 'sharing.read'); +}; +/** + * Get the shared link's metadata. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetSharedLinkMetadata + * @arg {SharingGetSharedLinkMetadataArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingGetSharedLinkMetadata = function (arg) { + return this.request('sharing/get_shared_link_metadata', arg, 'app, user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Returns a list of LinkMetadata objects for this user, including collection + * links. If no path is given, returns a list of all shared links for the + * current user, including collection links, up to a maximum of 1000 links. If a + * non-empty path is given, returns a list of all shared links that allow access + * to the given path. Collection links are never returned in this case. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetSharedLinks + * @deprecated + * @arg {SharingGetSharedLinksArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingGetSharedLinks = function (arg) { + return this.request('sharing/get_shared_links', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Use to obtain the members who have been invited to a file, both inherited and + * uninherited members. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFileMembers + * @arg {SharingListFileMembersArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListFileMembers = function (arg) { + return this.request('sharing/list_file_members', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Get members of multiple files at once. The arguments to this route are more + * limited, and the limit on query result size per file is more strict. To + * customize the results more, use the individual file endpoint. Inherited users + * and groups are not included in the result, and permissions are not returned + * for this endpoint. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFileMembersBatch + * @arg {SharingListFileMembersBatchArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + +routes.sharingListFileMembersBatch = function (arg) { + return this.request('sharing/list_file_members/batch', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Once a cursor has been retrieved from list_file_members or + * list_file_members/batch, use this to paginate through all shared file + * members. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFileMembersContinue + * @arg {SharingListFileMembersContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListFileMembersContinue = function (arg) { + return this.request('sharing/list_file_members/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Returns shared folder membership by its folder ID. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFolderMembers + * @arg {SharingListFolderMembersArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListFolderMembers = function (arg) { + return this.request('sharing/list_folder_members', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Once a cursor has been retrieved from list_folder_members, use this to + * paginate through all shared folder members. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFolderMembersContinue + * @arg {SharingListFolderMembersContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListFolderMembersContinue = function (arg) { + return this.request('sharing/list_folder_members/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Return the list of all shared folders the current user has access to. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFolders + * @arg {SharingListFoldersArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListFolders = function (arg) { + return this.request('sharing/list_folders', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Once a cursor has been retrieved from list_folders, use this to paginate + * through all shared folders. The cursor must come from a previous call to + * list_folders or list_folders/continue. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFoldersContinue + * @arg {SharingListFoldersContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListFoldersContinue = function (arg) { + return this.request('sharing/list_folders/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Return the list of all shared folders the current user can mount or unmount. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListMountableFolders + * @arg {SharingListFoldersArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListMountableFolders = function (arg) { + return this.request('sharing/list_mountable_folders', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Once a cursor has been retrieved from list_mountable_folders, use this to + * paginate through all mountable shared folders. The cursor must come from a + * previous call to list_mountable_folders or list_mountable_folders/continue. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListMountableFoldersContinue + * @arg {SharingListFoldersContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListMountableFoldersContinue = function (arg) { + return this.request('sharing/list_mountable_folders/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Returns a list of all files shared with current user. Does not include files + * the user has received via shared folders, and does not include unclaimed + * invitations. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListReceivedFiles + * @arg {SharingListFilesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListReceivedFiles = function (arg) { + return this.request('sharing/list_received_files', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Get more results with a cursor from list_received_files. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListReceivedFilesContinue + * @arg {SharingListFilesContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListReceivedFilesContinue = function (arg) { + return this.request('sharing/list_received_files/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * List shared links of this user. If no path is given, returns a list of all + * shared links for the current user. For members of business teams using team + * space and member folders, returns all shared links in the team member's home + * folder unless the team space ID is specified in the request header. For more + * information, refer to the Namespace Guide + * https://www.dropbox.com/developers/reference/namespace-guide. If a non-empty + * path is given, returns a list of all shared links that allow access to the + * given path - direct links to the given path and links to parent folders of + * the given path. Links to parent folders can be suppressed by setting + * direct_only to true. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListSharedLinks + * @arg {SharingListSharedLinksArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListSharedLinks = function (arg) { + return this.request('sharing/list_shared_links', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Modify the shared link's settings. If the requested visibility conflict with + * the shared links policy of the team or the shared folder (in case the linked + * file is part of a shared folder) then the LinkPermissions.resolved_visibility + * of the returned SharedLinkMetadata will reflect the actual visibility of the + * shared link and the LinkPermissions.requested_visibility will reflect the + * requested visibility. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingModifySharedLinkSettings + * @arg {SharingModifySharedLinkSettingsArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingModifySharedLinkSettings = function (arg) { + return this.request('sharing/modify_shared_link_settings', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * The current user mounts the designated folder. Mount a shared folder for a + * user after they have been added as a member. Once mounted, the shared folder + * will appear in their Dropbox. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingMountFolder + * @arg {SharingMountFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingMountFolder = function (arg) { + return this.request('sharing/mount_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * The current user relinquishes their membership in the designated file. Note + * that the current user may still have inherited access to this file through + * the parent folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRelinquishFileMembership + * @arg {SharingRelinquishFileMembershipArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingRelinquishFileMembership = function (arg) { + return this.request('sharing/relinquish_file_membership', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * The current user relinquishes their membership in the designated shared + * folder and will no longer have access to the folder. A folder owner cannot + * relinquish membership in their own folder. This will run synchronously if + * leave_a_copy is false, and asynchronously if leave_a_copy is true. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRelinquishFolderMembership + * @arg {SharingRelinquishFolderMembershipArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingRelinquishFolderMembership = function (arg) { + return this.request('sharing/relinquish_folder_membership', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Identical to remove_file_member_2 but with less information returned. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRemoveFileMember + * @deprecated + * @arg {SharingRemoveFileMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingRemoveFileMember = function (arg) { + return this.request('sharing/remove_file_member', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Removes a specified member from the file. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRemoveFileMember2 + * @arg {SharingRemoveFileMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingRemoveFileMember2 = function (arg) { + return this.request('sharing/remove_file_member_2', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Allows an owner or editor (if the ACL update policy allows) of a shared + * folder to remove another member. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRemoveFolderMember + * @arg {SharingRemoveFolderMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingRemoveFolderMember = function (arg) { + return this.request('sharing/remove_folder_member', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Revoke a shared link. Note that even after revoking a shared link to a file, + * the file may be accessible if there are shared links leading to any of the + * file parent folders. To list all shared links that enable access to a + * specific file, you can use the list_shared_links with the file as the + * ListSharedLinksArg.path argument. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRevokeSharedLink + * @arg {SharingRevokeSharedLinkArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingRevokeSharedLink = function (arg) { + return this.request('sharing/revoke_shared_link', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Change the inheritance policy of an existing Shared Folder. Only permitted + * for shared folders in a shared team root. If a ShareFolderLaunch.async_job_id + * is returned, you'll need to call check_share_job_status until the action + * completes to get the metadata for the folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingSetAccessInheritance + * @arg {SharingSetAccessInheritanceArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingSetAccessInheritance = function (arg) { + return this.request('sharing/set_access_inheritance', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Share a folder with collaborators. Most sharing will be completed + * synchronously. Large folders will be completed asynchronously. To make + * testing the async case repeatable, set `ShareFolderArg.force_async`. If a + * ShareFolderLaunch.async_job_id is returned, you'll need to call + * check_share_job_status until the action completes to get the metadata for the + * folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingShareFolder + * @arg {SharingShareFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingShareFolder = function (arg) { + return this.request('sharing/share_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Transfer ownership of a shared folder to a member of the shared folder. User + * must have AccessLevel.owner access to the shared folder to perform a + * transfer. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingTransferFolder + * @arg {SharingTransferFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingTransferFolder = function (arg) { + return this.request('sharing/transfer_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * The current user unmounts the designated folder. They can re-mount the folder + * at a later time using mount_folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUnmountFolder + * @arg {SharingUnmountFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingUnmountFolder = function (arg) { + return this.request('sharing/unmount_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Remove all members from this file. Does not remove inherited members. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUnshareFile + * @arg {SharingUnshareFileArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingUnshareFile = function (arg) { + return this.request('sharing/unshare_file', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Allows a shared folder owner to unshare the folder. You'll need to call + * check_job_status to determine if the action has completed successfully. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUnshareFolder + * @arg {SharingUnshareFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingUnshareFolder = function (arg) { + return this.request('sharing/unshare_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Changes a member's access on a shared file. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUpdateFileMember + * @arg {SharingUpdateFileMemberArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingUpdateFileMember = function (arg) { + return this.request('sharing/update_file_member', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Allows an owner or editor of a shared folder to update another member's + * permissions. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUpdateFolderMember + * @arg {SharingUpdateFolderMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingUpdateFolderMember = function (arg) { + return this.request('sharing/update_folder_member', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Update the sharing policies for a shared folder. User must have + * AccessLevel.owner access to the shared folder to update its policies. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUpdateFolderPolicy + * @arg {SharingUpdateFolderPolicyArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingUpdateFolderPolicy = function (arg) { + return this.request('sharing/update_folder_policy', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * List all device sessions of a team's member. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamDevicesListMemberDevices + * @arg {TeamListMemberDevicesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamDevicesListMemberDevices = function (arg) { + return this.request('team/devices/list_member_devices', arg, 'team', 'api', 'rpc', 'sessions.list'); +}; +/** + * List all device sessions of a team. Permission : Team member file access. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamDevicesListMembersDevices + * @arg {TeamListMembersDevicesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamDevicesListMembersDevices = function (arg) { + return this.request('team/devices/list_members_devices', arg, 'team', 'api', 'rpc', 'sessions.list'); +}; +/** + * List all device sessions of a team. Permission : Team member file access. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamDevicesListTeamDevices + * @deprecated + * @arg {TeamListTeamDevicesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamDevicesListTeamDevices = function (arg) { + return this.request('team/devices/list_team_devices', arg, 'team', 'api', 'rpc', 'sessions.list'); +}; +/** + * Revoke a device session of a team's member. + * Route attributes: + * scope: sessions.modify + * @function Dropbox#teamDevicesRevokeDeviceSession + * @arg {TeamRevokeDeviceSessionArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamDevicesRevokeDeviceSession = function (arg) { + return this.request('team/devices/revoke_device_session', arg, 'team', 'api', 'rpc', 'sessions.modify'); +}; +/** + * Revoke a list of device sessions of team members. + * Route attributes: + * scope: sessions.modify + * @function Dropbox#teamDevicesRevokeDeviceSessionBatch + * @arg {TeamRevokeDeviceSessionBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamDevicesRevokeDeviceSessionBatch = function (arg) { + return this.request('team/devices/revoke_device_session_batch', arg, 'team', 'api', 'rpc', 'sessions.modify'); +}; +/** + * Get the values for one or more featues. This route allows you to check your + * account's capability for what feature you can access or what value you have + * for certain features. Permission : Team information. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamFeaturesGetValues + * @arg {TeamFeaturesGetValuesBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamFeaturesGetValues = function (arg) { + return this.request('team/features/get_values', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; +/** + * Retrieves information about a team. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamGetInfo + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGetInfo = function () { + return this.request('team/get_info', null, 'team', 'api', 'rpc', 'team_info.read'); +}; +/** + * Creates a new, empty group, with a requested name. Permission : Team member + * management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsCreate + * @arg {TeamGroupCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsCreate = function (arg) { + return this.request('team/groups/create', arg, 'team', 'api', 'rpc', 'groups.write'); +}; +/** + * Deletes a group. The group is deleted immediately. However the revoking of + * group-owned resources may take additional time. Use the groups/job_status/get + * to determine whether this process has completed. Permission : Team member + * management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsDelete + * @arg {TeamGroupSelector} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsDelete = function (arg) { + return this.request('team/groups/delete', arg, 'team', 'api', 'rpc', 'groups.write'); +}; +/** + * Retrieves information about one or more groups. Note that the optional field + * GroupFullInfo.members is not returned for system-managed groups. Permission : + * Team Information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsGetInfo + * @arg {TeamGroupsSelector} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsGetInfo = function (arg) { + return this.request('team/groups/get_info', arg, 'team', 'api', 'rpc', 'groups.read'); +}; +/** + * Once an async_job_id is returned from groups/delete, groups/members/add , or + * groups/members/remove use this method to poll the status of granting/revoking + * group members' access to group-owned resources. Permission : Team member + * management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsJobStatusGet + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsJobStatusGet = function (arg) { + return this.request('team/groups/job_status/get', arg, 'team', 'api', 'rpc', 'groups.write'); +}; +/** + * Lists groups on a team. Permission : Team Information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsList + * @arg {TeamGroupsListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsList = function (arg) { + return this.request('team/groups/list', arg, 'team', 'api', 'rpc', 'groups.read'); +}; +/** + * Once a cursor has been retrieved from groups/list, use this to paginate + * through all groups. Permission : Team Information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsListContinue + * @arg {TeamGroupsListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsListContinue = function (arg) { + return this.request('team/groups/list/continue', arg, 'team', 'api', 'rpc', 'groups.read'); +}; +/** + * Adds members to a group. The members are added immediately. However the + * granting of group-owned resources may take additional time. Use the + * groups/job_status/get to determine whether this process has completed. + * Permission : Team member management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsMembersAdd + * @arg {TeamGroupMembersAddArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsMembersAdd = function (arg) { + return this.request('team/groups/members/add', arg, 'team', 'api', 'rpc', 'groups.write'); +}; +/** + * Lists members of a group. Permission : Team Information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsMembersList + * @arg {TeamGroupsMembersListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsMembersList = function (arg) { + return this.request('team/groups/members/list', arg, 'team', 'api', 'rpc', 'groups.read'); +}; +/** + * Once a cursor has been retrieved from groups/members/list, use this to + * paginate through all members of the group. Permission : Team information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsMembersListContinue + * @arg {TeamGroupsMembersListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsMembersListContinue = function (arg) { + return this.request('team/groups/members/list/continue', arg, 'team', 'api', 'rpc', 'groups.read'); +}; +/** + * Removes members from a group. The members are removed immediately. However + * the revoking of group-owned resources may take additional time. Use the + * groups/job_status/get to determine whether this process has completed. This + * method permits removing the only owner of a group, even in cases where this + * is not possible via the web client. Permission : Team member management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsMembersRemove + * @arg {TeamGroupMembersRemoveArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsMembersRemove = function (arg) { + return this.request('team/groups/members/remove', arg, 'team', 'api', 'rpc', 'groups.write'); +}; +/** + * Sets a member's access type in a group. Permission : Team member management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsMembersSetAccessType + * @arg {TeamGroupMembersSetAccessTypeArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsMembersSetAccessType = function (arg) { + return this.request('team/groups/members/set_access_type', arg, 'team', 'api', 'rpc', 'groups.write'); +}; +/** + * Updates a group's name and/or external ID. Permission : Team member + * management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsUpdate + * @arg {TeamGroupUpdateArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsUpdate = function (arg) { + return this.request('team/groups/update', arg, 'team', 'api', 'rpc', 'groups.write'); +}; +/** + * Creates new legal hold policy. Note: Legal Holds is a paid add-on. Not all + * teams have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsCreatePolicy + * @arg {TeamLegalHoldsPolicyCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLegalHoldsCreatePolicy = function (arg) { + return this.request('team/legal_holds/create_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; +/** + * Gets a legal hold by Id. Note: Legal Holds is a paid add-on. Not all teams + * have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsGetPolicy + * @arg {TeamLegalHoldsGetPolicyArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLegalHoldsGetPolicy = function (arg) { + return this.request('team/legal_holds/get_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; +/** + * List the file metadata that's under the hold. Note: Legal Holds is a paid + * add-on. Not all teams have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsListHeldRevisions + * @arg {TeamLegalHoldsListHeldRevisionsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLegalHoldsListHeldRevisions = function (arg) { + return this.request('team/legal_holds/list_held_revisions', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; +/** + * Continue listing the file metadata that's under the hold. Note: Legal Holds + * is a paid add-on. Not all teams have the feature. Permission : Team member + * file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsListHeldRevisionsContinue + * @arg {TeamLegalHoldsListHeldRevisionsContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLegalHoldsListHeldRevisionsContinue = function (arg) { + return this.request('team/legal_holds/list_held_revisions_continue', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; +/** + * Lists legal holds on a team. Note: Legal Holds is a paid add-on. Not all + * teams have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsListPolicies + * @arg {TeamLegalHoldsListPoliciesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLegalHoldsListPolicies = function (arg) { + return this.request('team/legal_holds/list_policies', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; +/** + * Releases a legal hold by Id. Note: Legal Holds is a paid add-on. Not all + * teams have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsReleasePolicy + * @arg {TeamLegalHoldsPolicyReleaseArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLegalHoldsReleasePolicy = function (arg) { + return this.request('team/legal_holds/release_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; +/** + * Updates a legal hold. Note: Legal Holds is a paid add-on. Not all teams have + * the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsUpdatePolicy + * @arg {TeamLegalHoldsPolicyUpdateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLegalHoldsUpdatePolicy = function (arg) { + return this.request('team/legal_holds/update_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; +/** + * List all linked applications of the team member. Note, this endpoint does not + * list any team-linked applications. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamLinkedAppsListMemberLinkedApps + * @arg {TeamListMemberAppsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLinkedAppsListMemberLinkedApps = function (arg) { + return this.request('team/linked_apps/list_member_linked_apps', arg, 'team', 'api', 'rpc', 'sessions.list'); +}; +/** + * List all applications linked to the team members' accounts. Note, this + * endpoint does not list any team-linked applications. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamLinkedAppsListMembersLinkedApps + * @arg {TeamListMembersAppsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLinkedAppsListMembersLinkedApps = function (arg) { + return this.request('team/linked_apps/list_members_linked_apps', arg, 'team', 'api', 'rpc', 'sessions.list'); +}; +/** + * List all applications linked to the team members' accounts. Note, this + * endpoint doesn't list any team-linked applications. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamLinkedAppsListTeamLinkedApps + * @deprecated + * @arg {TeamListTeamAppsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLinkedAppsListTeamLinkedApps = function (arg) { + return this.request('team/linked_apps/list_team_linked_apps', arg, 'team', 'api', 'rpc', 'sessions.list'); +}; +/** + * Revoke a linked application of the team member. + * Route attributes: + * scope: sessions.modify + * @function Dropbox#teamLinkedAppsRevokeLinkedApp + * @arg {TeamRevokeLinkedApiAppArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLinkedAppsRevokeLinkedApp = function (arg) { + return this.request('team/linked_apps/revoke_linked_app', arg, 'team', 'api', 'rpc', 'sessions.modify'); +}; +/** + * Revoke a list of linked applications of the team members. + * Route attributes: + * scope: sessions.modify + * @function Dropbox#teamLinkedAppsRevokeLinkedAppBatch + * @arg {TeamRevokeLinkedApiAppBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLinkedAppsRevokeLinkedAppBatch = function (arg) { + return this.request('team/linked_apps/revoke_linked_app_batch', arg, 'team', 'api', 'rpc', 'sessions.modify'); +}; +/** + * Add users to member space limits excluded users list. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMemberSpaceLimitsExcludedUsersAdd + * @arg {TeamExcludedUsersUpdateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMemberSpaceLimitsExcludedUsersAdd = function (arg) { + return this.request('team/member_space_limits/excluded_users/add', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * List member space limits excluded users. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMemberSpaceLimitsExcludedUsersList + * @arg {TeamExcludedUsersListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMemberSpaceLimitsExcludedUsersList = function (arg) { + return this.request('team/member_space_limits/excluded_users/list', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Continue listing member space limits excluded users. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMemberSpaceLimitsExcludedUsersListContinue + * @arg {TeamExcludedUsersListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMemberSpaceLimitsExcludedUsersListContinue = function (arg) { + return this.request('team/member_space_limits/excluded_users/list/continue', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Remove users from member space limits excluded users list. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMemberSpaceLimitsExcludedUsersRemove + * @arg {TeamExcludedUsersUpdateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMemberSpaceLimitsExcludedUsersRemove = function (arg) { + return this.request('team/member_space_limits/excluded_users/remove', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Get users custom quota. Returns none as the custom quota if none was set. A + * maximum of 1000 members can be specified in a single call. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMemberSpaceLimitsGetCustomQuota + * @arg {TeamCustomQuotaUsersArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + +routes.teamMemberSpaceLimitsGetCustomQuota = function (arg) { + return this.request('team/member_space_limits/get_custom_quota', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Remove users custom quota. A maximum of 1000 members can be specified in a + * single call. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMemberSpaceLimitsRemoveCustomQuota + * @arg {TeamCustomQuotaUsersArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + +routes.teamMemberSpaceLimitsRemoveCustomQuota = function (arg) { + return this.request('team/member_space_limits/remove_custom_quota', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Set users custom quota. Custom quota has to be at least 15GB. A maximum of + * 1000 members can be specified in a single call. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMemberSpaceLimitsSetCustomQuota + * @arg {TeamSetCustomQuotaArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + +routes.teamMemberSpaceLimitsSetCustomQuota = function (arg) { + return this.request('team/member_space_limits/set_custom_quota', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Adds members to a team. Permission : Team member management A maximum of 20 + * members can be specified in a single call. If no Dropbox account exists with + * the email address specified, a new Dropbox account will be created with the + * given email address, and that account will be invited to the team. If a + * personal Dropbox account exists with the email address specified in the call, + * this call will create a placeholder Dropbox account for the user on the team + * and send an email inviting the user to migrate their existing personal + * account onto the team. Team member management apps are required to set an + * initial given_name and surname for a user to use in the team invitation and + * for 'Perform as team member' actions taken on the user before they become + * 'active'. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersAddV2 + * @arg {TeamMembersAddV2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersAddV2 = function (arg) { + return this.request('team/members/add_v2', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Adds members to a team. Permission : Team member management A maximum of 20 + * members can be specified in a single call. If no Dropbox account exists with + * the email address specified, a new Dropbox account will be created with the + * given email address, and that account will be invited to the team. If a + * personal Dropbox account exists with the email address specified in the call, + * this call will create a placeholder Dropbox account for the user on the team + * and send an email inviting the user to migrate their existing personal + * account onto the team. Team member management apps are required to set an + * initial given_name and surname for a user to use in the team invitation and + * for 'Perform as team member' actions taken on the user before they become + * 'active'. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersAdd + * @arg {TeamMembersAddArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersAdd = function (arg) { + return this.request('team/members/add', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Once an async_job_id is returned from members/add_v2 , use this to poll the + * status of the asynchronous request. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersAddJobStatusGetV2 + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersAddJobStatusGetV2 = function (arg) { + return this.request('team/members/add/job_status/get_v2', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Once an async_job_id is returned from members/add , use this to poll the + * status of the asynchronous request. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersAddJobStatusGet + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersAddJobStatusGet = function (arg) { + return this.request('team/members/add/job_status/get', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Deletes a team member's profile photo. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersDeleteProfilePhotoV2 + * @arg {TeamMembersDeleteProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersDeleteProfilePhotoV2 = function (arg) { + return this.request('team/members/delete_profile_photo_v2', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Deletes a team member's profile photo. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersDeleteProfilePhoto + * @arg {TeamMembersDeleteProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersDeleteProfilePhoto = function (arg) { + return this.request('team/members/delete_profile_photo', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Get available TeamMemberRoles for the connected team. To be used with + * members/set_admin_permissions_v2. Permission : Team member management. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersGetAvailableTeamMemberRoles + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersGetAvailableTeamMemberRoles = function () { + return this.request('team/members/get_available_team_member_roles', null, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Returns information about multiple team members. Permission : Team + * information This endpoint will return MembersGetInfoItem.id_not_found, for + * IDs (or emails) that cannot be matched to a valid team member. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersGetInfoV2 + * @arg {TeamMembersGetInfoV2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersGetInfoV2 = function (arg) { + return this.request('team/members/get_info_v2', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Returns information about multiple team members. Permission : Team + * information This endpoint will return MembersGetInfoItem.id_not_found, for + * IDs (or emails) that cannot be matched to a valid team member. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersGetInfo + * @arg {TeamMembersGetInfoArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersGetInfo = function (arg) { + return this.request('team/members/get_info', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Lists members of a team. Permission : Team information. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersListV2 + * @arg {TeamMembersListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersListV2 = function (arg) { + return this.request('team/members/list_v2', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Lists members of a team. Permission : Team information. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersList + * @arg {TeamMembersListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersList = function (arg) { + return this.request('team/members/list', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Once a cursor has been retrieved from members/list_v2, use this to paginate + * through all team members. Permission : Team information. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersListContinueV2 + * @arg {TeamMembersListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersListContinueV2 = function (arg) { + return this.request('team/members/list/continue_v2', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Once a cursor has been retrieved from members/list, use this to paginate + * through all team members. Permission : Team information. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersListContinue + * @arg {TeamMembersListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersListContinue = function (arg) { + return this.request('team/members/list/continue', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Moves removed member's files to a different member. This endpoint initiates + * an asynchronous job. To obtain the final result of the job, the client should + * periodically poll members/move_former_member_files/job_status/check. + * Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersMoveFormerMemberFiles + * @arg {TeamMembersDataTransferArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersMoveFormerMemberFiles = function (arg) { + return this.request('team/members/move_former_member_files', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Once an async_job_id is returned from members/move_former_member_files , use + * this to poll the status of the asynchronous request. Permission : Team member + * management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersMoveFormerMemberFilesJobStatusCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersMoveFormerMemberFilesJobStatusCheck = function (arg) { + return this.request('team/members/move_former_member_files/job_status/check', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Recover a deleted member. Permission : Team member management Exactly one of + * team_member_id, email, or external_id must be provided to identify the user + * account. + * Route attributes: + * scope: members.delete + * @function Dropbox#teamMembersRecover + * @arg {TeamMembersRecoverArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersRecover = function (arg) { + return this.request('team/members/recover', arg, 'team', 'api', 'rpc', 'members.delete'); +}; +/** + * Removes a member from a team. Permission : Team member management Exactly one + * of team_member_id, email, or external_id must be provided to identify the + * user account. Accounts can be recovered via members/recover for a 7 day + * period or until the account has been permanently deleted or transferred to + * another account (whichever comes first). Calling members/add while a user is + * still recoverable on your team will return with + * MemberAddResult.user_already_on_team. Accounts can have their files + * transferred via the admin console for a limited time, based on the version + * history length associated with the team (180 days for most teams). This + * endpoint may initiate an asynchronous job. To obtain the final result of the + * job, the client should periodically poll members/remove/job_status/get. + * Route attributes: + * scope: members.delete + * @function Dropbox#teamMembersRemove + * @arg {TeamMembersRemoveArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersRemove = function (arg) { + return this.request('team/members/remove', arg, 'team', 'api', 'rpc', 'members.delete'); +}; +/** + * Once an async_job_id is returned from members/remove , use this to poll the + * status of the asynchronous request. Permission : Team member management. + * Route attributes: + * scope: members.delete + * @function Dropbox#teamMembersRemoveJobStatusGet + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersRemoveJobStatusGet = function (arg) { + return this.request('team/members/remove/job_status/get', arg, 'team', 'api', 'rpc', 'members.delete'); +}; +/** + * Add secondary emails to users. Permission : Team member management. Emails + * that are on verified domains will be verified automatically. For each email + * address not on a verified domain a verification email will be sent. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSecondaryEmailsAdd + * @arg {TeamAddSecondaryEmailsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSecondaryEmailsAdd = function (arg) { + return this.request('team/members/secondary_emails/add', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Delete secondary emails from users Permission : Team member management. Users + * will be notified of deletions of verified secondary emails at both the + * secondary email and their primary email. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSecondaryEmailsDelete + * @arg {TeamDeleteSecondaryEmailsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSecondaryEmailsDelete = function (arg) { + return this.request('team/members/secondary_emails/delete', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Resend secondary email verification emails. Permission : Team member + * management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSecondaryEmailsResendVerificationEmails + * @arg {TeamResendVerificationEmailArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSecondaryEmailsResendVerificationEmails = function (arg) { + return this.request('team/members/secondary_emails/resend_verification_emails', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Sends welcome email to pending team member. Permission : Team member + * management Exactly one of team_member_id, email, or external_id must be + * provided to identify the user account. No-op if team member is not pending. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSendWelcomeEmail + * @arg {TeamUserSelectorArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSendWelcomeEmail = function (arg) { + return this.request('team/members/send_welcome_email', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Updates a team member's permissions. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetAdminPermissionsV2 + * @arg {TeamMembersSetPermissions2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSetAdminPermissionsV2 = function (arg) { + return this.request('team/members/set_admin_permissions_v2', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Updates a team member's permissions. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetAdminPermissions + * @arg {TeamMembersSetPermissionsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSetAdminPermissions = function (arg) { + return this.request('team/members/set_admin_permissions', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Updates a team member's profile. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetProfileV2 + * @arg {TeamMembersSetProfileArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSetProfileV2 = function (arg) { + return this.request('team/members/set_profile_v2', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Updates a team member's profile. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetProfile + * @arg {TeamMembersSetProfileArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSetProfile = function (arg) { + return this.request('team/members/set_profile', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Updates a team member's profile photo. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetProfilePhotoV2 + * @arg {TeamMembersSetProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSetProfilePhotoV2 = function (arg) { + return this.request('team/members/set_profile_photo_v2', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Updates a team member's profile photo. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetProfilePhoto + * @arg {TeamMembersSetProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSetProfilePhoto = function (arg) { + return this.request('team/members/set_profile_photo', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Suspend a member from a team. Permission : Team member management Exactly one + * of team_member_id, email, or external_id must be provided to identify the + * user account. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSuspend + * @arg {TeamMembersDeactivateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSuspend = function (arg) { + return this.request('team/members/suspend', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Unsuspend a member from a team. Permission : Team member management Exactly + * one of team_member_id, email, or external_id must be provided to identify the + * user account. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersUnsuspend + * @arg {TeamMembersUnsuspendArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersUnsuspend = function (arg) { + return this.request('team/members/unsuspend', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Returns a list of all team-accessible namespaces. This list includes team + * folders, shared folders containing team members, team members' home + * namespaces, and team members' app folders. Home namespaces and app folders + * are always owned by this team or members of the team, but shared folders may + * be owned by other users or other teams. Duplicates may occur in the list. + * Route attributes: + * scope: team_data.member + * @function Dropbox#teamNamespacesList + * @arg {TeamTeamNamespacesListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamNamespacesList = function (arg) { + return this.request('team/namespaces/list', arg, 'team', 'api', 'rpc', 'team_data.member'); +}; +/** + * Once a cursor has been retrieved from namespaces/list, use this to paginate + * through all team-accessible namespaces. Duplicates may occur in the list. + * Route attributes: + * scope: team_data.member + * @function Dropbox#teamNamespacesListContinue + * @arg {TeamTeamNamespacesListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamNamespacesListContinue = function (arg) { + return this.request('team/namespaces/list/continue', arg, 'team', 'api', 'rpc', 'team_data.member'); +}; +/** + * Permission : Team member file access. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#teamPropertiesTemplateAdd + * @deprecated + * @arg {FilePropertiesAddTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamPropertiesTemplateAdd = function (arg) { + return this.request('team/properties/template/add', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; +/** + * Permission : Team member file access. The scope for the route is + * files.team_metadata.write. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#teamPropertiesTemplateGet + * @deprecated + * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamPropertiesTemplateGet = function (arg) { + return this.request('team/properties/template/get', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; +/** + * Permission : Team member file access. The scope for the route is + * files.team_metadata.write. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#teamPropertiesTemplateList + * @deprecated + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamPropertiesTemplateList = function () { + return this.request('team/properties/template/list', null, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; +/** + * Permission : Team member file access. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#teamPropertiesTemplateUpdate + * @deprecated + * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamPropertiesTemplateUpdate = function (arg) { + return this.request('team/properties/template/update', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; +/** + * Retrieves reporting data about a team's user activity. Deprecated: Will be + * removed on July 1st 2021. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamReportsGetActivity + * @deprecated + * @arg {TeamDateRange} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamReportsGetActivity = function (arg) { + return this.request('team/reports/get_activity', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; +/** + * Retrieves reporting data about a team's linked devices. Deprecated: Will be + * removed on July 1st 2021. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamReportsGetDevices + * @deprecated + * @arg {TeamDateRange} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamReportsGetDevices = function (arg) { + return this.request('team/reports/get_devices', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; +/** + * Retrieves reporting data about a team's membership. Deprecated: Will be + * removed on July 1st 2021. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamReportsGetMembership + * @deprecated + * @arg {TeamDateRange} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamReportsGetMembership = function (arg) { + return this.request('team/reports/get_membership', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; +/** + * Retrieves reporting data about a team's storage usage. Deprecated: Will be + * removed on July 1st 2021. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamReportsGetStorage + * @deprecated + * @arg {TeamDateRange} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamReportsGetStorage = function (arg) { + return this.request('team/reports/get_storage', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; +/** + * Endpoint adds Approve List entries. Changes are effective immediately. + * Changes are committed in transaction. In case of single validation error - + * all entries are rejected. Valid domains (RFC-1034/5) and emails + * (RFC-5322/822) are accepted. Added entries cannot overflow limit of 10000 + * entries per team. Maximum 100 entries per call is allowed. + * Route attributes: + * scope: team_info.write + * @function Dropbox#teamSharingAllowlistAdd + * @arg {TeamSharingAllowlistAddArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamSharingAllowlistAdd = function (arg) { + return this.request('team/sharing_allowlist/add', arg, 'team', 'api', 'rpc', 'team_info.write'); +}; +/** + * Lists Approve List entries for given team, from newest to oldest, returning + * up to `limit` entries at a time. If there are more than `limit` entries + * associated with the current team, more can be fetched by passing the returned + * `cursor` to sharing_allowlist/list/continue. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamSharingAllowlistList + * @arg {TeamSharingAllowlistListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamSharingAllowlistList = function (arg) { + return this.request('team/sharing_allowlist/list', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; +/** + * Lists entries associated with given team, starting from a the cursor. See + * sharing_allowlist/list. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamSharingAllowlistListContinue + * @arg {TeamSharingAllowlistListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamSharingAllowlistListContinue = function (arg) { + return this.request('team/sharing_allowlist/list/continue', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; +/** + * Endpoint removes Approve List entries. Changes are effective immediately. + * Changes are committed in transaction. In case of single validation error - + * all entries are rejected. Valid domains (RFC-1034/5) and emails + * (RFC-5322/822) are accepted. Entries being removed have to be present on the + * list. Maximum 1000 entries per call is allowed. + * Route attributes: + * scope: team_info.write + * @function Dropbox#teamSharingAllowlistRemove + * @arg {TeamSharingAllowlistRemoveArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamSharingAllowlistRemove = function (arg) { + return this.request('team/sharing_allowlist/remove', arg, 'team', 'api', 'rpc', 'team_info.write'); +}; +/** + * Sets an archived team folder's status to active. Permission : Team member + * file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderActivate + * @arg {TeamTeamFolderIdArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTeamFolderActivate = function (arg) { + return this.request('team/team_folder/activate', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; +/** + * Sets an active team folder's status to archived and removes all folder and + * file members. This endpoint cannot be used for teams that have a shared team + * space. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderArchive + * @arg {TeamTeamFolderArchiveArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTeamFolderArchive = function (arg) { + return this.request('team/team_folder/archive', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; +/** + * Returns the status of an asynchronous job for archiving a team folder. + * Permission : Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderArchiveCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTeamFolderArchiveCheck = function (arg) { + return this.request('team/team_folder/archive/check', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; +/** + * Creates a new, active, team folder with no members. This endpoint can only be + * used for teams that do not already have a shared team space. Permission : + * Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderCreate + * @arg {TeamTeamFolderCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTeamFolderCreate = function (arg) { + return this.request('team/team_folder/create', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; +/** + * Retrieves metadata for team folders. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.read + * @function Dropbox#teamTeamFolderGetInfo + * @arg {TeamTeamFolderIdListArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + +routes.teamTeamFolderGetInfo = function (arg) { + return this.request('team/team_folder/get_info', arg, 'team', 'api', 'rpc', 'team_data.content.read'); +}; +/** + * Lists all team folders. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.read + * @function Dropbox#teamTeamFolderList + * @arg {TeamTeamFolderListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTeamFolderList = function (arg) { + return this.request('team/team_folder/list', arg, 'team', 'api', 'rpc', 'team_data.content.read'); +}; +/** + * Once a cursor has been retrieved from team_folder/list, use this to paginate + * through all team folders. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.read + * @function Dropbox#teamTeamFolderListContinue + * @arg {TeamTeamFolderListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTeamFolderListContinue = function (arg) { + return this.request('team/team_folder/list/continue', arg, 'team', 'api', 'rpc', 'team_data.content.read'); +}; +/** + * Permanently deletes an archived team folder. This endpoint cannot be used for + * teams that have a shared team space. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderPermanentlyDelete + * @arg {TeamTeamFolderIdArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTeamFolderPermanentlyDelete = function (arg) { + return this.request('team/team_folder/permanently_delete', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; +/** + * Changes an active team folder's name. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderRename + * @arg {TeamTeamFolderRenameArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTeamFolderRename = function (arg) { + return this.request('team/team_folder/rename', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; +/** + * Updates the sync settings on a team folder or its contents. Use of this + * endpoint requires that the team has team selective sync enabled. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderUpdateSyncSettings + * @arg {TeamTeamFolderUpdateSyncSettingsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTeamFolderUpdateSyncSettings = function (arg) { + return this.request('team/team_folder/update_sync_settings', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; +/** + * Returns the member profile of the admin who generated the team access token + * used to make the call. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamTokenGetAuthenticatedAdmin + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTokenGetAuthenticatedAdmin = function () { + return this.request('team/token/get_authenticated_admin', null, 'team', 'api', 'rpc', 'team_info.read'); +}; +/** + * Retrieves team events. If the result's GetTeamEventsResult.has_more field is + * true, call get_events/continue with the returned cursor to retrieve more + * entries. If end_time is not specified in your request, you may use the + * returned cursor to poll get_events/continue for new events. Many attributes + * note 'may be missing due to historical data gap'. Note that the + * file_operations category and & analogous paper events are not available on + * all Dropbox Business plans /business/plans-comparison. Use + * features/get_values + * /developers/documentation/http/teams#team-features-get_values to check for + * this feature. Permission : Team Auditing. + * Route attributes: + * scope: events.read + * @function Dropbox#teamLogGetEvents + * @arg {TeamLogGetTeamEventsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLogGetEvents = function (arg) { + return this.request('team_log/get_events', arg, 'team', 'api', 'rpc', 'events.read'); +}; +/** + * Once a cursor has been retrieved from get_events, use this to paginate + * through all events. Permission : Team Auditing. + * Route attributes: + * scope: events.read + * @function Dropbox#teamLogGetEventsContinue + * @arg {TeamLogGetTeamEventsContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLogGetEventsContinue = function (arg) { + return this.request('team_log/get_events/continue', arg, 'team', 'api', 'rpc', 'events.read'); +}; +/** + * Get a list of feature values that may be configured for the current account. + * Route attributes: + * scope: account_info.read + * @function Dropbox#usersFeaturesGetValues + * @arg {UsersUserFeaturesGetValuesBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.usersFeaturesGetValues = function (arg) { + return this.request('users/features/get_values', arg, 'user', 'api', 'rpc', 'account_info.read'); +}; +/** + * Get information about a user's account. + * Route attributes: + * scope: sharing.read + * @function Dropbox#usersGetAccount + * @arg {UsersGetAccountArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.usersGetAccount = function (arg) { + return this.request('users/get_account', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Get information about multiple user accounts. At most 300 accounts may be + * queried per request. + * Route attributes: + * scope: sharing.read + * @function Dropbox#usersGetAccountBatch + * @arg {UsersGetAccountBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.usersGetAccountBatch = function (arg) { + return this.request('users/get_account_batch', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Get information about the current user's account. + * Route attributes: + * scope: account_info.read + * @function Dropbox#usersGetCurrentAccount + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.usersGetCurrentAccount = function () { + return this.request('users/get_current_account', null, 'user', 'api', 'rpc', 'account_info.read'); +}; +/** + * Get the space usage information for the current user's account. + * Route attributes: + * scope: account_info.read + * @function Dropbox#usersGetSpaceUsage + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.usersGetSpaceUsage = function () { + return this.request('users/get_space_usage', null, 'user', 'api', 'rpc', 'account_info.read'); +}; + +exports.routes = routes; \ No newline at end of file diff --git a/node_modules/tr46/dropbox/cjs/lib/types.js b/node_modules/tr46/dropbox/cjs/lib/types.js new file mode 100644 index 0000000000000000000000000000000000000000..5a2aea7b0f1c6a02fe75374b7a8a72c557d3c20f --- /dev/null +++ b/node_modules/tr46/dropbox/cjs/lib/types.js @@ -0,0 +1,13807 @@ +// Auto-generated by Stone, do not modify. +/** + * An Error object returned from a route. + * @typedef {Object} Error + * @property {string} error_summary - Text summary of the error. + * @property {T} error - The error object. + * @property {UserMessage} user_message - An optional field. If present, it includes a + message that can be shown directly to the end user of your app. You should show this message + if your app is unprepared to programmatically handle the error returned by an endpoint. + * @template T + */ /** + * User-friendly error message. + * @typedef {Object} UserMessage + * @property {string} text - The message. + * @property {string} locale + */ /** + * @typedef {string} Timestamp + */ /** + * @typedef {Object} AccountPhotoSourceArg + * @property {string} [base64_data] - Available if .tag is base64_data. Image + * data in base64-encoded bytes. + * @property {('base64_data'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} AccountSetProfilePhotoArg + * @property {AccountPhotoSourceArg} photo - Image to set as the user's new + * profile photo. + */ /** + * @typedef {Object} AccountSetProfilePhotoError + * @property {('file_type_error'|'file_size_error'|'dimension_error'|'thumbnail_error'|'transient_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} AccountSetProfilePhotoResult + * @property {string} profile_photo_url - URL for the photo representing the + * user, if one is set. + */ /** + * Result returned by methods that may either launch an asynchronous job or + * complete synchronously. Upon synchronous completion of the job, no additional + * information is returned. + * @typedef {Object} AsyncLaunchEmptyResult + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {('async_job_id'|'complete')} .tag - Tag identifying the union variant. + */ /** + * Result returned by methods that launch an asynchronous job. A method who may + * either launch an asynchronous job, or complete the request synchronously, can + * use this union by extending it, and adding a 'complete' field with the type + * of the synchronous response. See LaunchEmptyResult for an example. + * @typedef {Object} AsyncLaunchResultBase + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {'async_job_id'} .tag - Tag identifying the union variant. + */ /** + * Arguments for methods that poll the status of an asynchronous job. + * @typedef {Object} AsyncPollArg + * @property {string} async_job_id - Id of the asynchronous job. This is the + * value of a response returned from the method that launched the job. + */ /** + * Result returned by methods that poll for the status of an asynchronous job. + * Upon completion of the job, no additional information is returned. + * @typedef {Object} AsyncPollEmptyResult + * @property {('in_progress'|'complete')} .tag - Tag identifying the union variant. + */ /** + * Error returned by methods for polling the status of asynchronous job. + * @typedef {Object} AsyncPollError + * @property {('invalid_async_job_id'|'internal_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * Result returned by methods that poll for the status of an asynchronous job. + * Unions that extend this union should add a 'complete' field with a type of + * the information returned upon job completion. See PollEmptyResult for an + * example. + * @typedef {Object} AsyncPollResultBase + * @property {'in_progress'} .tag - Tag identifying the union variant. + */ /** + * Error occurred because the account doesn't have permission to access the + * resource. + * @typedef {Object} AuthAccessError + * @property {AuthInvalidAccountTypeError} [invalid_account_type] - Available if + * .tag is invalid_account_type. Current account type cannot access the + * resource. + * @property {AuthPaperAccessError} [paper_access_denied] - Available if .tag is + * paper_access_denied. Current account cannot access Paper. + * @property {('invalid_account_type'|'paper_access_denied'|'other')} .tag - Tag identifying the union variant. + */ /** + * Errors occurred during authentication. + * @typedef {Object} AuthAuthError + * @property {AuthTokenScopeError} [missing_scope] - Available if .tag is + * missing_scope. The access token does not have the required scope to access + * the route. + * @property {('invalid_access_token'|'invalid_select_user'|'invalid_select_admin'|'user_suspended'|'expired_access_token'|'missing_scope'|'route_access_denied'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} AuthInvalidAccountTypeError + * @property {('endpoint'|'feature'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} AuthPaperAccessError + * @property {('paper_disabled'|'not_paper_user'|'other')} .tag - Tag identifying the union variant. + */ /** + * Error occurred because the app is being rate limited. + * @typedef {Object} AuthRateLimitError + * @property {AuthRateLimitReason} reason - The reason why the app is being rate + * limited. + * @property {number} retry_after - The number of seconds that the app should + * wait before making another request. + */ /** + * @typedef {Object} AuthRateLimitReason + * @property {('too_many_requests'|'too_many_write_operations'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} AuthTokenFromOAuth1Arg + * @property {string} oauth1_token - The supplied OAuth 1.0 access token. + * @property {string} oauth1_token_secret - The token secret associated with the + * supplied access token. + */ /** + * @typedef {Object} AuthTokenFromOAuth1Error + * @property {('invalid_oauth1_token_info'|'app_id_mismatch'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} AuthTokenFromOAuth1Result + * @property {string} oauth2_token - The OAuth 2.0 token generated from the + * supplied OAuth 1.0 token. + */ /** + * @typedef {Object} AuthTokenScopeError + * @property {string} required_scope - The required scope to access the route. + */ /** + * EchoArg contains the arguments to be sent to the Dropbox servers. + * @typedef {Object} CheckEchoArg + * @property {string} query - The string that you'd like to be echoed back to + * you. + */ /** + * EchoResult contains the result returned from the Dropbox servers. + * @typedef {Object} CheckEchoResult + * @property {string} result - If everything worked correctly, this would be the + * same as query. + */ /** + * @typedef {Object} CommonPathRoot + * @property {string} [root] - Available if .tag is root. Paths are relative to + * the authenticating user's root namespace (This results in + * :field:`PathRootError.invalid_root` if the user's root namespace has + * changed.). + * @property {string} [namespace_id] - Available if .tag is namespace_id. Paths + * are relative to given namespace id (This results in + * :field:`PathRootError.no_permission` if you don't have access to this + * namespace.). + * @property {('home'|'root'|'namespace_id'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} CommonPathRootError + * @property {(CommonTeamRootInfo|CommonUserRootInfo|CommonRootInfo)} + * [invalid_root] - Available if .tag is invalid_root. The root namespace id in + * Dropbox-API-Path-Root header is not valid. The value of this error is the + * user's latest root info. + * @property {('invalid_root'|'no_permission'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information about current user's root. + * @typedef {Object} CommonRootInfo +@property {("team"|"user")} .tag - Tag identifying the subtype variant. + * @property {string} root_namespace_id - The namespace ID for user's root + * namespace. It will be the namespace ID of the shared team root if the user is + * member of a team with a separate team root. Otherwise it will be same as + * RootInfo.home_namespace_id. + * @property {string} home_namespace_id - The namespace ID for user's home + * namespace. + */ /** + * Root info when user is member of a team with a separate root namespace ID. + * @typedef {Object} CommonTeamRootInfo +@property {'team'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {string} root_namespace_id - The namespace ID for user's root + * namespace. It will be the namespace ID of the shared team root if the user is + * member of a team with a separate team root. Otherwise it will be same as + * RootInfo.home_namespace_id. + * @property {string} home_namespace_id - The namespace ID for user's home + * namespace. + * @property {string} home_path - The path for user's home directory under the + * shared team root. + */ /** + * Root info when user is not member of a team or the user is a member of a team + * and the team does not have a separate root namespace. + * @typedef {Object} CommonUserRootInfo +@property {'user'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {string} root_namespace_id - The namespace ID for user's root + * namespace. It will be the namespace ID of the shared team root if the user is + * member of a team with a separate team root. Otherwise it will be same as + * RootInfo.home_namespace_id. + * @property {string} home_namespace_id - The namespace ID for user's home + * namespace. + */ /** + * @typedef {Object} ContactsDeleteManualContactsArg + * @property {Array.} email_addresses - List of manually added contacts + * to be deleted. + */ /** + * @typedef {Object} ContactsDeleteManualContactsError + * @property {Array.} [contacts_not_found] - Available if .tag is + * contacts_not_found. Can't delete contacts from this list. Make sure the list + * only has manually added contacts. The deletion was cancelled. + * @property {('contacts_not_found'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesAddPropertiesArg + * @property {string} path - A unique identifier for the file or folder. + * @property {Array.} property_groups - The + * property groups which are to be added to a Dropbox file. No two groups in the + * input should refer to the same template. + */ /** + * @typedef {Object} FilePropertiesAddPropertiesError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {FilePropertiesLookupError} [path] - Available if .tag is path. + * @property {('template_not_found'|'restricted_content'|'other'|'path'|'unsupported_folder'|'property_field_too_large'|'does_not_fit_template'|'duplicate_property_groups'|'property_group_already_exists')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesAddTemplateArg + * @property {string} name - Display name for the template. Template names can + * be up to 256 bytes. + * @property {string} description - Description for the template. Template + * descriptions can be up to 1024 bytes. + * @property {Array.} fields - Definitions + * of the property fields associated with this template. There can be up to 32 + * properties in a single template. + */ /** + * @typedef {Object} FilePropertiesAddTemplateResult + * @property {string} template_id - An identifier for template added by See + * templates/add_for_user or templates/add_for_team. + */ /** + * @typedef {Object} FilePropertiesGetTemplateArg + * @property {string} template_id - An identifier for template added by route + * See templates/add_for_user or templates/add_for_team. + */ /** + * @typedef {Object} FilePropertiesGetTemplateResult + * @property {string} name - Display name for the template. Template names can + * be up to 256 bytes. + * @property {string} description - Description for the template. Template + * descriptions can be up to 1024 bytes. + * @property {Array.} fields - Definitions + * of the property fields associated with this template. There can be up to 32 + * properties in a single template. + */ /** + * @typedef {Object} FilePropertiesInvalidPropertyGroupError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {FilePropertiesLookupError} [path] - Available if .tag is path. + * @property {('template_not_found'|'restricted_content'|'other'|'path'|'unsupported_folder'|'property_field_too_large'|'does_not_fit_template'|'duplicate_property_groups')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesListTemplateResult + * @property {Array.} template_ids - List of identifiers for templates + * added by See templates/add_for_user or templates/add_for_team. + */ /** + * Logical operator to join search queries together. + * @typedef {Object} FilePropertiesLogicalOperator + * @property {('or_operator'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesLookUpPropertiesError + * @property {('property_group_not_found'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesLookupError + * @property {string} [malformed_path] - Available if .tag is malformed_path. + * @property {('malformed_path'|'not_found'|'not_file'|'not_folder'|'restricted_content'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesModifyTemplateError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {('template_not_found'|'restricted_content'|'other'|'conflicting_property_names'|'too_many_properties'|'too_many_templates'|'template_attribute_too_large')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesOverwritePropertyGroupArg + * @property {string} path - A unique identifier for the file or folder. + * @property {Array.} property_groups - The + * property groups "snapshot" updates to force apply. No two groups in the input + * should refer to the same template. + */ /** + * @typedef {Object} FilePropertiesPropertiesError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {FilePropertiesLookupError} [path] - Available if .tag is path. + * @property {('template_not_found'|'restricted_content'|'other'|'path'|'unsupported_folder')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesPropertiesSearchArg + * @property {Array.} queries - Queries to + * search. + * @property {FilePropertiesTemplateFilter} template_filter - Filter results to + * contain only properties associated with these template IDs. + */ /** + * @typedef {Object} FilePropertiesPropertiesSearchContinueArg + * @property {string} cursor - The cursor returned by your last call to + * properties/search or properties/search/continue. + */ /** + * @typedef {Object} FilePropertiesPropertiesSearchContinueError + * @property {('reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesPropertiesSearchError + * @property {FilePropertiesLookUpPropertiesError} [property_group_lookup] - + * Available if .tag is property_group_lookup. + * @property {('property_group_lookup'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesPropertiesSearchMatch + * @property {string} id - The ID for the matched file or folder. + * @property {string} path - The path for the matched file or folder. + * @property {boolean} is_deleted - Whether the file or folder is deleted. + * @property {Array.} property_groups - List of + * custom property groups associated with the file. + */ /** + * @typedef {Object} FilePropertiesPropertiesSearchMode + * @property {string} [field_name] - Available if .tag is field_name. Search for + * a value associated with this field name. + * @property {('field_name'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesPropertiesSearchQuery + * @property {string} query - The property field value for which to search + * across templates. + * @property {FilePropertiesPropertiesSearchMode} mode - The mode with which to + * perform the search. + * @property {FilePropertiesLogicalOperator} logical_operator - The logical + * operator with which to append the query. + */ /** + * @typedef {Object} FilePropertiesPropertiesSearchResult + * @property {Array.} matches - A list + * (possibly empty) of matches for the query. + * @property {string} [cursor] - Pass the cursor into properties/search/continue + * to continue to receive search results. Cursor will be null when there are no + * more results. + */ /** + * Raw key/value data to be associated with a Dropbox file. Property fields are + * added to Dropbox files as a PropertyGroup. + * @typedef {Object} FilePropertiesPropertyField + * @property {string} name - Key of the property field associated with a file + * and template. Keys can be up to 256 bytes. + * @property {string} value - Value of the property field associated with a file + * and template. Values can be up to 1024 bytes. + */ /** + * Defines how a single property field may be structured. Used exclusively by + * PropertyGroupTemplate. + * @typedef {Object} FilePropertiesPropertyFieldTemplate + * @property {string} name - Key of the property field being described. Property + * field keys can be up to 256 bytes. + * @property {string} description - Description of the property field. Property + * field descriptions can be up to 1024 bytes. + * @property {FilePropertiesPropertyType} type - Data type of the value of this + * property field. This type will be enforced upon property creation and + * modifications. + */ /** + * A subset of the property fields described by the corresponding + * PropertyGroupTemplate. Properties are always added to a Dropbox file as a + * PropertyGroup. The possible key names and value types in this group are + * defined by the corresponding PropertyGroupTemplate. + * @typedef {Object} FilePropertiesPropertyGroup + * @property {string} template_id - A unique identifier for the associated + * template. + * @property {Array.} fields - The actual + * properties associated with the template. There can be up to 32 property types + * per template. + */ /** + * Defines how a property group may be structured. + * @typedef {Object} FilePropertiesPropertyGroupTemplate + * @property {string} name - Display name for the template. Template names can + * be up to 256 bytes. + * @property {string} description - Description for the template. Template + * descriptions can be up to 1024 bytes. + * @property {Array.} fields - Definitions + * of the property fields associated with this template. There can be up to 32 + * properties in a single template. + */ /** + * @typedef {Object} FilePropertiesPropertyGroupUpdate + * @property {string} template_id - A unique identifier for a property template. + * @property {Array.} [add_or_update_fields] - + * Property fields to update. If the property field already exists, it is + * updated. If the property field doesn't exist, the property group is added. + * @property {Array.} [remove_fields] - Property fields to remove (by + * name), provided they exist. + */ /** + * Data type of the given property field added. + * @typedef {Object} FilePropertiesPropertyType + * @property {('string'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesRemovePropertiesArg + * @property {string} path - A unique identifier for the file or folder. + * @property {Array.} property_template_ids - A list of identifiers for + * a template created by templates/add_for_user or templates/add_for_team. + */ /** + * @typedef {Object} FilePropertiesRemovePropertiesError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {FilePropertiesLookupError} [path] - Available if .tag is path. + * @property {FilePropertiesLookUpPropertiesError} [property_group_lookup] - + * Available if .tag is property_group_lookup. + * @property {('template_not_found'|'restricted_content'|'other'|'path'|'unsupported_folder'|'property_group_lookup')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesRemoveTemplateArg + * @property {string} template_id - An identifier for a template created by + * templates/add_for_user or templates/add_for_team. + */ /** + * @typedef {Object} FilePropertiesTemplateError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {('template_not_found'|'restricted_content'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesTemplateFilter + * @property {Array.} [filter_some] - Available if .tag is filter_some. + * Only templates with an ID in the supplied list will be returned (a subset of + * templates will be returned). + * @property {('filter_some'|'other'|'filter_none')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesTemplateFilterBase + * @property {Array.} [filter_some] - Available if .tag is filter_some. + * Only templates with an ID in the supplied list will be returned (a subset of + * templates will be returned). + * @property {('filter_some'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesTemplateOwnerType + * @property {('user'|'team'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesUpdatePropertiesArg + * @property {string} path - A unique identifier for the file or folder. + * @property {Array.} update_property_groups + * - The property groups "delta" updates to apply. + */ /** + * @typedef {Object} FilePropertiesUpdatePropertiesError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {FilePropertiesLookupError} [path] - Available if .tag is path. + * @property {FilePropertiesLookUpPropertiesError} [property_group_lookup] - + * Available if .tag is property_group_lookup. + * @property {('template_not_found'|'restricted_content'|'other'|'path'|'unsupported_folder'|'property_field_too_large'|'does_not_fit_template'|'duplicate_property_groups'|'property_group_lookup')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesUpdateTemplateArg + * @property {string} template_id - An identifier for template added by See + * templates/add_for_user or templates/add_for_team. + * @property {string} [name] - A display name for the template. template names + * can be up to 256 bytes. + * @property {string} [description] - Description for the new template. Template + * descriptions can be up to 1024 bytes. + * @property {Array.} [add_fields] - + * Property field templates to be added to the group template. There can be up + * to 32 properties in a single template. + */ /** + * @typedef {Object} FilePropertiesUpdateTemplateResult + * @property {string} template_id - An identifier for template added by route + * See templates/add_for_user or templates/add_for_team. + */ /** + * There was an error counting the file requests. + * @typedef {Object} FileRequestsCountFileRequestsError + * @property {('disabled_for_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Result for count. + * @typedef {Object} FileRequestsCountFileRequestsResult + * @property {number} file_request_count - The number file requests owner by + * this user. + */ /** + * Arguments for create. + * @typedef {Object} FileRequestsCreateFileRequestArgs + * @property {string} title - The title of the file request. Must not be empty. + * @property {string} destination - The path of the folder in the Dropbox where + * uploaded files will be sent. For apps with the app folder permission, this + * will be relative to the app folder. + * @property {FileRequestsFileRequestDeadline} [deadline] - The deadline for the + * file request. Deadlines can only be set by Professional and Business + * accounts. + * @property {boolean} open - Whether or not the file request should be open. If + * the file request is closed, it will not accept any file submissions, but it + * can be opened later. + * @property {string} [description] - A description of the file request. + */ /** + * There was an error creating the file request. + * @typedef {Object} FileRequestsCreateFileRequestError + * @property {('disabled_for_team'|'other'|'not_found'|'not_a_folder'|'app_lacks_access'|'no_permission'|'email_unverified'|'validation_error'|'invalid_location'|'rate_limit')} .tag - Tag identifying the union variant. + */ /** + * There was an error deleting all closed file requests. + * @typedef {Object} FileRequestsDeleteAllClosedFileRequestsError + * @property {('disabled_for_team'|'other'|'not_found'|'not_a_folder'|'app_lacks_access'|'no_permission'|'email_unverified'|'validation_error')} .tag - Tag identifying the union variant. + */ /** + * Result for delete_all_closed. + * @typedef {Object} FileRequestsDeleteAllClosedFileRequestsResult + * @property {Array.} file_requests - The file requests + * deleted for this user. + */ /** + * Arguments for delete. + * @typedef {Object} FileRequestsDeleteFileRequestArgs + * @property {Array.} ids - List IDs of the file requests to delete. + */ /** + * There was an error deleting these file requests. + * @typedef {Object} FileRequestsDeleteFileRequestError + * @property {('disabled_for_team'|'other'|'not_found'|'not_a_folder'|'app_lacks_access'|'no_permission'|'email_unverified'|'validation_error'|'file_request_open')} .tag - Tag identifying the union variant. + */ /** + * Result for delete. + * @typedef {Object} FileRequestsDeleteFileRequestsResult + * @property {Array.} file_requests - The file requests + * deleted by the request. + */ /** + * A file request https://www.dropbox.com/help/9090 for receiving files into the + * user's Dropbox account. + * @typedef {Object} FileRequestsFileRequest + * @property {string} id - The ID of the file request. + * @property {string} url - The URL of the file request. + * @property {string} title - The title of the file request. + * @property {Timestamp} created - When this file request was created. + * @property {boolean} is_open - Whether or not the file request is open. If the + * file request is closed, it will not accept any more file submissions. + * @property {number} file_count - The number of files this file request has + * received. + * @property {string} [destination] - The path of the folder in the Dropbox + * where uploaded files will be sent. This can be null if the destination was + * removed. For apps with the app folder permission, this will be relative to + * the app folder. + * @property {FileRequestsFileRequestDeadline} [deadline] - The deadline for + * this file request. Only set if the request has a deadline. + * @property {string} [description] - A description of the file request. + */ /** + * @typedef {Object} FileRequestsFileRequestDeadline + * @property {Timestamp} deadline - The deadline for this file request. + * @property {FileRequestsGracePeriod} [allow_late_uploads] - If set, allow + * uploads after the deadline has passed. These uploads will be marked + * overdue. + */ /** + * There is an error with the file request. + * @typedef {Object} FileRequestsFileRequestError + * @property {('disabled_for_team'|'other'|'not_found'|'not_a_folder'|'app_lacks_access'|'no_permission'|'email_unverified'|'validation_error')} .tag - Tag identifying the union variant. + */ /** + * There is an error accessing the file requests functionality. + * @typedef {Object} FileRequestsGeneralFileRequestsError + * @property {('disabled_for_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Arguments for get. + * @typedef {Object} FileRequestsGetFileRequestArgs + * @property {string} id - The ID of the file request to retrieve. + */ /** + * There was an error retrieving the specified file request. + * @typedef {Object} FileRequestsGetFileRequestError + * @property {('disabled_for_team'|'other'|'not_found'|'not_a_folder'|'app_lacks_access'|'no_permission'|'email_unverified'|'validation_error')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FileRequestsGracePeriod + * @property {('one_day'|'two_days'|'seven_days'|'thirty_days'|'always'|'other')} .tag - Tag identifying the union variant. + */ /** + * Arguments for list:2. + * @typedef {Object} FileRequestsListFileRequestsArg + * @property {number} limit - The maximum number of file requests that should be + * returned per request. + */ /** + * @typedef {Object} FileRequestsListFileRequestsContinueArg + * @property {string} cursor - The cursor returned by the previous API call + * specified in the endpoint description. + */ /** + * There was an error retrieving the file requests. + * @typedef {Object} FileRequestsListFileRequestsContinueError + * @property {('disabled_for_team'|'other'|'invalid_cursor')} .tag - Tag identifying the union variant. + */ /** + * There was an error retrieving the file requests. + * @typedef {Object} FileRequestsListFileRequestsError + * @property {('disabled_for_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Result for list. + * @typedef {Object} FileRequestsListFileRequestsResult + * @property {Array.} file_requests - The file requests + * owned by this user. Apps with the app folder permission will only see file + * requests in their app folder. + */ /** + * Result for list:2 and list/continue. + * @typedef {Object} FileRequestsListFileRequestsV2Result + * @property {Array.} file_requests - The file requests + * owned by this user. Apps with the app folder permission will only see file + * requests in their app folder. + * @property {string} cursor - Pass the cursor into list/continue to obtain + * additional file requests. + * @property {boolean} has_more - Is true if there are additional file requests + * that have not been returned yet. An additional call to :route:list/continue` + * can retrieve them. + */ /** + * Arguments for update. + * @typedef {Object} FileRequestsUpdateFileRequestArgs + * @property {string} id - The ID of the file request to update. + * @property {string} [title] - The new title of the file request. Must not be + * empty. + * @property {string} [destination] - The new path of the folder in the Dropbox + * where uploaded files will be sent. For apps with the app folder permission, + * this will be relative to the app folder. + * @property {FileRequestsUpdateFileRequestDeadline} deadline - The new deadline + * for the file request. Deadlines can only be set by Professional and Business + * accounts. + * @property {boolean} [open] - Whether to set this file request as open or + * closed. + * @property {string} [description] - The description of the file request. + */ /** + * @typedef {Object} FileRequestsUpdateFileRequestDeadline + * @property {FileRequestsFileRequestDeadline} [update] - Available if .tag is + * update. If :val:`null`, the file request's deadline is cleared. + * @property {('no_update'|'update'|'other')} .tag - Tag identifying the union variant. + */ /** + * There is an error updating the file request. + * @typedef {Object} FileRequestsUpdateFileRequestError + * @property {('disabled_for_team'|'other'|'not_found'|'not_a_folder'|'app_lacks_access'|'no_permission'|'email_unverified'|'validation_error')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesAddTagArg + * @property {string} path - Path to the item to be tagged. + * @property {string} tag_text - The value of the tag to add. Will be + * automatically converted to lowercase letters. + */ /** + * @typedef {Object} FilesAddTagError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'other'|'too_many_tags')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesAlphaGetMetadataArg + * @property {string} path - The path of a file or folder on Dropbox. + * @property {boolean} include_media_info - If true, FileMetadata.media_info is + * set for photo and video. + * @property {boolean} include_deleted - If true, DeletedMetadata will be + * returned for deleted file or folder, otherwise LookupError.not_found will be + * returned. + * @property {boolean} include_has_explicit_shared_members - If true, the + * results will include a flag for each file indicating whether or not that + * file has any explicit members. + * @property {FilePropertiesTemplateFilterBase} [include_property_groups] - If + * set to a valid list of template IDs, FileMetadata.property_groups is set if + * there exists property data associated with the file and each of the listed + * templates. + * @property {Array.} [include_property_templates] - If set to a valid + * list of template IDs, FileMetadata.property_groups is set for files with + * custom properties. + */ /** + * @typedef {Object} FilesAlphaGetMetadataError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {FilePropertiesLookUpPropertiesError} [properties_error] - + * Available if .tag is properties_error. + * @property {('path'|'properties_error')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesBaseTagError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesCommitInfo + * @property {string} path - Path in the user's Dropbox to save the file. + * @property {FilesWriteMode} mode - Selects what to do if the file already + * exists. + * @property {boolean} autorename - If there's a conflict, as determined by + * mode, have the Dropbox server try to autorename the file to avoid conflict. + * @property {Timestamp} [client_modified] - The value to store as the + * client_modified timestamp. Dropbox automatically records the time at which + * the file was written to the Dropbox servers. It can also record an additional + * timestamp, provided by Dropbox desktop clients, mobile clients, and API apps + * of when the file was actually created or modified. + * @property {boolean} mute - Normally, users are made aware of any file + * modifications in their Dropbox account via notifications in the client + * software. If true, this tells the clients that this modification shouldn't + * result in a user notification. + * @property {Array.} [property_groups] - List of + * custom properties to add to file. + * @property {boolean} strict_conflict - Be more strict about how each WriteMode + * detects conflict. For example, always return a conflict error when mode = + * WriteMode.update and the given "rev" doesn't match the existing file's "rev", + * even if the existing file has been deleted. This also forces a conflict even + * when the target path refers to a file with identical contents. + */ /** + * @typedef {Object} FilesContentSyncSetting + * @property {string} id - Id of the item this setting is applied to. + * @property {FilesSyncSetting} sync_setting - Setting for this item. + */ /** + * @typedef {Object} FilesContentSyncSettingArg + * @property {string} id - Id of the item this setting is applied to. + * @property {FilesSyncSettingArg} sync_setting - Setting for this item. + */ /** + * @typedef {Object} FilesCreateFolderArg + * @property {string} path - Path in the user's Dropbox to create. + * @property {boolean} autorename - If there's a conflict, have the Dropbox + * server try to autorename the folder to avoid the conflict. + */ /** + * @typedef {Object} FilesCreateFolderBatchArg + * @property {Array.} paths - List of paths to be created in the user's + * Dropbox. Duplicate path arguments in the batch are considered only once. + * @property {boolean} autorename - If there's a conflict, have the Dropbox + * server try to autorename the folder to avoid the conflict. + * @property {boolean} force_async - Whether to force the create to happen + * asynchronously. + */ /** + * @typedef {Object} FilesCreateFolderBatchError + * @property {('too_many_files'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesCreateFolderBatchJobStatus + * @property {FilesCreateFolderBatchResult} [complete] - Available if .tag is + * complete. The batch create folder has finished. + * @property {FilesCreateFolderBatchError} [failed] - Available if .tag is + * failed. The batch create folder has failed. + * @property {('in_progress'|'complete'|'failed'|'other')} .tag - Tag identifying the union variant. + */ /** + * Result returned by create_folder_batch that may either launch an asynchronous + * job or complete synchronously. + * @typedef {Object} FilesCreateFolderBatchLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {FilesCreateFolderBatchResult} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesCreateFolderBatchResult + * @property {Array.} entries - Each entry in + * CreateFolderBatchArg.paths will appear at the same position inside + * CreateFolderBatchResult.entries. + */ /** + * @typedef {Object} FilesCreateFolderBatchResultEntry + * @property {FilesCreateFolderEntryResult} [success] - Available if .tag is + * success. + * @property {FilesCreateFolderEntryError} [failure] - Available if .tag is + * failure. + * @property {('success'|'failure')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesCreateFolderEntryError + * @property {FilesWriteError} [path] - Available if .tag is path. + * @property {('path'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesCreateFolderEntryResult + * @property {FilesFolderMetadata} metadata - Metadata of the created folder. + */ /** + * @typedef {Object} FilesCreateFolderError + * @property {FilesWriteError} [path] - Available if .tag is path. + * @property {'path'} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesCreateFolderResult + * @property {FilesFolderMetadata} metadata - Metadata of the created folder. + */ /** + * @typedef {Object} FilesDeleteArg + * @property {string} path - Path in the user's Dropbox to delete. + * @property {string} [parent_rev] - Perform delete if given "rev" matches the + * existing file's latest "rev". This field does not support deleting a folder. + */ /** + * @typedef {Object} FilesDeleteBatchArg + * @property {Array.} entries + */ /** + * @typedef {Object} FilesDeleteBatchError + * @property {('too_many_write_operations'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesDeleteBatchJobStatus + * @property {FilesDeleteBatchResult} [complete] - Available if .tag is + * complete. The batch delete has finished. + * @property {FilesDeleteBatchError} [failed] - Available if .tag is failed. The + * batch delete has failed. + * @property {('in_progress'|'complete'|'failed'|'other')} .tag - Tag identifying the union variant. + */ /** + * Result returned by delete_batch that may either launch an asynchronous job or + * complete synchronously. + * @typedef {Object} FilesDeleteBatchLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {FilesDeleteBatchResult} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesDeleteBatchResult + * @property {Array.} entries - Each entry in + * DeleteBatchArg.entries will appear at the same position inside + * DeleteBatchResult.entries. + */ /** + * @typedef {Object} FilesDeleteBatchResultData + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - Metadata of the deleted object. + */ /** + * @typedef {Object} FilesDeleteBatchResultEntry + * @property {FilesDeleteBatchResultData} [success] - Available if .tag is + * success. + * @property {FilesDeleteError} [failure] - Available if .tag is failure. + * @property {('success'|'failure')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesDeleteError + * @property {FilesLookupError} [path_lookup] - Available if .tag is + * path_lookup. + * @property {FilesWriteError} [path_write] - Available if .tag is path_write. + * @property {('path_lookup'|'path_write'|'too_many_write_operations'|'too_many_files'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesDeleteResult + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - Metadata of the deleted object. + */ /** + * Indicates that there used to be a file or folder at this path, but it no + * longer exists. + * @typedef {Object} FilesDeletedMetadata +@property {'deleted'} [.tag] - Tag identifying this subtype variant. This field +is only present when needed to discriminate between multiple possible subtypes. + * @property {string} name - The last component of the path (including + * extension). This never contains a slash. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will be null if the file + * or folder is not mounted. + * @property {string} [path_display] - The cased path to be used for display + * purposes only. In rare instances the casing will not correctly match the + * user's filesystem, but this behavior will match the path provided in the Core + * API v1, and at least the last path component will have the correct casing. + * Changes to only the casing of paths won't be returned by + * list_folder/continue. This field will be null if the file or folder is not + * mounted. + * @property {string} [parent_shared_folder_id] - Please use + * FileSharingInfo.parent_shared_folder_id or + * FolderSharingInfo.parent_shared_folder_id instead. + * @property {string} [preview_url] - The preview URL of the file. + */ /** + * Dimensions for a photo or video. + * @typedef {Object} FilesDimensions + * @property {number} height - Height of the photo/video. + * @property {number} width - Width of the photo/video. + */ /** + * @typedef {Object} FilesDownloadArg + * @property {string} path - The path of the file to download. + * @property {string} [rev] - Please specify revision in path instead. + */ /** + * @typedef {Object} FilesDownloadError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'unsupported_file'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesDownloadZipArg + * @property {string} path - The path of the folder to download. + */ /** + * @typedef {Object} FilesDownloadZipError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'too_large'|'too_many_files'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesDownloadZipResult + * @property {FilesFolderMetadata} metadata + */ /** + * @typedef {Object} FilesExportArg + * @property {string} path - The path of the file to be exported. + * @property {string} [export_format] - The file format to which the file should + * be exported. This must be one of the formats listed in the file's + * export_options returned by get_metadata. If none is specified, the default + * format (specified in export_as in file metadata) will be used. + */ /** + * @typedef {Object} FilesExportError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'non_exportable'|'invalid_export_format'|'retry_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * Export information for a file. + * @typedef {Object} FilesExportInfo + * @property {string} [export_as] - Format to which the file can be exported to. + * @property {Array.} [export_options] - Additional formats to which the + * file can be exported. These values can be specified as the export_format in + * /files/export. + */ /** + * @typedef {Object} FilesExportMetadata + * @property {string} name - The last component of the path (including + * extension). This never contains a slash. + * @property {number} size - The file size in bytes. + * @property {string} [export_hash] - A hash based on the exported file content. + * This field can be used to verify data integrity. Similar to content hash. For + * more information see our Content hash + * https://www.dropbox.com/developers/reference/content-hash page. + * @property {number} [paper_revision] - If the file is a Paper doc, this gives + * the latest doc revision which can be used in paper/update. + */ /** + * @typedef {Object} FilesExportResult + * @property {FilesExportMetadata} export_metadata - Metadata for the exported + * version of the file. + * @property {FilesFileMetadata} file_metadata - Metadata for the original file. + */ /** + * @typedef {Object} FilesFileCategory + * @property {('image'|'document'|'pdf'|'spreadsheet'|'presentation'|'audio'|'video'|'folder'|'paper'|'others'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesFileLock + * @property {FilesFileLockContent} content - The lock description. + */ /** + * @typedef {Object} FilesFileLockContent + * @property {FilesSingleUserLock} [single_user] - Available if .tag is + * single_user. A lock held by a single user. + * @property {('unlocked'|'single_user'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesFileLockMetadata + * @property {boolean} [is_lockholder] - True if caller holds the file lock. + * @property {string} [lockholder_name] - The display name of the lock holder. + * @property {string} [lockholder_account_id] - The account ID of the lock + * holder if known. + * @property {Timestamp} [created] - The timestamp of the lock was created. + */ /** + * @typedef {Object} FilesFileMetadata +@property {'file'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {string} name - The last component of the path (including + * extension). This never contains a slash. + * @property {string} id - A unique identifier for the file. + * @property {Timestamp} client_modified - For files, this is the modification + * time set by the desktop client when the file was added to Dropbox. Since this + * time is not verified (the Dropbox server stores whatever the desktop client + * sends up), this should only be used for display purposes (such as sorting) + * and not, for example, to determine if a file has changed or not. + * @property {Timestamp} server_modified - The last time the file was modified + * on Dropbox. + * @property {string} rev - A unique identifier for the current revision of a + * file. This field is the same rev as elsewhere in the API and can be used to + * detect changes and avoid conflicts. + * @property {number} size - The file size in bytes. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will be null if the file + * or folder is not mounted. + * @property {string} [path_display] - The cased path to be used for display + * purposes only. In rare instances the casing will not correctly match the + * user's filesystem, but this behavior will match the path provided in the Core + * API v1, and at least the last path component will have the correct casing. + * Changes to only the casing of paths won't be returned by + * list_folder/continue. This field will be null if the file or folder is not + * mounted. + * @property {string} [parent_shared_folder_id] - Please use + * FileSharingInfo.parent_shared_folder_id or + * FolderSharingInfo.parent_shared_folder_id instead. + * @property {string} [preview_url] - The preview URL of the file. + * @property {FilesMediaInfo} [media_info] - Additional information if the file + * is a photo or video. This field will not be set on entries returned by + * list_folder, list_folder/continue, or get_thumbnail_batch, starting December + * 2, 2019. + * @property {FilesSymlinkInfo} [symlink_info] - Set if this file is a symlink. + * @property {FilesFileSharingInfo} [sharing_info] - Set if this file is + * contained in a shared folder. + * @property {boolean} is_downloadable - If true, file can be downloaded + * directly; else the file must be exported. + * @property {FilesExportInfo} [export_info] - Information about format this + * file can be exported to. This filed must be set if is_downloadable is set to + * false. + * @property {Array.} [property_groups] - + * Additional information if the file has custom properties with the property + * template specified. + * @property {boolean} [has_explicit_shared_members] - This flag will only be + * present if include_has_explicit_shared_members is true in list_folder or + * get_metadata. If this flag is present, it will be true if this file has any + * explicit shared members. This is different from sharing_info in that this + * could be true in the case where a file has explicit members but is not + * contained within a shared folder. + * @property {string} [content_hash] - A hash of the file content. This field + * can be used to verify data integrity. For more information see our Content + * hash https://www.dropbox.com/developers/reference/content-hash page. + * @property {FilesFileLockMetadata} [file_lock_info] - If present, the metadata + * associated with the file's current lock. + */ /** + * @typedef {Object} FilesFileOpsResult + */ /** + * Sharing info for a file which is contained by a shared folder. + * @typedef {Object} FilesFileSharingInfo + * @property {boolean} read_only - True if the file or folder is inside a + * read-only shared folder. + * @property {string} parent_shared_folder_id - ID of shared folder that holds + * this file. + * @property {string} [modified_by] - The last user who modified the file. This + * field will be null if the user's account has been deleted. + */ /** + * @typedef {Object} FilesFileStatus + * @property {('active'|'deleted'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesFolderMetadata +@property {'folder'} [.tag] - Tag identifying this subtype variant. This field +is only present when needed to discriminate between multiple possible subtypes. + * @property {string} name - The last component of the path (including + * extension). This never contains a slash. + * @property {string} id - A unique identifier for the folder. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will be null if the file + * or folder is not mounted. + * @property {string} [path_display] - The cased path to be used for display + * purposes only. In rare instances the casing will not correctly match the + * user's filesystem, but this behavior will match the path provided in the Core + * API v1, and at least the last path component will have the correct casing. + * Changes to only the casing of paths won't be returned by + * list_folder/continue. This field will be null if the file or folder is not + * mounted. + * @property {string} [parent_shared_folder_id] - Please use + * FileSharingInfo.parent_shared_folder_id or + * FolderSharingInfo.parent_shared_folder_id instead. + * @property {string} [preview_url] - The preview URL of the file. + * @property {string} [shared_folder_id] - Please use sharing_info instead. + * @property {FilesFolderSharingInfo} [sharing_info] - Set if the folder is + * contained in a shared folder or is a shared folder mount point. + * @property {Array.} [property_groups] - + * Additional information if the file has custom properties with the property + * template specified. Note that only properties associated with user-owned + * templates, not team-owned templates, can be attached to folders. + */ /** + * Sharing info for a folder which is contained in a shared folder or is a + * shared folder mount point. + * @typedef {Object} FilesFolderSharingInfo + * @property {boolean} read_only - True if the file or folder is inside a + * read-only shared folder. + * @property {string} [parent_shared_folder_id] - Set if the folder is contained + * by a shared folder. + * @property {string} [shared_folder_id] - If this folder is a shared folder + * mount point, the ID of the shared folder mounted at this location. + * @property {boolean} traverse_only - Specifies that the folder can only be + * traversed and the user can only see a limited subset of the contents of this + * folder because they don't have read access to this folder. They do, however, + * have access to some sub folder. + * @property {boolean} no_access - Specifies that the folder cannot be accessed + * by the user. + */ /** + * @typedef {Object} FilesGetCopyReferenceArg + * @property {string} path - The path to the file or folder you want to get a + * copy reference to. + */ /** + * @typedef {Object} FilesGetCopyReferenceError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesGetCopyReferenceResult + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - Metadata of the file or folder. + * @property {string} copy_reference - A copy reference to the file or folder. + * @property {Timestamp} expires - The expiration date of the copy reference. + * This value is currently set to be far enough in the future so that expiration + * is effectively not an issue. + */ /** + * @typedef {Object} FilesGetMetadataArg + * @property {string} path - The path of a file or folder on Dropbox. + * @property {boolean} include_media_info - If true, FileMetadata.media_info is + * set for photo and video. + * @property {boolean} include_deleted - If true, DeletedMetadata will be + * returned for deleted file or folder, otherwise LookupError.not_found will be + * returned. + * @property {boolean} include_has_explicit_shared_members - If true, the + * results will include a flag for each file indicating whether or not that + * file has any explicit members. + * @property {FilePropertiesTemplateFilterBase} [include_property_groups] - If + * set to a valid list of template IDs, FileMetadata.property_groups is set if + * there exists property data associated with the file and each of the listed + * templates. + */ /** + * @typedef {Object} FilesGetMetadataError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {'path'} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesGetTagsArg + * @property {Array.} paths - Path to the items. + */ /** + * @typedef {Object} FilesGetTagsResult + * @property {Array.} paths_to_tags - List of paths and their + * corresponding tags. + */ /** + * @typedef {Object} FilesGetTemporaryLinkArg + * @property {string} path - The path to the file you want a temporary link to. + */ /** + * @typedef {Object} FilesGetTemporaryLinkError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'email_not_verified'|'unsupported_file'|'not_allowed'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesGetTemporaryLinkResult + * @property {FilesFileMetadata} metadata - Metadata of the file. + * @property {string} link - The temporary link which can be used to stream + * content the file. + */ /** + * @typedef {Object} FilesGetTemporaryUploadLinkArg + * @property {FilesCommitInfo} commit_info - Contains the path and other + * optional modifiers for the future upload commit. Equivalent to the parameters + * provided to upload. + * @property {number} duration - How long before this link expires, in seconds. + * Attempting to start an upload with this link longer than this period of time + * after link creation will result in an error. + */ /** + * @typedef {Object} FilesGetTemporaryUploadLinkResult + * @property {string} link - The temporary link which can be used to stream a + * file to a Dropbox location. + */ /** + * Arguments for get_thumbnail_batch. + * @typedef {Object} FilesGetThumbnailBatchArg + * @property {Array.} entries - List of files to get + * thumbnails. + */ /** + * @typedef {Object} FilesGetThumbnailBatchError + * @property {('too_many_files'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesGetThumbnailBatchResult + * @property {Array.} entries - List of files + * and their thumbnails. + */ /** + * @typedef {Object} FilesGetThumbnailBatchResultData + * @property {FilesFileMetadata} metadata + * @property {string} thumbnail - A string containing the base64-encoded + * thumbnail data for this file. + */ /** + * @typedef {Object} FilesGetThumbnailBatchResultEntry + * @property {FilesGetThumbnailBatchResultData} [success] - Available if .tag is + * success. + * @property {FilesThumbnailError} [failure] - Available if .tag is failure. The + * result for this file if it was an error. + * @property {('success'|'failure'|'other')} .tag - Tag identifying the union variant. + */ /** + * GPS coordinates for a photo or video. + * @typedef {Object} FilesGpsCoordinates + * @property {number} latitude - Latitude of the GPS coordinates. + * @property {number} longitude - Longitude of the GPS coordinates. + */ /** + * @typedef {Object} FilesHighlightSpan + * @property {string} highlight_str - String to be determined whether it should + * be highlighted or not. + * @property {boolean} is_highlighted - The string should be highlighted or not. + */ /** + * The import format of the incoming Paper doc content. + * @typedef {Object} FilesImportFormat + * @property {('html'|'markdown'|'plain_text'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesListFolderArg + * @property {string} path - A unique identifier for the file. + * @property {boolean} recursive - If true, the list folder operation will be + * applied recursively to all subfolders and the response will contain contents + * of all subfolders. + * @property {boolean} include_media_info - If true, FileMetadata.media_info is + * set for photo and video. This parameter will no longer have an effect + * starting December 2, 2019. + * @property {boolean} include_deleted - If true, the results will include + * entries for files and folders that used to exist but were deleted. + * @property {boolean} include_has_explicit_shared_members - If true, the + * results will include a flag for each file indicating whether or not that + * file has any explicit members. + * @property {boolean} include_mounted_folders - If true, the results will + * include entries under mounted folders which includes app folder, shared + * folder and team folder. + * @property {number} [limit] - The maximum number of results to return per + * request. Note: This is an approximate number and there can be slightly more + * entries returned in some cases. + * @property {FilesSharedLink} [shared_link] - A shared link to list the + * contents of. If the link is password-protected, the password must be + * provided. If this field is present, ListFolderArg.path will be relative to + * root of the shared link. Only non-recursive mode is supported for shared + * link. + * @property {FilePropertiesTemplateFilterBase} [include_property_groups] - If + * set to a valid list of template IDs, FileMetadata.property_groups is set if + * there exists property data associated with the file and each of the listed + * templates. + * @property {boolean} include_non_downloadable_files - If true, include files + * that are not downloadable, i.e. Google Docs. + */ /** + * @typedef {Object} FilesListFolderContinueArg + * @property {string} cursor - The cursor returned by your last call to + * list_folder or list_folder/continue. + */ /** + * @typedef {Object} FilesListFolderContinueError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesListFolderError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {FilePropertiesTemplateError} [template_error] - Available if .tag + * is template_error. + * @property {('path'|'template_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesListFolderGetLatestCursorResult + * @property {string} cursor - Pass the cursor into list_folder/continue to see + * what's changed in the folder since your previous query. + */ /** + * @typedef {Object} FilesListFolderLongpollArg + * @property {string} cursor - A cursor as returned by list_folder or + * list_folder/continue. Cursors retrieved by setting + * ListFolderArg.include_media_info to true are not supported. + * @property {number} timeout - A timeout in seconds. The request will block for + * at most this length of time, plus up to 90 seconds of random jitter added to + * avoid the thundering herd problem. Care should be taken when using this + * parameter, as some network infrastructure does not support long timeouts. + */ /** + * @typedef {Object} FilesListFolderLongpollError + * @property {('reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesListFolderLongpollResult + * @property {boolean} changes - Indicates whether new changes are available. If + * true, call list_folder/continue to retrieve the changes. + * @property {number} [backoff] - If present, backoff for at least this many + * seconds before calling list_folder/longpoll again. + */ /** + * @typedef {Object} FilesListFolderResult + * @property + * {Array.<(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)>} + * entries - The files and (direct) subfolders in the folder. + * @property {string} cursor - Pass the cursor into list_folder/continue to see + * what's changed in the folder since your previous query. + * @property {boolean} has_more - If true, then there are more entries + * available. Pass the cursor to list_folder/continue to retrieve the rest. + */ /** + * @typedef {Object} FilesListRevisionsArg + * @property {string} path - The path to the file you want to see the revisions + * of. + * @property {FilesListRevisionsMode} mode - Determines the behavior of the API + * in listing the revisions for a given file path or id. + * @property {number} limit - The maximum number of revision entries returned. + */ /** + * @typedef {Object} FilesListRevisionsError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesListRevisionsMode + * @property {('path'|'id'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesListRevisionsResult + * @property {boolean} is_deleted - If the file identified by the latest + * revision in the response is either deleted or moved. + * @property {Array.} entries - The revisions for the file. + * Only revisions that are not deleted will show up here. + * @property {Timestamp} [server_deleted] - The time of deletion if the file was + * deleted. + */ /** + * @typedef {Object} FilesLockConflictError + * @property {FilesFileLock} lock - The lock that caused the conflict. + */ /** + * @typedef {Object} FilesLockFileArg + * @property {string} path - Path in the user's Dropbox to a file. + */ /** + * @typedef {Object} FilesLockFileBatchArg + * @property {Array.} entries - List of 'entries'. Each + * 'entry' contains a path of the file which will be locked or queried. + * Duplicate path arguments in the batch are considered only once. + */ /** + * @typedef {Object} FilesLockFileBatchResult + * @property {Array.} entries - Each Entry in the + * 'entries' will have '.tag' with the operation status (e.g. success), the + * metadata for the file and the lock state after the operation. + */ /** + * @typedef {Object} FilesLockFileError + * @property {FilesLookupError} [path_lookup] - Available if .tag is + * path_lookup. Could not find the specified resource. + * @property {FilesLockConflictError} [lock_conflict] - Available if .tag is + * lock_conflict. The user action conflicts with an existing lock on the file. + * @property {('path_lookup'|'too_many_write_operations'|'too_many_files'|'no_write_permission'|'cannot_be_locked'|'file_not_shared'|'lock_conflict'|'internal_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesLockFileResult + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - Metadata of the file. + * @property {FilesFileLock} lock - The file lock state after the operation. + */ /** + * @typedef {Object} FilesLockFileResultEntry + * @property {FilesLockFileResult} [success] - Available if .tag is success. + * @property {FilesLockFileError} [failure] - Available if .tag is failure. + * @property {('success'|'failure')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesLookupError + * @property {string} [malformed_path] - Available if .tag is malformed_path. + * The given path does not satisfy the required path format. Please refer to the + * :link:`Path formats documentation + * https://www.dropbox.com/developers/documentation/http/documentation#path-formats` + * for more information. + * @property {('malformed_path'|'not_found'|'not_file'|'not_folder'|'restricted_content'|'unsupported_content_type'|'locked'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesMediaInfo + * @property {(FilesPhotoMetadata|FilesVideoMetadata)} [metadata] - Available if + * .tag is metadata. The metadata for the photo/video. + * @property {('pending'|'metadata')} .tag - Tag identifying the union variant. + */ /** + * Metadata for a photo or video. + * @typedef {Object} FilesMediaMetadata +@property {("photo"|"video")} .tag - Tag identifying the subtype variant. + * @property {FilesDimensions} [dimensions] - Dimension of the photo/video. + * @property {FilesGpsCoordinates} [location] - The GPS coordinate of the + * photo/video. + * @property {Timestamp} [time_taken] - The timestamp when the photo/video is + * taken. + */ /** + * Metadata for a file or folder. + * @typedef {Object} FilesMetadata +@property {("file"|"folder"|"deleted")} .tag - Tag identifying the subtype +variant. + * @property {string} name - The last component of the path (including + * extension). This never contains a slash. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will be null if the file + * or folder is not mounted. + * @property {string} [path_display] - The cased path to be used for display + * purposes only. In rare instances the casing will not correctly match the + * user's filesystem, but this behavior will match the path provided in the Core + * API v1, and at least the last path component will have the correct casing. + * Changes to only the casing of paths won't be returned by + * list_folder/continue. This field will be null if the file or folder is not + * mounted. + * @property {string} [parent_shared_folder_id] - Please use + * FileSharingInfo.parent_shared_folder_id or + * FolderSharingInfo.parent_shared_folder_id instead. + * @property {string} [preview_url] - The preview URL of the file. + */ /** + * Metadata for a file, folder or other resource types. + * @typedef {Object} FilesMetadataV2 + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * [metadata] - Available if .tag is metadata. + * @property {('metadata'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesMinimalFileLinkMetadata + * @property {string} url - URL of the shared link. + * @property {string} rev - A unique identifier for the current revision of a + * file. This field is the same rev as elsewhere in the API and can be used to + * detect changes and avoid conflicts. + * @property {string} [id] - Unique identifier for the linked file. + * @property {string} [path] - Full path in the user's Dropbox. This always + * starts with a slash. This field will only be present only if the linked file + * is in the authenticated user's Dropbox. + */ /** + * @typedef {Object} FilesMoveBatchArg + * @property {Array.} entries - List of entries to be moved + * or copied. Each entry is RelocationPath. + * @property {boolean} autorename - If there's a conflict with any file, have + * the Dropbox server try to autorename that file to avoid the conflict. + * @property {boolean} allow_ownership_transfer - Allow moves by owner even if + * it would result in an ownership transfer for the content being moved. This + * does not apply to copies. + */ /** + * @typedef {Object} FilesMoveIntoFamilyError + * @property {('is_shared_folder'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesMoveIntoVaultError + * @property {('is_shared_folder'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesPaperContentError + * @property {('insufficient_permissions'|'content_malformed'|'doc_length_exceeded'|'image_size_exceeded'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesPaperCreateArg + * @property {Object} [contents] - The file contents to be uploaded. + * @property {string} path - The fully qualified path to the location in the + * user's Dropbox where the Paper Doc should be created. This should include the + * document's title and end with .paper. + * @property {FilesImportFormat} import_format - The format of the provided + * data. + */ /** + * @typedef {Object} FilesPaperCreateError + * @property {('insufficient_permissions'|'content_malformed'|'doc_length_exceeded'|'image_size_exceeded'|'other'|'invalid_path'|'email_unverified'|'invalid_file_extension'|'paper_disabled')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesPaperCreateResult + * @property {string} url - URL to open the Paper Doc. + * @property {string} result_path - The fully qualified path the Paper Doc was + * actually created at. + * @property {string} file_id - The id to use in Dropbox APIs when referencing + * the Paper Doc. + * @property {number} paper_revision - The current doc revision. + */ /** + * @typedef {Object} FilesPaperDocUpdatePolicy + * @property {('update'|'overwrite'|'prepend'|'append'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesPaperUpdateArg + * @property {Object} [contents] - The file contents to be uploaded. + * @property {string} path - Path in the user's Dropbox to update. The path must + * correspond to a Paper doc or an error will be returned. + * @property {FilesImportFormat} import_format - The format of the provided + * data. + * @property {FilesPaperDocUpdatePolicy} doc_update_policy - How the provided + * content should be applied to the doc. + * @property {number} [paper_revision] - The latest doc revision. Required when + * doc_update_policy is update. This value must match the current revision of + * the doc or error revision_mismatch will be returned. + */ /** + * @typedef {Object} FilesPaperUpdateError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('insufficient_permissions'|'content_malformed'|'doc_length_exceeded'|'image_size_exceeded'|'other'|'path'|'revision_mismatch'|'doc_archived'|'doc_deleted')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesPaperUpdateResult + * @property {number} paper_revision - The current doc revision. + */ /** + * @typedef {Object} FilesPathOrLink + * @property {string} [path] - Available if .tag is path. + * @property {FilesSharedLinkFileInfo} [link] - Available if .tag is link. + * @property {('path'|'link'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesPathToTags + * @property {string} path - Path of the item. + * @property {Array.} tags - Tags assigned to this item. + */ /** + * Metadata for a photo. + * @typedef {Object} FilesPhotoMetadata +@property {'photo'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {FilesDimensions} [dimensions] - Dimension of the photo/video. + * @property {FilesGpsCoordinates} [location] - The GPS coordinate of the + * photo/video. + * @property {Timestamp} [time_taken] - The timestamp when the photo/video is + * taken. + */ /** + * @typedef {Object} FilesPreviewArg + * @property {string} path - The path of the file to preview. + * @property {string} [rev] - Please specify revision in path instead. + */ /** + * @typedef {Object} FilesPreviewError + * @property {FilesLookupError} [path] - Available if .tag is path. An error + * occurs when downloading metadata for the file. + * @property {('path'|'in_progress'|'unsupported_extension'|'unsupported_content')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesPreviewResult + * @property {FilesFileMetadata} [file_metadata] - Metadata corresponding to the + * file received as an argument. Will be populated if the endpoint is called + * with a path (ReadPath). + * @property {FilesMinimalFileLinkMetadata} [link_metadata] - Minimal metadata + * corresponding to the file received as an argument. Will be populated if the + * endpoint is called using a shared link (SharedLinkFileInfo). + */ /** + * @typedef {Object} FilesRelocationArg + * @property {string} from_path - Path in the user's Dropbox to be copied or + * moved. + * @property {string} to_path - Path in the user's Dropbox that is the + * destination. + * @property {boolean} allow_shared_folder - This flag has no effect. + * @property {boolean} autorename - If there's a conflict, have the Dropbox + * server try to autorename the file to avoid the conflict. + * @property {boolean} allow_ownership_transfer - Allow moves by owner even if + * it would result in an ownership transfer for the content being moved. This + * does not apply to copies. + */ /** + * @typedef {Object} FilesRelocationBatchArg + * @property {Array.} entries - List of entries to be moved + * or copied. Each entry is RelocationPath. + * @property {boolean} autorename - If there's a conflict with any file, have + * the Dropbox server try to autorename that file to avoid the conflict. + * @property {boolean} allow_shared_folder - This flag has no effect. + * @property {boolean} allow_ownership_transfer - Allow moves by owner even if + * it would result in an ownership transfer for the content being moved. This + * does not apply to copies. + */ /** + * @typedef {Object} FilesRelocationBatchArgBase + * @property {Array.} entries - List of entries to be moved + * or copied. Each entry is RelocationPath. + * @property {boolean} autorename - If there's a conflict with any file, have + * the Dropbox server try to autorename that file to avoid the conflict. + */ /** + * @typedef {Object} FilesRelocationBatchError + * @property {FilesLookupError} [from_lookup] - Available if .tag is + * from_lookup. + * @property {FilesWriteError} [from_write] - Available if .tag is from_write. + * @property {FilesWriteError} [to] - Available if .tag is to. + * @property {FilesMoveIntoVaultError} [cant_move_into_vault] - Available if + * .tag is cant_move_into_vault. Some content cannot be moved into Vault under + * certain circumstances, see detailed error. + * @property {FilesMoveIntoFamilyError} [cant_move_into_family] - Available if + * .tag is cant_move_into_family. Some content cannot be moved into the Family + * Room folder under certain circumstances, see detailed error. + * @property {('from_lookup'|'from_write'|'to'|'cant_copy_shared_folder'|'cant_nest_shared_folder'|'cant_move_folder_into_itself'|'too_many_files'|'duplicated_or_nested_paths'|'cant_transfer_ownership'|'insufficient_quota'|'internal_error'|'cant_move_shared_folder'|'cant_move_into_vault'|'cant_move_into_family'|'other'|'too_many_write_operations')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesRelocationBatchErrorEntry + * @property {FilesRelocationError} [relocation_error] - Available if .tag is + * relocation_error. User errors that retry won't help. + * @property {('relocation_error'|'internal_error'|'too_many_write_operations'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesRelocationBatchJobStatus + * @property {FilesRelocationBatchResult} [complete] - Available if .tag is + * complete. The copy or move batch job has finished. + * @property {FilesRelocationBatchError} [failed] - Available if .tag is failed. + * The copy or move batch job has failed with exception. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ /** + * Result returned by copy_batch or move_batch that may either launch an + * asynchronous job or complete synchronously. + * @typedef {Object} FilesRelocationBatchLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {FilesRelocationBatchResult} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesRelocationBatchResult + * @property {Array.} entries + */ /** + * @typedef {Object} FilesRelocationBatchResultData + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - Metadata of the relocated object. + */ /** + * @typedef {Object} FilesRelocationBatchResultEntry + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * [success] - Available if .tag is success. + * @property {FilesRelocationBatchErrorEntry} [failure] - Available if .tag is + * failure. + * @property {('success'|'failure'|'other')} .tag - Tag identifying the union variant. + */ /** + * Result returned by copy_batch/check:2 or move_batch/check:2 that may either + * be in progress or completed with result for each entry. + * @typedef {Object} FilesRelocationBatchV2JobStatus + * @property {FilesRelocationBatchV2Result} [complete] - Available if .tag is + * complete. The copy or move batch job has finished. + * @property {('in_progress'|'complete')} .tag - Tag identifying the union variant. + */ /** + * Result returned by copy_batch:2 or move_batch:2 that may either launch an + * asynchronous job or complete synchronously. + * @typedef {Object} FilesRelocationBatchV2Launch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {FilesRelocationBatchV2Result} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesRelocationBatchV2Result + * @property {Array.} entries - Each entry in + * CopyBatchArg.entries or MoveBatchArg.entries will appear at the same position + * inside RelocationBatchV2Result.entries. + */ /** + * @typedef {Object} FilesRelocationError + * @property {FilesLookupError} [from_lookup] - Available if .tag is + * from_lookup. + * @property {FilesWriteError} [from_write] - Available if .tag is from_write. + * @property {FilesWriteError} [to] - Available if .tag is to. + * @property {FilesMoveIntoVaultError} [cant_move_into_vault] - Available if + * .tag is cant_move_into_vault. Some content cannot be moved into Vault under + * certain circumstances, see detailed error. + * @property {FilesMoveIntoFamilyError} [cant_move_into_family] - Available if + * .tag is cant_move_into_family. Some content cannot be moved into the Family + * Room folder under certain circumstances, see detailed error. + * @property {('from_lookup'|'from_write'|'to'|'cant_copy_shared_folder'|'cant_nest_shared_folder'|'cant_move_folder_into_itself'|'too_many_files'|'duplicated_or_nested_paths'|'cant_transfer_ownership'|'insufficient_quota'|'internal_error'|'cant_move_shared_folder'|'cant_move_into_vault'|'cant_move_into_family'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesRelocationPath + * @property {string} from_path - Path in the user's Dropbox to be copied or + * moved. + * @property {string} to_path - Path in the user's Dropbox that is the + * destination. + */ /** + * @typedef {Object} FilesRelocationResult + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - Metadata of the relocated object. + */ /** + * @typedef {Object} FilesRemoveTagArg + * @property {string} path - Path to the item to tag. + * @property {string} tag_text - The tag to remove. Will be automatically + * converted to lowercase letters. + */ /** + * @typedef {Object} FilesRemoveTagError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'other'|'tag_not_present')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesRestoreArg + * @property {string} path - The path to save the restored file. + * @property {string} rev - The revision to restore. + */ /** + * @typedef {Object} FilesRestoreError + * @property {FilesLookupError} [path_lookup] - Available if .tag is + * path_lookup. An error occurs when downloading metadata for the file. + * @property {FilesWriteError} [path_write] - Available if .tag is path_write. + * An error occurs when trying to restore the file to that path. + * @property {('path_lookup'|'path_write'|'invalid_revision'|'in_progress'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSaveCopyReferenceArg + * @property {string} copy_reference - A copy reference returned by + * copy_reference/get. + * @property {string} path - Path in the user's Dropbox that is the destination. + */ /** + * @typedef {Object} FilesSaveCopyReferenceError + * @property {FilesWriteError} [path] - Available if .tag is path. + * @property {('path'|'invalid_copy_reference'|'no_permission'|'not_found'|'too_many_files'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSaveCopyReferenceResult + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - The metadata of the saved file or folder in the user's Dropbox. + */ /** + * @typedef {Object} FilesSaveUrlArg + * @property {string} path - The path in Dropbox where the URL will be saved to. + * @property {string} url - The URL to be saved. + */ /** + * @typedef {Object} FilesSaveUrlError + * @property {FilesWriteError} [path] - Available if .tag is path. + * @property {('path'|'download_failed'|'invalid_url'|'not_found'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSaveUrlJobStatus + * @property {FilesFileMetadata} [complete] - Available if .tag is complete. + * Metadata of the file where the URL is saved to. + * @property {FilesSaveUrlError} [failed] - Available if .tag is failed. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSaveUrlResult + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {FilesFileMetadata} [complete] - Available if .tag is complete. + * Metadata of the file where the URL is saved to. + * @property {('async_job_id'|'complete')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSearchArg + * @property {string} path - The path in the user's Dropbox to search. Should + * probably be a folder. + * @property {string} query - The string to search for. Query string may be + * rewritten to improve relevance of results. The string is split on spaces into + * multiple tokens. For file name searching, the last token is used for prefix + * matching (i.e. "bat c" matches "bat cave" but not "batman car"). + * @property {number} start - The starting index within the search results (used + * for paging). + * @property {number} max_results - The maximum number of search results to + * return. + * @property {FilesSearchMode} mode - The search mode (filename, + * filename_and_content, or deleted_filename). Note that searching file content + * is only available for Dropbox Business accounts. + */ /** + * @typedef {Object} FilesSearchError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {string} [invalid_argument] - Available if .tag is + * invalid_argument. + * @property {('path'|'invalid_argument'|'internal_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSearchMatch + * @property {FilesSearchMatchType} match_type - The type of the match. + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - The metadata for the matched file or folder. + */ /** + * @typedef {Object} FilesSearchMatchFieldOptions + * @property {boolean} include_highlights - Whether to include highlight span + * from file title. + */ /** + * Indicates what type of match was found for a given item. + * @typedef {Object} FilesSearchMatchType + * @property {('filename'|'content'|'both')} .tag - Tag identifying the union variant. + */ /** + * Indicates what type of match was found for a given item. + * @typedef {Object} FilesSearchMatchTypeV2 + * @property {('filename'|'file_content'|'filename_and_content'|'image_content'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSearchMatchV2 + * @property {FilesMetadataV2} metadata - The metadata for the matched file or + * folder. + * @property {FilesSearchMatchTypeV2} [match_type] - The type of the match. + * @property {Array.} [highlight_spans] - The list of + * HighlightSpan determines which parts of the file title should be highlighted. + */ /** + * @typedef {Object} FilesSearchMode + * @property {('filename'|'filename_and_content'|'deleted_filename')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSearchOptions + * @property {string} [path] - Scopes the search to a path in the user's + * Dropbox. Searches the entire Dropbox if not specified. + * @property {number} max_results - The maximum number of search results to + * return. + * @property {FilesSearchOrderBy} [order_by] - Specified property of the order + * of search results. By default, results are sorted by relevance. + * @property {FilesFileStatus} file_status - Restricts search to the given file + * status. + * @property {boolean} filename_only - Restricts search to only match on + * filenames. + * @property {Array.} [file_extensions] - Restricts search to only the + * extensions specified. Only supported for active file search. + * @property {Array.} [file_categories] - Restricts search to + * only the file categories specified. Only supported for active file search. + * @property {string} [account_id] - Restricts results to the given account id. + */ /** + * @typedef {Object} FilesSearchOrderBy + * @property {('relevance'|'last_modified_time'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSearchResult + * @property {Array.} matches - A list (possibly empty) of + * matches for the query. + * @property {boolean} more - Used for paging. If true, indicates there is + * another page of results available that can be fetched by calling search + * again. + * @property {number} start - Used for paging. Value to set the start argument + * to when calling search to fetch the next page of results. + */ /** + * @typedef {Object} FilesSearchV2Arg + * @property {string} query - The string to search for. May match across + * multiple fields based on the request arguments. + * @property {FilesSearchOptions} [options] - Options for more targeted search + * results. + * @property {FilesSearchMatchFieldOptions} [match_field_options] - Options for + * search results match fields. + * @property {boolean} [include_highlights] - Deprecated and moved this option + * to SearchMatchFieldOptions. + */ /** + * @typedef {Object} FilesSearchV2ContinueArg + * @property {string} cursor - The cursor returned by your last call to + * search:2. Used to fetch the next page of results. + */ /** + * @typedef {Object} FilesSearchV2Result + * @property {Array.} matches - A list (possibly empty) of + * matches for the query. + * @property {boolean} has_more - Used for paging. If true, indicates there is + * another page of results available that can be fetched by calling + * search/continue:2 with the cursor. + * @property {string} [cursor] - Pass the cursor into search/continue:2 to fetch + * the next page of results. + */ /** + * @typedef {Object} FilesSharedLink + * @property {string} url - Shared link url. + * @property {string} [password] - Password for the shared link. + */ /** + * @typedef {Object} FilesSharedLinkFileInfo + * @property {string} url - The shared link corresponding to either a file or + * shared link to a folder. If it is for a folder shared link, we use the path + * param to determine for which file in the folder the view is for. + * @property {string} [path] - The path corresponding to a file in a shared link + * to a folder. Required for shared links to folders. + * @property {string} [password] - Password for the shared link. Required for + * password-protected shared links to files unless it can be read from a + * cookie. + */ /** + * Sharing info for a file or folder. + * @typedef {Object} FilesSharingInfo + * @property {boolean} read_only - True if the file or folder is inside a + * read-only shared folder. + */ /** + * @typedef {Object} FilesSingleUserLock + * @property {Timestamp} created - The time the lock was created. + * @property {string} lock_holder_account_id - The account ID of the lock holder + * if known. + * @property {string} [lock_holder_team_id] - The id of the team of the account + * holder if it exists. + */ /** + * @typedef {Object} FilesSymlinkInfo + * @property {string} target - The target this symlink points to. + */ /** + * @typedef {Object} FilesSyncSetting + * @property {('default'|'not_synced'|'not_synced_inactive'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSyncSettingArg + * @property {('default'|'not_synced'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSyncSettingsError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'unsupported_combination'|'unsupported_configuration'|'other')} .tag - Tag identifying the union variant. + */ /** + * Tag that can be added in multiple ways. + * @typedef {Object} FilesTag + * @property {FilesUserGeneratedTag} [user_generated_tag] - Available if .tag is + * user_generated_tag. Tag generated by the user. + * @property {('user_generated_tag'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesThumbnailArg + * @property {string} path - The path to the image file you want to thumbnail. + * @property {FilesThumbnailFormat} format - The format for the thumbnail image, + * jpeg (default) or png. For images that are photos, jpeg should be preferred, + * while png is better for screenshots and digital arts. + * @property {FilesThumbnailSize} size - The size for the thumbnail image. + * @property {FilesThumbnailMode} mode - How to resize and crop the image to + * achieve the desired size. + */ /** + * @typedef {Object} FilesThumbnailError + * @property {FilesLookupError} [path] - Available if .tag is path. An error + * occurs when downloading metadata for the image. + * @property {('path'|'unsupported_extension'|'unsupported_image'|'conversion_error')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesThumbnailFormat + * @property {('jpeg'|'png')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesThumbnailMode + * @property {('strict'|'bestfit'|'fitone_bestfit')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesThumbnailSize + * @property {('w32h32'|'w64h64'|'w128h128'|'w256h256'|'w480h320'|'w640h480'|'w960h640'|'w1024h768'|'w2048h1536')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesThumbnailV2Arg + * @property {FilesPathOrLink} resource - Information specifying which file to + * preview. This could be a path to a file, a shared link pointing to a file, or + * a shared link pointing to a folder, with a relative path. + * @property {FilesThumbnailFormat} format - The format for the thumbnail image, + * jpeg (default) or png. For images that are photos, jpeg should be preferred, + * while png is better for screenshots and digital arts. + * @property {FilesThumbnailSize} size - The size for the thumbnail image. + * @property {FilesThumbnailMode} mode - How to resize and crop the image to + * achieve the desired size. + */ /** + * @typedef {Object} FilesThumbnailV2Error + * @property {FilesLookupError} [path] - Available if .tag is path. An error + * occurred when downloading metadata for the image. + * @property {('path'|'unsupported_extension'|'unsupported_image'|'conversion_error'|'access_denied'|'not_found'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesUnlockFileArg + * @property {string} path - Path in the user's Dropbox to a file. + */ /** + * @typedef {Object} FilesUnlockFileBatchArg + * @property {Array.} entries - List of 'entries'. Each + * 'entry' contains a path of the file which will be unlocked. Duplicate path + * arguments in the batch are considered only once. + */ /** + * @typedef {Object} FilesUploadArg + * @property {Object} [contents] - The file contents to be uploaded. + * @property {string} path - Path in the user's Dropbox to save the file. + * @property {FilesWriteMode} mode - Selects what to do if the file already + * exists. + * @property {boolean} autorename - If there's a conflict, as determined by + * mode, have the Dropbox server try to autorename the file to avoid conflict. + * @property {Timestamp} [client_modified] - The value to store as the + * client_modified timestamp. Dropbox automatically records the time at which + * the file was written to the Dropbox servers. It can also record an additional + * timestamp, provided by Dropbox desktop clients, mobile clients, and API apps + * of when the file was actually created or modified. + * @property {boolean} mute - Normally, users are made aware of any file + * modifications in their Dropbox account via notifications in the client + * software. If true, this tells the clients that this modification shouldn't + * result in a user notification. + * @property {Array.} [property_groups] - List of + * custom properties to add to file. + * @property {boolean} strict_conflict - Be more strict about how each WriteMode + * detects conflict. For example, always return a conflict error when mode = + * WriteMode.update and the given "rev" doesn't match the existing file's "rev", + * even if the existing file has been deleted. This also forces a conflict even + * when the target path refers to a file with identical contents. + * @property {string} [content_hash] - A hash of the file content uploaded in + * this call. If provided and the uploaded content does not match this hash, an + * error will be returned. For more information see our Content hash + * https://www.dropbox.com/developers/reference/content-hash page. + */ /** + * @typedef {Object} FilesUploadError + * @property {FilesUploadWriteFailed} [path] - Available if .tag is path. Unable + * to save the uploaded contents to a file. + * @property {FilePropertiesInvalidPropertyGroupError} [properties_error] - + * Available if .tag is properties_error. The supplied property group is + * invalid. The file has uploaded without property groups. + * @property {('path'|'properties_error'|'payload_too_large'|'content_hash_mismatch'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesUploadSessionAppendArg + * @property {Object} [contents] - The file contents to be uploaded. + * @property {FilesUploadSessionCursor} cursor - Contains the upload session ID + * and the offset. + * @property {boolean} close - If true, the current session will be closed, at + * which point you won't be able to call upload_session/append:2 anymore with + * the current session. + * @property {string} [content_hash] - A hash of the file content uploaded in + * this call. If provided and the uploaded content does not match this hash, an + * error will be returned. For more information see our Content hash + * https://www.dropbox.com/developers/reference/content-hash page. + */ /** + * @typedef {Object} FilesUploadSessionAppendError + * @property {FilesUploadSessionOffsetError} [incorrect_offset] - Available if + * .tag is incorrect_offset. The specified offset was incorrect. See the value + * for the correct offset. This error may occur when a previous request was + * received and processed successfully but the client did not receive the + * response, e.g. due to a network error. + * @property {('not_found'|'incorrect_offset'|'closed'|'not_closed'|'too_large'|'concurrent_session_invalid_offset'|'concurrent_session_invalid_data_size'|'payload_too_large'|'other'|'content_hash_mismatch')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesUploadSessionCursor + * @property {Object} [contents] - The file contents to be uploaded. + * @property {string} session_id - The upload session ID (returned by + * upload_session/start). + * @property {number} offset - Offset in bytes at which data should be appended. + * We use this to make sure upload data isn't lost or duplicated in the event of + * a network error. + */ /** + * @typedef {Object} FilesUploadSessionFinishArg + * @property {Object} [contents] - The file contents to be uploaded. + * @property {FilesUploadSessionCursor} cursor - Contains the upload session ID + * and the offset. + * @property {FilesCommitInfo} commit - Contains the path and other optional + * modifiers for the commit. + * @property {string} [content_hash] - A hash of the file content uploaded in + * this call. If provided and the uploaded content does not match this hash, an + * error will be returned. For more information see our Content hash + * https://www.dropbox.com/developers/reference/content-hash page. + */ /** + * @typedef {Object} FilesUploadSessionFinishBatchArg + * @property {Array.} entries - Commit information + * for each file in the batch. + */ /** + * @typedef {Object} FilesUploadSessionFinishBatchJobStatus + * @property {FilesUploadSessionFinishBatchResult} [complete] - Available if + * .tag is complete. The :route:`upload_session/finish_batch` has finished. + * @property {('in_progress'|'complete')} .tag - Tag identifying the union variant. + */ /** + * Result returned by upload_session/finish_batch that may either launch an + * asynchronous job or complete synchronously. + * @typedef {Object} FilesUploadSessionFinishBatchLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {FilesUploadSessionFinishBatchResult} [complete] - Available if + * .tag is complete. + * @property {('async_job_id'|'complete'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesUploadSessionFinishBatchResult + * @property {Array.} entries - Each + * entry in UploadSessionFinishBatchArg.entries will appear at the same position + * inside UploadSessionFinishBatchResult.entries. + */ /** + * @typedef {Object} FilesUploadSessionFinishBatchResultEntry + * @property {FilesFileMetadata} [success] - Available if .tag is success. + * @property {FilesUploadSessionFinishError} [failure] - Available if .tag is + * failure. + * @property {('success'|'failure')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesUploadSessionFinishError + * @property {FilesUploadSessionLookupError} [lookup_failed] - Available if .tag + * is lookup_failed. The session arguments are incorrect; the value explains the + * reason. + * @property {FilesWriteError} [path] - Available if .tag is path. Unable to + * save the uploaded contents to a file. Data has already been appended to the + * upload session. Please retry with empty data body and updated offset. + * @property {FilePropertiesInvalidPropertyGroupError} [properties_error] - + * Available if .tag is properties_error. The supplied property group is + * invalid. The file has uploaded without property groups. + * @property {('lookup_failed'|'path'|'properties_error'|'too_many_shared_folder_targets'|'too_many_write_operations'|'concurrent_session_data_not_allowed'|'concurrent_session_not_closed'|'concurrent_session_missing_data'|'payload_too_large'|'content_hash_mismatch'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesUploadSessionLookupError + * @property {FilesUploadSessionOffsetError} [incorrect_offset] - Available if + * .tag is incorrect_offset. The specified offset was incorrect. See the value + * for the correct offset. This error may occur when a previous request was + * received and processed successfully but the client did not receive the + * response, e.g. due to a network error. + * @property {('not_found'|'incorrect_offset'|'closed'|'not_closed'|'too_large'|'concurrent_session_invalid_offset'|'concurrent_session_invalid_data_size'|'payload_too_large'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesUploadSessionOffsetError + * @property {number} correct_offset - The offset up to which data has been + * collected. + */ /** + * @typedef {Object} FilesUploadSessionStartArg + * @property {Object} [contents] - The file contents to be uploaded. + * @property {boolean} close - If true, the current session will be closed, at + * which point you won't be able to call upload_session/append:2 anymore with + * the current session. + * @property {FilesUploadSessionType} [session_type] - Type of upload session + * you want to start. If not specified, default is UploadSessionType.sequential. + * @property {string} [content_hash] - A hash of the file content uploaded in + * this call. If provided and the uploaded content does not match this hash, an + * error will be returned. For more information see our Content hash + * https://www.dropbox.com/developers/reference/content-hash page. + */ /** + * @typedef {Object} FilesUploadSessionStartBatchArg + * @property {number} num_sessions - The number of upload sessions to start. + * @property {FilesUploadSessionType} [session_type] - Type of upload session + * you want to start. If not specified, default is UploadSessionType.sequential. + */ /** + * @typedef {Object} FilesUploadSessionStartBatchResult + * @property {Array.} session_ids - A List of unique identifiers for the + * upload session. Pass each session_id to upload_session/append:2 and + * upload_session/finish. + */ /** + * @typedef {Object} FilesUploadSessionStartError + * @property {('concurrent_session_data_not_allowed'|'concurrent_session_close_not_allowed'|'payload_too_large'|'content_hash_mismatch'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesUploadSessionStartResult + * @property {string} session_id - A unique identifier for the upload session. + * Pass this to upload_session/append:2 and upload_session/finish. + */ /** + * @typedef {Object} FilesUploadSessionType + * @property {('sequential'|'concurrent'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesUploadWriteFailed + * @property {FilesWriteError} reason - The reason why the file couldn't be + * saved. + * @property {string} upload_session_id - The upload session ID; data has + * already been uploaded to the corresponding upload session and this ID may be + * used to retry the commit with upload_session/finish. + */ /** + * @typedef {Object} FilesUserGeneratedTag + * @property {string} tag_text + */ /** + * Metadata for a video. + * @typedef {Object} FilesVideoMetadata +@property {'video'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {FilesDimensions} [dimensions] - Dimension of the photo/video. + * @property {FilesGpsCoordinates} [location] - The GPS coordinate of the + * photo/video. + * @property {Timestamp} [time_taken] - The timestamp when the photo/video is + * taken. + * @property {number} [duration] - The duration of the video in milliseconds. + */ /** + * @typedef {Object} FilesWriteConflictError + * @property {('file'|'folder'|'file_ancestor'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesWriteError + * @property {string} [malformed_path] - Available if .tag is malformed_path. + * The given path does not satisfy the required path format. Please refer to the + * :link:`Path formats documentation + * https://www.dropbox.com/developers/documentation/http/documentation#path-formats` + * for more information. + * @property {FilesWriteConflictError} [conflict] - Available if .tag is + * conflict. Couldn't write to the target path because there was something in + * the way. + * @property {('malformed_path'|'conflict'|'no_write_permission'|'insufficient_space'|'disallowed_name'|'team_folder'|'operation_suppressed'|'too_many_write_operations'|'other')} .tag - Tag identifying the union variant. + */ /** + * Your intent when writing a file to some path. This is used to determine what + * constitutes a conflict and what the autorename strategy is. In some + * situations, the conflict behavior is identical: (a) If the target path + * doesn't refer to anything, the file is always written; no conflict. (b) If + * the target path refers to a folder, it's always a conflict. (c) If the target + * path refers to a file with identical contents, nothing gets written; no + * conflict. The conflict checking differs in the case where there's a file at + * the target path with contents different from the contents you're trying to + * write. + * @typedef {Object} FilesWriteMode + * @property {string} [update] - Available if .tag is update. Overwrite if the + * given "rev" matches the existing file's "rev". The supplied value should be + * the latest known "rev" of the file, for example, from :type:`FileMetadata`, + * from when the file was last downloaded by the app. This will cause the file + * on the Dropbox servers to be overwritten if the given "rev" matches the + * existing file's current "rev" on the Dropbox servers. The autorename strategy + * is to append the string "conflicted copy" to the file name. For example, + * "document.txt" might become "document (conflicted copy).txt" or "document + * (Panda's conflicted copy).txt". + * @property {('add'|'overwrite'|'update')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} OpenidOpenIdError + * @property {('incorrect_openid_scopes'|'other')} .tag - Tag identifying the union variant. + */ /** + * No Parameters + * @typedef {Object} OpenidUserInfoArgs + */ /** + * @typedef {Object} OpenidUserInfoError + * @property {OpenidOpenIdError} [openid_error] - Available if .tag is + * openid_error. + * @property {('openid_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} OpenidUserInfoResult + * @property {string} [family_name] - Last name of user. + * @property {string} [given_name] - First name of user. + * @property {string} [email] - Email address of user. + * @property {boolean} [email_verified] - If user is email verified. + * @property {string} iss - Issuer of token (in this case Dropbox). + * @property {string} sub - An identifier for the user. This is the Dropbox + * account_id, a string value such as dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc. + */ /** + * @typedef {Object} PaperAddMember + * @property {SharingMemberSelector} member - User which should be added to the + * Paper doc. Specify only email address or Dropbox account ID. + * @property {PaperPaperDocPermissionLevel} permission_level - Permission for + * the user. + */ /** + * @typedef {Object} PaperAddPaperDocUser + * @property {string} doc_id - The Paper doc ID. + * @property {Array.} members - User which should be added to + * the Paper doc. Specify only email address or Dropbox account ID. + * @property {string} [custom_message] - A personal message that will be emailed + * to each successfully added member. + * @property {boolean} quiet - Clients should set this to true if no email + * message shall be sent to added users. + */ /** + * Per-member result for docs/users/add. + * @typedef {Object} PaperAddPaperDocUserMemberResult + * @property {SharingMemberSelector} member - One of specified input members. + * @property {PaperAddPaperDocUserResult} result - The outcome of the action on + * this member. + */ /** + * @typedef {Object} PaperAddPaperDocUserResult + * @property {('success'|'unknown_error'|'sharing_outside_team_disabled'|'daily_limit_reached'|'user_is_owner'|'failed_user_data_retrieval'|'permission_already_granted'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperCursor + * @property {string} value - The actual cursor value. + * @property {Timestamp} [expiration] - Expiration time of value. Some cursors + * might have expiration time assigned. This is a UTC value after which the + * cursor is no longer valid and the API starts returning an error. If cursor + * expires a new one needs to be obtained and pagination needs to be restarted. + * Some cursors might be short-lived some cursors might be long-lived. This + * really depends on the sorting type and order, e.g.: 1. on one hand, listing + * docs created by the user, sorted by the created time ascending will have + * undefinite expiration because the results cannot change while the iteration + * is happening. This cursor would be suitable for long term polling. 2. on the + * other hand, listing docs sorted by the last modified time will have a very + * short expiration as docs do get modified very often and the modified time can + * be changed while the iteration is happening thus altering the results. + */ /** + * @typedef {Object} PaperDocLookupError + * @property {('insufficient_permissions'|'other'|'doc_not_found')} .tag - Tag identifying the union variant. + */ /** + * The subscription level of a Paper doc. + * @typedef {Object} PaperDocSubscriptionLevel + * @property {('default'|'ignore'|'every'|'no_email')} .tag - Tag identifying the union variant. + */ /** + * The desired export format of the Paper doc. + * @typedef {Object} PaperExportFormat + * @property {('html'|'markdown'|'other')} .tag - Tag identifying the union variant. + */ /** + * Data structure representing a Paper folder. + * @typedef {Object} PaperFolder + * @property {string} id - Paper folder ID. This ID uniquely identifies the + * folder. + * @property {string} name - Paper folder name. + */ /** + * The sharing policy of a Paper folder. The sharing policy of subfolders is + * inherited from the root folder. + * @typedef {Object} PaperFolderSharingPolicyType + * @property {('team'|'invite_only')} .tag - Tag identifying the union variant. + */ /** + * The subscription level of a Paper folder. + * @typedef {Object} PaperFolderSubscriptionLevel + * @property {('none'|'activity_only'|'daily_emails'|'weekly_emails')} .tag - Tag identifying the union variant. + */ /** + * Metadata about Paper folders containing the specififed Paper doc. + * @typedef {Object} PaperFoldersContainingPaperDoc + * @property {PaperFolderSharingPolicyType} [folder_sharing_policy_type] - The + * sharing policy of the folder containing the Paper doc. + * @property {Array.} [folders] - The folder path. If present the + * first folder is the root folder. + */ /** + * The import format of the incoming data. + * @typedef {Object} PaperImportFormat + * @property {('html'|'markdown'|'plain_text'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperInviteeInfoWithPermissionLevel + * @property {SharingInviteeInfo} invitee - Email address invited to the Paper + * doc. + * @property {PaperPaperDocPermissionLevel} permission_level - Permission level + * for the invitee. + */ /** + * @typedef {Object} PaperListDocsCursorError + * @property {PaperPaperApiCursorError} [cursor_error] - Available if .tag is + * cursor_error. + * @property {('cursor_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperListPaperDocsArgs + * @property {PaperListPaperDocsFilterBy} filter_by - Allows user to specify how + * the Paper docs should be filtered. + * @property {PaperListPaperDocsSortBy} sort_by - Allows user to specify how the + * Paper docs should be sorted. + * @property {PaperListPaperDocsSortOrder} sort_order - Allows user to specify + * the sort order of the result. + * @property {number} limit - Size limit per batch. The maximum number of docs + * that can be retrieved per batch is 1000. Higher value results in invalid + * arguments error. + */ /** + * @typedef {Object} PaperListPaperDocsContinueArgs + * @property {string} cursor - The cursor obtained from docs/list or + * docs/list/continue. Allows for pagination. + */ /** + * @typedef {Object} PaperListPaperDocsFilterBy + * @property {('docs_accessed'|'docs_created'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperListPaperDocsResponse + * @property {Array.} doc_ids - The list of Paper doc IDs that can be + * used to access the given Paper docs or supplied to other API methods. The + * list is sorted in the order specified by the initial call to docs/list. + * @property {PaperCursor} cursor - Pass the cursor into docs/list/continue to + * paginate through all files. The cursor preserves all properties as specified + * in the original call to docs/list. + * @property {boolean} has_more - Will be set to True if a subsequent call with + * the provided cursor to docs/list/continue returns immediately with some + * results. If set to False please allow some delay before making another call + * to docs/list/continue. + */ /** + * @typedef {Object} PaperListPaperDocsSortBy + * @property {('accessed'|'modified'|'created'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperListPaperDocsSortOrder + * @property {('ascending'|'descending'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperListUsersCursorError + * @property {PaperPaperApiCursorError} [cursor_error] - Available if .tag is + * cursor_error. + * @property {('insufficient_permissions'|'other'|'doc_not_found'|'cursor_error')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperListUsersOnFolderArgs + * @property {string} doc_id - The Paper doc ID. + * @property {number} limit - Size limit per batch. The maximum number of users + * that can be retrieved per batch is 1000. Higher value results in invalid + * arguments error. + */ /** + * @typedef {Object} PaperListUsersOnFolderContinueArgs + * @property {string} doc_id - The Paper doc ID. + * @property {string} cursor - The cursor obtained from docs/folder_users/list + * or docs/folder_users/list/continue. Allows for pagination. + */ /** + * @typedef {Object} PaperListUsersOnFolderResponse + * @property {Array.} invitees - List of email addresses + * that are invited on the Paper folder. + * @property {Array.} users - List of users that are invited on + * the Paper folder. + * @property {PaperCursor} cursor - Pass the cursor into + * docs/folder_users/list/continue to paginate through all users. The cursor + * preserves all properties as specified in the original call to + * docs/folder_users/list. + * @property {boolean} has_more - Will be set to True if a subsequent call with + * the provided cursor to docs/folder_users/list/continue returns immediately + * with some results. If set to False please allow some delay before making + * another call to docs/folder_users/list/continue. + */ /** + * @typedef {Object} PaperListUsersOnPaperDocArgs + * @property {string} doc_id - The Paper doc ID. + * @property {number} limit - Size limit per batch. The maximum number of users + * that can be retrieved per batch is 1000. Higher value results in invalid + * arguments error. + * @property {PaperUserOnPaperDocFilter} filter_by - Specify this attribute if + * you want to obtain users that have already accessed the Paper doc. + */ /** + * @typedef {Object} PaperListUsersOnPaperDocContinueArgs + * @property {string} doc_id - The Paper doc ID. + * @property {string} cursor - The cursor obtained from docs/users/list or + * docs/users/list/continue. Allows for pagination. + */ /** + * @typedef {Object} PaperListUsersOnPaperDocResponse + * @property {Array.} invitees - List of + * email addresses with their respective permission levels that are invited on + * the Paper doc. + * @property {Array.} users - List of users + * with their respective permission levels that are invited on the Paper folder. + * @property {SharingUserInfo} doc_owner - The Paper doc owner. This field is + * populated on every single response. + * @property {PaperCursor} cursor - Pass the cursor into + * docs/users/list/continue to paginate through all users. The cursor preserves + * all properties as specified in the original call to docs/users/list. + * @property {boolean} has_more - Will be set to True if a subsequent call with + * the provided cursor to docs/users/list/continue returns immediately with some + * results. If set to False please allow some delay before making another call + * to docs/users/list/continue. + */ /** + * @typedef {Object} PaperPaperApiBaseError + * @property {('insufficient_permissions'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperPaperApiCursorError + * @property {('expired_cursor'|'invalid_cursor'|'wrong_user_in_cursor'|'reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperPaperDocCreateArgs + * @property {Object} [contents] - The file contents to be uploaded. + * @property {PaperImportFormat} import_format - The format of provided data. + * @property {string} [parent_folder_id] - The Paper folder ID where the Paper + * document should be created. The API user has to have write access to this + * folder or error is thrown. + */ /** + * @typedef {Object} PaperPaperDocCreateError + * @property {('insufficient_permissions'|'other'|'content_malformed'|'folder_not_found'|'doc_length_exceeded'|'image_size_exceeded')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperPaperDocCreateUpdateResult + * @property {string} doc_id - Doc ID of the newly created doc. + * @property {number} revision - The Paper doc revision. Simply an ever + * increasing number. + * @property {string} title - The Paper doc title. + */ /** + * @typedef {Object} PaperPaperDocExport + * @property {string} doc_id - The Paper doc ID. + * @property {PaperExportFormat} export_format + */ /** + * @typedef {Object} PaperPaperDocExportResult + * @property {string} owner - The Paper doc owner's email address. + * @property {string} title - The Paper doc title. + * @property {number} revision - The Paper doc revision. Simply an ever + * increasing number. + * @property {string} mime_type - MIME type of the export. This corresponds to + * ExportFormat specified in the request. + */ /** + * @typedef {Object} PaperPaperDocPermissionLevel + * @property {('edit'|'view_and_comment'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperPaperDocSharingPolicy + * @property {string} doc_id - The Paper doc ID. + * @property {PaperSharingPolicy} sharing_policy - The default sharing policy to + * be set for the Paper doc. + */ /** + * @typedef {Object} PaperPaperDocUpdateArgs + * @property {Object} [contents] - The file contents to be uploaded. + * @property {string} doc_id - The Paper doc ID. + * @property {PaperPaperDocUpdatePolicy} doc_update_policy - The policy used for + * the current update call. + * @property {number} revision - The latest doc revision. This value must match + * the head revision or an error code will be returned. This is to prevent + * colliding writes. + * @property {PaperImportFormat} import_format - The format of provided data. + */ /** + * @typedef {Object} PaperPaperDocUpdateError + * @property {('insufficient_permissions'|'other'|'doc_not_found'|'content_malformed'|'revision_mismatch'|'doc_length_exceeded'|'image_size_exceeded'|'doc_archived'|'doc_deleted')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperPaperDocUpdatePolicy + * @property {('append'|'prepend'|'overwrite_all'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperPaperFolderCreateArg + * @property {string} name - The name of the new Paper folder. + * @property {string} [parent_folder_id] - The encrypted Paper folder Id where + * the new Paper folder should be created. The API user has to have write access + * to this folder or error is thrown. If not supplied, the new folder will be + * created at top level. + * @property {boolean} [is_team_folder] - Whether the folder to be created + * should be a team folder. This value will be ignored if parent_folder_id is + * supplied, as the new folder will inherit the type (private or team folder) + * from its parent. We will by default create a top-level private folder if both + * parent_folder_id and is_team_folder are not supplied. + */ /** + * @typedef {Object} PaperPaperFolderCreateError + * @property {('insufficient_permissions'|'other'|'folder_not_found'|'invalid_folder_id')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperPaperFolderCreateResult + * @property {string} folder_id - Folder ID of the newly created folder. + */ /** + * @typedef {Object} PaperRefPaperDoc + * @property {string} doc_id - The Paper doc ID. + */ /** + * @typedef {Object} PaperRemovePaperDocUser + * @property {string} doc_id - The Paper doc ID. + * @property {SharingMemberSelector} member - User which should be removed from + * the Paper doc. Specify only email address or Dropbox account ID. + */ /** + * Sharing policy of Paper doc. + * @typedef {Object} PaperSharingPolicy + * @property {PaperSharingPublicPolicyType} [public_sharing_policy] - This value + * applies to the non-team members. + * @property {PaperSharingTeamPolicyType} [team_sharing_policy] - This value + * applies to the team members only. The value is null for all personal + * accounts. + */ /** + * @typedef {Object} PaperSharingPublicPolicyType + * @property {('people_with_link_can_edit'|'people_with_link_can_view_and_comment'|'invite_only'|'disabled')} .tag - Tag identifying the union variant. + */ /** + * The sharing policy type of the Paper doc. + * @typedef {Object} PaperSharingTeamPolicyType + * @property {('people_with_link_can_edit'|'people_with_link_can_view_and_comment'|'invite_only')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperUserInfoWithPermissionLevel + * @property {SharingUserInfo} user - User shared on the Paper doc. + * @property {PaperPaperDocPermissionLevel} permission_level - Permission level + * for the user. + */ /** + * @typedef {Object} PaperUserOnPaperDocFilter + * @property {('visited'|'shared'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SecondaryEmailsSecondaryEmail + * @property {string} email - Secondary email address. + * @property {boolean} is_verified - Whether or not the secondary email address + * is verified to be owned by a user. + */ /** + * Possible platforms on which a user may view content. + * @typedef {Object} SeenStatePlatformType + * @property {('web'|'desktop'|'mobile_ios'|'mobile_android'|'api'|'unknown'|'mobile'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information about the inheritance policy of a shared folder. + * @typedef {Object} SharingAccessInheritance + * @property {('inherit'|'no_inherit'|'other')} .tag - Tag identifying the union variant. + */ /** + * Defines the access levels for collaborators. + * @typedef {Object} SharingAccessLevel + * @property {('owner'|'editor'|'viewer'|'viewer_no_comment'|'traverse'|'other')} .tag - Tag identifying the union variant. + */ /** + * Who can change a shared folder's access control list (ACL). In other words, + * who can add, remove, or change the privileges of members. + * @typedef {Object} SharingAclUpdatePolicy + * @property {('owner'|'editors'|'other')} .tag - Tag identifying the union variant. + */ /** + * Arguments for add_file_member. + * @typedef {Object} SharingAddFileMemberArgs + * @property {string} file - File to which to add members. + * @property {Array.} members - Members to add. Note that + * even an email address is given, this may result in a user being directly + * added to the membership if that email is the user's main account email. + * @property {string} [custom_message] - Message to send to added members in + * their invitation. + * @property {boolean} quiet - Whether added members should be notified via + * email and device notifications of their invitation. + * @property {SharingAccessLevel} access_level - AccessLevel union object, + * describing what access level we want to give new members. + * @property {boolean} add_message_as_comment - If the custom message should be + * added as a comment on the file. + */ /** + * Errors for add_file_member. + * @typedef {Object} SharingAddFileMemberError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('user_error'|'access_error'|'rate_limit'|'invalid_comment'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingAddFolderMemberArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {Array.} members - The intended list of members + * to add. Added members will receive invites to join the shared folder. + * @property {boolean} quiet - Whether added members should be notified via + * email and device notifications of their invite. + * @property {string} [custom_message] - Optional message to display to added + * members in their invitation. + */ /** + * @typedef {Object} SharingAddFolderMemberError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. Unable to access shared folder. + * @property {SharingAddMemberSelectorError} [bad_member] - Available if .tag is + * bad_member. :field:`AddFolderMemberArg.members` contains a bad invitation + * recipient. + * @property {number} [too_many_members] - Available if .tag is + * too_many_members. The value is the member limit that was reached. + * @property {number} [too_many_pending_invites] - Available if .tag is + * too_many_pending_invites. The value is the pending invite limit that was + * reached. + * @property {('access_error'|'email_unverified'|'banned_member'|'bad_member'|'cant_share_outside_team'|'too_many_members'|'too_many_pending_invites'|'rate_limit'|'too_many_invitees'|'insufficient_plan'|'team_folder'|'no_permission'|'invalid_shared_folder'|'other')} .tag - Tag identifying the union variant. + */ /** + * The member and type of access the member should have when added to a shared + * folder. + * @typedef {Object} SharingAddMember + * @property {SharingMemberSelector} member - The member to add to the shared + * folder. + * @property {SharingAccessLevel} access_level - The access level to grant + * member to the shared folder. AccessLevel.owner is disallowed. + */ /** + * @typedef {Object} SharingAddMemberSelectorError + * @property {string} [invalid_dropbox_id] - Available if .tag is + * invalid_dropbox_id. The value is the ID that could not be identified. + * @property {string} [invalid_email] - Available if .tag is invalid_email. The + * value is the e-email address that is malformed. + * @property {string} [unverified_dropbox_id] - Available if .tag is + * unverified_dropbox_id. The value is the ID of the Dropbox user with an + * unverified email address. Invite unverified users by email address instead of + * by their Dropbox ID. + * @property {('automatic_group'|'invalid_dropbox_id'|'invalid_email'|'unverified_dropbox_id'|'group_deleted'|'group_not_on_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * check documentation for ResolvedVisibility. + * @typedef {Object} SharingAlphaResolvedVisibility + * @property {('public'|'team_only'|'password'|'team_and_password'|'shared_folder_only'|'no_one'|'only_you'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information about the content that has a link audience different than that of + * this folder. + * @typedef {Object} SharingAudienceExceptionContentInfo + * @property {string} name - The name of the content, which is either a file or + * a folder. + */ /** + * The total count and truncated list of information of content inside this + * folder that has a different audience than the link on this folder. This is + * only returned for folders. + * @typedef {Object} SharingAudienceExceptions + * @property {number} count + * @property {Array.} exceptions - A + * truncated list of some of the content that is an exception. The length of + * this list could be smaller than the count since it is only a sample but will + * not be empty as long as count is not 0. + */ /** + * Information about the shared folder that prevents the link audience for this + * link from being more restrictive. + * @typedef {Object} SharingAudienceRestrictingSharedFolder + * @property {string} shared_folder_id - The ID of the shared folder. + * @property {string} name - The name of the shared folder. + * @property {SharingLinkAudience} audience - The link audience of the shared + * folder. + */ /** + * Metadata for a collection-based shared link. + * @typedef {Object} SharingCollectionLinkMetadata +@property {'collection'} [.tag] - Tag identifying this subtype variant. This +field is only present when needed to discriminate between multiple possible +subtypes. + * @property {string} url - URL of the shared link. + * @property {SharingVisibility} visibility - Who can access the link. + * @property {Timestamp} [expires] - Expiration time, if set. By default the + * link won't expire. + */ /** + * @typedef {Object} SharingCreateSharedLinkArg + * @property {string} path - The path to share. + * @property {boolean} short_url + * @property {SharingPendingUploadMode} [pending_upload] - If it's okay to share + * a path that does not yet exist, set this to either PendingUploadMode.file or + * PendingUploadMode.folder to indicate whether to assume it's a file or folder. + */ /** + * @typedef {Object} SharingCreateSharedLinkError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingCreateSharedLinkWithSettingsArg + * @property {string} path - The path to be shared by the shared link. + * @property {SharingSharedLinkSettings} [settings] - The requested settings for + * the newly created shared link. + */ /** + * @typedef {Object} SharingCreateSharedLinkWithSettingsError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {SharingSharedLinkAlreadyExistsMetadata} + * [shared_link_already_exists] - Available if .tag is + * shared_link_already_exists. The shared link already exists. You can call + * :route:`list_shared_links` to get the existing link, or use the provided + * metadata if it is returned. + * @property {SharingSharedLinkSettingsError} [settings_error] - Available if + * .tag is settings_error. There is an error with the given settings. + * @property {('path'|'email_not_verified'|'shared_link_already_exists'|'settings_error'|'access_denied')} .tag - Tag identifying the union variant. + */ /** + * The expected metadata of a shared link for a file or folder when a link is + * first created for the content. Absent if the link already exists. + * @typedef {Object} SharingExpectedSharedContentLinkMetadata + * @property {Array.} audience_options - The audience + * options that are available for the content. Some audience options may be + * unavailable. For example, team_only may be unavailable if the content is not + * owned by a user on a team. The 'default' audience option is always available + * if the user can modify link settings. + * @property {SharingLinkAudience} current_audience - The current audience of + * the link. + * @property {Array.} link_permissions - A list of + * permissions for actions you can perform on the link. + * @property {boolean} password_protected - Whether the link is protected by a + * password. + * @property {SharingAccessLevel} [access_level] - The access level on the link + * for this file. + * @property {SharingAudienceRestrictingSharedFolder} + * [audience_restricting_shared_folder] - The shared folder that prevents the + * link audience for this link from being more restrictive. + * @property {Timestamp} [expiry] - Whether the link has an expiry set on it. A + * link with an expiry will have its audience changed to members when the + * expiry is reached. + */ /** + * Sharing actions that may be taken on files. + * @typedef {Object} SharingFileAction + * @property {('disable_viewer_info'|'edit_contents'|'enable_viewer_info'|'invite_viewer'|'invite_viewer_no_comment'|'invite_editor'|'unshare'|'relinquish_membership'|'share_link'|'create_link'|'create_view_link'|'create_edit_link'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingFileErrorResult + * @property {string} [file_not_found_error] - Available if .tag is + * file_not_found_error. File specified by id was not found. + * @property {string} [invalid_file_action_error] - Available if .tag is + * invalid_file_action_error. User does not have permission to take the + * specified action on the file. + * @property {string} [permission_denied_error] - Available if .tag is + * permission_denied_error. User does not have permission to access file + * specified by file.Id. + * @property {('file_not_found_error'|'invalid_file_action_error'|'permission_denied_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * The metadata of a file shared link. + * @typedef {Object} SharingFileLinkMetadata +@property {'file'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {string} url - URL of the shared link. + * @property {string} name - The linked file name (including extension). This + * never contains a slash. + * @property {SharingLinkPermissions} link_permissions - The link's access + * permissions. + * @property {Timestamp} client_modified - The modification time set by the + * desktop client when the file was added to Dropbox. Since this time is not + * verified (the Dropbox server stores whatever the desktop client sends up), + * this should only be used for display purposes (such as sorting) and not, for + * example, to determine if a file has changed or not. + * @property {Timestamp} server_modified - The last time the file was modified + * on Dropbox. + * @property {string} rev - A unique identifier for the current revision of a + * file. This field is the same rev as elsewhere in the API and can be used to + * detect changes and avoid conflicts. + * @property {number} size - The file size in bytes. + * @property {string} [id] - A unique identifier for the linked file. + * @property {Timestamp} [expires] - Expiration time, if set. By default the + * link won't expire. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will only be present + * only if the linked file is in the authenticated user's dropbox. + * @property {SharingTeamMemberInfo} [team_member_info] - The team membership + * information of the link's owner. This field will only be present if the + * link's owner is a team member. + * @property {UsersTeam} [content_owner_team_info] - The team information of the + * content's owner. This field will only be present if the content's owner is a + * team member and the content's owner team is different from the link's owner + * team. + */ /** + * @typedef {Object} SharingFileMemberActionError + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. Specified file was invalid or user does not have access. + * @property {SharingMemberAccessLevelResult} [no_explicit_access] - Available + * if .tag is no_explicit_access. The action cannot be completed because the + * target member does not have explicit access to the file. The return value is + * the access that the member has to the file from a parent folder. + * @property {('invalid_member'|'no_permission'|'access_error'|'no_explicit_access'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingFileMemberActionIndividualResult + * @property {SharingAccessLevel} [success] - Available if .tag is success. Part + * of the response for both add_file_member and remove_file_member_v1 + * (deprecated). For add_file_member, indicates giving access was successful and + * at what AccessLevel. For remove_file_member_v1, indicates member was + * successfully removed from the file. If AccessLevel is given, the member still + * has access via a parent shared folder. + * @property {SharingFileMemberActionError} [member_error] - Available if .tag + * is member_error. User was not able to perform this action. + * @property {('success'|'member_error')} .tag - Tag identifying the union variant. + */ /** + * Per-member result for add_file_member. + * @typedef {Object} SharingFileMemberActionResult + * @property {SharingMemberSelector} member - One of specified input members. + * @property {SharingFileMemberActionIndividualResult} result - The outcome of + * the action on this member. + * @property {string} [sckey_sha1] - The SHA-1 encrypted shared content key. + * @property {Array.} [invitation_signature] - The sharing + * sender-recipient invitation signatures for the input member_id. A member_id + * can be a group and thus have multiple users and multiple invitation + * signatures. + */ /** + * @typedef {Object} SharingFileMemberRemoveActionResult + * @property {SharingMemberAccessLevelResult} [success] - Available if .tag is + * success. Member was successfully removed from this file. + * @property {SharingFileMemberActionError} [member_error] - Available if .tag + * is member_error. User was not able to remove this member. + * @property {('success'|'member_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * Whether the user is allowed to take the sharing action on the file. + * @typedef {Object} SharingFilePermission + * @property {SharingFileAction} action - The action that the user may wish to + * take on the file. + * @property {boolean} allow - True if the user is allowed to take the action. + * @property {SharingPermissionDeniedReason} [reason] - The reason why the user + * is denied the permission. Not present if the action is allowed. + */ /** + * Actions that may be taken on shared folders. + * @typedef {Object} SharingFolderAction + * @property {('change_options'|'disable_viewer_info'|'edit_contents'|'enable_viewer_info'|'invite_editor'|'invite_viewer'|'invite_viewer_no_comment'|'relinquish_membership'|'unmount'|'unshare'|'leave_a_copy'|'share_link'|'create_link'|'set_access_inheritance'|'other')} .tag - Tag identifying the union variant. + */ /** + * The metadata of a folder shared link. + * @typedef {Object} SharingFolderLinkMetadata +@property {'folder'} [.tag] - Tag identifying this subtype variant. This field +is only present when needed to discriminate between multiple possible subtypes. + * @property {string} url - URL of the shared link. + * @property {string} name - The linked file name (including extension). This + * never contains a slash. + * @property {SharingLinkPermissions} link_permissions - The link's access + * permissions. + * @property {string} [id] - A unique identifier for the linked file. + * @property {Timestamp} [expires] - Expiration time, if set. By default the + * link won't expire. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will only be present + * only if the linked file is in the authenticated user's dropbox. + * @property {SharingTeamMemberInfo} [team_member_info] - The team membership + * information of the link's owner. This field will only be present if the + * link's owner is a team member. + * @property {UsersTeam} [content_owner_team_info] - The team information of the + * content's owner. This field will only be present if the content's owner is a + * team member and the content's owner team is different from the link's owner + * team. + */ /** + * Whether the user is allowed to take the action on the shared folder. + * @typedef {Object} SharingFolderPermission + * @property {SharingFolderAction} action - The action that the user may wish to + * take on the folder. + * @property {boolean} allow - True if the user is allowed to take the action. + * @property {SharingPermissionDeniedReason} [reason] - The reason why the user + * is denied the permission. Not present if the action is allowed, or if no + * reason is available. + */ /** + * A set of policies governing membership and privileges for a shared folder. + * @typedef {Object} SharingFolderPolicy + * @property {SharingAclUpdatePolicy} acl_update_policy - Who can add and remove + * members from this shared folder. + * @property {SharingSharedLinkPolicy} shared_link_policy - Who links can be + * shared with. + * @property {SharingMemberPolicy} [member_policy] - Who can be a member of this + * shared folder, as set on the folder itself. The effective policy may differ + * from this value if the team-wide policy is more restrictive. Present only if + * the folder is owned by a team. + * @property {SharingMemberPolicy} [resolved_member_policy] - Who can be a + * member of this shared folder, taking into account both the folder and the + * team-wide policy. This value may differ from that of member_policy if the + * team-wide policy is more restrictive than the folder policy. Present only if + * the folder is owned by a team. + * @property {SharingViewerInfoPolicy} [viewer_info_policy] - Who can + * enable/disable viewer info for this shared folder. + */ /** + * Arguments of get_file_metadata. + * @typedef {Object} SharingGetFileMetadataArg + * @property {string} file - The file to query. + * @property {Array.} [actions] - A list of `FileAction`s + * corresponding to `FilePermission`s that should appear in the response's + * SharedFileMetadata.permissions field describing the actions the + * authenticated user can perform on the file. + */ /** + * Arguments of get_file_metadata/batch. + * @typedef {Object} SharingGetFileMetadataBatchArg + * @property {Array.} files - The files to query. + * @property {Array.} [actions] - A list of `FileAction`s + * corresponding to `FilePermission`s that should appear in the response's + * SharedFileMetadata.permissions field describing the actions the + * authenticated user can perform on the file. + */ /** + * Per file results of get_file_metadata/batch. + * @typedef {Object} SharingGetFileMetadataBatchResult + * @property {string} file - This is the input file identifier corresponding to + * one of GetFileMetadataBatchArg.files. + * @property {SharingGetFileMetadataIndividualResult} result - The result for + * this particular file. + */ /** + * Error result for get_file_metadata. + * @typedef {Object} SharingGetFileMetadataError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('user_error'|'access_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingGetFileMetadataIndividualResult + * @property {SharingSharedFileMetadata} [metadata] - Available if .tag is + * metadata. The result for this file if it was successful. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. The result for this file if it was an error. + * @property {('metadata'|'access_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingGetMetadataArgs + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {Array.} [actions] - A list of `FolderAction`s + * corresponding to `FolderPermission`s that should appear in the response's + * SharedFolderMetadata.permissions field describing the actions the + * authenticated user can perform on the folder. + */ /** + * @typedef {Object} SharingGetSharedLinkFileError + * @property {('shared_link_not_found'|'shared_link_access_denied'|'unsupported_link_type'|'other'|'shared_link_is_directory')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingGetSharedLinkMetadataArg + * @property {string} url - URL of the shared link. + * @property {string} [path] - If the shared link is to a folder, this parameter + * can be used to retrieve the metadata for a specific file or sub-folder in + * this folder. A relative path should be used. + * @property {string} [link_password] - If the shared link has a password, this + * parameter can be used. + */ /** + * @typedef {Object} SharingGetSharedLinksArg + * @property {string} [path] - See get_shared_links description. + */ /** + * @typedef {Object} SharingGetSharedLinksError + * @property {string} [path] - Available if .tag is path. + * @property {('path'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingGetSharedLinksResult + * @property + * {Array.<(SharingPathLinkMetadata|SharingCollectionLinkMetadata|SharingLinkMetadata)>} + * links - Shared links applicable to the path argument. + */ /** + * The information about a group. Groups is a way to manage a list of users who + * need same access permission to the shared folder. + * @typedef {Object} SharingGroupInfo + * @property {string} group_name + * @property {string} group_id + * @property {TeamCommonGroupManagementType} group_management_type - Who is + * allowed to manage the group. + * @property {TeamCommonGroupType} group_type - The type of group. + * @property {boolean} is_member - If the current user is a member of the group. + * @property {boolean} is_owner - If the current user is an owner of the group. + * @property {boolean} same_team - If the group is owned by the current user's + * team. + * @property {string} [group_external_id] - External ID of group. This is an + * arbitrary ID that an admin can attach to a group. + * @property {number} [member_count] - The number of members in the group. + */ /** + * The information about a group member of the shared content. + * @typedef {Object} SharingGroupMembershipInfo + * @property {SharingAccessLevel} access_type - The access type for this member. + * It contains inherited access type from parent folder, and acquired access + * type from this folder. + * @property {SharingGroupInfo} group - The information about the membership + * group. + * @property {Array.} [permissions] - The permissions + * that requesting user has on this member. The set of permissions corresponds + * to the MemberActions in the request. + * @property {string} [initials] - Never set. + * @property {boolean} is_inherited - True if the member has access from a + * parent folder. + */ /** + * @typedef {Object} SharingInsufficientPlan + * @property {string} message - A message to tell the user to upgrade in order + * to support expected action. + * @property {string} [upsell_url] - A URL to send the user to in order to + * obtain the account type they need, e.g. upgrading. Absent if there is no + * action the user can take to upgrade. + */ /** + * @typedef {Object} SharingInsufficientQuotaAmounts + * @property {number} space_needed - The amount of space needed to add the item + * (the size of the item). + * @property {number} space_shortage - The amount of extra space needed to add + * the item. + * @property {number} space_left - The amount of space left in the user's + * Dropbox, less than space_needed. + */ /** + * Information about the recipient of a shared content invitation. + * @typedef {Object} SharingInviteeInfo + * @property {string} [email] - Available if .tag is email. Email address of + * invited user. + * @property {('email'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information about an invited member of a shared content. + * @typedef {Object} SharingInviteeMembershipInfo + * @property {SharingAccessLevel} access_type - The access type for this member. + * It contains inherited access type from parent folder, and acquired access + * type from this folder. + * @property {SharingInviteeInfo} invitee - Recipient of the invitation. + * @property {Array.} [permissions] - The permissions + * that requesting user has on this member. The set of permissions corresponds + * to the MemberActions in the request. + * @property {string} [initials] - Never set. + * @property {boolean} is_inherited - True if the member has access from a + * parent folder. + * @property {SharingUserInfo} [user] - The user this invitation is tied to, if + * available. + */ /** + * Error occurred while performing an asynchronous job from unshare_folder or + * remove_folder_member. + * @typedef {Object} SharingJobError + * @property {SharingUnshareFolderError} [unshare_folder_error] - Available if + * .tag is unshare_folder_error. Error occurred while performing + * :route:`unshare_folder` action. + * @property {SharingRemoveFolderMemberError} [remove_folder_member_error] - + * Available if .tag is remove_folder_member_error. Error occurred while + * performing :route:`remove_folder_member` action. + * @property {SharingRelinquishFolderMembershipError} + * [relinquish_folder_membership_error] - Available if .tag is + * relinquish_folder_membership_error. Error occurred while performing + * :route:`relinquish_folder_membership` action. + * @property {('unshare_folder_error'|'remove_folder_member_error'|'relinquish_folder_membership_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingJobStatus + * @property {SharingJobError} [failed] - Available if .tag is failed. The + * asynchronous job returned an error. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingLinkAccessLevel + * @property {('viewer'|'editor'|'other')} .tag - Tag identifying the union variant. + */ /** + * Actions that can be performed on a link. + * @typedef {Object} SharingLinkAction + * @property {('change_access_level'|'change_audience'|'remove_expiry'|'remove_password'|'set_expiry'|'set_password'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingLinkAudience + * @property {('public'|'team'|'no_one'|'password'|'members'|'other')} .tag - Tag identifying the union variant. + */ /** + * check documentation for VisibilityPolicyDisallowedReason. + * @typedef {Object} SharingLinkAudienceDisallowedReason + * @property {('delete_and_recreate'|'restricted_by_shared_folder'|'restricted_by_team'|'user_not_on_team'|'user_account_type'|'permission_denied'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingLinkAudienceOption + * @property {SharingLinkAudience} audience - Specifies who can access the link. + * @property {boolean} allowed - Whether the user calling this API can select + * this audience option. + * @property {SharingLinkAudienceDisallowedReason} [disallowed_reason] - If + * allowed is false, this will provide the reason that the user is not permitted + * to set the visibility to this policy. + */ /** + * @typedef {Object} SharingLinkExpiry + * @property {Timestamp} [set_expiry] - Available if .tag is set_expiry. Set a + * new expiry or change an existing expiry. + * @property {('remove_expiry'|'set_expiry'|'other')} .tag - Tag identifying the union variant. + */ /** + * Metadata for a shared link. This can be either a PathLinkMetadata or + * CollectionLinkMetadata. + * @typedef {Object} SharingLinkMetadata +@property {("path"|"collection")} .tag - Tag identifying the subtype variant. + * @property {string} url - URL of the shared link. + * @property {SharingVisibility} visibility - Who can access the link. + * @property {Timestamp} [expires] - Expiration time, if set. By default the + * link won't expire. + */ /** + * @typedef {Object} SharingLinkPassword + * @property {string} [set_password] - Available if .tag is set_password. Set a + * new password or change an existing password. + * @property {('remove_password'|'set_password'|'other')} .tag - Tag identifying the union variant. + */ /** + * Permissions for actions that can be performed on a link. + * @typedef {Object} SharingLinkPermission + * @property {SharingLinkAction} action + * @property {boolean} allow + * @property {SharingPermissionDeniedReason} [reason] + */ /** + * @typedef {Object} SharingLinkPermissions + * @property {boolean} can_revoke - Whether the caller can revoke the shared + * link. + * @property {Array.} visibility_policies - A list of + * policies that the user might be able to set for the visibility. + * @property {boolean} can_set_expiry - Whether the user can set the expiry + * settings of the link. This refers to the ability to create a new expiry and + * modify an existing expiry. + * @property {boolean} can_remove_expiry - Whether the user can remove the + * expiry of the link. + * @property {boolean} allow_download - Whether the link can be downloaded or + * not. + * @property {boolean} can_allow_download - Whether the user can allow downloads + * via the link. This refers to the ability to remove a no-download restriction + * on the link. + * @property {boolean} can_disallow_download - Whether the user can disallow + * downloads via the link. This refers to the ability to impose a no-download + * restriction on the link. + * @property {boolean} allow_comments - Whether comments are enabled for the + * linked file. This takes the team commenting policy into account. + * @property {boolean} team_restricts_comments - Whether the team has disabled + * commenting globally. + * @property {SharingResolvedVisibility} [resolved_visibility] - The current + * visibility of the link after considering the shared links policies of the the + * team (in case the link's owner is part of a team) and the shared folder (in + * case the linked file is part of a shared folder). This field is shown only if + * the caller has access to this info (the link's owner always has access to + * this data). For some links, an effective_audience value is returned instead. + * @property {SharingRequestedVisibility} [requested_visibility] - The shared + * link's requested visibility. This can be overridden by the team and shared + * folder policies. The final visibility, after considering these policies, can + * be found in resolved_visibility. This is shown only if the caller is the + * link's owner and resolved_visibility is returned instead of + * effective_audience. + * @property {SharingSharedLinkAccessFailureReason} [revoke_failure_reason] - + * The failure reason for revoking the link. This field will only be present if + * the can_revoke is false. + * @property {SharingLinkAudience} [effective_audience] - The type of audience + * who can benefit from the access level specified by the `link_access_level` + * field. + * @property {SharingLinkAccessLevel} [link_access_level] - The access level + * that the link will grant to its users. A link can grant additional rights to + * a user beyond their current access level. For example, if a user was invited + * as a viewer to a file, and then opens a link with `link_access_level` set to + * `editor`, then they will gain editor privileges. The `link_access_level` is a + * property of the link, and does not depend on who is calling this API. In + * particular, `link_access_level` does not take into account the API caller's + * current permissions to the content. + * @property {Array.} [audience_options] - A list of + * link audience options the user might be able to set as the new audience. + * @property {boolean} [can_set_password] - Whether the user can set a password + * for the link. + * @property {boolean} [can_remove_password] - Whether the user can remove the + * password of the link. + * @property {boolean} [require_password] - Whether the user is required to + * provide a password to view the link. + * @property {boolean} [can_use_extended_sharing_controls] - Whether the user + * can use extended sharing controls, based on their account type. + */ /** + * Settings that apply to a link. + * @typedef {Object} SharingLinkSettings + * @property {SharingAccessLevel} [access_level] - The access level on the link + * for this file. Currently, it only accepts 'viewer' and 'viewer_no_comment'. + * @property {SharingLinkAudience} [audience] - The type of audience on the link + * for this file. + * @property {SharingLinkExpiry} [expiry] - An expiry timestamp to set on a + * link. + * @property {SharingLinkPassword} [password] - The password for the link. + */ /** + * Arguments for list_file_members. + * @typedef {Object} SharingListFileMembersArg + * @property {string} file - The file for which you want to see members. + * @property {Array.} [actions] - The actions for which to + * return permissions on a member. + * @property {boolean} include_inherited - Whether to include members who only + * have access from a parent shared folder. + * @property {number} limit - Number of members to return max per query. + * Defaults to 100 if no limit is specified. + */ /** + * Arguments for list_file_members/batch. + * @typedef {Object} SharingListFileMembersBatchArg + * @property {Array.} files - Files for which to return members. + * @property {number} limit - Number of members to return max per query. + * Defaults to 10 if no limit is specified. + */ /** + * Per-file result for list_file_members/batch. + * @typedef {Object} SharingListFileMembersBatchResult + * @property {string} file - This is the input file identifier, whether an ID or + * a path. + * @property {SharingListFileMembersIndividualResult} result - The result for + * this particular file. + */ /** + * Arguments for list_file_members/continue. + * @typedef {Object} SharingListFileMembersContinueArg + * @property {string} cursor - The cursor returned by your last call to + * list_file_members, list_file_members/continue, or list_file_members/batch. + */ /** + * Error for list_file_members/continue. + * @typedef {Object} SharingListFileMembersContinueError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('user_error'|'access_error'|'invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingListFileMembersCountResult + * @property {SharingSharedFileMembers} members - A list of members on this + * file. + * @property {number} member_count - The number of members on this file. This + * does not include inherited members. + */ /** + * Error for list_file_members. + * @typedef {Object} SharingListFileMembersError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('user_error'|'access_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingListFileMembersIndividualResult + * @property {SharingListFileMembersCountResult} [result] - Available if .tag is + * result. The results of the query for this file if it was successful. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. The result of the query for this file if it was an error. + * @property {('result'|'access_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * Arguments for list_received_files. + * @typedef {Object} SharingListFilesArg + * @property {number} limit - Number of files to return max per query. Defaults + * to 100 if no limit is specified. + * @property {Array.} [actions] - A list of `FileAction`s + * corresponding to `FilePermission`s that should appear in the response's + * SharedFileMetadata.permissions field describing the actions the + * authenticated user can perform on the file. + */ /** + * Arguments for list_received_files/continue. + * @typedef {Object} SharingListFilesContinueArg + * @property {string} cursor - Cursor in ListFilesResult.cursor. + */ /** + * Error results for list_received_files/continue. + * @typedef {Object} SharingListFilesContinueError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. User account had a problem. + * @property {('user_error'|'invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * Success results for list_received_files. + * @typedef {Object} SharingListFilesResult + * @property {Array.} entries - Information about the + * files shared with current user. + * @property {string} [cursor] - Cursor used to obtain additional shared files. + */ /** + * @typedef {Object} SharingListFolderMembersArgs + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {Array.} [actions] - This is a list indicating + * whether each returned member will include a boolean value + * MemberPermission.allow that describes whether the current user can perform + * the MemberAction on the member. + * @property {number} limit - The maximum number of results that include + * members, groups and invitees to return per request. + */ /** + * @typedef {Object} SharingListFolderMembersContinueArg + * @property {string} cursor - The cursor returned by your last call to + * list_folder_members or list_folder_members/continue. + */ /** + * @typedef {Object} SharingListFolderMembersContinueError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingListFolderMembersCursorArg + * @property {Array.} [actions] - This is a list indicating + * whether each returned member will include a boolean value + * MemberPermission.allow that describes whether the current user can perform + * the MemberAction on the member. + * @property {number} limit - The maximum number of results that include + * members, groups and invitees to return per request. + */ /** + * @typedef {Object} SharingListFoldersArgs + * @property {number} limit - The maximum number of results to return per + * request. + * @property {Array.} [actions] - A list of `FolderAction`s + * corresponding to `FolderPermission`s that should appear in the response's + * SharedFolderMetadata.permissions field describing the actions the + * authenticated user can perform on the folder. + */ /** + * @typedef {Object} SharingListFoldersContinueArg + * @property {string} cursor - The cursor returned by the previous API call + * specified in the endpoint description. + */ /** + * @typedef {Object} SharingListFoldersContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * Result for list_folders or list_mountable_folders, depending on which + * endpoint was requested. Unmounted shared folders can be identified by the + * absence of SharedFolderMetadata.path_lower. + * @typedef {Object} SharingListFoldersResult + * @property {Array.} entries - List of all shared + * folders the authenticated user has access to. + * @property {string} [cursor] - Present if there are additional shared folders + * that have not been returned yet. Pass the cursor into the corresponding + * continue endpoint (either list_folders/continue or + * list_mountable_folders/continue) to list additional folders. + */ /** + * @typedef {Object} SharingListSharedLinksArg + * @property {string} [path] - See list_shared_links description. + * @property {string} [cursor] - The cursor returned by your last call to + * list_shared_links. + * @property {boolean} [direct_only] - See list_shared_links description. + */ /** + * @typedef {Object} SharingListSharedLinksError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingListSharedLinksResult + * @property + * {Array.<(SharingFileLinkMetadata|SharingFolderLinkMetadata|SharingSharedLinkMetadata)>} + * links - Shared links applicable to the path argument. + * @property {boolean} has_more - Is true if there are additional shared links + * that have not been returned yet. Pass the cursor into list_shared_links to + * retrieve them. + * @property {string} [cursor] - Pass the cursor into list_shared_links to + * obtain the additional links. Cursor is returned only if no path is given. + */ /** + * Contains information about a member's access level to content after an + * operation. + * @typedef {Object} SharingMemberAccessLevelResult + * @property {SharingAccessLevel} [access_level] - The member still has this + * level of access to the content through a parent folder. + * @property {string} [warning] - A localized string with additional information + * about why the user has this access level to the content. + * @property {Array.} [access_details] - The + * parent folders that a member has access to. The field is present if the user + * has access to the first parent folder where the member gains access. + */ /** + * Actions that may be taken on members of a shared folder. + * @typedef {Object} SharingMemberAction + * @property {('leave_a_copy'|'make_editor'|'make_owner'|'make_viewer'|'make_viewer_no_comment'|'remove'|'other')} .tag - Tag identifying the union variant. + */ /** + * Whether the user is allowed to take the action on the associated member. + * @typedef {Object} SharingMemberPermission + * @property {SharingMemberAction} action - The action that the user may wish to + * take on the member. + * @property {boolean} allow - True if the user is allowed to take the action. + * @property {SharingPermissionDeniedReason} [reason] - The reason why the user + * is denied the permission. Not present if the action is allowed. + */ /** + * Policy governing who can be a member of a shared folder. Only applicable to + * folders owned by a user on a team. + * @typedef {Object} SharingMemberPolicy + * @property {('team'|'anyone'|'other')} .tag - Tag identifying the union variant. + */ /** + * Includes different ways to identify a member of a shared folder. + * @typedef {Object} SharingMemberSelector + * @property {string} [dropbox_id] - Available if .tag is dropbox_id. Dropbox + * account, team member, or group ID of member. + * @property {string} [email] - Available if .tag is email. Email address of + * member. + * @property {('dropbox_id'|'email'|'other')} .tag - Tag identifying the union variant. + */ /** + * The information about a member of the shared content. + * @typedef {Object} SharingMembershipInfo + * @property {SharingAccessLevel} access_type - The access type for this member. + * It contains inherited access type from parent folder, and acquired access + * type from this folder. + * @property {Array.} [permissions] - The permissions + * that requesting user has on this member. The set of permissions corresponds + * to the MemberActions in the request. + * @property {string} [initials] - Never set. + * @property {boolean} is_inherited - True if the member has access from a + * parent folder. + */ /** + * @typedef {Object} SharingModifySharedLinkSettingsArgs + * @property {string} url - URL of the shared link to change its settings. + * @property {SharingSharedLinkSettings} settings - Set of settings for the + * shared link. + * @property {boolean} remove_expiration - If set to true, removes the + * expiration of the shared link. + */ /** + * @typedef {Object} SharingModifySharedLinkSettingsError + * @property {SharingSharedLinkSettingsError} [settings_error] - Available if + * .tag is settings_error. There is an error with the given settings. + * @property {('shared_link_not_found'|'shared_link_access_denied'|'unsupported_link_type'|'other'|'settings_error'|'email_not_verified')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingMountFolderArg + * @property {string} shared_folder_id - The ID of the shared folder to mount. + */ /** + * @typedef {Object} SharingMountFolderError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {SharingInsufficientQuotaAmounts} [insufficient_quota] - Available + * if .tag is insufficient_quota. The current user does not have enough space to + * mount the shared folder. + * @property {('access_error'|'inside_shared_folder'|'insufficient_quota'|'already_mounted'|'no_permission'|'not_mountable'|'other')} .tag - Tag identifying the union variant. + */ /** + * Contains information about a parent folder that a member has access to. + * @typedef {Object} SharingParentFolderAccessInfo + * @property {string} folder_name - Display name for the folder. + * @property {string} shared_folder_id - The identifier of the parent shared + * folder. + * @property {Array.} permissions - The user's + * permissions for the parent shared folder. + * @property {string} path - The full path to the parent shared folder relative + * to the acting user's root. + */ /** + * Metadata for a path-based shared link. + * @typedef {Object} SharingPathLinkMetadata +@property {'path'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {string} url - URL of the shared link. + * @property {SharingVisibility} visibility - Who can access the link. + * @property {string} path - Path in user's Dropbox. + * @property {Timestamp} [expires] - Expiration time, if set. By default the + * link won't expire. + */ /** + * Flag to indicate pending upload default (for linking to not-yet-existing + * paths). + * @typedef {Object} SharingPendingUploadMode + * @property {('file'|'folder')} .tag - Tag identifying the union variant. + */ /** + * Possible reasons the user is denied a permission. + * @typedef {Object} SharingPermissionDeniedReason + * @property {SharingInsufficientPlan} [insufficient_plan] - Available if .tag + * is insufficient_plan. + * @property {('user_not_same_team_as_owner'|'user_not_allowed_by_owner'|'target_is_indirect_member'|'target_is_owner'|'target_is_self'|'target_not_active'|'folder_is_limited_team_folder'|'owner_not_on_team'|'permission_denied'|'restricted_by_team'|'user_account_type'|'user_not_on_team'|'folder_is_inside_shared_folder'|'restricted_by_parent_folder'|'insufficient_plan'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingRelinquishFileMembershipArg + * @property {string} file - The path or id for the file. + */ /** + * @typedef {Object} SharingRelinquishFileMembershipError + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'group_access'|'no_permission'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingRelinquishFolderMembershipArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {boolean} leave_a_copy - Keep a copy of the folder's contents upon + * relinquishing membership. This must be set to false when the folder is within + * a team folder or another shared folder. + */ /** + * @typedef {Object} SharingRelinquishFolderMembershipError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'folder_owner'|'mounted'|'group_access'|'team_folder'|'no_permission'|'no_explicit_access'|'other')} .tag - Tag identifying the union variant. + */ /** + * Arguments for remove_file_member_2. + * @typedef {Object} SharingRemoveFileMemberArg + * @property {string} file - File from which to remove members. + * @property {SharingMemberSelector} member - Member to remove from this file. + * Note that even if an email is specified, it may result in the removal of a + * user (not an invitee) if the user's main account corresponds to that email + * address. + */ /** + * Errors for remove_file_member_2. + * @typedef {Object} SharingRemoveFileMemberError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {SharingMemberAccessLevelResult} [no_explicit_access] - Available + * if .tag is no_explicit_access. This member does not have explicit access to + * the file and therefore cannot be removed. The return value is the access that + * a user might have to the file from a parent folder. + * @property {('user_error'|'access_error'|'no_explicit_access'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingRemoveFolderMemberArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {SharingMemberSelector} member - The member to remove from the + * folder. + * @property {boolean} leave_a_copy - If true, the removed user will keep their + * copy of the folder after it's unshared, assuming it was mounted. Otherwise, + * it will be removed from their Dropbox. This must be set to false when + * removing a group, or when the folder is within a team folder or another + * shared folder. + */ /** + * @typedef {Object} SharingRemoveFolderMemberError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {SharingSharedFolderMemberError} [member_error] - Available if .tag + * is member_error. + * @property {('access_error'|'member_error'|'folder_owner'|'group_access'|'team_folder'|'no_permission'|'too_many_files'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingRemoveMemberJobStatus + * @property {SharingMemberAccessLevelResult} [complete] - Available if .tag is + * complete. Removing the folder member has finished. The value is information + * about whether the member has another form of access. + * @property {SharingRemoveFolderMemberError} [failed] - Available if .tag is + * failed. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingRequestedLinkAccessLevel + * @property {('viewer'|'editor'|'max'|'default'|'other')} .tag - Tag identifying the union variant. + */ /** + * The access permission that can be requested by the caller for the shared + * link. Note that the final resolved visibility of the shared link takes into + * account other aspects, such as team and shared folder settings. Check the + * ResolvedVisibility for more info on the possible resolved visibility values + * of shared links. + * @typedef {Object} SharingRequestedVisibility + * @property {('public'|'team_only'|'password')} .tag - Tag identifying the union variant. + */ /** + * The actual access permissions values of shared links after taking into + * account user preferences and the team and shared folder settings. Check the + * RequestedVisibility for more info on the possible visibility values that can + * be set by the shared link's owner. + * @typedef {Object} SharingResolvedVisibility + * @property {('public'|'team_only'|'password'|'team_and_password'|'shared_folder_only'|'no_one'|'only_you'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingRevokeSharedLinkArg + * @property {string} url - URL of the shared link. + */ /** + * @typedef {Object} SharingRevokeSharedLinkError + * @property {('shared_link_not_found'|'shared_link_access_denied'|'unsupported_link_type'|'other'|'shared_link_malformed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingSetAccessInheritanceArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {SharingAccessInheritance} access_inheritance - The access + * inheritance settings for the folder. + */ /** + * @typedef {Object} SharingSetAccessInheritanceError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. Unable to access shared folder. + * @property {('access_error'|'no_permission'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingShareFolderArg + * @property {string} path - The path to the folder to share. If it does not + * exist, then a new one is created. + * @property {SharingAclUpdatePolicy} [acl_update_policy] - Who can add and + * remove members of this shared folder. + * @property {boolean} force_async - Whether to force the share to happen + * asynchronously. + * @property {SharingMemberPolicy} [member_policy] - Who can be a member of this + * shared folder. Only applicable if the current user is on a team. + * @property {SharingSharedLinkPolicy} [shared_link_policy] - The policy to + * apply to shared links created for content inside this shared folder. The + * current user must be on a team to set this policy to + * SharedLinkPolicy.members. + * @property {SharingViewerInfoPolicy} [viewer_info_policy] - Who can + * enable/disable viewer info for this shared folder. + * @property {SharingAccessInheritance} access_inheritance - The access + * inheritance settings for the folder. + * @property {Array.} [actions] - A list of `FolderAction`s + * corresponding to `FolderPermission`s that should appear in the response's + * SharedFolderMetadata.permissions field describing the actions the + * authenticated user can perform on the folder. + * @property {SharingLinkSettings} [link_settings] - Settings on the link for + * this folder. + */ /** + * @typedef {Object} SharingShareFolderArgBase + * @property {string} path - The path to the folder to share. If it does not + * exist, then a new one is created. + * @property {SharingAclUpdatePolicy} [acl_update_policy] - Who can add and + * remove members of this shared folder. + * @property {boolean} force_async - Whether to force the share to happen + * asynchronously. + * @property {SharingMemberPolicy} [member_policy] - Who can be a member of this + * shared folder. Only applicable if the current user is on a team. + * @property {SharingSharedLinkPolicy} [shared_link_policy] - The policy to + * apply to shared links created for content inside this shared folder. The + * current user must be on a team to set this policy to + * SharedLinkPolicy.members. + * @property {SharingViewerInfoPolicy} [viewer_info_policy] - Who can + * enable/disable viewer info for this shared folder. + * @property {SharingAccessInheritance} access_inheritance - The access + * inheritance settings for the folder. + */ /** + * @typedef {Object} SharingShareFolderError + * @property {SharingSharePathError} [bad_path] - Available if .tag is bad_path. + * :field:`ShareFolderArg.path` is invalid. + * @property {('email_unverified'|'bad_path'|'team_policy_disallows_member_policy'|'disallowed_shared_link_policy'|'other'|'no_permission')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingShareFolderErrorBase + * @property {SharingSharePathError} [bad_path] - Available if .tag is bad_path. + * :field:`ShareFolderArg.path` is invalid. + * @property {('email_unverified'|'bad_path'|'team_policy_disallows_member_policy'|'disallowed_shared_link_policy'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingShareFolderJobStatus + * @property {SharingSharedFolderMetadata} [complete] - Available if .tag is + * complete. The share job has finished. The value is the metadata for the + * folder. + * @property {SharingShareFolderError} [failed] - Available if .tag is failed. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingShareFolderLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {SharingSharedFolderMetadata} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingSharePathError + * @property {SharingSharedFolderMetadata} [already_shared] - Available if .tag + * is already_shared. Folder is already shared. Contains metadata about the + * existing shared folder. + * @property {('is_file'|'inside_shared_folder'|'contains_shared_folder'|'contains_app_folder'|'contains_team_folder'|'is_app_folder'|'inside_app_folder'|'is_public_folder'|'inside_public_folder'|'already_shared'|'invalid_path'|'is_osx_package'|'inside_osx_package'|'is_vault'|'is_vault_locked'|'is_family'|'other')} .tag - Tag identifying the union variant. + */ /** + * Metadata of a shared link for a file or folder. + * @typedef {Object} SharingSharedContentLinkMetadata + * @property {Array.} audience_options - The audience + * options that are available for the content. Some audience options may be + * unavailable. For example, team_only may be unavailable if the content is not + * owned by a user on a team. The 'default' audience option is always available + * if the user can modify link settings. + * @property {SharingLinkAudience} current_audience - The current audience of + * the link. + * @property {Array.} link_permissions - A list of + * permissions for actions you can perform on the link. + * @property {boolean} password_protected - Whether the link is protected by a + * password. + * @property {string} url - The URL of the link. + * @property {SharingAccessLevel} [access_level] - The access level on the link + * for this file. + * @property {SharingAudienceRestrictingSharedFolder} + * [audience_restricting_shared_folder] - The shared folder that prevents the + * link audience for this link from being more restrictive. + * @property {Timestamp} [expiry] - Whether the link has an expiry set on it. A + * link with an expiry will have its audience changed to members when the + * expiry is reached. + * @property {SharingAudienceExceptions} [audience_exceptions] - The content + * inside this folder with link audience different than this folder's. This is + * only returned when an endpoint that returns metadata for a single shared + * folder is called, e.g. /get_folder_metadata. + */ /** + * @typedef {Object} SharingSharedContentLinkMetadataBase + * @property {Array.} audience_options - The audience + * options that are available for the content. Some audience options may be + * unavailable. For example, team_only may be unavailable if the content is not + * owned by a user on a team. The 'default' audience option is always available + * if the user can modify link settings. + * @property {SharingLinkAudience} current_audience - The current audience of + * the link. + * @property {Array.} link_permissions - A list of + * permissions for actions you can perform on the link. + * @property {boolean} password_protected - Whether the link is protected by a + * password. + * @property {SharingAccessLevel} [access_level] - The access level on the link + * for this file. + * @property {SharingAudienceRestrictingSharedFolder} + * [audience_restricting_shared_folder] - The shared folder that prevents the + * link audience for this link from being more restrictive. + * @property {Timestamp} [expiry] - Whether the link has an expiry set on it. A + * link with an expiry will have its audience changed to members when the + * expiry is reached. + */ /** + * Shared file user, group, and invitee membership. Used for the results of + * list_file_members and list_file_members/continue, and used as part of the + * results for list_file_members/batch. + * @typedef {Object} SharingSharedFileMembers + * @property {Array.} users - The list of user + * members of the shared file. + * @property {Array.} groups - The list of group + * members of the shared file. + * @property {Array.} invitees - The list of + * invited members of a file, but have not logged in and claimed this. + * @property {string} [cursor] - Present if there are additional shared file + * members that have not been returned yet. Pass the cursor into + * list_file_members/continue to list additional members. + */ /** + * Properties of the shared file. + * @typedef {Object} SharingSharedFileMetadata + * @property {string} id - The ID of the file. + * @property {string} name - The name of this file. + * @property {SharingFolderPolicy} policy - Policies governing this shared file. + * @property {string} preview_url - URL for displaying a web preview of the + * shared file. + * @property {SharingAccessLevel} [access_type] - The current user's access + * level for this shared file. + * @property {SharingExpectedSharedContentLinkMetadata} [expected_link_metadata] + * - The expected metadata of the link associated for the file when it is first + * shared. Absent if the link already exists. This is for an unreleased feature + * so it may not be returned yet. + * @property {SharingSharedContentLinkMetadata} [link_metadata] - The metadata + * of the link associated for the file. This is for an unreleased feature so it + * may not be returned yet. + * @property {Array.} [owner_display_names] - The display names of the + * users that own the file. If the file is part of a team folder, the display + * names of the team admins are also included. Absent if the owner display names + * cannot be fetched. + * @property {UsersTeam} [owner_team] - The team that owns the file. This field + * is not present if the file is not owned by a team. + * @property {string} [parent_shared_folder_id] - The ID of the parent shared + * folder. This field is present only if the file is contained within a shared + * folder. + * @property {string} [path_display] - The cased path to be used for display + * purposes only. In rare instances the casing will not correctly match the + * user's filesystem, but this behavior will match the path provided in the Core + * API v1. Absent for unmounted files. + * @property {string} [path_lower] - The lower-case full path of this file. + * Absent for unmounted files. + * @property {Array.} [permissions] - The sharing + * permissions that requesting user has on this file. This corresponds to the + * entries given in GetFileMetadataBatchArg.actions or + * GetFileMetadataArg.actions. + * @property {Timestamp} [time_invited] - Timestamp indicating when the current + * user was invited to this shared file. If the user was not invited to the + * shared file, the timestamp will indicate when the user was invited to the + * parent shared folder. This value may be absent. + */ /** + * There is an error accessing the shared folder. + * @typedef {Object} SharingSharedFolderAccessError + * @property {('invalid_id'|'not_a_member'|'email_unverified'|'unmounted'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingSharedFolderMemberError + * @property {SharingMemberAccessLevelResult} [no_explicit_access] - Available + * if .tag is no_explicit_access. The target member only has inherited access to + * the shared folder. + * @property {('invalid_dropbox_id'|'not_a_member'|'no_explicit_access'|'other')} .tag - Tag identifying the union variant. + */ /** + * Shared folder user and group membership. + * @typedef {Object} SharingSharedFolderMembers + * @property {Array.} users - The list of user + * members of the shared folder. + * @property {Array.} groups - The list of group + * members of the shared folder. + * @property {Array.} invitees - The list of + * invitees to the shared folder. + * @property {string} [cursor] - Present if there are additional shared folder + * members that have not been returned yet. Pass the cursor into + * list_folder_members/continue to list additional members. + */ /** + * The metadata which includes basic information about the shared folder. + * @typedef {Object} SharingSharedFolderMetadata + * @property {SharingAccessLevel} access_type - The current user's access level + * for this shared folder. + * @property {boolean} is_inside_team_folder - Whether this folder is inside of + * a team folder. + * @property {boolean} is_team_folder - Whether this folder is a team folder + * https://www.dropbox.com/en/help/986. + * @property {string} name - The name of the this shared folder. + * @property {SharingFolderPolicy} policy - Policies governing this shared + * folder. + * @property {string} preview_url - URL for displaying a web preview of the + * shared folder. + * @property {string} shared_folder_id - The ID of the shared folder. + * @property {Timestamp} time_invited - Timestamp indicating when the current + * user was invited to this shared folder. + * @property {Array.} [owner_display_names] - The display names of the + * users that own the folder. If the folder is part of a team folder, the + * display names of the team admins are also included. Absent if the owner + * display names cannot be fetched. + * @property {UsersTeam} [owner_team] - The team that owns the folder. This + * field is not present if the folder is not owned by a team. + * @property {string} [parent_shared_folder_id] - The ID of the parent shared + * folder. This field is present only if the folder is contained within another + * shared folder. + * @property {string} [path_lower] - The lower-cased full path of this shared + * folder. Absent for unmounted folders. + * @property {string} [parent_folder_name] - Display name for the parent folder. + * @property {SharingSharedContentLinkMetadata} [link_metadata] - The metadata + * of the shared content link to this shared folder. Absent if there is no link + * on the folder. This is for an unreleased feature so it may not be returned + * yet. + * @property {Array.} [permissions] - Actions the + * current user may perform on the folder and its contents. The set of + * permissions corresponds to the FolderActions in the request. + * @property {SharingAccessInheritance} access_inheritance - Whether the folder + * inherits its members from its parent. + */ /** + * Properties of the shared folder. + * @typedef {Object} SharingSharedFolderMetadataBase + * @property {SharingAccessLevel} access_type - The current user's access level + * for this shared folder. + * @property {boolean} is_inside_team_folder - Whether this folder is inside of + * a team folder. + * @property {boolean} is_team_folder - Whether this folder is a team folder + * https://www.dropbox.com/en/help/986. + * @property {Array.} [owner_display_names] - The display names of the + * users that own the folder. If the folder is part of a team folder, the + * display names of the team admins are also included. Absent if the owner + * display names cannot be fetched. + * @property {UsersTeam} [owner_team] - The team that owns the folder. This + * field is not present if the folder is not owned by a team. + * @property {string} [parent_shared_folder_id] - The ID of the parent shared + * folder. This field is present only if the folder is contained within another + * shared folder. + * @property {string} [path_lower] - The lower-cased full path of this shared + * folder. Absent for unmounted folders. + * @property {string} [parent_folder_name] - Display name for the parent folder. + */ /** + * @typedef {Object} SharingSharedLinkAccessFailureReason + * @property {('login_required'|'email_verify_required'|'password_required'|'team_only'|'owner_only'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingSharedLinkAlreadyExistsMetadata + * @property + * {(SharingFileLinkMetadata|SharingFolderLinkMetadata|SharingSharedLinkMetadata)} + * [metadata] - Available if .tag is metadata. Metadata of the shared link that + * already exists. + * @property {('metadata'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingSharedLinkError + * @property {('shared_link_not_found'|'shared_link_access_denied'|'unsupported_link_type'|'other')} .tag - Tag identifying the union variant. + */ /** + * The metadata of a shared link. + * @typedef {Object} SharingSharedLinkMetadata +@property {("file"|"folder")} .tag - Tag identifying the subtype variant. + * @property {string} url - URL of the shared link. + * @property {string} name - The linked file name (including extension). This + * never contains a slash. + * @property {SharingLinkPermissions} link_permissions - The link's access + * permissions. + * @property {string} [id] - A unique identifier for the linked file. + * @property {Timestamp} [expires] - Expiration time, if set. By default the + * link won't expire. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will only be present + * only if the linked file is in the authenticated user's dropbox. + * @property {SharingTeamMemberInfo} [team_member_info] - The team membership + * information of the link's owner. This field will only be present if the + * link's owner is a team member. + * @property {UsersTeam} [content_owner_team_info] - The team information of the + * content's owner. This field will only be present if the content's owner is a + * team member and the content's owner team is different from the link's owner + * team. + */ /** + * Who can view shared links in this folder. + * @typedef {Object} SharingSharedLinkPolicy + * @property {('anyone'|'team'|'members'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingSharedLinkSettings + * @property {boolean} [require_password] - Boolean flag to enable or disable + * password protection. + * @property {string} [link_password] - If require_password is true, this is + * needed to specify the password to access the link. + * @property {Timestamp} [expires] - Expiration time of the shared link. By + * default the link won't expire. + * @property {SharingLinkAudience} [audience] - The new audience who can benefit + * from the access level specified by the link's access level specified in the + * `link_access_level` field of `LinkPermissions`. This is used in conjunction + * with team policies and shared folder policies to determine the final + * effective audience type in the `effective_audience` field of + * `LinkPermissions. + * @property {SharingRequestedLinkAccessLevel} [access] - Requested access level + * you want the audience to gain from this link. Note, modifying access level + * for an existing link is not supported. + * @property {SharingRequestedVisibility} [requested_visibility] - Use audience + * instead. The requested access for this shared link. + * @property {boolean} [allow_download] - Boolean flag to allow or not download + * capabilities for shared links. + */ /** + * @typedef {Object} SharingSharedLinkSettingsError + * @property {('invalid_settings'|'not_authorized')} .tag - Tag identifying the union variant. + */ /** + * User could not access this file. + * @typedef {Object} SharingSharingFileAccessError + * @property {('no_permission'|'invalid_file'|'is_folder'|'inside_public_folder'|'inside_osx_package'|'other')} .tag - Tag identifying the union variant. + */ /** + * User account had a problem preventing this action. + * @typedef {Object} SharingSharingUserError + * @property {('email_unverified'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information about a team member. + * @typedef {Object} SharingTeamMemberInfo + * @property {UsersTeam} team_info - Information about the member's team. + * @property {string} display_name - The display name of the user. + * @property {string} [member_id] - ID of user as a member of a team. This field + * will only be present if the member is in the same team as current user. + */ /** + * @typedef {Object} SharingTransferFolderArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {string} to_dropbox_id - A account or team member ID to transfer + * ownership to. + */ /** + * @typedef {Object} SharingTransferFolderError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'invalid_dropbox_id'|'new_owner_not_a_member'|'new_owner_unmounted'|'new_owner_email_unverified'|'team_folder'|'no_permission'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingUnmountFolderArg + * @property {string} shared_folder_id - The ID for the shared folder. + */ /** + * @typedef {Object} SharingUnmountFolderError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'no_permission'|'not_unmountable'|'other')} .tag - Tag identifying the union variant. + */ /** + * Arguments for unshare_file. + * @typedef {Object} SharingUnshareFileArg + * @property {string} file - The file to unshare. + */ /** + * Error result for unshare_file. + * @typedef {Object} SharingUnshareFileError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('user_error'|'access_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingUnshareFolderArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {boolean} leave_a_copy - If true, members of this shared folder + * will get a copy of this folder after it's unshared. Otherwise, it will be + * removed from their Dropbox. The current user, who is an owner, will always + * retain their copy. + */ /** + * @typedef {Object} SharingUnshareFolderError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'team_folder'|'no_permission'|'too_many_files'|'other')} .tag - Tag identifying the union variant. + */ /** + * Arguments for update_file_member. + * @typedef {Object} SharingUpdateFileMemberArgs + * @property {string} file - File for which we are changing a member's access. + * @property {SharingMemberSelector} member - The member whose access we are + * changing. + * @property {SharingAccessLevel} access_level - The new access level for the + * member. + */ /** + * @typedef {Object} SharingUpdateFolderMemberArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {SharingMemberSelector} member - The member of the shared folder to + * update. Only the MemberSelector.dropbox_id may be set at this time. + * @property {SharingAccessLevel} access_level - The new access level for + * member. AccessLevel.owner is disallowed. + */ /** + * @typedef {Object} SharingUpdateFolderMemberError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {SharingSharedFolderMemberError} [member_error] - Available if .tag + * is member_error. + * @property {SharingAddFolderMemberError} [no_explicit_access] - Available if + * .tag is no_explicit_access. If updating the access type required the member + * to be added to the shared folder and there was an error when adding the + * member. + * @property {('access_error'|'member_error'|'no_explicit_access'|'insufficient_plan'|'no_permission'|'other')} .tag - Tag identifying the union variant. + */ /** + * If any of the policies are unset, then they retain their current setting. + * @typedef {Object} SharingUpdateFolderPolicyArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {SharingMemberPolicy} [member_policy] - Who can be a member of this + * shared folder. Only applicable if the current user is on a team. + * @property {SharingAclUpdatePolicy} [acl_update_policy] - Who can add and + * remove members of this shared folder. + * @property {SharingViewerInfoPolicy} [viewer_info_policy] - Who can + * enable/disable viewer info for this shared folder. + * @property {SharingSharedLinkPolicy} [shared_link_policy] - The policy to + * apply to shared links created for content inside this shared folder. The + * current user must be on a team to set this policy to + * SharedLinkPolicy.members. + * @property {SharingLinkSettings} [link_settings] - Settings on the link for + * this folder. + * @property {Array.} [actions] - A list of `FolderAction`s + * corresponding to `FolderPermission`s that should appear in the response's + * SharedFolderMetadata.permissions field describing the actions the + * authenticated user can perform on the folder. + */ /** + * @typedef {Object} SharingUpdateFolderPolicyError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'not_on_team'|'team_policy_disallows_member_policy'|'disallowed_shared_link_policy'|'no_permission'|'team_folder'|'other')} .tag - Tag identifying the union variant. + */ /** + * The information about a user member of the shared content with an appended + * last seen timestamp. + * @typedef {Object} SharingUserFileMembershipInfo + * @property {SharingAccessLevel} access_type - The access type for this member. + * It contains inherited access type from parent folder, and acquired access + * type from this folder. + * @property {SharingUserInfo} user - The account information for the membership + * user. + * @property {Array.} [permissions] - The permissions + * that requesting user has on this member. The set of permissions corresponds + * to the MemberActions in the request. + * @property {string} [initials] - Never set. + * @property {boolean} is_inherited - True if the member has access from a + * parent folder. + * @property {Timestamp} [time_last_seen] - The UTC timestamp of when the user + * has last seen the content. Only populated if the user has seen the content + * and the caller has a plan that includes viewer history. + * @property {SeenStatePlatformType} [platform_type] - The platform on which the + * user has last seen the content, or unknown. + */ /** + * Basic information about a user. Use users.get_account and + * users.get_account_batch to obtain more detailed information. + * @typedef {Object} SharingUserInfo + * @property {string} account_id - The account ID of the user. + * @property {string} email - Email address of user. + * @property {string} display_name - The display name of the user. + * @property {boolean} same_team - If the user is in the same team as current + * user. + * @property {string} [team_member_id] - The team member ID of the shared folder + * member. Only present if same_team is true. + */ /** + * The information about a user member of the shared content. + * @typedef {Object} SharingUserMembershipInfo + * @property {SharingAccessLevel} access_type - The access type for this member. + * It contains inherited access type from parent folder, and acquired access + * type from this folder. + * @property {SharingUserInfo} user - The account information for the membership + * user. + * @property {Array.} [permissions] - The permissions + * that requesting user has on this member. The set of permissions corresponds + * to the MemberActions in the request. + * @property {string} [initials] - Never set. + * @property {boolean} is_inherited - True if the member has access from a + * parent folder. + */ /** + * @typedef {Object} SharingViewerInfoPolicy + * @property {('enabled'|'disabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Who can access a shared link. The most open visibility is public. The default + * depends on many aspects, such as team and user preferences and shared folder + * settings. + * @typedef {Object} SharingVisibility + * @property {('public'|'team_only'|'password'|'team_and_password'|'shared_folder_only'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingVisibilityPolicy + * @property {SharingRequestedVisibility} policy - This is the value to submit + * when saving the visibility setting. + * @property {SharingAlphaResolvedVisibility} resolved_policy - This is what the + * effective policy would be, if you selected this option. The resolved policy + * is obtained after considering external effects such as shared folder settings + * and team policy. This value is guaranteed to be provided. + * @property {boolean} allowed - Whether the user is permitted to set the + * visibility to this policy. + * @property {SharingVisibilityPolicyDisallowedReason} [disallowed_reason] - If + * allowed is false, this will provide the reason that the user is not permitted + * to set the visibility to this policy. + */ /** + * @typedef {Object} SharingVisibilityPolicyDisallowedReason + * @property {('delete_and_recreate'|'restricted_by_shared_folder'|'restricted_by_team'|'user_not_on_team'|'user_account_type'|'permission_denied'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information on active web sessions. + * @typedef {Object} TeamActiveWebSession + * @property {string} session_id - The session id. + * @property {string} user_agent - Information on the hosting device. + * @property {string} os - Information on the hosting operating system. + * @property {string} browser - Information on the browser used for this web + * session. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {string} [country] - The country from which the last activity from + * this session was made. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + * @property {Timestamp} [expires] - The time this session expires. + */ /** + * Result of trying to add a secondary email to a user. 'success' is the only + * value indicating that a secondary email was successfully added to a user. The + * other values explain the type of error that occurred, and include the email + * for which the error occurred. + * @typedef {Object} TeamAddSecondaryEmailResult + * @property {SecondaryEmailsSecondaryEmail} [success] - Available if .tag is + * success. Describes a secondary email that was successfully added to a user. + * @property {string} [unavailable] - Available if .tag is unavailable. + * Secondary email is not available to be claimed by the user. + * @property {string} [already_pending] - Available if .tag is already_pending. + * Secondary email is already a pending email for the user. + * @property {string} [already_owned_by_user] - Available if .tag is + * already_owned_by_user. Secondary email is already a verified email for the + * user. + * @property {string} [reached_limit] - Available if .tag is reached_limit. User + * already has the maximum number of secondary emails allowed. + * @property {string} [transient_error] - Available if .tag is transient_error. + * A transient error occurred. Please try again later. + * @property {string} [too_many_updates] - Available if .tag is + * too_many_updates. An error occurred due to conflicting updates. Please try + * again later. + * @property {string} [unknown_error] - Available if .tag is unknown_error. An + * unknown error occurred. + * @property {string} [rate_limited] - Available if .tag is rate_limited. Too + * many emails are being sent to this email address. Please try again later. + * @property {('success'|'unavailable'|'already_pending'|'already_owned_by_user'|'reached_limit'|'transient_error'|'too_many_updates'|'unknown_error'|'rate_limited'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamAddSecondaryEmailsArg + * @property {Array.} new_secondary_emails - List of + * users and secondary emails to add. + */ /** + * Error returned when adding secondary emails fails. + * @typedef {Object} TeamAddSecondaryEmailsError + * @property {('secondary_emails_disabled'|'too_many_emails'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamAddSecondaryEmailsResult + * @property {Array.} results - List of users and secondary + * email results. + */ /** + * Describes which team-related admin permissions a user has. + * @typedef {Object} TeamAdminTier + * @property {('team_admin'|'user_management_admin'|'support_admin'|'member_only')} .tag - Tag identifying the union variant. + */ /** + * Information on linked third party applications. + * @typedef {Object} TeamApiApp + * @property {string} app_id - The application unique id. + * @property {string} app_name - The application name. + * @property {boolean} is_app_folder - Whether the linked application uses a + * dedicated folder. + * @property {string} [publisher] - The application publisher name. + * @property {string} [publisher_url] - The publisher's URL. + * @property {Timestamp} [linked] - The time this application was linked. + */ /** + * Base report structure. + * @typedef {Object} TeamBaseDfbReport + * @property {string} start_date - First date present in the results as + * 'YYYY-MM-DD' or None. + */ /** + * Base error that all errors for existing team folders should extend. + * @typedef {Object} TeamBaseTeamFolderError + * @property {TeamTeamFolderAccessError} [access_error] - Available if .tag is + * access_error. + * @property {TeamTeamFolderInvalidStatusError} [status_error] - Available if + * .tag is status_error. + * @property {TeamTeamFolderTeamSharedDropboxError} [team_shared_dropbox_error] + * - Available if .tag is team_shared_dropbox_error. + * @property {('access_error'|'status_error'|'team_shared_dropbox_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * Error returned when getting member custom quota. + * @typedef {Object} TeamCustomQuotaError + * @property {('too_many_users'|'other')} .tag - Tag identifying the union variant. + */ /** + * User custom quota. + * @typedef {Object} TeamCustomQuotaResult + * @property {TeamUserCustomQuotaResult} [success] - Available if .tag is + * success. User's custom quota. + * @property {TeamUserSelectorArg} [invalid_user] - Available if .tag is + * invalid_user. Invalid user (not in team). + * @property {('success'|'invalid_user'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamCustomQuotaUsersArg + * @property {Array.} users - List of users. + */ /** + * Input arguments that can be provided for most reports. + * @typedef {Object} TeamDateRange + * @property {Timestamp} [start_date] - Optional starting date (inclusive). If + * start_date is None or too long ago, this field will be set to 6 months ago. + * @property {Timestamp} [end_date] - Optional ending date (exclusive). + */ /** + * Errors that can originate from problems in input arguments to reports. + * @typedef {Object} TeamDateRangeError + * @property {'other'} .tag - Tag identifying the union variant. + */ /** + * Result of trying to delete a secondary email address. 'success' is the only + * value indicating that a secondary email was successfully deleted. The other + * values explain the type of error that occurred, and include the email for + * which the error occurred. + * @typedef {Object} TeamDeleteSecondaryEmailResult + * @property {string} [success] - Available if .tag is success. The secondary + * email was successfully deleted. + * @property {string} [not_found] - Available if .tag is not_found. The email + * address was not found for the user. + * @property {string} [cannot_remove_primary] - Available if .tag is + * cannot_remove_primary. The email address is the primary email address of the + * user, and cannot be removed. + * @property {('success'|'not_found'|'cannot_remove_primary'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamDeleteSecondaryEmailsArg + * @property {Array.} emails_to_delete - List of + * users and their secondary emails to delete. + */ /** + * @typedef {Object} TeamDeleteSecondaryEmailsResult + * @property {Array.} results + */ /** + * Information about linked Dropbox desktop client sessions. + * @typedef {Object} TeamDesktopClientSession + * @property {string} session_id - The session id. + * @property {string} host_name - Name of the hosting desktop. + * @property {TeamDesktopPlatform} client_type - The Dropbox desktop client + * type. + * @property {string} client_version - The Dropbox client version. + * @property {string} platform - Information on the hosting platform. + * @property {boolean} is_delete_on_unlink_supported - Whether it's possible to + * delete all of the account files upon unlinking. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {string} [country] - The country from which the last activity from + * this session was made. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + */ /** + * @typedef {Object} TeamDesktopPlatform + * @property {('windows'|'mac'|'linux'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamDeviceSession + * @property {string} session_id - The session id. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {string} [country] - The country from which the last activity from + * this session was made. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + */ /** + * @typedef {Object} TeamDeviceSessionArg + * @property {string} session_id - The session id. + * @property {string} team_member_id - The unique id of the member owning the + * device. + */ /** + * Each of the items is an array of values, one value per day. The value is the + * number of devices active within a time window, ending with that day. If there + * is no data for a day, then the value will be None. + * @typedef {Object} TeamDevicesActive + * @property {Array.} windows - Array of number of linked windows + * (desktop) clients with activity. + * @property {Array.} macos - Array of number of linked mac (desktop) + * clients with activity. + * @property {Array.} linux - Array of number of linked linus (desktop) + * clients with activity. + * @property {Array.} ios - Array of number of linked ios devices with + * activity. + * @property {Array.} android - Array of number of linked android + * devices with activity. + * @property {Array.} other - Array of number of other linked devices + * (blackberry, windows phone, etc) with activity. + * @property {Array.} total - Array of total number of linked clients + * with activity. + */ /** + * Excluded users list argument. + * @typedef {Object} TeamExcludedUsersListArg + * @property {number} limit - Number of results to return per call. + */ /** + * Excluded users list continue argument. + * @typedef {Object} TeamExcludedUsersListContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * users. + */ /** + * Excluded users list continue error. + * @typedef {Object} TeamExcludedUsersListContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * Excluded users list error. + * @typedef {Object} TeamExcludedUsersListError + * @property {('list_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * Excluded users list result. + * @typedef {Object} TeamExcludedUsersListResult + * @property {Array.} users + * @property {boolean} has_more - Is true if there are additional excluded users + * that have not been returned yet. An additional call to + * member_space_limits/excluded_users/list/continue can retrieve them. + * @property {string} [cursor] - Pass the cursor into + * member_space_limits/excluded_users/list/continue to obtain additional + * excluded users. + */ /** + * Argument of excluded users update operation. Should include a list of users + * to add/remove (according to endpoint), Maximum size of the list is 1000 + * users. + * @typedef {Object} TeamExcludedUsersUpdateArg + * @property {Array.} [users] - List of users to be + * added/removed. + */ /** + * Excluded users update error. + * @typedef {Object} TeamExcludedUsersUpdateError + * @property {('users_not_in_team'|'too_many_users'|'other')} .tag - Tag identifying the union variant. + */ /** + * Excluded users update result. + * @typedef {Object} TeamExcludedUsersUpdateResult + * @property {TeamExcludedUsersUpdateStatus} status - Update status. + */ /** + * Excluded users update operation status. + * @typedef {Object} TeamExcludedUsersUpdateStatus + * @property {('success'|'other')} .tag - Tag identifying the union variant. + */ /** + * A set of features that a Dropbox Business account may support. + * @typedef {Object} TeamFeature + * @property {('upload_api_rate_limit'|'has_team_shared_dropbox'|'has_team_file_events'|'has_team_selective_sync'|'other')} .tag - Tag identifying the union variant. + */ /** + * The values correspond to entries in Feature. You may get different value + * according to your Dropbox Business plan. + * @typedef {Object} TeamFeatureValue + * @property {TeamUploadApiRateLimitValue} [upload_api_rate_limit] - Available + * if .tag is upload_api_rate_limit. + * @property {TeamHasTeamSharedDropboxValue} [has_team_shared_dropbox] - + * Available if .tag is has_team_shared_dropbox. + * @property {TeamHasTeamFileEventsValue} [has_team_file_events] - Available if + * .tag is has_team_file_events. + * @property {TeamHasTeamSelectiveSyncValue} [has_team_selective_sync] - + * Available if .tag is has_team_selective_sync. + * @property {('upload_api_rate_limit'|'has_team_shared_dropbox'|'has_team_file_events'|'has_team_selective_sync'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamFeaturesGetValuesBatchArg + * @property {Array.} features - A list of features in Feature. If + * the list is empty, this route will return FeaturesGetValuesBatchError. + */ /** + * @typedef {Object} TeamFeaturesGetValuesBatchError + * @property {('empty_features_list'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamFeaturesGetValuesBatchResult + * @property {Array.} values + */ /** + * Activity Report Result. Each of the items in the storage report is an array + * of values, one value per day. If there is no data for a day, then the value + * will be None. + * @typedef {Object} TeamGetActivityReport + * @property {string} start_date - First date present in the results as + * 'YYYY-MM-DD' or None. + * @property {Array.} adds - Array of total number of adds by team + * members. + * @property {Array.} edits - Array of number of edits by team members. + * If the same user edits the same file multiple times this is counted as a + * single edit. + * @property {Array.} deletes - Array of total number of deletes by team + * members. + * @property {Array.} active_users_28_day - Array of the number of users + * who have been active in the last 28 days. + * @property {Array.} active_users_7_day - Array of the number of users + * who have been active in the last week. + * @property {Array.} active_users_1_day - Array of the number of users + * who have been active in the last day. + * @property {Array.} active_shared_folders_28_day - Array of the number + * of shared folders with some activity in the last 28 days. + * @property {Array.} active_shared_folders_7_day - Array of the number + * of shared folders with some activity in the last week. + * @property {Array.} active_shared_folders_1_day - Array of the number + * of shared folders with some activity in the last day. + * @property {Array.} shared_links_created - Array of the number of + * shared links created. + * @property {Array.} shared_links_viewed_by_team - Array of the number + * of views by team users to shared links created by the team. + * @property {Array.} shared_links_viewed_by_outside_user - Array of the + * number of views by users outside of the team to shared links created by the + * team. + * @property {Array.} shared_links_viewed_by_not_logged_in - Array of + * the number of views by non-logged-in users to shared links created by the + * team. + * @property {Array.} shared_links_viewed_total - Array of the total + * number of views to shared links created by the team. + */ /** + * Devices Report Result. Contains subsections for different time ranges of + * activity. Each of the items in each subsection of the storage report is an + * array of values, one value per day. If there is no data for a day, then the + * value will be None. + * @typedef {Object} TeamGetDevicesReport + * @property {string} start_date - First date present in the results as + * 'YYYY-MM-DD' or None. + * @property {TeamDevicesActive} active_1_day - Report of the number of devices + * active in the last day. + * @property {TeamDevicesActive} active_7_day - Report of the number of devices + * active in the last 7 days. + * @property {TeamDevicesActive} active_28_day - Report of the number of devices + * active in the last 28 days. + */ /** + * Membership Report Result. Each of the items in the storage report is an array + * of values, one value per day. If there is no data for a day, then the value + * will be None. + * @typedef {Object} TeamGetMembershipReport + * @property {string} start_date - First date present in the results as + * 'YYYY-MM-DD' or None. + * @property {Array.} team_size - Team size, for each day. + * @property {Array.} pending_invites - The number of pending invites to + * the team, for each day. + * @property {Array.} members_joined - The number of members that joined + * the team, for each day. + * @property {Array.} suspended_members - The number of suspended team + * members, for each day. + * @property {Array.} licenses - The total number of licenses the team + * has, for each day. + */ /** + * Storage Report Result. Each of the items in the storage report is an array of + * values, one value per day. If there is no data for a day, then the value will + * be None. + * @typedef {Object} TeamGetStorageReport + * @property {string} start_date - First date present in the results as + * 'YYYY-MM-DD' or None. + * @property {Array.} total_usage - Sum of the shared, unshared, and + * datastore usages, for each day. + * @property {Array.} shared_usage - Array of the combined size (bytes) + * of team members' shared folders, for each day. + * @property {Array.} unshared_usage - Array of the combined size + * (bytes) of team members' root namespaces, for each day. + * @property {Array.} shared_folders - Array of the number of shared + * folders owned by team members, for each day. + * @property {Array.>} member_storage_map - Array of + * storage summaries of team members' account sizes. Each storage summary is an + * array of key, value pairs, where each pair describes a storage bucket. The + * key indicates the upper bound of the bucket and the value is the number of + * users in that bucket. There is one such summary per day. If there is no data + * for a day, the storage summary will be empty. + */ /** + * Role of a user in group. + * @typedef {Object} TeamGroupAccessType + * @property {('member'|'owner')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupCreateArg + * @property {string} group_name - Group name. + * @property {boolean} add_creator_as_owner - Automatically add the creator of + * the group. + * @property {string} [group_external_id] - The creator of a team can associate + * an arbitrary external ID to the group. + * @property {TeamCommonGroupManagementType} [group_management_type] - Whether + * the team can be managed by selected users, or only by team admins. + */ /** + * @typedef {Object} TeamGroupCreateError + * @property {('group_name_already_used'|'group_name_invalid'|'external_id_already_in_use'|'system_managed_group_disallowed'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupDeleteError + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'group_already_deleted')} .tag - Tag identifying the union variant. + */ /** + * Full description of a group. + * @typedef {Object} TeamGroupFullInfo + * @property {string} group_name + * @property {string} group_id + * @property {TeamCommonGroupManagementType} group_management_type - Who is + * allowed to manage the group. + * @property {number} created - The group creation time as a UTC timestamp in + * milliseconds since the Unix epoch. + * @property {string} [group_external_id] - External ID of group. This is an + * arbitrary ID that an admin can attach to a group. + * @property {number} [member_count] - The number of members in the group. + * @property {Array.} [members] - List of group members. + */ /** + * Profile of group member, and role in group. + * @typedef {Object} TeamGroupMemberInfo + * @property {TeamMemberProfile} profile - Profile of group member. + * @property {TeamGroupAccessType} access_type - The role that the user has in + * the group. + */ /** + * Argument for selecting a group and a single user. + * @typedef {Object} TeamGroupMemberSelector + * @property {TeamGroupSelector} group - Specify a group. + * @property {TeamUserSelectorArg} user - Identity of a user that is a member of + * group. + */ /** + * Error that can be raised when GroupMemberSelector is used, and the user is + * required to be a member of the specified group. + * @typedef {Object} TeamGroupMemberSelectorError + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'member_not_in_group')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupMemberSetAccessTypeError + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'member_not_in_group'|'user_cannot_be_manager_of_company_managed_group')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupMembersAddArg + * @property {TeamGroupSelector} group - Group to which users will be added. + * @property {Array.} members - List of users to be added to + * the group. + * @property {boolean} return_members - Whether to return the list of members in + * the group. Note that the default value will cause all the group members to + * be returned in the response. This may take a long time for large groups. + */ /** + * @typedef {Object} TeamGroupMembersAddError + * @property {Array.} [members_not_in_team] - Available if .tag is + * members_not_in_team. These members are not part of your team. Currently, you + * cannot add members to a group if they are not part of your team, though this + * may change in a subsequent version. To add new members to your Dropbox + * Business team, use the :route:`members/add` endpoint. + * @property {Array.} [users_not_found] - Available if .tag is + * users_not_found. These users were not found in Dropbox. + * @property {Array.} [user_cannot_be_manager_of_company_managed_group] + * - Available if .tag is user_cannot_be_manager_of_company_managed_group. A + * company-managed group cannot be managed by a user. + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'duplicate_user'|'group_not_in_team'|'members_not_in_team'|'users_not_found'|'user_must_be_active_to_be_owner'|'user_cannot_be_manager_of_company_managed_group')} .tag - Tag identifying the union variant. + */ /** + * Result returned by groups/members/add and groups/members/remove. + * @typedef {Object} TeamGroupMembersChangeResult + * @property {TeamGroupFullInfo} group_info - The group info after member change + * operation has been performed. + * @property {string} async_job_id - For legacy purposes async_job_id will + * always return one space ' '. Formerly, it was an ID that was used to obtain + * the status of granting/revoking group-owned resources. It's no longer + * necessary because the async processing now happens automatically. + */ /** + * @typedef {Object} TeamGroupMembersRemoveArg + * @property {TeamGroupSelector} group - Group from which users will be removed. + * @property {Array.} users - List of users to be removed + * from the group. + * @property {boolean} return_members - Whether to return the list of members in + * the group. Note that the default value will cause all the group members to + * be returned in the response. This may take a long time for large groups. + */ /** + * @typedef {Object} TeamGroupMembersRemoveError + * @property {Array.} [members_not_in_team] - Available if .tag is + * members_not_in_team. These members are not part of your team. + * @property {Array.} [users_not_found] - Available if .tag is + * users_not_found. These users were not found in Dropbox. + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'member_not_in_group'|'group_not_in_team'|'members_not_in_team'|'users_not_found')} .tag - Tag identifying the union variant. + */ /** + * Argument for selecting a group and a list of users. + * @typedef {Object} TeamGroupMembersSelector + * @property {TeamGroupSelector} group - Specify a group. + * @property {TeamUsersSelectorArg} users - A list of users that are members of + * group. + */ /** + * Error that can be raised when GroupMembersSelector is used, and the users are + * required to be members of the specified group. + * @typedef {Object} TeamGroupMembersSelectorError + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'member_not_in_group')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupMembersSetAccessTypeArg + * @property {TeamGroupSelector} group - Specify a group. + * @property {TeamUserSelectorArg} user - Identity of a user that is a member of + * group. + * @property {TeamGroupAccessType} access_type - New group access type the user + * will have. + * @property {boolean} return_members - Whether to return the list of members in + * the group. Note that the default value will cause all the group members to + * be returned in the response. This may take a long time for large groups. + */ /** + * Argument for selecting a single group, either by group_id or by external + * group ID. + * @typedef {Object} TeamGroupSelector + * @property {string} [group_id] - Available if .tag is group_id. Group ID. + * @property {string} [group_external_id] - Available if .tag is + * group_external_id. External ID of the group. + * @property {('group_id'|'group_external_id')} .tag - Tag identifying the union variant. + */ /** + * Error that can be raised when GroupSelector is used. + * @typedef {Object} TeamGroupSelectorError + * @property {('group_not_found'|'other')} .tag - Tag identifying the union variant. + */ /** + * Error that can be raised when GroupSelector is used and team groups are + * disallowed from being used. + * @typedef {Object} TeamGroupSelectorWithTeamGroupError + * @property {('group_not_found'|'other'|'system_managed_group_disallowed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupUpdateArgs + * @property {TeamGroupSelector} group - Specify a group. + * @property {boolean} return_members - Whether to return the list of members in + * the group. Note that the default value will cause all the group members to + * be returned in the response. This may take a long time for large groups. + * @property {string} [new_group_name] - Optional argument. Set group name to + * this if provided. + * @property {string} [new_group_external_id] - Optional argument. New group + * external ID. If the argument is None, the group's external_id won't be + * updated. If the argument is empty string, the group's external id will be + * cleared. + * @property {TeamCommonGroupManagementType} [new_group_management_type] - Set + * new group management type, if provided. + */ /** + * @typedef {Object} TeamGroupUpdateError + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'group_name_already_used'|'group_name_invalid'|'external_id_already_in_use')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupsGetInfoError + * @property {('group_not_on_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupsGetInfoItem + * @property {string} [id_not_found] - Available if .tag is id_not_found. An ID + * that was provided as a parameter to :route:`groups/get_info`, and did not + * match a corresponding group. The ID can be a group ID, or an external ID, + * depending on how the method was called. + * @property {TeamGroupFullInfo} [group_info] - Available if .tag is group_info. + * Info about a group. + * @property {('id_not_found'|'group_info')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupsListArg + * @property {number} limit - Number of results to return per call. + */ /** + * @typedef {Object} TeamGroupsListContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * groups. + */ /** + * @typedef {Object} TeamGroupsListContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupsListResult + * @property {Array.} groups + * @property {string} cursor - Pass the cursor into groups/list/continue to + * obtain the additional groups. + * @property {boolean} has_more - Is true if there are additional groups that + * have not been returned yet. An additional call to groups/list/continue can + * retrieve them. + */ /** + * @typedef {Object} TeamGroupsMembersListArg + * @property {TeamGroupSelector} group - The group whose members are to be + * listed. + * @property {number} limit - Number of results to return per call. + */ /** + * @typedef {Object} TeamGroupsMembersListContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * groups. + */ /** + * @typedef {Object} TeamGroupsMembersListContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupsMembersListResult + * @property {Array.} members + * @property {string} cursor - Pass the cursor into groups/members/list/continue + * to obtain additional group members. + * @property {boolean} has_more - Is true if there are additional group members + * that have not been returned yet. An additional call to + * groups/members/list/continue can retrieve them. + */ /** + * @typedef {Object} TeamGroupsPollError + * @property {('invalid_async_job_id'|'internal_error'|'other'|'access_denied')} .tag - Tag identifying the union variant. + */ /** + * Argument for selecting a list of groups, either by group_ids, or external + * group IDs. + * @typedef {Object} TeamGroupsSelector + * @property {Array.} [group_ids] - Available if .tag is group_ids. List + * of group IDs. + * @property {Array.} [group_external_ids] - Available if .tag is + * group_external_ids. List of external IDs of groups. + * @property {('group_ids'|'group_external_ids')} .tag - Tag identifying the union variant. + */ /** + * The value for Feature.has_team_file_events. + * @typedef {Object} TeamHasTeamFileEventsValue + * @property {boolean} [enabled] - Available if .tag is enabled. Does this team + * have file events. + * @property {('enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * The value for Feature.has_team_selective_sync. + * @typedef {Object} TeamHasTeamSelectiveSyncValue + * @property {boolean} [has_team_selective_sync] - Available if .tag is + * has_team_selective_sync. Does this team have team selective sync enabled. + * @property {('has_team_selective_sync'|'other')} .tag - Tag identifying the union variant. + */ /** + * The value for Feature.has_team_shared_dropbox. + * @typedef {Object} TeamHasTeamSharedDropboxValue + * @property {boolean} [has_team_shared_dropbox] - Available if .tag is + * has_team_shared_dropbox. Does this team have a shared team root. + * @property {('has_team_shared_dropbox'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamIncludeMembersArg + * @property {boolean} return_members - Whether to return the list of members in + * the group. Note that the default value will cause all the group members to + * be returned in the response. This may take a long time for large groups. + */ /** + * @typedef {Object} TeamLegalHoldHeldRevisionMetadata + * @property {string} new_filename - The held revision filename. + * @property {string} original_revision_id - The id of the held revision. + * @property {string} original_file_path - The original path of the held + * revision. + * @property {Timestamp} server_modified - The last time the file was modified + * on Dropbox. + * @property {string} author_member_id - The member id of the revision's author. + * @property {TeamTeamMemberStatus} author_member_status - The member status of + * the revision's author. + * @property {string} author_email - The email address of the held revision + * author. + * @property {string} file_type - The type of the held revision's file. + * @property {number} size - The file size in bytes. + * @property {string} content_hash - A hash of the file content. This field can + * be used to verify data integrity. For more information see our Content hash + * https://www.dropbox.com/developers/reference/content-hash page. + */ /** + * @typedef {Object} TeamLegalHoldPolicy + * @property {string} id - The legal hold id. + * @property {string} name - Policy name. + * @property {TeamMembersInfo} members - Team members IDs and number of + * permanently deleted members under hold. + * @property {TeamLegalHoldStatus} status - The current state of the hold. + * @property {Timestamp} start_date - Start date of the legal hold policy. + * @property {string} [description] - A description of the legal hold policy. + * @property {Timestamp} [activation_time] - The time at which the legal hold + * was activated. + * @property {Timestamp} [end_date] - End date of the legal hold policy. + */ /** + * @typedef {Object} TeamLegalHoldStatus + * @property {('active'|'released'|'activating'|'updating'|'exporting'|'releasing'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLegalHoldsError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLegalHoldsGetPolicyArg + * @property {string} id - The legal hold Id. + */ /** + * @typedef {Object} TeamLegalHoldsGetPolicyError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other'|'legal_hold_policy_not_found')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLegalHoldsListHeldRevisionResult + * @property {Array.} entries - List of file + * entries that under the hold. + * @property {boolean} has_more - True if there are more file entries that + * haven't been returned. You can retrieve them with a call to + * /legal_holds/list_held_revisions_continue. + * @property {string} [cursor] - The cursor idicates where to continue reading + * file metadata entries for the next API call. When there are no more entries, + * the cursor will return none. Pass the cursor into + * /2/team/legal_holds/list_held_revisions/continue. + */ /** + * @typedef {Object} TeamLegalHoldsListHeldRevisionsArg + * @property {string} id - The legal hold Id. + */ /** + * @typedef {Object} TeamLegalHoldsListHeldRevisionsContinueArg + * @property {string} id - The legal hold Id. + * @property {string} [cursor] - The cursor idicates where to continue reading + * file metadata entries for the next API call. When there are no more entries, + * the cursor will return none. + */ /** + * @typedef {Object} TeamLegalHoldsListHeldRevisionsContinueError + * @property {('unknown_legal_hold_error'|'transient_error'|'reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLegalHoldsListHeldRevisionsError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other'|'transient_error'|'legal_hold_still_empty'|'inactive_legal_hold')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLegalHoldsListPoliciesArg + * @property {boolean} include_released - Whether to return holds that were + * released. + */ /** + * @typedef {Object} TeamLegalHoldsListPoliciesError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other'|'transient_error')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLegalHoldsListPoliciesResult + * @property {Array.} policies + */ /** + * @typedef {Object} TeamLegalHoldsPolicyCreateArg + * @property {string} name - Policy name. + * @property {Array.} members - List of team member IDs added to the + * hold. + * @property {string} [description] - A description of the legal hold policy. + * @property {Timestamp} [start_date] - start date of the legal hold policy. + * @property {Timestamp} [end_date] - end date of the legal hold policy. + */ /** + * @typedef {Object} TeamLegalHoldsPolicyCreateError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other'|'start_date_is_later_than_end_date'|'empty_members_list'|'invalid_members'|'number_of_users_on_hold_is_greater_than_hold_limitation'|'transient_error'|'name_must_be_unique'|'team_exceeded_legal_hold_quota'|'invalid_date')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLegalHoldsPolicyReleaseArg + * @property {string} id - The legal hold Id. + */ /** + * @typedef {Object} TeamLegalHoldsPolicyReleaseError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other'|'legal_hold_performing_another_operation'|'legal_hold_already_releasing'|'legal_hold_policy_not_found')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLegalHoldsPolicyUpdateArg + * @property {string} id - The legal hold Id. + * @property {string} [name] - Policy new name. + * @property {string} [description] - Policy new description. + * @property {Array.} [members] - List of team member IDs to apply the + * policy on. + */ /** + * @typedef {Object} TeamLegalHoldsPolicyUpdateError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other'|'transient_error'|'inactive_legal_hold'|'legal_hold_performing_another_operation'|'invalid_members'|'number_of_users_on_hold_is_greater_than_hold_limitation'|'empty_members_list'|'name_must_be_unique'|'legal_hold_policy_not_found')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamListMemberAppsArg + * @property {string} team_member_id - The team member id. + */ /** + * Error returned by linked_apps/list_member_linked_apps. + * @typedef {Object} TeamListMemberAppsError + * @property {('member_not_found'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamListMemberAppsResult + * @property {Array.} linked_api_apps - List of third party + * applications linked by this team member. + */ /** + * @typedef {Object} TeamListMemberDevicesArg + * @property {string} team_member_id - The team's member id. + * @property {boolean} include_web_sessions - Whether to list web sessions of + * the team's member. + * @property {boolean} include_desktop_clients - Whether to list linked desktop + * devices of the team's member. + * @property {boolean} include_mobile_clients - Whether to list linked mobile + * devices of the team's member. + */ /** + * @typedef {Object} TeamListMemberDevicesError + * @property {('member_not_found'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamListMemberDevicesResult + * @property {Array.} [active_web_sessions] - List of web + * sessions made by this team member. + * @property {Array.} [desktop_client_sessions] - List + * of desktop clients used by this team member. + * @property {Array.} [mobile_client_sessions] - List + * of mobile client used by this team member. + */ /** + * Arguments for linked_apps/list_members_linked_apps. + * @typedef {Object} TeamListMembersAppsArg + * @property {string} [cursor] - At the first call to the + * linked_apps/list_members_linked_apps the cursor shouldn't be passed. Then, if + * the result of the call includes a cursor, the following requests should + * include the received cursors in order to receive the next sub list of the + * team applications. + */ /** + * Error returned by linked_apps/list_members_linked_apps. + * @typedef {Object} TeamListMembersAppsError + * @property {('reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information returned by linked_apps/list_members_linked_apps. + * @typedef {Object} TeamListMembersAppsResult + * @property {Array.} apps - The linked applications of + * each member of the team. + * @property {boolean} has_more - If true, then there are more apps available. + * Pass the cursor to linked_apps/list_members_linked_apps to retrieve the rest. + * @property {string} [cursor] - Pass the cursor into + * linked_apps/list_members_linked_apps to receive the next sub list of team's + * applications. + */ /** + * @typedef {Object} TeamListMembersDevicesArg + * @property {string} [cursor] - At the first call to the + * devices/list_members_devices the cursor shouldn't be passed. Then, if the + * result of the call includes a cursor, the following requests should include + * the received cursors in order to receive the next sub list of team devices. + * @property {boolean} include_web_sessions - Whether to list web sessions of + * the team members. + * @property {boolean} include_desktop_clients - Whether to list desktop clients + * of the team members. + * @property {boolean} include_mobile_clients - Whether to list mobile clients + * of the team members. + */ /** + * @typedef {Object} TeamListMembersDevicesError + * @property {('reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamListMembersDevicesResult + * @property {Array.} devices - The devices of each member of + * the team. + * @property {boolean} has_more - If true, then there are more devices + * available. Pass the cursor to devices/list_members_devices to retrieve the + * rest. + * @property {string} [cursor] - Pass the cursor into + * devices/list_members_devices to receive the next sub list of team's devices. + */ /** + * Arguments for linked_apps/list_team_linked_apps. + * @typedef {Object} TeamListTeamAppsArg + * @property {string} [cursor] - At the first call to the + * linked_apps/list_team_linked_apps the cursor shouldn't be passed. Then, if + * the result of the call includes a cursor, the following requests should + * include the received cursors in order to receive the next sub list of the + * team applications. + */ /** + * Error returned by linked_apps/list_team_linked_apps. + * @typedef {Object} TeamListTeamAppsError + * @property {('reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information returned by linked_apps/list_team_linked_apps. + * @typedef {Object} TeamListTeamAppsResult + * @property {Array.} apps - The linked applications of + * each member of the team. + * @property {boolean} has_more - If true, then there are more apps available. + * Pass the cursor to linked_apps/list_team_linked_apps to retrieve the rest. + * @property {string} [cursor] - Pass the cursor into + * linked_apps/list_team_linked_apps to receive the next sub list of team's + * applications. + */ /** + * @typedef {Object} TeamListTeamDevicesArg + * @property {string} [cursor] - At the first call to the + * devices/list_team_devices the cursor shouldn't be passed. Then, if the result + * of the call includes a cursor, the following requests should include the + * received cursors in order to receive the next sub list of team devices. + * @property {boolean} include_web_sessions - Whether to list web sessions of + * the team members. + * @property {boolean} include_desktop_clients - Whether to list desktop clients + * of the team members. + * @property {boolean} include_mobile_clients - Whether to list mobile clients + * of the team members. + */ /** + * @typedef {Object} TeamListTeamDevicesError + * @property {('reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamListTeamDevicesResult + * @property {Array.} devices - The devices of each member of + * the team. + * @property {boolean} has_more - If true, then there are more devices + * available. Pass the cursor to devices/list_team_devices to retrieve the rest. + * @property {string} [cursor] - Pass the cursor into devices/list_team_devices + * to receive the next sub list of team's devices. + */ /** + * Specify access type a member should have when joined to a group. + * @typedef {Object} TeamMemberAccess + * @property {TeamUserSelectorArg} user - Identity of a user. + * @property {TeamGroupAccessType} access_type - Access type. + */ /** + * @typedef {Object} TeamMemberAddArg + * @property {string} member_email + * @property {string} [member_given_name] - Member's first name. + * @property {string} [member_surname] - Member's last name. + * @property {string} [member_external_id] - External ID for member. + * @property {string} [member_persistent_id] - Persistent ID for member. This + * field is only available to teams using persistent ID SAML configuration. + * @property {boolean} send_welcome_email - Whether to send a welcome email to + * the member. If send_welcome_email is false, no email invitation will be sent + * to the user. This may be useful for apps using single sign-on (SSO) flows for + * onboarding that want to handle announcements themselves. + * @property {boolean} [is_directory_restricted] - Whether a user is directory + * restricted. + * @property {TeamAdminTier} role + */ /** + * @typedef {Object} TeamMemberAddArgBase + * @property {string} member_email + * @property {string} [member_given_name] - Member's first name. + * @property {string} [member_surname] - Member's last name. + * @property {string} [member_external_id] - External ID for member. + * @property {string} [member_persistent_id] - Persistent ID for member. This + * field is only available to teams using persistent ID SAML configuration. + * @property {boolean} send_welcome_email - Whether to send a welcome email to + * the member. If send_welcome_email is false, no email invitation will be sent + * to the user. This may be useful for apps using single sign-on (SSO) flows for + * onboarding that want to handle announcements themselves. + * @property {boolean} [is_directory_restricted] - Whether a user is directory + * restricted. + */ /** + * Describes the result of attempting to add a single user to the team. + * 'success' is the only value indicating that a user was indeed added to the + * team - the other values explain the type of failure that occurred, and + * include the email of the user for which the operation has failed. + * @typedef {Object} TeamMemberAddResult + * @property {string} [team_license_limit] - Available if .tag is + * team_license_limit. Team is already full. The organization has no available + * licenses. + * @property {string} [free_team_member_limit_reached] - Available if .tag is + * free_team_member_limit_reached. Team is already full. The free team member + * limit has been reached. + * @property {string} [user_already_on_team] - Available if .tag is + * user_already_on_team. User is already on this team. The provided email + * address is associated with a user who is already a member of (including in + * recoverable state) or invited to the team. + * @property {string} [user_on_another_team] - Available if .tag is + * user_on_another_team. User is already on another team. The provided email + * address is associated with a user that is already a member or invited to + * another team. + * @property {string} [user_already_paired] - Available if .tag is + * user_already_paired. User is already paired. + * @property {string} [user_migration_failed] - Available if .tag is + * user_migration_failed. User migration has failed. + * @property {string} [duplicate_external_member_id] - Available if .tag is + * duplicate_external_member_id. A user with the given external member ID + * already exists on the team (including in recoverable state). + * @property {string} [duplicate_member_persistent_id] - Available if .tag is + * duplicate_member_persistent_id. A user with the given persistent ID already + * exists on the team (including in recoverable state). + * @property {string} [persistent_id_disabled] - Available if .tag is + * persistent_id_disabled. Persistent ID is only available to teams with + * persistent ID SAML configuration. Please contact Dropbox for more + * information. + * @property {string} [user_creation_failed] - Available if .tag is + * user_creation_failed. User creation has failed. + * @property {TeamTeamMemberInfo} [success] - Available if .tag is success. + * Describes a user that was successfully added to the team. + * @property {('team_license_limit'|'free_team_member_limit_reached'|'user_already_on_team'|'user_on_another_team'|'user_already_paired'|'user_migration_failed'|'duplicate_external_member_id'|'duplicate_member_persistent_id'|'persistent_id_disabled'|'user_creation_failed'|'success')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMemberAddResultBase + * @property {string} [team_license_limit] - Available if .tag is + * team_license_limit. Team is already full. The organization has no available + * licenses. + * @property {string} [free_team_member_limit_reached] - Available if .tag is + * free_team_member_limit_reached. Team is already full. The free team member + * limit has been reached. + * @property {string} [user_already_on_team] - Available if .tag is + * user_already_on_team. User is already on this team. The provided email + * address is associated with a user who is already a member of (including in + * recoverable state) or invited to the team. + * @property {string} [user_on_another_team] - Available if .tag is + * user_on_another_team. User is already on another team. The provided email + * address is associated with a user that is already a member or invited to + * another team. + * @property {string} [user_already_paired] - Available if .tag is + * user_already_paired. User is already paired. + * @property {string} [user_migration_failed] - Available if .tag is + * user_migration_failed. User migration has failed. + * @property {string} [duplicate_external_member_id] - Available if .tag is + * duplicate_external_member_id. A user with the given external member ID + * already exists on the team (including in recoverable state). + * @property {string} [duplicate_member_persistent_id] - Available if .tag is + * duplicate_member_persistent_id. A user with the given persistent ID already + * exists on the team (including in recoverable state). + * @property {string} [persistent_id_disabled] - Available if .tag is + * persistent_id_disabled. Persistent ID is only available to teams with + * persistent ID SAML configuration. Please contact Dropbox for more + * information. + * @property {string} [user_creation_failed] - Available if .tag is + * user_creation_failed. User creation has failed. + * @property {('team_license_limit'|'free_team_member_limit_reached'|'user_already_on_team'|'user_on_another_team'|'user_already_paired'|'user_migration_failed'|'duplicate_external_member_id'|'duplicate_member_persistent_id'|'persistent_id_disabled'|'user_creation_failed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMemberAddV2Arg + * @property {string} member_email + * @property {string} [member_given_name] - Member's first name. + * @property {string} [member_surname] - Member's last name. + * @property {string} [member_external_id] - External ID for member. + * @property {string} [member_persistent_id] - Persistent ID for member. This + * field is only available to teams using persistent ID SAML configuration. + * @property {boolean} send_welcome_email - Whether to send a welcome email to + * the member. If send_welcome_email is false, no email invitation will be sent + * to the user. This may be useful for apps using single sign-on (SSO) flows for + * onboarding that want to handle announcements themselves. + * @property {boolean} [is_directory_restricted] - Whether a user is directory + * restricted. + * @property {Array.} [role_ids] + */ /** + * Describes the result of attempting to add a single user to the team. + * 'success' is the only value indicating that a user was indeed added to the + * team - the other values explain the type of failure that occurred, and + * include the email of the user for which the operation has failed. + * @typedef {Object} TeamMemberAddV2Result + * @property {string} [team_license_limit] - Available if .tag is + * team_license_limit. Team is already full. The organization has no available + * licenses. + * @property {string} [free_team_member_limit_reached] - Available if .tag is + * free_team_member_limit_reached. Team is already full. The free team member + * limit has been reached. + * @property {string} [user_already_on_team] - Available if .tag is + * user_already_on_team. User is already on this team. The provided email + * address is associated with a user who is already a member of (including in + * recoverable state) or invited to the team. + * @property {string} [user_on_another_team] - Available if .tag is + * user_on_another_team. User is already on another team. The provided email + * address is associated with a user that is already a member or invited to + * another team. + * @property {string} [user_already_paired] - Available if .tag is + * user_already_paired. User is already paired. + * @property {string} [user_migration_failed] - Available if .tag is + * user_migration_failed. User migration has failed. + * @property {string} [duplicate_external_member_id] - Available if .tag is + * duplicate_external_member_id. A user with the given external member ID + * already exists on the team (including in recoverable state). + * @property {string} [duplicate_member_persistent_id] - Available if .tag is + * duplicate_member_persistent_id. A user with the given persistent ID already + * exists on the team (including in recoverable state). + * @property {string} [persistent_id_disabled] - Available if .tag is + * persistent_id_disabled. Persistent ID is only available to teams with + * persistent ID SAML configuration. Please contact Dropbox for more + * information. + * @property {string} [user_creation_failed] - Available if .tag is + * user_creation_failed. User creation has failed. + * @property {TeamTeamMemberInfoV2} [success] - Available if .tag is success. + * Describes a user that was successfully added to the team. + * @property {('team_license_limit'|'free_team_member_limit_reached'|'user_already_on_team'|'user_on_another_team'|'user_already_paired'|'user_migration_failed'|'duplicate_external_member_id'|'duplicate_member_persistent_id'|'persistent_id_disabled'|'user_creation_failed'|'success'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information on devices of a team's member. + * @typedef {Object} TeamMemberDevices + * @property {string} team_member_id - The member unique Id. + * @property {Array.} [web_sessions] - List of web + * sessions made by this team member. + * @property {Array.} [desktop_clients] - List of + * desktop clients by this team member. + * @property {Array.} [mobile_clients] - List of mobile + * clients by this team member. + */ /** + * Information on linked applications of a team member. + * @typedef {Object} TeamMemberLinkedApps + * @property {string} team_member_id - The member unique Id. + * @property {Array.} linked_api_apps - List of third party + * applications linked by this team member. + */ /** + * Basic member profile. + * @typedef {Object} TeamMemberProfile + * @property {string} team_member_id - ID of user as a member of a team. + * @property {string} email - Email address of user. + * @property {boolean} email_verified - Is true if the user's email is verified + * to be owned by the user. + * @property {TeamTeamMemberStatus} status - The user's status as a member of a + * specific team. + * @property {UsersName} name - Representations for a person's name. + * @property {TeamTeamMembershipType} membership_type - The user's membership + * type: full (normal team member) vs limited (does not use a license; no access + * to the team's shared quota). + * @property {string} [external_id] - External ID that a team can attach to the + * user. An application using the API may find it easier to use their own IDs + * instead of Dropbox IDs like account_id or team_member_id. + * @property {string} [account_id] - A user's account identifier. + * @property {Array.} [secondary_emails] - + * Secondary emails of a user. + * @property {Timestamp} [invited_on] - The date and time the user was invited + * to the team (contains value only when the member's status matches + * TeamMemberStatus.invited). + * @property {Timestamp} [joined_on] - The date and time the user joined as a + * member of a specific team. + * @property {Timestamp} [suspended_on] - The date and time the user was + * suspended from the team (contains value only when the member's status matches + * TeamMemberStatus.suspended). + * @property {string} [persistent_id] - Persistent ID that a team can attach to + * the user. The persistent ID is unique ID to be used for SAML authentication. + * @property {boolean} [is_directory_restricted] - Whether the user is a + * directory restricted user. + * @property {string} [profile_photo_url] - URL for the photo representing the + * user, if one is set. + */ /** + * @typedef {Object} TeamMemberSelectorError + * @property {('user_not_found'|'user_not_in_team')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersAddArg + * @property {Array.} new_members - Details of new members to + * be added to the team. + * @property {boolean} force_async - Whether to force the add to happen + * asynchronously. + */ /** + * @typedef {Object} TeamMembersAddArgBase + * @property {boolean} force_async - Whether to force the add to happen + * asynchronously. + */ /** + * @typedef {Object} TeamMembersAddJobStatus + * @property {Array.} [complete] - Available if .tag is + * complete. The asynchronous job has finished. For each member that was + * specified in the parameter :type:`MembersAddArg` that was provided to + * :route:`members/add`, a corresponding item is returned in this list. + * @property {string} [failed] - Available if .tag is failed. The asynchronous + * job returned an error. The string contains an error message. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersAddJobStatusV2Result + * @property {Array.} [complete] - Available if .tag is + * complete. The asynchronous job has finished. For each member that was + * specified in the parameter :type:`MembersAddArg` that was provided to + * :route:`members/add:2`, a corresponding item is returned in this list. + * @property {string} [failed] - Available if .tag is failed. The asynchronous + * job returned an error. The string contains an error message. + * @property {('in_progress'|'complete'|'failed'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersAddLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {Array.} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersAddLaunchV2Result + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {Array.} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersAddV2Arg + * @property {Array.} new_members - Details of new members + * to be added to the team. + * @property {boolean} force_async - Whether to force the add to happen + * asynchronously. + */ /** + * @typedef {Object} TeamMembersDataTransferArg + * @property {TeamUserSelectorArg} user - Identity of user to + * remove/suspend/have their files moved. + * @property {TeamUserSelectorArg} transfer_dest_id - Files from the deleted + * member account will be transferred to this user. + * @property {TeamUserSelectorArg} transfer_admin_id - Errors during the + * transfer process will be sent via email to this user. + */ /** + * @typedef {Object} TeamMembersDeactivateArg + * @property {TeamUserSelectorArg} user - Identity of user to + * remove/suspend/have their files moved. + * @property {boolean} wipe_data - If provided, controls if the user's data will + * be deleted on their linked devices. + */ /** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + * @typedef {Object} TeamMembersDeactivateBaseArg + * @property {TeamUserSelectorArg} user - Identity of user to + * remove/suspend/have their files moved. + */ /** + * @typedef {Object} TeamMembersDeactivateError + * @property {('user_not_found'|'user_not_in_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersDeleteProfilePhotoArg + * @property {TeamUserSelectorArg} user - Identity of the user whose profile + * photo will be deleted. + */ /** + * @typedef {Object} TeamMembersDeleteProfilePhotoError + * @property {('user_not_found'|'user_not_in_team'|'set_profile_disallowed'|'other')} .tag - Tag identifying the union variant. + */ /** + * Available TeamMemberRole for the connected team. To be used with + * members/set_admin_permissions:2. + * @typedef {Object} TeamMembersGetAvailableTeamMemberRolesResult + * @property {Array.} roles - Available roles. + */ /** + * @typedef {Object} TeamMembersGetInfoArgs + * @property {Array.} members - List of team members. + */ /** + * @typedef {Object} TeamMembersGetInfoError + * @property {'other'} .tag - Tag identifying the union variant. + */ /** + * Describes a result obtained for a single user whose id was specified in the + * parameter of members/get_info. + * @typedef {Object} TeamMembersGetInfoItem + * @property {string} [id_not_found] - Available if .tag is id_not_found. An ID + * that was provided as a parameter to :route:`members/get_info` or + * :route:`members/get_info:2`, and did not match a corresponding user. This + * might be a team_member_id, an email, or an external ID, depending on how the + * method was called. + * @property {TeamTeamMemberInfo} [member_info] - Available if .tag is + * member_info. Info about a team member. + * @property {('id_not_found'|'member_info')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersGetInfoItemBase + * @property {string} [id_not_found] - Available if .tag is id_not_found. An ID + * that was provided as a parameter to :route:`members/get_info` or + * :route:`members/get_info:2`, and did not match a corresponding user. This + * might be a team_member_id, an email, or an external ID, depending on how the + * method was called. + * @property {'id_not_found'} .tag - Tag identifying the union variant. + */ /** + * Describes a result obtained for a single user whose id was specified in the + * parameter of members/get_info:2. + * @typedef {Object} TeamMembersGetInfoItemV2 + * @property {string} [id_not_found] - Available if .tag is id_not_found. An ID + * that was provided as a parameter to :route:`members/get_info` or + * :route:`members/get_info:2`, and did not match a corresponding user. This + * might be a team_member_id, an email, or an external ID, depending on how the + * method was called. + * @property {TeamTeamMemberInfoV2} [member_info] - Available if .tag is + * member_info. Info about a team member. + * @property {('id_not_found'|'member_info'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersGetInfoV2Arg + * @property {Array.} members - List of team members. + */ /** + * @typedef {Object} TeamMembersGetInfoV2Result + * @property {Array.} members_info - List of team + * members info. + */ /** + * @typedef {Object} TeamMembersInfo + * @property {Array.} team_member_ids - Team member IDs of the users + * under this hold. + * @property {number} permanently_deleted_users - The number of permanently + * deleted users that were under this hold. + */ /** + * @typedef {Object} TeamMembersListArg + * @property {number} limit - Number of results to return per call. + * @property {boolean} include_removed - Whether to return removed members. + */ /** + * @typedef {Object} TeamMembersListContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * members. + */ /** + * @typedef {Object} TeamMembersListContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersListError + * @property {'other'} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersListResult + * @property {Array.} members - List of team members. + * @property {string} cursor - Pass the cursor into members/list/continue to + * obtain the additional members. + * @property {boolean} has_more - Is true if there are additional team members + * that have not been returned yet. An additional call to members/list/continue + * can retrieve them. + */ /** + * @typedef {Object} TeamMembersListV2Result + * @property {Array.} members - List of team members. + * @property {string} cursor - Pass the cursor into members/list/continue:2 to + * obtain the additional members. + * @property {boolean} has_more - Is true if there are additional team members + * that have not been returned yet. An additional call to + * members/list/continue:2 can retrieve them. + */ /** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + * @typedef {Object} TeamMembersRecoverArg + * @property {TeamUserSelectorArg} user - Identity of user to recover. + */ /** + * @typedef {Object} TeamMembersRecoverError + * @property {('user_not_found'|'user_unrecoverable'|'user_not_in_team'|'team_license_limit'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersRemoveArg + * @property {TeamUserSelectorArg} user - Identity of user to + * remove/suspend/have their files moved. + * @property {boolean} wipe_data - If provided, controls if the user's data will + * be deleted on their linked devices. + * @property {TeamUserSelectorArg} [transfer_dest_id] - If provided, files from + * the deleted member account will be transferred to this user. + * @property {TeamUserSelectorArg} [transfer_admin_id] - If provided, errors + * during the transfer process will be sent via email to this user. If the + * transfer_dest_id argument was provided, then this argument must be provided + * as well. + * @property {boolean} keep_account - Downgrade the member to a Basic account. + * The user will retain the email address associated with their Dropbox account + * and data in their account that is not restricted to team members. In order to + * keep the account the argument wipe_data should be set to false. + * @property {boolean} retain_team_shares - If provided, allows removed users to + * keep access to Dropbox folders (not Dropbox Paper folders) already explicitly + * shared with them (not via a group) when they are downgraded to a Basic + * account. Users will not retain access to folders that do not allow external + * sharing. In order to keep the sharing relationships, the arguments wipe_data + * should be set to false and keep_account should be set to true. + */ /** + * @typedef {Object} TeamMembersRemoveError + * @property {('user_not_found'|'user_not_in_team'|'other'|'removed_and_transfer_dest_should_differ'|'removed_and_transfer_admin_should_differ'|'transfer_dest_user_not_found'|'transfer_dest_user_not_in_team'|'transfer_admin_user_not_in_team'|'transfer_admin_user_not_found'|'unspecified_transfer_admin_id'|'transfer_admin_is_not_admin'|'recipient_not_verified'|'remove_last_admin'|'cannot_keep_account_and_transfer'|'cannot_keep_account_and_delete_data'|'email_address_too_long_to_be_disabled'|'cannot_keep_invited_user_account'|'cannot_retain_shares_when_data_wiped'|'cannot_retain_shares_when_no_account_kept'|'cannot_retain_shares_when_team_external_sharing_off'|'cannot_keep_account'|'cannot_keep_account_under_legal_hold'|'cannot_keep_account_required_to_sign_tos')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersSendWelcomeError + * @property {('user_not_found'|'user_not_in_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + * @typedef {Object} TeamMembersSetPermissions2Arg + * @property {TeamUserSelectorArg} user - Identity of user whose role will be + * set. + * @property {Array.} [new_roles] - The new roles for the member. Send + * empty list to make user member only. For now, only up to one role is allowed. + */ /** + * @typedef {Object} TeamMembersSetPermissions2Error + * @property {('user_not_found'|'last_admin'|'user_not_in_team'|'cannot_set_permissions'|'role_not_found'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersSetPermissions2Result + * @property {string} team_member_id - The member ID of the user to which the + * change was applied. + * @property {Array.} [roles] - The roles after the change. + * Empty in case the user become a non-admin. + */ /** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + * @typedef {Object} TeamMembersSetPermissionsArg + * @property {TeamUserSelectorArg} user - Identity of user whose role will be + * set. + * @property {TeamAdminTier} new_role - The new role of the member. + */ /** + * @typedef {Object} TeamMembersSetPermissionsError + * @property {('user_not_found'|'last_admin'|'user_not_in_team'|'cannot_set_permissions'|'team_license_limit'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersSetPermissionsResult + * @property {string} team_member_id - The member ID of the user to which the + * change was applied. + * @property {TeamAdminTier} role - The role after the change. + */ /** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. At least one of new_email, new_external_id, + * new_given_name, and/or new_surname must be provided. + * @typedef {Object} TeamMembersSetProfileArg + * @property {TeamUserSelectorArg} user - Identity of user whose profile will be + * set. + * @property {string} [new_email] - New email for member. + * @property {string} [new_external_id] - New external ID for member. + * @property {string} [new_given_name] - New given name for member. + * @property {string} [new_surname] - New surname for member. + * @property {string} [new_persistent_id] - New persistent ID. This field only + * available to teams using persistent ID SAML configuration. + * @property {boolean} [new_is_directory_restricted] - New value for whether the + * user is a directory restricted user. + */ /** + * @typedef {Object} TeamMembersSetProfileError + * @property {('user_not_found'|'user_not_in_team'|'external_id_and_new_external_id_unsafe'|'no_new_data_specified'|'email_reserved_for_other_user'|'external_id_used_by_other_user'|'set_profile_disallowed'|'param_cannot_be_empty'|'persistent_id_disabled'|'persistent_id_used_by_other_user'|'directory_restricted_off'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersSetProfilePhotoArg + * @property {TeamUserSelectorArg} user - Identity of the user whose profile + * photo will be set. + * @property {AccountPhotoSourceArg} photo - Image to set as the member's new + * profile photo. + */ /** + * @typedef {Object} TeamMembersSetProfilePhotoError + * @property {AccountSetProfilePhotoError} [photo_error] - Available if .tag is + * photo_error. + * @property {('user_not_found'|'user_not_in_team'|'set_profile_disallowed'|'photo_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersSuspendError + * @property {('user_not_found'|'user_not_in_team'|'other'|'suspend_inactive_user'|'suspend_last_admin'|'team_license_limit')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersTransferFilesError + * @property {('user_not_found'|'user_not_in_team'|'other'|'removed_and_transfer_dest_should_differ'|'removed_and_transfer_admin_should_differ'|'transfer_dest_user_not_found'|'transfer_dest_user_not_in_team'|'transfer_admin_user_not_in_team'|'transfer_admin_user_not_found'|'unspecified_transfer_admin_id'|'transfer_admin_is_not_admin'|'recipient_not_verified')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersTransferFormerMembersFilesError + * @property {('user_not_found'|'user_not_in_team'|'other'|'removed_and_transfer_dest_should_differ'|'removed_and_transfer_admin_should_differ'|'transfer_dest_user_not_found'|'transfer_dest_user_not_in_team'|'transfer_admin_user_not_in_team'|'transfer_admin_user_not_found'|'unspecified_transfer_admin_id'|'transfer_admin_is_not_admin'|'recipient_not_verified'|'user_data_is_being_transferred'|'user_not_removed'|'user_data_cannot_be_transferred'|'user_data_already_transferred')} .tag - Tag identifying the union variant. + */ /** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + * @typedef {Object} TeamMembersUnsuspendArg + * @property {TeamUserSelectorArg} user - Identity of user to unsuspend. + */ /** + * @typedef {Object} TeamMembersUnsuspendError + * @property {('user_not_found'|'user_not_in_team'|'other'|'unsuspend_non_suspended_member'|'team_license_limit')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMobileClientPlatform + * @property {('iphone'|'ipad'|'android'|'windows_phone'|'blackberry'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information about linked Dropbox mobile client sessions. + * @typedef {Object} TeamMobileClientSession + * @property {string} session_id - The session id. + * @property {string} device_name - The device name. + * @property {TeamMobileClientPlatform} client_type - The mobile application + * type. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {string} [country] - The country from which the last activity from + * this session was made. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + * @property {string} [client_version] - The dropbox client version. + * @property {string} [os_version] - The hosting OS version. + * @property {string} [last_carrier] - last carrier used by the device. + */ /** + * Properties of a namespace. + * @typedef {Object} TeamNamespaceMetadata + * @property {string} name - The name of this namespace. + * @property {string} namespace_id - The ID of this namespace. + * @property {TeamNamespaceType} namespace_type - The type of this namespace. + * @property {string} [team_member_id] - If this is a team member or app folder, + * the ID of the owning team member. Otherwise, this field is not present. + */ /** + * @typedef {Object} TeamNamespaceType + * @property {('app_folder'|'shared_folder'|'team_folder'|'team_member_folder'|'other')} .tag - Tag identifying the union variant. + */ /** + * User result for setting member custom quota. + * @typedef {Object} TeamRemoveCustomQuotaResult + * @property {TeamUserSelectorArg} [success] - Available if .tag is success. + * Successfully removed user. + * @property {TeamUserSelectorArg} [invalid_user] - Available if .tag is + * invalid_user. Invalid user (not in team). + * @property {('success'|'invalid_user'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamRemovedStatus + * @property {boolean} is_recoverable - True if the removed team member is + * recoverable. + * @property {boolean} is_disconnected - True if the team member's account was + * converted to individual account. + */ /** + * Result of trying to resend verification email to a secondary email address. + * 'success' is the only value indicating that a verification email was + * successfully sent. The other values explain the type of error that occurred, + * and include the email for which the error occurred. + * @typedef {Object} TeamResendSecondaryEmailResult + * @property {string} [success] - Available if .tag is success. A verification + * email was successfully sent to the secondary email address. + * @property {string} [not_pending] - Available if .tag is not_pending. This + * secondary email address is not pending for the user. + * @property {string} [rate_limited] - Available if .tag is rate_limited. Too + * many emails are being sent to this email address. Please try again later. + * @property {('success'|'not_pending'|'rate_limited'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamResendVerificationEmailArg + * @property {Array.} emails_to_resend - List of + * users and secondary emails to resend verification emails to. + */ /** + * List of users and resend results. + * @typedef {Object} TeamResendVerificationEmailResult + * @property {Array.} results + */ /** + * @typedef {Object} TeamRevokeDesktopClientArg + * @property {string} session_id - The session id. + * @property {string} team_member_id - The unique id of the member owning the + * device. + * @property {boolean} delete_on_unlink - Whether to delete all files of the + * account (this is possible only if supported by the desktop client and will + * be made the next time the client access the account). + */ /** + * @typedef {Object} TeamRevokeDeviceSessionArg + * @property {TeamDeviceSessionArg} [web_session] - Available if .tag is + * web_session. End an active session. + * @property {TeamRevokeDesktopClientArg} [desktop_client] - Available if .tag + * is desktop_client. Unlink a linked desktop device. + * @property {TeamDeviceSessionArg} [mobile_client] - Available if .tag is + * mobile_client. Unlink a linked mobile device. + * @property {('web_session'|'desktop_client'|'mobile_client')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamRevokeDeviceSessionBatchArg + * @property {Array.} revoke_devices + */ /** + * @typedef {Object} TeamRevokeDeviceSessionBatchError + * @property {'other'} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamRevokeDeviceSessionBatchResult + * @property {Array.} revoke_devices_status + */ /** + * @typedef {Object} TeamRevokeDeviceSessionError + * @property {('device_session_not_found'|'member_not_found'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamRevokeDeviceSessionStatus + * @property {boolean} success - Result of the revoking request. + * @property {TeamRevokeDeviceSessionError} [error_type] - The error cause in + * case of a failure. + */ /** + * @typedef {Object} TeamRevokeLinkedApiAppArg + * @property {string} app_id - The application's unique id. + * @property {string} team_member_id - The unique id of the member owning the + * device. + * @property {boolean} keep_app_folder - This flag is not longer supported, the + * application dedicated folder (in case the application uses one) will be + * kept. + */ /** + * @typedef {Object} TeamRevokeLinkedApiAppBatchArg + * @property {Array.} revoke_linked_app + */ /** + * Error returned by linked_apps/revoke_linked_app_batch. + * @typedef {Object} TeamRevokeLinkedAppBatchError + * @property {'other'} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamRevokeLinkedAppBatchResult + * @property {Array.} revoke_linked_app_status + */ /** + * Error returned by linked_apps/revoke_linked_app. + * @typedef {Object} TeamRevokeLinkedAppError + * @property {('app_not_found'|'member_not_found'|'app_folder_removal_not_supported'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamRevokeLinkedAppStatus + * @property {boolean} success - Result of the revoking request. + * @property {TeamRevokeLinkedAppError} [error_type] - The error cause in case + * of a failure. + */ /** + * @typedef {Object} TeamSetCustomQuotaArg + * @property {Array.} users_and_quotas - List of users + * and their custom quotas. + */ /** + * Error returned when setting member custom quota. + * @typedef {Object} TeamSetCustomQuotaError + * @property {('too_many_users'|'other'|'some_users_are_excluded')} .tag - Tag identifying the union variant. + */ /** + * Structure representing Approve List entries. Domain and emails are supported. + * At least one entry of any supported type is required. + * @typedef {Object} TeamSharingAllowlistAddArgs + * @property {Array.} [domains] - List of domains represented by valid + * string representation (RFC-1034/5). + * @property {Array.} [emails] - List of emails represented by valid + * string representation (RFC-5322/822). + */ /** + * @typedef {Object} TeamSharingAllowlistAddError + * @property {string} [malformed_entry] - Available if .tag is malformed_entry. + * One of provided values is not valid. + * @property {string} [entries_already_exist] - Available if .tag is + * entries_already_exist. Entries already exists. + * @property {('malformed_entry'|'no_entries_provided'|'too_many_entries_provided'|'team_limit_reached'|'unknown_error'|'entries_already_exist'|'other')} .tag - Tag identifying the union variant. + */ /** + * This struct is empty. The comment here is intentionally emitted to avoid + * indentation issues with Stone. + * @typedef {Object} TeamSharingAllowlistAddResponse + */ /** + * @typedef {Object} TeamSharingAllowlistListArg + * @property {number} limit - The number of entries to fetch at one time. + */ /** + * @typedef {Object} TeamSharingAllowlistListContinueArg + * @property {string} cursor - The cursor returned from a previous call to + * sharing_allowlist/list or sharing_allowlist/list/continue. + */ /** + * @typedef {Object} TeamSharingAllowlistListContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * This struct is empty. The comment here is intentionally emitted to avoid + * indentation issues with Stone. + * @typedef {Object} TeamSharingAllowlistListError + */ /** + * @typedef {Object} TeamSharingAllowlistListResponse + * @property {Array.} domains - List of domains represented by valid + * string representation (RFC-1034/5). + * @property {Array.} emails - List of emails represented by valid + * string representation (RFC-5322/822). + * @property {string} cursor - If this is nonempty, there are more entries that + * can be fetched with sharing_allowlist/list/continue. + * @property {boolean} has_more - if true indicates that more entries can be + * fetched with sharing_allowlist/list/continue. + */ /** + * @typedef {Object} TeamSharingAllowlistRemoveArgs + * @property {Array.} [domains] - List of domains represented by valid + * string representation (RFC-1034/5). + * @property {Array.} [emails] - List of emails represented by valid + * string representation (RFC-5322/822). + */ /** + * @typedef {Object} TeamSharingAllowlistRemoveError + * @property {string} [malformed_entry] - Available if .tag is malformed_entry. + * One of provided values is not valid. + * @property {string} [entries_do_not_exist] - Available if .tag is + * entries_do_not_exist. One or more provided values do not exist. + * @property {('malformed_entry'|'entries_do_not_exist'|'no_entries_provided'|'too_many_entries_provided'|'unknown_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * This struct is empty. The comment here is intentionally emitted to avoid + * indentation issues with Stone. + * @typedef {Object} TeamSharingAllowlistRemoveResponse + */ /** + * Describes the number of users in a specific storage bucket. + * @typedef {Object} TeamStorageBucket + * @property {string} bucket - The name of the storage bucket. For example, '1G' + * is a bucket of users with storage size up to 1 Giga. + * @property {number} users - The number of people whose storage is in the range + * of this storage bucket. + */ /** + * @typedef {Object} TeamTeamFolderAccessError + * @property {('invalid_team_folder_id'|'no_access'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderActivateError + * @property {TeamTeamFolderAccessError} [access_error] - Available if .tag is + * access_error. + * @property {TeamTeamFolderInvalidStatusError} [status_error] - Available if + * .tag is status_error. + * @property {TeamTeamFolderTeamSharedDropboxError} [team_shared_dropbox_error] + * - Available if .tag is team_shared_dropbox_error. + * @property {('access_error'|'status_error'|'team_shared_dropbox_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderArchiveArg + * @property {string} team_folder_id - The ID of the team folder. + * @property {boolean} force_async_off - Whether to force the archive to happen + * synchronously. + */ /** + * @typedef {Object} TeamTeamFolderArchiveError + * @property {TeamTeamFolderAccessError} [access_error] - Available if .tag is + * access_error. + * @property {TeamTeamFolderInvalidStatusError} [status_error] - Available if + * .tag is status_error. + * @property {TeamTeamFolderTeamSharedDropboxError} [team_shared_dropbox_error] + * - Available if .tag is team_shared_dropbox_error. + * @property {('access_error'|'status_error'|'team_shared_dropbox_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderArchiveJobStatus + * @property {TeamTeamFolderMetadata} [complete] - Available if .tag is + * complete. The archive job has finished. The value is the metadata for the + * resulting team folder. + * @property {TeamTeamFolderArchiveError} [failed] - Available if .tag is + * failed. Error occurred while performing an asynchronous job from + * :route:`team_folder/archive`. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderArchiveLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {TeamTeamFolderMetadata} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderCreateArg + * @property {string} name - Name for the new team folder. + * @property {FilesSyncSettingArg} [sync_setting] - The sync setting to apply to + * this team folder. Only permitted if the team has team selective sync enabled. + */ /** + * @typedef {Object} TeamTeamFolderCreateError + * @property {FilesSyncSettingsError} [sync_settings_error] - Available if .tag + * is sync_settings_error. An error occurred setting the sync settings. + * @property {('invalid_folder_name'|'folder_name_already_used'|'folder_name_reserved'|'sync_settings_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderGetInfoItem + * @property {string} [id_not_found] - Available if .tag is id_not_found. An ID + * that was provided as a parameter to :route:`team_folder/get_info` did not + * match any of the team's team folders. + * @property {TeamTeamFolderMetadata} [team_folder_metadata] - Available if .tag + * is team_folder_metadata. Properties of a team folder. + * @property {('id_not_found'|'team_folder_metadata')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderIdArg + * @property {string} team_folder_id - The ID of the team folder. + */ /** + * @typedef {Object} TeamTeamFolderIdListArg + * @property {Array.} team_folder_ids - The list of team folder IDs. + */ /** + * @typedef {Object} TeamTeamFolderInvalidStatusError + * @property {('active'|'archived'|'archive_in_progress'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderListArg + * @property {number} limit - The maximum number of results to return per + * request. + */ /** + * @typedef {Object} TeamTeamFolderListContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * team folders. + */ /** + * @typedef {Object} TeamTeamFolderListContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderListError + * @property {TeamTeamFolderAccessError} access_error + */ /** + * Result for team_folder/list and team_folder/list/continue. + * @typedef {Object} TeamTeamFolderListResult + * @property {Array.} team_folders - List of all team + * folders in the authenticated team. + * @property {string} cursor - Pass the cursor into team_folder/list/continue to + * obtain additional team folders. + * @property {boolean} has_more - Is true if there are additional team folders + * that have not been returned yet. An additional call to + * team_folder/list/continue can retrieve them. + */ /** + * Properties of a team folder. + * @typedef {Object} TeamTeamFolderMetadata + * @property {string} team_folder_id - The ID of the team folder. + * @property {string} name - The name of the team folder. + * @property {TeamTeamFolderStatus} status - The status of the team folder. + * @property {boolean} is_team_shared_dropbox - True if this team folder is a + * shared team root. + * @property {FilesSyncSetting} sync_setting - The sync setting applied to this + * team folder. + * @property {Array.} content_sync_settings - Sync + * settings applied to contents of this team folder. + */ /** + * @typedef {Object} TeamTeamFolderPermanentlyDeleteError + * @property {TeamTeamFolderAccessError} [access_error] - Available if .tag is + * access_error. + * @property {TeamTeamFolderInvalidStatusError} [status_error] - Available if + * .tag is status_error. + * @property {TeamTeamFolderTeamSharedDropboxError} [team_shared_dropbox_error] + * - Available if .tag is team_shared_dropbox_error. + * @property {('access_error'|'status_error'|'team_shared_dropbox_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderRenameArg + * @property {string} team_folder_id - The ID of the team folder. + * @property {string} name - New team folder name. + */ /** + * @typedef {Object} TeamTeamFolderRenameError + * @property {TeamTeamFolderAccessError} [access_error] - Available if .tag is + * access_error. + * @property {TeamTeamFolderInvalidStatusError} [status_error] - Available if + * .tag is status_error. + * @property {TeamTeamFolderTeamSharedDropboxError} [team_shared_dropbox_error] + * - Available if .tag is team_shared_dropbox_error. + * @property {('access_error'|'status_error'|'team_shared_dropbox_error'|'other'|'invalid_folder_name'|'folder_name_already_used'|'folder_name_reserved')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderStatus + * @property {('active'|'archived'|'archive_in_progress'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderTeamSharedDropboxError + * @property {('disallowed'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderUpdateSyncSettingsArg + * @property {string} team_folder_id - The ID of the team folder. + * @property {FilesSyncSettingArg} [sync_setting] - Sync setting to apply to the + * team folder itself. Only meaningful if the team folder is not a shared team + * root. + * @property {Array.} [content_sync_settings] - Sync + * settings to apply to contents of this team folder. + */ /** + * @typedef {Object} TeamTeamFolderUpdateSyncSettingsError + * @property {TeamTeamFolderAccessError} [access_error] - Available if .tag is + * access_error. + * @property {TeamTeamFolderInvalidStatusError} [status_error] - Available if + * .tag is status_error. + * @property {TeamTeamFolderTeamSharedDropboxError} [team_shared_dropbox_error] + * - Available if .tag is team_shared_dropbox_error. + * @property {FilesSyncSettingsError} [sync_settings_error] - Available if .tag + * is sync_settings_error. An error occurred setting the sync settings. + * @property {('access_error'|'status_error'|'team_shared_dropbox_error'|'other'|'sync_settings_error')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamGetInfoResult + * @property {string} name - The name of the team. + * @property {string} team_id - The ID of the team. + * @property {number} num_licensed_users - The number of licenses available to + * the team. + * @property {number} num_provisioned_users - The number of accounts that have + * been invited or are already active members of the team. + * @property {number} num_used_licenses - The number of licenses used on the + * team. + * @property {TeamPoliciesTeamMemberPolicies} policies + */ /** + * Information about a team member. + * @typedef {Object} TeamTeamMemberInfo + * @property {TeamTeamMemberProfile} profile - Profile of a user as a member of + * a team. + * @property {TeamAdminTier} role - The user's role in the team. + */ /** + * Information about a team member. + * @typedef {Object} TeamTeamMemberInfoV2 + * @property {TeamTeamMemberProfile} profile - Profile of a user as a member of + * a team. + * @property {Array.} [roles] - The user's roles in the + * team. + */ /** + * Information about a team member, after the change, like at + * members/set_profile:2. + * @typedef {Object} TeamTeamMemberInfoV2Result + * @property {TeamTeamMemberInfoV2} member_info - Member info, after the change. + */ /** + * Profile of a user as a member of a team. + * @typedef {Object} TeamTeamMemberProfile + * @property {string} team_member_id - ID of user as a member of a team. + * @property {string} email - Email address of user. + * @property {boolean} email_verified - Is true if the user's email is verified + * to be owned by the user. + * @property {TeamTeamMemberStatus} status - The user's status as a member of a + * specific team. + * @property {UsersName} name - Representations for a person's name. + * @property {TeamTeamMembershipType} membership_type - The user's membership + * type: full (normal team member) vs limited (does not use a license; no access + * to the team's shared quota). + * @property {Array.} groups - List of group IDs of groups that the user + * belongs to. + * @property {string} member_folder_id - The namespace id of the user's root + * folder. + * @property {string} [external_id] - External ID that a team can attach to the + * user. An application using the API may find it easier to use their own IDs + * instead of Dropbox IDs like account_id or team_member_id. + * @property {string} [account_id] - A user's account identifier. + * @property {Array.} [secondary_emails] - + * Secondary emails of a user. + * @property {Timestamp} [invited_on] - The date and time the user was invited + * to the team (contains value only when the member's status matches + * TeamMemberStatus.invited). + * @property {Timestamp} [joined_on] - The date and time the user joined as a + * member of a specific team. + * @property {Timestamp} [suspended_on] - The date and time the user was + * suspended from the team (contains value only when the member's status matches + * TeamMemberStatus.suspended). + * @property {string} [persistent_id] - Persistent ID that a team can attach to + * the user. The persistent ID is unique ID to be used for SAML authentication. + * @property {boolean} [is_directory_restricted] - Whether the user is a + * directory restricted user. + * @property {string} [profile_photo_url] - URL for the photo representing the + * user, if one is set. + */ /** + * A role which can be attached to a team member. This replaces AdminTier; each + * AdminTier corresponds to a new TeamMemberRole with a matching name. + * @typedef {Object} TeamTeamMemberRole + * @property {string} role_id - A string containing encoded role ID. For roles + * defined by Dropbox, this is the same across all teams. + * @property {string} name - The role display name. + * @property {string} description - Role description. Describes which + * permissions come with this role. + */ /** + * The user's status as a member of a specific team. + * @typedef {Object} TeamTeamMemberStatus + * @property {TeamRemovedStatus} [removed] - Available if .tag is removed. User + * is no longer a member of the team. Removed users are only listed when + * include_removed is true in members/list. + * @property {('active'|'invited'|'suspended'|'removed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamMembershipType + * @property {('full'|'limited')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamNamespacesListArg + * @property {number} limit - Specifying a value here has no effect. + */ /** + * @typedef {Object} TeamTeamNamespacesListContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * team-accessible namespaces. + */ /** + * @typedef {Object} TeamTeamNamespacesListContinueError + * @property {('invalid_arg'|'other'|'invalid_cursor')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamNamespacesListError + * @property {('invalid_arg'|'other')} .tag - Tag identifying the union variant. + */ /** + * Result for namespaces/list. + * @typedef {Object} TeamTeamNamespacesListResult + * @property {Array.} namespaces - List of all namespaces + * the team can access. + * @property {string} cursor - Pass the cursor into namespaces/list/continue to + * obtain additional namespaces. Note that duplicate namespaces may be returned. + * @property {boolean} has_more - Is true if there are additional namespaces + * that have not been returned yet. + */ /** + * @typedef {Object} TeamTeamReportFailureReason + * @property {('temporary_error'|'many_reports_at_once'|'too_much_data'|'other')} .tag - Tag identifying the union variant. + */ /** + * Error returned by token/get_authenticated_admin. + * @typedef {Object} TeamTokenGetAuthenticatedAdminError + * @property {('mapping_not_found'|'admin_not_active'|'other')} .tag - Tag identifying the union variant. + */ /** + * Results for token/get_authenticated_admin. + * @typedef {Object} TeamTokenGetAuthenticatedAdminResult + * @property {TeamTeamMemberProfile} admin_profile - The admin who authorized + * the token. + */ /** + * The value for Feature.upload_api_rate_limit. + * @typedef {Object} TeamUploadApiRateLimitValue + * @property {number} [limit] - Available if .tag is limit. The number of upload + * API calls allowed per month. + * @property {('unlimited'|'limit'|'other')} .tag - Tag identifying the union variant. + */ /** + * Result of trying to add secondary emails to a user. 'success' is the only + * value indicating that a user was successfully retrieved for adding secondary + * emails. The other values explain the type of error that occurred, and include + * the user for which the error occurred. + * @typedef {Object} TeamUserAddResult + * @property {TeamUserSecondaryEmailsResult} [success] - Available if .tag is + * success. Describes a user and the results for each attempt to add a secondary + * email. + * @property {TeamUserSelectorArg} [invalid_user] - Available if .tag is + * invalid_user. Specified user is not a valid target for adding secondary + * emails. + * @property {TeamUserSelectorArg} [unverified] - Available if .tag is + * unverified. Secondary emails can only be added to verified users. + * @property {TeamUserSelectorArg} [placeholder_user] - Available if .tag is + * placeholder_user. Secondary emails cannot be added to placeholder users. + * @property {('success'|'invalid_user'|'unverified'|'placeholder_user'|'other')} .tag - Tag identifying the union variant. + */ /** + * User and their required custom quota in GB (1 TB = 1024 GB). + * @typedef {Object} TeamUserCustomQuotaArg + * @property {TeamUserSelectorArg} user + * @property {number} quota_gb + */ /** + * User and their custom quota in GB (1 TB = 1024 GB). No quota returns if the + * user has no custom quota set. + * @typedef {Object} TeamUserCustomQuotaResult + * @property {TeamUserSelectorArg} user + * @property {number} [quota_gb] + */ /** + * @typedef {Object} TeamUserDeleteEmailsResult + * @property {TeamUserSelectorArg} user + * @property {Array.} results + */ /** + * Result of trying to delete a user's secondary emails. 'success' is the only + * value indicating that a user was successfully retrieved for deleting + * secondary emails. The other values explain the type of error that occurred, + * and include the user for which the error occurred. + * @typedef {Object} TeamUserDeleteResult + * @property {TeamUserDeleteEmailsResult} [success] - Available if .tag is + * success. Describes a user and the results for each attempt to delete a + * secondary email. + * @property {TeamUserSelectorArg} [invalid_user] - Available if .tag is + * invalid_user. Specified user is not a valid target for deleting secondary + * emails. + * @property {('success'|'invalid_user'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamUserResendEmailsResult + * @property {TeamUserSelectorArg} user + * @property {Array.} results + */ /** + * Result of trying to resend verification emails to a user. 'success' is the + * only value indicating that a user was successfully retrieved for sending + * verification emails. The other values explain the type of error that + * occurred, and include the user for which the error occurred. + * @typedef {Object} TeamUserResendResult + * @property {TeamUserResendEmailsResult} [success] - Available if .tag is + * success. Describes a user and the results for each attempt to resend + * verification emails. + * @property {TeamUserSelectorArg} [invalid_user] - Available if .tag is + * invalid_user. Specified user is not a valid target for resending verification + * emails. + * @property {('success'|'invalid_user'|'other')} .tag - Tag identifying the union variant. + */ /** + * User and a list of secondary emails. + * @typedef {Object} TeamUserSecondaryEmailsArg + * @property {TeamUserSelectorArg} user + * @property {Array.} secondary_emails + */ /** + * @typedef {Object} TeamUserSecondaryEmailsResult + * @property {TeamUserSelectorArg} user + * @property {Array.} results + */ /** + * Argument for selecting a single user, either by team_member_id, external_id + * or email. + * @typedef {Object} TeamUserSelectorArg + * @property {string} [team_member_id] - Available if .tag is team_member_id. + * @property {string} [external_id] - Available if .tag is external_id. + * @property {string} [email] - Available if .tag is email. + * @property {('team_member_id'|'external_id'|'email')} .tag - Tag identifying the union variant. + */ /** + * Error that can be returned whenever a struct derived from UserSelectorArg is + * used. + * @typedef {Object} TeamUserSelectorError + * @property {'user_not_found'} .tag - Tag identifying the union variant. + */ /** + * Argument for selecting a list of users, either by team_member_ids, + * external_ids or emails. + * @typedef {Object} TeamUsersSelectorArg + * @property {Array.} [team_member_ids] - Available if .tag is + * team_member_ids. List of member IDs. + * @property {Array.} [external_ids] - Available if .tag is + * external_ids. List of external user IDs. + * @property {Array.} [emails] - Available if .tag is emails. List of + * email addresses. + * @property {('team_member_ids'|'external_ids'|'emails')} .tag - Tag identifying the union variant. + */ /** + * The group type determines how a group is managed. + * @typedef {Object} TeamCommonGroupManagementType + * @property {('user_managed'|'company_managed'|'system_managed'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information about a group. + * @typedef {Object} TeamCommonGroupSummary + * @property {string} group_name + * @property {string} group_id + * @property {TeamCommonGroupManagementType} group_management_type - Who is + * allowed to manage the group. + * @property {string} [group_external_id] - External ID of group. This is an + * arbitrary ID that an admin can attach to a group. + * @property {number} [member_count] - The number of members in the group. + */ /** + * The group type determines how a group is created and managed. + * @typedef {Object} TeamCommonGroupType + * @property {('team'|'user_managed'|'other')} .tag - Tag identifying the union variant. + */ /** + * The type of the space limit imposed on a team member. + * @typedef {Object} TeamCommonMemberSpaceLimitType + * @property {('off'|'alert_only'|'stop_sync'|'other')} .tag - Tag identifying the union variant. + */ /** + * Time range. + * @typedef {Object} TeamCommonTimeRange + * @property {Timestamp} [start_time] - Optional starting time (inclusive). + * @property {Timestamp} [end_time] - Optional ending time (exclusive). + */ /** + * Indicates the method in which the action was performed. + * @typedef {Object} TeamLogAccessMethodLogInfo + * @property {TeamLogWebSessionLogInfo} [admin_console] - Available if .tag is + * admin_console. Admin console session details. + * @property {TeamLogApiSessionLogInfo} [api] - Available if .tag is api. Api + * session details. + * @property {TeamLogWebSessionLogInfo} [content_manager] - Available if .tag is + * content_manager. Content manager session details. + * @property + * {(TeamLogWebSessionLogInfo|TeamLogDesktopSessionLogInfo|TeamLogMobileSessionLogInfo|TeamLogSessionLogInfo)} + * [end_user] - Available if .tag is end_user. End user session details. + * @property {TeamLogWebSessionLogInfo} [enterprise_console] - Available if .tag + * is enterprise_console. Enterprise console session details. + * @property {TeamLogWebSessionLogInfo} [sign_in_as] - Available if .tag is + * sign_in_as. Sign in as session details. + * @property {('admin_console'|'api'|'content_manager'|'end_user'|'enterprise_console'|'sign_in_as'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogAccountCaptureAvailability + * @property {('available'|'unavailable'|'other')} .tag - Tag identifying the union variant. + */ /** + * Granted/revoked option to enable account capture on team domains. + * @typedef {Object} TeamLogAccountCaptureChangeAvailabilityDetails + * @property {TeamLogAccountCaptureAvailability} new_value - New account capture + * availabilty value. + * @property {TeamLogAccountCaptureAvailability} [previous_value] - Previous + * account capture availabilty value. Might be missing due to historical data + * gap. + */ /** + * @typedef {Object} TeamLogAccountCaptureChangeAvailabilityType + * @property {string} description + */ /** + * Changed account capture setting on team domain. + * @typedef {Object} TeamLogAccountCaptureChangePolicyDetails + * @property {TeamLogAccountCapturePolicy} new_value - New account capture + * policy. + * @property {TeamLogAccountCapturePolicy} [previous_value] - Previous account + * capture policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogAccountCaptureChangePolicyType + * @property {string} description + */ /** + * Account-captured user migrated account to team. + * @typedef {Object} TeamLogAccountCaptureMigrateAccountDetails + * @property {string} domain_name - Domain name. + */ /** + * @typedef {Object} TeamLogAccountCaptureMigrateAccountType + * @property {string} description + */ /** + * Sent account capture email to all unmanaged members. + * @typedef {Object} TeamLogAccountCaptureNotificationEmailsSentDetails + * @property {string} domain_name - Domain name. + * @property {TeamLogAccountCaptureNotificationType} [notification_type] - + * Account-capture email notification type. + */ /** + * @typedef {Object} TeamLogAccountCaptureNotificationEmailsSentType + * @property {string} description + */ /** + * @typedef {Object} TeamLogAccountCaptureNotificationType + * @property {('actionable_notification'|'proactive_warning_notification'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogAccountCapturePolicy + * @property {('all_users'|'disabled'|'invited_users'|'other')} .tag - Tag identifying the union variant. + */ /** + * Account-captured user changed account email to personal email. + * @typedef {Object} TeamLogAccountCaptureRelinquishAccountDetails + * @property {string} domain_name - Domain name. + */ /** + * @typedef {Object} TeamLogAccountCaptureRelinquishAccountType + * @property {string} description + */ /** + * Unlocked/locked account after failed sign in attempts. + * @typedef {Object} TeamLogAccountLockOrUnlockedDetails + * @property {TeamLogAccountState} previous_value - The previous account status. + * @property {TeamLogAccountState} new_value - The new account status. + */ /** + * @typedef {Object} TeamLogAccountLockOrUnlockedType + * @property {string} description + */ /** + * @typedef {Object} TeamLogAccountState + * @property {('locked'|'unlocked'|'other')} .tag - Tag identifying the union variant. + */ /** + * Additional information indicating the action taken that caused status change. + * @typedef {Object} TeamLogActionDetails + * @property {TeamLogMemberRemoveActionType} [remove_action] - Available if .tag + * is remove_action. Define how the user was removed from the team. + * @property {TeamLogTeamInviteDetails} [team_invite_details] - Available if + * .tag is team_invite_details. Additional information relevant when someone is + * invited to the team. + * @property {TeamLogJoinTeamDetails} [team_join_details] - Available if .tag is + * team_join_details. Additional information relevant when a new member joins + * the team. + * @property {('remove_action'|'team_invite_details'|'team_join_details'|'other')} .tag - Tag identifying the union variant. + */ /** + * The entity who performed the action. + * @typedef {Object} TeamLogActorLogInfo + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [admin] - Available if .tag is admin. The admin who did the action. + * @property + * {(TeamLogUserOrTeamLinkedAppLogInfo|TeamLogUserLinkedAppLogInfo|TeamLogTeamLinkedAppLogInfo|TeamLogAppLogInfo)} + * [app] - Available if .tag is app. The application who did the action. + * @property {TeamLogResellerLogInfo} [reseller] - Available if .tag is + * reseller. Action done by reseller. + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [user] - Available if .tag is user. The user who did the action. + * @property {('admin'|'anonymous'|'app'|'dropbox'|'reseller'|'user'|'other')} .tag - Tag identifying the union variant. + */ /** + * Alert category + * @typedef {Object} TeamLogAdminAlertCategoryEnum + * @property {('account_takeover'|'data_loss_protection'|'information_governance'|'malware_sharing'|'massive_file_operation'|'na'|'threat_management'|'other')} .tag - Tag identifying the union variant. + */ /** + * Alert state + * @typedef {Object} TeamLogAdminAlertGeneralStateEnum + * @property {('active'|'dismissed'|'in_progress'|'na'|'resolved'|'other')} .tag - Tag identifying the union variant. + */ /** + * Alert severity + * @typedef {Object} TeamLogAdminAlertSeverityEnum + * @property {('high'|'info'|'low'|'medium'|'na'|'other')} .tag - Tag identifying the union variant. + */ /** + * Alert configurations + * @typedef {Object} TeamLogAdminAlertingAlertConfiguration + * @property {TeamLogAdminAlertingAlertStatePolicy} [alert_state] - Alert state. + * @property {TeamLogAdminAlertingAlertSensitivity} [sensitivity_level] - + * Sensitivity level. + * @property {TeamLogRecipientsConfiguration} [recipients_settings] - Recipient + * settings. + * @property {string} [text] - Text. + * @property {string} [excluded_file_extensions] - Excluded file extensions. + */ /** + * Alert sensitivity + * @typedef {Object} TeamLogAdminAlertingAlertSensitivity + * @property {('high'|'highest'|'invalid'|'low'|'lowest'|'medium'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed an alert state. + * @typedef {Object} TeamLogAdminAlertingAlertStateChangedDetails + * @property {string} alert_name - Alert name. + * @property {TeamLogAdminAlertSeverityEnum} alert_severity - Alert severity. + * @property {TeamLogAdminAlertCategoryEnum} alert_category - Alert category. + * @property {string} alert_instance_id - Alert ID. + * @property {TeamLogAdminAlertGeneralStateEnum} previous_value - Alert state + * before the change. + * @property {TeamLogAdminAlertGeneralStateEnum} new_value - Alert state after + * the change. + */ /** + * @typedef {Object} TeamLogAdminAlertingAlertStateChangedType + * @property {string} description + */ /** + * Policy for controlling whether an alert can be triggered or not + * @typedef {Object} TeamLogAdminAlertingAlertStatePolicy + * @property {('off'|'on'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed an alert setting. + * @typedef {Object} TeamLogAdminAlertingChangedAlertConfigDetails + * @property {string} alert_name - Alert Name. + * @property {TeamLogAdminAlertingAlertConfiguration} previous_alert_config - + * Previous alert configuration. + * @property {TeamLogAdminAlertingAlertConfiguration} new_alert_config - New + * alert configuration. + */ /** + * @typedef {Object} TeamLogAdminAlertingChangedAlertConfigType + * @property {string} description + */ /** + * Triggered security alert. + * @typedef {Object} TeamLogAdminAlertingTriggeredAlertDetails + * @property {string} alert_name - Alert name. + * @property {TeamLogAdminAlertSeverityEnum} alert_severity - Alert severity. + * @property {TeamLogAdminAlertCategoryEnum} alert_category - Alert category. + * @property {string} alert_instance_id - Alert ID. + */ /** + * @typedef {Object} TeamLogAdminAlertingTriggeredAlertType + * @property {string} description + */ /** + * @typedef {Object} TeamLogAdminConsoleAppPermission + * @property {('default_for_listed_apps'|'default_for_unlisted_apps'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogAdminConsoleAppPolicy + * @property {('allow'|'block'|'default'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed admin reminder settings for requests to join the team. + * @typedef {Object} TeamLogAdminEmailRemindersChangedDetails + * @property {TeamLogAdminEmailRemindersPolicy} new_value - To. + * @property {TeamLogAdminEmailRemindersPolicy} previous_value - From. + */ /** + * @typedef {Object} TeamLogAdminEmailRemindersChangedType + * @property {string} description + */ /** + * Policy for deciding whether team admins receive reminder emails for requests + * to join the team + * @typedef {Object} TeamLogAdminEmailRemindersPolicy + * @property {('default'|'disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogAdminRole + * @property {('billing_admin'|'compliance_admin'|'content_admin'|'limited_admin'|'member_only'|'reporting_admin'|'security_admin'|'support_admin'|'team_admin'|'user_management_admin'|'other')} .tag - Tag identifying the union variant. + */ /** + * Alert recipients setting type + * @typedef {Object} TeamLogAlertRecipientsSettingType + * @property {('custom_list'|'invalid'|'none'|'team_admins'|'other')} .tag - Tag identifying the union variant. + */ /** + * Disabled downloads. + * @typedef {Object} TeamLogAllowDownloadDisabledDetails + */ /** + * @typedef {Object} TeamLogAllowDownloadDisabledType + * @property {string} description + */ /** + * Enabled downloads. + * @typedef {Object} TeamLogAllowDownloadEnabledDetails + */ /** + * @typedef {Object} TeamLogAllowDownloadEnabledType + * @property {string} description + */ /** + * Api session. + * @typedef {Object} TeamLogApiSessionLogInfo + * @property {string} request_id - Api request ID. + */ /** + * Failed to connect app for member. + * @typedef {Object} TeamLogAppBlockedByPermissionsDetails + * @property + * {(TeamLogUserOrTeamLinkedAppLogInfo|TeamLogUserLinkedAppLogInfo|TeamLogTeamLinkedAppLogInfo|TeamLogAppLogInfo)} + * app_info - Relevant application details. + */ /** + * @typedef {Object} TeamLogAppBlockedByPermissionsType + * @property {string} description + */ /** + * Linked app for team. + * @typedef {Object} TeamLogAppLinkTeamDetails + * @property + * {(TeamLogUserOrTeamLinkedAppLogInfo|TeamLogUserLinkedAppLogInfo|TeamLogTeamLinkedAppLogInfo|TeamLogAppLogInfo)} + * app_info - Relevant application details. + */ /** + * @typedef {Object} TeamLogAppLinkTeamType + * @property {string} description + */ /** + * Linked app for member. + * @typedef {Object} TeamLogAppLinkUserDetails + * @property + * {(TeamLogUserOrTeamLinkedAppLogInfo|TeamLogUserLinkedAppLogInfo|TeamLogTeamLinkedAppLogInfo|TeamLogAppLogInfo)} + * app_info - Relevant application details. + */ /** + * @typedef {Object} TeamLogAppLinkUserType + * @property {string} description + */ /** + * App's logged information. + * @typedef {Object} TeamLogAppLogInfo +@property {("user_or_team_linked_app"|"user_linked_app"|"team_linked_app")} .tag +- Tag identifying the subtype variant. + * @property {string} [app_id] - App unique ID. + * @property {string} [display_name] - App display name. + */ /** + * Changed app permissions. + * @typedef {Object} TeamLogAppPermissionsChangedDetails + * @property {TeamLogAdminConsoleAppPolicy} previous_value - Previous policy. + * @property {TeamLogAdminConsoleAppPolicy} new_value - New policy. + * @property {string} [app_name] - Name of the app. + * @property {TeamLogAdminConsoleAppPermission} [permission] - Permission that + * was changed. + */ /** + * @typedef {Object} TeamLogAppPermissionsChangedType + * @property {string} description + */ /** + * Unlinked app for team. + * @typedef {Object} TeamLogAppUnlinkTeamDetails + * @property + * {(TeamLogUserOrTeamLinkedAppLogInfo|TeamLogUserLinkedAppLogInfo|TeamLogTeamLinkedAppLogInfo|TeamLogAppLogInfo)} + * app_info - Relevant application details. + */ /** + * @typedef {Object} TeamLogAppUnlinkTeamType + * @property {string} description + */ /** + * Unlinked app for member. + * @typedef {Object} TeamLogAppUnlinkUserDetails + * @property + * {(TeamLogUserOrTeamLinkedAppLogInfo|TeamLogUserLinkedAppLogInfo|TeamLogTeamLinkedAppLogInfo|TeamLogAppLogInfo)} + * app_info - Relevant application details. + */ /** + * @typedef {Object} TeamLogAppUnlinkUserType + * @property {string} description + */ /** + * Applied naming convention. + * @typedef {Object} TeamLogApplyNamingConventionDetails + */ /** + * @typedef {Object} TeamLogApplyNamingConventionType + * @property {string} description + */ /** + * Asset details. + * @typedef {Object} TeamLogAssetLogInfo + * @property {TeamLogFileLogInfo} [file] - Available if .tag is file. File's + * details. + * @property {TeamLogFolderLogInfo} [folder] - Available if .tag is folder. + * Folder's details. + * @property {TeamLogPaperDocumentLogInfo} [paper_document] - Available if .tag + * is paper_document. Paper document's details. + * @property {TeamLogPaperFolderLogInfo} [paper_folder] - Available if .tag is + * paper_folder. Paper folder's details. + * @property {TeamLogShowcaseDocumentLogInfo} [showcase_document] - Available if + * .tag is showcase_document. Showcase document's details. + * @property {('file'|'folder'|'paper_document'|'paper_folder'|'showcase_document'|'other')} .tag - Tag identifying the union variant. + */ /** + * Backup status + * @typedef {Object} TeamLogBackupStatus + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Added Binder page. + * @typedef {Object} TeamLogBinderAddPageDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + */ /** + * @typedef {Object} TeamLogBinderAddPageType + * @property {string} description + */ /** + * Added Binder section. + * @typedef {Object} TeamLogBinderAddSectionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + */ /** + * @typedef {Object} TeamLogBinderAddSectionType + * @property {string} description + */ /** + * Removed Binder page. + * @typedef {Object} TeamLogBinderRemovePageDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + */ /** + * @typedef {Object} TeamLogBinderRemovePageType + * @property {string} description + */ /** + * Removed Binder section. + * @typedef {Object} TeamLogBinderRemoveSectionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + */ /** + * @typedef {Object} TeamLogBinderRemoveSectionType + * @property {string} description + */ /** + * Renamed Binder page. + * @typedef {Object} TeamLogBinderRenamePageDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + * @property {string} [previous_binder_item_name] - Previous name of the Binder + * page/section. + */ /** + * @typedef {Object} TeamLogBinderRenamePageType + * @property {string} description + */ /** + * Renamed Binder section. + * @typedef {Object} TeamLogBinderRenameSectionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + * @property {string} [previous_binder_item_name] - Previous name of the Binder + * page/section. + */ /** + * @typedef {Object} TeamLogBinderRenameSectionType + * @property {string} description + */ /** + * Reordered Binder page. + * @typedef {Object} TeamLogBinderReorderPageDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + */ /** + * @typedef {Object} TeamLogBinderReorderPageType + * @property {string} description + */ /** + * Reordered Binder section. + * @typedef {Object} TeamLogBinderReorderSectionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + */ /** + * @typedef {Object} TeamLogBinderReorderSectionType + * @property {string} description + */ /** + * Policy for controlling if team members can activate camera uploads + * @typedef {Object} TeamLogCameraUploadsPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed camera uploads setting for team. + * @typedef {Object} TeamLogCameraUploadsPolicyChangedDetails + * @property {TeamLogCameraUploadsPolicy} new_value - New camera uploads + * setting. + * @property {TeamLogCameraUploadsPolicy} previous_value - Previous camera + * uploads setting. + */ /** + * @typedef {Object} TeamLogCameraUploadsPolicyChangedType + * @property {string} description + */ /** + * Policy for deciding whether team users can transcription in Capture + * @typedef {Object} TeamLogCaptureTranscriptPolicy + * @property {('default'|'disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed Capture transcription policy for team. + * @typedef {Object} TeamLogCaptureTranscriptPolicyChangedDetails + * @property {TeamLogCaptureTranscriptPolicy} new_value - To. + * @property {TeamLogCaptureTranscriptPolicy} previous_value - From. + */ /** + * @typedef {Object} TeamLogCaptureTranscriptPolicyChangedType + * @property {string} description + */ /** + * Certificate details. + * @typedef {Object} TeamLogCertificate + * @property {string} subject - Certificate subject. + * @property {string} issuer - Certificate issuer. + * @property {string} issue_date - Certificate issue date. + * @property {string} expiration_date - Certificate expiration date. + * @property {string} serial_number - Certificate serial number. + * @property {string} sha1_fingerprint - Certificate sha1 fingerprint. + * @property {string} [common_name] - Certificate common name. + */ /** + * Policy for deciding whether the team's default expiration days policy must be + * enforced when an externally shared link is updated + * @typedef {Object} TeamLogChangeLinkExpirationPolicy + * @property {('allowed'|'not_allowed'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed enterprise admin role. + * @typedef {Object} TeamLogChangedEnterpriseAdminRoleDetails + * @property {TeamLogFedAdminRole} previous_value - The member’s previous + * enterprise admin role. + * @property {TeamLogFedAdminRole} new_value - The member’s new enterprise + * admin role. + * @property {string} team_name - The name of the member’s team. + */ /** + * @typedef {Object} TeamLogChangedEnterpriseAdminRoleType + * @property {string} description + */ /** + * Changed enterprise-connected team status. + * @typedef {Object} TeamLogChangedEnterpriseConnectedTeamStatusDetails + * @property {TeamLogFedHandshakeAction} action - The preformed change in the + * team’s connection status. + * @property {TeamLogFederationStatusChangeAdditionalInfo} additional_info - + * Additional information about the organization or team. + * @property {TeamLogTrustedTeamsRequestState} previous_value - Previous request + * state. + * @property {TeamLogTrustedTeamsRequestState} new_value - New request state. + */ /** + * @typedef {Object} TeamLogChangedEnterpriseConnectedTeamStatusType + * @property {string} description + */ /** + * Changed classification policy for team. + * @typedef {Object} TeamLogClassificationChangePolicyDetails + * @property {TeamLogClassificationPolicyEnumWrapper} previous_value - Previous + * classification policy. + * @property {TeamLogClassificationPolicyEnumWrapper} new_value - New + * classification policy. + * @property {TeamLogClassificationType} classification_type - Policy type. + */ /** + * @typedef {Object} TeamLogClassificationChangePolicyType + * @property {string} description + */ /** + * Created Classification report. + * @typedef {Object} TeamLogClassificationCreateReportDetails + */ /** + * Couldn't create Classification report. + * @typedef {Object} TeamLogClassificationCreateReportFailDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ /** + * @typedef {Object} TeamLogClassificationCreateReportFailType + * @property {string} description + */ /** + * @typedef {Object} TeamLogClassificationCreateReportType + * @property {string} description + */ /** + * Policy for controlling team access to the classification feature + * @typedef {Object} TeamLogClassificationPolicyEnumWrapper + * @property {('disabled'|'enabled'|'member_and_team_folders'|'team_folders'|'other')} .tag - Tag identifying the union variant. + */ /** + * The type of classification (currently only personal information) + * @typedef {Object} TeamLogClassificationType + * @property {('personal_information'|'pii'|'other')} .tag - Tag identifying the union variant. + */ /** + * Shared album. + * @typedef {Object} TeamLogCollectionShareDetails + * @property {string} album_name - Album name. + */ /** + * @typedef {Object} TeamLogCollectionShareType + * @property {string} description + */ /** + * Policy for controlling team access to computer backup feature + * @typedef {Object} TeamLogComputerBackupPolicy + * @property {('default'|'disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed computer backup policy for team. + * @typedef {Object} TeamLogComputerBackupPolicyChangedDetails + * @property {TeamLogComputerBackupPolicy} new_value - New computer backup + * policy. + * @property {TeamLogComputerBackupPolicy} previous_value - Previous computer + * backup policy. + */ /** + * @typedef {Object} TeamLogComputerBackupPolicyChangedType + * @property {string} description + */ /** + * The name of the team + * @typedef {Object} TeamLogConnectedTeamName + * @property {string} team - The name of the team. + */ /** + * Changed content management setting. + * @typedef {Object} TeamLogContentAdministrationPolicyChangedDetails + * @property {string} new_value - New content administration policy. + * @property {string} previous_value - Previous content administration policy. + */ /** + * @typedef {Object} TeamLogContentAdministrationPolicyChangedType + * @property {string} description + */ /** + * Policy for pemanent content deletion + * @typedef {Object} TeamLogContentPermanentDeletePolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * The primary entity on which the action was done. + * @typedef {Object} TeamLogContextLogInfo + * @property {TeamLogNonTeamMemberLogInfo} [non_team_member] - Available if .tag + * is non_team_member. Action was done on behalf of a non team member. + * @property {TeamLogTeamLogInfo} [organization_team] - Available if .tag is + * organization_team. Action was done on behalf of a team that's part of an + * organization. + * @property {TeamLogTeamMemberLogInfo} [team_member] - Available if .tag is + * team_member. Action was done on behalf of a team member. + * @property {TeamLogTrustedNonTeamMemberLogInfo} [trusted_non_team_member] - + * Available if .tag is trusted_non_team_member. Action was done on behalf of a + * trusted non team member. + * @property {('anonymous'|'non_team_member'|'organization_team'|'team'|'team_member'|'trusted_non_team_member'|'other')} .tag - Tag identifying the union variant. + */ /** + * Created folders. + * @typedef {Object} TeamLogCreateFolderDetails + */ /** + * @typedef {Object} TeamLogCreateFolderType + * @property {string} description + */ /** + * Created team invite link. + * @typedef {Object} TeamLogCreateTeamInviteLinkDetails + * @property {string} link_url - The invite link url that was created. + * @property {string} expiry_date - The expiration date of the invite link. + */ /** + * @typedef {Object} TeamLogCreateTeamInviteLinkType + * @property {string} description + */ /** + * Set restrictions on data center locations where team data resides. + * @typedef {Object} TeamLogDataPlacementRestrictionChangePolicyDetails + * @property {TeamLogPlacementRestriction} previous_value - Previous placement + * restriction. + * @property {TeamLogPlacementRestriction} new_value - New placement + * restriction. + */ /** + * @typedef {Object} TeamLogDataPlacementRestrictionChangePolicyType + * @property {string} description + */ /** + * Completed restrictions on data center locations where team data resides. + * @typedef {Object} TeamLogDataPlacementRestrictionSatisfyPolicyDetails + * @property {TeamLogPlacementRestriction} placement_restriction - Placement + * restriction. + */ /** + * @typedef {Object} TeamLogDataPlacementRestrictionSatisfyPolicyType + * @property {string} description + */ /** + * Requested data residency migration for team data. + * @typedef {Object} TeamLogDataResidencyMigrationRequestSuccessfulDetails + */ /** + * @typedef {Object} TeamLogDataResidencyMigrationRequestSuccessfulType + * @property {string} description + */ /** + * Request for data residency migration for team data has failed. + * @typedef {Object} TeamLogDataResidencyMigrationRequestUnsuccessfulDetails + */ /** + * @typedef {Object} TeamLogDataResidencyMigrationRequestUnsuccessfulType + * @property {string} description + */ /** + * Policy for the default number of days until an externally shared link expires + * @typedef {Object} TeamLogDefaultLinkExpirationDaysPolicy + * @property {('day_1'|'day_180'|'day_3'|'day_30'|'day_7'|'day_90'|'none'|'year_1'|'other')} .tag - Tag identifying the union variant. + */ /** + * Deleted team invite link. + * @typedef {Object} TeamLogDeleteTeamInviteLinkDetails + * @property {string} link_url - The invite link url that was deleted. + */ /** + * @typedef {Object} TeamLogDeleteTeamInviteLinkType + * @property {string} description + */ /** + * Information about linked Dropbox desktop client sessions + * @typedef {Object} TeamLogDesktopDeviceSessionLogInfo +@property {'desktop_device_session'} [.tag] - Tag identifying this subtype +variant. This field is only present when needed to discriminate between multiple +possible subtypes. + * @property {string} host_name - Name of the hosting desktop. + * @property {TeamDesktopPlatform} client_type - The Dropbox desktop client + * type. + * @property {string} platform - Information on the hosting platform. + * @property {boolean} is_delete_on_unlink_supported - Whether itu2019s possible + * to delete all of the account files upon unlinking. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + * @property {TeamLogDesktopSessionLogInfo} [session_info] - Desktop session + * unique id. + * @property {string} [client_version] - The Dropbox client version. + */ /** + * Desktop session. + * @typedef {Object} TeamLogDesktopSessionLogInfo +@property {'desktop'} [.tag] - Tag identifying this subtype variant. This field +is only present when needed to discriminate between multiple possible subtypes. + * @property {string} [session_id] - Session ID. + */ /** + * Added members to device approvals exception list. + * @typedef {Object} TeamLogDeviceApprovalsAddExceptionDetails + */ /** + * @typedef {Object} TeamLogDeviceApprovalsAddExceptionType + * @property {string} description + */ /** + * Set/removed limit on number of computers member can link to team Dropbox + * account. + * @typedef {Object} TeamLogDeviceApprovalsChangeDesktopPolicyDetails + * @property {TeamLogDeviceApprovalsPolicy} [new_value] - New desktop device + * approvals policy. Might be missing due to historical data gap. + * @property {TeamLogDeviceApprovalsPolicy} [previous_value] - Previous desktop + * device approvals policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogDeviceApprovalsChangeDesktopPolicyType + * @property {string} description + */ /** + * Set/removed limit on number of mobile devices member can link to team Dropbox + * account. + * @typedef {Object} TeamLogDeviceApprovalsChangeMobilePolicyDetails + * @property {TeamLogDeviceApprovalsPolicy} [new_value] - New mobile device + * approvals policy. Might be missing due to historical data gap. + * @property {TeamLogDeviceApprovalsPolicy} [previous_value] - Previous mobile + * device approvals policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogDeviceApprovalsChangeMobilePolicyType + * @property {string} description + */ /** + * Changed device approvals setting when member is over limit. + * @typedef {Object} TeamLogDeviceApprovalsChangeOverageActionDetails + * @property {TeamPoliciesRolloutMethod} [new_value] - New over the limits + * policy. Might be missing due to historical data gap. + * @property {TeamPoliciesRolloutMethod} [previous_value] - Previous over the + * limit policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogDeviceApprovalsChangeOverageActionType + * @property {string} description + */ /** + * Changed device approvals setting when member unlinks approved device. + * @typedef {Object} TeamLogDeviceApprovalsChangeUnlinkActionDetails + * @property {TeamLogDeviceUnlinkPolicy} [new_value] - New device unlink policy. + * Might be missing due to historical data gap. + * @property {TeamLogDeviceUnlinkPolicy} [previous_value] - Previous device + * unlink policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogDeviceApprovalsChangeUnlinkActionType + * @property {string} description + */ /** + * @typedef {Object} TeamLogDeviceApprovalsPolicy + * @property {('limited'|'unlimited'|'other')} .tag - Tag identifying the union variant. + */ /** + * Removed members from device approvals exception list. + * @typedef {Object} TeamLogDeviceApprovalsRemoveExceptionDetails + */ /** + * @typedef {Object} TeamLogDeviceApprovalsRemoveExceptionType + * @property {string} description + */ /** + * Changed IP address associated with active desktop session. + * @typedef {Object} TeamLogDeviceChangeIpDesktopDetails + * @property + * {(TeamLogDesktopDeviceSessionLogInfo|TeamLogMobileDeviceSessionLogInfo|TeamLogWebDeviceSessionLogInfo|TeamLogLegacyDeviceSessionLogInfo|TeamLogDeviceSessionLogInfo)} + * device_session_info - Device's session logged information. + */ /** + * @typedef {Object} TeamLogDeviceChangeIpDesktopType + * @property {string} description + */ /** + * Changed IP address associated with active mobile session. + * @typedef {Object} TeamLogDeviceChangeIpMobileDetails + * @property + * {(TeamLogDesktopDeviceSessionLogInfo|TeamLogMobileDeviceSessionLogInfo|TeamLogWebDeviceSessionLogInfo|TeamLogLegacyDeviceSessionLogInfo|TeamLogDeviceSessionLogInfo)} + * [device_session_info] - Device's session logged information. + */ /** + * @typedef {Object} TeamLogDeviceChangeIpMobileType + * @property {string} description + */ /** + * Changed IP address associated with active web session. + * @typedef {Object} TeamLogDeviceChangeIpWebDetails + * @property {string} user_agent - Web browser name. + */ /** + * @typedef {Object} TeamLogDeviceChangeIpWebType + * @property {string} description + */ /** + * Failed to delete all files from unlinked device. + * @typedef {Object} TeamLogDeviceDeleteOnUnlinkFailDetails + * @property {number} num_failures - The number of times that remote file + * deletion failed. + * @property + * {(TeamLogWebSessionLogInfo|TeamLogDesktopSessionLogInfo|TeamLogMobileSessionLogInfo|TeamLogSessionLogInfo)} + * [session_info] - Session unique id. + * @property {string} [display_name] - The device name. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogDeviceDeleteOnUnlinkFailType + * @property {string} description + */ /** + * Deleted all files from unlinked device. + * @typedef {Object} TeamLogDeviceDeleteOnUnlinkSuccessDetails + * @property + * {(TeamLogWebSessionLogInfo|TeamLogDesktopSessionLogInfo|TeamLogMobileSessionLogInfo|TeamLogSessionLogInfo)} + * [session_info] - Session unique id. + * @property {string} [display_name] - The device name. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogDeviceDeleteOnUnlinkSuccessType + * @property {string} description + */ /** + * Failed to link device. + * @typedef {Object} TeamLogDeviceLinkFailDetails + * @property {TeamLogDeviceType} device_type - A description of the device used + * while user approval blocked. + * @property {string} [ip_address] - IP address. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogDeviceLinkFailType + * @property {string} description + */ /** + * Linked device. + * @typedef {Object} TeamLogDeviceLinkSuccessDetails + * @property + * {(TeamLogDesktopDeviceSessionLogInfo|TeamLogMobileDeviceSessionLogInfo|TeamLogWebDeviceSessionLogInfo|TeamLogLegacyDeviceSessionLogInfo|TeamLogDeviceSessionLogInfo)} + * [device_session_info] - Device's session logged information. + */ /** + * @typedef {Object} TeamLogDeviceLinkSuccessType + * @property {string} description + */ /** + * Disabled device management. + * @typedef {Object} TeamLogDeviceManagementDisabledDetails + */ /** + * @typedef {Object} TeamLogDeviceManagementDisabledType + * @property {string} description + */ /** + * Enabled device management. + * @typedef {Object} TeamLogDeviceManagementEnabledDetails + */ /** + * @typedef {Object} TeamLogDeviceManagementEnabledType + * @property {string} description + */ /** + * Device's session logged information. + * @typedef {Object} TeamLogDeviceSessionLogInfo +@property +{("desktop_device_session"|"mobile_device_session"|"web_device_session"|"legacy_device_session")} +.tag - Tag identifying the subtype variant. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + */ /** + * Enabled/disabled backup for computer. + * @typedef {Object} TeamLogDeviceSyncBackupStatusChangedDetails + * @property {TeamLogDesktopDeviceSessionLogInfo} desktop_device_session_info - + * Device's session logged information. + * @property {TeamLogBackupStatus} previous_value - Previous status of computer + * backup on the device. + * @property {TeamLogBackupStatus} new_value - Next status of computer backup on + * the device. + */ /** + * @typedef {Object} TeamLogDeviceSyncBackupStatusChangedType + * @property {string} description + */ /** + * @typedef {Object} TeamLogDeviceType + * @property {('desktop'|'mobile'|'other')} .tag - Tag identifying the union variant. + */ /** + * Disconnected device. + * @typedef {Object} TeamLogDeviceUnlinkDetails + * @property {boolean} delete_data - True if the user requested to delete data + * after device unlink, false otherwise. + * @property + * {(TeamLogWebSessionLogInfo|TeamLogDesktopSessionLogInfo|TeamLogMobileSessionLogInfo|TeamLogSessionLogInfo)} + * [session_info] - Session unique id. + * @property {string} [display_name] - The device name. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogDeviceUnlinkPolicy + * @property {('keep'|'remove'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogDeviceUnlinkType + * @property {string} description + */ /** + * Added members to directory restrictions list. + * @typedef {Object} TeamLogDirectoryRestrictionsAddMembersDetails + */ /** + * @typedef {Object} TeamLogDirectoryRestrictionsAddMembersType + * @property {string} description + */ /** + * Removed members from directory restrictions list. + * @typedef {Object} TeamLogDirectoryRestrictionsRemoveMembersDetails + */ /** + * @typedef {Object} TeamLogDirectoryRestrictionsRemoveMembersType + * @property {string} description + */ /** + * Disabled domain invites. + * @typedef {Object} TeamLogDisabledDomainInvitesDetails + */ /** + * @typedef {Object} TeamLogDisabledDomainInvitesType + * @property {string} description + */ /** + * @typedef {Object} TeamLogDispositionActionType + * @property {('automatic_delete'|'automatic_permanently_delete'|'other')} .tag - Tag identifying the union variant. + */ /** + * Approved user's request to join team. + * @typedef {Object} TeamLogDomainInvitesApproveRequestToJoinTeamDetails + */ /** + * @typedef {Object} TeamLogDomainInvitesApproveRequestToJoinTeamType + * @property {string} description + */ /** + * Declined user's request to join team. + * @typedef {Object} TeamLogDomainInvitesDeclineRequestToJoinTeamDetails + */ /** + * @typedef {Object} TeamLogDomainInvitesDeclineRequestToJoinTeamType + * @property {string} description + */ /** + * Sent domain invites to existing domain accounts. + * @typedef {Object} TeamLogDomainInvitesEmailExistingUsersDetails + * @property {string} domain_name - Domain names. + * @property {number} num_recipients - Number of recipients. + */ /** + * @typedef {Object} TeamLogDomainInvitesEmailExistingUsersType + * @property {string} description + */ /** + * Requested to join team. + * @typedef {Object} TeamLogDomainInvitesRequestToJoinTeamDetails + */ /** + * @typedef {Object} TeamLogDomainInvitesRequestToJoinTeamType + * @property {string} description + */ /** + * Disabled "Automatically invite new users". + * @typedef {Object} TeamLogDomainInvitesSetInviteNewUserPrefToNoDetails + */ /** + * @typedef {Object} TeamLogDomainInvitesSetInviteNewUserPrefToNoType + * @property {string} description + */ /** + * Enabled "Automatically invite new users". + * @typedef {Object} TeamLogDomainInvitesSetInviteNewUserPrefToYesDetails + */ /** + * @typedef {Object} TeamLogDomainInvitesSetInviteNewUserPrefToYesType + * @property {string} description + */ /** + * Failed to verify team domain. + * @typedef {Object} TeamLogDomainVerificationAddDomainFailDetails + * @property {string} domain_name - Domain name. + * @property {string} [verification_method] - Domain name verification method. + * Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogDomainVerificationAddDomainFailType + * @property {string} description + */ /** + * Verified team domain. + * @typedef {Object} TeamLogDomainVerificationAddDomainSuccessDetails + * @property {Array.} domain_names - Domain names. + * @property {string} [verification_method] - Domain name verification method. + * Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogDomainVerificationAddDomainSuccessType + * @property {string} description + */ /** + * Removed domain from list of verified team domains. + * @typedef {Object} TeamLogDomainVerificationRemoveDomainDetails + * @property {Array.} domain_names - Domain names. + */ /** + * @typedef {Object} TeamLogDomainVerificationRemoveDomainType + * @property {string} description + */ /** + * Shared content downloads policy + * @typedef {Object} TeamLogDownloadPolicyType + * @property {('allow'|'disallow'|'other')} .tag - Tag identifying the union variant. + */ /** + * Exported passwords. + * @typedef {Object} TeamLogDropboxPasswordsExportedDetails + * @property {string} platform - The platform the device runs export. + */ /** + * @typedef {Object} TeamLogDropboxPasswordsExportedType + * @property {string} description + */ /** + * Enrolled new Dropbox Passwords device. + * @typedef {Object} TeamLogDropboxPasswordsNewDeviceEnrolledDetails + * @property {boolean} is_first_device - Whether it's a first device enrolled. + * @property {string} platform - The platform the device is enrolled. + */ /** + * @typedef {Object} TeamLogDropboxPasswordsNewDeviceEnrolledType + * @property {string} description + */ /** + * Policy for deciding whether team users can use Dropbox Passwords + * @typedef {Object} TeamLogDropboxPasswordsPolicy + * @property {('default'|'disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed Dropbox Passwords policy for team. + * @typedef {Object} TeamLogDropboxPasswordsPolicyChangedDetails + * @property {TeamLogDropboxPasswordsPolicy} new_value - To. + * @property {TeamLogDropboxPasswordsPolicy} previous_value - From. + */ /** + * @typedef {Object} TeamLogDropboxPasswordsPolicyChangedType + * @property {string} description + */ /** + * Represents a time duration: unit and amount + * @typedef {Object} TeamLogDurationLogInfo + * @property {TeamLogTimeUnit} unit - Time unit. + * @property {number} amount - Amount of time. + */ /** + * Policy for deciding whether a team can use Email to Dropbox feature + * @typedef {Object} TeamLogEmailIngestPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed email to Dropbox policy for team. + * @typedef {Object} TeamLogEmailIngestPolicyChangedDetails + * @property {TeamLogEmailIngestPolicy} new_value - To. + * @property {TeamLogEmailIngestPolicy} previous_value - From. + */ /** + * @typedef {Object} TeamLogEmailIngestPolicyChangedType + * @property {string} description + */ /** + * Received files via Email to Dropbox. + * @typedef {Object} TeamLogEmailIngestReceiveFileDetails + * @property {string} inbox_name - Inbox name. + * @property {Array.} attachment_names - Submitted file names. + * @property {string} [subject] - Subject of the email. + * @property {string} [from_name] - The name as provided by the submitter. + * @property {string} [from_email] - The email as provided by the submitter. + */ /** + * @typedef {Object} TeamLogEmailIngestReceiveFileType + * @property {string} description + */ /** + * Added members to EMM exception list. + * @typedef {Object} TeamLogEmmAddExceptionDetails + */ /** + * @typedef {Object} TeamLogEmmAddExceptionType + * @property {string} description + */ /** + * Enabled/disabled enterprise mobility management for members. + * @typedef {Object} TeamLogEmmChangePolicyDetails + * @property {TeamPoliciesEmmState} new_value - New enterprise mobility + * management policy. + * @property {TeamPoliciesEmmState} [previous_value] - Previous enterprise + * mobility management policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogEmmChangePolicyType + * @property {string} description + */ /** + * Created EMM-excluded users report. + * @typedef {Object} TeamLogEmmCreateExceptionsReportDetails + */ /** + * @typedef {Object} TeamLogEmmCreateExceptionsReportType + * @property {string} description + */ /** + * Created EMM mobile app usage report. + * @typedef {Object} TeamLogEmmCreateUsageReportDetails + */ /** + * @typedef {Object} TeamLogEmmCreateUsageReportType + * @property {string} description + */ /** + * Failed to sign in via EMM. + * @typedef {Object} TeamLogEmmErrorDetails + * @property {TeamLogFailureDetailsLogInfo} error_details - Error details. + */ /** + * @typedef {Object} TeamLogEmmErrorType + * @property {string} description + */ /** + * Refreshed auth token used for setting up EMM. + * @typedef {Object} TeamLogEmmRefreshAuthTokenDetails + */ /** + * @typedef {Object} TeamLogEmmRefreshAuthTokenType + * @property {string} description + */ /** + * Removed members from EMM exception list. + * @typedef {Object} TeamLogEmmRemoveExceptionDetails + */ /** + * @typedef {Object} TeamLogEmmRemoveExceptionType + * @property {string} description + */ /** + * Enabled domain invites. + * @typedef {Object} TeamLogEnabledDomainInvitesDetails + */ /** + * @typedef {Object} TeamLogEnabledDomainInvitesType + * @property {string} description + */ /** + * Ended enterprise admin session. + * @typedef {Object} TeamLogEndedEnterpriseAdminSessionDeprecatedDetails + * @property {TeamLogFedExtraDetails} federation_extra_details - More + * information about the organization or team. + */ /** + * @typedef {Object} TeamLogEndedEnterpriseAdminSessionDeprecatedType + * @property {string} description + */ /** + * Ended enterprise admin session. + * @typedef {Object} TeamLogEndedEnterpriseAdminSessionDetails + */ /** + * @typedef {Object} TeamLogEndedEnterpriseAdminSessionType + * @property {string} description + */ /** + * Policy for deciding whether password must be enforced when an externally + * shared link is updated + * @typedef {Object} TeamLogEnforceLinkPasswordPolicy + * @property {('optional'|'required'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed who can update a setting. + * @typedef {Object} TeamLogEnterpriseSettingsLockingDetails + * @property {string} team_name - The secondary team name. + * @property {string} settings_page_name - Settings page name. + * @property {string} previous_settings_page_locking_state - Previous locked + * settings page state. + * @property {string} new_settings_page_locking_state - New locked settings page + * state. + */ /** + * @typedef {Object} TeamLogEnterpriseSettingsLockingType + * @property {string} description + */ /** + * Category of events in event audit log. + * @typedef {Object} TeamLogEventCategory + * @property {('admin_alerting'|'apps'|'comments'|'data_governance'|'devices'|'domains'|'file_operations'|'file_requests'|'groups'|'logins'|'members'|'paper'|'passwords'|'reports'|'sharing'|'showcase'|'sso'|'team_folders'|'team_policies'|'team_profile'|'tfa'|'trusted_teams'|'other')} .tag - Tag identifying the union variant. + */ /** + * Additional fields depending on the event type. + * @typedef {Object} TeamLogEventDetails + * @property {TeamLogAdminAlertingAlertStateChangedDetails} + * [admin_alerting_alert_state_changed_details] - Available if .tag is + * admin_alerting_alert_state_changed_details. + * @property {TeamLogAdminAlertingChangedAlertConfigDetails} + * [admin_alerting_changed_alert_config_details] - Available if .tag is + * admin_alerting_changed_alert_config_details. + * @property {TeamLogAdminAlertingTriggeredAlertDetails} + * [admin_alerting_triggered_alert_details] - Available if .tag is + * admin_alerting_triggered_alert_details. + * @property {TeamLogAppBlockedByPermissionsDetails} + * [app_blocked_by_permissions_details] - Available if .tag is + * app_blocked_by_permissions_details. + * @property {TeamLogAppLinkTeamDetails} [app_link_team_details] - Available if + * .tag is app_link_team_details. + * @property {TeamLogAppLinkUserDetails} [app_link_user_details] - Available if + * .tag is app_link_user_details. + * @property {TeamLogAppUnlinkTeamDetails} [app_unlink_team_details] - Available + * if .tag is app_unlink_team_details. + * @property {TeamLogAppUnlinkUserDetails} [app_unlink_user_details] - Available + * if .tag is app_unlink_user_details. + * @property {TeamLogIntegrationConnectedDetails} + * [integration_connected_details] - Available if .tag is + * integration_connected_details. + * @property {TeamLogIntegrationDisconnectedDetails} + * [integration_disconnected_details] - Available if .tag is + * integration_disconnected_details. + * @property {TeamLogFileAddCommentDetails} [file_add_comment_details] - + * Available if .tag is file_add_comment_details. + * @property {TeamLogFileChangeCommentSubscriptionDetails} + * [file_change_comment_subscription_details] - Available if .tag is + * file_change_comment_subscription_details. + * @property {TeamLogFileDeleteCommentDetails} [file_delete_comment_details] - + * Available if .tag is file_delete_comment_details. + * @property {TeamLogFileEditCommentDetails} [file_edit_comment_details] - + * Available if .tag is file_edit_comment_details. + * @property {TeamLogFileLikeCommentDetails} [file_like_comment_details] - + * Available if .tag is file_like_comment_details. + * @property {TeamLogFileResolveCommentDetails} [file_resolve_comment_details] - + * Available if .tag is file_resolve_comment_details. + * @property {TeamLogFileUnlikeCommentDetails} [file_unlike_comment_details] - + * Available if .tag is file_unlike_comment_details. + * @property {TeamLogFileUnresolveCommentDetails} + * [file_unresolve_comment_details] - Available if .tag is + * file_unresolve_comment_details. + * @property {TeamLogGovernancePolicyAddFoldersDetails} + * [governance_policy_add_folders_details] - Available if .tag is + * governance_policy_add_folders_details. + * @property {TeamLogGovernancePolicyAddFolderFailedDetails} + * [governance_policy_add_folder_failed_details] - Available if .tag is + * governance_policy_add_folder_failed_details. + * @property {TeamLogGovernancePolicyContentDisposedDetails} + * [governance_policy_content_disposed_details] - Available if .tag is + * governance_policy_content_disposed_details. + * @property {TeamLogGovernancePolicyCreateDetails} + * [governance_policy_create_details] - Available if .tag is + * governance_policy_create_details. + * @property {TeamLogGovernancePolicyDeleteDetails} + * [governance_policy_delete_details] - Available if .tag is + * governance_policy_delete_details. + * @property {TeamLogGovernancePolicyEditDetailsDetails} + * [governance_policy_edit_details_details] - Available if .tag is + * governance_policy_edit_details_details. + * @property {TeamLogGovernancePolicyEditDurationDetails} + * [governance_policy_edit_duration_details] - Available if .tag is + * governance_policy_edit_duration_details. + * @property {TeamLogGovernancePolicyExportCreatedDetails} + * [governance_policy_export_created_details] - Available if .tag is + * governance_policy_export_created_details. + * @property {TeamLogGovernancePolicyExportRemovedDetails} + * [governance_policy_export_removed_details] - Available if .tag is + * governance_policy_export_removed_details. + * @property {TeamLogGovernancePolicyRemoveFoldersDetails} + * [governance_policy_remove_folders_details] - Available if .tag is + * governance_policy_remove_folders_details. + * @property {TeamLogGovernancePolicyReportCreatedDetails} + * [governance_policy_report_created_details] - Available if .tag is + * governance_policy_report_created_details. + * @property {TeamLogGovernancePolicyZipPartDownloadedDetails} + * [governance_policy_zip_part_downloaded_details] - Available if .tag is + * governance_policy_zip_part_downloaded_details. + * @property {TeamLogLegalHoldsActivateAHoldDetails} + * [legal_holds_activate_a_hold_details] - Available if .tag is + * legal_holds_activate_a_hold_details. + * @property {TeamLogLegalHoldsAddMembersDetails} + * [legal_holds_add_members_details] - Available if .tag is + * legal_holds_add_members_details. + * @property {TeamLogLegalHoldsChangeHoldDetailsDetails} + * [legal_holds_change_hold_details_details] - Available if .tag is + * legal_holds_change_hold_details_details. + * @property {TeamLogLegalHoldsChangeHoldNameDetails} + * [legal_holds_change_hold_name_details] - Available if .tag is + * legal_holds_change_hold_name_details. + * @property {TeamLogLegalHoldsExportAHoldDetails} + * [legal_holds_export_a_hold_details] - Available if .tag is + * legal_holds_export_a_hold_details. + * @property {TeamLogLegalHoldsExportCancelledDetails} + * [legal_holds_export_cancelled_details] - Available if .tag is + * legal_holds_export_cancelled_details. + * @property {TeamLogLegalHoldsExportDownloadedDetails} + * [legal_holds_export_downloaded_details] - Available if .tag is + * legal_holds_export_downloaded_details. + * @property {TeamLogLegalHoldsExportRemovedDetails} + * [legal_holds_export_removed_details] - Available if .tag is + * legal_holds_export_removed_details. + * @property {TeamLogLegalHoldsReleaseAHoldDetails} + * [legal_holds_release_a_hold_details] - Available if .tag is + * legal_holds_release_a_hold_details. + * @property {TeamLogLegalHoldsRemoveMembersDetails} + * [legal_holds_remove_members_details] - Available if .tag is + * legal_holds_remove_members_details. + * @property {TeamLogLegalHoldsReportAHoldDetails} + * [legal_holds_report_a_hold_details] - Available if .tag is + * legal_holds_report_a_hold_details. + * @property {TeamLogDeviceChangeIpDesktopDetails} + * [device_change_ip_desktop_details] - Available if .tag is + * device_change_ip_desktop_details. + * @property {TeamLogDeviceChangeIpMobileDetails} + * [device_change_ip_mobile_details] - Available if .tag is + * device_change_ip_mobile_details. + * @property {TeamLogDeviceChangeIpWebDetails} [device_change_ip_web_details] - + * Available if .tag is device_change_ip_web_details. + * @property {TeamLogDeviceDeleteOnUnlinkFailDetails} + * [device_delete_on_unlink_fail_details] - Available if .tag is + * device_delete_on_unlink_fail_details. + * @property {TeamLogDeviceDeleteOnUnlinkSuccessDetails} + * [device_delete_on_unlink_success_details] - Available if .tag is + * device_delete_on_unlink_success_details. + * @property {TeamLogDeviceLinkFailDetails} [device_link_fail_details] - + * Available if .tag is device_link_fail_details. + * @property {TeamLogDeviceLinkSuccessDetails} [device_link_success_details] - + * Available if .tag is device_link_success_details. + * @property {TeamLogDeviceManagementDisabledDetails} + * [device_management_disabled_details] - Available if .tag is + * device_management_disabled_details. + * @property {TeamLogDeviceManagementEnabledDetails} + * [device_management_enabled_details] - Available if .tag is + * device_management_enabled_details. + * @property {TeamLogDeviceSyncBackupStatusChangedDetails} + * [device_sync_backup_status_changed_details] - Available if .tag is + * device_sync_backup_status_changed_details. + * @property {TeamLogDeviceUnlinkDetails} [device_unlink_details] - Available if + * .tag is device_unlink_details. + * @property {TeamLogDropboxPasswordsExportedDetails} + * [dropbox_passwords_exported_details] - Available if .tag is + * dropbox_passwords_exported_details. + * @property {TeamLogDropboxPasswordsNewDeviceEnrolledDetails} + * [dropbox_passwords_new_device_enrolled_details] - Available if .tag is + * dropbox_passwords_new_device_enrolled_details. + * @property {TeamLogEmmRefreshAuthTokenDetails} + * [emm_refresh_auth_token_details] - Available if .tag is + * emm_refresh_auth_token_details. + * @property {TeamLogExternalDriveBackupEligibilityStatusCheckedDetails} + * [external_drive_backup_eligibility_status_checked_details] - Available if + * .tag is external_drive_backup_eligibility_status_checked_details. + * @property {TeamLogExternalDriveBackupStatusChangedDetails} + * [external_drive_backup_status_changed_details] - Available if .tag is + * external_drive_backup_status_changed_details. + * @property {TeamLogAccountCaptureChangeAvailabilityDetails} + * [account_capture_change_availability_details] - Available if .tag is + * account_capture_change_availability_details. + * @property {TeamLogAccountCaptureMigrateAccountDetails} + * [account_capture_migrate_account_details] - Available if .tag is + * account_capture_migrate_account_details. + * @property {TeamLogAccountCaptureNotificationEmailsSentDetails} + * [account_capture_notification_emails_sent_details] - Available if .tag is + * account_capture_notification_emails_sent_details. + * @property {TeamLogAccountCaptureRelinquishAccountDetails} + * [account_capture_relinquish_account_details] - Available if .tag is + * account_capture_relinquish_account_details. + * @property {TeamLogDisabledDomainInvitesDetails} + * [disabled_domain_invites_details] - Available if .tag is + * disabled_domain_invites_details. + * @property {TeamLogDomainInvitesApproveRequestToJoinTeamDetails} + * [domain_invites_approve_request_to_join_team_details] - Available if .tag is + * domain_invites_approve_request_to_join_team_details. + * @property {TeamLogDomainInvitesDeclineRequestToJoinTeamDetails} + * [domain_invites_decline_request_to_join_team_details] - Available if .tag is + * domain_invites_decline_request_to_join_team_details. + * @property {TeamLogDomainInvitesEmailExistingUsersDetails} + * [domain_invites_email_existing_users_details] - Available if .tag is + * domain_invites_email_existing_users_details. + * @property {TeamLogDomainInvitesRequestToJoinTeamDetails} + * [domain_invites_request_to_join_team_details] - Available if .tag is + * domain_invites_request_to_join_team_details. + * @property {TeamLogDomainInvitesSetInviteNewUserPrefToNoDetails} + * [domain_invites_set_invite_new_user_pref_to_no_details] - Available if .tag + * is domain_invites_set_invite_new_user_pref_to_no_details. + * @property {TeamLogDomainInvitesSetInviteNewUserPrefToYesDetails} + * [domain_invites_set_invite_new_user_pref_to_yes_details] - Available if .tag + * is domain_invites_set_invite_new_user_pref_to_yes_details. + * @property {TeamLogDomainVerificationAddDomainFailDetails} + * [domain_verification_add_domain_fail_details] - Available if .tag is + * domain_verification_add_domain_fail_details. + * @property {TeamLogDomainVerificationAddDomainSuccessDetails} + * [domain_verification_add_domain_success_details] - Available if .tag is + * domain_verification_add_domain_success_details. + * @property {TeamLogDomainVerificationRemoveDomainDetails} + * [domain_verification_remove_domain_details] - Available if .tag is + * domain_verification_remove_domain_details. + * @property {TeamLogEnabledDomainInvitesDetails} + * [enabled_domain_invites_details] - Available if .tag is + * enabled_domain_invites_details. + * @property {TeamLogApplyNamingConventionDetails} + * [apply_naming_convention_details] - Available if .tag is + * apply_naming_convention_details. + * @property {TeamLogCreateFolderDetails} [create_folder_details] - Available if + * .tag is create_folder_details. + * @property {TeamLogFileAddDetails} [file_add_details] - Available if .tag is + * file_add_details. + * @property {TeamLogFileCopyDetails} [file_copy_details] - Available if .tag is + * file_copy_details. + * @property {TeamLogFileDeleteDetails} [file_delete_details] - Available if + * .tag is file_delete_details. + * @property {TeamLogFileDownloadDetails} [file_download_details] - Available if + * .tag is file_download_details. + * @property {TeamLogFileEditDetails} [file_edit_details] - Available if .tag is + * file_edit_details. + * @property {TeamLogFileGetCopyReferenceDetails} + * [file_get_copy_reference_details] - Available if .tag is + * file_get_copy_reference_details. + * @property {TeamLogFileLockingLockStatusChangedDetails} + * [file_locking_lock_status_changed_details] - Available if .tag is + * file_locking_lock_status_changed_details. + * @property {TeamLogFileMoveDetails} [file_move_details] - Available if .tag is + * file_move_details. + * @property {TeamLogFilePermanentlyDeleteDetails} + * [file_permanently_delete_details] - Available if .tag is + * file_permanently_delete_details. + * @property {TeamLogFilePreviewDetails} [file_preview_details] - Available if + * .tag is file_preview_details. + * @property {TeamLogFileRenameDetails} [file_rename_details] - Available if + * .tag is file_rename_details. + * @property {TeamLogFileRestoreDetails} [file_restore_details] - Available if + * .tag is file_restore_details. + * @property {TeamLogFileRevertDetails} [file_revert_details] - Available if + * .tag is file_revert_details. + * @property {TeamLogFileRollbackChangesDetails} [file_rollback_changes_details] + * - Available if .tag is file_rollback_changes_details. + * @property {TeamLogFileSaveCopyReferenceDetails} + * [file_save_copy_reference_details] - Available if .tag is + * file_save_copy_reference_details. + * @property {TeamLogFolderOverviewDescriptionChangedDetails} + * [folder_overview_description_changed_details] - Available if .tag is + * folder_overview_description_changed_details. + * @property {TeamLogFolderOverviewItemPinnedDetails} + * [folder_overview_item_pinned_details] - Available if .tag is + * folder_overview_item_pinned_details. + * @property {TeamLogFolderOverviewItemUnpinnedDetails} + * [folder_overview_item_unpinned_details] - Available if .tag is + * folder_overview_item_unpinned_details. + * @property {TeamLogObjectLabelAddedDetails} [object_label_added_details] - + * Available if .tag is object_label_added_details. + * @property {TeamLogObjectLabelRemovedDetails} [object_label_removed_details] - + * Available if .tag is object_label_removed_details. + * @property {TeamLogObjectLabelUpdatedValueDetails} + * [object_label_updated_value_details] - Available if .tag is + * object_label_updated_value_details. + * @property {TeamLogOrganizeFolderWithTidyDetails} + * [organize_folder_with_tidy_details] - Available if .tag is + * organize_folder_with_tidy_details. + * @property {TeamLogRewindFolderDetails} [rewind_folder_details] - Available if + * .tag is rewind_folder_details. + * @property {TeamLogUndoNamingConventionDetails} + * [undo_naming_convention_details] - Available if .tag is + * undo_naming_convention_details. + * @property {TeamLogUndoOrganizeFolderWithTidyDetails} + * [undo_organize_folder_with_tidy_details] - Available if .tag is + * undo_organize_folder_with_tidy_details. + * @property {TeamLogUserTagsAddedDetails} [user_tags_added_details] - Available + * if .tag is user_tags_added_details. + * @property {TeamLogUserTagsRemovedDetails} [user_tags_removed_details] - + * Available if .tag is user_tags_removed_details. + * @property {TeamLogEmailIngestReceiveFileDetails} + * [email_ingest_receive_file_details] - Available if .tag is + * email_ingest_receive_file_details. + * @property {TeamLogFileRequestChangeDetails} [file_request_change_details] - + * Available if .tag is file_request_change_details. + * @property {TeamLogFileRequestCloseDetails} [file_request_close_details] - + * Available if .tag is file_request_close_details. + * @property {TeamLogFileRequestCreateDetails} [file_request_create_details] - + * Available if .tag is file_request_create_details. + * @property {TeamLogFileRequestDeleteDetails} [file_request_delete_details] - + * Available if .tag is file_request_delete_details. + * @property {TeamLogFileRequestReceiveFileDetails} + * [file_request_receive_file_details] - Available if .tag is + * file_request_receive_file_details. + * @property {TeamLogGroupAddExternalIdDetails} [group_add_external_id_details] + * - Available if .tag is group_add_external_id_details. + * @property {TeamLogGroupAddMemberDetails} [group_add_member_details] - + * Available if .tag is group_add_member_details. + * @property {TeamLogGroupChangeExternalIdDetails} + * [group_change_external_id_details] - Available if .tag is + * group_change_external_id_details. + * @property {TeamLogGroupChangeManagementTypeDetails} + * [group_change_management_type_details] - Available if .tag is + * group_change_management_type_details. + * @property {TeamLogGroupChangeMemberRoleDetails} + * [group_change_member_role_details] - Available if .tag is + * group_change_member_role_details. + * @property {TeamLogGroupCreateDetails} [group_create_details] - Available if + * .tag is group_create_details. + * @property {TeamLogGroupDeleteDetails} [group_delete_details] - Available if + * .tag is group_delete_details. + * @property {TeamLogGroupDescriptionUpdatedDetails} + * [group_description_updated_details] - Available if .tag is + * group_description_updated_details. + * @property {TeamLogGroupJoinPolicyUpdatedDetails} + * [group_join_policy_updated_details] - Available if .tag is + * group_join_policy_updated_details. + * @property {TeamLogGroupMovedDetails} [group_moved_details] - Available if + * .tag is group_moved_details. + * @property {TeamLogGroupRemoveExternalIdDetails} + * [group_remove_external_id_details] - Available if .tag is + * group_remove_external_id_details. + * @property {TeamLogGroupRemoveMemberDetails} [group_remove_member_details] - + * Available if .tag is group_remove_member_details. + * @property {TeamLogGroupRenameDetails} [group_rename_details] - Available if + * .tag is group_rename_details. + * @property {TeamLogAccountLockOrUnlockedDetails} + * [account_lock_or_unlocked_details] - Available if .tag is + * account_lock_or_unlocked_details. + * @property {TeamLogEmmErrorDetails} [emm_error_details] - Available if .tag is + * emm_error_details. + * @property {TeamLogGuestAdminSignedInViaTrustedTeamsDetails} + * [guest_admin_signed_in_via_trusted_teams_details] - Available if .tag is + * guest_admin_signed_in_via_trusted_teams_details. + * @property {TeamLogGuestAdminSignedOutViaTrustedTeamsDetails} + * [guest_admin_signed_out_via_trusted_teams_details] - Available if .tag is + * guest_admin_signed_out_via_trusted_teams_details. + * @property {TeamLogLoginFailDetails} [login_fail_details] - Available if .tag + * is login_fail_details. + * @property {TeamLogLoginSuccessDetails} [login_success_details] - Available if + * .tag is login_success_details. + * @property {TeamLogLogoutDetails} [logout_details] - Available if .tag is + * logout_details. + * @property {TeamLogResellerSupportSessionEndDetails} + * [reseller_support_session_end_details] - Available if .tag is + * reseller_support_session_end_details. + * @property {TeamLogResellerSupportSessionStartDetails} + * [reseller_support_session_start_details] - Available if .tag is + * reseller_support_session_start_details. + * @property {TeamLogSignInAsSessionEndDetails} [sign_in_as_session_end_details] + * - Available if .tag is sign_in_as_session_end_details. + * @property {TeamLogSignInAsSessionStartDetails} + * [sign_in_as_session_start_details] - Available if .tag is + * sign_in_as_session_start_details. + * @property {TeamLogSsoErrorDetails} [sso_error_details] - Available if .tag is + * sso_error_details. + * @property {TeamLogCreateTeamInviteLinkDetails} + * [create_team_invite_link_details] - Available if .tag is + * create_team_invite_link_details. + * @property {TeamLogDeleteTeamInviteLinkDetails} + * [delete_team_invite_link_details] - Available if .tag is + * delete_team_invite_link_details. + * @property {TeamLogMemberAddExternalIdDetails} + * [member_add_external_id_details] - Available if .tag is + * member_add_external_id_details. + * @property {TeamLogMemberAddNameDetails} [member_add_name_details] - Available + * if .tag is member_add_name_details. + * @property {TeamLogMemberChangeAdminRoleDetails} + * [member_change_admin_role_details] - Available if .tag is + * member_change_admin_role_details. + * @property {TeamLogMemberChangeEmailDetails} [member_change_email_details] - + * Available if .tag is member_change_email_details. + * @property {TeamLogMemberChangeExternalIdDetails} + * [member_change_external_id_details] - Available if .tag is + * member_change_external_id_details. + * @property {TeamLogMemberChangeMembershipTypeDetails} + * [member_change_membership_type_details] - Available if .tag is + * member_change_membership_type_details. + * @property {TeamLogMemberChangeNameDetails} [member_change_name_details] - + * Available if .tag is member_change_name_details. + * @property {TeamLogMemberChangeResellerRoleDetails} + * [member_change_reseller_role_details] - Available if .tag is + * member_change_reseller_role_details. + * @property {TeamLogMemberChangeStatusDetails} [member_change_status_details] - + * Available if .tag is member_change_status_details. + * @property {TeamLogMemberDeleteManualContactsDetails} + * [member_delete_manual_contacts_details] - Available if .tag is + * member_delete_manual_contacts_details. + * @property {TeamLogMemberDeleteProfilePhotoDetails} + * [member_delete_profile_photo_details] - Available if .tag is + * member_delete_profile_photo_details. + * @property {TeamLogMemberPermanentlyDeleteAccountContentsDetails} + * [member_permanently_delete_account_contents_details] - Available if .tag is + * member_permanently_delete_account_contents_details. + * @property {TeamLogMemberRemoveExternalIdDetails} + * [member_remove_external_id_details] - Available if .tag is + * member_remove_external_id_details. + * @property {TeamLogMemberSetProfilePhotoDetails} + * [member_set_profile_photo_details] - Available if .tag is + * member_set_profile_photo_details. + * @property {TeamLogMemberSpaceLimitsAddCustomQuotaDetails} + * [member_space_limits_add_custom_quota_details] - Available if .tag is + * member_space_limits_add_custom_quota_details. + * @property {TeamLogMemberSpaceLimitsChangeCustomQuotaDetails} + * [member_space_limits_change_custom_quota_details] - Available if .tag is + * member_space_limits_change_custom_quota_details. + * @property {TeamLogMemberSpaceLimitsChangeStatusDetails} + * [member_space_limits_change_status_details] - Available if .tag is + * member_space_limits_change_status_details. + * @property {TeamLogMemberSpaceLimitsRemoveCustomQuotaDetails} + * [member_space_limits_remove_custom_quota_details] - Available if .tag is + * member_space_limits_remove_custom_quota_details. + * @property {TeamLogMemberSuggestDetails} [member_suggest_details] - Available + * if .tag is member_suggest_details. + * @property {TeamLogMemberTransferAccountContentsDetails} + * [member_transfer_account_contents_details] - Available if .tag is + * member_transfer_account_contents_details. + * @property {TeamLogPendingSecondaryEmailAddedDetails} + * [pending_secondary_email_added_details] - Available if .tag is + * pending_secondary_email_added_details. + * @property {TeamLogSecondaryEmailDeletedDetails} + * [secondary_email_deleted_details] - Available if .tag is + * secondary_email_deleted_details. + * @property {TeamLogSecondaryEmailVerifiedDetails} + * [secondary_email_verified_details] - Available if .tag is + * secondary_email_verified_details. + * @property {TeamLogSecondaryMailsPolicyChangedDetails} + * [secondary_mails_policy_changed_details] - Available if .tag is + * secondary_mails_policy_changed_details. + * @property {TeamLogBinderAddPageDetails} [binder_add_page_details] - Available + * if .tag is binder_add_page_details. + * @property {TeamLogBinderAddSectionDetails} [binder_add_section_details] - + * Available if .tag is binder_add_section_details. + * @property {TeamLogBinderRemovePageDetails} [binder_remove_page_details] - + * Available if .tag is binder_remove_page_details. + * @property {TeamLogBinderRemoveSectionDetails} [binder_remove_section_details] + * - Available if .tag is binder_remove_section_details. + * @property {TeamLogBinderRenamePageDetails} [binder_rename_page_details] - + * Available if .tag is binder_rename_page_details. + * @property {TeamLogBinderRenameSectionDetails} [binder_rename_section_details] + * - Available if .tag is binder_rename_section_details. + * @property {TeamLogBinderReorderPageDetails} [binder_reorder_page_details] - + * Available if .tag is binder_reorder_page_details. + * @property {TeamLogBinderReorderSectionDetails} + * [binder_reorder_section_details] - Available if .tag is + * binder_reorder_section_details. + * @property {TeamLogPaperContentAddMemberDetails} + * [paper_content_add_member_details] - Available if .tag is + * paper_content_add_member_details. + * @property {TeamLogPaperContentAddToFolderDetails} + * [paper_content_add_to_folder_details] - Available if .tag is + * paper_content_add_to_folder_details. + * @property {TeamLogPaperContentArchiveDetails} [paper_content_archive_details] + * - Available if .tag is paper_content_archive_details. + * @property {TeamLogPaperContentCreateDetails} [paper_content_create_details] - + * Available if .tag is paper_content_create_details. + * @property {TeamLogPaperContentPermanentlyDeleteDetails} + * [paper_content_permanently_delete_details] - Available if .tag is + * paper_content_permanently_delete_details. + * @property {TeamLogPaperContentRemoveFromFolderDetails} + * [paper_content_remove_from_folder_details] - Available if .tag is + * paper_content_remove_from_folder_details. + * @property {TeamLogPaperContentRemoveMemberDetails} + * [paper_content_remove_member_details] - Available if .tag is + * paper_content_remove_member_details. + * @property {TeamLogPaperContentRenameDetails} [paper_content_rename_details] - + * Available if .tag is paper_content_rename_details. + * @property {TeamLogPaperContentRestoreDetails} [paper_content_restore_details] + * - Available if .tag is paper_content_restore_details. + * @property {TeamLogPaperDocAddCommentDetails} [paper_doc_add_comment_details] + * - Available if .tag is paper_doc_add_comment_details. + * @property {TeamLogPaperDocChangeMemberRoleDetails} + * [paper_doc_change_member_role_details] - Available if .tag is + * paper_doc_change_member_role_details. + * @property {TeamLogPaperDocChangeSharingPolicyDetails} + * [paper_doc_change_sharing_policy_details] - Available if .tag is + * paper_doc_change_sharing_policy_details. + * @property {TeamLogPaperDocChangeSubscriptionDetails} + * [paper_doc_change_subscription_details] - Available if .tag is + * paper_doc_change_subscription_details. + * @property {TeamLogPaperDocDeletedDetails} [paper_doc_deleted_details] - + * Available if .tag is paper_doc_deleted_details. + * @property {TeamLogPaperDocDeleteCommentDetails} + * [paper_doc_delete_comment_details] - Available if .tag is + * paper_doc_delete_comment_details. + * @property {TeamLogPaperDocDownloadDetails} [paper_doc_download_details] - + * Available if .tag is paper_doc_download_details. + * @property {TeamLogPaperDocEditDetails} [paper_doc_edit_details] - Available + * if .tag is paper_doc_edit_details. + * @property {TeamLogPaperDocEditCommentDetails} + * [paper_doc_edit_comment_details] - Available if .tag is + * paper_doc_edit_comment_details. + * @property {TeamLogPaperDocFollowedDetails} [paper_doc_followed_details] - + * Available if .tag is paper_doc_followed_details. + * @property {TeamLogPaperDocMentionDetails} [paper_doc_mention_details] - + * Available if .tag is paper_doc_mention_details. + * @property {TeamLogPaperDocOwnershipChangedDetails} + * [paper_doc_ownership_changed_details] - Available if .tag is + * paper_doc_ownership_changed_details. + * @property {TeamLogPaperDocRequestAccessDetails} + * [paper_doc_request_access_details] - Available if .tag is + * paper_doc_request_access_details. + * @property {TeamLogPaperDocResolveCommentDetails} + * [paper_doc_resolve_comment_details] - Available if .tag is + * paper_doc_resolve_comment_details. + * @property {TeamLogPaperDocRevertDetails} [paper_doc_revert_details] - + * Available if .tag is paper_doc_revert_details. + * @property {TeamLogPaperDocSlackShareDetails} [paper_doc_slack_share_details] + * - Available if .tag is paper_doc_slack_share_details. + * @property {TeamLogPaperDocTeamInviteDetails} [paper_doc_team_invite_details] + * - Available if .tag is paper_doc_team_invite_details. + * @property {TeamLogPaperDocTrashedDetails} [paper_doc_trashed_details] - + * Available if .tag is paper_doc_trashed_details. + * @property {TeamLogPaperDocUnresolveCommentDetails} + * [paper_doc_unresolve_comment_details] - Available if .tag is + * paper_doc_unresolve_comment_details. + * @property {TeamLogPaperDocUntrashedDetails} [paper_doc_untrashed_details] - + * Available if .tag is paper_doc_untrashed_details. + * @property {TeamLogPaperDocViewDetails} [paper_doc_view_details] - Available + * if .tag is paper_doc_view_details. + * @property {TeamLogPaperExternalViewAllowDetails} + * [paper_external_view_allow_details] - Available if .tag is + * paper_external_view_allow_details. + * @property {TeamLogPaperExternalViewDefaultTeamDetails} + * [paper_external_view_default_team_details] - Available if .tag is + * paper_external_view_default_team_details. + * @property {TeamLogPaperExternalViewForbidDetails} + * [paper_external_view_forbid_details] - Available if .tag is + * paper_external_view_forbid_details. + * @property {TeamLogPaperFolderChangeSubscriptionDetails} + * [paper_folder_change_subscription_details] - Available if .tag is + * paper_folder_change_subscription_details. + * @property {TeamLogPaperFolderDeletedDetails} [paper_folder_deleted_details] - + * Available if .tag is paper_folder_deleted_details. + * @property {TeamLogPaperFolderFollowedDetails} [paper_folder_followed_details] + * - Available if .tag is paper_folder_followed_details. + * @property {TeamLogPaperFolderTeamInviteDetails} + * [paper_folder_team_invite_details] - Available if .tag is + * paper_folder_team_invite_details. + * @property {TeamLogPaperPublishedLinkChangePermissionDetails} + * [paper_published_link_change_permission_details] - Available if .tag is + * paper_published_link_change_permission_details. + * @property {TeamLogPaperPublishedLinkCreateDetails} + * [paper_published_link_create_details] - Available if .tag is + * paper_published_link_create_details. + * @property {TeamLogPaperPublishedLinkDisabledDetails} + * [paper_published_link_disabled_details] - Available if .tag is + * paper_published_link_disabled_details. + * @property {TeamLogPaperPublishedLinkViewDetails} + * [paper_published_link_view_details] - Available if .tag is + * paper_published_link_view_details. + * @property {TeamLogPasswordChangeDetails} [password_change_details] - + * Available if .tag is password_change_details. + * @property {TeamLogPasswordResetDetails} [password_reset_details] - Available + * if .tag is password_reset_details. + * @property {TeamLogPasswordResetAllDetails} [password_reset_all_details] - + * Available if .tag is password_reset_all_details. + * @property {TeamLogClassificationCreateReportDetails} + * [classification_create_report_details] - Available if .tag is + * classification_create_report_details. + * @property {TeamLogClassificationCreateReportFailDetails} + * [classification_create_report_fail_details] - Available if .tag is + * classification_create_report_fail_details. + * @property {TeamLogEmmCreateExceptionsReportDetails} + * [emm_create_exceptions_report_details] - Available if .tag is + * emm_create_exceptions_report_details. + * @property {TeamLogEmmCreateUsageReportDetails} + * [emm_create_usage_report_details] - Available if .tag is + * emm_create_usage_report_details. + * @property {TeamLogExportMembersReportDetails} [export_members_report_details] + * - Available if .tag is export_members_report_details. + * @property {TeamLogExportMembersReportFailDetails} + * [export_members_report_fail_details] - Available if .tag is + * export_members_report_fail_details. + * @property {TeamLogExternalSharingCreateReportDetails} + * [external_sharing_create_report_details] - Available if .tag is + * external_sharing_create_report_details. + * @property {TeamLogExternalSharingReportFailedDetails} + * [external_sharing_report_failed_details] - Available if .tag is + * external_sharing_report_failed_details. + * @property {TeamLogNoExpirationLinkGenCreateReportDetails} + * [no_expiration_link_gen_create_report_details] - Available if .tag is + * no_expiration_link_gen_create_report_details. + * @property {TeamLogNoExpirationLinkGenReportFailedDetails} + * [no_expiration_link_gen_report_failed_details] - Available if .tag is + * no_expiration_link_gen_report_failed_details. + * @property {TeamLogNoPasswordLinkGenCreateReportDetails} + * [no_password_link_gen_create_report_details] - Available if .tag is + * no_password_link_gen_create_report_details. + * @property {TeamLogNoPasswordLinkGenReportFailedDetails} + * [no_password_link_gen_report_failed_details] - Available if .tag is + * no_password_link_gen_report_failed_details. + * @property {TeamLogNoPasswordLinkViewCreateReportDetails} + * [no_password_link_view_create_report_details] - Available if .tag is + * no_password_link_view_create_report_details. + * @property {TeamLogNoPasswordLinkViewReportFailedDetails} + * [no_password_link_view_report_failed_details] - Available if .tag is + * no_password_link_view_report_failed_details. + * @property {TeamLogOutdatedLinkViewCreateReportDetails} + * [outdated_link_view_create_report_details] - Available if .tag is + * outdated_link_view_create_report_details. + * @property {TeamLogOutdatedLinkViewReportFailedDetails} + * [outdated_link_view_report_failed_details] - Available if .tag is + * outdated_link_view_report_failed_details. + * @property {TeamLogPaperAdminExportStartDetails} + * [paper_admin_export_start_details] - Available if .tag is + * paper_admin_export_start_details. + * @property {TeamLogSmartSyncCreateAdminPrivilegeReportDetails} + * [smart_sync_create_admin_privilege_report_details] - Available if .tag is + * smart_sync_create_admin_privilege_report_details. + * @property {TeamLogTeamActivityCreateReportDetails} + * [team_activity_create_report_details] - Available if .tag is + * team_activity_create_report_details. + * @property {TeamLogTeamActivityCreateReportFailDetails} + * [team_activity_create_report_fail_details] - Available if .tag is + * team_activity_create_report_fail_details. + * @property {TeamLogCollectionShareDetails} [collection_share_details] - + * Available if .tag is collection_share_details. + * @property {TeamLogFileTransfersFileAddDetails} + * [file_transfers_file_add_details] - Available if .tag is + * file_transfers_file_add_details. + * @property {TeamLogFileTransfersTransferDeleteDetails} + * [file_transfers_transfer_delete_details] - Available if .tag is + * file_transfers_transfer_delete_details. + * @property {TeamLogFileTransfersTransferDownloadDetails} + * [file_transfers_transfer_download_details] - Available if .tag is + * file_transfers_transfer_download_details. + * @property {TeamLogFileTransfersTransferSendDetails} + * [file_transfers_transfer_send_details] - Available if .tag is + * file_transfers_transfer_send_details. + * @property {TeamLogFileTransfersTransferViewDetails} + * [file_transfers_transfer_view_details] - Available if .tag is + * file_transfers_transfer_view_details. + * @property {TeamLogNoteAclInviteOnlyDetails} [note_acl_invite_only_details] - + * Available if .tag is note_acl_invite_only_details. + * @property {TeamLogNoteAclLinkDetails} [note_acl_link_details] - Available if + * .tag is note_acl_link_details. + * @property {TeamLogNoteAclTeamLinkDetails} [note_acl_team_link_details] - + * Available if .tag is note_acl_team_link_details. + * @property {TeamLogNoteSharedDetails} [note_shared_details] - Available if + * .tag is note_shared_details. + * @property {TeamLogNoteShareReceiveDetails} [note_share_receive_details] - + * Available if .tag is note_share_receive_details. + * @property {TeamLogOpenNoteSharedDetails} [open_note_shared_details] - + * Available if .tag is open_note_shared_details. + * @property {TeamLogSfAddGroupDetails} [sf_add_group_details] - Available if + * .tag is sf_add_group_details. + * @property {TeamLogSfAllowNonMembersToViewSharedLinksDetails} + * [sf_allow_non_members_to_view_shared_links_details] - Available if .tag is + * sf_allow_non_members_to_view_shared_links_details. + * @property {TeamLogSfExternalInviteWarnDetails} + * [sf_external_invite_warn_details] - Available if .tag is + * sf_external_invite_warn_details. + * @property {TeamLogSfFbInviteDetails} [sf_fb_invite_details] - Available if + * .tag is sf_fb_invite_details. + * @property {TeamLogSfFbInviteChangeRoleDetails} + * [sf_fb_invite_change_role_details] - Available if .tag is + * sf_fb_invite_change_role_details. + * @property {TeamLogSfFbUninviteDetails} [sf_fb_uninvite_details] - Available + * if .tag is sf_fb_uninvite_details. + * @property {TeamLogSfInviteGroupDetails} [sf_invite_group_details] - Available + * if .tag is sf_invite_group_details. + * @property {TeamLogSfTeamGrantAccessDetails} [sf_team_grant_access_details] - + * Available if .tag is sf_team_grant_access_details. + * @property {TeamLogSfTeamInviteDetails} [sf_team_invite_details] - Available + * if .tag is sf_team_invite_details. + * @property {TeamLogSfTeamInviteChangeRoleDetails} + * [sf_team_invite_change_role_details] - Available if .tag is + * sf_team_invite_change_role_details. + * @property {TeamLogSfTeamJoinDetails} [sf_team_join_details] - Available if + * .tag is sf_team_join_details. + * @property {TeamLogSfTeamJoinFromOobLinkDetails} + * [sf_team_join_from_oob_link_details] - Available if .tag is + * sf_team_join_from_oob_link_details. + * @property {TeamLogSfTeamUninviteDetails} [sf_team_uninvite_details] - + * Available if .tag is sf_team_uninvite_details. + * @property {TeamLogSharedContentAddInviteesDetails} + * [shared_content_add_invitees_details] - Available if .tag is + * shared_content_add_invitees_details. + * @property {TeamLogSharedContentAddLinkExpiryDetails} + * [shared_content_add_link_expiry_details] - Available if .tag is + * shared_content_add_link_expiry_details. + * @property {TeamLogSharedContentAddLinkPasswordDetails} + * [shared_content_add_link_password_details] - Available if .tag is + * shared_content_add_link_password_details. + * @property {TeamLogSharedContentAddMemberDetails} + * [shared_content_add_member_details] - Available if .tag is + * shared_content_add_member_details. + * @property {TeamLogSharedContentChangeDownloadsPolicyDetails} + * [shared_content_change_downloads_policy_details] - Available if .tag is + * shared_content_change_downloads_policy_details. + * @property {TeamLogSharedContentChangeInviteeRoleDetails} + * [shared_content_change_invitee_role_details] - Available if .tag is + * shared_content_change_invitee_role_details. + * @property {TeamLogSharedContentChangeLinkAudienceDetails} + * [shared_content_change_link_audience_details] - Available if .tag is + * shared_content_change_link_audience_details. + * @property {TeamLogSharedContentChangeLinkExpiryDetails} + * [shared_content_change_link_expiry_details] - Available if .tag is + * shared_content_change_link_expiry_details. + * @property {TeamLogSharedContentChangeLinkPasswordDetails} + * [shared_content_change_link_password_details] - Available if .tag is + * shared_content_change_link_password_details. + * @property {TeamLogSharedContentChangeMemberRoleDetails} + * [shared_content_change_member_role_details] - Available if .tag is + * shared_content_change_member_role_details. + * @property {TeamLogSharedContentChangeViewerInfoPolicyDetails} + * [shared_content_change_viewer_info_policy_details] - Available if .tag is + * shared_content_change_viewer_info_policy_details. + * @property {TeamLogSharedContentClaimInvitationDetails} + * [shared_content_claim_invitation_details] - Available if .tag is + * shared_content_claim_invitation_details. + * @property {TeamLogSharedContentCopyDetails} [shared_content_copy_details] - + * Available if .tag is shared_content_copy_details. + * @property {TeamLogSharedContentDownloadDetails} + * [shared_content_download_details] - Available if .tag is + * shared_content_download_details. + * @property {TeamLogSharedContentRelinquishMembershipDetails} + * [shared_content_relinquish_membership_details] - Available if .tag is + * shared_content_relinquish_membership_details. + * @property {TeamLogSharedContentRemoveInviteesDetails} + * [shared_content_remove_invitees_details] - Available if .tag is + * shared_content_remove_invitees_details. + * @property {TeamLogSharedContentRemoveLinkExpiryDetails} + * [shared_content_remove_link_expiry_details] - Available if .tag is + * shared_content_remove_link_expiry_details. + * @property {TeamLogSharedContentRemoveLinkPasswordDetails} + * [shared_content_remove_link_password_details] - Available if .tag is + * shared_content_remove_link_password_details. + * @property {TeamLogSharedContentRemoveMemberDetails} + * [shared_content_remove_member_details] - Available if .tag is + * shared_content_remove_member_details. + * @property {TeamLogSharedContentRequestAccessDetails} + * [shared_content_request_access_details] - Available if .tag is + * shared_content_request_access_details. + * @property {TeamLogSharedContentRestoreInviteesDetails} + * [shared_content_restore_invitees_details] - Available if .tag is + * shared_content_restore_invitees_details. + * @property {TeamLogSharedContentRestoreMemberDetails} + * [shared_content_restore_member_details] - Available if .tag is + * shared_content_restore_member_details. + * @property {TeamLogSharedContentUnshareDetails} + * [shared_content_unshare_details] - Available if .tag is + * shared_content_unshare_details. + * @property {TeamLogSharedContentViewDetails} [shared_content_view_details] - + * Available if .tag is shared_content_view_details. + * @property {TeamLogSharedFolderChangeLinkPolicyDetails} + * [shared_folder_change_link_policy_details] - Available if .tag is + * shared_folder_change_link_policy_details. + * @property {TeamLogSharedFolderChangeMembersInheritancePolicyDetails} + * [shared_folder_change_members_inheritance_policy_details] - Available if .tag + * is shared_folder_change_members_inheritance_policy_details. + * @property {TeamLogSharedFolderChangeMembersManagementPolicyDetails} + * [shared_folder_change_members_management_policy_details] - Available if .tag + * is shared_folder_change_members_management_policy_details. + * @property {TeamLogSharedFolderChangeMembersPolicyDetails} + * [shared_folder_change_members_policy_details] - Available if .tag is + * shared_folder_change_members_policy_details. + * @property {TeamLogSharedFolderCreateDetails} [shared_folder_create_details] - + * Available if .tag is shared_folder_create_details. + * @property {TeamLogSharedFolderDeclineInvitationDetails} + * [shared_folder_decline_invitation_details] - Available if .tag is + * shared_folder_decline_invitation_details. + * @property {TeamLogSharedFolderMountDetails} [shared_folder_mount_details] - + * Available if .tag is shared_folder_mount_details. + * @property {TeamLogSharedFolderNestDetails} [shared_folder_nest_details] - + * Available if .tag is shared_folder_nest_details. + * @property {TeamLogSharedFolderTransferOwnershipDetails} + * [shared_folder_transfer_ownership_details] - Available if .tag is + * shared_folder_transfer_ownership_details. + * @property {TeamLogSharedFolderUnmountDetails} [shared_folder_unmount_details] + * - Available if .tag is shared_folder_unmount_details. + * @property {TeamLogSharedLinkAddExpiryDetails} + * [shared_link_add_expiry_details] - Available if .tag is + * shared_link_add_expiry_details. + * @property {TeamLogSharedLinkChangeExpiryDetails} + * [shared_link_change_expiry_details] - Available if .tag is + * shared_link_change_expiry_details. + * @property {TeamLogSharedLinkChangeVisibilityDetails} + * [shared_link_change_visibility_details] - Available if .tag is + * shared_link_change_visibility_details. + * @property {TeamLogSharedLinkCopyDetails} [shared_link_copy_details] - + * Available if .tag is shared_link_copy_details. + * @property {TeamLogSharedLinkCreateDetails} [shared_link_create_details] - + * Available if .tag is shared_link_create_details. + * @property {TeamLogSharedLinkDisableDetails} [shared_link_disable_details] - + * Available if .tag is shared_link_disable_details. + * @property {TeamLogSharedLinkDownloadDetails} [shared_link_download_details] - + * Available if .tag is shared_link_download_details. + * @property {TeamLogSharedLinkRemoveExpiryDetails} + * [shared_link_remove_expiry_details] - Available if .tag is + * shared_link_remove_expiry_details. + * @property {TeamLogSharedLinkSettingsAddExpirationDetails} + * [shared_link_settings_add_expiration_details] - Available if .tag is + * shared_link_settings_add_expiration_details. + * @property {TeamLogSharedLinkSettingsAddPasswordDetails} + * [shared_link_settings_add_password_details] - Available if .tag is + * shared_link_settings_add_password_details. + * @property {TeamLogSharedLinkSettingsAllowDownloadDisabledDetails} + * [shared_link_settings_allow_download_disabled_details] - Available if .tag is + * shared_link_settings_allow_download_disabled_details. + * @property {TeamLogSharedLinkSettingsAllowDownloadEnabledDetails} + * [shared_link_settings_allow_download_enabled_details] - Available if .tag is + * shared_link_settings_allow_download_enabled_details. + * @property {TeamLogSharedLinkSettingsChangeAudienceDetails} + * [shared_link_settings_change_audience_details] - Available if .tag is + * shared_link_settings_change_audience_details. + * @property {TeamLogSharedLinkSettingsChangeExpirationDetails} + * [shared_link_settings_change_expiration_details] - Available if .tag is + * shared_link_settings_change_expiration_details. + * @property {TeamLogSharedLinkSettingsChangePasswordDetails} + * [shared_link_settings_change_password_details] - Available if .tag is + * shared_link_settings_change_password_details. + * @property {TeamLogSharedLinkSettingsRemoveExpirationDetails} + * [shared_link_settings_remove_expiration_details] - Available if .tag is + * shared_link_settings_remove_expiration_details. + * @property {TeamLogSharedLinkSettingsRemovePasswordDetails} + * [shared_link_settings_remove_password_details] - Available if .tag is + * shared_link_settings_remove_password_details. + * @property {TeamLogSharedLinkShareDetails} [shared_link_share_details] - + * Available if .tag is shared_link_share_details. + * @property {TeamLogSharedLinkViewDetails} [shared_link_view_details] - + * Available if .tag is shared_link_view_details. + * @property {TeamLogSharedNoteOpenedDetails} [shared_note_opened_details] - + * Available if .tag is shared_note_opened_details. + * @property {TeamLogShmodelDisableDownloadsDetails} + * [shmodel_disable_downloads_details] - Available if .tag is + * shmodel_disable_downloads_details. + * @property {TeamLogShmodelEnableDownloadsDetails} + * [shmodel_enable_downloads_details] - Available if .tag is + * shmodel_enable_downloads_details. + * @property {TeamLogShmodelGroupShareDetails} [shmodel_group_share_details] - + * Available if .tag is shmodel_group_share_details. + * @property {TeamLogShowcaseAccessGrantedDetails} + * [showcase_access_granted_details] - Available if .tag is + * showcase_access_granted_details. + * @property {TeamLogShowcaseAddMemberDetails} [showcase_add_member_details] - + * Available if .tag is showcase_add_member_details. + * @property {TeamLogShowcaseArchivedDetails} [showcase_archived_details] - + * Available if .tag is showcase_archived_details. + * @property {TeamLogShowcaseCreatedDetails} [showcase_created_details] - + * Available if .tag is showcase_created_details. + * @property {TeamLogShowcaseDeleteCommentDetails} + * [showcase_delete_comment_details] - Available if .tag is + * showcase_delete_comment_details. + * @property {TeamLogShowcaseEditedDetails} [showcase_edited_details] - + * Available if .tag is showcase_edited_details. + * @property {TeamLogShowcaseEditCommentDetails} [showcase_edit_comment_details] + * - Available if .tag is showcase_edit_comment_details. + * @property {TeamLogShowcaseFileAddedDetails} [showcase_file_added_details] - + * Available if .tag is showcase_file_added_details. + * @property {TeamLogShowcaseFileDownloadDetails} + * [showcase_file_download_details] - Available if .tag is + * showcase_file_download_details. + * @property {TeamLogShowcaseFileRemovedDetails} [showcase_file_removed_details] + * - Available if .tag is showcase_file_removed_details. + * @property {TeamLogShowcaseFileViewDetails} [showcase_file_view_details] - + * Available if .tag is showcase_file_view_details. + * @property {TeamLogShowcasePermanentlyDeletedDetails} + * [showcase_permanently_deleted_details] - Available if .tag is + * showcase_permanently_deleted_details. + * @property {TeamLogShowcasePostCommentDetails} [showcase_post_comment_details] + * - Available if .tag is showcase_post_comment_details. + * @property {TeamLogShowcaseRemoveMemberDetails} + * [showcase_remove_member_details] - Available if .tag is + * showcase_remove_member_details. + * @property {TeamLogShowcaseRenamedDetails} [showcase_renamed_details] - + * Available if .tag is showcase_renamed_details. + * @property {TeamLogShowcaseRequestAccessDetails} + * [showcase_request_access_details] - Available if .tag is + * showcase_request_access_details. + * @property {TeamLogShowcaseResolveCommentDetails} + * [showcase_resolve_comment_details] - Available if .tag is + * showcase_resolve_comment_details. + * @property {TeamLogShowcaseRestoredDetails} [showcase_restored_details] - + * Available if .tag is showcase_restored_details. + * @property {TeamLogShowcaseTrashedDetails} [showcase_trashed_details] - + * Available if .tag is showcase_trashed_details. + * @property {TeamLogShowcaseTrashedDeprecatedDetails} + * [showcase_trashed_deprecated_details] - Available if .tag is + * showcase_trashed_deprecated_details. + * @property {TeamLogShowcaseUnresolveCommentDetails} + * [showcase_unresolve_comment_details] - Available if .tag is + * showcase_unresolve_comment_details. + * @property {TeamLogShowcaseUntrashedDetails} [showcase_untrashed_details] - + * Available if .tag is showcase_untrashed_details. + * @property {TeamLogShowcaseUntrashedDeprecatedDetails} + * [showcase_untrashed_deprecated_details] - Available if .tag is + * showcase_untrashed_deprecated_details. + * @property {TeamLogShowcaseViewDetails} [showcase_view_details] - Available if + * .tag is showcase_view_details. + * @property {TeamLogSsoAddCertDetails} [sso_add_cert_details] - Available if + * .tag is sso_add_cert_details. + * @property {TeamLogSsoAddLoginUrlDetails} [sso_add_login_url_details] - + * Available if .tag is sso_add_login_url_details. + * @property {TeamLogSsoAddLogoutUrlDetails} [sso_add_logout_url_details] - + * Available if .tag is sso_add_logout_url_details. + * @property {TeamLogSsoChangeCertDetails} [sso_change_cert_details] - Available + * if .tag is sso_change_cert_details. + * @property {TeamLogSsoChangeLoginUrlDetails} [sso_change_login_url_details] - + * Available if .tag is sso_change_login_url_details. + * @property {TeamLogSsoChangeLogoutUrlDetails} [sso_change_logout_url_details] + * - Available if .tag is sso_change_logout_url_details. + * @property {TeamLogSsoChangeSamlIdentityModeDetails} + * [sso_change_saml_identity_mode_details] - Available if .tag is + * sso_change_saml_identity_mode_details. + * @property {TeamLogSsoRemoveCertDetails} [sso_remove_cert_details] - Available + * if .tag is sso_remove_cert_details. + * @property {TeamLogSsoRemoveLoginUrlDetails} [sso_remove_login_url_details] - + * Available if .tag is sso_remove_login_url_details. + * @property {TeamLogSsoRemoveLogoutUrlDetails} [sso_remove_logout_url_details] + * - Available if .tag is sso_remove_logout_url_details. + * @property {TeamLogTeamFolderChangeStatusDetails} + * [team_folder_change_status_details] - Available if .tag is + * team_folder_change_status_details. + * @property {TeamLogTeamFolderCreateDetails} [team_folder_create_details] - + * Available if .tag is team_folder_create_details. + * @property {TeamLogTeamFolderDowngradeDetails} [team_folder_downgrade_details] + * - Available if .tag is team_folder_downgrade_details. + * @property {TeamLogTeamFolderPermanentlyDeleteDetails} + * [team_folder_permanently_delete_details] - Available if .tag is + * team_folder_permanently_delete_details. + * @property {TeamLogTeamFolderRenameDetails} [team_folder_rename_details] - + * Available if .tag is team_folder_rename_details. + * @property {TeamLogTeamSelectiveSyncSettingsChangedDetails} + * [team_selective_sync_settings_changed_details] - Available if .tag is + * team_selective_sync_settings_changed_details. + * @property {TeamLogAccountCaptureChangePolicyDetails} + * [account_capture_change_policy_details] - Available if .tag is + * account_capture_change_policy_details. + * @property {TeamLogAdminEmailRemindersChangedDetails} + * [admin_email_reminders_changed_details] - Available if .tag is + * admin_email_reminders_changed_details. + * @property {TeamLogAllowDownloadDisabledDetails} + * [allow_download_disabled_details] - Available if .tag is + * allow_download_disabled_details. + * @property {TeamLogAllowDownloadEnabledDetails} + * [allow_download_enabled_details] - Available if .tag is + * allow_download_enabled_details. + * @property {TeamLogAppPermissionsChangedDetails} + * [app_permissions_changed_details] - Available if .tag is + * app_permissions_changed_details. + * @property {TeamLogCameraUploadsPolicyChangedDetails} + * [camera_uploads_policy_changed_details] - Available if .tag is + * camera_uploads_policy_changed_details. + * @property {TeamLogCaptureTranscriptPolicyChangedDetails} + * [capture_transcript_policy_changed_details] - Available if .tag is + * capture_transcript_policy_changed_details. + * @property {TeamLogClassificationChangePolicyDetails} + * [classification_change_policy_details] - Available if .tag is + * classification_change_policy_details. + * @property {TeamLogComputerBackupPolicyChangedDetails} + * [computer_backup_policy_changed_details] - Available if .tag is + * computer_backup_policy_changed_details. + * @property {TeamLogContentAdministrationPolicyChangedDetails} + * [content_administration_policy_changed_details] - Available if .tag is + * content_administration_policy_changed_details. + * @property {TeamLogDataPlacementRestrictionChangePolicyDetails} + * [data_placement_restriction_change_policy_details] - Available if .tag is + * data_placement_restriction_change_policy_details. + * @property {TeamLogDataPlacementRestrictionSatisfyPolicyDetails} + * [data_placement_restriction_satisfy_policy_details] - Available if .tag is + * data_placement_restriction_satisfy_policy_details. + * @property {TeamLogDeviceApprovalsAddExceptionDetails} + * [device_approvals_add_exception_details] - Available if .tag is + * device_approvals_add_exception_details. + * @property {TeamLogDeviceApprovalsChangeDesktopPolicyDetails} + * [device_approvals_change_desktop_policy_details] - Available if .tag is + * device_approvals_change_desktop_policy_details. + * @property {TeamLogDeviceApprovalsChangeMobilePolicyDetails} + * [device_approvals_change_mobile_policy_details] - Available if .tag is + * device_approvals_change_mobile_policy_details. + * @property {TeamLogDeviceApprovalsChangeOverageActionDetails} + * [device_approvals_change_overage_action_details] - Available if .tag is + * device_approvals_change_overage_action_details. + * @property {TeamLogDeviceApprovalsChangeUnlinkActionDetails} + * [device_approvals_change_unlink_action_details] - Available if .tag is + * device_approvals_change_unlink_action_details. + * @property {TeamLogDeviceApprovalsRemoveExceptionDetails} + * [device_approvals_remove_exception_details] - Available if .tag is + * device_approvals_remove_exception_details. + * @property {TeamLogDirectoryRestrictionsAddMembersDetails} + * [directory_restrictions_add_members_details] - Available if .tag is + * directory_restrictions_add_members_details. + * @property {TeamLogDirectoryRestrictionsRemoveMembersDetails} + * [directory_restrictions_remove_members_details] - Available if .tag is + * directory_restrictions_remove_members_details. + * @property {TeamLogDropboxPasswordsPolicyChangedDetails} + * [dropbox_passwords_policy_changed_details] - Available if .tag is + * dropbox_passwords_policy_changed_details. + * @property {TeamLogEmailIngestPolicyChangedDetails} + * [email_ingest_policy_changed_details] - Available if .tag is + * email_ingest_policy_changed_details. + * @property {TeamLogEmmAddExceptionDetails} [emm_add_exception_details] - + * Available if .tag is emm_add_exception_details. + * @property {TeamLogEmmChangePolicyDetails} [emm_change_policy_details] - + * Available if .tag is emm_change_policy_details. + * @property {TeamLogEmmRemoveExceptionDetails} [emm_remove_exception_details] - + * Available if .tag is emm_remove_exception_details. + * @property {TeamLogExtendedVersionHistoryChangePolicyDetails} + * [extended_version_history_change_policy_details] - Available if .tag is + * extended_version_history_change_policy_details. + * @property {TeamLogExternalDriveBackupPolicyChangedDetails} + * [external_drive_backup_policy_changed_details] - Available if .tag is + * external_drive_backup_policy_changed_details. + * @property {TeamLogFileCommentsChangePolicyDetails} + * [file_comments_change_policy_details] - Available if .tag is + * file_comments_change_policy_details. + * @property {TeamLogFileLockingPolicyChangedDetails} + * [file_locking_policy_changed_details] - Available if .tag is + * file_locking_policy_changed_details. + * @property {TeamLogFileProviderMigrationPolicyChangedDetails} + * [file_provider_migration_policy_changed_details] - Available if .tag is + * file_provider_migration_policy_changed_details. + * @property {TeamLogFileRequestsChangePolicyDetails} + * [file_requests_change_policy_details] - Available if .tag is + * file_requests_change_policy_details. + * @property {TeamLogFileRequestsEmailsEnabledDetails} + * [file_requests_emails_enabled_details] - Available if .tag is + * file_requests_emails_enabled_details. + * @property {TeamLogFileRequestsEmailsRestrictedToTeamOnlyDetails} + * [file_requests_emails_restricted_to_team_only_details] - Available if .tag is + * file_requests_emails_restricted_to_team_only_details. + * @property {TeamLogFileTransfersPolicyChangedDetails} + * [file_transfers_policy_changed_details] - Available if .tag is + * file_transfers_policy_changed_details. + * @property {TeamLogFolderLinkRestrictionPolicyChangedDetails} + * [folder_link_restriction_policy_changed_details] - Available if .tag is + * folder_link_restriction_policy_changed_details. + * @property {TeamLogGoogleSsoChangePolicyDetails} + * [google_sso_change_policy_details] - Available if .tag is + * google_sso_change_policy_details. + * @property {TeamLogGroupUserManagementChangePolicyDetails} + * [group_user_management_change_policy_details] - Available if .tag is + * group_user_management_change_policy_details. + * @property {TeamLogIntegrationPolicyChangedDetails} + * [integration_policy_changed_details] - Available if .tag is + * integration_policy_changed_details. + * @property {TeamLogInviteAcceptanceEmailPolicyChangedDetails} + * [invite_acceptance_email_policy_changed_details] - Available if .tag is + * invite_acceptance_email_policy_changed_details. + * @property {TeamLogMemberRequestsChangePolicyDetails} + * [member_requests_change_policy_details] - Available if .tag is + * member_requests_change_policy_details. + * @property {TeamLogMemberSendInvitePolicyChangedDetails} + * [member_send_invite_policy_changed_details] - Available if .tag is + * member_send_invite_policy_changed_details. + * @property {TeamLogMemberSpaceLimitsAddExceptionDetails} + * [member_space_limits_add_exception_details] - Available if .tag is + * member_space_limits_add_exception_details. + * @property {TeamLogMemberSpaceLimitsChangeCapsTypePolicyDetails} + * [member_space_limits_change_caps_type_policy_details] - Available if .tag is + * member_space_limits_change_caps_type_policy_details. + * @property {TeamLogMemberSpaceLimitsChangePolicyDetails} + * [member_space_limits_change_policy_details] - Available if .tag is + * member_space_limits_change_policy_details. + * @property {TeamLogMemberSpaceLimitsRemoveExceptionDetails} + * [member_space_limits_remove_exception_details] - Available if .tag is + * member_space_limits_remove_exception_details. + * @property {TeamLogMemberSuggestionsChangePolicyDetails} + * [member_suggestions_change_policy_details] - Available if .tag is + * member_suggestions_change_policy_details. + * @property {TeamLogMicrosoftOfficeAddinChangePolicyDetails} + * [microsoft_office_addin_change_policy_details] - Available if .tag is + * microsoft_office_addin_change_policy_details. + * @property {TeamLogNetworkControlChangePolicyDetails} + * [network_control_change_policy_details] - Available if .tag is + * network_control_change_policy_details. + * @property {TeamLogPaperChangeDeploymentPolicyDetails} + * [paper_change_deployment_policy_details] - Available if .tag is + * paper_change_deployment_policy_details. + * @property {TeamLogPaperChangeMemberLinkPolicyDetails} + * [paper_change_member_link_policy_details] - Available if .tag is + * paper_change_member_link_policy_details. + * @property {TeamLogPaperChangeMemberPolicyDetails} + * [paper_change_member_policy_details] - Available if .tag is + * paper_change_member_policy_details. + * @property {TeamLogPaperChangePolicyDetails} [paper_change_policy_details] - + * Available if .tag is paper_change_policy_details. + * @property {TeamLogPaperDefaultFolderPolicyChangedDetails} + * [paper_default_folder_policy_changed_details] - Available if .tag is + * paper_default_folder_policy_changed_details. + * @property {TeamLogPaperDesktopPolicyChangedDetails} + * [paper_desktop_policy_changed_details] - Available if .tag is + * paper_desktop_policy_changed_details. + * @property {TeamLogPaperEnabledUsersGroupAdditionDetails} + * [paper_enabled_users_group_addition_details] - Available if .tag is + * paper_enabled_users_group_addition_details. + * @property {TeamLogPaperEnabledUsersGroupRemovalDetails} + * [paper_enabled_users_group_removal_details] - Available if .tag is + * paper_enabled_users_group_removal_details. + * @property {TeamLogPasswordStrengthRequirementsChangePolicyDetails} + * [password_strength_requirements_change_policy_details] - Available if .tag is + * password_strength_requirements_change_policy_details. + * @property {TeamLogPermanentDeleteChangePolicyDetails} + * [permanent_delete_change_policy_details] - Available if .tag is + * permanent_delete_change_policy_details. + * @property {TeamLogResellerSupportChangePolicyDetails} + * [reseller_support_change_policy_details] - Available if .tag is + * reseller_support_change_policy_details. + * @property {TeamLogRewindPolicyChangedDetails} [rewind_policy_changed_details] + * - Available if .tag is rewind_policy_changed_details. + * @property {TeamLogSendForSignaturePolicyChangedDetails} + * [send_for_signature_policy_changed_details] - Available if .tag is + * send_for_signature_policy_changed_details. + * @property {TeamLogSharingChangeFolderJoinPolicyDetails} + * [sharing_change_folder_join_policy_details] - Available if .tag is + * sharing_change_folder_join_policy_details. + * @property {TeamLogSharingChangeLinkAllowChangeExpirationPolicyDetails} + * [sharing_change_link_allow_change_expiration_policy_details] - Available if + * .tag is sharing_change_link_allow_change_expiration_policy_details. + * @property {TeamLogSharingChangeLinkDefaultExpirationPolicyDetails} + * [sharing_change_link_default_expiration_policy_details] - Available if .tag + * is sharing_change_link_default_expiration_policy_details. + * @property {TeamLogSharingChangeLinkEnforcePasswordPolicyDetails} + * [sharing_change_link_enforce_password_policy_details] - Available if .tag is + * sharing_change_link_enforce_password_policy_details. + * @property {TeamLogSharingChangeLinkPolicyDetails} + * [sharing_change_link_policy_details] - Available if .tag is + * sharing_change_link_policy_details. + * @property {TeamLogSharingChangeMemberPolicyDetails} + * [sharing_change_member_policy_details] - Available if .tag is + * sharing_change_member_policy_details. + * @property {TeamLogShowcaseChangeDownloadPolicyDetails} + * [showcase_change_download_policy_details] - Available if .tag is + * showcase_change_download_policy_details. + * @property {TeamLogShowcaseChangeEnabledPolicyDetails} + * [showcase_change_enabled_policy_details] - Available if .tag is + * showcase_change_enabled_policy_details. + * @property {TeamLogShowcaseChangeExternalSharingPolicyDetails} + * [showcase_change_external_sharing_policy_details] - Available if .tag is + * showcase_change_external_sharing_policy_details. + * @property {TeamLogSmarterSmartSyncPolicyChangedDetails} + * [smarter_smart_sync_policy_changed_details] - Available if .tag is + * smarter_smart_sync_policy_changed_details. + * @property {TeamLogSmartSyncChangePolicyDetails} + * [smart_sync_change_policy_details] - Available if .tag is + * smart_sync_change_policy_details. + * @property {TeamLogSmartSyncNotOptOutDetails} [smart_sync_not_opt_out_details] + * - Available if .tag is smart_sync_not_opt_out_details. + * @property {TeamLogSmartSyncOptOutDetails} [smart_sync_opt_out_details] - + * Available if .tag is smart_sync_opt_out_details. + * @property {TeamLogSsoChangePolicyDetails} [sso_change_policy_details] - + * Available if .tag is sso_change_policy_details. + * @property {TeamLogTeamBrandingPolicyChangedDetails} + * [team_branding_policy_changed_details] - Available if .tag is + * team_branding_policy_changed_details. + * @property {TeamLogTeamExtensionsPolicyChangedDetails} + * [team_extensions_policy_changed_details] - Available if .tag is + * team_extensions_policy_changed_details. + * @property {TeamLogTeamSelectiveSyncPolicyChangedDetails} + * [team_selective_sync_policy_changed_details] - Available if .tag is + * team_selective_sync_policy_changed_details. + * @property {TeamLogTeamSharingWhitelistSubjectsChangedDetails} + * [team_sharing_whitelist_subjects_changed_details] - Available if .tag is + * team_sharing_whitelist_subjects_changed_details. + * @property {TeamLogTfaAddExceptionDetails} [tfa_add_exception_details] - + * Available if .tag is tfa_add_exception_details. + * @property {TeamLogTfaChangePolicyDetails} [tfa_change_policy_details] - + * Available if .tag is tfa_change_policy_details. + * @property {TeamLogTfaRemoveExceptionDetails} [tfa_remove_exception_details] - + * Available if .tag is tfa_remove_exception_details. + * @property {TeamLogTwoAccountChangePolicyDetails} + * [two_account_change_policy_details] - Available if .tag is + * two_account_change_policy_details. + * @property {TeamLogViewerInfoPolicyChangedDetails} + * [viewer_info_policy_changed_details] - Available if .tag is + * viewer_info_policy_changed_details. + * @property {TeamLogWatermarkingPolicyChangedDetails} + * [watermarking_policy_changed_details] - Available if .tag is + * watermarking_policy_changed_details. + * @property {TeamLogWebSessionsChangeActiveSessionLimitDetails} + * [web_sessions_change_active_session_limit_details] - Available if .tag is + * web_sessions_change_active_session_limit_details. + * @property {TeamLogWebSessionsChangeFixedLengthPolicyDetails} + * [web_sessions_change_fixed_length_policy_details] - Available if .tag is + * web_sessions_change_fixed_length_policy_details. + * @property {TeamLogWebSessionsChangeIdleLengthPolicyDetails} + * [web_sessions_change_idle_length_policy_details] - Available if .tag is + * web_sessions_change_idle_length_policy_details. + * @property {TeamLogDataResidencyMigrationRequestSuccessfulDetails} + * [data_residency_migration_request_successful_details] - Available if .tag is + * data_residency_migration_request_successful_details. + * @property {TeamLogDataResidencyMigrationRequestUnsuccessfulDetails} + * [data_residency_migration_request_unsuccessful_details] - Available if .tag + * is data_residency_migration_request_unsuccessful_details. + * @property {TeamLogTeamMergeFromDetails} [team_merge_from_details] - Available + * if .tag is team_merge_from_details. + * @property {TeamLogTeamMergeToDetails} [team_merge_to_details] - Available if + * .tag is team_merge_to_details. + * @property {TeamLogTeamProfileAddBackgroundDetails} + * [team_profile_add_background_details] - Available if .tag is + * team_profile_add_background_details. + * @property {TeamLogTeamProfileAddLogoDetails} [team_profile_add_logo_details] + * - Available if .tag is team_profile_add_logo_details. + * @property {TeamLogTeamProfileChangeBackgroundDetails} + * [team_profile_change_background_details] - Available if .tag is + * team_profile_change_background_details. + * @property {TeamLogTeamProfileChangeDefaultLanguageDetails} + * [team_profile_change_default_language_details] - Available if .tag is + * team_profile_change_default_language_details. + * @property {TeamLogTeamProfileChangeLogoDetails} + * [team_profile_change_logo_details] - Available if .tag is + * team_profile_change_logo_details. + * @property {TeamLogTeamProfileChangeNameDetails} + * [team_profile_change_name_details] - Available if .tag is + * team_profile_change_name_details. + * @property {TeamLogTeamProfileRemoveBackgroundDetails} + * [team_profile_remove_background_details] - Available if .tag is + * team_profile_remove_background_details. + * @property {TeamLogTeamProfileRemoveLogoDetails} + * [team_profile_remove_logo_details] - Available if .tag is + * team_profile_remove_logo_details. + * @property {TeamLogTfaAddBackupPhoneDetails} [tfa_add_backup_phone_details] - + * Available if .tag is tfa_add_backup_phone_details. + * @property {TeamLogTfaAddSecurityKeyDetails} [tfa_add_security_key_details] - + * Available if .tag is tfa_add_security_key_details. + * @property {TeamLogTfaChangeBackupPhoneDetails} + * [tfa_change_backup_phone_details] - Available if .tag is + * tfa_change_backup_phone_details. + * @property {TeamLogTfaChangeStatusDetails} [tfa_change_status_details] - + * Available if .tag is tfa_change_status_details. + * @property {TeamLogTfaRemoveBackupPhoneDetails} + * [tfa_remove_backup_phone_details] - Available if .tag is + * tfa_remove_backup_phone_details. + * @property {TeamLogTfaRemoveSecurityKeyDetails} + * [tfa_remove_security_key_details] - Available if .tag is + * tfa_remove_security_key_details. + * @property {TeamLogTfaResetDetails} [tfa_reset_details] - Available if .tag is + * tfa_reset_details. + * @property {TeamLogChangedEnterpriseAdminRoleDetails} + * [changed_enterprise_admin_role_details] - Available if .tag is + * changed_enterprise_admin_role_details. + * @property {TeamLogChangedEnterpriseConnectedTeamStatusDetails} + * [changed_enterprise_connected_team_status_details] - Available if .tag is + * changed_enterprise_connected_team_status_details. + * @property {TeamLogEndedEnterpriseAdminSessionDetails} + * [ended_enterprise_admin_session_details] - Available if .tag is + * ended_enterprise_admin_session_details. + * @property {TeamLogEndedEnterpriseAdminSessionDeprecatedDetails} + * [ended_enterprise_admin_session_deprecated_details] - Available if .tag is + * ended_enterprise_admin_session_deprecated_details. + * @property {TeamLogEnterpriseSettingsLockingDetails} + * [enterprise_settings_locking_details] - Available if .tag is + * enterprise_settings_locking_details. + * @property {TeamLogGuestAdminChangeStatusDetails} + * [guest_admin_change_status_details] - Available if .tag is + * guest_admin_change_status_details. + * @property {TeamLogStartedEnterpriseAdminSessionDetails} + * [started_enterprise_admin_session_details] - Available if .tag is + * started_enterprise_admin_session_details. + * @property {TeamLogTeamMergeRequestAcceptedDetails} + * [team_merge_request_accepted_details] - Available if .tag is + * team_merge_request_accepted_details. + * @property {TeamLogTeamMergeRequestAcceptedShownToPrimaryTeamDetails} + * [team_merge_request_accepted_shown_to_primary_team_details] - Available if + * .tag is team_merge_request_accepted_shown_to_primary_team_details. + * @property {TeamLogTeamMergeRequestAcceptedShownToSecondaryTeamDetails} + * [team_merge_request_accepted_shown_to_secondary_team_details] - Available if + * .tag is team_merge_request_accepted_shown_to_secondary_team_details. + * @property {TeamLogTeamMergeRequestAutoCanceledDetails} + * [team_merge_request_auto_canceled_details] - Available if .tag is + * team_merge_request_auto_canceled_details. + * @property {TeamLogTeamMergeRequestCanceledDetails} + * [team_merge_request_canceled_details] - Available if .tag is + * team_merge_request_canceled_details. + * @property {TeamLogTeamMergeRequestCanceledShownToPrimaryTeamDetails} + * [team_merge_request_canceled_shown_to_primary_team_details] - Available if + * .tag is team_merge_request_canceled_shown_to_primary_team_details. + * @property {TeamLogTeamMergeRequestCanceledShownToSecondaryTeamDetails} + * [team_merge_request_canceled_shown_to_secondary_team_details] - Available if + * .tag is team_merge_request_canceled_shown_to_secondary_team_details. + * @property {TeamLogTeamMergeRequestExpiredDetails} + * [team_merge_request_expired_details] - Available if .tag is + * team_merge_request_expired_details. + * @property {TeamLogTeamMergeRequestExpiredShownToPrimaryTeamDetails} + * [team_merge_request_expired_shown_to_primary_team_details] - Available if + * .tag is team_merge_request_expired_shown_to_primary_team_details. + * @property {TeamLogTeamMergeRequestExpiredShownToSecondaryTeamDetails} + * [team_merge_request_expired_shown_to_secondary_team_details] - Available if + * .tag is team_merge_request_expired_shown_to_secondary_team_details. + * @property {TeamLogTeamMergeRequestRejectedShownToPrimaryTeamDetails} + * [team_merge_request_rejected_shown_to_primary_team_details] - Available if + * .tag is team_merge_request_rejected_shown_to_primary_team_details. + * @property {TeamLogTeamMergeRequestRejectedShownToSecondaryTeamDetails} + * [team_merge_request_rejected_shown_to_secondary_team_details] - Available if + * .tag is team_merge_request_rejected_shown_to_secondary_team_details. + * @property {TeamLogTeamMergeRequestReminderDetails} + * [team_merge_request_reminder_details] - Available if .tag is + * team_merge_request_reminder_details. + * @property {TeamLogTeamMergeRequestReminderShownToPrimaryTeamDetails} + * [team_merge_request_reminder_shown_to_primary_team_details] - Available if + * .tag is team_merge_request_reminder_shown_to_primary_team_details. + * @property {TeamLogTeamMergeRequestReminderShownToSecondaryTeamDetails} + * [team_merge_request_reminder_shown_to_secondary_team_details] - Available if + * .tag is team_merge_request_reminder_shown_to_secondary_team_details. + * @property {TeamLogTeamMergeRequestRevokedDetails} + * [team_merge_request_revoked_details] - Available if .tag is + * team_merge_request_revoked_details. + * @property {TeamLogTeamMergeRequestSentShownToPrimaryTeamDetails} + * [team_merge_request_sent_shown_to_primary_team_details] - Available if .tag + * is team_merge_request_sent_shown_to_primary_team_details. + * @property {TeamLogTeamMergeRequestSentShownToSecondaryTeamDetails} + * [team_merge_request_sent_shown_to_secondary_team_details] - Available if .tag + * is team_merge_request_sent_shown_to_secondary_team_details. + * @property {TeamLogMissingDetails} [missing_details] - Available if .tag is + * missing_details. Hints that this event was returned with missing details due + * to an internal error. + * @property {('admin_alerting_alert_state_changed_details'|'admin_alerting_changed_alert_config_details'|'admin_alerting_triggered_alert_details'|'app_blocked_by_permissions_details'|'app_link_team_details'|'app_link_user_details'|'app_unlink_team_details'|'app_unlink_user_details'|'integration_connected_details'|'integration_disconnected_details'|'file_add_comment_details'|'file_change_comment_subscription_details'|'file_delete_comment_details'|'file_edit_comment_details'|'file_like_comment_details'|'file_resolve_comment_details'|'file_unlike_comment_details'|'file_unresolve_comment_details'|'governance_policy_add_folders_details'|'governance_policy_add_folder_failed_details'|'governance_policy_content_disposed_details'|'governance_policy_create_details'|'governance_policy_delete_details'|'governance_policy_edit_details_details'|'governance_policy_edit_duration_details'|'governance_policy_export_created_details'|'governance_policy_export_removed_details'|'governance_policy_remove_folders_details'|'governance_policy_report_created_details'|'governance_policy_zip_part_downloaded_details'|'legal_holds_activate_a_hold_details'|'legal_holds_add_members_details'|'legal_holds_change_hold_details_details'|'legal_holds_change_hold_name_details'|'legal_holds_export_a_hold_details'|'legal_holds_export_cancelled_details'|'legal_holds_export_downloaded_details'|'legal_holds_export_removed_details'|'legal_holds_release_a_hold_details'|'legal_holds_remove_members_details'|'legal_holds_report_a_hold_details'|'device_change_ip_desktop_details'|'device_change_ip_mobile_details'|'device_change_ip_web_details'|'device_delete_on_unlink_fail_details'|'device_delete_on_unlink_success_details'|'device_link_fail_details'|'device_link_success_details'|'device_management_disabled_details'|'device_management_enabled_details'|'device_sync_backup_status_changed_details'|'device_unlink_details'|'dropbox_passwords_exported_details'|'dropbox_passwords_new_device_enrolled_details'|'emm_refresh_auth_token_details'|'external_drive_backup_eligibility_status_checked_details'|'external_drive_backup_status_changed_details'|'account_capture_change_availability_details'|'account_capture_migrate_account_details'|'account_capture_notification_emails_sent_details'|'account_capture_relinquish_account_details'|'disabled_domain_invites_details'|'domain_invites_approve_request_to_join_team_details'|'domain_invites_decline_request_to_join_team_details'|'domain_invites_email_existing_users_details'|'domain_invites_request_to_join_team_details'|'domain_invites_set_invite_new_user_pref_to_no_details'|'domain_invites_set_invite_new_user_pref_to_yes_details'|'domain_verification_add_domain_fail_details'|'domain_verification_add_domain_success_details'|'domain_verification_remove_domain_details'|'enabled_domain_invites_details'|'apply_naming_convention_details'|'create_folder_details'|'file_add_details'|'file_copy_details'|'file_delete_details'|'file_download_details'|'file_edit_details'|'file_get_copy_reference_details'|'file_locking_lock_status_changed_details'|'file_move_details'|'file_permanently_delete_details'|'file_preview_details'|'file_rename_details'|'file_restore_details'|'file_revert_details'|'file_rollback_changes_details'|'file_save_copy_reference_details'|'folder_overview_description_changed_details'|'folder_overview_item_pinned_details'|'folder_overview_item_unpinned_details'|'object_label_added_details'|'object_label_removed_details'|'object_label_updated_value_details'|'organize_folder_with_tidy_details'|'rewind_folder_details'|'undo_naming_convention_details'|'undo_organize_folder_with_tidy_details'|'user_tags_added_details'|'user_tags_removed_details'|'email_ingest_receive_file_details'|'file_request_change_details'|'file_request_close_details'|'file_request_create_details'|'file_request_delete_details'|'file_request_receive_file_details'|'group_add_external_id_details'|'group_add_member_details'|'group_change_external_id_details'|'group_change_management_type_details'|'group_change_member_role_details'|'group_create_details'|'group_delete_details'|'group_description_updated_details'|'group_join_policy_updated_details'|'group_moved_details'|'group_remove_external_id_details'|'group_remove_member_details'|'group_rename_details'|'account_lock_or_unlocked_details'|'emm_error_details'|'guest_admin_signed_in_via_trusted_teams_details'|'guest_admin_signed_out_via_trusted_teams_details'|'login_fail_details'|'login_success_details'|'logout_details'|'reseller_support_session_end_details'|'reseller_support_session_start_details'|'sign_in_as_session_end_details'|'sign_in_as_session_start_details'|'sso_error_details'|'create_team_invite_link_details'|'delete_team_invite_link_details'|'member_add_external_id_details'|'member_add_name_details'|'member_change_admin_role_details'|'member_change_email_details'|'member_change_external_id_details'|'member_change_membership_type_details'|'member_change_name_details'|'member_change_reseller_role_details'|'member_change_status_details'|'member_delete_manual_contacts_details'|'member_delete_profile_photo_details'|'member_permanently_delete_account_contents_details'|'member_remove_external_id_details'|'member_set_profile_photo_details'|'member_space_limits_add_custom_quota_details'|'member_space_limits_change_custom_quota_details'|'member_space_limits_change_status_details'|'member_space_limits_remove_custom_quota_details'|'member_suggest_details'|'member_transfer_account_contents_details'|'pending_secondary_email_added_details'|'secondary_email_deleted_details'|'secondary_email_verified_details'|'secondary_mails_policy_changed_details'|'binder_add_page_details'|'binder_add_section_details'|'binder_remove_page_details'|'binder_remove_section_details'|'binder_rename_page_details'|'binder_rename_section_details'|'binder_reorder_page_details'|'binder_reorder_section_details'|'paper_content_add_member_details'|'paper_content_add_to_folder_details'|'paper_content_archive_details'|'paper_content_create_details'|'paper_content_permanently_delete_details'|'paper_content_remove_from_folder_details'|'paper_content_remove_member_details'|'paper_content_rename_details'|'paper_content_restore_details'|'paper_doc_add_comment_details'|'paper_doc_change_member_role_details'|'paper_doc_change_sharing_policy_details'|'paper_doc_change_subscription_details'|'paper_doc_deleted_details'|'paper_doc_delete_comment_details'|'paper_doc_download_details'|'paper_doc_edit_details'|'paper_doc_edit_comment_details'|'paper_doc_followed_details'|'paper_doc_mention_details'|'paper_doc_ownership_changed_details'|'paper_doc_request_access_details'|'paper_doc_resolve_comment_details'|'paper_doc_revert_details'|'paper_doc_slack_share_details'|'paper_doc_team_invite_details'|'paper_doc_trashed_details'|'paper_doc_unresolve_comment_details'|'paper_doc_untrashed_details'|'paper_doc_view_details'|'paper_external_view_allow_details'|'paper_external_view_default_team_details'|'paper_external_view_forbid_details'|'paper_folder_change_subscription_details'|'paper_folder_deleted_details'|'paper_folder_followed_details'|'paper_folder_team_invite_details'|'paper_published_link_change_permission_details'|'paper_published_link_create_details'|'paper_published_link_disabled_details'|'paper_published_link_view_details'|'password_change_details'|'password_reset_details'|'password_reset_all_details'|'classification_create_report_details'|'classification_create_report_fail_details'|'emm_create_exceptions_report_details'|'emm_create_usage_report_details'|'export_members_report_details'|'export_members_report_fail_details'|'external_sharing_create_report_details'|'external_sharing_report_failed_details'|'no_expiration_link_gen_create_report_details'|'no_expiration_link_gen_report_failed_details'|'no_password_link_gen_create_report_details'|'no_password_link_gen_report_failed_details'|'no_password_link_view_create_report_details'|'no_password_link_view_report_failed_details'|'outdated_link_view_create_report_details'|'outdated_link_view_report_failed_details'|'paper_admin_export_start_details'|'smart_sync_create_admin_privilege_report_details'|'team_activity_create_report_details'|'team_activity_create_report_fail_details'|'collection_share_details'|'file_transfers_file_add_details'|'file_transfers_transfer_delete_details'|'file_transfers_transfer_download_details'|'file_transfers_transfer_send_details'|'file_transfers_transfer_view_details'|'note_acl_invite_only_details'|'note_acl_link_details'|'note_acl_team_link_details'|'note_shared_details'|'note_share_receive_details'|'open_note_shared_details'|'sf_add_group_details'|'sf_allow_non_members_to_view_shared_links_details'|'sf_external_invite_warn_details'|'sf_fb_invite_details'|'sf_fb_invite_change_role_details'|'sf_fb_uninvite_details'|'sf_invite_group_details'|'sf_team_grant_access_details'|'sf_team_invite_details'|'sf_team_invite_change_role_details'|'sf_team_join_details'|'sf_team_join_from_oob_link_details'|'sf_team_uninvite_details'|'shared_content_add_invitees_details'|'shared_content_add_link_expiry_details'|'shared_content_add_link_password_details'|'shared_content_add_member_details'|'shared_content_change_downloads_policy_details'|'shared_content_change_invitee_role_details'|'shared_content_change_link_audience_details'|'shared_content_change_link_expiry_details'|'shared_content_change_link_password_details'|'shared_content_change_member_role_details'|'shared_content_change_viewer_info_policy_details'|'shared_content_claim_invitation_details'|'shared_content_copy_details'|'shared_content_download_details'|'shared_content_relinquish_membership_details'|'shared_content_remove_invitees_details'|'shared_content_remove_link_expiry_details'|'shared_content_remove_link_password_details'|'shared_content_remove_member_details'|'shared_content_request_access_details'|'shared_content_restore_invitees_details'|'shared_content_restore_member_details'|'shared_content_unshare_details'|'shared_content_view_details'|'shared_folder_change_link_policy_details'|'shared_folder_change_members_inheritance_policy_details'|'shared_folder_change_members_management_policy_details'|'shared_folder_change_members_policy_details'|'shared_folder_create_details'|'shared_folder_decline_invitation_details'|'shared_folder_mount_details'|'shared_folder_nest_details'|'shared_folder_transfer_ownership_details'|'shared_folder_unmount_details'|'shared_link_add_expiry_details'|'shared_link_change_expiry_details'|'shared_link_change_visibility_details'|'shared_link_copy_details'|'shared_link_create_details'|'shared_link_disable_details'|'shared_link_download_details'|'shared_link_remove_expiry_details'|'shared_link_settings_add_expiration_details'|'shared_link_settings_add_password_details'|'shared_link_settings_allow_download_disabled_details'|'shared_link_settings_allow_download_enabled_details'|'shared_link_settings_change_audience_details'|'shared_link_settings_change_expiration_details'|'shared_link_settings_change_password_details'|'shared_link_settings_remove_expiration_details'|'shared_link_settings_remove_password_details'|'shared_link_share_details'|'shared_link_view_details'|'shared_note_opened_details'|'shmodel_disable_downloads_details'|'shmodel_enable_downloads_details'|'shmodel_group_share_details'|'showcase_access_granted_details'|'showcase_add_member_details'|'showcase_archived_details'|'showcase_created_details'|'showcase_delete_comment_details'|'showcase_edited_details'|'showcase_edit_comment_details'|'showcase_file_added_details'|'showcase_file_download_details'|'showcase_file_removed_details'|'showcase_file_view_details'|'showcase_permanently_deleted_details'|'showcase_post_comment_details'|'showcase_remove_member_details'|'showcase_renamed_details'|'showcase_request_access_details'|'showcase_resolve_comment_details'|'showcase_restored_details'|'showcase_trashed_details'|'showcase_trashed_deprecated_details'|'showcase_unresolve_comment_details'|'showcase_untrashed_details'|'showcase_untrashed_deprecated_details'|'showcase_view_details'|'sso_add_cert_details'|'sso_add_login_url_details'|'sso_add_logout_url_details'|'sso_change_cert_details'|'sso_change_login_url_details'|'sso_change_logout_url_details'|'sso_change_saml_identity_mode_details'|'sso_remove_cert_details'|'sso_remove_login_url_details'|'sso_remove_logout_url_details'|'team_folder_change_status_details'|'team_folder_create_details'|'team_folder_downgrade_details'|'team_folder_permanently_delete_details'|'team_folder_rename_details'|'team_selective_sync_settings_changed_details'|'account_capture_change_policy_details'|'admin_email_reminders_changed_details'|'allow_download_disabled_details'|'allow_download_enabled_details'|'app_permissions_changed_details'|'camera_uploads_policy_changed_details'|'capture_transcript_policy_changed_details'|'classification_change_policy_details'|'computer_backup_policy_changed_details'|'content_administration_policy_changed_details'|'data_placement_restriction_change_policy_details'|'data_placement_restriction_satisfy_policy_details'|'device_approvals_add_exception_details'|'device_approvals_change_desktop_policy_details'|'device_approvals_change_mobile_policy_details'|'device_approvals_change_overage_action_details'|'device_approvals_change_unlink_action_details'|'device_approvals_remove_exception_details'|'directory_restrictions_add_members_details'|'directory_restrictions_remove_members_details'|'dropbox_passwords_policy_changed_details'|'email_ingest_policy_changed_details'|'emm_add_exception_details'|'emm_change_policy_details'|'emm_remove_exception_details'|'extended_version_history_change_policy_details'|'external_drive_backup_policy_changed_details'|'file_comments_change_policy_details'|'file_locking_policy_changed_details'|'file_provider_migration_policy_changed_details'|'file_requests_change_policy_details'|'file_requests_emails_enabled_details'|'file_requests_emails_restricted_to_team_only_details'|'file_transfers_policy_changed_details'|'folder_link_restriction_policy_changed_details'|'google_sso_change_policy_details'|'group_user_management_change_policy_details'|'integration_policy_changed_details'|'invite_acceptance_email_policy_changed_details'|'member_requests_change_policy_details'|'member_send_invite_policy_changed_details'|'member_space_limits_add_exception_details'|'member_space_limits_change_caps_type_policy_details'|'member_space_limits_change_policy_details'|'member_space_limits_remove_exception_details'|'member_suggestions_change_policy_details'|'microsoft_office_addin_change_policy_details'|'network_control_change_policy_details'|'paper_change_deployment_policy_details'|'paper_change_member_link_policy_details'|'paper_change_member_policy_details'|'paper_change_policy_details'|'paper_default_folder_policy_changed_details'|'paper_desktop_policy_changed_details'|'paper_enabled_users_group_addition_details'|'paper_enabled_users_group_removal_details'|'password_strength_requirements_change_policy_details'|'permanent_delete_change_policy_details'|'reseller_support_change_policy_details'|'rewind_policy_changed_details'|'send_for_signature_policy_changed_details'|'sharing_change_folder_join_policy_details'|'sharing_change_link_allow_change_expiration_policy_details'|'sharing_change_link_default_expiration_policy_details'|'sharing_change_link_enforce_password_policy_details'|'sharing_change_link_policy_details'|'sharing_change_member_policy_details'|'showcase_change_download_policy_details'|'showcase_change_enabled_policy_details'|'showcase_change_external_sharing_policy_details'|'smarter_smart_sync_policy_changed_details'|'smart_sync_change_policy_details'|'smart_sync_not_opt_out_details'|'smart_sync_opt_out_details'|'sso_change_policy_details'|'team_branding_policy_changed_details'|'team_extensions_policy_changed_details'|'team_selective_sync_policy_changed_details'|'team_sharing_whitelist_subjects_changed_details'|'tfa_add_exception_details'|'tfa_change_policy_details'|'tfa_remove_exception_details'|'two_account_change_policy_details'|'viewer_info_policy_changed_details'|'watermarking_policy_changed_details'|'web_sessions_change_active_session_limit_details'|'web_sessions_change_fixed_length_policy_details'|'web_sessions_change_idle_length_policy_details'|'data_residency_migration_request_successful_details'|'data_residency_migration_request_unsuccessful_details'|'team_merge_from_details'|'team_merge_to_details'|'team_profile_add_background_details'|'team_profile_add_logo_details'|'team_profile_change_background_details'|'team_profile_change_default_language_details'|'team_profile_change_logo_details'|'team_profile_change_name_details'|'team_profile_remove_background_details'|'team_profile_remove_logo_details'|'tfa_add_backup_phone_details'|'tfa_add_security_key_details'|'tfa_change_backup_phone_details'|'tfa_change_status_details'|'tfa_remove_backup_phone_details'|'tfa_remove_security_key_details'|'tfa_reset_details'|'changed_enterprise_admin_role_details'|'changed_enterprise_connected_team_status_details'|'ended_enterprise_admin_session_details'|'ended_enterprise_admin_session_deprecated_details'|'enterprise_settings_locking_details'|'guest_admin_change_status_details'|'started_enterprise_admin_session_details'|'team_merge_request_accepted_details'|'team_merge_request_accepted_shown_to_primary_team_details'|'team_merge_request_accepted_shown_to_secondary_team_details'|'team_merge_request_auto_canceled_details'|'team_merge_request_canceled_details'|'team_merge_request_canceled_shown_to_primary_team_details'|'team_merge_request_canceled_shown_to_secondary_team_details'|'team_merge_request_expired_details'|'team_merge_request_expired_shown_to_primary_team_details'|'team_merge_request_expired_shown_to_secondary_team_details'|'team_merge_request_rejected_shown_to_primary_team_details'|'team_merge_request_rejected_shown_to_secondary_team_details'|'team_merge_request_reminder_details'|'team_merge_request_reminder_shown_to_primary_team_details'|'team_merge_request_reminder_shown_to_secondary_team_details'|'team_merge_request_revoked_details'|'team_merge_request_sent_shown_to_primary_team_details'|'team_merge_request_sent_shown_to_secondary_team_details'|'missing_details'|'other')} .tag - Tag identifying the union variant. + */ /** + * The type of the event with description. + * @typedef {Object} TeamLogEventType + * @property {TeamLogAdminAlertingAlertStateChangedType} + * [admin_alerting_alert_state_changed] - Available if .tag is + * admin_alerting_alert_state_changed. (admin_alerting) Changed an alert state + * @property {TeamLogAdminAlertingChangedAlertConfigType} + * [admin_alerting_changed_alert_config] - Available if .tag is + * admin_alerting_changed_alert_config. (admin_alerting) Changed an alert + * setting + * @property {TeamLogAdminAlertingTriggeredAlertType} + * [admin_alerting_triggered_alert] - Available if .tag is + * admin_alerting_triggered_alert. (admin_alerting) Triggered security alert + * @property {TeamLogAppBlockedByPermissionsType} [app_blocked_by_permissions] - + * Available if .tag is app_blocked_by_permissions. (apps) Failed to connect app + * for member + * @property {TeamLogAppLinkTeamType} [app_link_team] - Available if .tag is + * app_link_team. (apps) Linked app for team + * @property {TeamLogAppLinkUserType} [app_link_user] - Available if .tag is + * app_link_user. (apps) Linked app for member + * @property {TeamLogAppUnlinkTeamType} [app_unlink_team] - Available if .tag is + * app_unlink_team. (apps) Unlinked app for team + * @property {TeamLogAppUnlinkUserType} [app_unlink_user] - Available if .tag is + * app_unlink_user. (apps) Unlinked app for member + * @property {TeamLogIntegrationConnectedType} [integration_connected] - + * Available if .tag is integration_connected. (apps) Connected integration for + * member + * @property {TeamLogIntegrationDisconnectedType} [integration_disconnected] - + * Available if .tag is integration_disconnected. (apps) Disconnected + * integration for member + * @property {TeamLogFileAddCommentType} [file_add_comment] - Available if .tag + * is file_add_comment. (comments) Added file comment + * @property {TeamLogFileChangeCommentSubscriptionType} + * [file_change_comment_subscription] - Available if .tag is + * file_change_comment_subscription. (comments) Subscribed to or unsubscribed + * from comment notifications for file + * @property {TeamLogFileDeleteCommentType} [file_delete_comment] - Available if + * .tag is file_delete_comment. (comments) Deleted file comment + * @property {TeamLogFileEditCommentType} [file_edit_comment] - Available if + * .tag is file_edit_comment. (comments) Edited file comment + * @property {TeamLogFileLikeCommentType} [file_like_comment] - Available if + * .tag is file_like_comment. (comments) Liked file comment (deprecated, no + * longer logged) + * @property {TeamLogFileResolveCommentType} [file_resolve_comment] - Available + * if .tag is file_resolve_comment. (comments) Resolved file comment + * @property {TeamLogFileUnlikeCommentType} [file_unlike_comment] - Available if + * .tag is file_unlike_comment. (comments) Unliked file comment (deprecated, no + * longer logged) + * @property {TeamLogFileUnresolveCommentType} [file_unresolve_comment] - + * Available if .tag is file_unresolve_comment. (comments) Unresolved file + * comment + * @property {TeamLogGovernancePolicyAddFoldersType} + * [governance_policy_add_folders] - Available if .tag is + * governance_policy_add_folders. (data_governance) Added folders to policy + * @property {TeamLogGovernancePolicyAddFolderFailedType} + * [governance_policy_add_folder_failed] - Available if .tag is + * governance_policy_add_folder_failed. (data_governance) Couldn't add a folder + * to a policy + * @property {TeamLogGovernancePolicyContentDisposedType} + * [governance_policy_content_disposed] - Available if .tag is + * governance_policy_content_disposed. (data_governance) Content disposed + * @property {TeamLogGovernancePolicyCreateType} [governance_policy_create] - + * Available if .tag is governance_policy_create. (data_governance) Activated a + * new policy + * @property {TeamLogGovernancePolicyDeleteType} [governance_policy_delete] - + * Available if .tag is governance_policy_delete. (data_governance) Deleted a + * policy + * @property {TeamLogGovernancePolicyEditDetailsType} + * [governance_policy_edit_details] - Available if .tag is + * governance_policy_edit_details. (data_governance) Edited policy + * @property {TeamLogGovernancePolicyEditDurationType} + * [governance_policy_edit_duration] - Available if .tag is + * governance_policy_edit_duration. (data_governance) Changed policy duration + * @property {TeamLogGovernancePolicyExportCreatedType} + * [governance_policy_export_created] - Available if .tag is + * governance_policy_export_created. (data_governance) Created a policy download + * @property {TeamLogGovernancePolicyExportRemovedType} + * [governance_policy_export_removed] - Available if .tag is + * governance_policy_export_removed. (data_governance) Removed a policy download + * @property {TeamLogGovernancePolicyRemoveFoldersType} + * [governance_policy_remove_folders] - Available if .tag is + * governance_policy_remove_folders. (data_governance) Removed folders from + * policy + * @property {TeamLogGovernancePolicyReportCreatedType} + * [governance_policy_report_created] - Available if .tag is + * governance_policy_report_created. (data_governance) Created a summary report + * for a policy + * @property {TeamLogGovernancePolicyZipPartDownloadedType} + * [governance_policy_zip_part_downloaded] - Available if .tag is + * governance_policy_zip_part_downloaded. (data_governance) Downloaded content + * from a policy + * @property {TeamLogLegalHoldsActivateAHoldType} [legal_holds_activate_a_hold] + * - Available if .tag is legal_holds_activate_a_hold. (data_governance) + * Activated a hold + * @property {TeamLogLegalHoldsAddMembersType} [legal_holds_add_members] - + * Available if .tag is legal_holds_add_members. (data_governance) Added members + * to a hold + * @property {TeamLogLegalHoldsChangeHoldDetailsType} + * [legal_holds_change_hold_details] - Available if .tag is + * legal_holds_change_hold_details. (data_governance) Edited details for a hold + * @property {TeamLogLegalHoldsChangeHoldNameType} + * [legal_holds_change_hold_name] - Available if .tag is + * legal_holds_change_hold_name. (data_governance) Renamed a hold + * @property {TeamLogLegalHoldsExportAHoldType} [legal_holds_export_a_hold] - + * Available if .tag is legal_holds_export_a_hold. (data_governance) Exported + * hold + * @property {TeamLogLegalHoldsExportCancelledType} + * [legal_holds_export_cancelled] - Available if .tag is + * legal_holds_export_cancelled. (data_governance) Canceled export for a hold + * @property {TeamLogLegalHoldsExportDownloadedType} + * [legal_holds_export_downloaded] - Available if .tag is + * legal_holds_export_downloaded. (data_governance) Downloaded export for a hold + * @property {TeamLogLegalHoldsExportRemovedType} [legal_holds_export_removed] - + * Available if .tag is legal_holds_export_removed. (data_governance) Removed + * export for a hold + * @property {TeamLogLegalHoldsReleaseAHoldType} [legal_holds_release_a_hold] - + * Available if .tag is legal_holds_release_a_hold. (data_governance) Released a + * hold + * @property {TeamLogLegalHoldsRemoveMembersType} [legal_holds_remove_members] - + * Available if .tag is legal_holds_remove_members. (data_governance) Removed + * members from a hold + * @property {TeamLogLegalHoldsReportAHoldType} [legal_holds_report_a_hold] - + * Available if .tag is legal_holds_report_a_hold. (data_governance) Created a + * summary report for a hold + * @property {TeamLogDeviceChangeIpDesktopType} [device_change_ip_desktop] - + * Available if .tag is device_change_ip_desktop. (devices) Changed IP address + * associated with active desktop session + * @property {TeamLogDeviceChangeIpMobileType} [device_change_ip_mobile] - + * Available if .tag is device_change_ip_mobile. (devices) Changed IP address + * associated with active mobile session + * @property {TeamLogDeviceChangeIpWebType} [device_change_ip_web] - Available + * if .tag is device_change_ip_web. (devices) Changed IP address associated with + * active web session + * @property {TeamLogDeviceDeleteOnUnlinkFailType} + * [device_delete_on_unlink_fail] - Available if .tag is + * device_delete_on_unlink_fail. (devices) Failed to delete all files from + * unlinked device + * @property {TeamLogDeviceDeleteOnUnlinkSuccessType} + * [device_delete_on_unlink_success] - Available if .tag is + * device_delete_on_unlink_success. (devices) Deleted all files from unlinked + * device + * @property {TeamLogDeviceLinkFailType} [device_link_fail] - Available if .tag + * is device_link_fail. (devices) Failed to link device + * @property {TeamLogDeviceLinkSuccessType} [device_link_success] - Available if + * .tag is device_link_success. (devices) Linked device + * @property {TeamLogDeviceManagementDisabledType} [device_management_disabled] + * - Available if .tag is device_management_disabled. (devices) Disabled device + * management (deprecated, no longer logged) + * @property {TeamLogDeviceManagementEnabledType} [device_management_enabled] - + * Available if .tag is device_management_enabled. (devices) Enabled device + * management (deprecated, no longer logged) + * @property {TeamLogDeviceSyncBackupStatusChangedType} + * [device_sync_backup_status_changed] - Available if .tag is + * device_sync_backup_status_changed. (devices) Enabled/disabled backup for + * computer + * @property {TeamLogDeviceUnlinkType} [device_unlink] - Available if .tag is + * device_unlink. (devices) Disconnected device + * @property {TeamLogDropboxPasswordsExportedType} [dropbox_passwords_exported] + * - Available if .tag is dropbox_passwords_exported. (devices) Exported + * passwords + * @property {TeamLogDropboxPasswordsNewDeviceEnrolledType} + * [dropbox_passwords_new_device_enrolled] - Available if .tag is + * dropbox_passwords_new_device_enrolled. (devices) Enrolled new Dropbox + * Passwords device + * @property {TeamLogEmmRefreshAuthTokenType} [emm_refresh_auth_token] - + * Available if .tag is emm_refresh_auth_token. (devices) Refreshed auth token + * used for setting up EMM + * @property {TeamLogExternalDriveBackupEligibilityStatusCheckedType} + * [external_drive_backup_eligibility_status_checked] - Available if .tag is + * external_drive_backup_eligibility_status_checked. (devices) Checked external + * drive backup eligibility status + * @property {TeamLogExternalDriveBackupStatusChangedType} + * [external_drive_backup_status_changed] - Available if .tag is + * external_drive_backup_status_changed. (devices) Modified external drive + * backup + * @property {TeamLogAccountCaptureChangeAvailabilityType} + * [account_capture_change_availability] - Available if .tag is + * account_capture_change_availability. (domains) Granted/revoked option to + * enable account capture on team domains + * @property {TeamLogAccountCaptureMigrateAccountType} + * [account_capture_migrate_account] - Available if .tag is + * account_capture_migrate_account. (domains) Account-captured user migrated + * account to team + * @property {TeamLogAccountCaptureNotificationEmailsSentType} + * [account_capture_notification_emails_sent] - Available if .tag is + * account_capture_notification_emails_sent. (domains) Sent account capture + * email to all unmanaged members + * @property {TeamLogAccountCaptureRelinquishAccountType} + * [account_capture_relinquish_account] - Available if .tag is + * account_capture_relinquish_account. (domains) Account-captured user changed + * account email to personal email + * @property {TeamLogDisabledDomainInvitesType} [disabled_domain_invites] - + * Available if .tag is disabled_domain_invites. (domains) Disabled domain + * invites (deprecated, no longer logged) + * @property {TeamLogDomainInvitesApproveRequestToJoinTeamType} + * [domain_invites_approve_request_to_join_team] - Available if .tag is + * domain_invites_approve_request_to_join_team. (domains) Approved user's + * request to join team + * @property {TeamLogDomainInvitesDeclineRequestToJoinTeamType} + * [domain_invites_decline_request_to_join_team] - Available if .tag is + * domain_invites_decline_request_to_join_team. (domains) Declined user's + * request to join team + * @property {TeamLogDomainInvitesEmailExistingUsersType} + * [domain_invites_email_existing_users] - Available if .tag is + * domain_invites_email_existing_users. (domains) Sent domain invites to + * existing domain accounts (deprecated, no longer logged) + * @property {TeamLogDomainInvitesRequestToJoinTeamType} + * [domain_invites_request_to_join_team] - Available if .tag is + * domain_invites_request_to_join_team. (domains) Requested to join team + * @property {TeamLogDomainInvitesSetInviteNewUserPrefToNoType} + * [domain_invites_set_invite_new_user_pref_to_no] - Available if .tag is + * domain_invites_set_invite_new_user_pref_to_no. (domains) Disabled + * "Automatically invite new users" (deprecated, no longer logged) + * @property {TeamLogDomainInvitesSetInviteNewUserPrefToYesType} + * [domain_invites_set_invite_new_user_pref_to_yes] - Available if .tag is + * domain_invites_set_invite_new_user_pref_to_yes. (domains) Enabled + * "Automatically invite new users" (deprecated, no longer logged) + * @property {TeamLogDomainVerificationAddDomainFailType} + * [domain_verification_add_domain_fail] - Available if .tag is + * domain_verification_add_domain_fail. (domains) Failed to verify team domain + * @property {TeamLogDomainVerificationAddDomainSuccessType} + * [domain_verification_add_domain_success] - Available if .tag is + * domain_verification_add_domain_success. (domains) Verified team domain + * @property {TeamLogDomainVerificationRemoveDomainType} + * [domain_verification_remove_domain] - Available if .tag is + * domain_verification_remove_domain. (domains) Removed domain from list of + * verified team domains + * @property {TeamLogEnabledDomainInvitesType} [enabled_domain_invites] - + * Available if .tag is enabled_domain_invites. (domains) Enabled domain invites + * (deprecated, no longer logged) + * @property {TeamLogApplyNamingConventionType} [apply_naming_convention] - + * Available if .tag is apply_naming_convention. (file_operations) Applied + * naming convention + * @property {TeamLogCreateFolderType} [create_folder] - Available if .tag is + * create_folder. (file_operations) Created folders (deprecated, no longer + * logged) + * @property {TeamLogFileAddType} [file_add] - Available if .tag is file_add. + * (file_operations) Added files and/or folders + * @property {TeamLogFileCopyType} [file_copy] - Available if .tag is file_copy. + * (file_operations) Copied files and/or folders + * @property {TeamLogFileDeleteType} [file_delete] - Available if .tag is + * file_delete. (file_operations) Deleted files and/or folders + * @property {TeamLogFileDownloadType} [file_download] - Available if .tag is + * file_download. (file_operations) Downloaded files and/or folders + * @property {TeamLogFileEditType} [file_edit] - Available if .tag is file_edit. + * (file_operations) Edited files + * @property {TeamLogFileGetCopyReferenceType} [file_get_copy_reference] - + * Available if .tag is file_get_copy_reference. (file_operations) Created copy + * reference to file/folder + * @property {TeamLogFileLockingLockStatusChangedType} + * [file_locking_lock_status_changed] - Available if .tag is + * file_locking_lock_status_changed. (file_operations) Locked/unlocked editing + * for a file + * @property {TeamLogFileMoveType} [file_move] - Available if .tag is file_move. + * (file_operations) Moved files and/or folders + * @property {TeamLogFilePermanentlyDeleteType} [file_permanently_delete] - + * Available if .tag is file_permanently_delete. (file_operations) Permanently + * deleted files and/or folders + * @property {TeamLogFilePreviewType} [file_preview] - Available if .tag is + * file_preview. (file_operations) Previewed files and/or folders + * @property {TeamLogFileRenameType} [file_rename] - Available if .tag is + * file_rename. (file_operations) Renamed files and/or folders + * @property {TeamLogFileRestoreType} [file_restore] - Available if .tag is + * file_restore. (file_operations) Restored deleted files and/or folders + * @property {TeamLogFileRevertType} [file_revert] - Available if .tag is + * file_revert. (file_operations) Reverted files to previous version + * @property {TeamLogFileRollbackChangesType} [file_rollback_changes] - + * Available if .tag is file_rollback_changes. (file_operations) Rolled back + * file actions + * @property {TeamLogFileSaveCopyReferenceType} [file_save_copy_reference] - + * Available if .tag is file_save_copy_reference. (file_operations) Saved + * file/folder using copy reference + * @property {TeamLogFolderOverviewDescriptionChangedType} + * [folder_overview_description_changed] - Available if .tag is + * folder_overview_description_changed. (file_operations) Updated folder + * overview + * @property {TeamLogFolderOverviewItemPinnedType} [folder_overview_item_pinned] + * - Available if .tag is folder_overview_item_pinned. (file_operations) Pinned + * item to folder overview + * @property {TeamLogFolderOverviewItemUnpinnedType} + * [folder_overview_item_unpinned] - Available if .tag is + * folder_overview_item_unpinned. (file_operations) Unpinned item from folder + * overview + * @property {TeamLogObjectLabelAddedType} [object_label_added] - Available if + * .tag is object_label_added. (file_operations) Added a label + * @property {TeamLogObjectLabelRemovedType} [object_label_removed] - Available + * if .tag is object_label_removed. (file_operations) Removed a label + * @property {TeamLogObjectLabelUpdatedValueType} [object_label_updated_value] - + * Available if .tag is object_label_updated_value. (file_operations) Updated a + * label's value + * @property {TeamLogOrganizeFolderWithTidyType} [organize_folder_with_tidy] - + * Available if .tag is organize_folder_with_tidy. (file_operations) Organized a + * folder with multi-file organize + * @property {TeamLogRewindFolderType} [rewind_folder] - Available if .tag is + * rewind_folder. (file_operations) Rewound a folder + * @property {TeamLogUndoNamingConventionType} [undo_naming_convention] - + * Available if .tag is undo_naming_convention. (file_operations) Reverted + * naming convention + * @property {TeamLogUndoOrganizeFolderWithTidyType} + * [undo_organize_folder_with_tidy] - Available if .tag is + * undo_organize_folder_with_tidy. (file_operations) Removed multi-file organize + * @property {TeamLogUserTagsAddedType} [user_tags_added] - Available if .tag is + * user_tags_added. (file_operations) Tagged a file + * @property {TeamLogUserTagsRemovedType} [user_tags_removed] - Available if + * .tag is user_tags_removed. (file_operations) Removed tags + * @property {TeamLogEmailIngestReceiveFileType} [email_ingest_receive_file] - + * Available if .tag is email_ingest_receive_file. (file_requests) Received + * files via Email to Dropbox + * @property {TeamLogFileRequestChangeType} [file_request_change] - Available if + * .tag is file_request_change. (file_requests) Changed file request + * @property {TeamLogFileRequestCloseType} [file_request_close] - Available if + * .tag is file_request_close. (file_requests) Closed file request + * @property {TeamLogFileRequestCreateType} [file_request_create] - Available if + * .tag is file_request_create. (file_requests) Created file request + * @property {TeamLogFileRequestDeleteType} [file_request_delete] - Available if + * .tag is file_request_delete. (file_requests) Delete file request + * @property {TeamLogFileRequestReceiveFileType} [file_request_receive_file] - + * Available if .tag is file_request_receive_file. (file_requests) Received + * files for file request + * @property {TeamLogGroupAddExternalIdType} [group_add_external_id] - Available + * if .tag is group_add_external_id. (groups) Added external ID for group + * @property {TeamLogGroupAddMemberType} [group_add_member] - Available if .tag + * is group_add_member. (groups) Added team members to group + * @property {TeamLogGroupChangeExternalIdType} [group_change_external_id] - + * Available if .tag is group_change_external_id. (groups) Changed external ID + * for group + * @property {TeamLogGroupChangeManagementTypeType} + * [group_change_management_type] - Available if .tag is + * group_change_management_type. (groups) Changed group management type + * @property {TeamLogGroupChangeMemberRoleType} [group_change_member_role] - + * Available if .tag is group_change_member_role. (groups) Changed manager + * permissions of group member + * @property {TeamLogGroupCreateType} [group_create] - Available if .tag is + * group_create. (groups) Created group + * @property {TeamLogGroupDeleteType} [group_delete] - Available if .tag is + * group_delete. (groups) Deleted group + * @property {TeamLogGroupDescriptionUpdatedType} [group_description_updated] - + * Available if .tag is group_description_updated. (groups) Updated group + * (deprecated, no longer logged) + * @property {TeamLogGroupJoinPolicyUpdatedType} [group_join_policy_updated] - + * Available if .tag is group_join_policy_updated. (groups) Updated group join + * policy (deprecated, no longer logged) + * @property {TeamLogGroupMovedType} [group_moved] - Available if .tag is + * group_moved. (groups) Moved group (deprecated, no longer logged) + * @property {TeamLogGroupRemoveExternalIdType} [group_remove_external_id] - + * Available if .tag is group_remove_external_id. (groups) Removed external ID + * for group + * @property {TeamLogGroupRemoveMemberType} [group_remove_member] - Available if + * .tag is group_remove_member. (groups) Removed team members from group + * @property {TeamLogGroupRenameType} [group_rename] - Available if .tag is + * group_rename. (groups) Renamed group + * @property {TeamLogAccountLockOrUnlockedType} [account_lock_or_unlocked] - + * Available if .tag is account_lock_or_unlocked. (logins) Unlocked/locked + * account after failed sign in attempts + * @property {TeamLogEmmErrorType} [emm_error] - Available if .tag is emm_error. + * (logins) Failed to sign in via EMM (deprecated, replaced by 'Failed to sign + * in') + * @property {TeamLogGuestAdminSignedInViaTrustedTeamsType} + * [guest_admin_signed_in_via_trusted_teams] - Available if .tag is + * guest_admin_signed_in_via_trusted_teams. (logins) Started trusted team admin + * session + * @property {TeamLogGuestAdminSignedOutViaTrustedTeamsType} + * [guest_admin_signed_out_via_trusted_teams] - Available if .tag is + * guest_admin_signed_out_via_trusted_teams. (logins) Ended trusted team admin + * session + * @property {TeamLogLoginFailType} [login_fail] - Available if .tag is + * login_fail. (logins) Failed to sign in + * @property {TeamLogLoginSuccessType} [login_success] - Available if .tag is + * login_success. (logins) Signed in + * @property {TeamLogLogoutType} [logout] - Available if .tag is logout. + * (logins) Signed out + * @property {TeamLogResellerSupportSessionEndType} + * [reseller_support_session_end] - Available if .tag is + * reseller_support_session_end. (logins) Ended reseller support session + * @property {TeamLogResellerSupportSessionStartType} + * [reseller_support_session_start] - Available if .tag is + * reseller_support_session_start. (logins) Started reseller support session + * @property {TeamLogSignInAsSessionEndType} [sign_in_as_session_end] - + * Available if .tag is sign_in_as_session_end. (logins) Ended admin sign-in-as + * session + * @property {TeamLogSignInAsSessionStartType} [sign_in_as_session_start] - + * Available if .tag is sign_in_as_session_start. (logins) Started admin + * sign-in-as session + * @property {TeamLogSsoErrorType} [sso_error] - Available if .tag is sso_error. + * (logins) Failed to sign in via SSO (deprecated, replaced by 'Failed to sign + * in') + * @property {TeamLogCreateTeamInviteLinkType} [create_team_invite_link] - + * Available if .tag is create_team_invite_link. (members) Created team invite + * link + * @property {TeamLogDeleteTeamInviteLinkType} [delete_team_invite_link] - + * Available if .tag is delete_team_invite_link. (members) Deleted team invite + * link + * @property {TeamLogMemberAddExternalIdType} [member_add_external_id] - + * Available if .tag is member_add_external_id. (members) Added an external ID + * for team member + * @property {TeamLogMemberAddNameType} [member_add_name] - Available if .tag is + * member_add_name. (members) Added team member name + * @property {TeamLogMemberChangeAdminRoleType} [member_change_admin_role] - + * Available if .tag is member_change_admin_role. (members) Changed team member + * admin role + * @property {TeamLogMemberChangeEmailType} [member_change_email] - Available if + * .tag is member_change_email. (members) Changed team member email + * @property {TeamLogMemberChangeExternalIdType} [member_change_external_id] - + * Available if .tag is member_change_external_id. (members) Changed the + * external ID for team member + * @property {TeamLogMemberChangeMembershipTypeType} + * [member_change_membership_type] - Available if .tag is + * member_change_membership_type. (members) Changed membership type + * (limited/full) of member (deprecated, no longer logged) + * @property {TeamLogMemberChangeNameType} [member_change_name] - Available if + * .tag is member_change_name. (members) Changed team member name + * @property {TeamLogMemberChangeResellerRoleType} [member_change_reseller_role] + * - Available if .tag is member_change_reseller_role. (members) Changed team + * member reseller role + * @property {TeamLogMemberChangeStatusType} [member_change_status] - Available + * if .tag is member_change_status. (members) Changed member status (invited, + * joined, suspended, etc.) + * @property {TeamLogMemberDeleteManualContactsType} + * [member_delete_manual_contacts] - Available if .tag is + * member_delete_manual_contacts. (members) Cleared manually added contacts + * @property {TeamLogMemberDeleteProfilePhotoType} [member_delete_profile_photo] + * - Available if .tag is member_delete_profile_photo. (members) Deleted team + * member profile photo + * @property {TeamLogMemberPermanentlyDeleteAccountContentsType} + * [member_permanently_delete_account_contents] - Available if .tag is + * member_permanently_delete_account_contents. (members) Permanently deleted + * contents of deleted team member account + * @property {TeamLogMemberRemoveExternalIdType} [member_remove_external_id] - + * Available if .tag is member_remove_external_id. (members) Removed the + * external ID for team member + * @property {TeamLogMemberSetProfilePhotoType} [member_set_profile_photo] - + * Available if .tag is member_set_profile_photo. (members) Set team member + * profile photo + * @property {TeamLogMemberSpaceLimitsAddCustomQuotaType} + * [member_space_limits_add_custom_quota] - Available if .tag is + * member_space_limits_add_custom_quota. (members) Set custom member space limit + * @property {TeamLogMemberSpaceLimitsChangeCustomQuotaType} + * [member_space_limits_change_custom_quota] - Available if .tag is + * member_space_limits_change_custom_quota. (members) Changed custom member + * space limit + * @property {TeamLogMemberSpaceLimitsChangeStatusType} + * [member_space_limits_change_status] - Available if .tag is + * member_space_limits_change_status. (members) Changed space limit status + * @property {TeamLogMemberSpaceLimitsRemoveCustomQuotaType} + * [member_space_limits_remove_custom_quota] - Available if .tag is + * member_space_limits_remove_custom_quota. (members) Removed custom member + * space limit + * @property {TeamLogMemberSuggestType} [member_suggest] - Available if .tag is + * member_suggest. (members) Suggested person to add to team + * @property {TeamLogMemberTransferAccountContentsType} + * [member_transfer_account_contents] - Available if .tag is + * member_transfer_account_contents. (members) Transferred contents of deleted + * member account to another member + * @property {TeamLogPendingSecondaryEmailAddedType} + * [pending_secondary_email_added] - Available if .tag is + * pending_secondary_email_added. (members) Added pending secondary email + * @property {TeamLogSecondaryEmailDeletedType} [secondary_email_deleted] - + * Available if .tag is secondary_email_deleted. (members) Deleted secondary + * email + * @property {TeamLogSecondaryEmailVerifiedType} [secondary_email_verified] - + * Available if .tag is secondary_email_verified. (members) Verified secondary + * email + * @property {TeamLogSecondaryMailsPolicyChangedType} + * [secondary_mails_policy_changed] - Available if .tag is + * secondary_mails_policy_changed. (members) Secondary mails policy changed + * @property {TeamLogBinderAddPageType} [binder_add_page] - Available if .tag is + * binder_add_page. (paper) Added Binder page (deprecated, replaced by 'Edited + * files') + * @property {TeamLogBinderAddSectionType} [binder_add_section] - Available if + * .tag is binder_add_section. (paper) Added Binder section (deprecated, + * replaced by 'Edited files') + * @property {TeamLogBinderRemovePageType} [binder_remove_page] - Available if + * .tag is binder_remove_page. (paper) Removed Binder page (deprecated, replaced + * by 'Edited files') + * @property {TeamLogBinderRemoveSectionType} [binder_remove_section] - + * Available if .tag is binder_remove_section. (paper) Removed Binder section + * (deprecated, replaced by 'Edited files') + * @property {TeamLogBinderRenamePageType} [binder_rename_page] - Available if + * .tag is binder_rename_page. (paper) Renamed Binder page (deprecated, replaced + * by 'Edited files') + * @property {TeamLogBinderRenameSectionType} [binder_rename_section] - + * Available if .tag is binder_rename_section. (paper) Renamed Binder section + * (deprecated, replaced by 'Edited files') + * @property {TeamLogBinderReorderPageType} [binder_reorder_page] - Available if + * .tag is binder_reorder_page. (paper) Reordered Binder page (deprecated, + * replaced by 'Edited files') + * @property {TeamLogBinderReorderSectionType} [binder_reorder_section] - + * Available if .tag is binder_reorder_section. (paper) Reordered Binder section + * (deprecated, replaced by 'Edited files') + * @property {TeamLogPaperContentAddMemberType} [paper_content_add_member] - + * Available if .tag is paper_content_add_member. (paper) Added users and/or + * groups to Paper doc/folder + * @property {TeamLogPaperContentAddToFolderType} [paper_content_add_to_folder] + * - Available if .tag is paper_content_add_to_folder. (paper) Added Paper + * doc/folder to folder + * @property {TeamLogPaperContentArchiveType} [paper_content_archive] - + * Available if .tag is paper_content_archive. (paper) Archived Paper doc/folder + * @property {TeamLogPaperContentCreateType} [paper_content_create] - Available + * if .tag is paper_content_create. (paper) Created Paper doc/folder + * @property {TeamLogPaperContentPermanentlyDeleteType} + * [paper_content_permanently_delete] - Available if .tag is + * paper_content_permanently_delete. (paper) Permanently deleted Paper + * doc/folder + * @property {TeamLogPaperContentRemoveFromFolderType} + * [paper_content_remove_from_folder] - Available if .tag is + * paper_content_remove_from_folder. (paper) Removed Paper doc/folder from + * folder + * @property {TeamLogPaperContentRemoveMemberType} [paper_content_remove_member] + * - Available if .tag is paper_content_remove_member. (paper) Removed users + * and/or groups from Paper doc/folder + * @property {TeamLogPaperContentRenameType} [paper_content_rename] - Available + * if .tag is paper_content_rename. (paper) Renamed Paper doc/folder + * @property {TeamLogPaperContentRestoreType} [paper_content_restore] - + * Available if .tag is paper_content_restore. (paper) Restored archived Paper + * doc/folder + * @property {TeamLogPaperDocAddCommentType} [paper_doc_add_comment] - Available + * if .tag is paper_doc_add_comment. (paper) Added Paper doc comment + * @property {TeamLogPaperDocChangeMemberRoleType} + * [paper_doc_change_member_role] - Available if .tag is + * paper_doc_change_member_role. (paper) Changed member permissions for Paper + * doc + * @property {TeamLogPaperDocChangeSharingPolicyType} + * [paper_doc_change_sharing_policy] - Available if .tag is + * paper_doc_change_sharing_policy. (paper) Changed sharing setting for Paper + * doc + * @property {TeamLogPaperDocChangeSubscriptionType} + * [paper_doc_change_subscription] - Available if .tag is + * paper_doc_change_subscription. (paper) Followed/unfollowed Paper doc + * @property {TeamLogPaperDocDeletedType} [paper_doc_deleted] - Available if + * .tag is paper_doc_deleted. (paper) Archived Paper doc (deprecated, no longer + * logged) + * @property {TeamLogPaperDocDeleteCommentType} [paper_doc_delete_comment] - + * Available if .tag is paper_doc_delete_comment. (paper) Deleted Paper doc + * comment + * @property {TeamLogPaperDocDownloadType} [paper_doc_download] - Available if + * .tag is paper_doc_download. (paper) Downloaded Paper doc in specific format + * @property {TeamLogPaperDocEditType} [paper_doc_edit] - Available if .tag is + * paper_doc_edit. (paper) Edited Paper doc + * @property {TeamLogPaperDocEditCommentType} [paper_doc_edit_comment] - + * Available if .tag is paper_doc_edit_comment. (paper) Edited Paper doc comment + * @property {TeamLogPaperDocFollowedType} [paper_doc_followed] - Available if + * .tag is paper_doc_followed. (paper) Followed Paper doc (deprecated, replaced + * by 'Followed/unfollowed Paper doc') + * @property {TeamLogPaperDocMentionType} [paper_doc_mention] - Available if + * .tag is paper_doc_mention. (paper) Mentioned user in Paper doc + * @property {TeamLogPaperDocOwnershipChangedType} [paper_doc_ownership_changed] + * - Available if .tag is paper_doc_ownership_changed. (paper) Transferred + * ownership of Paper doc + * @property {TeamLogPaperDocRequestAccessType} [paper_doc_request_access] - + * Available if .tag is paper_doc_request_access. (paper) Requested access to + * Paper doc + * @property {TeamLogPaperDocResolveCommentType} [paper_doc_resolve_comment] - + * Available if .tag is paper_doc_resolve_comment. (paper) Resolved Paper doc + * comment + * @property {TeamLogPaperDocRevertType} [paper_doc_revert] - Available if .tag + * is paper_doc_revert. (paper) Restored Paper doc to previous version + * @property {TeamLogPaperDocSlackShareType} [paper_doc_slack_share] - Available + * if .tag is paper_doc_slack_share. (paper) Shared Paper doc via Slack + * @property {TeamLogPaperDocTeamInviteType} [paper_doc_team_invite] - Available + * if .tag is paper_doc_team_invite. (paper) Shared Paper doc with users and/or + * groups (deprecated, no longer logged) + * @property {TeamLogPaperDocTrashedType} [paper_doc_trashed] - Available if + * .tag is paper_doc_trashed. (paper) Deleted Paper doc + * @property {TeamLogPaperDocUnresolveCommentType} [paper_doc_unresolve_comment] + * - Available if .tag is paper_doc_unresolve_comment. (paper) Unresolved Paper + * doc comment + * @property {TeamLogPaperDocUntrashedType} [paper_doc_untrashed] - Available if + * .tag is paper_doc_untrashed. (paper) Restored Paper doc + * @property {TeamLogPaperDocViewType} [paper_doc_view] - Available if .tag is + * paper_doc_view. (paper) Viewed Paper doc + * @property {TeamLogPaperExternalViewAllowType} [paper_external_view_allow] - + * Available if .tag is paper_external_view_allow. (paper) Changed Paper + * external sharing setting to anyone (deprecated, no longer logged) + * @property {TeamLogPaperExternalViewDefaultTeamType} + * [paper_external_view_default_team] - Available if .tag is + * paper_external_view_default_team. (paper) Changed Paper external sharing + * setting to default team (deprecated, no longer logged) + * @property {TeamLogPaperExternalViewForbidType} [paper_external_view_forbid] - + * Available if .tag is paper_external_view_forbid. (paper) Changed Paper + * external sharing setting to team-only (deprecated, no longer logged) + * @property {TeamLogPaperFolderChangeSubscriptionType} + * [paper_folder_change_subscription] - Available if .tag is + * paper_folder_change_subscription. (paper) Followed/unfollowed Paper folder + * @property {TeamLogPaperFolderDeletedType} [paper_folder_deleted] - Available + * if .tag is paper_folder_deleted. (paper) Archived Paper folder (deprecated, + * no longer logged) + * @property {TeamLogPaperFolderFollowedType} [paper_folder_followed] - + * Available if .tag is paper_folder_followed. (paper) Followed Paper folder + * (deprecated, replaced by 'Followed/unfollowed Paper folder') + * @property {TeamLogPaperFolderTeamInviteType} [paper_folder_team_invite] - + * Available if .tag is paper_folder_team_invite. (paper) Shared Paper folder + * with users and/or groups (deprecated, no longer logged) + * @property {TeamLogPaperPublishedLinkChangePermissionType} + * [paper_published_link_change_permission] - Available if .tag is + * paper_published_link_change_permission. (paper) Changed permissions for + * published doc + * @property {TeamLogPaperPublishedLinkCreateType} [paper_published_link_create] + * - Available if .tag is paper_published_link_create. (paper) Published doc + * @property {TeamLogPaperPublishedLinkDisabledType} + * [paper_published_link_disabled] - Available if .tag is + * paper_published_link_disabled. (paper) Unpublished doc + * @property {TeamLogPaperPublishedLinkViewType} [paper_published_link_view] - + * Available if .tag is paper_published_link_view. (paper) Viewed published doc + * @property {TeamLogPasswordChangeType} [password_change] - Available if .tag + * is password_change. (passwords) Changed password + * @property {TeamLogPasswordResetType} [password_reset] - Available if .tag is + * password_reset. (passwords) Reset password + * @property {TeamLogPasswordResetAllType} [password_reset_all] - Available if + * .tag is password_reset_all. (passwords) Reset all team member passwords + * @property {TeamLogClassificationCreateReportType} + * [classification_create_report] - Available if .tag is + * classification_create_report. (reports) Created Classification report + * @property {TeamLogClassificationCreateReportFailType} + * [classification_create_report_fail] - Available if .tag is + * classification_create_report_fail. (reports) Couldn't create Classification + * report + * @property {TeamLogEmmCreateExceptionsReportType} + * [emm_create_exceptions_report] - Available if .tag is + * emm_create_exceptions_report. (reports) Created EMM-excluded users report + * @property {TeamLogEmmCreateUsageReportType} [emm_create_usage_report] - + * Available if .tag is emm_create_usage_report. (reports) Created EMM mobile + * app usage report + * @property {TeamLogExportMembersReportType} [export_members_report] - + * Available if .tag is export_members_report. (reports) Created member data + * report + * @property {TeamLogExportMembersReportFailType} [export_members_report_fail] - + * Available if .tag is export_members_report_fail. (reports) Failed to create + * members data report + * @property {TeamLogExternalSharingCreateReportType} + * [external_sharing_create_report] - Available if .tag is + * external_sharing_create_report. (reports) Created External sharing report + * @property {TeamLogExternalSharingReportFailedType} + * [external_sharing_report_failed] - Available if .tag is + * external_sharing_report_failed. (reports) Couldn't create External sharing + * report + * @property {TeamLogNoExpirationLinkGenCreateReportType} + * [no_expiration_link_gen_create_report] - Available if .tag is + * no_expiration_link_gen_create_report. (reports) Report created: Links created + * with no expiration + * @property {TeamLogNoExpirationLinkGenReportFailedType} + * [no_expiration_link_gen_report_failed] - Available if .tag is + * no_expiration_link_gen_report_failed. (reports) Couldn't create report: Links + * created with no expiration + * @property {TeamLogNoPasswordLinkGenCreateReportType} + * [no_password_link_gen_create_report] - Available if .tag is + * no_password_link_gen_create_report. (reports) Report created: Links created + * without passwords + * @property {TeamLogNoPasswordLinkGenReportFailedType} + * [no_password_link_gen_report_failed] - Available if .tag is + * no_password_link_gen_report_failed. (reports) Couldn't create report: Links + * created without passwords + * @property {TeamLogNoPasswordLinkViewCreateReportType} + * [no_password_link_view_create_report] - Available if .tag is + * no_password_link_view_create_report. (reports) Report created: Views of links + * without passwords + * @property {TeamLogNoPasswordLinkViewReportFailedType} + * [no_password_link_view_report_failed] - Available if .tag is + * no_password_link_view_report_failed. (reports) Couldn't create report: Views + * of links without passwords + * @property {TeamLogOutdatedLinkViewCreateReportType} + * [outdated_link_view_create_report] - Available if .tag is + * outdated_link_view_create_report. (reports) Report created: Views of old + * links + * @property {TeamLogOutdatedLinkViewReportFailedType} + * [outdated_link_view_report_failed] - Available if .tag is + * outdated_link_view_report_failed. (reports) Couldn't create report: Views of + * old links + * @property {TeamLogPaperAdminExportStartType} [paper_admin_export_start] - + * Available if .tag is paper_admin_export_start. (reports) Exported all team + * Paper docs + * @property {TeamLogSmartSyncCreateAdminPrivilegeReportType} + * [smart_sync_create_admin_privilege_report] - Available if .tag is + * smart_sync_create_admin_privilege_report. (reports) Created Smart Sync + * non-admin devices report + * @property {TeamLogTeamActivityCreateReportType} [team_activity_create_report] + * - Available if .tag is team_activity_create_report. (reports) Created team + * activity report + * @property {TeamLogTeamActivityCreateReportFailType} + * [team_activity_create_report_fail] - Available if .tag is + * team_activity_create_report_fail. (reports) Couldn't generate team activity + * report + * @property {TeamLogCollectionShareType} [collection_share] - Available if .tag + * is collection_share. (sharing) Shared album + * @property {TeamLogFileTransfersFileAddType} [file_transfers_file_add] - + * Available if .tag is file_transfers_file_add. (sharing) Transfer files added + * @property {TeamLogFileTransfersTransferDeleteType} + * [file_transfers_transfer_delete] - Available if .tag is + * file_transfers_transfer_delete. (sharing) Deleted transfer + * @property {TeamLogFileTransfersTransferDownloadType} + * [file_transfers_transfer_download] - Available if .tag is + * file_transfers_transfer_download. (sharing) Transfer downloaded + * @property {TeamLogFileTransfersTransferSendType} + * [file_transfers_transfer_send] - Available if .tag is + * file_transfers_transfer_send. (sharing) Sent transfer + * @property {TeamLogFileTransfersTransferViewType} + * [file_transfers_transfer_view] - Available if .tag is + * file_transfers_transfer_view. (sharing) Viewed transfer + * @property {TeamLogNoteAclInviteOnlyType} [note_acl_invite_only] - Available + * if .tag is note_acl_invite_only. (sharing) Changed Paper doc to invite-only + * (deprecated, no longer logged) + * @property {TeamLogNoteAclLinkType} [note_acl_link] - Available if .tag is + * note_acl_link. (sharing) Changed Paper doc to link-accessible (deprecated, no + * longer logged) + * @property {TeamLogNoteAclTeamLinkType} [note_acl_team_link] - Available if + * .tag is note_acl_team_link. (sharing) Changed Paper doc to link-accessible + * for team (deprecated, no longer logged) + * @property {TeamLogNoteSharedType} [note_shared] - Available if .tag is + * note_shared. (sharing) Shared Paper doc (deprecated, no longer logged) + * @property {TeamLogNoteShareReceiveType} [note_share_receive] - Available if + * .tag is note_share_receive. (sharing) Shared received Paper doc (deprecated, + * no longer logged) + * @property {TeamLogOpenNoteSharedType} [open_note_shared] - Available if .tag + * is open_note_shared. (sharing) Opened shared Paper doc (deprecated, no longer + * logged) + * @property {TeamLogSfAddGroupType} [sf_add_group] - Available if .tag is + * sf_add_group. (sharing) Added team to shared folder (deprecated, no longer + * logged) + * @property {TeamLogSfAllowNonMembersToViewSharedLinksType} + * [sf_allow_non_members_to_view_shared_links] - Available if .tag is + * sf_allow_non_members_to_view_shared_links. (sharing) Allowed + * non-collaborators to view links to files in shared folder (deprecated, no + * longer logged) + * @property {TeamLogSfExternalInviteWarnType} [sf_external_invite_warn] - + * Available if .tag is sf_external_invite_warn. (sharing) Set team members to + * see warning before sharing folders outside team (deprecated, no longer + * logged) + * @property {TeamLogSfFbInviteType} [sf_fb_invite] - Available if .tag is + * sf_fb_invite. (sharing) Invited Facebook users to shared folder (deprecated, + * no longer logged) + * @property {TeamLogSfFbInviteChangeRoleType} [sf_fb_invite_change_role] - + * Available if .tag is sf_fb_invite_change_role. (sharing) Changed Facebook + * user's role in shared folder (deprecated, no longer logged) + * @property {TeamLogSfFbUninviteType} [sf_fb_uninvite] - Available if .tag is + * sf_fb_uninvite. (sharing) Uninvited Facebook user from shared folder + * (deprecated, no longer logged) + * @property {TeamLogSfInviteGroupType} [sf_invite_group] - Available if .tag is + * sf_invite_group. (sharing) Invited group to shared folder (deprecated, no + * longer logged) + * @property {TeamLogSfTeamGrantAccessType} [sf_team_grant_access] - Available + * if .tag is sf_team_grant_access. (sharing) Granted access to shared folder + * (deprecated, no longer logged) + * @property {TeamLogSfTeamInviteType} [sf_team_invite] - Available if .tag is + * sf_team_invite. (sharing) Invited team members to shared folder (deprecated, + * replaced by 'Invited user to Dropbox and added them to shared file/folder') + * @property {TeamLogSfTeamInviteChangeRoleType} [sf_team_invite_change_role] - + * Available if .tag is sf_team_invite_change_role. (sharing) Changed team + * member's role in shared folder (deprecated, no longer logged) + * @property {TeamLogSfTeamJoinType} [sf_team_join] - Available if .tag is + * sf_team_join. (sharing) Joined team member's shared folder (deprecated, no + * longer logged) + * @property {TeamLogSfTeamJoinFromOobLinkType} [sf_team_join_from_oob_link] - + * Available if .tag is sf_team_join_from_oob_link. (sharing) Joined team + * member's shared folder from link (deprecated, no longer logged) + * @property {TeamLogSfTeamUninviteType} [sf_team_uninvite] - Available if .tag + * is sf_team_uninvite. (sharing) Unshared folder with team member (deprecated, + * replaced by 'Removed invitee from shared file/folder before invite was + * accepted') + * @property {TeamLogSharedContentAddInviteesType} [shared_content_add_invitees] + * - Available if .tag is shared_content_add_invitees. (sharing) Invited user to + * Dropbox and added them to shared file/folder + * @property {TeamLogSharedContentAddLinkExpiryType} + * [shared_content_add_link_expiry] - Available if .tag is + * shared_content_add_link_expiry. (sharing) Added expiration date to link for + * shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentAddLinkPasswordType} + * [shared_content_add_link_password] - Available if .tag is + * shared_content_add_link_password. (sharing) Added password to link for shared + * file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentAddMemberType} [shared_content_add_member] - + * Available if .tag is shared_content_add_member. (sharing) Added users and/or + * groups to shared file/folder + * @property {TeamLogSharedContentChangeDownloadsPolicyType} + * [shared_content_change_downloads_policy] - Available if .tag is + * shared_content_change_downloads_policy. (sharing) Changed whether members can + * download shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentChangeInviteeRoleType} + * [shared_content_change_invitee_role] - Available if .tag is + * shared_content_change_invitee_role. (sharing) Changed access type of invitee + * to shared file/folder before invite was accepted + * @property {TeamLogSharedContentChangeLinkAudienceType} + * [shared_content_change_link_audience] - Available if .tag is + * shared_content_change_link_audience. (sharing) Changed link audience of + * shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentChangeLinkExpiryType} + * [shared_content_change_link_expiry] - Available if .tag is + * shared_content_change_link_expiry. (sharing) Changed link expiration of + * shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentChangeLinkPasswordType} + * [shared_content_change_link_password] - Available if .tag is + * shared_content_change_link_password. (sharing) Changed link password of + * shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentChangeMemberRoleType} + * [shared_content_change_member_role] - Available if .tag is + * shared_content_change_member_role. (sharing) Changed access type of shared + * file/folder member + * @property {TeamLogSharedContentChangeViewerInfoPolicyType} + * [shared_content_change_viewer_info_policy] - Available if .tag is + * shared_content_change_viewer_info_policy. (sharing) Changed whether members + * can see who viewed shared file/folder + * @property {TeamLogSharedContentClaimInvitationType} + * [shared_content_claim_invitation] - Available if .tag is + * shared_content_claim_invitation. (sharing) Acquired membership of shared + * file/folder by accepting invite + * @property {TeamLogSharedContentCopyType} [shared_content_copy] - Available if + * .tag is shared_content_copy. (sharing) Copied shared file/folder to own + * Dropbox + * @property {TeamLogSharedContentDownloadType} [shared_content_download] - + * Available if .tag is shared_content_download. (sharing) Downloaded shared + * file/folder + * @property {TeamLogSharedContentRelinquishMembershipType} + * [shared_content_relinquish_membership] - Available if .tag is + * shared_content_relinquish_membership. (sharing) Left shared file/folder + * @property {TeamLogSharedContentRemoveInviteesType} + * [shared_content_remove_invitees] - Available if .tag is + * shared_content_remove_invitees. (sharing) Removed invitee from shared + * file/folder before invite was accepted + * @property {TeamLogSharedContentRemoveLinkExpiryType} + * [shared_content_remove_link_expiry] - Available if .tag is + * shared_content_remove_link_expiry. (sharing) Removed link expiration date of + * shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentRemoveLinkPasswordType} + * [shared_content_remove_link_password] - Available if .tag is + * shared_content_remove_link_password. (sharing) Removed link password of + * shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentRemoveMemberType} + * [shared_content_remove_member] - Available if .tag is + * shared_content_remove_member. (sharing) Removed user/group from shared + * file/folder + * @property {TeamLogSharedContentRequestAccessType} + * [shared_content_request_access] - Available if .tag is + * shared_content_request_access. (sharing) Requested access to shared + * file/folder + * @property {TeamLogSharedContentRestoreInviteesType} + * [shared_content_restore_invitees] - Available if .tag is + * shared_content_restore_invitees. (sharing) Restored shared file/folder + * invitees + * @property {TeamLogSharedContentRestoreMemberType} + * [shared_content_restore_member] - Available if .tag is + * shared_content_restore_member. (sharing) Restored users and/or groups to + * membership of shared file/folder + * @property {TeamLogSharedContentUnshareType} [shared_content_unshare] - + * Available if .tag is shared_content_unshare. (sharing) Unshared file/folder + * by clearing membership + * @property {TeamLogSharedContentViewType} [shared_content_view] - Available if + * .tag is shared_content_view. (sharing) Previewed shared file/folder + * @property {TeamLogSharedFolderChangeLinkPolicyType} + * [shared_folder_change_link_policy] - Available if .tag is + * shared_folder_change_link_policy. (sharing) Changed who can access shared + * folder via link + * @property {TeamLogSharedFolderChangeMembersInheritancePolicyType} + * [shared_folder_change_members_inheritance_policy] - Available if .tag is + * shared_folder_change_members_inheritance_policy. (sharing) Changed whether + * shared folder inherits members from parent folder + * @property {TeamLogSharedFolderChangeMembersManagementPolicyType} + * [shared_folder_change_members_management_policy] - Available if .tag is + * shared_folder_change_members_management_policy. (sharing) Changed who can + * add/remove members of shared folder + * @property {TeamLogSharedFolderChangeMembersPolicyType} + * [shared_folder_change_members_policy] - Available if .tag is + * shared_folder_change_members_policy. (sharing) Changed who can become member + * of shared folder + * @property {TeamLogSharedFolderCreateType} [shared_folder_create] - Available + * if .tag is shared_folder_create. (sharing) Created shared folder + * @property {TeamLogSharedFolderDeclineInvitationType} + * [shared_folder_decline_invitation] - Available if .tag is + * shared_folder_decline_invitation. (sharing) Declined team member's invite to + * shared folder + * @property {TeamLogSharedFolderMountType} [shared_folder_mount] - Available if + * .tag is shared_folder_mount. (sharing) Added shared folder to own Dropbox + * @property {TeamLogSharedFolderNestType} [shared_folder_nest] - Available if + * .tag is shared_folder_nest. (sharing) Changed parent of shared folder + * @property {TeamLogSharedFolderTransferOwnershipType} + * [shared_folder_transfer_ownership] - Available if .tag is + * shared_folder_transfer_ownership. (sharing) Transferred ownership of shared + * folder to another member + * @property {TeamLogSharedFolderUnmountType} [shared_folder_unmount] - + * Available if .tag is shared_folder_unmount. (sharing) Deleted shared folder + * from Dropbox + * @property {TeamLogSharedLinkAddExpiryType} [shared_link_add_expiry] - + * Available if .tag is shared_link_add_expiry. (sharing) Added shared link + * expiration date + * @property {TeamLogSharedLinkChangeExpiryType} [shared_link_change_expiry] - + * Available if .tag is shared_link_change_expiry. (sharing) Changed shared link + * expiration date + * @property {TeamLogSharedLinkChangeVisibilityType} + * [shared_link_change_visibility] - Available if .tag is + * shared_link_change_visibility. (sharing) Changed visibility of shared link + * @property {TeamLogSharedLinkCopyType} [shared_link_copy] - Available if .tag + * is shared_link_copy. (sharing) Added file/folder to Dropbox from shared link + * @property {TeamLogSharedLinkCreateType} [shared_link_create] - Available if + * .tag is shared_link_create. (sharing) Created shared link + * @property {TeamLogSharedLinkDisableType} [shared_link_disable] - Available if + * .tag is shared_link_disable. (sharing) Removed shared link + * @property {TeamLogSharedLinkDownloadType} [shared_link_download] - Available + * if .tag is shared_link_download. (sharing) Downloaded file/folder from shared + * link + * @property {TeamLogSharedLinkRemoveExpiryType} [shared_link_remove_expiry] - + * Available if .tag is shared_link_remove_expiry. (sharing) Removed shared link + * expiration date + * @property {TeamLogSharedLinkSettingsAddExpirationType} + * [shared_link_settings_add_expiration] - Available if .tag is + * shared_link_settings_add_expiration. (sharing) Added an expiration date to + * the shared link + * @property {TeamLogSharedLinkSettingsAddPasswordType} + * [shared_link_settings_add_password] - Available if .tag is + * shared_link_settings_add_password. (sharing) Added a password to the shared + * link + * @property {TeamLogSharedLinkSettingsAllowDownloadDisabledType} + * [shared_link_settings_allow_download_disabled] - Available if .tag is + * shared_link_settings_allow_download_disabled. (sharing) Disabled downloads + * @property {TeamLogSharedLinkSettingsAllowDownloadEnabledType} + * [shared_link_settings_allow_download_enabled] - Available if .tag is + * shared_link_settings_allow_download_enabled. (sharing) Enabled downloads + * @property {TeamLogSharedLinkSettingsChangeAudienceType} + * [shared_link_settings_change_audience] - Available if .tag is + * shared_link_settings_change_audience. (sharing) Changed the audience of the + * shared link + * @property {TeamLogSharedLinkSettingsChangeExpirationType} + * [shared_link_settings_change_expiration] - Available if .tag is + * shared_link_settings_change_expiration. (sharing) Changed the expiration date + * of the shared link + * @property {TeamLogSharedLinkSettingsChangePasswordType} + * [shared_link_settings_change_password] - Available if .tag is + * shared_link_settings_change_password. (sharing) Changed the password of the + * shared link + * @property {TeamLogSharedLinkSettingsRemoveExpirationType} + * [shared_link_settings_remove_expiration] - Available if .tag is + * shared_link_settings_remove_expiration. (sharing) Removed the expiration date + * from the shared link + * @property {TeamLogSharedLinkSettingsRemovePasswordType} + * [shared_link_settings_remove_password] - Available if .tag is + * shared_link_settings_remove_password. (sharing) Removed the password from the + * shared link + * @property {TeamLogSharedLinkShareType} [shared_link_share] - Available if + * .tag is shared_link_share. (sharing) Added members as audience of shared link + * @property {TeamLogSharedLinkViewType} [shared_link_view] - Available if .tag + * is shared_link_view. (sharing) Opened shared link + * @property {TeamLogSharedNoteOpenedType} [shared_note_opened] - Available if + * .tag is shared_note_opened. (sharing) Opened shared Paper doc (deprecated, no + * longer logged) + * @property {TeamLogShmodelDisableDownloadsType} [shmodel_disable_downloads] - + * Available if .tag is shmodel_disable_downloads. (sharing) Disabled downloads + * for link (deprecated, no longer logged) + * @property {TeamLogShmodelEnableDownloadsType} [shmodel_enable_downloads] - + * Available if .tag is shmodel_enable_downloads. (sharing) Enabled downloads + * for link (deprecated, no longer logged) + * @property {TeamLogShmodelGroupShareType} [shmodel_group_share] - Available if + * .tag is shmodel_group_share. (sharing) Shared link with group (deprecated, no + * longer logged) + * @property {TeamLogShowcaseAccessGrantedType} [showcase_access_granted] - + * Available if .tag is showcase_access_granted. (showcase) Granted access to + * showcase + * @property {TeamLogShowcaseAddMemberType} [showcase_add_member] - Available if + * .tag is showcase_add_member. (showcase) Added member to showcase + * @property {TeamLogShowcaseArchivedType} [showcase_archived] - Available if + * .tag is showcase_archived. (showcase) Archived showcase + * @property {TeamLogShowcaseCreatedType} [showcase_created] - Available if .tag + * is showcase_created. (showcase) Created showcase + * @property {TeamLogShowcaseDeleteCommentType} [showcase_delete_comment] - + * Available if .tag is showcase_delete_comment. (showcase) Deleted showcase + * comment + * @property {TeamLogShowcaseEditedType} [showcase_edited] - Available if .tag + * is showcase_edited. (showcase) Edited showcase + * @property {TeamLogShowcaseEditCommentType} [showcase_edit_comment] - + * Available if .tag is showcase_edit_comment. (showcase) Edited showcase + * comment + * @property {TeamLogShowcaseFileAddedType} [showcase_file_added] - Available if + * .tag is showcase_file_added. (showcase) Added file to showcase + * @property {TeamLogShowcaseFileDownloadType} [showcase_file_download] - + * Available if .tag is showcase_file_download. (showcase) Downloaded file from + * showcase + * @property {TeamLogShowcaseFileRemovedType} [showcase_file_removed] - + * Available if .tag is showcase_file_removed. (showcase) Removed file from + * showcase + * @property {TeamLogShowcaseFileViewType} [showcase_file_view] - Available if + * .tag is showcase_file_view. (showcase) Viewed file in showcase + * @property {TeamLogShowcasePermanentlyDeletedType} + * [showcase_permanently_deleted] - Available if .tag is + * showcase_permanently_deleted. (showcase) Permanently deleted showcase + * @property {TeamLogShowcasePostCommentType} [showcase_post_comment] - + * Available if .tag is showcase_post_comment. (showcase) Added showcase comment + * @property {TeamLogShowcaseRemoveMemberType} [showcase_remove_member] - + * Available if .tag is showcase_remove_member. (showcase) Removed member from + * showcase + * @property {TeamLogShowcaseRenamedType} [showcase_renamed] - Available if .tag + * is showcase_renamed. (showcase) Renamed showcase + * @property {TeamLogShowcaseRequestAccessType} [showcase_request_access] - + * Available if .tag is showcase_request_access. (showcase) Requested access to + * showcase + * @property {TeamLogShowcaseResolveCommentType} [showcase_resolve_comment] - + * Available if .tag is showcase_resolve_comment. (showcase) Resolved showcase + * comment + * @property {TeamLogShowcaseRestoredType} [showcase_restored] - Available if + * .tag is showcase_restored. (showcase) Unarchived showcase + * @property {TeamLogShowcaseTrashedType} [showcase_trashed] - Available if .tag + * is showcase_trashed. (showcase) Deleted showcase + * @property {TeamLogShowcaseTrashedDeprecatedType} + * [showcase_trashed_deprecated] - Available if .tag is + * showcase_trashed_deprecated. (showcase) Deleted showcase (old version) + * (deprecated, replaced by 'Deleted showcase') + * @property {TeamLogShowcaseUnresolveCommentType} [showcase_unresolve_comment] + * - Available if .tag is showcase_unresolve_comment. (showcase) Unresolved + * showcase comment + * @property {TeamLogShowcaseUntrashedType} [showcase_untrashed] - Available if + * .tag is showcase_untrashed. (showcase) Restored showcase + * @property {TeamLogShowcaseUntrashedDeprecatedType} + * [showcase_untrashed_deprecated] - Available if .tag is + * showcase_untrashed_deprecated. (showcase) Restored showcase (old version) + * (deprecated, replaced by 'Restored showcase') + * @property {TeamLogShowcaseViewType} [showcase_view] - Available if .tag is + * showcase_view. (showcase) Viewed showcase + * @property {TeamLogSsoAddCertType} [sso_add_cert] - Available if .tag is + * sso_add_cert. (sso) Added X.509 certificate for SSO + * @property {TeamLogSsoAddLoginUrlType} [sso_add_login_url] - Available if .tag + * is sso_add_login_url. (sso) Added sign-in URL for SSO + * @property {TeamLogSsoAddLogoutUrlType} [sso_add_logout_url] - Available if + * .tag is sso_add_logout_url. (sso) Added sign-out URL for SSO + * @property {TeamLogSsoChangeCertType} [sso_change_cert] - Available if .tag is + * sso_change_cert. (sso) Changed X.509 certificate for SSO + * @property {TeamLogSsoChangeLoginUrlType} [sso_change_login_url] - Available + * if .tag is sso_change_login_url. (sso) Changed sign-in URL for SSO + * @property {TeamLogSsoChangeLogoutUrlType} [sso_change_logout_url] - Available + * if .tag is sso_change_logout_url. (sso) Changed sign-out URL for SSO + * @property {TeamLogSsoChangeSamlIdentityModeType} + * [sso_change_saml_identity_mode] - Available if .tag is + * sso_change_saml_identity_mode. (sso) Changed SAML identity mode for SSO + * @property {TeamLogSsoRemoveCertType} [sso_remove_cert] - Available if .tag is + * sso_remove_cert. (sso) Removed X.509 certificate for SSO + * @property {TeamLogSsoRemoveLoginUrlType} [sso_remove_login_url] - Available + * if .tag is sso_remove_login_url. (sso) Removed sign-in URL for SSO + * @property {TeamLogSsoRemoveLogoutUrlType} [sso_remove_logout_url] - Available + * if .tag is sso_remove_logout_url. (sso) Removed sign-out URL for SSO + * @property {TeamLogTeamFolderChangeStatusType} [team_folder_change_status] - + * Available if .tag is team_folder_change_status. (team_folders) Changed + * archival status of team folder + * @property {TeamLogTeamFolderCreateType} [team_folder_create] - Available if + * .tag is team_folder_create. (team_folders) Created team folder in active + * status + * @property {TeamLogTeamFolderDowngradeType} [team_folder_downgrade] - + * Available if .tag is team_folder_downgrade. (team_folders) Downgraded team + * folder to regular shared folder + * @property {TeamLogTeamFolderPermanentlyDeleteType} + * [team_folder_permanently_delete] - Available if .tag is + * team_folder_permanently_delete. (team_folders) Permanently deleted archived + * team folder + * @property {TeamLogTeamFolderRenameType} [team_folder_rename] - Available if + * .tag is team_folder_rename. (team_folders) Renamed active/archived team + * folder + * @property {TeamLogTeamSelectiveSyncSettingsChangedType} + * [team_selective_sync_settings_changed] - Available if .tag is + * team_selective_sync_settings_changed. (team_folders) Changed sync default + * @property {TeamLogAccountCaptureChangePolicyType} + * [account_capture_change_policy] - Available if .tag is + * account_capture_change_policy. (team_policies) Changed account capture + * setting on team domain + * @property {TeamLogAdminEmailRemindersChangedType} + * [admin_email_reminders_changed] - Available if .tag is + * admin_email_reminders_changed. (team_policies) Changed admin reminder + * settings for requests to join the team + * @property {TeamLogAllowDownloadDisabledType} [allow_download_disabled] - + * Available if .tag is allow_download_disabled. (team_policies) Disabled + * downloads (deprecated, no longer logged) + * @property {TeamLogAllowDownloadEnabledType} [allow_download_enabled] - + * Available if .tag is allow_download_enabled. (team_policies) Enabled + * downloads (deprecated, no longer logged) + * @property {TeamLogAppPermissionsChangedType} [app_permissions_changed] - + * Available if .tag is app_permissions_changed. (team_policies) Changed app + * permissions + * @property {TeamLogCameraUploadsPolicyChangedType} + * [camera_uploads_policy_changed] - Available if .tag is + * camera_uploads_policy_changed. (team_policies) Changed camera uploads setting + * for team + * @property {TeamLogCaptureTranscriptPolicyChangedType} + * [capture_transcript_policy_changed] - Available if .tag is + * capture_transcript_policy_changed. (team_policies) Changed Capture + * transcription policy for team + * @property {TeamLogClassificationChangePolicyType} + * [classification_change_policy] - Available if .tag is + * classification_change_policy. (team_policies) Changed classification policy + * for team + * @property {TeamLogComputerBackupPolicyChangedType} + * [computer_backup_policy_changed] - Available if .tag is + * computer_backup_policy_changed. (team_policies) Changed computer backup + * policy for team + * @property {TeamLogContentAdministrationPolicyChangedType} + * [content_administration_policy_changed] - Available if .tag is + * content_administration_policy_changed. (team_policies) Changed content + * management setting + * @property {TeamLogDataPlacementRestrictionChangePolicyType} + * [data_placement_restriction_change_policy] - Available if .tag is + * data_placement_restriction_change_policy. (team_policies) Set restrictions on + * data center locations where team data resides + * @property {TeamLogDataPlacementRestrictionSatisfyPolicyType} + * [data_placement_restriction_satisfy_policy] - Available if .tag is + * data_placement_restriction_satisfy_policy. (team_policies) Completed + * restrictions on data center locations where team data resides + * @property {TeamLogDeviceApprovalsAddExceptionType} + * [device_approvals_add_exception] - Available if .tag is + * device_approvals_add_exception. (team_policies) Added members to device + * approvals exception list + * @property {TeamLogDeviceApprovalsChangeDesktopPolicyType} + * [device_approvals_change_desktop_policy] - Available if .tag is + * device_approvals_change_desktop_policy. (team_policies) Set/removed limit on + * number of computers member can link to team Dropbox account + * @property {TeamLogDeviceApprovalsChangeMobilePolicyType} + * [device_approvals_change_mobile_policy] - Available if .tag is + * device_approvals_change_mobile_policy. (team_policies) Set/removed limit on + * number of mobile devices member can link to team Dropbox account + * @property {TeamLogDeviceApprovalsChangeOverageActionType} + * [device_approvals_change_overage_action] - Available if .tag is + * device_approvals_change_overage_action. (team_policies) Changed device + * approvals setting when member is over limit + * @property {TeamLogDeviceApprovalsChangeUnlinkActionType} + * [device_approvals_change_unlink_action] - Available if .tag is + * device_approvals_change_unlink_action. (team_policies) Changed device + * approvals setting when member unlinks approved device + * @property {TeamLogDeviceApprovalsRemoveExceptionType} + * [device_approvals_remove_exception] - Available if .tag is + * device_approvals_remove_exception. (team_policies) Removed members from + * device approvals exception list + * @property {TeamLogDirectoryRestrictionsAddMembersType} + * [directory_restrictions_add_members] - Available if .tag is + * directory_restrictions_add_members. (team_policies) Added members to + * directory restrictions list + * @property {TeamLogDirectoryRestrictionsRemoveMembersType} + * [directory_restrictions_remove_members] - Available if .tag is + * directory_restrictions_remove_members. (team_policies) Removed members from + * directory restrictions list + * @property {TeamLogDropboxPasswordsPolicyChangedType} + * [dropbox_passwords_policy_changed] - Available if .tag is + * dropbox_passwords_policy_changed. (team_policies) Changed Dropbox Passwords + * policy for team + * @property {TeamLogEmailIngestPolicyChangedType} [email_ingest_policy_changed] + * - Available if .tag is email_ingest_policy_changed. (team_policies) Changed + * email to Dropbox policy for team + * @property {TeamLogEmmAddExceptionType} [emm_add_exception] - Available if + * .tag is emm_add_exception. (team_policies) Added members to EMM exception + * list + * @property {TeamLogEmmChangePolicyType} [emm_change_policy] - Available if + * .tag is emm_change_policy. (team_policies) Enabled/disabled enterprise + * mobility management for members + * @property {TeamLogEmmRemoveExceptionType} [emm_remove_exception] - Available + * if .tag is emm_remove_exception. (team_policies) Removed members from EMM + * exception list + * @property {TeamLogExtendedVersionHistoryChangePolicyType} + * [extended_version_history_change_policy] - Available if .tag is + * extended_version_history_change_policy. (team_policies) Accepted/opted out of + * extended version history + * @property {TeamLogExternalDriveBackupPolicyChangedType} + * [external_drive_backup_policy_changed] - Available if .tag is + * external_drive_backup_policy_changed. (team_policies) Changed external drive + * backup policy for team + * @property {TeamLogFileCommentsChangePolicyType} [file_comments_change_policy] + * - Available if .tag is file_comments_change_policy. (team_policies) + * Enabled/disabled commenting on team files + * @property {TeamLogFileLockingPolicyChangedType} [file_locking_policy_changed] + * - Available if .tag is file_locking_policy_changed. (team_policies) Changed + * file locking policy for team + * @property {TeamLogFileProviderMigrationPolicyChangedType} + * [file_provider_migration_policy_changed] - Available if .tag is + * file_provider_migration_policy_changed. (team_policies) Changed File Provider + * Migration policy for team + * @property {TeamLogFileRequestsChangePolicyType} [file_requests_change_policy] + * - Available if .tag is file_requests_change_policy. (team_policies) + * Enabled/disabled file requests + * @property {TeamLogFileRequestsEmailsEnabledType} + * [file_requests_emails_enabled] - Available if .tag is + * file_requests_emails_enabled. (team_policies) Enabled file request emails for + * everyone (deprecated, no longer logged) + * @property {TeamLogFileRequestsEmailsRestrictedToTeamOnlyType} + * [file_requests_emails_restricted_to_team_only] - Available if .tag is + * file_requests_emails_restricted_to_team_only. (team_policies) Enabled file + * request emails for team (deprecated, no longer logged) + * @property {TeamLogFileTransfersPolicyChangedType} + * [file_transfers_policy_changed] - Available if .tag is + * file_transfers_policy_changed. (team_policies) Changed file transfers policy + * for team + * @property {TeamLogFolderLinkRestrictionPolicyChangedType} + * [folder_link_restriction_policy_changed] - Available if .tag is + * folder_link_restriction_policy_changed. (team_policies) Changed folder link + * restrictions policy for team + * @property {TeamLogGoogleSsoChangePolicyType} [google_sso_change_policy] - + * Available if .tag is google_sso_change_policy. (team_policies) + * Enabled/disabled Google single sign-on for team + * @property {TeamLogGroupUserManagementChangePolicyType} + * [group_user_management_change_policy] - Available if .tag is + * group_user_management_change_policy. (team_policies) Changed who can create + * groups + * @property {TeamLogIntegrationPolicyChangedType} [integration_policy_changed] + * - Available if .tag is integration_policy_changed. (team_policies) Changed + * integration policy for team + * @property {TeamLogInviteAcceptanceEmailPolicyChangedType} + * [invite_acceptance_email_policy_changed] - Available if .tag is + * invite_acceptance_email_policy_changed. (team_policies) Changed invite accept + * email policy for team + * @property {TeamLogMemberRequestsChangePolicyType} + * [member_requests_change_policy] - Available if .tag is + * member_requests_change_policy. (team_policies) Changed whether users can find + * team when not invited + * @property {TeamLogMemberSendInvitePolicyChangedType} + * [member_send_invite_policy_changed] - Available if .tag is + * member_send_invite_policy_changed. (team_policies) Changed member send invite + * policy for team + * @property {TeamLogMemberSpaceLimitsAddExceptionType} + * [member_space_limits_add_exception] - Available if .tag is + * member_space_limits_add_exception. (team_policies) Added members to member + * space limit exception list + * @property {TeamLogMemberSpaceLimitsChangeCapsTypePolicyType} + * [member_space_limits_change_caps_type_policy] - Available if .tag is + * member_space_limits_change_caps_type_policy. (team_policies) Changed member + * space limit type for team + * @property {TeamLogMemberSpaceLimitsChangePolicyType} + * [member_space_limits_change_policy] - Available if .tag is + * member_space_limits_change_policy. (team_policies) Changed team default + * member space limit + * @property {TeamLogMemberSpaceLimitsRemoveExceptionType} + * [member_space_limits_remove_exception] - Available if .tag is + * member_space_limits_remove_exception. (team_policies) Removed members from + * member space limit exception list + * @property {TeamLogMemberSuggestionsChangePolicyType} + * [member_suggestions_change_policy] - Available if .tag is + * member_suggestions_change_policy. (team_policies) Enabled/disabled option for + * team members to suggest people to add to team + * @property {TeamLogMicrosoftOfficeAddinChangePolicyType} + * [microsoft_office_addin_change_policy] - Available if .tag is + * microsoft_office_addin_change_policy. (team_policies) Enabled/disabled + * Microsoft Office add-in + * @property {TeamLogNetworkControlChangePolicyType} + * [network_control_change_policy] - Available if .tag is + * network_control_change_policy. (team_policies) Enabled/disabled network + * control + * @property {TeamLogPaperChangeDeploymentPolicyType} + * [paper_change_deployment_policy] - Available if .tag is + * paper_change_deployment_policy. (team_policies) Changed whether Dropbox + * Paper, when enabled, is deployed to all members or to specific members + * @property {TeamLogPaperChangeMemberLinkPolicyType} + * [paper_change_member_link_policy] - Available if .tag is + * paper_change_member_link_policy. (team_policies) Changed whether non-members + * can view Paper docs with link (deprecated, no longer logged) + * @property {TeamLogPaperChangeMemberPolicyType} [paper_change_member_policy] - + * Available if .tag is paper_change_member_policy. (team_policies) Changed + * whether members can share Paper docs outside team, and if docs are accessible + * only by team members or anyone by default + * @property {TeamLogPaperChangePolicyType} [paper_change_policy] - Available if + * .tag is paper_change_policy. (team_policies) Enabled/disabled Dropbox Paper + * for team + * @property {TeamLogPaperDefaultFolderPolicyChangedType} + * [paper_default_folder_policy_changed] - Available if .tag is + * paper_default_folder_policy_changed. (team_policies) Changed Paper Default + * Folder Policy setting for team + * @property {TeamLogPaperDesktopPolicyChangedType} + * [paper_desktop_policy_changed] - Available if .tag is + * paper_desktop_policy_changed. (team_policies) Enabled/disabled Paper Desktop + * for team + * @property {TeamLogPaperEnabledUsersGroupAdditionType} + * [paper_enabled_users_group_addition] - Available if .tag is + * paper_enabled_users_group_addition. (team_policies) Added users to + * Paper-enabled users list + * @property {TeamLogPaperEnabledUsersGroupRemovalType} + * [paper_enabled_users_group_removal] - Available if .tag is + * paper_enabled_users_group_removal. (team_policies) Removed users from + * Paper-enabled users list + * @property {TeamLogPasswordStrengthRequirementsChangePolicyType} + * [password_strength_requirements_change_policy] - Available if .tag is + * password_strength_requirements_change_policy. (team_policies) Changed team + * password strength requirements + * @property {TeamLogPermanentDeleteChangePolicyType} + * [permanent_delete_change_policy] - Available if .tag is + * permanent_delete_change_policy. (team_policies) Enabled/disabled ability of + * team members to permanently delete content + * @property {TeamLogResellerSupportChangePolicyType} + * [reseller_support_change_policy] - Available if .tag is + * reseller_support_change_policy. (team_policies) Enabled/disabled reseller + * support + * @property {TeamLogRewindPolicyChangedType} [rewind_policy_changed] - + * Available if .tag is rewind_policy_changed. (team_policies) Changed Rewind + * policy for team + * @property {TeamLogSendForSignaturePolicyChangedType} + * [send_for_signature_policy_changed] - Available if .tag is + * send_for_signature_policy_changed. (team_policies) Changed send for signature + * policy for team + * @property {TeamLogSharingChangeFolderJoinPolicyType} + * [sharing_change_folder_join_policy] - Available if .tag is + * sharing_change_folder_join_policy. (team_policies) Changed whether team + * members can join shared folders owned outside team + * @property {TeamLogSharingChangeLinkAllowChangeExpirationPolicyType} + * [sharing_change_link_allow_change_expiration_policy] - Available if .tag is + * sharing_change_link_allow_change_expiration_policy. (team_policies) Changed + * the allow remove or change expiration policy for the links shared outside of + * the team + * @property {TeamLogSharingChangeLinkDefaultExpirationPolicyType} + * [sharing_change_link_default_expiration_policy] - Available if .tag is + * sharing_change_link_default_expiration_policy. (team_policies) Changed the + * default expiration for the links shared outside of the team + * @property {TeamLogSharingChangeLinkEnforcePasswordPolicyType} + * [sharing_change_link_enforce_password_policy] - Available if .tag is + * sharing_change_link_enforce_password_policy. (team_policies) Changed the + * password requirement for the links shared outside of the team + * @property {TeamLogSharingChangeLinkPolicyType} [sharing_change_link_policy] - + * Available if .tag is sharing_change_link_policy. (team_policies) Changed + * whether members can share links outside team, and if links are accessible + * only by team members or anyone by default + * @property {TeamLogSharingChangeMemberPolicyType} + * [sharing_change_member_policy] - Available if .tag is + * sharing_change_member_policy. (team_policies) Changed whether members can + * share files/folders outside team + * @property {TeamLogShowcaseChangeDownloadPolicyType} + * [showcase_change_download_policy] - Available if .tag is + * showcase_change_download_policy. (team_policies) Enabled/disabled downloading + * files from Dropbox Showcase for team + * @property {TeamLogShowcaseChangeEnabledPolicyType} + * [showcase_change_enabled_policy] - Available if .tag is + * showcase_change_enabled_policy. (team_policies) Enabled/disabled Dropbox + * Showcase for team + * @property {TeamLogShowcaseChangeExternalSharingPolicyType} + * [showcase_change_external_sharing_policy] - Available if .tag is + * showcase_change_external_sharing_policy. (team_policies) Enabled/disabled + * sharing Dropbox Showcase externally for team + * @property {TeamLogSmarterSmartSyncPolicyChangedType} + * [smarter_smart_sync_policy_changed] - Available if .tag is + * smarter_smart_sync_policy_changed. (team_policies) Changed automatic Smart + * Sync setting for team + * @property {TeamLogSmartSyncChangePolicyType} [smart_sync_change_policy] - + * Available if .tag is smart_sync_change_policy. (team_policies) Changed + * default Smart Sync setting for team members + * @property {TeamLogSmartSyncNotOptOutType} [smart_sync_not_opt_out] - + * Available if .tag is smart_sync_not_opt_out. (team_policies) Opted team into + * Smart Sync + * @property {TeamLogSmartSyncOptOutType} [smart_sync_opt_out] - Available if + * .tag is smart_sync_opt_out. (team_policies) Opted team out of Smart Sync + * @property {TeamLogSsoChangePolicyType} [sso_change_policy] - Available if + * .tag is sso_change_policy. (team_policies) Changed single sign-on setting for + * team + * @property {TeamLogTeamBrandingPolicyChangedType} + * [team_branding_policy_changed] - Available if .tag is + * team_branding_policy_changed. (team_policies) Changed team branding policy + * for team + * @property {TeamLogTeamExtensionsPolicyChangedType} + * [team_extensions_policy_changed] - Available if .tag is + * team_extensions_policy_changed. (team_policies) Changed App Integrations + * setting for team + * @property {TeamLogTeamSelectiveSyncPolicyChangedType} + * [team_selective_sync_policy_changed] - Available if .tag is + * team_selective_sync_policy_changed. (team_policies) Enabled/disabled Team + * Selective Sync for team + * @property {TeamLogTeamSharingWhitelistSubjectsChangedType} + * [team_sharing_whitelist_subjects_changed] - Available if .tag is + * team_sharing_whitelist_subjects_changed. (team_policies) Edited the approved + * list for sharing externally + * @property {TeamLogTfaAddExceptionType} [tfa_add_exception] - Available if + * .tag is tfa_add_exception. (team_policies) Added members to two factor + * authentication exception list + * @property {TeamLogTfaChangePolicyType} [tfa_change_policy] - Available if + * .tag is tfa_change_policy. (team_policies) Changed two-step verification + * setting for team + * @property {TeamLogTfaRemoveExceptionType} [tfa_remove_exception] - Available + * if .tag is tfa_remove_exception. (team_policies) Removed members from two + * factor authentication exception list + * @property {TeamLogTwoAccountChangePolicyType} [two_account_change_policy] - + * Available if .tag is two_account_change_policy. (team_policies) + * Enabled/disabled option for members to link personal Dropbox account and team + * account to same computer + * @property {TeamLogViewerInfoPolicyChangedType} [viewer_info_policy_changed] - + * Available if .tag is viewer_info_policy_changed. (team_policies) Changed team + * policy for viewer info + * @property {TeamLogWatermarkingPolicyChangedType} + * [watermarking_policy_changed] - Available if .tag is + * watermarking_policy_changed. (team_policies) Changed watermarking policy for + * team + * @property {TeamLogWebSessionsChangeActiveSessionLimitType} + * [web_sessions_change_active_session_limit] - Available if .tag is + * web_sessions_change_active_session_limit. (team_policies) Changed limit on + * active sessions per member + * @property {TeamLogWebSessionsChangeFixedLengthPolicyType} + * [web_sessions_change_fixed_length_policy] - Available if .tag is + * web_sessions_change_fixed_length_policy. (team_policies) Changed how long + * members can stay signed in to Dropbox.com + * @property {TeamLogWebSessionsChangeIdleLengthPolicyType} + * [web_sessions_change_idle_length_policy] - Available if .tag is + * web_sessions_change_idle_length_policy. (team_policies) Changed how long team + * members can be idle while signed in to Dropbox.com + * @property {TeamLogDataResidencyMigrationRequestSuccessfulType} + * [data_residency_migration_request_successful] - Available if .tag is + * data_residency_migration_request_successful. (team_profile) Requested data + * residency migration for team data + * @property {TeamLogDataResidencyMigrationRequestUnsuccessfulType} + * [data_residency_migration_request_unsuccessful] - Available if .tag is + * data_residency_migration_request_unsuccessful. (team_profile) Request for + * data residency migration for team data has failed + * @property {TeamLogTeamMergeFromType} [team_merge_from] - Available if .tag is + * team_merge_from. (team_profile) Merged another team into this team + * @property {TeamLogTeamMergeToType} [team_merge_to] - Available if .tag is + * team_merge_to. (team_profile) Merged this team into another team + * @property {TeamLogTeamProfileAddBackgroundType} [team_profile_add_background] + * - Available if .tag is team_profile_add_background. (team_profile) Added team + * background to display on shared link headers + * @property {TeamLogTeamProfileAddLogoType} [team_profile_add_logo] - Available + * if .tag is team_profile_add_logo. (team_profile) Added team logo to display + * on shared link headers + * @property {TeamLogTeamProfileChangeBackgroundType} + * [team_profile_change_background] - Available if .tag is + * team_profile_change_background. (team_profile) Changed team background + * displayed on shared link headers + * @property {TeamLogTeamProfileChangeDefaultLanguageType} + * [team_profile_change_default_language] - Available if .tag is + * team_profile_change_default_language. (team_profile) Changed default language + * for team + * @property {TeamLogTeamProfileChangeLogoType} [team_profile_change_logo] - + * Available if .tag is team_profile_change_logo. (team_profile) Changed team + * logo displayed on shared link headers + * @property {TeamLogTeamProfileChangeNameType} [team_profile_change_name] - + * Available if .tag is team_profile_change_name. (team_profile) Changed team + * name + * @property {TeamLogTeamProfileRemoveBackgroundType} + * [team_profile_remove_background] - Available if .tag is + * team_profile_remove_background. (team_profile) Removed team background + * displayed on shared link headers + * @property {TeamLogTeamProfileRemoveLogoType} [team_profile_remove_logo] - + * Available if .tag is team_profile_remove_logo. (team_profile) Removed team + * logo displayed on shared link headers + * @property {TeamLogTfaAddBackupPhoneType} [tfa_add_backup_phone] - Available + * if .tag is tfa_add_backup_phone. (tfa) Added backup phone for two-step + * verification + * @property {TeamLogTfaAddSecurityKeyType} [tfa_add_security_key] - Available + * if .tag is tfa_add_security_key. (tfa) Added security key for two-step + * verification + * @property {TeamLogTfaChangeBackupPhoneType} [tfa_change_backup_phone] - + * Available if .tag is tfa_change_backup_phone. (tfa) Changed backup phone for + * two-step verification + * @property {TeamLogTfaChangeStatusType} [tfa_change_status] - Available if + * .tag is tfa_change_status. (tfa) Enabled/disabled/changed two-step + * verification setting + * @property {TeamLogTfaRemoveBackupPhoneType} [tfa_remove_backup_phone] - + * Available if .tag is tfa_remove_backup_phone. (tfa) Removed backup phone for + * two-step verification + * @property {TeamLogTfaRemoveSecurityKeyType} [tfa_remove_security_key] - + * Available if .tag is tfa_remove_security_key. (tfa) Removed security key for + * two-step verification + * @property {TeamLogTfaResetType} [tfa_reset] - Available if .tag is tfa_reset. + * (tfa) Reset two-step verification for team member + * @property {TeamLogChangedEnterpriseAdminRoleType} + * [changed_enterprise_admin_role] - Available if .tag is + * changed_enterprise_admin_role. (trusted_teams) Changed enterprise admin role + * @property {TeamLogChangedEnterpriseConnectedTeamStatusType} + * [changed_enterprise_connected_team_status] - Available if .tag is + * changed_enterprise_connected_team_status. (trusted_teams) Changed + * enterprise-connected team status + * @property {TeamLogEndedEnterpriseAdminSessionType} + * [ended_enterprise_admin_session] - Available if .tag is + * ended_enterprise_admin_session. (trusted_teams) Ended enterprise admin + * session + * @property {TeamLogEndedEnterpriseAdminSessionDeprecatedType} + * [ended_enterprise_admin_session_deprecated] - Available if .tag is + * ended_enterprise_admin_session_deprecated. (trusted_teams) Ended enterprise + * admin session (deprecated, replaced by 'Ended enterprise admin session') + * @property {TeamLogEnterpriseSettingsLockingType} + * [enterprise_settings_locking] - Available if .tag is + * enterprise_settings_locking. (trusted_teams) Changed who can update a setting + * @property {TeamLogGuestAdminChangeStatusType} [guest_admin_change_status] - + * Available if .tag is guest_admin_change_status. (trusted_teams) Changed guest + * team admin status + * @property {TeamLogStartedEnterpriseAdminSessionType} + * [started_enterprise_admin_session] - Available if .tag is + * started_enterprise_admin_session. (trusted_teams) Started enterprise admin + * session + * @property {TeamLogTeamMergeRequestAcceptedType} [team_merge_request_accepted] + * - Available if .tag is team_merge_request_accepted. (trusted_teams) Accepted + * a team merge request + * @property {TeamLogTeamMergeRequestAcceptedShownToPrimaryTeamType} + * [team_merge_request_accepted_shown_to_primary_team] - Available if .tag is + * team_merge_request_accepted_shown_to_primary_team. (trusted_teams) Accepted a + * team merge request (deprecated, replaced by 'Accepted a team merge request') + * @property {TeamLogTeamMergeRequestAcceptedShownToSecondaryTeamType} + * [team_merge_request_accepted_shown_to_secondary_team] - Available if .tag is + * team_merge_request_accepted_shown_to_secondary_team. (trusted_teams) Accepted + * a team merge request (deprecated, replaced by 'Accepted a team merge + * request') + * @property {TeamLogTeamMergeRequestAutoCanceledType} + * [team_merge_request_auto_canceled] - Available if .tag is + * team_merge_request_auto_canceled. (trusted_teams) Automatically canceled team + * merge request + * @property {TeamLogTeamMergeRequestCanceledType} [team_merge_request_canceled] + * - Available if .tag is team_merge_request_canceled. (trusted_teams) Canceled + * a team merge request + * @property {TeamLogTeamMergeRequestCanceledShownToPrimaryTeamType} + * [team_merge_request_canceled_shown_to_primary_team] - Available if .tag is + * team_merge_request_canceled_shown_to_primary_team. (trusted_teams) Canceled a + * team merge request (deprecated, replaced by 'Canceled a team merge request') + * @property {TeamLogTeamMergeRequestCanceledShownToSecondaryTeamType} + * [team_merge_request_canceled_shown_to_secondary_team] - Available if .tag is + * team_merge_request_canceled_shown_to_secondary_team. (trusted_teams) Canceled + * a team merge request (deprecated, replaced by 'Canceled a team merge + * request') + * @property {TeamLogTeamMergeRequestExpiredType} [team_merge_request_expired] - + * Available if .tag is team_merge_request_expired. (trusted_teams) Team merge + * request expired + * @property {TeamLogTeamMergeRequestExpiredShownToPrimaryTeamType} + * [team_merge_request_expired_shown_to_primary_team] - Available if .tag is + * team_merge_request_expired_shown_to_primary_team. (trusted_teams) Team merge + * request expired (deprecated, replaced by 'Team merge request expired') + * @property {TeamLogTeamMergeRequestExpiredShownToSecondaryTeamType} + * [team_merge_request_expired_shown_to_secondary_team] - Available if .tag is + * team_merge_request_expired_shown_to_secondary_team. (trusted_teams) Team + * merge request expired (deprecated, replaced by 'Team merge request expired') + * @property {TeamLogTeamMergeRequestRejectedShownToPrimaryTeamType} + * [team_merge_request_rejected_shown_to_primary_team] - Available if .tag is + * team_merge_request_rejected_shown_to_primary_team. (trusted_teams) Rejected a + * team merge request (deprecated, no longer logged) + * @property {TeamLogTeamMergeRequestRejectedShownToSecondaryTeamType} + * [team_merge_request_rejected_shown_to_secondary_team] - Available if .tag is + * team_merge_request_rejected_shown_to_secondary_team. (trusted_teams) Rejected + * a team merge request (deprecated, no longer logged) + * @property {TeamLogTeamMergeRequestReminderType} [team_merge_request_reminder] + * - Available if .tag is team_merge_request_reminder. (trusted_teams) Sent a + * team merge request reminder + * @property {TeamLogTeamMergeRequestReminderShownToPrimaryTeamType} + * [team_merge_request_reminder_shown_to_primary_team] - Available if .tag is + * team_merge_request_reminder_shown_to_primary_team. (trusted_teams) Sent a + * team merge request reminder (deprecated, replaced by 'Sent a team merge + * request reminder') + * @property {TeamLogTeamMergeRequestReminderShownToSecondaryTeamType} + * [team_merge_request_reminder_shown_to_secondary_team] - Available if .tag is + * team_merge_request_reminder_shown_to_secondary_team. (trusted_teams) Sent a + * team merge request reminder (deprecated, replaced by 'Sent a team merge + * request reminder') + * @property {TeamLogTeamMergeRequestRevokedType} [team_merge_request_revoked] - + * Available if .tag is team_merge_request_revoked. (trusted_teams) Canceled the + * team merge + * @property {TeamLogTeamMergeRequestSentShownToPrimaryTeamType} + * [team_merge_request_sent_shown_to_primary_team] - Available if .tag is + * team_merge_request_sent_shown_to_primary_team. (trusted_teams) Requested to + * merge their Dropbox team into yours + * @property {TeamLogTeamMergeRequestSentShownToSecondaryTeamType} + * [team_merge_request_sent_shown_to_secondary_team] - Available if .tag is + * team_merge_request_sent_shown_to_secondary_team. (trusted_teams) Requested to + * merge your team into another Dropbox team + * @property {('admin_alerting_alert_state_changed'|'admin_alerting_changed_alert_config'|'admin_alerting_triggered_alert'|'app_blocked_by_permissions'|'app_link_team'|'app_link_user'|'app_unlink_team'|'app_unlink_user'|'integration_connected'|'integration_disconnected'|'file_add_comment'|'file_change_comment_subscription'|'file_delete_comment'|'file_edit_comment'|'file_like_comment'|'file_resolve_comment'|'file_unlike_comment'|'file_unresolve_comment'|'governance_policy_add_folders'|'governance_policy_add_folder_failed'|'governance_policy_content_disposed'|'governance_policy_create'|'governance_policy_delete'|'governance_policy_edit_details'|'governance_policy_edit_duration'|'governance_policy_export_created'|'governance_policy_export_removed'|'governance_policy_remove_folders'|'governance_policy_report_created'|'governance_policy_zip_part_downloaded'|'legal_holds_activate_a_hold'|'legal_holds_add_members'|'legal_holds_change_hold_details'|'legal_holds_change_hold_name'|'legal_holds_export_a_hold'|'legal_holds_export_cancelled'|'legal_holds_export_downloaded'|'legal_holds_export_removed'|'legal_holds_release_a_hold'|'legal_holds_remove_members'|'legal_holds_report_a_hold'|'device_change_ip_desktop'|'device_change_ip_mobile'|'device_change_ip_web'|'device_delete_on_unlink_fail'|'device_delete_on_unlink_success'|'device_link_fail'|'device_link_success'|'device_management_disabled'|'device_management_enabled'|'device_sync_backup_status_changed'|'device_unlink'|'dropbox_passwords_exported'|'dropbox_passwords_new_device_enrolled'|'emm_refresh_auth_token'|'external_drive_backup_eligibility_status_checked'|'external_drive_backup_status_changed'|'account_capture_change_availability'|'account_capture_migrate_account'|'account_capture_notification_emails_sent'|'account_capture_relinquish_account'|'disabled_domain_invites'|'domain_invites_approve_request_to_join_team'|'domain_invites_decline_request_to_join_team'|'domain_invites_email_existing_users'|'domain_invites_request_to_join_team'|'domain_invites_set_invite_new_user_pref_to_no'|'domain_invites_set_invite_new_user_pref_to_yes'|'domain_verification_add_domain_fail'|'domain_verification_add_domain_success'|'domain_verification_remove_domain'|'enabled_domain_invites'|'apply_naming_convention'|'create_folder'|'file_add'|'file_copy'|'file_delete'|'file_download'|'file_edit'|'file_get_copy_reference'|'file_locking_lock_status_changed'|'file_move'|'file_permanently_delete'|'file_preview'|'file_rename'|'file_restore'|'file_revert'|'file_rollback_changes'|'file_save_copy_reference'|'folder_overview_description_changed'|'folder_overview_item_pinned'|'folder_overview_item_unpinned'|'object_label_added'|'object_label_removed'|'object_label_updated_value'|'organize_folder_with_tidy'|'rewind_folder'|'undo_naming_convention'|'undo_organize_folder_with_tidy'|'user_tags_added'|'user_tags_removed'|'email_ingest_receive_file'|'file_request_change'|'file_request_close'|'file_request_create'|'file_request_delete'|'file_request_receive_file'|'group_add_external_id'|'group_add_member'|'group_change_external_id'|'group_change_management_type'|'group_change_member_role'|'group_create'|'group_delete'|'group_description_updated'|'group_join_policy_updated'|'group_moved'|'group_remove_external_id'|'group_remove_member'|'group_rename'|'account_lock_or_unlocked'|'emm_error'|'guest_admin_signed_in_via_trusted_teams'|'guest_admin_signed_out_via_trusted_teams'|'login_fail'|'login_success'|'logout'|'reseller_support_session_end'|'reseller_support_session_start'|'sign_in_as_session_end'|'sign_in_as_session_start'|'sso_error'|'create_team_invite_link'|'delete_team_invite_link'|'member_add_external_id'|'member_add_name'|'member_change_admin_role'|'member_change_email'|'member_change_external_id'|'member_change_membership_type'|'member_change_name'|'member_change_reseller_role'|'member_change_status'|'member_delete_manual_contacts'|'member_delete_profile_photo'|'member_permanently_delete_account_contents'|'member_remove_external_id'|'member_set_profile_photo'|'member_space_limits_add_custom_quota'|'member_space_limits_change_custom_quota'|'member_space_limits_change_status'|'member_space_limits_remove_custom_quota'|'member_suggest'|'member_transfer_account_contents'|'pending_secondary_email_added'|'secondary_email_deleted'|'secondary_email_verified'|'secondary_mails_policy_changed'|'binder_add_page'|'binder_add_section'|'binder_remove_page'|'binder_remove_section'|'binder_rename_page'|'binder_rename_section'|'binder_reorder_page'|'binder_reorder_section'|'paper_content_add_member'|'paper_content_add_to_folder'|'paper_content_archive'|'paper_content_create'|'paper_content_permanently_delete'|'paper_content_remove_from_folder'|'paper_content_remove_member'|'paper_content_rename'|'paper_content_restore'|'paper_doc_add_comment'|'paper_doc_change_member_role'|'paper_doc_change_sharing_policy'|'paper_doc_change_subscription'|'paper_doc_deleted'|'paper_doc_delete_comment'|'paper_doc_download'|'paper_doc_edit'|'paper_doc_edit_comment'|'paper_doc_followed'|'paper_doc_mention'|'paper_doc_ownership_changed'|'paper_doc_request_access'|'paper_doc_resolve_comment'|'paper_doc_revert'|'paper_doc_slack_share'|'paper_doc_team_invite'|'paper_doc_trashed'|'paper_doc_unresolve_comment'|'paper_doc_untrashed'|'paper_doc_view'|'paper_external_view_allow'|'paper_external_view_default_team'|'paper_external_view_forbid'|'paper_folder_change_subscription'|'paper_folder_deleted'|'paper_folder_followed'|'paper_folder_team_invite'|'paper_published_link_change_permission'|'paper_published_link_create'|'paper_published_link_disabled'|'paper_published_link_view'|'password_change'|'password_reset'|'password_reset_all'|'classification_create_report'|'classification_create_report_fail'|'emm_create_exceptions_report'|'emm_create_usage_report'|'export_members_report'|'export_members_report_fail'|'external_sharing_create_report'|'external_sharing_report_failed'|'no_expiration_link_gen_create_report'|'no_expiration_link_gen_report_failed'|'no_password_link_gen_create_report'|'no_password_link_gen_report_failed'|'no_password_link_view_create_report'|'no_password_link_view_report_failed'|'outdated_link_view_create_report'|'outdated_link_view_report_failed'|'paper_admin_export_start'|'smart_sync_create_admin_privilege_report'|'team_activity_create_report'|'team_activity_create_report_fail'|'collection_share'|'file_transfers_file_add'|'file_transfers_transfer_delete'|'file_transfers_transfer_download'|'file_transfers_transfer_send'|'file_transfers_transfer_view'|'note_acl_invite_only'|'note_acl_link'|'note_acl_team_link'|'note_shared'|'note_share_receive'|'open_note_shared'|'sf_add_group'|'sf_allow_non_members_to_view_shared_links'|'sf_external_invite_warn'|'sf_fb_invite'|'sf_fb_invite_change_role'|'sf_fb_uninvite'|'sf_invite_group'|'sf_team_grant_access'|'sf_team_invite'|'sf_team_invite_change_role'|'sf_team_join'|'sf_team_join_from_oob_link'|'sf_team_uninvite'|'shared_content_add_invitees'|'shared_content_add_link_expiry'|'shared_content_add_link_password'|'shared_content_add_member'|'shared_content_change_downloads_policy'|'shared_content_change_invitee_role'|'shared_content_change_link_audience'|'shared_content_change_link_expiry'|'shared_content_change_link_password'|'shared_content_change_member_role'|'shared_content_change_viewer_info_policy'|'shared_content_claim_invitation'|'shared_content_copy'|'shared_content_download'|'shared_content_relinquish_membership'|'shared_content_remove_invitees'|'shared_content_remove_link_expiry'|'shared_content_remove_link_password'|'shared_content_remove_member'|'shared_content_request_access'|'shared_content_restore_invitees'|'shared_content_restore_member'|'shared_content_unshare'|'shared_content_view'|'shared_folder_change_link_policy'|'shared_folder_change_members_inheritance_policy'|'shared_folder_change_members_management_policy'|'shared_folder_change_members_policy'|'shared_folder_create'|'shared_folder_decline_invitation'|'shared_folder_mount'|'shared_folder_nest'|'shared_folder_transfer_ownership'|'shared_folder_unmount'|'shared_link_add_expiry'|'shared_link_change_expiry'|'shared_link_change_visibility'|'shared_link_copy'|'shared_link_create'|'shared_link_disable'|'shared_link_download'|'shared_link_remove_expiry'|'shared_link_settings_add_expiration'|'shared_link_settings_add_password'|'shared_link_settings_allow_download_disabled'|'shared_link_settings_allow_download_enabled'|'shared_link_settings_change_audience'|'shared_link_settings_change_expiration'|'shared_link_settings_change_password'|'shared_link_settings_remove_expiration'|'shared_link_settings_remove_password'|'shared_link_share'|'shared_link_view'|'shared_note_opened'|'shmodel_disable_downloads'|'shmodel_enable_downloads'|'shmodel_group_share'|'showcase_access_granted'|'showcase_add_member'|'showcase_archived'|'showcase_created'|'showcase_delete_comment'|'showcase_edited'|'showcase_edit_comment'|'showcase_file_added'|'showcase_file_download'|'showcase_file_removed'|'showcase_file_view'|'showcase_permanently_deleted'|'showcase_post_comment'|'showcase_remove_member'|'showcase_renamed'|'showcase_request_access'|'showcase_resolve_comment'|'showcase_restored'|'showcase_trashed'|'showcase_trashed_deprecated'|'showcase_unresolve_comment'|'showcase_untrashed'|'showcase_untrashed_deprecated'|'showcase_view'|'sso_add_cert'|'sso_add_login_url'|'sso_add_logout_url'|'sso_change_cert'|'sso_change_login_url'|'sso_change_logout_url'|'sso_change_saml_identity_mode'|'sso_remove_cert'|'sso_remove_login_url'|'sso_remove_logout_url'|'team_folder_change_status'|'team_folder_create'|'team_folder_downgrade'|'team_folder_permanently_delete'|'team_folder_rename'|'team_selective_sync_settings_changed'|'account_capture_change_policy'|'admin_email_reminders_changed'|'allow_download_disabled'|'allow_download_enabled'|'app_permissions_changed'|'camera_uploads_policy_changed'|'capture_transcript_policy_changed'|'classification_change_policy'|'computer_backup_policy_changed'|'content_administration_policy_changed'|'data_placement_restriction_change_policy'|'data_placement_restriction_satisfy_policy'|'device_approvals_add_exception'|'device_approvals_change_desktop_policy'|'device_approvals_change_mobile_policy'|'device_approvals_change_overage_action'|'device_approvals_change_unlink_action'|'device_approvals_remove_exception'|'directory_restrictions_add_members'|'directory_restrictions_remove_members'|'dropbox_passwords_policy_changed'|'email_ingest_policy_changed'|'emm_add_exception'|'emm_change_policy'|'emm_remove_exception'|'extended_version_history_change_policy'|'external_drive_backup_policy_changed'|'file_comments_change_policy'|'file_locking_policy_changed'|'file_provider_migration_policy_changed'|'file_requests_change_policy'|'file_requests_emails_enabled'|'file_requests_emails_restricted_to_team_only'|'file_transfers_policy_changed'|'folder_link_restriction_policy_changed'|'google_sso_change_policy'|'group_user_management_change_policy'|'integration_policy_changed'|'invite_acceptance_email_policy_changed'|'member_requests_change_policy'|'member_send_invite_policy_changed'|'member_space_limits_add_exception'|'member_space_limits_change_caps_type_policy'|'member_space_limits_change_policy'|'member_space_limits_remove_exception'|'member_suggestions_change_policy'|'microsoft_office_addin_change_policy'|'network_control_change_policy'|'paper_change_deployment_policy'|'paper_change_member_link_policy'|'paper_change_member_policy'|'paper_change_policy'|'paper_default_folder_policy_changed'|'paper_desktop_policy_changed'|'paper_enabled_users_group_addition'|'paper_enabled_users_group_removal'|'password_strength_requirements_change_policy'|'permanent_delete_change_policy'|'reseller_support_change_policy'|'rewind_policy_changed'|'send_for_signature_policy_changed'|'sharing_change_folder_join_policy'|'sharing_change_link_allow_change_expiration_policy'|'sharing_change_link_default_expiration_policy'|'sharing_change_link_enforce_password_policy'|'sharing_change_link_policy'|'sharing_change_member_policy'|'showcase_change_download_policy'|'showcase_change_enabled_policy'|'showcase_change_external_sharing_policy'|'smarter_smart_sync_policy_changed'|'smart_sync_change_policy'|'smart_sync_not_opt_out'|'smart_sync_opt_out'|'sso_change_policy'|'team_branding_policy_changed'|'team_extensions_policy_changed'|'team_selective_sync_policy_changed'|'team_sharing_whitelist_subjects_changed'|'tfa_add_exception'|'tfa_change_policy'|'tfa_remove_exception'|'two_account_change_policy'|'viewer_info_policy_changed'|'watermarking_policy_changed'|'web_sessions_change_active_session_limit'|'web_sessions_change_fixed_length_policy'|'web_sessions_change_idle_length_policy'|'data_residency_migration_request_successful'|'data_residency_migration_request_unsuccessful'|'team_merge_from'|'team_merge_to'|'team_profile_add_background'|'team_profile_add_logo'|'team_profile_change_background'|'team_profile_change_default_language'|'team_profile_change_logo'|'team_profile_change_name'|'team_profile_remove_background'|'team_profile_remove_logo'|'tfa_add_backup_phone'|'tfa_add_security_key'|'tfa_change_backup_phone'|'tfa_change_status'|'tfa_remove_backup_phone'|'tfa_remove_security_key'|'tfa_reset'|'changed_enterprise_admin_role'|'changed_enterprise_connected_team_status'|'ended_enterprise_admin_session'|'ended_enterprise_admin_session_deprecated'|'enterprise_settings_locking'|'guest_admin_change_status'|'started_enterprise_admin_session'|'team_merge_request_accepted'|'team_merge_request_accepted_shown_to_primary_team'|'team_merge_request_accepted_shown_to_secondary_team'|'team_merge_request_auto_canceled'|'team_merge_request_canceled'|'team_merge_request_canceled_shown_to_primary_team'|'team_merge_request_canceled_shown_to_secondary_team'|'team_merge_request_expired'|'team_merge_request_expired_shown_to_primary_team'|'team_merge_request_expired_shown_to_secondary_team'|'team_merge_request_rejected_shown_to_primary_team'|'team_merge_request_rejected_shown_to_secondary_team'|'team_merge_request_reminder'|'team_merge_request_reminder_shown_to_primary_team'|'team_merge_request_reminder_shown_to_secondary_team'|'team_merge_request_revoked'|'team_merge_request_sent_shown_to_primary_team'|'team_merge_request_sent_shown_to_secondary_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * The type of the event. + * @typedef {Object} TeamLogEventTypeArg + * @property {('admin_alerting_alert_state_changed'|'admin_alerting_changed_alert_config'|'admin_alerting_triggered_alert'|'app_blocked_by_permissions'|'app_link_team'|'app_link_user'|'app_unlink_team'|'app_unlink_user'|'integration_connected'|'integration_disconnected'|'file_add_comment'|'file_change_comment_subscription'|'file_delete_comment'|'file_edit_comment'|'file_like_comment'|'file_resolve_comment'|'file_unlike_comment'|'file_unresolve_comment'|'governance_policy_add_folders'|'governance_policy_add_folder_failed'|'governance_policy_content_disposed'|'governance_policy_create'|'governance_policy_delete'|'governance_policy_edit_details'|'governance_policy_edit_duration'|'governance_policy_export_created'|'governance_policy_export_removed'|'governance_policy_remove_folders'|'governance_policy_report_created'|'governance_policy_zip_part_downloaded'|'legal_holds_activate_a_hold'|'legal_holds_add_members'|'legal_holds_change_hold_details'|'legal_holds_change_hold_name'|'legal_holds_export_a_hold'|'legal_holds_export_cancelled'|'legal_holds_export_downloaded'|'legal_holds_export_removed'|'legal_holds_release_a_hold'|'legal_holds_remove_members'|'legal_holds_report_a_hold'|'device_change_ip_desktop'|'device_change_ip_mobile'|'device_change_ip_web'|'device_delete_on_unlink_fail'|'device_delete_on_unlink_success'|'device_link_fail'|'device_link_success'|'device_management_disabled'|'device_management_enabled'|'device_sync_backup_status_changed'|'device_unlink'|'dropbox_passwords_exported'|'dropbox_passwords_new_device_enrolled'|'emm_refresh_auth_token'|'external_drive_backup_eligibility_status_checked'|'external_drive_backup_status_changed'|'account_capture_change_availability'|'account_capture_migrate_account'|'account_capture_notification_emails_sent'|'account_capture_relinquish_account'|'disabled_domain_invites'|'domain_invites_approve_request_to_join_team'|'domain_invites_decline_request_to_join_team'|'domain_invites_email_existing_users'|'domain_invites_request_to_join_team'|'domain_invites_set_invite_new_user_pref_to_no'|'domain_invites_set_invite_new_user_pref_to_yes'|'domain_verification_add_domain_fail'|'domain_verification_add_domain_success'|'domain_verification_remove_domain'|'enabled_domain_invites'|'apply_naming_convention'|'create_folder'|'file_add'|'file_copy'|'file_delete'|'file_download'|'file_edit'|'file_get_copy_reference'|'file_locking_lock_status_changed'|'file_move'|'file_permanently_delete'|'file_preview'|'file_rename'|'file_restore'|'file_revert'|'file_rollback_changes'|'file_save_copy_reference'|'folder_overview_description_changed'|'folder_overview_item_pinned'|'folder_overview_item_unpinned'|'object_label_added'|'object_label_removed'|'object_label_updated_value'|'organize_folder_with_tidy'|'rewind_folder'|'undo_naming_convention'|'undo_organize_folder_with_tidy'|'user_tags_added'|'user_tags_removed'|'email_ingest_receive_file'|'file_request_change'|'file_request_close'|'file_request_create'|'file_request_delete'|'file_request_receive_file'|'group_add_external_id'|'group_add_member'|'group_change_external_id'|'group_change_management_type'|'group_change_member_role'|'group_create'|'group_delete'|'group_description_updated'|'group_join_policy_updated'|'group_moved'|'group_remove_external_id'|'group_remove_member'|'group_rename'|'account_lock_or_unlocked'|'emm_error'|'guest_admin_signed_in_via_trusted_teams'|'guest_admin_signed_out_via_trusted_teams'|'login_fail'|'login_success'|'logout'|'reseller_support_session_end'|'reseller_support_session_start'|'sign_in_as_session_end'|'sign_in_as_session_start'|'sso_error'|'create_team_invite_link'|'delete_team_invite_link'|'member_add_external_id'|'member_add_name'|'member_change_admin_role'|'member_change_email'|'member_change_external_id'|'member_change_membership_type'|'member_change_name'|'member_change_reseller_role'|'member_change_status'|'member_delete_manual_contacts'|'member_delete_profile_photo'|'member_permanently_delete_account_contents'|'member_remove_external_id'|'member_set_profile_photo'|'member_space_limits_add_custom_quota'|'member_space_limits_change_custom_quota'|'member_space_limits_change_status'|'member_space_limits_remove_custom_quota'|'member_suggest'|'member_transfer_account_contents'|'pending_secondary_email_added'|'secondary_email_deleted'|'secondary_email_verified'|'secondary_mails_policy_changed'|'binder_add_page'|'binder_add_section'|'binder_remove_page'|'binder_remove_section'|'binder_rename_page'|'binder_rename_section'|'binder_reorder_page'|'binder_reorder_section'|'paper_content_add_member'|'paper_content_add_to_folder'|'paper_content_archive'|'paper_content_create'|'paper_content_permanently_delete'|'paper_content_remove_from_folder'|'paper_content_remove_member'|'paper_content_rename'|'paper_content_restore'|'paper_doc_add_comment'|'paper_doc_change_member_role'|'paper_doc_change_sharing_policy'|'paper_doc_change_subscription'|'paper_doc_deleted'|'paper_doc_delete_comment'|'paper_doc_download'|'paper_doc_edit'|'paper_doc_edit_comment'|'paper_doc_followed'|'paper_doc_mention'|'paper_doc_ownership_changed'|'paper_doc_request_access'|'paper_doc_resolve_comment'|'paper_doc_revert'|'paper_doc_slack_share'|'paper_doc_team_invite'|'paper_doc_trashed'|'paper_doc_unresolve_comment'|'paper_doc_untrashed'|'paper_doc_view'|'paper_external_view_allow'|'paper_external_view_default_team'|'paper_external_view_forbid'|'paper_folder_change_subscription'|'paper_folder_deleted'|'paper_folder_followed'|'paper_folder_team_invite'|'paper_published_link_change_permission'|'paper_published_link_create'|'paper_published_link_disabled'|'paper_published_link_view'|'password_change'|'password_reset'|'password_reset_all'|'classification_create_report'|'classification_create_report_fail'|'emm_create_exceptions_report'|'emm_create_usage_report'|'export_members_report'|'export_members_report_fail'|'external_sharing_create_report'|'external_sharing_report_failed'|'no_expiration_link_gen_create_report'|'no_expiration_link_gen_report_failed'|'no_password_link_gen_create_report'|'no_password_link_gen_report_failed'|'no_password_link_view_create_report'|'no_password_link_view_report_failed'|'outdated_link_view_create_report'|'outdated_link_view_report_failed'|'paper_admin_export_start'|'smart_sync_create_admin_privilege_report'|'team_activity_create_report'|'team_activity_create_report_fail'|'collection_share'|'file_transfers_file_add'|'file_transfers_transfer_delete'|'file_transfers_transfer_download'|'file_transfers_transfer_send'|'file_transfers_transfer_view'|'note_acl_invite_only'|'note_acl_link'|'note_acl_team_link'|'note_shared'|'note_share_receive'|'open_note_shared'|'sf_add_group'|'sf_allow_non_members_to_view_shared_links'|'sf_external_invite_warn'|'sf_fb_invite'|'sf_fb_invite_change_role'|'sf_fb_uninvite'|'sf_invite_group'|'sf_team_grant_access'|'sf_team_invite'|'sf_team_invite_change_role'|'sf_team_join'|'sf_team_join_from_oob_link'|'sf_team_uninvite'|'shared_content_add_invitees'|'shared_content_add_link_expiry'|'shared_content_add_link_password'|'shared_content_add_member'|'shared_content_change_downloads_policy'|'shared_content_change_invitee_role'|'shared_content_change_link_audience'|'shared_content_change_link_expiry'|'shared_content_change_link_password'|'shared_content_change_member_role'|'shared_content_change_viewer_info_policy'|'shared_content_claim_invitation'|'shared_content_copy'|'shared_content_download'|'shared_content_relinquish_membership'|'shared_content_remove_invitees'|'shared_content_remove_link_expiry'|'shared_content_remove_link_password'|'shared_content_remove_member'|'shared_content_request_access'|'shared_content_restore_invitees'|'shared_content_restore_member'|'shared_content_unshare'|'shared_content_view'|'shared_folder_change_link_policy'|'shared_folder_change_members_inheritance_policy'|'shared_folder_change_members_management_policy'|'shared_folder_change_members_policy'|'shared_folder_create'|'shared_folder_decline_invitation'|'shared_folder_mount'|'shared_folder_nest'|'shared_folder_transfer_ownership'|'shared_folder_unmount'|'shared_link_add_expiry'|'shared_link_change_expiry'|'shared_link_change_visibility'|'shared_link_copy'|'shared_link_create'|'shared_link_disable'|'shared_link_download'|'shared_link_remove_expiry'|'shared_link_settings_add_expiration'|'shared_link_settings_add_password'|'shared_link_settings_allow_download_disabled'|'shared_link_settings_allow_download_enabled'|'shared_link_settings_change_audience'|'shared_link_settings_change_expiration'|'shared_link_settings_change_password'|'shared_link_settings_remove_expiration'|'shared_link_settings_remove_password'|'shared_link_share'|'shared_link_view'|'shared_note_opened'|'shmodel_disable_downloads'|'shmodel_enable_downloads'|'shmodel_group_share'|'showcase_access_granted'|'showcase_add_member'|'showcase_archived'|'showcase_created'|'showcase_delete_comment'|'showcase_edited'|'showcase_edit_comment'|'showcase_file_added'|'showcase_file_download'|'showcase_file_removed'|'showcase_file_view'|'showcase_permanently_deleted'|'showcase_post_comment'|'showcase_remove_member'|'showcase_renamed'|'showcase_request_access'|'showcase_resolve_comment'|'showcase_restored'|'showcase_trashed'|'showcase_trashed_deprecated'|'showcase_unresolve_comment'|'showcase_untrashed'|'showcase_untrashed_deprecated'|'showcase_view'|'sso_add_cert'|'sso_add_login_url'|'sso_add_logout_url'|'sso_change_cert'|'sso_change_login_url'|'sso_change_logout_url'|'sso_change_saml_identity_mode'|'sso_remove_cert'|'sso_remove_login_url'|'sso_remove_logout_url'|'team_folder_change_status'|'team_folder_create'|'team_folder_downgrade'|'team_folder_permanently_delete'|'team_folder_rename'|'team_selective_sync_settings_changed'|'account_capture_change_policy'|'admin_email_reminders_changed'|'allow_download_disabled'|'allow_download_enabled'|'app_permissions_changed'|'camera_uploads_policy_changed'|'capture_transcript_policy_changed'|'classification_change_policy'|'computer_backup_policy_changed'|'content_administration_policy_changed'|'data_placement_restriction_change_policy'|'data_placement_restriction_satisfy_policy'|'device_approvals_add_exception'|'device_approvals_change_desktop_policy'|'device_approvals_change_mobile_policy'|'device_approvals_change_overage_action'|'device_approvals_change_unlink_action'|'device_approvals_remove_exception'|'directory_restrictions_add_members'|'directory_restrictions_remove_members'|'dropbox_passwords_policy_changed'|'email_ingest_policy_changed'|'emm_add_exception'|'emm_change_policy'|'emm_remove_exception'|'extended_version_history_change_policy'|'external_drive_backup_policy_changed'|'file_comments_change_policy'|'file_locking_policy_changed'|'file_provider_migration_policy_changed'|'file_requests_change_policy'|'file_requests_emails_enabled'|'file_requests_emails_restricted_to_team_only'|'file_transfers_policy_changed'|'folder_link_restriction_policy_changed'|'google_sso_change_policy'|'group_user_management_change_policy'|'integration_policy_changed'|'invite_acceptance_email_policy_changed'|'member_requests_change_policy'|'member_send_invite_policy_changed'|'member_space_limits_add_exception'|'member_space_limits_change_caps_type_policy'|'member_space_limits_change_policy'|'member_space_limits_remove_exception'|'member_suggestions_change_policy'|'microsoft_office_addin_change_policy'|'network_control_change_policy'|'paper_change_deployment_policy'|'paper_change_member_link_policy'|'paper_change_member_policy'|'paper_change_policy'|'paper_default_folder_policy_changed'|'paper_desktop_policy_changed'|'paper_enabled_users_group_addition'|'paper_enabled_users_group_removal'|'password_strength_requirements_change_policy'|'permanent_delete_change_policy'|'reseller_support_change_policy'|'rewind_policy_changed'|'send_for_signature_policy_changed'|'sharing_change_folder_join_policy'|'sharing_change_link_allow_change_expiration_policy'|'sharing_change_link_default_expiration_policy'|'sharing_change_link_enforce_password_policy'|'sharing_change_link_policy'|'sharing_change_member_policy'|'showcase_change_download_policy'|'showcase_change_enabled_policy'|'showcase_change_external_sharing_policy'|'smarter_smart_sync_policy_changed'|'smart_sync_change_policy'|'smart_sync_not_opt_out'|'smart_sync_opt_out'|'sso_change_policy'|'team_branding_policy_changed'|'team_extensions_policy_changed'|'team_selective_sync_policy_changed'|'team_sharing_whitelist_subjects_changed'|'tfa_add_exception'|'tfa_change_policy'|'tfa_remove_exception'|'two_account_change_policy'|'viewer_info_policy_changed'|'watermarking_policy_changed'|'web_sessions_change_active_session_limit'|'web_sessions_change_fixed_length_policy'|'web_sessions_change_idle_length_policy'|'data_residency_migration_request_successful'|'data_residency_migration_request_unsuccessful'|'team_merge_from'|'team_merge_to'|'team_profile_add_background'|'team_profile_add_logo'|'team_profile_change_background'|'team_profile_change_default_language'|'team_profile_change_logo'|'team_profile_change_name'|'team_profile_remove_background'|'team_profile_remove_logo'|'tfa_add_backup_phone'|'tfa_add_security_key'|'tfa_change_backup_phone'|'tfa_change_status'|'tfa_remove_backup_phone'|'tfa_remove_security_key'|'tfa_reset'|'changed_enterprise_admin_role'|'changed_enterprise_connected_team_status'|'ended_enterprise_admin_session'|'ended_enterprise_admin_session_deprecated'|'enterprise_settings_locking'|'guest_admin_change_status'|'started_enterprise_admin_session'|'team_merge_request_accepted'|'team_merge_request_accepted_shown_to_primary_team'|'team_merge_request_accepted_shown_to_secondary_team'|'team_merge_request_auto_canceled'|'team_merge_request_canceled'|'team_merge_request_canceled_shown_to_primary_team'|'team_merge_request_canceled_shown_to_secondary_team'|'team_merge_request_expired'|'team_merge_request_expired_shown_to_primary_team'|'team_merge_request_expired_shown_to_secondary_team'|'team_merge_request_rejected_shown_to_primary_team'|'team_merge_request_rejected_shown_to_secondary_team'|'team_merge_request_reminder'|'team_merge_request_reminder_shown_to_primary_team'|'team_merge_request_reminder_shown_to_secondary_team'|'team_merge_request_revoked'|'team_merge_request_sent_shown_to_primary_team'|'team_merge_request_sent_shown_to_secondary_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Created member data report. + * @typedef {Object} TeamLogExportMembersReportDetails + */ /** + * Failed to create members data report. + * @typedef {Object} TeamLogExportMembersReportFailDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ /** + * @typedef {Object} TeamLogExportMembersReportFailType + * @property {string} description + */ /** + * @typedef {Object} TeamLogExportMembersReportType + * @property {string} description + */ /** + * Accepted/opted out of extended version history. + * @typedef {Object} TeamLogExtendedVersionHistoryChangePolicyDetails + * @property {TeamLogExtendedVersionHistoryPolicy} new_value - New extended + * version history policy. + * @property {TeamLogExtendedVersionHistoryPolicy} [previous_value] - Previous + * extended version history policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogExtendedVersionHistoryChangePolicyType + * @property {string} description + */ /** + * @typedef {Object} TeamLogExtendedVersionHistoryPolicy + * @property {('explicitly_limited'|'explicitly_unlimited'|'implicitly_limited'|'implicitly_unlimited'|'other')} .tag - Tag identifying the union variant. + */ /** + * External Drive Backup eligibility status + * @typedef {Object} TeamLogExternalDriveBackupEligibilityStatus + * @property {('exceed_license_cap'|'success'|'other')} .tag - Tag identifying the union variant. + */ /** + * Checked external drive backup eligibility status. + * @typedef {Object} TeamLogExternalDriveBackupEligibilityStatusCheckedDetails + * @property {TeamLogDesktopDeviceSessionLogInfo} desktop_device_session_info - + * Device's session logged information. + * @property {TeamLogExternalDriveBackupEligibilityStatus} status - Current + * eligibility status of external drive backup. + * @property {number} number_of_external_drive_backup - Total number of valid + * external drive backup for all the team members. + */ /** + * @typedef {Object} TeamLogExternalDriveBackupEligibilityStatusCheckedType + * @property {string} description + */ /** + * Policy for controlling team access to external drive backup feature + * @typedef {Object} TeamLogExternalDriveBackupPolicy + * @property {('default'|'disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed external drive backup policy for team. + * @typedef {Object} TeamLogExternalDriveBackupPolicyChangedDetails + * @property {TeamLogExternalDriveBackupPolicy} new_value - New external drive + * backup policy. + * @property {TeamLogExternalDriveBackupPolicy} previous_value - Previous + * external drive backup policy. + */ /** + * @typedef {Object} TeamLogExternalDriveBackupPolicyChangedType + * @property {string} description + */ /** + * External Drive Backup status + * @typedef {Object} TeamLogExternalDriveBackupStatus + * @property {('broken'|'created'|'created_or_broken'|'deleted'|'empty'|'unknown'|'other')} .tag - Tag identifying the union variant. + */ /** + * Modified external drive backup. + * @typedef {Object} TeamLogExternalDriveBackupStatusChangedDetails + * @property {TeamLogDesktopDeviceSessionLogInfo} desktop_device_session_info - + * Device's session logged information. + * @property {TeamLogExternalDriveBackupStatus} previous_value - Previous status + * of this external drive backup. + * @property {TeamLogExternalDriveBackupStatus} new_value - Next status of this + * external drive backup. + */ /** + * @typedef {Object} TeamLogExternalDriveBackupStatusChangedType + * @property {string} description + */ /** + * Created External sharing report. + * @typedef {Object} TeamLogExternalSharingCreateReportDetails + */ /** + * @typedef {Object} TeamLogExternalSharingCreateReportType + * @property {string} description + */ /** + * Couldn't create External sharing report. + * @typedef {Object} TeamLogExternalSharingReportFailedDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ /** + * @typedef {Object} TeamLogExternalSharingReportFailedType + * @property {string} description + */ /** + * A user without a Dropbox account. + * @typedef {Object} TeamLogExternalUserLogInfo + * @property {string} user_identifier - An external user identifier. + * @property {TeamLogIdentifierType} identifier_type - Identifier type. + */ /** + * Provides details about a failure + * @typedef {Object} TeamLogFailureDetailsLogInfo + * @property {string} [user_friendly_message] - A user friendly explanation of + * the error. + * @property {string} [technical_error_message] - A technical explanation of the + * error. This is relevant for some errors. + */ /** + * @typedef {Object} TeamLogFedAdminRole + * @property {('enterprise_admin'|'not_enterprise_admin'|'other')} .tag - Tag identifying the union variant. + */ /** + * More details about the organization or team. + * @typedef {Object} TeamLogFedExtraDetails + * @property {TeamLogOrganizationDetails} [organization] - Available if .tag is + * organization. More details about the organization. + * @property {TeamLogTeamDetails} [team] - Available if .tag is team. More + * details about the team. + * @property {('organization'|'team'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogFedHandshakeAction + * @property {('accepted_invite'|'canceled_invite'|'invite_expired'|'invited'|'rejected_invite'|'removed_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Additional information about the organization or connected team + * @typedef {Object} TeamLogFederationStatusChangeAdditionalInfo + * @property {TeamLogConnectedTeamName} [connected_team_name] - Available if + * .tag is connected_team_name. The name of the team. + * @property {TeamLogNonTrustedTeamDetails} [non_trusted_team_details] - + * Available if .tag is non_trusted_team_details. The email to which the request + * was sent. + * @property {TeamLogOrganizationName} [organization_name] - Available if .tag + * is organization_name. The name of the organization. + * @property {('connected_team_name'|'non_trusted_team_details'|'organization_name'|'other')} .tag - Tag identifying the union variant. + */ /** + * Added file comment. + * @typedef {Object} TeamLogFileAddCommentDetails + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogFileAddCommentType + * @property {string} description + */ /** + * Added files and/or folders. + * @typedef {Object} TeamLogFileAddDetails + */ /** + * @typedef {Object} TeamLogFileAddType + * @property {string} description + */ /** + * Subscribed to or unsubscribed from comment notifications for file. + * @typedef {Object} TeamLogFileChangeCommentSubscriptionDetails + * @property {TeamLogFileCommentNotificationPolicy} new_value - New file comment + * subscription. + * @property {TeamLogFileCommentNotificationPolicy} [previous_value] - Previous + * file comment subscription. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogFileChangeCommentSubscriptionType + * @property {string} description + */ /** + * Enable or disable file comments notifications + * @typedef {Object} TeamLogFileCommentNotificationPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Enabled/disabled commenting on team files. + * @typedef {Object} TeamLogFileCommentsChangePolicyDetails + * @property {TeamLogFileCommentsPolicy} new_value - New commenting on team + * files policy. + * @property {TeamLogFileCommentsPolicy} [previous_value] - Previous commenting + * on team files policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogFileCommentsChangePolicyType + * @property {string} description + */ /** + * File comments policy + * @typedef {Object} TeamLogFileCommentsPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Copied files and/or folders. + * @typedef {Object} TeamLogFileCopyDetails + * @property {Array.} + * relocate_action_details - Relocate action details. + */ /** + * @typedef {Object} TeamLogFileCopyType + * @property {string} description + */ /** + * Deleted file comment. + * @typedef {Object} TeamLogFileDeleteCommentDetails + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogFileDeleteCommentType + * @property {string} description + */ /** + * Deleted files and/or folders. + * @typedef {Object} TeamLogFileDeleteDetails + */ /** + * @typedef {Object} TeamLogFileDeleteType + * @property {string} description + */ /** + * Downloaded files and/or folders. + * @typedef {Object} TeamLogFileDownloadDetails + */ /** + * @typedef {Object} TeamLogFileDownloadType + * @property {string} description + */ /** + * Edited file comment. + * @typedef {Object} TeamLogFileEditCommentDetails + * @property {string} previous_comment_text - Previous comment text. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogFileEditCommentType + * @property {string} description + */ /** + * Edited files. + * @typedef {Object} TeamLogFileEditDetails + */ /** + * @typedef {Object} TeamLogFileEditType + * @property {string} description + */ /** + * Created copy reference to file/folder. + * @typedef {Object} TeamLogFileGetCopyReferenceDetails + */ /** + * @typedef {Object} TeamLogFileGetCopyReferenceType + * @property {string} description + */ /** + * Liked file comment. + * @typedef {Object} TeamLogFileLikeCommentDetails + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogFileLikeCommentType + * @property {string} description + */ /** + * Locked/unlocked editing for a file. + * @typedef {Object} TeamLogFileLockingLockStatusChangedDetails + * @property {TeamLogLockStatus} previous_value - Previous lock status of the + * file. + * @property {TeamLogLockStatus} new_value - New lock status of the file. + */ /** + * @typedef {Object} TeamLogFileLockingLockStatusChangedType + * @property {string} description + */ /** + * Changed file locking policy for team. + * @typedef {Object} TeamLogFileLockingPolicyChangedDetails + * @property {TeamPoliciesFileLockingPolicyState} new_value - New file locking + * policy. + * @property {TeamPoliciesFileLockingPolicyState} previous_value - Previous file + * locking policy. + */ /** + * @typedef {Object} TeamLogFileLockingPolicyChangedType + * @property {string} description + */ /** + * File's logged information. + * @typedef {Object} TeamLogFileLogInfo + * @property {TeamLogPathLogInfo} path - Path relative to event context. + * @property {string} [display_name] - Display name. + * @property {string} [file_id] - Unique ID. + * @property {number} [file_size] - File or folder size in bytes. + */ /** + * Moved files and/or folders. + * @typedef {Object} TeamLogFileMoveDetails + * @property {Array.} + * relocate_action_details - Relocate action details. + */ /** + * @typedef {Object} TeamLogFileMoveType + * @property {string} description + */ /** + * Generic information relevant both for files and folders + * @typedef {Object} TeamLogFileOrFolderLogInfo + * @property {TeamLogPathLogInfo} path - Path relative to event context. + * @property {string} [display_name] - Display name. + * @property {string} [file_id] - Unique ID. + * @property {number} [file_size] - File or folder size in bytes. + */ /** + * Permanently deleted files and/or folders. + * @typedef {Object} TeamLogFilePermanentlyDeleteDetails + */ /** + * @typedef {Object} TeamLogFilePermanentlyDeleteType + * @property {string} description + */ /** + * Previewed files and/or folders. + * @typedef {Object} TeamLogFilePreviewDetails + */ /** + * @typedef {Object} TeamLogFilePreviewType + * @property {string} description + */ /** + * Changed File Provider Migration policy for team. + * @typedef {Object} TeamLogFileProviderMigrationPolicyChangedDetails + * @property {TeamPoliciesFileProviderMigrationPolicyState} new_value - To. + * @property {TeamPoliciesFileProviderMigrationPolicyState} previous_value - + * From. + */ /** + * @typedef {Object} TeamLogFileProviderMigrationPolicyChangedType + * @property {string} description + */ /** + * Renamed files and/or folders. + * @typedef {Object} TeamLogFileRenameDetails + * @property {Array.} + * relocate_action_details - Relocate action details. + */ /** + * @typedef {Object} TeamLogFileRenameType + * @property {string} description + */ /** + * Changed file request. + * @typedef {Object} TeamLogFileRequestChangeDetails + * @property {TeamLogFileRequestDetails} new_details - New file request details. + * @property {string} [file_request_id] - File request id. Might be missing due + * to historical data gap. + * @property {TeamLogFileRequestDetails} [previous_details] - Previous file + * request details. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogFileRequestChangeType + * @property {string} description + */ /** + * Closed file request. + * @typedef {Object} TeamLogFileRequestCloseDetails + * @property {string} [file_request_id] - File request id. Might be missing due + * to historical data gap. + * @property {TeamLogFileRequestDetails} [previous_details] - Previous file + * request details. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogFileRequestCloseType + * @property {string} description + */ /** + * Created file request. + * @typedef {Object} TeamLogFileRequestCreateDetails + * @property {string} [file_request_id] - File request id. Might be missing due + * to historical data gap. + * @property {TeamLogFileRequestDetails} [request_details] - File request + * details. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogFileRequestCreateType + * @property {string} description + */ /** + * File request deadline + * @typedef {Object} TeamLogFileRequestDeadline + * @property {Timestamp} [deadline] - The deadline for this file request. Might + * be missing due to historical data gap. + * @property {string} [allow_late_uploads] - If set, allow uploads after the + * deadline has passed. + */ /** + * Delete file request. + * @typedef {Object} TeamLogFileRequestDeleteDetails + * @property {string} [file_request_id] - File request id. Might be missing due + * to historical data gap. + * @property {TeamLogFileRequestDetails} [previous_details] - Previous file + * request details. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogFileRequestDeleteType + * @property {string} description + */ /** + * File request details + * @typedef {Object} TeamLogFileRequestDetails + * @property {number} asset_index - Asset position in the Assets list. + * @property {TeamLogFileRequestDeadline} [deadline] - File request deadline. + */ /** + * Received files for file request. + * @typedef {Object} TeamLogFileRequestReceiveFileDetails + * @property {Array.} submitted_file_names - Submitted file names. + * @property {string} [file_request_id] - File request id. Might be missing due + * to historical data gap. + * @property {TeamLogFileRequestDetails} [file_request_details] - File request + * details. Might be missing due to historical data gap. + * @property {string} [submitter_name] - The name as provided by the submitter. + * @property {string} [submitter_email] - The email as provided by the + * submitter. + */ /** + * @typedef {Object} TeamLogFileRequestReceiveFileType + * @property {string} description + */ /** + * Enabled/disabled file requests. + * @typedef {Object} TeamLogFileRequestsChangePolicyDetails + * @property {TeamLogFileRequestsPolicy} new_value - New file requests policy. + * @property {TeamLogFileRequestsPolicy} [previous_value] - Previous file + * requests policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogFileRequestsChangePolicyType + * @property {string} description + */ /** + * Enabled file request emails for everyone. + * @typedef {Object} TeamLogFileRequestsEmailsEnabledDetails + */ /** + * @typedef {Object} TeamLogFileRequestsEmailsEnabledType + * @property {string} description + */ /** + * Enabled file request emails for team. + * @typedef {Object} TeamLogFileRequestsEmailsRestrictedToTeamOnlyDetails + */ /** + * @typedef {Object} TeamLogFileRequestsEmailsRestrictedToTeamOnlyType + * @property {string} description + */ /** + * File requests policy + * @typedef {Object} TeamLogFileRequestsPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Resolved file comment. + * @typedef {Object} TeamLogFileResolveCommentDetails + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogFileResolveCommentType + * @property {string} description + */ /** + * Restored deleted files and/or folders. + * @typedef {Object} TeamLogFileRestoreDetails + */ /** + * @typedef {Object} TeamLogFileRestoreType + * @property {string} description + */ /** + * Reverted files to previous version. + * @typedef {Object} TeamLogFileRevertDetails + */ /** + * @typedef {Object} TeamLogFileRevertType + * @property {string} description + */ /** + * Rolled back file actions. + * @typedef {Object} TeamLogFileRollbackChangesDetails + */ /** + * @typedef {Object} TeamLogFileRollbackChangesType + * @property {string} description + */ /** + * Saved file/folder using copy reference. + * @typedef {Object} TeamLogFileSaveCopyReferenceDetails + * @property {Array.} + * relocate_action_details - Relocate action details. + */ /** + * @typedef {Object} TeamLogFileSaveCopyReferenceType + * @property {string} description + */ /** + * Transfer files added. + * @typedef {Object} TeamLogFileTransfersFileAddDetails + * @property {string} file_transfer_id - Transfer id. + */ /** + * @typedef {Object} TeamLogFileTransfersFileAddType + * @property {string} description + */ /** + * File transfers policy + * @typedef {Object} TeamLogFileTransfersPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed file transfers policy for team. + * @typedef {Object} TeamLogFileTransfersPolicyChangedDetails + * @property {TeamLogFileTransfersPolicy} new_value - New file transfers policy. + * @property {TeamLogFileTransfersPolicy} previous_value - Previous file + * transfers policy. + */ /** + * @typedef {Object} TeamLogFileTransfersPolicyChangedType + * @property {string} description + */ /** + * Deleted transfer. + * @typedef {Object} TeamLogFileTransfersTransferDeleteDetails + * @property {string} file_transfer_id - Transfer id. + */ /** + * @typedef {Object} TeamLogFileTransfersTransferDeleteType + * @property {string} description + */ /** + * Transfer downloaded. + * @typedef {Object} TeamLogFileTransfersTransferDownloadDetails + * @property {string} file_transfer_id - Transfer id. + */ /** + * @typedef {Object} TeamLogFileTransfersTransferDownloadType + * @property {string} description + */ /** + * Sent transfer. + * @typedef {Object} TeamLogFileTransfersTransferSendDetails + * @property {string} file_transfer_id - Transfer id. + */ /** + * @typedef {Object} TeamLogFileTransfersTransferSendType + * @property {string} description + */ /** + * Viewed transfer. + * @typedef {Object} TeamLogFileTransfersTransferViewDetails + * @property {string} file_transfer_id - Transfer id. + */ /** + * @typedef {Object} TeamLogFileTransfersTransferViewType + * @property {string} description + */ /** + * Unliked file comment. + * @typedef {Object} TeamLogFileUnlikeCommentDetails + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogFileUnlikeCommentType + * @property {string} description + */ /** + * Unresolved file comment. + * @typedef {Object} TeamLogFileUnresolveCommentDetails + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogFileUnresolveCommentType + * @property {string} description + */ /** + * Policy for deciding whether applying link restrictions on all team owned + * folders + * @typedef {Object} TeamLogFolderLinkRestrictionPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed folder link restrictions policy for team. + * @typedef {Object} TeamLogFolderLinkRestrictionPolicyChangedDetails + * @property {TeamLogFolderLinkRestrictionPolicy} new_value - To. + * @property {TeamLogFolderLinkRestrictionPolicy} previous_value - From. + */ /** + * @typedef {Object} TeamLogFolderLinkRestrictionPolicyChangedType + * @property {string} description + */ /** + * Folder's logged information. + * @typedef {Object} TeamLogFolderLogInfo + * @property {TeamLogPathLogInfo} path - Path relative to event context. + * @property {string} [display_name] - Display name. + * @property {string} [file_id] - Unique ID. + * @property {number} [file_size] - File or folder size in bytes. + * @property {number} [file_count] - Number of files within the folder. + */ /** + * Updated folder overview. + * @typedef {Object} TeamLogFolderOverviewDescriptionChangedDetails + * @property {number} folder_overview_location_asset - Folder Overview location + * position in the Assets list. + */ /** + * @typedef {Object} TeamLogFolderOverviewDescriptionChangedType + * @property {string} description + */ /** + * Pinned item to folder overview. + * @typedef {Object} TeamLogFolderOverviewItemPinnedDetails + * @property {number} folder_overview_location_asset - Folder Overview location + * position in the Assets list. + * @property {Array.} pinned_items_asset_indices - Pinned items + * positions in the Assets list. + */ /** + * @typedef {Object} TeamLogFolderOverviewItemPinnedType + * @property {string} description + */ /** + * Unpinned item from folder overview. + * @typedef {Object} TeamLogFolderOverviewItemUnpinnedDetails + * @property {number} folder_overview_location_asset - Folder Overview location + * position in the Assets list. + * @property {Array.} pinned_items_asset_indices - Pinned items + * positions in the Assets list. + */ /** + * @typedef {Object} TeamLogFolderOverviewItemUnpinnedType + * @property {string} description + */ /** + * Geographic location details. + * @typedef {Object} TeamLogGeoLocationLogInfo + * @property {string} ip_address - IP address. + * @property {string} [city] - City name. + * @property {string} [region] - Region name. + * @property {string} [country] - Country code. + */ /** + * @typedef {Object} TeamLogGetTeamEventsArg + * @property {number} limit - The maximal number of results to return per call. + * Note that some calls may not return limit number of events, and may even + * return no events, even with `has_more` set to true. In this case, callers + * should fetch again using get_events/continue. + * @property {string} [account_id] - Filter the events by account ID. Return + * only events with this account_id as either Actor, Context, or Participants. + * @property {TeamCommonTimeRange} [time] - Filter by time range. + * @property {TeamLogEventCategory} [category] - Filter the returned events to a + * single category. Note that category shouldn't be provided together with + * event_type. + * @property {TeamLogEventTypeArg} [event_type] - Filter the returned events to + * a single event type. Note that event_type shouldn't be provided together with + * category. + */ /** + * @typedef {Object} TeamLogGetTeamEventsContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * events. + */ /** + * Errors that can be raised when calling get_events/continue. + * @typedef {Object} TeamLogGetTeamEventsContinueError + * @property {Timestamp} [reset] - Available if .tag is reset. Cursors are + * intended to be used quickly. Individual cursor values are normally valid for + * days, but in rare cases may be reset sooner. Cursor reset errors should be + * handled by fetching a new cursor from :route:`get_events`. The associated + * value is the approximate timestamp of the most recent event returned by the + * cursor. This should be used as a resumption point when calling + * :route:`get_events` to obtain a new cursor. + * @property {('bad_cursor'|'reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * Errors that can be raised when calling get_events. + * @typedef {Object} TeamLogGetTeamEventsError + * @property {('account_id_not_found'|'invalid_time_range'|'invalid_filters'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogGetTeamEventsResult + * @property {Array.} events - List of events. Note that + * events are not guaranteed to be sorted by their timestamp value. + * @property {string} cursor - Pass the cursor into get_events/continue to + * obtain additional events. The value of cursor may change for each response + * from get_events/continue, regardless of the value of has_more; older cursor + * strings may expire. Thus, callers should ensure that they update their cursor + * based on the latest value of cursor after each call, and poll regularly if + * they wish to poll for new events. Callers should handle reset exceptions for + * expired cursors. + * @property {boolean} has_more - Is true if there may be additional events that + * have not been returned yet. An additional call to get_events/continue can + * retrieve them. Note that has_more may be true, even if events is empty. + */ /** + * Enabled/disabled Google single sign-on for team. + * @typedef {Object} TeamLogGoogleSsoChangePolicyDetails + * @property {TeamLogGoogleSsoPolicy} new_value - New Google single sign-on + * policy. + * @property {TeamLogGoogleSsoPolicy} [previous_value] - Previous Google single + * sign-on policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogGoogleSsoChangePolicyType + * @property {string} description + */ /** + * Google SSO policy + * @typedef {Object} TeamLogGoogleSsoPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Couldn't add a folder to a policy. + * @typedef {Object} TeamLogGovernancePolicyAddFolderFailedDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {string} folder - Folder. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + * @property {string} [reason] - Reason. + */ /** + * @typedef {Object} TeamLogGovernancePolicyAddFolderFailedType + * @property {string} description + */ /** + * Added folders to policy. + * @typedef {Object} TeamLogGovernancePolicyAddFoldersDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + * @property {Array.} [folders] - Folders. + */ /** + * @typedef {Object} TeamLogGovernancePolicyAddFoldersType + * @property {string} description + */ /** + * Content disposed. + * @typedef {Object} TeamLogGovernancePolicyContentDisposedDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogDispositionActionType} disposition_type - Disposition type. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ /** + * @typedef {Object} TeamLogGovernancePolicyContentDisposedType + * @property {string} description + */ /** + * Activated a new policy. + * @typedef {Object} TeamLogGovernancePolicyCreateDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogDurationLogInfo} duration - Duration in days. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + * @property {Array.} [folders] - Folders. + */ /** + * @typedef {Object} TeamLogGovernancePolicyCreateType + * @property {string} description + */ /** + * Deleted a policy. + * @typedef {Object} TeamLogGovernancePolicyDeleteDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ /** + * @typedef {Object} TeamLogGovernancePolicyDeleteType + * @property {string} description + */ /** + * Edited policy. + * @typedef {Object} TeamLogGovernancePolicyEditDetailsDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {string} attribute - Attribute. + * @property {string} previous_value - From. + * @property {string} new_value - To. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ /** + * @typedef {Object} TeamLogGovernancePolicyEditDetailsType + * @property {string} description + */ /** + * Changed policy duration. + * @typedef {Object} TeamLogGovernancePolicyEditDurationDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogDurationLogInfo} previous_value - From. + * @property {TeamLogDurationLogInfo} new_value - To. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ /** + * @typedef {Object} TeamLogGovernancePolicyEditDurationType + * @property {string} description + */ /** + * Created a policy download. + * @typedef {Object} TeamLogGovernancePolicyExportCreatedDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {string} export_name - Export name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ /** + * @typedef {Object} TeamLogGovernancePolicyExportCreatedType + * @property {string} description + */ /** + * Removed a policy download. + * @typedef {Object} TeamLogGovernancePolicyExportRemovedDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {string} export_name - Export name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ /** + * @typedef {Object} TeamLogGovernancePolicyExportRemovedType + * @property {string} description + */ /** + * Removed folders from policy. + * @typedef {Object} TeamLogGovernancePolicyRemoveFoldersDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + * @property {Array.} [folders] - Folders. + * @property {string} [reason] - Reason. + */ /** + * @typedef {Object} TeamLogGovernancePolicyRemoveFoldersType + * @property {string} description + */ /** + * Created a summary report for a policy. + * @typedef {Object} TeamLogGovernancePolicyReportCreatedDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ /** + * @typedef {Object} TeamLogGovernancePolicyReportCreatedType + * @property {string} description + */ /** + * Downloaded content from a policy. + * @typedef {Object} TeamLogGovernancePolicyZipPartDownloadedDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {string} export_name - Export name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + * @property {string} [part] - Part. + */ /** + * @typedef {Object} TeamLogGovernancePolicyZipPartDownloadedType + * @property {string} description + */ /** + * Added external ID for group. + * @typedef {Object} TeamLogGroupAddExternalIdDetails + * @property {string} new_value - Current external id. + */ /** + * @typedef {Object} TeamLogGroupAddExternalIdType + * @property {string} description + */ /** + * Added team members to group. + * @typedef {Object} TeamLogGroupAddMemberDetails + * @property {boolean} is_group_owner - Is group owner. + */ /** + * @typedef {Object} TeamLogGroupAddMemberType + * @property {string} description + */ /** + * Changed external ID for group. + * @typedef {Object} TeamLogGroupChangeExternalIdDetails + * @property {string} new_value - Current external id. + * @property {string} previous_value - Old external id. + */ /** + * @typedef {Object} TeamLogGroupChangeExternalIdType + * @property {string} description + */ /** + * Changed group management type. + * @typedef {Object} TeamLogGroupChangeManagementTypeDetails + * @property {TeamCommonGroupManagementType} new_value - New group management + * type. + * @property {TeamCommonGroupManagementType} [previous_value] - Previous group + * management type. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogGroupChangeManagementTypeType + * @property {string} description + */ /** + * Changed manager permissions of group member. + * @typedef {Object} TeamLogGroupChangeMemberRoleDetails + * @property {boolean} is_group_owner - Is group owner. + */ /** + * @typedef {Object} TeamLogGroupChangeMemberRoleType + * @property {string} description + */ /** + * Created group. + * @typedef {Object} TeamLogGroupCreateDetails + * @property {boolean} [is_company_managed] - Is company managed group. + * @property {TeamLogGroupJoinPolicy} [join_policy] - Group join policy. + */ /** + * @typedef {Object} TeamLogGroupCreateType + * @property {string} description + */ /** + * Deleted group. + * @typedef {Object} TeamLogGroupDeleteDetails + * @property {boolean} [is_company_managed] - Is company managed group. + */ /** + * @typedef {Object} TeamLogGroupDeleteType + * @property {string} description + */ /** + * Updated group. + * @typedef {Object} TeamLogGroupDescriptionUpdatedDetails + */ /** + * @typedef {Object} TeamLogGroupDescriptionUpdatedType + * @property {string} description + */ /** + * @typedef {Object} TeamLogGroupJoinPolicy + * @property {('open'|'request_to_join'|'other')} .tag - Tag identifying the union variant. + */ /** + * Updated group join policy. + * @typedef {Object} TeamLogGroupJoinPolicyUpdatedDetails + * @property {boolean} [is_company_managed] - Is company managed group. + * @property {TeamLogGroupJoinPolicy} [join_policy] - Group join policy. + */ /** + * @typedef {Object} TeamLogGroupJoinPolicyUpdatedType + * @property {string} description + */ /** + * Group's logged information. + * @typedef {Object} TeamLogGroupLogInfo + * @property {string} display_name - The name of this group. + * @property {string} [group_id] - The unique id of this group. + * @property {string} [external_id] - External group ID. + */ /** + * Moved group. + * @typedef {Object} TeamLogGroupMovedDetails + */ /** + * @typedef {Object} TeamLogGroupMovedType + * @property {string} description + */ /** + * Removed external ID for group. + * @typedef {Object} TeamLogGroupRemoveExternalIdDetails + * @property {string} previous_value - Old external id. + */ /** + * @typedef {Object} TeamLogGroupRemoveExternalIdType + * @property {string} description + */ /** + * Removed team members from group. + * @typedef {Object} TeamLogGroupRemoveMemberDetails + */ /** + * @typedef {Object} TeamLogGroupRemoveMemberType + * @property {string} description + */ /** + * Renamed group. + * @typedef {Object} TeamLogGroupRenameDetails + * @property {string} previous_value - Previous display name. + * @property {string} new_value - New display name. + */ /** + * @typedef {Object} TeamLogGroupRenameType + * @property {string} description + */ /** + * Changed who can create groups. + * @typedef {Object} TeamLogGroupUserManagementChangePolicyDetails + * @property {TeamPoliciesGroupCreation} new_value - New group users management + * policy. + * @property {TeamPoliciesGroupCreation} [previous_value] - Previous group users + * management policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogGroupUserManagementChangePolicyType + * @property {string} description + */ /** + * Changed guest team admin status. + * @typedef {Object} TeamLogGuestAdminChangeStatusDetails + * @property {boolean} is_guest - True for guest, false for host. + * @property {TeamLogTrustedTeamsRequestState} previous_value - Previous request + * state. + * @property {TeamLogTrustedTeamsRequestState} new_value - New request state. + * @property {TeamLogTrustedTeamsRequestAction} action_details - Action details. + * @property {string} [guest_team_name] - The name of the guest team. + * @property {string} [host_team_name] - The name of the host team. + */ /** + * @typedef {Object} TeamLogGuestAdminChangeStatusType + * @property {string} description + */ /** + * Started trusted team admin session. + * @typedef {Object} TeamLogGuestAdminSignedInViaTrustedTeamsDetails + * @property {string} [team_name] - Host team name. + * @property {string} [trusted_team_name] - Trusted team name. + */ /** + * @typedef {Object} TeamLogGuestAdminSignedInViaTrustedTeamsType + * @property {string} description + */ /** + * Ended trusted team admin session. + * @typedef {Object} TeamLogGuestAdminSignedOutViaTrustedTeamsDetails + * @property {string} [team_name] - Host team name. + * @property {string} [trusted_team_name] - Trusted team name. + */ /** + * @typedef {Object} TeamLogGuestAdminSignedOutViaTrustedTeamsType + * @property {string} description + */ /** + * @typedef {Object} TeamLogIdentifierType + * @property {('email'|'facebook_profile_name'|'other')} .tag - Tag identifying the union variant. + */ /** + * Connected integration for member. + * @typedef {Object} TeamLogIntegrationConnectedDetails + * @property {string} integration_name - Name of the third-party integration. + */ /** + * @typedef {Object} TeamLogIntegrationConnectedType + * @property {string} description + */ /** + * Disconnected integration for member. + * @typedef {Object} TeamLogIntegrationDisconnectedDetails + * @property {string} integration_name - Name of the third-party integration. + */ /** + * @typedef {Object} TeamLogIntegrationDisconnectedType + * @property {string} description + */ /** + * Policy for controlling whether a service integration is enabled for the team. + * @typedef {Object} TeamLogIntegrationPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed integration policy for team. + * @typedef {Object} TeamLogIntegrationPolicyChangedDetails + * @property {string} integration_name - Name of the third-party integration. + * @property {TeamLogIntegrationPolicy} new_value - New integration policy. + * @property {TeamLogIntegrationPolicy} previous_value - Previous integration + * policy. + */ /** + * @typedef {Object} TeamLogIntegrationPolicyChangedType + * @property {string} description + */ /** + * Policy for deciding whether team admins receive email when an invitation to + * join the team is accepted + * @typedef {Object} TeamLogInviteAcceptanceEmailPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed invite accept email policy for team. + * @typedef {Object} TeamLogInviteAcceptanceEmailPolicyChangedDetails + * @property {TeamLogInviteAcceptanceEmailPolicy} new_value - To. + * @property {TeamLogInviteAcceptanceEmailPolicy} previous_value - From. + */ /** + * @typedef {Object} TeamLogInviteAcceptanceEmailPolicyChangedType + * @property {string} description + */ /** + * @typedef {Object} TeamLogInviteMethod + * @property {('auto_approve'|'invite_link'|'member_invite'|'moved_from_another_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Additional information relevant when a new member joins the team. + * @typedef {Object} TeamLogJoinTeamDetails + * @property {Array.} linked_apps - Linked + * applications. (Deprecated) Please use has_linked_apps boolean field instead. + * @property {Array.} linked_devices - Linked + * devices. (Deprecated) Please use has_linked_devices boolean field instead. + * @property {Array.} linked_shared_folders - Linked + * shared folders. (Deprecated) Please use has_linked_shared_folders boolean + * field instead. + * @property {boolean} [was_linked_apps_truncated] - (Deprecated) True if the + * linked_apps list was truncated to the maximum supported length (50). + * @property {boolean} [was_linked_devices_truncated] - (Deprecated) True if the + * linked_devices list was truncated to the maximum supported length (50). + * @property {boolean} [was_linked_shared_folders_truncated] - (Deprecated) True + * if the linked_shared_folders list was truncated to the maximum supported + * length (50). + * @property {boolean} [has_linked_apps] - True if the user had linked apps at + * event time. + * @property {boolean} [has_linked_devices] - True if the user had linked apps + * at event time. + * @property {boolean} [has_linked_shared_folders] - True if the user had linked + * shared folders at event time. + */ /** + * Label type + * @typedef {Object} TeamLogLabelType + * @property {('personal_information'|'test_only'|'user_defined_tag'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information on sessions, in legacy format + * @typedef {Object} TeamLogLegacyDeviceSessionLogInfo +@property {'legacy_device_session'} [.tag] - Tag identifying this subtype +variant. This field is only present when needed to discriminate between multiple +possible subtypes. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + * @property + * {(TeamLogWebSessionLogInfo|TeamLogDesktopSessionLogInfo|TeamLogMobileSessionLogInfo|TeamLogSessionLogInfo)} + * [session_info] - Session unique id. + * @property {string} [display_name] - The device name. Might be missing due to + * historical data gap. + * @property {boolean} [is_emm_managed] - Is device managed by emm. Might be + * missing due to historical data gap. + * @property {string} [platform] - Information on the hosting platform. Might be + * missing due to historical data gap. + * @property {string} [mac_address] - The mac address of the last activity from + * this session. Might be missing due to historical data gap. + * @property {string} [os_version] - The hosting OS version. Might be missing + * due to historical data gap. + * @property {string} [device_type] - Information on the hosting device type. + * Might be missing due to historical data gap. + * @property {string} [client_version] - The Dropbox client version. Might be + * missing due to historical data gap. + * @property {string} [legacy_uniq_id] - Alternative unique device session id, + * instead of session id field. Might be missing due to historical data gap. + */ /** + * Activated a hold. + * @typedef {Object} TeamLogLegalHoldsActivateAHoldDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + * @property {Timestamp} start_date - Hold start date. + * @property {Timestamp} [end_date] - Hold end date. + */ /** + * @typedef {Object} TeamLogLegalHoldsActivateAHoldType + * @property {string} description + */ /** + * Added members to a hold. + * @typedef {Object} TeamLogLegalHoldsAddMembersDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + */ /** + * @typedef {Object} TeamLogLegalHoldsAddMembersType + * @property {string} description + */ /** + * Edited details for a hold. + * @typedef {Object} TeamLogLegalHoldsChangeHoldDetailsDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + * @property {string} previous_value - Previous details. + * @property {string} new_value - New details. + */ /** + * @typedef {Object} TeamLogLegalHoldsChangeHoldDetailsType + * @property {string} description + */ /** + * Renamed a hold. + * @typedef {Object} TeamLogLegalHoldsChangeHoldNameDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} previous_value - Previous Name. + * @property {string} new_value - New Name. + */ /** + * @typedef {Object} TeamLogLegalHoldsChangeHoldNameType + * @property {string} description + */ /** + * Exported hold. + * @typedef {Object} TeamLogLegalHoldsExportAHoldDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + * @property {string} [export_name] - Export name. + */ /** + * @typedef {Object} TeamLogLegalHoldsExportAHoldType + * @property {string} description + */ /** + * Canceled export for a hold. + * @typedef {Object} TeamLogLegalHoldsExportCancelledDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + * @property {string} export_name - Export name. + */ /** + * @typedef {Object} TeamLogLegalHoldsExportCancelledType + * @property {string} description + */ /** + * Downloaded export for a hold. + * @typedef {Object} TeamLogLegalHoldsExportDownloadedDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + * @property {string} export_name - Export name. + * @property {string} [part] - Part. + * @property {string} [file_name] - Filename. + */ /** + * @typedef {Object} TeamLogLegalHoldsExportDownloadedType + * @property {string} description + */ /** + * Removed export for a hold. + * @typedef {Object} TeamLogLegalHoldsExportRemovedDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + * @property {string} export_name - Export name. + */ /** + * @typedef {Object} TeamLogLegalHoldsExportRemovedType + * @property {string} description + */ /** + * Released a hold. + * @typedef {Object} TeamLogLegalHoldsReleaseAHoldDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + */ /** + * @typedef {Object} TeamLogLegalHoldsReleaseAHoldType + * @property {string} description + */ /** + * Removed members from a hold. + * @typedef {Object} TeamLogLegalHoldsRemoveMembersDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + */ /** + * @typedef {Object} TeamLogLegalHoldsRemoveMembersType + * @property {string} description + */ /** + * Created a summary report for a hold. + * @typedef {Object} TeamLogLegalHoldsReportAHoldDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + */ /** + * @typedef {Object} TeamLogLegalHoldsReportAHoldType + * @property {string} description + */ /** + * The device sessions that user is linked to. + * @typedef {Object} TeamLogLinkedDeviceLogInfo + * @property {TeamLogDesktopDeviceSessionLogInfo} [desktop_device_session] - + * Available if .tag is desktop_device_session. desktop device session's + * details. + * @property {TeamLogLegacyDeviceSessionLogInfo} [legacy_device_session] - + * Available if .tag is legacy_device_session. legacy device session's details. + * @property {TeamLogMobileDeviceSessionLogInfo} [mobile_device_session] - + * Available if .tag is mobile_device_session. mobile device session's details. + * @property {TeamLogWebDeviceSessionLogInfo} [web_device_session] - Available + * if .tag is web_device_session. web device session's details. + * @property {('desktop_device_session'|'legacy_device_session'|'mobile_device_session'|'web_device_session'|'other')} .tag - Tag identifying the union variant. + */ /** + * File lock status + * @typedef {Object} TeamLogLockStatus + * @property {('locked'|'unlocked'|'other')} .tag - Tag identifying the union variant. + */ /** + * Failed to sign in. + * @typedef {Object} TeamLogLoginFailDetails + * @property {TeamLogLoginMethod} login_method - Login method. + * @property {TeamLogFailureDetailsLogInfo} error_details - Error details. + * @property {boolean} [is_emm_managed] - Tells if the login device is EMM + * managed. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogLoginFailType + * @property {string} description + */ /** + * @typedef {Object} TeamLogLoginMethod + * @property {('apple_oauth'|'first_party_token_exchange'|'google_oauth'|'password'|'qr_code'|'saml'|'two_factor_authentication'|'web_session'|'other')} .tag - Tag identifying the union variant. + */ /** + * Signed in. + * @typedef {Object} TeamLogLoginSuccessDetails + * @property {TeamLogLoginMethod} login_method - Login method. + * @property {boolean} [is_emm_managed] - Tells if the login device is EMM + * managed. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogLoginSuccessType + * @property {string} description + */ /** + * Signed out. + * @typedef {Object} TeamLogLogoutDetails + * @property {string} [login_id] - Login session id. + */ /** + * @typedef {Object} TeamLogLogoutType + * @property {string} description + */ /** + * Added an external ID for team member. + * @typedef {Object} TeamLogMemberAddExternalIdDetails + * @property {string} new_value - Current external id. + */ /** + * @typedef {Object} TeamLogMemberAddExternalIdType + * @property {string} description + */ /** + * Added team member name. + * @typedef {Object} TeamLogMemberAddNameDetails + * @property {TeamLogUserNameLogInfo} new_value - New user's name. + */ /** + * @typedef {Object} TeamLogMemberAddNameType + * @property {string} description + */ /** + * Changed team member admin role. + * @typedef {Object} TeamLogMemberChangeAdminRoleDetails + * @property {TeamLogAdminRole} [new_value] - New admin role. This field is + * relevant when the admin role is changed or whenthe user role changes from no + * admin rights to with admin rights. + * @property {TeamLogAdminRole} [previous_value] - Previous admin role. This + * field is relevant when the admin role is changed or when the admin role is + * removed. + */ /** + * @typedef {Object} TeamLogMemberChangeAdminRoleType + * @property {string} description + */ /** + * Changed team member email. + * @typedef {Object} TeamLogMemberChangeEmailDetails + * @property {string} new_value - New email. + * @property {string} [previous_value] - Previous email. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogMemberChangeEmailType + * @property {string} description + */ /** + * Changed the external ID for team member. + * @typedef {Object} TeamLogMemberChangeExternalIdDetails + * @property {string} new_value - Current external id. + * @property {string} previous_value - Old external id. + */ /** + * @typedef {Object} TeamLogMemberChangeExternalIdType + * @property {string} description + */ /** + * Changed membership type (limited/full) of member. + * @typedef {Object} TeamLogMemberChangeMembershipTypeDetails + * @property {TeamLogTeamMembershipType} prev_value - Previous membership type. + * @property {TeamLogTeamMembershipType} new_value - New membership type. + */ /** + * @typedef {Object} TeamLogMemberChangeMembershipTypeType + * @property {string} description + */ /** + * Changed team member name. + * @typedef {Object} TeamLogMemberChangeNameDetails + * @property {TeamLogUserNameLogInfo} new_value - New user's name. + * @property {TeamLogUserNameLogInfo} [previous_value] - Previous user's name. + * Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogMemberChangeNameType + * @property {string} description + */ /** + * Changed team member reseller role. + * @typedef {Object} TeamLogMemberChangeResellerRoleDetails + * @property {TeamLogResellerRole} new_value - New reseller role. This field is + * relevant when the reseller role is changed. + * @property {TeamLogResellerRole} previous_value - Previous reseller role. This + * field is relevant when the reseller role is changed or when the reseller role + * is removed. + */ /** + * @typedef {Object} TeamLogMemberChangeResellerRoleType + * @property {string} description + */ /** + * Changed member status (invited, joined, suspended, etc.). + * @typedef {Object} TeamLogMemberChangeStatusDetails + * @property {TeamLogMemberStatus} new_value - New member status. + * @property {TeamLogMemberStatus} [previous_value] - Previous member status. + * Might be missing due to historical data gap. + * @property {TeamLogActionDetails} [action] - Additional information indicating + * the action taken that caused status change. + * @property {string} [new_team] - The user's new team name. This field is + * relevant when the user is transferred off the team. + * @property {string} [previous_team] - The user's previous team name. This + * field is relevant when the user is transferred onto the team. + */ /** + * @typedef {Object} TeamLogMemberChangeStatusType + * @property {string} description + */ /** + * Cleared manually added contacts. + * @typedef {Object} TeamLogMemberDeleteManualContactsDetails + */ /** + * @typedef {Object} TeamLogMemberDeleteManualContactsType + * @property {string} description + */ /** + * Deleted team member profile photo. + * @typedef {Object} TeamLogMemberDeleteProfilePhotoDetails + */ /** + * @typedef {Object} TeamLogMemberDeleteProfilePhotoType + * @property {string} description + */ /** + * Permanently deleted contents of deleted team member account. + * @typedef {Object} TeamLogMemberPermanentlyDeleteAccountContentsDetails + */ /** + * @typedef {Object} TeamLogMemberPermanentlyDeleteAccountContentsType + * @property {string} description + */ /** + * @typedef {Object} TeamLogMemberRemoveActionType + * @property {('delete'|'leave'|'offboard'|'offboard_and_retain_team_folders'|'other')} .tag - Tag identifying the union variant. + */ /** + * Removed the external ID for team member. + * @typedef {Object} TeamLogMemberRemoveExternalIdDetails + * @property {string} previous_value - Old external id. + */ /** + * @typedef {Object} TeamLogMemberRemoveExternalIdType + * @property {string} description + */ /** + * Changed whether users can find team when not invited. + * @typedef {Object} TeamLogMemberRequestsChangePolicyDetails + * @property {TeamLogMemberRequestsPolicy} new_value - New member change + * requests policy. + * @property {TeamLogMemberRequestsPolicy} [previous_value] - Previous member + * change requests policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogMemberRequestsChangePolicyType + * @property {string} description + */ /** + * @typedef {Object} TeamLogMemberRequestsPolicy + * @property {('auto_accept'|'disabled'|'require_approval'|'other')} .tag - Tag identifying the union variant. + */ /** + * Policy for controlling whether team members can send team invites + * @typedef {Object} TeamLogMemberSendInvitePolicy + * @property {('disabled'|'everyone'|'specific_members'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed member send invite policy for team. + * @typedef {Object} TeamLogMemberSendInvitePolicyChangedDetails + * @property {TeamLogMemberSendInvitePolicy} new_value - New team member send + * invite policy. + * @property {TeamLogMemberSendInvitePolicy} previous_value - Previous team + * member send invite policy. + */ /** + * @typedef {Object} TeamLogMemberSendInvitePolicyChangedType + * @property {string} description + */ /** + * Set team member profile photo. + * @typedef {Object} TeamLogMemberSetProfilePhotoDetails + */ /** + * @typedef {Object} TeamLogMemberSetProfilePhotoType + * @property {string} description + */ /** + * Set custom member space limit. + * @typedef {Object} TeamLogMemberSpaceLimitsAddCustomQuotaDetails + * @property {number} new_value - New custom quota value in bytes. + */ /** + * @typedef {Object} TeamLogMemberSpaceLimitsAddCustomQuotaType + * @property {string} description + */ /** + * Added members to member space limit exception list. + * @typedef {Object} TeamLogMemberSpaceLimitsAddExceptionDetails + */ /** + * @typedef {Object} TeamLogMemberSpaceLimitsAddExceptionType + * @property {string} description + */ /** + * Changed member space limit type for team. + * @typedef {Object} TeamLogMemberSpaceLimitsChangeCapsTypePolicyDetails + * @property {TeamLogSpaceCapsType} previous_value - Previous space limit type. + * @property {TeamLogSpaceCapsType} new_value - New space limit type. + */ /** + * @typedef {Object} TeamLogMemberSpaceLimitsChangeCapsTypePolicyType + * @property {string} description + */ /** + * Changed custom member space limit. + * @typedef {Object} TeamLogMemberSpaceLimitsChangeCustomQuotaDetails + * @property {number} previous_value - Previous custom quota value in bytes. + * @property {number} new_value - New custom quota value in bytes. + */ /** + * @typedef {Object} TeamLogMemberSpaceLimitsChangeCustomQuotaType + * @property {string} description + */ /** + * Changed team default member space limit. + * @typedef {Object} TeamLogMemberSpaceLimitsChangePolicyDetails + * @property {number} [previous_value] - Previous team default limit value in + * bytes. Might be missing due to historical data gap. + * @property {number} [new_value] - New team default limit value in bytes. Might + * be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogMemberSpaceLimitsChangePolicyType + * @property {string} description + */ /** + * Changed space limit status. + * @typedef {Object} TeamLogMemberSpaceLimitsChangeStatusDetails + * @property {TeamLogSpaceLimitsStatus} previous_value - Previous storage quota + * status. + * @property {TeamLogSpaceLimitsStatus} new_value - New storage quota status. + */ /** + * @typedef {Object} TeamLogMemberSpaceLimitsChangeStatusType + * @property {string} description + */ /** + * Removed custom member space limit. + * @typedef {Object} TeamLogMemberSpaceLimitsRemoveCustomQuotaDetails + */ /** + * @typedef {Object} TeamLogMemberSpaceLimitsRemoveCustomQuotaType + * @property {string} description + */ /** + * Removed members from member space limit exception list. + * @typedef {Object} TeamLogMemberSpaceLimitsRemoveExceptionDetails + */ /** + * @typedef {Object} TeamLogMemberSpaceLimitsRemoveExceptionType + * @property {string} description + */ /** + * @typedef {Object} TeamLogMemberStatus + * @property {('active'|'invited'|'moved_to_another_team'|'not_joined'|'removed'|'suspended'|'other')} .tag - Tag identifying the union variant. + */ /** + * Suggested person to add to team. + * @typedef {Object} TeamLogMemberSuggestDetails + * @property {Array.} suggested_members - suggested users emails. + */ /** + * @typedef {Object} TeamLogMemberSuggestType + * @property {string} description + */ /** + * Enabled/disabled option for team members to suggest people to add to team. + * @typedef {Object} TeamLogMemberSuggestionsChangePolicyDetails + * @property {TeamLogMemberSuggestionsPolicy} new_value - New team member + * suggestions policy. + * @property {TeamLogMemberSuggestionsPolicy} [previous_value] - Previous team + * member suggestions policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogMemberSuggestionsChangePolicyType + * @property {string} description + */ /** + * Member suggestions policy + * @typedef {Object} TeamLogMemberSuggestionsPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Transferred contents of deleted member account to another member. + * @typedef {Object} TeamLogMemberTransferAccountContentsDetails + */ /** + * @typedef {Object} TeamLogMemberTransferAccountContentsType + * @property {string} description + */ /** + * Internal only - fields for target team computations + * @typedef {Object} TeamLogMemberTransferredInternalFields + * @property {string} source_team_id - Internal only - team user was moved from. + * @property {string} target_team_id - Internal only - team user was moved to. + */ /** + * Enabled/disabled Microsoft Office add-in. + * @typedef {Object} TeamLogMicrosoftOfficeAddinChangePolicyDetails + * @property {TeamLogMicrosoftOfficeAddinPolicy} new_value - New Microsoft + * Office addin policy. + * @property {TeamLogMicrosoftOfficeAddinPolicy} [previous_value] - Previous + * Microsoft Office addin policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogMicrosoftOfficeAddinChangePolicyType + * @property {string} description + */ /** + * Microsoft Office addin policy + * @typedef {Object} TeamLogMicrosoftOfficeAddinPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * An indication that an error occurred while retrieving the event. Some + * attributes of the event may be omitted as a result. + * @typedef {Object} TeamLogMissingDetails + * @property {string} [source_event_fields] - All the data that could be + * retrieved and converted from the source event. + */ /** + * Information about linked Dropbox mobile client sessions + * @typedef {Object} TeamLogMobileDeviceSessionLogInfo +@property {'mobile_device_session'} [.tag] - Tag identifying this subtype +variant. This field is only present when needed to discriminate between multiple +possible subtypes. + * @property {string} device_name - The device name. + * @property {TeamMobileClientPlatform} client_type - The mobile application + * type. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + * @property {TeamLogMobileSessionLogInfo} [session_info] - Mobile session + * unique id. + * @property {string} [client_version] - The Dropbox client version. + * @property {string} [os_version] - The hosting OS version. + * @property {string} [last_carrier] - last carrier used by the device. + */ /** + * Mobile session. + * @typedef {Object} TeamLogMobileSessionLogInfo +@property {'mobile'} [.tag] - Tag identifying this subtype variant. This field +is only present when needed to discriminate between multiple possible subtypes. + * @property {string} [session_id] - Session ID. + */ /** + * Namespace relative path details. + * @typedef {Object} TeamLogNamespaceRelativePathLogInfo + * @property {string} [ns_id] - Namespace ID. + * @property {string} [relative_path] - A path relative to the specified + * namespace ID. + * @property {boolean} [is_shared_namespace] - True if the namespace is shared. + */ /** + * Enabled/disabled network control. + * @typedef {Object} TeamLogNetworkControlChangePolicyDetails + * @property {TeamLogNetworkControlPolicy} new_value - New network control + * policy. + * @property {TeamLogNetworkControlPolicy} [previous_value] - Previous network + * control policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogNetworkControlChangePolicyType + * @property {string} description + */ /** + * Network control policy + * @typedef {Object} TeamLogNetworkControlPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Report created: Links created with no expiration. + * @typedef {Object} TeamLogNoExpirationLinkGenCreateReportDetails + * @property {Timestamp} start_date - Report start date. + * @property {Timestamp} end_date - Report end date. + */ /** + * @typedef {Object} TeamLogNoExpirationLinkGenCreateReportType + * @property {string} description + */ /** + * Couldn't create report: Links created with no expiration. + * @typedef {Object} TeamLogNoExpirationLinkGenReportFailedDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ /** + * @typedef {Object} TeamLogNoExpirationLinkGenReportFailedType + * @property {string} description + */ /** + * Report created: Links created without passwords. + * @typedef {Object} TeamLogNoPasswordLinkGenCreateReportDetails + * @property {Timestamp} start_date - Report start date. + * @property {Timestamp} end_date - Report end date. + */ /** + * @typedef {Object} TeamLogNoPasswordLinkGenCreateReportType + * @property {string} description + */ /** + * Couldn't create report: Links created without passwords. + * @typedef {Object} TeamLogNoPasswordLinkGenReportFailedDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ /** + * @typedef {Object} TeamLogNoPasswordLinkGenReportFailedType + * @property {string} description + */ /** + * Report created: Views of links without passwords. + * @typedef {Object} TeamLogNoPasswordLinkViewCreateReportDetails + * @property {Timestamp} start_date - Report start date. + * @property {Timestamp} end_date - Report end date. + */ /** + * @typedef {Object} TeamLogNoPasswordLinkViewCreateReportType + * @property {string} description + */ /** + * Couldn't create report: Views of links without passwords. + * @typedef {Object} TeamLogNoPasswordLinkViewReportFailedDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ /** + * @typedef {Object} TeamLogNoPasswordLinkViewReportFailedType + * @property {string} description + */ /** + * Non team member's logged information. + * @typedef {Object} TeamLogNonTeamMemberLogInfo +@property {'non_team_member'} [.tag] - Tag identifying this subtype variant. +This field is only present when needed to discriminate between multiple possible +subtypes. + * @property {string} [account_id] - User unique ID. + * @property {string} [display_name] - User display name. + * @property {string} [email] - User email address. + */ /** + * The email to which the request was sent + * @typedef {Object} TeamLogNonTrustedTeamDetails + * @property {string} team - The email to which the request was sent. + */ /** + * Changed Paper doc to invite-only. + * @typedef {Object} TeamLogNoteAclInviteOnlyDetails + */ /** + * @typedef {Object} TeamLogNoteAclInviteOnlyType + * @property {string} description + */ /** + * Changed Paper doc to link-accessible. + * @typedef {Object} TeamLogNoteAclLinkDetails + */ /** + * @typedef {Object} TeamLogNoteAclLinkType + * @property {string} description + */ /** + * Changed Paper doc to link-accessible for team. + * @typedef {Object} TeamLogNoteAclTeamLinkDetails + */ /** + * @typedef {Object} TeamLogNoteAclTeamLinkType + * @property {string} description + */ /** + * Shared received Paper doc. + * @typedef {Object} TeamLogNoteShareReceiveDetails + */ /** + * @typedef {Object} TeamLogNoteShareReceiveType + * @property {string} description + */ /** + * Shared Paper doc. + * @typedef {Object} TeamLogNoteSharedDetails + */ /** + * @typedef {Object} TeamLogNoteSharedType + * @property {string} description + */ /** + * Added a label. + * @typedef {Object} TeamLogObjectLabelAddedDetails + * @property {TeamLogLabelType} label_type - Labels mark a file or folder. + */ /** + * @typedef {Object} TeamLogObjectLabelAddedType + * @property {string} description + */ /** + * Removed a label. + * @typedef {Object} TeamLogObjectLabelRemovedDetails + * @property {TeamLogLabelType} label_type - Labels mark a file or folder. + */ /** + * @typedef {Object} TeamLogObjectLabelRemovedType + * @property {string} description + */ /** + * Updated a label's value. + * @typedef {Object} TeamLogObjectLabelUpdatedValueDetails + * @property {TeamLogLabelType} label_type - Labels mark a file or folder. + */ /** + * @typedef {Object} TeamLogObjectLabelUpdatedValueType + * @property {string} description + */ /** + * Opened shared Paper doc. + * @typedef {Object} TeamLogOpenNoteSharedDetails + */ /** + * @typedef {Object} TeamLogOpenNoteSharedType + * @property {string} description + */ /** + * More details about the organization. + * @typedef {Object} TeamLogOrganizationDetails + * @property {string} organization - The name of the organization. + */ /** + * The name of the organization + * @typedef {Object} TeamLogOrganizationName + * @property {string} organization - The name of the organization. + */ /** + * Organized a folder with multi-file organize. + * @typedef {Object} TeamLogOrganizeFolderWithTidyDetails + */ /** + * @typedef {Object} TeamLogOrganizeFolderWithTidyType + * @property {string} description + */ /** + * The origin from which the actor performed the action. + * @typedef {Object} TeamLogOriginLogInfo + * @property {TeamLogAccessMethodLogInfo} access_method - The method that was + * used to perform the action. + * @property {TeamLogGeoLocationLogInfo} [geo_location] - Geographic location + * details. + */ /** + * Report created: Views of old links. + * @typedef {Object} TeamLogOutdatedLinkViewCreateReportDetails + * @property {Timestamp} start_date - Report start date. + * @property {Timestamp} end_date - Report end date. + */ /** + * @typedef {Object} TeamLogOutdatedLinkViewCreateReportType + * @property {string} description + */ /** + * Couldn't create report: Views of old links. + * @typedef {Object} TeamLogOutdatedLinkViewReportFailedDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ /** + * @typedef {Object} TeamLogOutdatedLinkViewReportFailedType + * @property {string} description + */ /** + * @typedef {Object} TeamLogPaperAccessType + * @property {('commenter'|'editor'|'viewer'|'other')} .tag - Tag identifying the union variant. + */ /** + * Exported all team Paper docs. + * @typedef {Object} TeamLogPaperAdminExportStartDetails + */ /** + * @typedef {Object} TeamLogPaperAdminExportStartType + * @property {string} description + */ /** + * Changed whether Dropbox Paper, when enabled, is deployed to all members or to + * specific members. + * @typedef {Object} TeamLogPaperChangeDeploymentPolicyDetails + * @property {TeamPoliciesPaperDeploymentPolicy} new_value - New Dropbox Paper + * deployment policy. + * @property {TeamPoliciesPaperDeploymentPolicy} [previous_value] - Previous + * Dropbox Paper deployment policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogPaperChangeDeploymentPolicyType + * @property {string} description + */ /** + * Changed whether non-members can view Paper docs with link. + * @typedef {Object} TeamLogPaperChangeMemberLinkPolicyDetails + * @property {TeamLogPaperMemberPolicy} new_value - New paper external link + * accessibility policy. + */ /** + * @typedef {Object} TeamLogPaperChangeMemberLinkPolicyType + * @property {string} description + */ /** + * Changed whether members can share Paper docs outside team, and if docs are + * accessible only by team members or anyone by default. + * @typedef {Object} TeamLogPaperChangeMemberPolicyDetails + * @property {TeamLogPaperMemberPolicy} new_value - New paper external + * accessibility policy. + * @property {TeamLogPaperMemberPolicy} [previous_value] - Previous paper + * external accessibility policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogPaperChangeMemberPolicyType + * @property {string} description + */ /** + * Enabled/disabled Dropbox Paper for team. + * @typedef {Object} TeamLogPaperChangePolicyDetails + * @property {TeamPoliciesPaperEnabledPolicy} new_value - New Dropbox Paper + * policy. + * @property {TeamPoliciesPaperEnabledPolicy} [previous_value] - Previous + * Dropbox Paper policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogPaperChangePolicyType + * @property {string} description + */ /** + * Added users and/or groups to Paper doc/folder. + * @typedef {Object} TeamLogPaperContentAddMemberDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperContentAddMemberType + * @property {string} description + */ /** + * Added Paper doc/folder to folder. + * @typedef {Object} TeamLogPaperContentAddToFolderDetails + * @property {string} event_uuid - Event unique identifier. + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {number} parent_asset_index - Parent asset position in the Assets + * list. + */ /** + * @typedef {Object} TeamLogPaperContentAddToFolderType + * @property {string} description + */ /** + * Archived Paper doc/folder. + * @typedef {Object} TeamLogPaperContentArchiveDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperContentArchiveType + * @property {string} description + */ /** + * Created Paper doc/folder. + * @typedef {Object} TeamLogPaperContentCreateDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperContentCreateType + * @property {string} description + */ /** + * Permanently deleted Paper doc/folder. + * @typedef {Object} TeamLogPaperContentPermanentlyDeleteDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperContentPermanentlyDeleteType + * @property {string} description + */ /** + * Removed Paper doc/folder from folder. + * @typedef {Object} TeamLogPaperContentRemoveFromFolderDetails + * @property {string} event_uuid - Event unique identifier. + * @property {number} [target_asset_index] - Target asset position in the Assets + * list. + * @property {number} [parent_asset_index] - Parent asset position in the Assets + * list. + */ /** + * @typedef {Object} TeamLogPaperContentRemoveFromFolderType + * @property {string} description + */ /** + * Removed users and/or groups from Paper doc/folder. + * @typedef {Object} TeamLogPaperContentRemoveMemberDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperContentRemoveMemberType + * @property {string} description + */ /** + * Renamed Paper doc/folder. + * @typedef {Object} TeamLogPaperContentRenameDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperContentRenameType + * @property {string} description + */ /** + * Restored archived Paper doc/folder. + * @typedef {Object} TeamLogPaperContentRestoreDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperContentRestoreType + * @property {string} description + */ /** + * Policy to set default access for newly created Paper folders. + * @typedef {Object} TeamLogPaperDefaultFolderPolicy + * @property {('everyone_in_team'|'invite_only'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed Paper Default Folder Policy setting for team. + * @typedef {Object} TeamLogPaperDefaultFolderPolicyChangedDetails + * @property {TeamLogPaperDefaultFolderPolicy} new_value - New Paper Default + * Folder Policy. + * @property {TeamLogPaperDefaultFolderPolicy} previous_value - Previous Paper + * Default Folder Policy. + */ /** + * @typedef {Object} TeamLogPaperDefaultFolderPolicyChangedType + * @property {string} description + */ /** + * Policy for controlling if team members can use Paper Desktop + * @typedef {Object} TeamLogPaperDesktopPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Enabled/disabled Paper Desktop for team. + * @typedef {Object} TeamLogPaperDesktopPolicyChangedDetails + * @property {TeamLogPaperDesktopPolicy} new_value - New Paper Desktop policy. + * @property {TeamLogPaperDesktopPolicy} previous_value - Previous Paper Desktop + * policy. + */ /** + * @typedef {Object} TeamLogPaperDesktopPolicyChangedType + * @property {string} description + */ /** + * Added Paper doc comment. + * @typedef {Object} TeamLogPaperDocAddCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogPaperDocAddCommentType + * @property {string} description + */ /** + * Changed member permissions for Paper doc. + * @typedef {Object} TeamLogPaperDocChangeMemberRoleDetails + * @property {string} event_uuid - Event unique identifier. + * @property {TeamLogPaperAccessType} access_type - Paper doc access type. + */ /** + * @typedef {Object} TeamLogPaperDocChangeMemberRoleType + * @property {string} description + */ /** + * Changed sharing setting for Paper doc. + * @typedef {Object} TeamLogPaperDocChangeSharingPolicyDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [public_sharing_policy] - Sharing policy with external + * users. + * @property {string} [team_sharing_policy] - Sharing policy with team. + */ /** + * @typedef {Object} TeamLogPaperDocChangeSharingPolicyType + * @property {string} description + */ /** + * Followed/unfollowed Paper doc. + * @typedef {Object} TeamLogPaperDocChangeSubscriptionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} new_subscription_level - New doc subscription level. + * @property {string} [previous_subscription_level] - Previous doc subscription + * level. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogPaperDocChangeSubscriptionType + * @property {string} description + */ /** + * Deleted Paper doc comment. + * @typedef {Object} TeamLogPaperDocDeleteCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogPaperDocDeleteCommentType + * @property {string} description + */ /** + * Archived Paper doc. + * @typedef {Object} TeamLogPaperDocDeletedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocDeletedType + * @property {string} description + */ /** + * Downloaded Paper doc in specific format. + * @typedef {Object} TeamLogPaperDocDownloadDetails + * @property {string} event_uuid - Event unique identifier. + * @property {TeamLogPaperDownloadFormat} export_file_format - Export file + * format. + */ /** + * @typedef {Object} TeamLogPaperDocDownloadType + * @property {string} description + */ /** + * Edited Paper doc comment. + * @typedef {Object} TeamLogPaperDocEditCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogPaperDocEditCommentType + * @property {string} description + */ /** + * Edited Paper doc. + * @typedef {Object} TeamLogPaperDocEditDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocEditType + * @property {string} description + */ /** + * Followed Paper doc. + * @typedef {Object} TeamLogPaperDocFollowedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocFollowedType + * @property {string} description + */ /** + * Mentioned user in Paper doc. + * @typedef {Object} TeamLogPaperDocMentionDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocMentionType + * @property {string} description + */ /** + * Transferred ownership of Paper doc. + * @typedef {Object} TeamLogPaperDocOwnershipChangedDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} new_owner_user_id - New owner. + * @property {string} [old_owner_user_id] - Previous owner. + */ /** + * @typedef {Object} TeamLogPaperDocOwnershipChangedType + * @property {string} description + */ /** + * Requested access to Paper doc. + * @typedef {Object} TeamLogPaperDocRequestAccessDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocRequestAccessType + * @property {string} description + */ /** + * Resolved Paper doc comment. + * @typedef {Object} TeamLogPaperDocResolveCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogPaperDocResolveCommentType + * @property {string} description + */ /** + * Restored Paper doc to previous version. + * @typedef {Object} TeamLogPaperDocRevertDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocRevertType + * @property {string} description + */ /** + * Shared Paper doc via Slack. + * @typedef {Object} TeamLogPaperDocSlackShareDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocSlackShareType + * @property {string} description + */ /** + * Shared Paper doc with users and/or groups. + * @typedef {Object} TeamLogPaperDocTeamInviteDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocTeamInviteType + * @property {string} description + */ /** + * Deleted Paper doc. + * @typedef {Object} TeamLogPaperDocTrashedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocTrashedType + * @property {string} description + */ /** + * Unresolved Paper doc comment. + * @typedef {Object} TeamLogPaperDocUnresolveCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogPaperDocUnresolveCommentType + * @property {string} description + */ /** + * Restored Paper doc. + * @typedef {Object} TeamLogPaperDocUntrashedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocUntrashedType + * @property {string} description + */ /** + * Viewed Paper doc. + * @typedef {Object} TeamLogPaperDocViewDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocViewType + * @property {string} description + */ /** + * Paper document's logged information. + * @typedef {Object} TeamLogPaperDocumentLogInfo + * @property {string} doc_id - Papers document Id. + * @property {string} doc_title - Paper document title. + */ /** + * @typedef {Object} TeamLogPaperDownloadFormat + * @property {('docx'|'html'|'markdown'|'pdf'|'other')} .tag - Tag identifying the union variant. + */ /** + * Added users to Paper-enabled users list. + * @typedef {Object} TeamLogPaperEnabledUsersGroupAdditionDetails + */ /** + * @typedef {Object} TeamLogPaperEnabledUsersGroupAdditionType + * @property {string} description + */ /** + * Removed users from Paper-enabled users list. + * @typedef {Object} TeamLogPaperEnabledUsersGroupRemovalDetails + */ /** + * @typedef {Object} TeamLogPaperEnabledUsersGroupRemovalType + * @property {string} description + */ /** + * Changed Paper external sharing setting to anyone. + * @typedef {Object} TeamLogPaperExternalViewAllowDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperExternalViewAllowType + * @property {string} description + */ /** + * Changed Paper external sharing setting to default team. + * @typedef {Object} TeamLogPaperExternalViewDefaultTeamDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperExternalViewDefaultTeamType + * @property {string} description + */ /** + * Changed Paper external sharing setting to team-only. + * @typedef {Object} TeamLogPaperExternalViewForbidDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperExternalViewForbidType + * @property {string} description + */ /** + * Followed/unfollowed Paper folder. + * @typedef {Object} TeamLogPaperFolderChangeSubscriptionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} new_subscription_level - New folder subscription level. + * @property {string} [previous_subscription_level] - Previous folder + * subscription level. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogPaperFolderChangeSubscriptionType + * @property {string} description + */ /** + * Archived Paper folder. + * @typedef {Object} TeamLogPaperFolderDeletedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperFolderDeletedType + * @property {string} description + */ /** + * Followed Paper folder. + * @typedef {Object} TeamLogPaperFolderFollowedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperFolderFollowedType + * @property {string} description + */ /** + * Paper folder's logged information. + * @typedef {Object} TeamLogPaperFolderLogInfo + * @property {string} folder_id - Papers folder Id. + * @property {string} folder_name - Paper folder name. + */ /** + * Shared Paper folder with users and/or groups. + * @typedef {Object} TeamLogPaperFolderTeamInviteDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperFolderTeamInviteType + * @property {string} description + */ /** + * Policy for controlling if team members can share Paper documents externally. + * @typedef {Object} TeamLogPaperMemberPolicy + * @property {('anyone_with_link'|'only_team'|'team_and_explicitly_shared'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed permissions for published doc. + * @typedef {Object} TeamLogPaperPublishedLinkChangePermissionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} new_permission_level - New permission level. + * @property {string} previous_permission_level - Previous permission level. + */ /** + * @typedef {Object} TeamLogPaperPublishedLinkChangePermissionType + * @property {string} description + */ /** + * Published doc. + * @typedef {Object} TeamLogPaperPublishedLinkCreateDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperPublishedLinkCreateType + * @property {string} description + */ /** + * Unpublished doc. + * @typedef {Object} TeamLogPaperPublishedLinkDisabledDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperPublishedLinkDisabledType + * @property {string} description + */ /** + * Viewed published doc. + * @typedef {Object} TeamLogPaperPublishedLinkViewDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperPublishedLinkViewType + * @property {string} description + */ /** + * A user or group + * @typedef {Object} TeamLogParticipantLogInfo + * @property {TeamLogGroupLogInfo} [group] - Available if .tag is group. Group + * details. + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [user] - Available if .tag is user. A user with a Dropbox account. + * @property {('group'|'user'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogPassPolicy + * @property {('allow'|'disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed password. + * @typedef {Object} TeamLogPasswordChangeDetails + */ /** + * @typedef {Object} TeamLogPasswordChangeType + * @property {string} description + */ /** + * Reset all team member passwords. + * @typedef {Object} TeamLogPasswordResetAllDetails + */ /** + * @typedef {Object} TeamLogPasswordResetAllType + * @property {string} description + */ /** + * Reset password. + * @typedef {Object} TeamLogPasswordResetDetails + */ /** + * @typedef {Object} TeamLogPasswordResetType + * @property {string} description + */ /** + * Changed team password strength requirements. + * @typedef {Object} TeamLogPasswordStrengthRequirementsChangePolicyDetails + * @property {TeamPoliciesPasswordStrengthPolicy} previous_value - Old password + * strength policy. + * @property {TeamPoliciesPasswordStrengthPolicy} new_value - New password + * strength policy. + */ /** + * @typedef {Object} TeamLogPasswordStrengthRequirementsChangePolicyType + * @property {string} description + */ /** + * Path's details. + * @typedef {Object} TeamLogPathLogInfo + * @property {TeamLogNamespaceRelativePathLogInfo} namespace_relative - Path + * relative to the namespace containing the content. + * @property {string} [contextual] - Fully qualified path relative to event's + * context. + */ /** + * Added pending secondary email. + * @typedef {Object} TeamLogPendingSecondaryEmailAddedDetails + * @property {string} secondary_email - New pending secondary email. + */ /** + * @typedef {Object} TeamLogPendingSecondaryEmailAddedType + * @property {string} description + */ /** + * Enabled/disabled ability of team members to permanently delete content. + * @typedef {Object} TeamLogPermanentDeleteChangePolicyDetails + * @property {TeamLogContentPermanentDeletePolicy} new_value - New permanent + * delete content policy. + * @property {TeamLogContentPermanentDeletePolicy} [previous_value] - Previous + * permanent delete content policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogPermanentDeleteChangePolicyType + * @property {string} description + */ /** + * @typedef {Object} TeamLogPlacementRestriction + * @property {('australia_only'|'europe_only'|'japan_only'|'none'|'uk_only'|'us_s3_only'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogPolicyType + * @property {('disposition'|'retention'|'other')} .tag - Tag identifying the union variant. + */ /** + * Team merge request acceptance details shown to the primary team + * @typedef {Object} TeamLogPrimaryTeamRequestAcceptedDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * Team merge request cancellation details shown to the primary team + * @typedef {Object} TeamLogPrimaryTeamRequestCanceledDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * Team merge request expiration details shown to the primary team + * @typedef {Object} TeamLogPrimaryTeamRequestExpiredDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * Team merge request reminder details shown to the primary team + * @typedef {Object} TeamLogPrimaryTeamRequestReminderDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_to - The name of the primary team admin the request + * was sent to. + */ /** + * Quick action type. + * @typedef {Object} TeamLogQuickActionType + * @property {('delete_shared_link'|'reset_password'|'restore_file_or_folder'|'unlink_app'|'unlink_device'|'unlink_session'|'other')} .tag - Tag identifying the union variant. + */ /** + * Recipients Configuration + * @typedef {Object} TeamLogRecipientsConfiguration + * @property {TeamLogAlertRecipientsSettingType} [recipient_setting_type] - + * Recipients setting type. + * @property {Array.} [emails] - A list of user emails to notify. + * @property {Array.} [groups] - A list of groups to notify. + */ /** + * Provides the indices of the source asset and the destination asset for a + * relocate action. + * @typedef {Object} TeamLogRelocateAssetReferencesLogInfo + * @property {number} src_asset_index - Source asset position in the Assets + * list. + * @property {number} dest_asset_index - Destination asset position in the + * Assets list. + */ /** + * Reseller information. + * @typedef {Object} TeamLogResellerLogInfo + * @property {string} reseller_name - Reseller name. + * @property {string} reseller_email - Reseller email. + */ /** + * @typedef {Object} TeamLogResellerRole + * @property {('not_reseller'|'reseller_admin'|'other')} .tag - Tag identifying the union variant. + */ /** + * Enabled/disabled reseller support. + * @typedef {Object} TeamLogResellerSupportChangePolicyDetails + * @property {TeamLogResellerSupportPolicy} new_value - New Reseller support + * policy. + * @property {TeamLogResellerSupportPolicy} previous_value - Previous Reseller + * support policy. + */ /** + * @typedef {Object} TeamLogResellerSupportChangePolicyType + * @property {string} description + */ /** + * Policy for controlling if reseller can access the admin console as + * administrator + * @typedef {Object} TeamLogResellerSupportPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Ended reseller support session. + * @typedef {Object} TeamLogResellerSupportSessionEndDetails + */ /** + * @typedef {Object} TeamLogResellerSupportSessionEndType + * @property {string} description + */ /** + * Started reseller support session. + * @typedef {Object} TeamLogResellerSupportSessionStartDetails + */ /** + * @typedef {Object} TeamLogResellerSupportSessionStartType + * @property {string} description + */ /** + * Rewound a folder. + * @typedef {Object} TeamLogRewindFolderDetails + * @property {Timestamp} rewind_folder_target_ts_ms - Folder was Rewound to this + * date. + */ /** + * @typedef {Object} TeamLogRewindFolderType + * @property {string} description + */ /** + * Policy for controlling whether team members can rewind + * @typedef {Object} TeamLogRewindPolicy + * @property {('admins_only'|'everyone'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed Rewind policy for team. + * @typedef {Object} TeamLogRewindPolicyChangedDetails + * @property {TeamLogRewindPolicy} new_value - New Dropbox Rewind policy. + * @property {TeamLogRewindPolicy} previous_value - Previous Dropbox Rewind + * policy. + */ /** + * @typedef {Object} TeamLogRewindPolicyChangedType + * @property {string} description + */ /** + * Deleted secondary email. + * @typedef {Object} TeamLogSecondaryEmailDeletedDetails + * @property {string} secondary_email - Deleted secondary email. + */ /** + * @typedef {Object} TeamLogSecondaryEmailDeletedType + * @property {string} description + */ /** + * Verified secondary email. + * @typedef {Object} TeamLogSecondaryEmailVerifiedDetails + * @property {string} secondary_email - Verified secondary email. + */ /** + * @typedef {Object} TeamLogSecondaryEmailVerifiedType + * @property {string} description + */ /** + * @typedef {Object} TeamLogSecondaryMailsPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Secondary mails policy changed. + * @typedef {Object} TeamLogSecondaryMailsPolicyChangedDetails + * @property {TeamLogSecondaryMailsPolicy} previous_value - Previous secondary + * mails policy. + * @property {TeamLogSecondaryMailsPolicy} new_value - New secondary mails + * policy. + */ /** + * @typedef {Object} TeamLogSecondaryMailsPolicyChangedType + * @property {string} description + */ /** + * Team merge request acceptance details shown to the secondary team + * @typedef {Object} TeamLogSecondaryTeamRequestAcceptedDetails + * @property {string} primary_team - The primary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * Team merge request cancellation details shown to the secondary team + * @typedef {Object} TeamLogSecondaryTeamRequestCanceledDetails + * @property {string} sent_to - The email of the primary team admin that the + * request was sent to. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * Team merge request expiration details shown to the secondary team + * @typedef {Object} TeamLogSecondaryTeamRequestExpiredDetails + * @property {string} sent_to - The email of the primary team admin the request + * was sent to. + */ /** + * Team merge request reminder details shown to the secondary team + * @typedef {Object} TeamLogSecondaryTeamRequestReminderDetails + * @property {string} sent_to - The email of the primary team admin the request + * was sent to. + */ /** + * Policy for controlling team access to send for signature feature + * @typedef {Object} TeamLogSendForSignaturePolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed send for signature policy for team. + * @typedef {Object} TeamLogSendForSignaturePolicyChangedDetails + * @property {TeamLogSendForSignaturePolicy} new_value - New send for signature + * policy. + * @property {TeamLogSendForSignaturePolicy} previous_value - Previous send for + * signature policy. + */ /** + * @typedef {Object} TeamLogSendForSignaturePolicyChangedType + * @property {string} description + */ /** + * Session's logged information. + * @typedef {Object} TeamLogSessionLogInfo +@property {("web"|"desktop"|"mobile")} .tag - Tag identifying the subtype +variant. + * @property {string} [session_id] - Session ID. + */ /** + * Added team to shared folder. + * @typedef {Object} TeamLogSfAddGroupDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} team_name - Team name. + * @property {string} [sharing_permission] - Sharing permission. + */ /** + * @typedef {Object} TeamLogSfAddGroupType + * @property {string} description + */ /** + * Allowed non-collaborators to view links to files in shared folder. + * @typedef {Object} TeamLogSfAllowNonMembersToViewSharedLinksDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [shared_folder_type] - Shared folder type. + */ /** + * @typedef {Object} TeamLogSfAllowNonMembersToViewSharedLinksType + * @property {string} description + */ /** + * Set team members to see warning before sharing folders outside team. + * @typedef {Object} TeamLogSfExternalInviteWarnDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [new_sharing_permission] - New sharing permission. + * @property {string} [previous_sharing_permission] - Previous sharing + * permission. + */ /** + * @typedef {Object} TeamLogSfExternalInviteWarnType + * @property {string} description + */ /** + * Changed Facebook user's role in shared folder. + * @typedef {Object} TeamLogSfFbInviteChangeRoleDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [previous_sharing_permission] - Previous sharing + * permission. + * @property {string} [new_sharing_permission] - New sharing permission. + */ /** + * @typedef {Object} TeamLogSfFbInviteChangeRoleType + * @property {string} description + */ /** + * Invited Facebook users to shared folder. + * @typedef {Object} TeamLogSfFbInviteDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [sharing_permission] - Sharing permission. + */ /** + * @typedef {Object} TeamLogSfFbInviteType + * @property {string} description + */ /** + * Uninvited Facebook user from shared folder. + * @typedef {Object} TeamLogSfFbUninviteDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + */ /** + * @typedef {Object} TeamLogSfFbUninviteType + * @property {string} description + */ /** + * Invited group to shared folder. + * @typedef {Object} TeamLogSfInviteGroupDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + */ /** + * @typedef {Object} TeamLogSfInviteGroupType + * @property {string} description + */ /** + * Granted access to shared folder. + * @typedef {Object} TeamLogSfTeamGrantAccessDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + */ /** + * @typedef {Object} TeamLogSfTeamGrantAccessType + * @property {string} description + */ /** + * Changed team member's role in shared folder. + * @typedef {Object} TeamLogSfTeamInviteChangeRoleDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [new_sharing_permission] - New sharing permission. + * @property {string} [previous_sharing_permission] - Previous sharing + * permission. + */ /** + * @typedef {Object} TeamLogSfTeamInviteChangeRoleType + * @property {string} description + */ /** + * Invited team members to shared folder. + * @typedef {Object} TeamLogSfTeamInviteDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [sharing_permission] - Sharing permission. + */ /** + * @typedef {Object} TeamLogSfTeamInviteType + * @property {string} description + */ /** + * Joined team member's shared folder. + * @typedef {Object} TeamLogSfTeamJoinDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + */ /** + * Joined team member's shared folder from link. + * @typedef {Object} TeamLogSfTeamJoinFromOobLinkDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [token_key] - Shared link token key. + * @property {string} [sharing_permission] - Sharing permission. + */ /** + * @typedef {Object} TeamLogSfTeamJoinFromOobLinkType + * @property {string} description + */ /** + * @typedef {Object} TeamLogSfTeamJoinType + * @property {string} description + */ /** + * Unshared folder with team member. + * @typedef {Object} TeamLogSfTeamUninviteDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + */ /** + * @typedef {Object} TeamLogSfTeamUninviteType + * @property {string} description + */ /** + * Invited user to Dropbox and added them to shared file/folder. + * @typedef {Object} TeamLogSharedContentAddInviteesDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {Array.} invitees - A list of invitees. + */ /** + * @typedef {Object} TeamLogSharedContentAddInviteesType + * @property {string} description + */ /** + * Added expiration date to link for shared file/folder. + * @typedef {Object} TeamLogSharedContentAddLinkExpiryDetails + * @property {Timestamp} [new_value] - New shared content link expiration date. + * Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedContentAddLinkExpiryType + * @property {string} description + */ /** + * Added password to link for shared file/folder. + * @typedef {Object} TeamLogSharedContentAddLinkPasswordDetails + */ /** + * @typedef {Object} TeamLogSharedContentAddLinkPasswordType + * @property {string} description + */ /** + * Added users and/or groups to shared file/folder. + * @typedef {Object} TeamLogSharedContentAddMemberDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + */ /** + * @typedef {Object} TeamLogSharedContentAddMemberType + * @property {string} description + */ /** + * Changed whether members can download shared file/folder. + * @typedef {Object} TeamLogSharedContentChangeDownloadsPolicyDetails + * @property {TeamLogDownloadPolicyType} new_value - New downloads policy. + * @property {TeamLogDownloadPolicyType} [previous_value] - Previous downloads + * policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedContentChangeDownloadsPolicyType + * @property {string} description + */ /** + * Changed access type of invitee to shared file/folder before invite was + * accepted. + * @typedef {Object} TeamLogSharedContentChangeInviteeRoleDetails + * @property {SharingAccessLevel} new_access_level - New access level. + * @property {string} invitee - The invitee whose role was changed. + * @property {SharingAccessLevel} [previous_access_level] - Previous access + * level. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedContentChangeInviteeRoleType + * @property {string} description + */ /** + * Changed link audience of shared file/folder. + * @typedef {Object} TeamLogSharedContentChangeLinkAudienceDetails + * @property {SharingLinkAudience} new_value - New link audience value. + * @property {SharingLinkAudience} [previous_value] - Previous link audience + * value. + */ /** + * @typedef {Object} TeamLogSharedContentChangeLinkAudienceType + * @property {string} description + */ /** + * Changed link expiration of shared file/folder. + * @typedef {Object} TeamLogSharedContentChangeLinkExpiryDetails + * @property {Timestamp} [new_value] - New shared content link expiration date. + * Might be missing due to historical data gap. + * @property {Timestamp} [previous_value] - Previous shared content link + * expiration date. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedContentChangeLinkExpiryType + * @property {string} description + */ /** + * Changed link password of shared file/folder. + * @typedef {Object} TeamLogSharedContentChangeLinkPasswordDetails + */ /** + * @typedef {Object} TeamLogSharedContentChangeLinkPasswordType + * @property {string} description + */ /** + * Changed access type of shared file/folder member. + * @typedef {Object} TeamLogSharedContentChangeMemberRoleDetails + * @property {SharingAccessLevel} new_access_level - New access level. + * @property {SharingAccessLevel} [previous_access_level] - Previous access + * level. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedContentChangeMemberRoleType + * @property {string} description + */ /** + * Changed whether members can see who viewed shared file/folder. + * @typedef {Object} TeamLogSharedContentChangeViewerInfoPolicyDetails + * @property {SharingViewerInfoPolicy} new_value - New viewer info policy. + * @property {SharingViewerInfoPolicy} [previous_value] - Previous view info + * policy. + */ /** + * @typedef {Object} TeamLogSharedContentChangeViewerInfoPolicyType + * @property {string} description + */ /** + * Acquired membership of shared file/folder by accepting invite. + * @typedef {Object} TeamLogSharedContentClaimInvitationDetails + * @property {string} [shared_content_link] - Shared content link. + */ /** + * @typedef {Object} TeamLogSharedContentClaimInvitationType + * @property {string} description + */ /** + * Copied shared file/folder to own Dropbox. + * @typedef {Object} TeamLogSharedContentCopyDetails + * @property {string} shared_content_link - Shared content link. + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} destination_path - The path where the member saved the + * content. + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_content_owner] - The shared content owner. + */ /** + * @typedef {Object} TeamLogSharedContentCopyType + * @property {string} description + */ /** + * Downloaded shared file/folder. + * @typedef {Object} TeamLogSharedContentDownloadDetails + * @property {string} shared_content_link - Shared content link. + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_content_owner] - The shared content owner. + */ /** + * @typedef {Object} TeamLogSharedContentDownloadType + * @property {string} description + */ /** + * Left shared file/folder. + * @typedef {Object} TeamLogSharedContentRelinquishMembershipDetails + */ /** + * @typedef {Object} TeamLogSharedContentRelinquishMembershipType + * @property {string} description + */ /** + * Removed invitee from shared file/folder before invite was accepted. + * @typedef {Object} TeamLogSharedContentRemoveInviteesDetails + * @property {Array.} invitees - A list of invitees. + */ /** + * @typedef {Object} TeamLogSharedContentRemoveInviteesType + * @property {string} description + */ /** + * Removed link expiration date of shared file/folder. + * @typedef {Object} TeamLogSharedContentRemoveLinkExpiryDetails + * @property {Timestamp} [previous_value] - Previous shared content link + * expiration date. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedContentRemoveLinkExpiryType + * @property {string} description + */ /** + * Removed link password of shared file/folder. + * @typedef {Object} TeamLogSharedContentRemoveLinkPasswordDetails + */ /** + * @typedef {Object} TeamLogSharedContentRemoveLinkPasswordType + * @property {string} description + */ /** + * Removed user/group from shared file/folder. + * @typedef {Object} TeamLogSharedContentRemoveMemberDetails + * @property {SharingAccessLevel} [shared_content_access_level] - Shared content + * access level. + */ /** + * @typedef {Object} TeamLogSharedContentRemoveMemberType + * @property {string} description + */ /** + * Requested access to shared file/folder. + * @typedef {Object} TeamLogSharedContentRequestAccessDetails + * @property {string} [shared_content_link] - Shared content link. + */ /** + * @typedef {Object} TeamLogSharedContentRequestAccessType + * @property {string} description + */ /** + * Restored shared file/folder invitees. + * @typedef {Object} TeamLogSharedContentRestoreInviteesDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {Array.} invitees - A list of invitees. + */ /** + * @typedef {Object} TeamLogSharedContentRestoreInviteesType + * @property {string} description + */ /** + * Restored users and/or groups to membership of shared file/folder. + * @typedef {Object} TeamLogSharedContentRestoreMemberDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + */ /** + * @typedef {Object} TeamLogSharedContentRestoreMemberType + * @property {string} description + */ /** + * Unshared file/folder by clearing membership. + * @typedef {Object} TeamLogSharedContentUnshareDetails + */ /** + * @typedef {Object} TeamLogSharedContentUnshareType + * @property {string} description + */ /** + * Previewed shared file/folder. + * @typedef {Object} TeamLogSharedContentViewDetails + * @property {string} shared_content_link - Shared content link. + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_content_owner] - The shared content owner. + */ /** + * @typedef {Object} TeamLogSharedContentViewType + * @property {string} description + */ /** + * Changed who can access shared folder via link. + * @typedef {Object} TeamLogSharedFolderChangeLinkPolicyDetails + * @property {SharingSharedLinkPolicy} new_value - New shared folder link + * policy. + * @property {SharingSharedLinkPolicy} [previous_value] - Previous shared folder + * link policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedFolderChangeLinkPolicyType + * @property {string} description + */ /** + * Changed whether shared folder inherits members from parent folder. + * @typedef {Object} TeamLogSharedFolderChangeMembersInheritancePolicyDetails + * @property {TeamLogSharedFolderMembersInheritancePolicy} new_value - New + * member inheritance policy. + * @property {TeamLogSharedFolderMembersInheritancePolicy} [previous_value] - + * Previous member inheritance policy. Might be missing due to historical data + * gap. + */ /** + * @typedef {Object} TeamLogSharedFolderChangeMembersInheritancePolicyType + * @property {string} description + */ /** + * Changed who can add/remove members of shared folder. + * @typedef {Object} TeamLogSharedFolderChangeMembersManagementPolicyDetails + * @property {SharingAclUpdatePolicy} new_value - New members management policy. + * @property {SharingAclUpdatePolicy} [previous_value] - Previous members + * management policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedFolderChangeMembersManagementPolicyType + * @property {string} description + */ /** + * Changed who can become member of shared folder. + * @typedef {Object} TeamLogSharedFolderChangeMembersPolicyDetails + * @property {SharingMemberPolicy} new_value - New external invite policy. + * @property {SharingMemberPolicy} [previous_value] - Previous external invite + * policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedFolderChangeMembersPolicyType + * @property {string} description + */ /** + * Created shared folder. + * @typedef {Object} TeamLogSharedFolderCreateDetails + * @property {string} [target_ns_id] - Target namespace ID. + */ /** + * @typedef {Object} TeamLogSharedFolderCreateType + * @property {string} description + */ /** + * Declined team member's invite to shared folder. + * @typedef {Object} TeamLogSharedFolderDeclineInvitationDetails + */ /** + * @typedef {Object} TeamLogSharedFolderDeclineInvitationType + * @property {string} description + */ /** + * Specifies if a shared folder inherits its members from the parent folder. + * @typedef {Object} TeamLogSharedFolderMembersInheritancePolicy + * @property {('dont_inherit_members'|'inherit_members'|'other')} .tag - Tag identifying the union variant. + */ /** + * Added shared folder to own Dropbox. + * @typedef {Object} TeamLogSharedFolderMountDetails + */ /** + * @typedef {Object} TeamLogSharedFolderMountType + * @property {string} description + */ /** + * Changed parent of shared folder. + * @typedef {Object} TeamLogSharedFolderNestDetails + * @property {string} [previous_parent_ns_id] - Previous parent namespace ID. + * @property {string} [new_parent_ns_id] - New parent namespace ID. + * @property {string} [previous_ns_path] - Previous namespace path. + * @property {string} [new_ns_path] - New namespace path. + */ /** + * @typedef {Object} TeamLogSharedFolderNestType + * @property {string} description + */ /** + * Transferred ownership of shared folder to another member. + * @typedef {Object} TeamLogSharedFolderTransferOwnershipDetails + * @property {string} new_owner_email - The email address of the new shared + * folder owner. + * @property {string} [previous_owner_email] - The email address of the previous + * shared folder owner. + */ /** + * @typedef {Object} TeamLogSharedFolderTransferOwnershipType + * @property {string} description + */ /** + * Deleted shared folder from Dropbox. + * @typedef {Object} TeamLogSharedFolderUnmountDetails + */ /** + * @typedef {Object} TeamLogSharedFolderUnmountType + * @property {string} description + */ /** + * Shared link access level. + * @typedef {Object} TeamLogSharedLinkAccessLevel + * @property {('none'|'reader'|'writer'|'other')} .tag - Tag identifying the union variant. + */ /** + * Added shared link expiration date. + * @typedef {Object} TeamLogSharedLinkAddExpiryDetails + * @property {Timestamp} new_value - New shared link expiration date. + */ /** + * @typedef {Object} TeamLogSharedLinkAddExpiryType + * @property {string} description + */ /** + * Changed shared link expiration date. + * @typedef {Object} TeamLogSharedLinkChangeExpiryDetails + * @property {Timestamp} [new_value] - New shared link expiration date. Might be + * missing due to historical data gap. + * @property {Timestamp} [previous_value] - Previous shared link expiration + * date. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkChangeExpiryType + * @property {string} description + */ /** + * Changed visibility of shared link. + * @typedef {Object} TeamLogSharedLinkChangeVisibilityDetails + * @property {TeamLogSharedLinkVisibility} new_value - New shared link + * visibility. + * @property {TeamLogSharedLinkVisibility} [previous_value] - Previous shared + * link visibility. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkChangeVisibilityType + * @property {string} description + */ /** + * Added file/folder to Dropbox from shared link. + * @typedef {Object} TeamLogSharedLinkCopyDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkCopyType + * @property {string} description + */ /** + * Created shared link. + * @typedef {Object} TeamLogSharedLinkCreateDetails + * @property {TeamLogSharedLinkAccessLevel} [shared_link_access_level] - Defines + * who can access the shared link. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkCreateType + * @property {string} description + */ /** + * Removed shared link. + * @typedef {Object} TeamLogSharedLinkDisableDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkDisableType + * @property {string} description + */ /** + * Downloaded file/folder from shared link. + * @typedef {Object} TeamLogSharedLinkDownloadDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkDownloadType + * @property {string} description + */ /** + * Removed shared link expiration date. + * @typedef {Object} TeamLogSharedLinkRemoveExpiryDetails + * @property {Timestamp} [previous_value] - Previous shared link expiration + * date. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkRemoveExpiryType + * @property {string} description + */ /** + * Added an expiration date to the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsAddExpirationDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + * @property {Timestamp} [new_value] - New shared content link expiration date. + * Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkSettingsAddExpirationType + * @property {string} description + */ /** + * Added a password to the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsAddPasswordDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + */ /** + * @typedef {Object} TeamLogSharedLinkSettingsAddPasswordType + * @property {string} description + */ /** + * Disabled downloads. + * @typedef {Object} TeamLogSharedLinkSettingsAllowDownloadDisabledDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + */ /** + * @typedef {Object} TeamLogSharedLinkSettingsAllowDownloadDisabledType + * @property {string} description + */ /** + * Enabled downloads. + * @typedef {Object} TeamLogSharedLinkSettingsAllowDownloadEnabledDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + */ /** + * @typedef {Object} TeamLogSharedLinkSettingsAllowDownloadEnabledType + * @property {string} description + */ /** + * Changed the audience of the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsChangeAudienceDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {SharingLinkAudience} new_value - New link audience value. + * @property {string} [shared_content_link] - Shared content link. + * @property {SharingLinkAudience} [previous_value] - Previous link audience + * value. + */ /** + * @typedef {Object} TeamLogSharedLinkSettingsChangeAudienceType + * @property {string} description + */ /** + * Changed the expiration date of the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsChangeExpirationDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + * @property {Timestamp} [new_value] - New shared content link expiration date. + * Might be missing due to historical data gap. + * @property {Timestamp} [previous_value] - Previous shared content link + * expiration date. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkSettingsChangeExpirationType + * @property {string} description + */ /** + * Changed the password of the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsChangePasswordDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + */ /** + * @typedef {Object} TeamLogSharedLinkSettingsChangePasswordType + * @property {string} description + */ /** + * Removed the expiration date from the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsRemoveExpirationDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + * @property {Timestamp} [previous_value] - Previous shared link expiration + * date. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkSettingsRemoveExpirationType + * @property {string} description + */ /** + * Removed the password from the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsRemovePasswordDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + */ /** + * @typedef {Object} TeamLogSharedLinkSettingsRemovePasswordType + * @property {string} description + */ /** + * Added members as audience of shared link. + * @typedef {Object} TeamLogSharedLinkShareDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + * @property {Array.} [external_users] - Users + * without a Dropbox account that were added as shared link audience. + */ /** + * @typedef {Object} TeamLogSharedLinkShareType + * @property {string} description + */ /** + * Opened shared link. + * @typedef {Object} TeamLogSharedLinkViewDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkViewType + * @property {string} description + */ /** + * Defines who has access to a shared link. + * @typedef {Object} TeamLogSharedLinkVisibility + * @property {('no_one'|'password'|'public'|'team_only'|'other')} .tag - Tag identifying the union variant. + */ /** + * Opened shared Paper doc. + * @typedef {Object} TeamLogSharedNoteOpenedDetails + */ /** + * @typedef {Object} TeamLogSharedNoteOpenedType + * @property {string} description + */ /** + * Changed whether team members can join shared folders owned outside team. + * @typedef {Object} TeamLogSharingChangeFolderJoinPolicyDetails + * @property {TeamLogSharingFolderJoinPolicy} new_value - New external join + * policy. + * @property {TeamLogSharingFolderJoinPolicy} [previous_value] - Previous + * external join policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharingChangeFolderJoinPolicyType + * @property {string} description + */ /** + * Changed the allow remove or change expiration policy for the links shared + * outside of the team. + * @typedef {Object} TeamLogSharingChangeLinkAllowChangeExpirationPolicyDetails + * @property {TeamLogEnforceLinkPasswordPolicy} new_value - To. + * @property {TeamLogEnforceLinkPasswordPolicy} [previous_value] - From. + */ /** + * @typedef {Object} TeamLogSharingChangeLinkAllowChangeExpirationPolicyType + * @property {string} description + */ /** + * Changed the default expiration for the links shared outside of the team. + * @typedef {Object} TeamLogSharingChangeLinkDefaultExpirationPolicyDetails + * @property {TeamLogDefaultLinkExpirationDaysPolicy} new_value - To. + * @property {TeamLogDefaultLinkExpirationDaysPolicy} [previous_value] - From. + */ /** + * @typedef {Object} TeamLogSharingChangeLinkDefaultExpirationPolicyType + * @property {string} description + */ /** + * Changed the password requirement for the links shared outside of the team. + * @typedef {Object} TeamLogSharingChangeLinkEnforcePasswordPolicyDetails + * @property {TeamLogChangeLinkExpirationPolicy} new_value - To. + * @property {TeamLogChangeLinkExpirationPolicy} [previous_value] - From. + */ /** + * @typedef {Object} TeamLogSharingChangeLinkEnforcePasswordPolicyType + * @property {string} description + */ /** + * Changed whether members can share links outside team, and if links are + * accessible only by team members or anyone by default. + * @typedef {Object} TeamLogSharingChangeLinkPolicyDetails + * @property {TeamLogSharingLinkPolicy} new_value - New external link + * accessibility policy. + * @property {TeamLogSharingLinkPolicy} [previous_value] - Previous external + * link accessibility policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharingChangeLinkPolicyType + * @property {string} description + */ /** + * Changed whether members can share files/folders outside team. + * @typedef {Object} TeamLogSharingChangeMemberPolicyDetails + * @property {TeamLogSharingMemberPolicy} new_value - New external invite + * policy. + * @property {TeamLogSharingMemberPolicy} [previous_value] - Previous external + * invite policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharingChangeMemberPolicyType + * @property {string} description + */ /** + * Policy for controlling if team members can join shared folders owned by non + * team members. + * @typedef {Object} TeamLogSharingFolderJoinPolicy + * @property {('from_anyone'|'from_team_only'|'other')} .tag - Tag identifying the union variant. + */ /** + * Policy for controlling if team members can share links externally + * @typedef {Object} TeamLogSharingLinkPolicy + * @property {('default_no_one'|'default_private'|'default_public'|'only_private'|'other')} .tag - Tag identifying the union variant. + */ /** + * External sharing policy + * @typedef {Object} TeamLogSharingMemberPolicy + * @property {('allow'|'forbid'|'forbid_with_exclusions'|'other')} .tag - Tag identifying the union variant. + */ /** + * Disabled downloads for link. + * @typedef {Object} TeamLogShmodelDisableDownloadsDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogShmodelDisableDownloadsType + * @property {string} description + */ /** + * Enabled downloads for link. + * @typedef {Object} TeamLogShmodelEnableDownloadsDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogShmodelEnableDownloadsType + * @property {string} description + */ /** + * Shared link with group. + * @typedef {Object} TeamLogShmodelGroupShareDetails + */ /** + * @typedef {Object} TeamLogShmodelGroupShareType + * @property {string} description + */ /** + * Granted access to showcase. + * @typedef {Object} TeamLogShowcaseAccessGrantedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseAccessGrantedType + * @property {string} description + */ /** + * Added member to showcase. + * @typedef {Object} TeamLogShowcaseAddMemberDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseAddMemberType + * @property {string} description + */ /** + * Archived showcase. + * @typedef {Object} TeamLogShowcaseArchivedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseArchivedType + * @property {string} description + */ /** + * Enabled/disabled downloading files from Dropbox Showcase for team. + * @typedef {Object} TeamLogShowcaseChangeDownloadPolicyDetails + * @property {TeamLogShowcaseDownloadPolicy} new_value - New Dropbox Showcase + * download policy. + * @property {TeamLogShowcaseDownloadPolicy} previous_value - Previous Dropbox + * Showcase download policy. + */ /** + * @typedef {Object} TeamLogShowcaseChangeDownloadPolicyType + * @property {string} description + */ /** + * Enabled/disabled Dropbox Showcase for team. + * @typedef {Object} TeamLogShowcaseChangeEnabledPolicyDetails + * @property {TeamLogShowcaseEnabledPolicy} new_value - New Dropbox Showcase + * policy. + * @property {TeamLogShowcaseEnabledPolicy} previous_value - Previous Dropbox + * Showcase policy. + */ /** + * @typedef {Object} TeamLogShowcaseChangeEnabledPolicyType + * @property {string} description + */ /** + * Enabled/disabled sharing Dropbox Showcase externally for team. + * @typedef {Object} TeamLogShowcaseChangeExternalSharingPolicyDetails + * @property {TeamLogShowcaseExternalSharingPolicy} new_value - New Dropbox + * Showcase external sharing policy. + * @property {TeamLogShowcaseExternalSharingPolicy} previous_value - Previous + * Dropbox Showcase external sharing policy. + */ /** + * @typedef {Object} TeamLogShowcaseChangeExternalSharingPolicyType + * @property {string} description + */ /** + * Created showcase. + * @typedef {Object} TeamLogShowcaseCreatedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseCreatedType + * @property {string} description + */ /** + * Deleted showcase comment. + * @typedef {Object} TeamLogShowcaseDeleteCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogShowcaseDeleteCommentType + * @property {string} description + */ /** + * Showcase document's logged information. + * @typedef {Object} TeamLogShowcaseDocumentLogInfo + * @property {string} showcase_id - Showcase document Id. + * @property {string} showcase_title - Showcase document title. + */ /** + * Policy for controlling if files can be downloaded from Showcases by team + * members + * @typedef {Object} TeamLogShowcaseDownloadPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Edited showcase comment. + * @typedef {Object} TeamLogShowcaseEditCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogShowcaseEditCommentType + * @property {string} description + */ /** + * Edited showcase. + * @typedef {Object} TeamLogShowcaseEditedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseEditedType + * @property {string} description + */ /** + * Policy for controlling whether Showcase is enabled. + * @typedef {Object} TeamLogShowcaseEnabledPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Policy for controlling if team members can share Showcases externally. + * @typedef {Object} TeamLogShowcaseExternalSharingPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Added file to showcase. + * @typedef {Object} TeamLogShowcaseFileAddedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseFileAddedType + * @property {string} description + */ /** + * Downloaded file from showcase. + * @typedef {Object} TeamLogShowcaseFileDownloadDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} download_type - Showcase download type. + */ /** + * @typedef {Object} TeamLogShowcaseFileDownloadType + * @property {string} description + */ /** + * Removed file from showcase. + * @typedef {Object} TeamLogShowcaseFileRemovedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseFileRemovedType + * @property {string} description + */ /** + * Viewed file in showcase. + * @typedef {Object} TeamLogShowcaseFileViewDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseFileViewType + * @property {string} description + */ /** + * Permanently deleted showcase. + * @typedef {Object} TeamLogShowcasePermanentlyDeletedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcasePermanentlyDeletedType + * @property {string} description + */ /** + * Added showcase comment. + * @typedef {Object} TeamLogShowcasePostCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogShowcasePostCommentType + * @property {string} description + */ /** + * Removed member from showcase. + * @typedef {Object} TeamLogShowcaseRemoveMemberDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseRemoveMemberType + * @property {string} description + */ /** + * Renamed showcase. + * @typedef {Object} TeamLogShowcaseRenamedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseRenamedType + * @property {string} description + */ /** + * Requested access to showcase. + * @typedef {Object} TeamLogShowcaseRequestAccessDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseRequestAccessType + * @property {string} description + */ /** + * Resolved showcase comment. + * @typedef {Object} TeamLogShowcaseResolveCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogShowcaseResolveCommentType + * @property {string} description + */ /** + * Unarchived showcase. + * @typedef {Object} TeamLogShowcaseRestoredDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseRestoredType + * @property {string} description + */ /** + * Deleted showcase (old version). + * @typedef {Object} TeamLogShowcaseTrashedDeprecatedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseTrashedDeprecatedType + * @property {string} description + */ /** + * Deleted showcase. + * @typedef {Object} TeamLogShowcaseTrashedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseTrashedType + * @property {string} description + */ /** + * Unresolved showcase comment. + * @typedef {Object} TeamLogShowcaseUnresolveCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogShowcaseUnresolveCommentType + * @property {string} description + */ /** + * Restored showcase (old version). + * @typedef {Object} TeamLogShowcaseUntrashedDeprecatedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseUntrashedDeprecatedType + * @property {string} description + */ /** + * Restored showcase. + * @typedef {Object} TeamLogShowcaseUntrashedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseUntrashedType + * @property {string} description + */ /** + * Viewed showcase. + * @typedef {Object} TeamLogShowcaseViewDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseViewType + * @property {string} description + */ /** + * Ended admin sign-in-as session. + * @typedef {Object} TeamLogSignInAsSessionEndDetails + */ /** + * @typedef {Object} TeamLogSignInAsSessionEndType + * @property {string} description + */ /** + * Started admin sign-in-as session. + * @typedef {Object} TeamLogSignInAsSessionStartDetails + */ /** + * @typedef {Object} TeamLogSignInAsSessionStartType + * @property {string} description + */ /** + * Changed default Smart Sync setting for team members. + * @typedef {Object} TeamLogSmartSyncChangePolicyDetails + * @property {TeamPoliciesSmartSyncPolicy} [new_value] - New smart sync policy. + * @property {TeamPoliciesSmartSyncPolicy} [previous_value] - Previous smart + * sync policy. + */ /** + * @typedef {Object} TeamLogSmartSyncChangePolicyType + * @property {string} description + */ /** + * Created Smart Sync non-admin devices report. + * @typedef {Object} TeamLogSmartSyncCreateAdminPrivilegeReportDetails + */ /** + * @typedef {Object} TeamLogSmartSyncCreateAdminPrivilegeReportType + * @property {string} description + */ /** + * Opted team into Smart Sync. + * @typedef {Object} TeamLogSmartSyncNotOptOutDetails + * @property {TeamLogSmartSyncOptOutPolicy} previous_value - Previous Smart Sync + * opt out policy. + * @property {TeamLogSmartSyncOptOutPolicy} new_value - New Smart Sync opt out + * policy. + */ /** + * @typedef {Object} TeamLogSmartSyncNotOptOutType + * @property {string} description + */ /** + * Opted team out of Smart Sync. + * @typedef {Object} TeamLogSmartSyncOptOutDetails + * @property {TeamLogSmartSyncOptOutPolicy} previous_value - Previous Smart Sync + * opt out policy. + * @property {TeamLogSmartSyncOptOutPolicy} new_value - New Smart Sync opt out + * policy. + */ /** + * @typedef {Object} TeamLogSmartSyncOptOutPolicy + * @property {('default'|'opted_out'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogSmartSyncOptOutType + * @property {string} description + */ /** + * Changed automatic Smart Sync setting for team. + * @typedef {Object} TeamLogSmarterSmartSyncPolicyChangedDetails + * @property {TeamPoliciesSmarterSmartSyncPolicyState} previous_value - Previous + * automatic Smart Sync setting. + * @property {TeamPoliciesSmarterSmartSyncPolicyState} new_value - New automatic + * Smart Sync setting. + */ /** + * @typedef {Object} TeamLogSmarterSmartSyncPolicyChangedType + * @property {string} description + */ /** + * Space limit alert policy + * @typedef {Object} TeamLogSpaceCapsType + * @property {('hard'|'off'|'soft'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogSpaceLimitsStatus + * @property {('near_quota'|'over_quota'|'within_quota'|'other')} .tag - Tag identifying the union variant. + */ /** + * Added X.509 certificate for SSO. + * @typedef {Object} TeamLogSsoAddCertDetails + * @property {TeamLogCertificate} certificate_details - SSO certificate details. + */ /** + * @typedef {Object} TeamLogSsoAddCertType + * @property {string} description + */ /** + * Added sign-in URL for SSO. + * @typedef {Object} TeamLogSsoAddLoginUrlDetails + * @property {string} new_value - New single sign-on login URL. + */ /** + * @typedef {Object} TeamLogSsoAddLoginUrlType + * @property {string} description + */ /** + * Added sign-out URL for SSO. + * @typedef {Object} TeamLogSsoAddLogoutUrlDetails + * @property {string} [new_value] - New single sign-on logout URL. + */ /** + * @typedef {Object} TeamLogSsoAddLogoutUrlType + * @property {string} description + */ /** + * Changed X.509 certificate for SSO. + * @typedef {Object} TeamLogSsoChangeCertDetails + * @property {TeamLogCertificate} new_certificate_details - New SSO certificate + * details. + * @property {TeamLogCertificate} [previous_certificate_details] - Previous SSO + * certificate details. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSsoChangeCertType + * @property {string} description + */ /** + * Changed sign-in URL for SSO. + * @typedef {Object} TeamLogSsoChangeLoginUrlDetails + * @property {string} previous_value - Previous single sign-on login URL. + * @property {string} new_value - New single sign-on login URL. + */ /** + * @typedef {Object} TeamLogSsoChangeLoginUrlType + * @property {string} description + */ /** + * Changed sign-out URL for SSO. + * @typedef {Object} TeamLogSsoChangeLogoutUrlDetails + * @property {string} [previous_value] - Previous single sign-on logout URL. + * Might be missing due to historical data gap. + * @property {string} [new_value] - New single sign-on logout URL. + */ /** + * @typedef {Object} TeamLogSsoChangeLogoutUrlType + * @property {string} description + */ /** + * Changed single sign-on setting for team. + * @typedef {Object} TeamLogSsoChangePolicyDetails + * @property {TeamPoliciesSsoPolicy} new_value - New single sign-on policy. + * @property {TeamPoliciesSsoPolicy} [previous_value] - Previous single sign-on + * policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSsoChangePolicyType + * @property {string} description + */ /** + * Changed SAML identity mode for SSO. + * @typedef {Object} TeamLogSsoChangeSamlIdentityModeDetails + * @property {number} previous_value - Previous single sign-on identity mode. + * @property {number} new_value - New single sign-on identity mode. + */ /** + * @typedef {Object} TeamLogSsoChangeSamlIdentityModeType + * @property {string} description + */ /** + * Failed to sign in via SSO. + * @typedef {Object} TeamLogSsoErrorDetails + * @property {TeamLogFailureDetailsLogInfo} error_details - Error details. + */ /** + * @typedef {Object} TeamLogSsoErrorType + * @property {string} description + */ /** + * Removed X.509 certificate for SSO. + * @typedef {Object} TeamLogSsoRemoveCertDetails + */ /** + * @typedef {Object} TeamLogSsoRemoveCertType + * @property {string} description + */ /** + * Removed sign-in URL for SSO. + * @typedef {Object} TeamLogSsoRemoveLoginUrlDetails + * @property {string} previous_value - Previous single sign-on login URL. + */ /** + * @typedef {Object} TeamLogSsoRemoveLoginUrlType + * @property {string} description + */ /** + * Removed sign-out URL for SSO. + * @typedef {Object} TeamLogSsoRemoveLogoutUrlDetails + * @property {string} previous_value - Previous single sign-on logout URL. + */ /** + * @typedef {Object} TeamLogSsoRemoveLogoutUrlType + * @property {string} description + */ /** + * Started enterprise admin session. + * @typedef {Object} TeamLogStartedEnterpriseAdminSessionDetails + * @property {TeamLogFedExtraDetails} federation_extra_details - More + * information about the organization or team. + */ /** + * @typedef {Object} TeamLogStartedEnterpriseAdminSessionType + * @property {string} description + */ /** + * Created team activity report. + * @typedef {Object} TeamLogTeamActivityCreateReportDetails + * @property {Timestamp} start_date - Report start date. + * @property {Timestamp} end_date - Report end date. + */ /** + * Couldn't generate team activity report. + * @typedef {Object} TeamLogTeamActivityCreateReportFailDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ /** + * @typedef {Object} TeamLogTeamActivityCreateReportFailType + * @property {string} description + */ /** + * @typedef {Object} TeamLogTeamActivityCreateReportType + * @property {string} description + */ /** + * Policy for controlling team access to setting up branding feature + * @typedef {Object} TeamLogTeamBrandingPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed team branding policy for team. + * @typedef {Object} TeamLogTeamBrandingPolicyChangedDetails + * @property {TeamLogTeamBrandingPolicy} new_value - New team branding policy. + * @property {TeamLogTeamBrandingPolicy} previous_value - Previous team branding + * policy. + */ /** + * @typedef {Object} TeamLogTeamBrandingPolicyChangedType + * @property {string} description + */ /** + * More details about the team. + * @typedef {Object} TeamLogTeamDetails + * @property {string} team - The name of the team. + */ /** + * An audit log event. + * @typedef {Object} TeamLogTeamEvent + * @property {Timestamp} timestamp - The Dropbox timestamp representing when the + * action was taken. + * @property {TeamLogEventCategory} event_category - The category that this type + * of action belongs to. + * @property {TeamLogEventType} event_type - The particular type of action + * taken. + * @property {TeamLogEventDetails} details - The variable event schema + * applicable to this type of action, instantiated with respect to this + * particular action. + * @property {TeamLogActorLogInfo} [actor] - The entity who actually performed + * the action. Might be missing due to historical data gap. + * @property {TeamLogOriginLogInfo} [origin] - The origin from which the actor + * performed the action including information about host, ip address, location, + * session, etc. If the action was performed programmatically via the API the + * origin represents the API client. + * @property {boolean} [involve_non_team_member] - True if the action involved a + * non team member either as the actor or as one of the affected users. Might be + * missing due to historical data gap. + * @property {TeamLogContextLogInfo} [context] - The user or team on whose + * behalf the actor performed the action. Might be missing due to historical + * data gap. + * @property {Array.} [participants] - Zero or more + * users and/or groups that are affected by the action. Note that this list + * doesn't include any actors or users in context. + * @property {Array.} [assets] - Zero or more content + * assets involved in the action. Currently these include Dropbox files and + * folders but in the future we might add other asset types such as Paper + * documents, folders, projects, etc. + */ /** + * Policy for controlling whether App Integrations are enabled for the team. + * @typedef {Object} TeamLogTeamExtensionsPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed App Integrations setting for team. + * @typedef {Object} TeamLogTeamExtensionsPolicyChangedDetails + * @property {TeamLogTeamExtensionsPolicy} new_value - New Extensions policy. + * @property {TeamLogTeamExtensionsPolicy} previous_value - Previous Extensions + * policy. + */ /** + * @typedef {Object} TeamLogTeamExtensionsPolicyChangedType + * @property {string} description + */ /** + * Changed archival status of team folder. + * @typedef {Object} TeamLogTeamFolderChangeStatusDetails + * @property {TeamTeamFolderStatus} new_value - New team folder status. + * @property {TeamTeamFolderStatus} [previous_value] - Previous team folder + * status. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogTeamFolderChangeStatusType + * @property {string} description + */ /** + * Created team folder in active status. + * @typedef {Object} TeamLogTeamFolderCreateDetails + */ /** + * @typedef {Object} TeamLogTeamFolderCreateType + * @property {string} description + */ /** + * Downgraded team folder to regular shared folder. + * @typedef {Object} TeamLogTeamFolderDowngradeDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + */ /** + * @typedef {Object} TeamLogTeamFolderDowngradeType + * @property {string} description + */ /** + * Permanently deleted archived team folder. + * @typedef {Object} TeamLogTeamFolderPermanentlyDeleteDetails + */ /** + * @typedef {Object} TeamLogTeamFolderPermanentlyDeleteType + * @property {string} description + */ /** + * Renamed active/archived team folder. + * @typedef {Object} TeamLogTeamFolderRenameDetails + * @property {string} previous_folder_name - Previous folder name. + * @property {string} new_folder_name - New folder name. + */ /** + * @typedef {Object} TeamLogTeamFolderRenameType + * @property {string} description + */ /** + * Details about team invites + * @typedef {Object} TeamLogTeamInviteDetails + * @property {TeamLogInviteMethod} invite_method - How the user was invited to + * the team. + * @property {boolean} [additional_license_purchase] - True if the invitation + * incurred an additional license purchase. + */ /** + * Team linked app + * @typedef {Object} TeamLogTeamLinkedAppLogInfo +@property {'team_linked_app'} [.tag] - Tag identifying this subtype variant. +This field is only present when needed to discriminate between multiple possible +subtypes. + * @property {string} [app_id] - App unique ID. + * @property {string} [display_name] - App display name. + */ /** + * Team's logged information. + * @typedef {Object} TeamLogTeamLogInfo + * @property {string} display_name - Team display name. + */ /** + * Team member's logged information. + * @typedef {Object} TeamLogTeamMemberLogInfo +@property {'team_member'} [.tag] - Tag identifying this subtype variant. This +field is only present when needed to discriminate between multiple possible +subtypes. + * @property {string} [account_id] - User unique ID. + * @property {string} [display_name] - User display name. + * @property {string} [email] - User email address. + * @property {string} [team_member_id] - Team member ID. + * @property {string} [member_external_id] - Team member external ID. + * @property {TeamLogTeamLogInfo} [team] - Details about this user’s team + * for enterprise event. + */ /** + * @typedef {Object} TeamLogTeamMembershipType + * @property {('free'|'full'|'guest'|'other')} .tag - Tag identifying the union variant. + */ /** + * Merged another team into this team. + * @typedef {Object} TeamLogTeamMergeFromDetails + * @property {string} team_name - The name of the team that was merged into this + * team. + */ /** + * @typedef {Object} TeamLogTeamMergeFromType + * @property {string} description + */ /** + * Accepted a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestAcceptedDetails + * @property {TeamLogTeamMergeRequestAcceptedExtraDetails} + * request_accepted_details - Team merge request acceptance details. + */ /** + * Team merge request acceptance details + * @typedef {Object} TeamLogTeamMergeRequestAcceptedExtraDetails + * @property {TeamLogPrimaryTeamRequestAcceptedDetails} [primary_team] - + * Available if .tag is primary_team. Team merge request accepted details shown + * to the primary team. + * @property {TeamLogSecondaryTeamRequestAcceptedDetails} [secondary_team] - + * Available if .tag is secondary_team. Team merge request accepted details + * shown to the secondary team. + * @property {('primary_team'|'secondary_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Accepted a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestAcceptedShownToPrimaryTeamDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestAcceptedShownToPrimaryTeamType + * @property {string} description + */ /** + * Accepted a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestAcceptedShownToSecondaryTeamDetails + * @property {string} primary_team - The primary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestAcceptedShownToSecondaryTeamType + * @property {string} description + */ /** + * @typedef {Object} TeamLogTeamMergeRequestAcceptedType + * @property {string} description + */ /** + * Automatically canceled team merge request. + * @typedef {Object} TeamLogTeamMergeRequestAutoCanceledDetails + * @property {string} [details] - The cancellation reason. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestAutoCanceledType + * @property {string} description + */ /** + * Canceled a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestCanceledDetails + * @property {TeamLogTeamMergeRequestCanceledExtraDetails} + * request_canceled_details - Team merge request cancellation details. + */ /** + * Team merge request cancellation details + * @typedef {Object} TeamLogTeamMergeRequestCanceledExtraDetails + * @property {TeamLogPrimaryTeamRequestCanceledDetails} [primary_team] - + * Available if .tag is primary_team. Team merge request cancellation details + * shown to the primary team. + * @property {TeamLogSecondaryTeamRequestCanceledDetails} [secondary_team] - + * Available if .tag is secondary_team. Team merge request cancellation details + * shown to the secondary team. + * @property {('primary_team'|'secondary_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Canceled a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestCanceledShownToPrimaryTeamDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestCanceledShownToPrimaryTeamType + * @property {string} description + */ /** + * Canceled a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestCanceledShownToSecondaryTeamDetails + * @property {string} sent_to - The email of the primary team admin that the + * request was sent to. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestCanceledShownToSecondaryTeamType + * @property {string} description + */ /** + * @typedef {Object} TeamLogTeamMergeRequestCanceledType + * @property {string} description + */ /** + * Team merge request expired. + * @typedef {Object} TeamLogTeamMergeRequestExpiredDetails + * @property {TeamLogTeamMergeRequestExpiredExtraDetails} + * request_expired_details - Team merge request expiration details. + */ /** + * Team merge request expiration details + * @typedef {Object} TeamLogTeamMergeRequestExpiredExtraDetails + * @property {TeamLogPrimaryTeamRequestExpiredDetails} [primary_team] - + * Available if .tag is primary_team. Team merge request canceled details shown + * to the primary team. + * @property {TeamLogSecondaryTeamRequestExpiredDetails} [secondary_team] - + * Available if .tag is secondary_team. Team merge request canceled details + * shown to the secondary team. + * @property {('primary_team'|'secondary_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Team merge request expired. + * @typedef {Object} TeamLogTeamMergeRequestExpiredShownToPrimaryTeamDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestExpiredShownToPrimaryTeamType + * @property {string} description + */ /** + * Team merge request expired. + * @typedef {Object} TeamLogTeamMergeRequestExpiredShownToSecondaryTeamDetails + * @property {string} sent_to - The email of the primary team admin the request + * was sent to. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestExpiredShownToSecondaryTeamType + * @property {string} description + */ /** + * @typedef {Object} TeamLogTeamMergeRequestExpiredType + * @property {string} description + */ /** + * Rejected a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestRejectedShownToPrimaryTeamDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestRejectedShownToPrimaryTeamType + * @property {string} description + */ /** + * Rejected a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestRejectedShownToSecondaryTeamDetails + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestRejectedShownToSecondaryTeamType + * @property {string} description + */ /** + * Sent a team merge request reminder. + * @typedef {Object} TeamLogTeamMergeRequestReminderDetails + * @property {TeamLogTeamMergeRequestReminderExtraDetails} + * request_reminder_details - Team merge request reminder details. + */ /** + * Team merge request reminder details + * @typedef {Object} TeamLogTeamMergeRequestReminderExtraDetails + * @property {TeamLogPrimaryTeamRequestReminderDetails} [primary_team] - + * Available if .tag is primary_team. Team merge request reminder details shown + * to the primary team. + * @property {TeamLogSecondaryTeamRequestReminderDetails} [secondary_team] - + * Available if .tag is secondary_team. Team merge request reminder details + * shown to the secondary team. + * @property {('primary_team'|'secondary_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Sent a team merge request reminder. + * @typedef {Object} TeamLogTeamMergeRequestReminderShownToPrimaryTeamDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_to - The name of the primary team admin the request + * was sent to. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestReminderShownToPrimaryTeamType + * @property {string} description + */ /** + * Sent a team merge request reminder. + * @typedef {Object} TeamLogTeamMergeRequestReminderShownToSecondaryTeamDetails + * @property {string} sent_to - The email of the primary team admin the request + * was sent to. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestReminderShownToSecondaryTeamType + * @property {string} description + */ /** + * @typedef {Object} TeamLogTeamMergeRequestReminderType + * @property {string} description + */ /** + * Canceled the team merge. + * @typedef {Object} TeamLogTeamMergeRequestRevokedDetails + * @property {string} team - The name of the other team. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestRevokedType + * @property {string} description + */ /** + * Requested to merge their Dropbox team into yours. + * @typedef {Object} TeamLogTeamMergeRequestSentShownToPrimaryTeamDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_to - The name of the primary team admin the request + * was sent to. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestSentShownToPrimaryTeamType + * @property {string} description + */ /** + * Requested to merge your team into another Dropbox team. + * @typedef {Object} TeamLogTeamMergeRequestSentShownToSecondaryTeamDetails + * @property {string} sent_to - The email of the primary team admin the request + * was sent to. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestSentShownToSecondaryTeamType + * @property {string} description + */ /** + * Merged this team into another team. + * @typedef {Object} TeamLogTeamMergeToDetails + * @property {string} team_name - The name of the team that this team was merged + * into. + */ /** + * @typedef {Object} TeamLogTeamMergeToType + * @property {string} description + */ /** + * Team name details + * @typedef {Object} TeamLogTeamName + * @property {string} team_display_name - Team's display name. + * @property {string} team_legal_name - Team's legal name. + */ /** + * Added team background to display on shared link headers. + * @typedef {Object} TeamLogTeamProfileAddBackgroundDetails + */ /** + * @typedef {Object} TeamLogTeamProfileAddBackgroundType + * @property {string} description + */ /** + * Added team logo to display on shared link headers. + * @typedef {Object} TeamLogTeamProfileAddLogoDetails + */ /** + * @typedef {Object} TeamLogTeamProfileAddLogoType + * @property {string} description + */ /** + * Changed team background displayed on shared link headers. + * @typedef {Object} TeamLogTeamProfileChangeBackgroundDetails + */ /** + * @typedef {Object} TeamLogTeamProfileChangeBackgroundType + * @property {string} description + */ /** + * Changed default language for team. + * @typedef {Object} TeamLogTeamProfileChangeDefaultLanguageDetails + * @property {string} new_value - New team's default language. + * @property {string} previous_value - Previous team's default language. + */ /** + * @typedef {Object} TeamLogTeamProfileChangeDefaultLanguageType + * @property {string} description + */ /** + * Changed team logo displayed on shared link headers. + * @typedef {Object} TeamLogTeamProfileChangeLogoDetails + */ /** + * @typedef {Object} TeamLogTeamProfileChangeLogoType + * @property {string} description + */ /** + * Changed team name. + * @typedef {Object} TeamLogTeamProfileChangeNameDetails + * @property {TeamLogTeamName} new_value - New team name. + * @property {TeamLogTeamName} [previous_value] - Previous teams name. Might be + * missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogTeamProfileChangeNameType + * @property {string} description + */ /** + * Removed team background displayed on shared link headers. + * @typedef {Object} TeamLogTeamProfileRemoveBackgroundDetails + */ /** + * @typedef {Object} TeamLogTeamProfileRemoveBackgroundType + * @property {string} description + */ /** + * Removed team logo displayed on shared link headers. + * @typedef {Object} TeamLogTeamProfileRemoveLogoDetails + */ /** + * @typedef {Object} TeamLogTeamProfileRemoveLogoType + * @property {string} description + */ /** + * Policy for controlling whether team selective sync is enabled for team. + * @typedef {Object} TeamLogTeamSelectiveSyncPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Enabled/disabled Team Selective Sync for team. + * @typedef {Object} TeamLogTeamSelectiveSyncPolicyChangedDetails + * @property {TeamLogTeamSelectiveSyncPolicy} new_value - New Team Selective + * Sync policy. + * @property {TeamLogTeamSelectiveSyncPolicy} previous_value - Previous Team + * Selective Sync policy. + */ /** + * @typedef {Object} TeamLogTeamSelectiveSyncPolicyChangedType + * @property {string} description + */ /** + * Changed sync default. + * @typedef {Object} TeamLogTeamSelectiveSyncSettingsChangedDetails + * @property {FilesSyncSetting} previous_value - Previous value. + * @property {FilesSyncSetting} new_value - New value. + */ /** + * @typedef {Object} TeamLogTeamSelectiveSyncSettingsChangedType + * @property {string} description + */ /** + * Edited the approved list for sharing externally. + * @typedef {Object} TeamLogTeamSharingWhitelistSubjectsChangedDetails + * @property {Array.} added_whitelist_subjects - Domains or emails added + * to the approved list for sharing externally. + * @property {Array.} removed_whitelist_subjects - Domains or emails + * removed from the approved list for sharing externally. + */ /** + * @typedef {Object} TeamLogTeamSharingWhitelistSubjectsChangedType + * @property {string} description + */ /** + * Added backup phone for two-step verification. + * @typedef {Object} TeamLogTfaAddBackupPhoneDetails + */ /** + * @typedef {Object} TeamLogTfaAddBackupPhoneType + * @property {string} description + */ /** + * Added members to two factor authentication exception list. + * @typedef {Object} TeamLogTfaAddExceptionDetails + */ /** + * @typedef {Object} TeamLogTfaAddExceptionType + * @property {string} description + */ /** + * Added security key for two-step verification. + * @typedef {Object} TeamLogTfaAddSecurityKeyDetails + */ /** + * @typedef {Object} TeamLogTfaAddSecurityKeyType + * @property {string} description + */ /** + * Changed backup phone for two-step verification. + * @typedef {Object} TeamLogTfaChangeBackupPhoneDetails + */ /** + * @typedef {Object} TeamLogTfaChangeBackupPhoneType + * @property {string} description + */ /** + * Changed two-step verification setting for team. + * @typedef {Object} TeamLogTfaChangePolicyDetails + * @property {TeamPoliciesTwoStepVerificationPolicy} new_value - New change + * policy. + * @property {TeamPoliciesTwoStepVerificationPolicy} [previous_value] - Previous + * change policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogTfaChangePolicyType + * @property {string} description + */ /** + * Enabled/disabled/changed two-step verification setting. + * @typedef {Object} TeamLogTfaChangeStatusDetails + * @property {TeamLogTfaConfiguration} new_value - The new two factor + * authentication configuration. + * @property {TeamLogTfaConfiguration} [previous_value] - The previous two + * factor authentication configuration. Might be missing due to historical data + * gap. + * @property {boolean} [used_rescue_code] - Used two factor authentication + * rescue code. This flag is relevant when the two factor authentication + * configuration is disabled. + */ /** + * @typedef {Object} TeamLogTfaChangeStatusType + * @property {string} description + */ /** + * Two factor authentication configuration. Note: the enabled option is + * deprecated. + * @typedef {Object} TeamLogTfaConfiguration + * @property {('authenticator'|'disabled'|'enabled'|'sms'|'other')} .tag - Tag identifying the union variant. + */ /** + * Removed backup phone for two-step verification. + * @typedef {Object} TeamLogTfaRemoveBackupPhoneDetails + */ /** + * @typedef {Object} TeamLogTfaRemoveBackupPhoneType + * @property {string} description + */ /** + * Removed members from two factor authentication exception list. + * @typedef {Object} TeamLogTfaRemoveExceptionDetails + */ /** + * @typedef {Object} TeamLogTfaRemoveExceptionType + * @property {string} description + */ /** + * Removed security key for two-step verification. + * @typedef {Object} TeamLogTfaRemoveSecurityKeyDetails + */ /** + * @typedef {Object} TeamLogTfaRemoveSecurityKeyType + * @property {string} description + */ /** + * Reset two-step verification for team member. + * @typedef {Object} TeamLogTfaResetDetails + */ /** + * @typedef {Object} TeamLogTfaResetType + * @property {string} description + */ /** + * @typedef {Object} TeamLogTimeUnit + * @property {('days'|'hours'|'milliseconds'|'minutes'|'months'|'seconds'|'weeks'|'years'|'other')} .tag - Tag identifying the union variant. + */ /** + * User that is not a member of the team but considered trusted. + * @typedef {Object} TeamLogTrustedNonTeamMemberLogInfo +@property {'trusted_non_team_member'} [.tag] - Tag identifying this subtype +variant. This field is only present when needed to discriminate between multiple +possible subtypes. + * @property {TeamLogTrustedNonTeamMemberType} trusted_non_team_member_type - + * Indicates the type of the member of a trusted team. + * @property {string} [account_id] - User unique ID. + * @property {string} [display_name] - User display name. + * @property {string} [email] - User email address. + * @property {TeamLogTeamLogInfo} [team] - Details about this user's trusted + * team. + */ /** + * @typedef {Object} TeamLogTrustedNonTeamMemberType + * @property {('enterprise_admin'|'multi_instance_admin'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogTrustedTeamsRequestAction + * @property {('accepted'|'declined'|'expired'|'invited'|'revoked'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogTrustedTeamsRequestState + * @property {('invited'|'linked'|'unlinked'|'other')} .tag - Tag identifying the union variant. + */ /** + * Enabled/disabled option for members to link personal Dropbox account and team + * account to same computer. + * @typedef {Object} TeamLogTwoAccountChangePolicyDetails + * @property {TeamLogTwoAccountPolicy} new_value - New two account policy. + * @property {TeamLogTwoAccountPolicy} [previous_value] - Previous two account + * policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogTwoAccountChangePolicyType + * @property {string} description + */ /** + * Policy for pairing personal account to work account + * @typedef {Object} TeamLogTwoAccountPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Reverted naming convention. + * @typedef {Object} TeamLogUndoNamingConventionDetails + */ /** + * @typedef {Object} TeamLogUndoNamingConventionType + * @property {string} description + */ /** + * Removed multi-file organize. + * @typedef {Object} TeamLogUndoOrganizeFolderWithTidyDetails + */ /** + * @typedef {Object} TeamLogUndoOrganizeFolderWithTidyType + * @property {string} description + */ /** + * User linked app + * @typedef {Object} TeamLogUserLinkedAppLogInfo +@property {'user_linked_app'} [.tag] - Tag identifying this subtype variant. +This field is only present when needed to discriminate between multiple possible +subtypes. + * @property {string} [app_id] - App unique ID. + * @property {string} [display_name] - App display name. + */ /** + * User's logged information. + * @typedef {Object} TeamLogUserLogInfo +@property {("team_member"|"trusted_non_team_member"|"non_team_member")} .tag - +Tag identifying the subtype variant. + * @property {string} [account_id] - User unique ID. + * @property {string} [display_name] - User display name. + * @property {string} [email] - User email address. + */ /** + * User's name logged information + * @typedef {Object} TeamLogUserNameLogInfo + * @property {string} given_name - Given name. + * @property {string} surname - Surname. + * @property {string} [locale] - Locale. Might be missing due to historical data + * gap. + */ /** + * User or team linked app. Used when linked type is missing due to historical + * data gap. + * @typedef {Object} TeamLogUserOrTeamLinkedAppLogInfo +@property {'user_or_team_linked_app'} [.tag] - Tag identifying this subtype +variant. This field is only present when needed to discriminate between multiple +possible subtypes. + * @property {string} [app_id] - App unique ID. + * @property {string} [display_name] - App display name. + */ /** + * Tagged a file. + * @typedef {Object} TeamLogUserTagsAddedDetails + * @property {Array.} values - values. + */ /** + * @typedef {Object} TeamLogUserTagsAddedType + * @property {string} description + */ /** + * Removed tags. + * @typedef {Object} TeamLogUserTagsRemovedDetails + * @property {Array.} values - values. + */ /** + * @typedef {Object} TeamLogUserTagsRemovedType + * @property {string} description + */ /** + * Changed team policy for viewer info. + * @typedef {Object} TeamLogViewerInfoPolicyChangedDetails + * @property {TeamLogPassPolicy} previous_value - Previous Viewer Info policy. + * @property {TeamLogPassPolicy} new_value - New Viewer Info policy. + */ /** + * @typedef {Object} TeamLogViewerInfoPolicyChangedType + * @property {string} description + */ /** + * Policy for controlling team access to watermarking feature + * @typedef {Object} TeamLogWatermarkingPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed watermarking policy for team. + * @typedef {Object} TeamLogWatermarkingPolicyChangedDetails + * @property {TeamLogWatermarkingPolicy} new_value - New watermarking policy. + * @property {TeamLogWatermarkingPolicy} previous_value - Previous watermarking + * policy. + */ /** + * @typedef {Object} TeamLogWatermarkingPolicyChangedType + * @property {string} description + */ /** + * Information on active web sessions + * @typedef {Object} TeamLogWebDeviceSessionLogInfo +@property {'web_device_session'} [.tag] - Tag identifying this subtype variant. +This field is only present when needed to discriminate between multiple possible +subtypes. + * @property {string} user_agent - Information on the hosting device. + * @property {string} os - Information on the hosting operating system. + * @property {string} browser - Information on the browser used for this web + * session. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + * @property {TeamLogWebSessionLogInfo} [session_info] - Web session unique id. + */ /** + * Web session. + * @typedef {Object} TeamLogWebSessionLogInfo +@property {'web'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {string} [session_id] - Session ID. + */ /** + * Changed limit on active sessions per member. + * @typedef {Object} TeamLogWebSessionsChangeActiveSessionLimitDetails + * @property {string} previous_value - Previous max number of concurrent active + * sessions policy. + * @property {string} new_value - New max number of concurrent active sessions + * policy. + */ /** + * @typedef {Object} TeamLogWebSessionsChangeActiveSessionLimitType + * @property {string} description + */ /** + * Changed how long members can stay signed in to Dropbox.com. + * @typedef {Object} TeamLogWebSessionsChangeFixedLengthPolicyDetails + * @property {TeamLogWebSessionsFixedLengthPolicy} [new_value] - New session + * length policy. Might be missing due to historical data gap. + * @property {TeamLogWebSessionsFixedLengthPolicy} [previous_value] - Previous + * session length policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogWebSessionsChangeFixedLengthPolicyType + * @property {string} description + */ /** + * Changed how long team members can be idle while signed in to Dropbox.com. + * @typedef {Object} TeamLogWebSessionsChangeIdleLengthPolicyDetails + * @property {TeamLogWebSessionsIdleLengthPolicy} [new_value] - New idle length + * policy. Might be missing due to historical data gap. + * @property {TeamLogWebSessionsIdleLengthPolicy} [previous_value] - Previous + * idle length policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogWebSessionsChangeIdleLengthPolicyType + * @property {string} description + */ /** + * Web sessions fixed length policy. + * @typedef {Object} TeamLogWebSessionsFixedLengthPolicy + * @property {TeamLogDurationLogInfo} [defined] - Available if .tag is defined. + * Defined fixed session length. + * @property {('defined'|'undefined'|'other')} .tag - Tag identifying the union variant. + */ /** + * Web sessions idle length policy. + * @typedef {Object} TeamLogWebSessionsIdleLengthPolicy + * @property {TeamLogDurationLogInfo} [defined] - Available if .tag is defined. + * Defined idle session length. + * @property {('defined'|'undefined'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesCameraUploadsPolicyState + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesComputerBackupPolicyState + * @property {('disabled'|'enabled'|'default'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesEmmState + * @property {('disabled'|'optional'|'required'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesExternalDriveBackupPolicyState + * @property {('disabled'|'enabled'|'default'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesFileLockingPolicyState + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesFileProviderMigrationPolicyState + * @property {('disabled'|'enabled'|'default'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesGroupCreation + * @property {('admins_and_members'|'admins_only')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesOfficeAddInPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesPaperDefaultFolderPolicy + * @property {('everyone_in_team'|'invite_only'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesPaperDeploymentPolicy + * @property {('full'|'partial'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesPaperDesktopPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesPaperEnabledPolicy + * @property {('disabled'|'enabled'|'unspecified'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesPasswordControlMode + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesPasswordStrengthPolicy + * @property {('minimal_requirements'|'moderate_password'|'strong_password'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesRolloutMethod + * @property {('unlink_all'|'unlink_most_inactive'|'add_member_to_exceptions')} .tag - Tag identifying the union variant. + */ /** + * Policy governing which shared folders a team member can join. + * @typedef {Object} TeamPoliciesSharedFolderJoinPolicy + * @property {('from_team_only'|'from_anyone'|'other')} .tag - Tag identifying the union variant. + */ /** + * Policy governing who can be a member of a folder shared by a team member. + * @typedef {Object} TeamPoliciesSharedFolderMemberPolicy + * @property {('team'|'anyone'|'other')} .tag - Tag identifying the union variant. + */ /** + * Policy governing the visibility of shared links. This policy can apply to + * newly created shared links, or all shared links. + * @typedef {Object} TeamPoliciesSharedLinkCreatePolicy + * @property {('default_public'|'default_team_only'|'team_only'|'default_no_one'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesShowcaseDownloadPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesShowcaseEnabledPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesShowcaseExternalSharingPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesSmartSyncPolicy + * @property {('local'|'on_demand'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesSmarterSmartSyncPolicyState + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesSsoPolicy + * @property {('disabled'|'optional'|'required'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesSuggestMembersPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Policies governing team members. + * @typedef {Object} TeamPoliciesTeamMemberPolicies + * @property {TeamPoliciesTeamSharingPolicies} sharing - Policies governing + * sharing. + * @property {TeamPoliciesEmmState} emm_state - This describes the Enterprise + * Mobility Management (EMM) state for this team. This information can be used + * to understand if an organization is integrating with a third-party EMM vendor + * to further manage and apply restrictions upon the team's Dropbox usage on + * mobile devices. This is a new feature and in the future we'll be adding more + * new fields and additional documentation. + * @property {TeamPoliciesOfficeAddInPolicy} office_addin - The admin policy + * around the Dropbox Office Add-In for this team. + * @property {TeamPoliciesSuggestMembersPolicy} suggest_members_policy - The + * team policy on if teammembers are allowed to suggest users for admins to + * invite to the team. + */ /** + * Policies governing sharing within and outside of the team. + * @typedef {Object} TeamPoliciesTeamSharingPolicies + * @property {TeamPoliciesSharedFolderMemberPolicy} shared_folder_member_policy + * - Who can join folders shared by team members. + * @property {TeamPoliciesSharedFolderJoinPolicy} shared_folder_join_policy - + * Which shared folders team members can join. + * @property {TeamPoliciesSharedLinkCreatePolicy} shared_link_create_policy - + * Who can view shared links owned by team members. + * @property {TeamPoliciesGroupCreation} group_creation_policy - Who can create + * groups. + */ /** + * @typedef {Object} TeamPoliciesTwoStepVerificationPolicy + * @property {('require_tfa_enable'|'require_tfa_disable'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesTwoStepVerificationState + * @property {('required'|'optional'|'disabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * The amount of detail revealed about an account depends on the user being + * queried and the user making the query. + * @typedef {Object} UsersAccount + * @property {string} account_id - The user's unique Dropbox ID. + * @property {UsersName} name - Details of a user's name. + * @property {string} email - The user's email address. Do not rely on this + * without checking the email_verified field. Even then, it's possible that the + * user has since lost access to their email. + * @property {boolean} email_verified - Whether the user has verified their + * email address. + * @property {boolean} disabled - Whether the user has been disabled. + * @property {string} [profile_photo_url] - URL for the photo representing the + * user, if one is set. + */ /** + * Basic information about any account. + * @typedef {Object} UsersBasicAccount + * @property {string} account_id - The user's unique Dropbox ID. + * @property {UsersName} name - Details of a user's name. + * @property {string} email - The user's email address. Do not rely on this + * without checking the email_verified field. Even then, it's possible that the + * user has since lost access to their email. + * @property {boolean} email_verified - Whether the user has verified their + * email address. + * @property {boolean} disabled - Whether the user has been disabled. + * @property {boolean} is_teammate - Whether this user is a teammate of the + * current user. If this account is the current user's account, then this will + * be true. + * @property {string} [profile_photo_url] - URL for the photo representing the + * user, if one is set. + * @property {string} [team_member_id] - The user's unique team member id. This + * field will only be present if the user is part of a team and is_teammate is + * true. + */ /** + * The value for UserFeature.file_locking. + * @typedef {Object} UsersFileLockingValue + * @property {boolean} [enabled] - Available if .tag is enabled. When this value + * is True, the user can lock files in shared directories. When the value is + * False the user can unlock the files they have locked or request to unlock + * files locked by others. + * @property {('enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Detailed information about the current user's account. + * @typedef {Object} UsersFullAccount + * @property {string} account_id - The user's unique Dropbox ID. + * @property {UsersName} name - Details of a user's name. + * @property {string} email - The user's email address. Do not rely on this + * without checking the email_verified field. Even then, it's possible that the + * user has since lost access to their email. + * @property {boolean} email_verified - Whether the user has verified their + * email address. + * @property {boolean} disabled - Whether the user has been disabled. + * @property {string} locale - The language that the user specified. Locale tags + * will be IETF language tags http://en.wikipedia.org/wiki/IETF_language_tag. + * @property {string} referral_link - The user's referral link + * https://www.dropbox.com/referrals. + * @property {boolean} is_paired - Whether the user has a personal and work + * account. If the current account is personal, then team will always be null, + * but is_paired will indicate if a work account is linked. + * @property {UsersCommonAccountType} account_type - What type of account this + * user has. + * @property {(CommonTeamRootInfo|CommonUserRootInfo|CommonRootInfo)} root_info + * - The root info for this account. + * @property {string} [profile_photo_url] - URL for the photo representing the + * user, if one is set. + * @property {string} [country] - The user's two-letter country code, if + * available. Country codes are based on ISO 3166-1 + * http://en.wikipedia.org/wiki/ISO_3166-1. + * @property {UsersFullTeam} [team] - If this account is a member of a team, + * information about that team. + * @property {string} [team_member_id] - This account's unique team member id. + * This field will only be present if team is present. + */ /** + * Detailed information about a team. + * @typedef {Object} UsersFullTeam + * @property {string} id - The team's unique ID. + * @property {string} name - The name of the team. + * @property {TeamPoliciesTeamSharingPolicies} sharing_policies - Team policies + * governing sharing. + * @property {TeamPoliciesOfficeAddInPolicy} office_addin_policy - Team policy + * governing the use of the Office Add-In. + */ /** + * @typedef {Object} UsersGetAccountArg + * @property {string} account_id - A user's account identifier. + */ /** + * @typedef {Object} UsersGetAccountBatchArg + * @property {Array.} account_ids - List of user account identifiers. + * Should not contain any duplicate account IDs. + */ /** + * @typedef {Object} UsersGetAccountBatchError + * @property {string} [no_account] - Available if .tag is no_account. The value + * is an account ID specified in :field:`GetAccountBatchArg.account_ids` that + * does not exist. + * @property {('no_account'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} UsersGetAccountError + * @property {('no_account'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} UsersIndividualSpaceAllocation + * @property {number} allocated - The total space allocated to the user's + * account (bytes). + */ /** + * Representations for a person's name to assist with internationalization. + * @typedef {Object} UsersName + * @property {string} given_name - Also known as a first name. + * @property {string} surname - Also known as a last name or family name. + * @property {string} familiar_name - Locale-dependent name. In the US, a + * person's familiar name is their given_name, but elsewhere, it could be any + * combination of a person's given_name and surname. + * @property {string} display_name - A name that can be used directly to + * represent the name of a user's Dropbox account. + * @property {string} abbreviated_name - An abbreviated form of the person's + * name. Their initials in most locales. + */ /** + * The value for UserFeature.paper_as_files. + * @typedef {Object} UsersPaperAsFilesValue + * @property {boolean} [enabled] - Available if .tag is enabled. When this value + * is true, the user's Paper docs are accessible in Dropbox with the .paper + * extension and must be accessed via the /files endpoints. When this value is + * false, the user's Paper docs are stored separate from Dropbox files and + * folders and should be accessed via the /paper endpoints. + * @property {('enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Space is allocated differently based on the type of account. + * @typedef {Object} UsersSpaceAllocation + * @property {UsersIndividualSpaceAllocation} [individual] - Available if .tag + * is individual. The user's space allocation applies only to their individual + * account. + * @property {UsersTeamSpaceAllocation} [team] - Available if .tag is team. The + * user shares space with other members of their team. + * @property {('individual'|'team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information about a user's space usage and quota. + * @typedef {Object} UsersSpaceUsage + * @property {number} used - The user's total space usage (bytes). + * @property {UsersSpaceAllocation} allocation - The user's space allocation. + */ /** + * Information about a team. + * @typedef {Object} UsersTeam + * @property {string} id - The team's unique ID. + * @property {string} name - The name of the team. + */ /** + * @typedef {Object} UsersTeamSpaceAllocation + * @property {number} used - The total space currently used by the user's team + * (bytes). + * @property {number} allocated - The total space allocated to the user's team + * (bytes). + * @property {number} user_within_team_space_allocated - The total space + * allocated to the user within its team allocated space (0 means that no + * restriction is imposed on the user's quota within its team). + * @property {TeamCommonMemberSpaceLimitType} user_within_team_space_limit_type + * - The type of the space limit imposed on the team member (off, alert_only, + * stop_sync). + * @property {number} user_within_team_space_used_cached - An accurate cached + * calculation of a team member's total space usage (bytes). + */ /** + * A set of features that a Dropbox User account may have configured. + * @typedef {Object} UsersUserFeature + * @property {('paper_as_files'|'file_locking'|'other')} .tag - Tag identifying the union variant. + */ /** + * Values that correspond to entries in UserFeature. + * @typedef {Object} UsersUserFeatureValue + * @property {UsersPaperAsFilesValue} [paper_as_files] - Available if .tag is + * paper_as_files. + * @property {UsersFileLockingValue} [file_locking] - Available if .tag is + * file_locking. + * @property {('paper_as_files'|'file_locking'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} UsersUserFeaturesGetValuesBatchArg + * @property {Array.} features - A list of features in + * UserFeature. If the list is empty, this route will return + * UserFeaturesGetValuesBatchError. + */ /** + * @typedef {Object} UsersUserFeaturesGetValuesBatchError + * @property {('empty_features_list'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} UsersUserFeaturesGetValuesBatchResult + * @property {Array.} values + */ /** + * What type of account this user has. + * @typedef {Object} UsersCommonAccountType + * @property {('basic'|'pro'|'business')} .tag - Tag identifying the union variant. + */"use strict"; \ No newline at end of file diff --git a/node_modules/tr46/dropbox/cjs/src/auth.js b/node_modules/tr46/dropbox/cjs/src/auth.js new file mode 100644 index 0000000000000000000000000000000000000000..9717e2ae45838c2df62ec6735cc57bf4e7dbe59d --- /dev/null +++ b/node_modules/tr46/dropbox/cjs/src/auth.js @@ -0,0 +1,492 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = undefined; + +var _utils = require("./utils.js"); + +var _response = require("./response.js"); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var fetch; +var crypto; +var Encoder; // Expiration is 300 seconds but needs to be in milliseconds for Date object + +var TokenExpirationBuffer = 300 * 1000; +var PKCELength = 128; +var TokenAccessTypes = ['legacy', 'offline', 'online']; +var GrantTypes = ['code', 'token']; +var IncludeGrantedScopes = ['none', 'user', 'team']; +/** + * @class DropboxAuth + * @classdesc The DropboxAuth class that provides methods to manage, acquire, and refresh tokens. + * @arg {Object} options + * @arg {Function} [options.fetch] - fetch library for making requests. + * @arg {String} [options.accessToken] - An access token for making authenticated + * requests. + * @arg {Date} [options.AccessTokenExpiresAt] - Date of the current access token's + * expiration (if available) + * @arg {String} [options.refreshToken] - A refresh token for retrieving access tokens + * @arg {String} [options.clientId] - The client id for your app. Used to create + * authentication URL. + * @arg {String} [options.clientSecret] - The client secret for your app. Used to create + * authentication URL and refresh access tokens. + * @arg {String} [options.domain] - A custom domain to use when making api requests. This + * should only be used for testing as scaffolding to avoid making network requests. + * @arg {String} [options.domainDelimiter] - A custom delimiter to use when separating domain from + * subdomain. This should only be used for testing as scaffolding. + * @arg {Object} [options.customHeaders] - An object (in the form of header: value) designed to set + * custom headers to use during a request. + * @arg {Boolean} [options.dataOnBody] - Whether request data is sent on body or as URL params. + * Defaults to false. +*/ + +var DropboxAuth = /*#__PURE__*/function () { + function DropboxAuth(options) { + _classCallCheck(this, DropboxAuth); + + options = options || {}; + + if ((0, _utils.isBrowserEnv)()) { + fetch = window.fetch.bind(window); + crypto = window.crypto || window.msCrypto; // for IE11 + } else if ((0, _utils.isWorkerEnv)()) { + /* eslint-disable no-restricted-globals */ + fetch = self.fetch.bind(self); + crypto = self.crypto; + /* eslint-enable no-restricted-globals */ + } else { + fetch = require('node-fetch'); // eslint-disable-line global-require + + crypto = require('crypto'); // eslint-disable-line global-require + } + + if (typeof TextEncoder === 'undefined') { + Encoder = require('util').TextEncoder; // eslint-disable-line global-require + } else { + Encoder = TextEncoder; + } + + this.fetch = options.fetch || fetch; + this.accessToken = options.accessToken; + this.accessTokenExpiresAt = options.accessTokenExpiresAt; + this.refreshToken = options.refreshToken; + this.clientId = options.clientId; + this.clientSecret = options.clientSecret; + this.domain = options.domain; + this.domainDelimiter = options.domainDelimiter; + this.customHeaders = options.customHeaders; + this.dataOnBody = options.dataOnBody; + } + /** + * Set the access token used to authenticate requests to the API. + * @arg {String} accessToken - An access token + * @returns {undefined} + */ + + + _createClass(DropboxAuth, [{ + key: "setAccessToken", + value: function setAccessToken(accessToken) { + this.accessToken = accessToken; + } + /** + * Get the access token + * @returns {String} Access token + */ + + }, { + key: "getAccessToken", + value: function getAccessToken() { + return this.accessToken; + } + /** + * Set the client id, which is used to help gain an access token. + * @arg {String} clientId - Your apps client id + * @returns {undefined} + */ + + }, { + key: "setClientId", + value: function setClientId(clientId) { + this.clientId = clientId; + } + /** + * Get the client id + * @returns {String} Client id + */ + + }, { + key: "getClientId", + value: function getClientId() { + return this.clientId; + } + /** + * Set the client secret + * @arg {String} clientSecret - Your app's client secret + * @returns {undefined} + */ + + }, { + key: "setClientSecret", + value: function setClientSecret(clientSecret) { + this.clientSecret = clientSecret; + } + /** + * Get the client secret + * @returns {String} Client secret + */ + + }, { + key: "getClientSecret", + value: function getClientSecret() { + return this.clientSecret; + } + /** + * Gets the refresh token + * @returns {String} Refresh token + */ + + }, { + key: "getRefreshToken", + value: function getRefreshToken() { + return this.refreshToken; + } + /** + * Sets the refresh token + * @param refreshToken - A refresh token + */ + + }, { + key: "setRefreshToken", + value: function setRefreshToken(refreshToken) { + this.refreshToken = refreshToken; + } + /** + * Gets the access token's expiration date + * @returns {Date} date of token expiration + */ + + }, { + key: "getAccessTokenExpiresAt", + value: function getAccessTokenExpiresAt() { + return this.accessTokenExpiresAt; + } + /** + * Sets the access token's expiration date + * @param accessTokenExpiresAt - new expiration date + */ + + }, { + key: "setAccessTokenExpiresAt", + value: function setAccessTokenExpiresAt(accessTokenExpiresAt) { + this.accessTokenExpiresAt = accessTokenExpiresAt; + } + /** + * Sets the code verifier for PKCE flow + * @param {String} codeVerifier - new code verifier + */ + + }, { + key: "setCodeVerifier", + value: function setCodeVerifier(codeVerifier) { + this.codeVerifier = codeVerifier; + } + /** + * Gets the code verifier for PKCE flow + * @returns {String} - code verifier for PKCE + */ + + }, { + key: "getCodeVerifier", + value: function getCodeVerifier() { + return this.codeVerifier; + } + }, { + key: "generateCodeChallenge", + value: function generateCodeChallenge() { + var _this = this; + + var encoder = new Encoder(); + var codeData = encoder.encode(this.codeVerifier); + var codeChallenge; + + if ((0, _utils.isBrowserEnv)() || (0, _utils.isWorkerEnv)()) { + return crypto.subtle.digest('SHA-256', codeData).then(function (digestedHash) { + var base64String = btoa(String.fromCharCode.apply(null, new Uint8Array(digestedHash))); + codeChallenge = (0, _utils.createBrowserSafeString)(base64String).substr(0, 128); + _this.codeChallenge = codeChallenge; + }); + } + + var digestedHash = crypto.createHash('sha256').update(codeData).digest(); + codeChallenge = (0, _utils.createBrowserSafeString)(digestedHash); + this.codeChallenge = codeChallenge; + return Promise.resolve(); + } + }, { + key: "generatePKCECodes", + value: function generatePKCECodes() { + var codeVerifier; + + if ((0, _utils.isBrowserEnv)() || (0, _utils.isWorkerEnv)()) { + var array = new Uint8Array(PKCELength); + var randomValueArray = crypto.getRandomValues(array); + var base64String = btoa(randomValueArray); + codeVerifier = (0, _utils.createBrowserSafeString)(base64String).substr(0, 128); + } else { + var randomBytes = crypto.randomBytes(PKCELength); + codeVerifier = (0, _utils.createBrowserSafeString)(randomBytes).substr(0, 128); + } + + this.codeVerifier = codeVerifier; + return this.generateCodeChallenge(); + } + /** + * Get a URL that can be used to authenticate users for the Dropbox API. + * @arg {String} redirectUri - A URL to redirect the user to after + * authenticating. This must be added to your app through the admin interface. + * @arg {String} [state] - State that will be returned in the redirect URL to help + * prevent cross site scripting attacks. + * @arg {String} [authType] - auth type, defaults to 'token', other option is 'code' + * @arg {String} [tokenAccessType] - type of token to request. From the following: + * null - creates a token with the app default (either legacy or online) + * legacy - creates one long-lived token with no expiration + * online - create one short-lived token with an expiration + * offline - create one short-lived token with an expiration with a refresh token + * @arg {Array} [scope] - scopes to request for the grant + * @arg {String} [includeGrantedScopes] - whether or not to include previously granted scopes. + * From the following: + * user - include user scopes in the grant + * team - include team scopes in the grant + * Note: if this user has never linked the app, include_granted_scopes must be None + * @arg {boolean} [usePKCE] - Whether or not to use Sha256 based PKCE. PKCE should be only use + * on client apps which doesn't call your server. It is less secure than non-PKCE flow but + * can be used if you are unable to safely retrieve your app secret + * @returns {Promise} - Url to send user to for Dropbox API authentication + * returned in a promise + */ + + }, { + key: "getAuthenticationUrl", + value: function getAuthenticationUrl(redirectUri, state) { + var _this2 = this; + + var authType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'token'; + var tokenAccessType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + var scope = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null; + var includeGrantedScopes = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'none'; + var usePKCE = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false; + var clientId = this.getClientId(); + var baseUrl = (0, _utils.OAuth2AuthorizationUrl)(this.domain); + + if (!clientId) { + throw new Error('A client id is required. You can set the client id using .setClientId().'); + } + + if (authType !== 'code' && !redirectUri) { + throw new Error('A redirect uri is required.'); + } + + if (!GrantTypes.includes(authType)) { + throw new Error('Authorization type must be code or token'); + } + + if (tokenAccessType && !TokenAccessTypes.includes(tokenAccessType)) { + throw new Error('Token Access Type must be legacy, offline, or online'); + } + + if (scope && !(scope instanceof Array)) { + throw new Error('Scope must be an array of strings'); + } + + if (!IncludeGrantedScopes.includes(includeGrantedScopes)) { + throw new Error('includeGrantedScopes must be none, user, or team'); + } + + var authUrl; + + if (authType === 'code') { + authUrl = "".concat(baseUrl, "?response_type=code&client_id=").concat(clientId); + } else { + authUrl = "".concat(baseUrl, "?response_type=token&client_id=").concat(clientId); + } + + if (redirectUri) { + authUrl += "&redirect_uri=".concat(redirectUri); + } + + if (state) { + authUrl += "&state=".concat(state); + } + + if (tokenAccessType) { + authUrl += "&token_access_type=".concat(tokenAccessType); + } + + if (scope) { + authUrl += "&scope=".concat(scope.join(' ')); + } + + if (includeGrantedScopes !== 'none') { + authUrl += "&include_granted_scopes=".concat(includeGrantedScopes); + } + + if (usePKCE) { + return this.generatePKCECodes().then(function () { + authUrl += '&code_challenge_method=S256'; + authUrl += "&code_challenge=".concat(_this2.codeChallenge); + return authUrl; + }); + } + + return Promise.resolve(authUrl); + } + /** + * Get an OAuth2 access token from an OAuth2 Code. + * @arg {String} redirectUri - A URL to redirect the user to after + * authenticating. This must be added to your app through the admin interface. + * @arg {String} code - An OAuth2 code. + * @returns {Object} An object containing the token and related info (if applicable) + */ + + }, { + key: "getAccessTokenFromCode", + value: function getAccessTokenFromCode(redirectUri, code) { + var clientId = this.getClientId(); + var clientSecret = this.getClientSecret(); + + if (!clientId) { + throw new Error('A client id is required. You can set the client id using .setClientId().'); + } + + var path = (0, _utils.OAuth2TokenUrl)(this.domain, this.domainDelimiter); + path += '?grant_type=authorization_code'; + path += "&code=".concat(code); + path += "&client_id=".concat(clientId); + + if (clientSecret) { + path += "&client_secret=".concat(clientSecret); + } else { + if (!this.codeVerifier) { + throw new Error('You must use PKCE when generating the authorization URL to not include a client secret'); + } + + path += "&code_verifier=".concat(this.codeVerifier); + } + + if (redirectUri) { + path += "&redirect_uri=".concat(redirectUri); + } + + var fetchOptions = { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }; + return this.fetch(path, fetchOptions).then(function (res) { + return (0, _response.parseResponse)(res); + }); + } + /** + * Checks if a token is needed, can be refreshed and if the token is expired. + * If so, attempts to refresh access token + * @returns {Promise<*>} + */ + + }, { + key: "checkAndRefreshAccessToken", + value: function checkAndRefreshAccessToken() { + var canRefresh = this.getRefreshToken() && this.getClientId(); + var needsRefresh = !this.getAccessTokenExpiresAt() || new Date(Date.now() + TokenExpirationBuffer) >= this.getAccessTokenExpiresAt(); + var needsToken = !this.getAccessToken(); + + if ((needsRefresh || needsToken) && canRefresh) { + return this.refreshAccessToken(); + } + + return Promise.resolve(); + } + /** + * Refreshes the access token using the refresh token, if available + * @arg {Array} scope - a subset of scopes from the original + * refresh to acquire with an access token + * @returns {Promise<*>} + */ + + }, { + key: "refreshAccessToken", + value: function refreshAccessToken() { + var _this3 = this; + + var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + var clientId = this.getClientId(); + var clientSecret = this.getClientSecret(); + + if (!clientId) { + throw new Error('A client id is required. You can set the client id using .setClientId().'); + } + + if (scope && !(scope instanceof Array)) { + throw new Error('Scope must be an array of strings'); + } + + var refreshUrl = (0, _utils.OAuth2TokenUrl)(this.domain, this.domainDelimiter); + var fetchOptions = { + headers: { + 'Content-Type': 'application/json' + }, + method: 'POST' + }; + + if (this.dataOnBody) { + var body = { + grant_type: 'refresh_token', + client_id: clientId, + refresh_token: this.getRefreshToken() + }; + + if (clientSecret) { + body.client_secret = clientSecret; + } + + if (scope) { + body.scope = scope.join(' '); + } + + fetchOptions.body = body; + } else { + refreshUrl += "?grant_type=refresh_token&refresh_token=".concat(this.getRefreshToken()); + refreshUrl += "&client_id=".concat(clientId); + + if (clientSecret) { + refreshUrl += "&client_secret=".concat(clientSecret); + } + + if (scope) { + refreshUrl += "&scope=".concat(scope.join(' ')); + } + } + + return this.fetch(refreshUrl, fetchOptions).then(function (res) { + return (0, _response.parseResponse)(res); + }).then(function (res) { + _this3.setAccessToken(res.result.access_token); + + _this3.setAccessTokenExpiresAt((0, _utils.getTokenExpiresAtDate)(res.result.expires_in)); + }); + } + }]); + + return DropboxAuth; +}(); + +exports["default"] = DropboxAuth; \ No newline at end of file diff --git a/node_modules/tr46/dropbox/cjs/src/constants.js b/node_modules/tr46/dropbox/cjs/src/constants.js new file mode 100644 index 0000000000000000000000000000000000000000..56f0d97581d9616c73ec6a86fb127354a37562d3 --- /dev/null +++ b/node_modules/tr46/dropbox/cjs/src/constants.js @@ -0,0 +1,20 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var RPC = exports.RPC = 'rpc'; +var UPLOAD = exports.UPLOAD = 'upload'; +var DOWNLOAD = exports.DOWNLOAD = 'download'; +var APP_AUTH = exports.APP_AUTH = 'app'; +var USER_AUTH = exports.USER_AUTH = 'user'; +var TEAM_AUTH = exports.TEAM_AUTH = 'team'; +var NO_AUTH = exports.NO_AUTH = 'noauth'; +var COOKIE = exports.COOKIE = 'cookie'; +var DEFAULT_API_DOMAIN = exports.DEFAULT_API_DOMAIN = 'dropboxapi.com'; +var DEFAULT_DOMAIN = exports.DEFAULT_DOMAIN = 'dropbox.com'; +var TEST_DOMAIN_MAPPINGS = exports.TEST_DOMAIN_MAPPINGS = { + api: 'api', + notify: 'bolt', + content: 'api-content' +}; \ No newline at end of file diff --git a/node_modules/tr46/dropbox/cjs/src/dropbox.js b/node_modules/tr46/dropbox/cjs/src/dropbox.js new file mode 100644 index 0000000000000000000000000000000000000000..5ca66ebef0c0d25be697fcaa4fbf685ab1194e00 --- /dev/null +++ b/node_modules/tr46/dropbox/cjs/src/dropbox.js @@ -0,0 +1,247 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = undefined; + +var _constants = require("./constants.js"); + +var _routes = require("../lib/routes.js"); + +var _auth = require("./auth.js"); + +var _utils = require("./utils.js"); + +var _response = require("./response.js"); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var b64 = typeof btoa === 'undefined' ? function (str) { + return Buffer.from(str).toString('base64'); +} : btoa; +/** + * @class Dropbox + * @classdesc The Dropbox SDK class that provides methods to read, write and + * create files or folders in a user or team's Dropbox. + * @arg {Object} options + * @arg {Function} [options.fetch] - fetch library for making requests. + * @arg {String} [options.selectUser] - Select user is only used for team functionality. + * It specifies which user the team access token should be acting as. + * @arg {String} [options.pathRoot] - root path to access other namespaces + * Use to access team folders for example + * @arg {String} [options.selectAdmin] - Select admin is only used by team functionality. + * It specifies which team admin the team access token should be acting as. + * @arg {DropboxAuth} [options.auth] - The DropboxAuth object used to authenticate requests. + * If this is set, the remaining parameters will be ignored. + * @arg {String} [options.accessToken] - An access token for making authenticated + * requests. + * @arg {Date} [options.accessTokenExpiresAt] - Date of the current access token's + * expiration (if available) + * @arg {String} [options.refreshToken] - A refresh token for retrieving access tokens + * @arg {String} [options.clientId] - The client id for your app. Used to create + * authentication URL. + * @arg {String} [options.clientSecret] - The client secret for your app. Used to create + * authentication URL and refresh access tokens. + * @arg {String} [options.domain] - A custom domain to use when making api requests. This + * should only be used for testing as scaffolding to avoid making network requests. + * @arg {String} [options.domainDelimiter] - A custom delimiter to use when separating domain from + * subdomain. This should only be used for testing as scaffolding. + * @arg {Object} [options.customHeaders] - An object (in the form of header: value) designed to set + * custom headers to use during a request. + */ + +var Dropbox = /*#__PURE__*/function () { + function Dropbox(options) { + _classCallCheck(this, Dropbox); + + options = options || {}; + + if (options.auth) { + this.auth = options.auth; + } else { + this.auth = new _auth["default"](options); + } + + this.fetch = options.fetch || this.auth.fetch; + this.selectUser = options.selectUser; + this.selectAdmin = options.selectAdmin; + this.pathRoot = options.pathRoot; + this.domain = options.domain || this.auth.domain; + this.domainDelimiter = options.domainDelimiter || this.auth.domainDelimiter; + this.customHeaders = options.customHeaders || this.auth.customHeaders; + Object.assign(this, _routes.routes); + } + + _createClass(Dropbox, [{ + key: "request", + value: function request(path, args, auth, host, style) { + // scope is provided after "style", but unused in requests, so it's not in parameters + switch (style) { + case _constants.RPC: + return this.rpcRequest(path, args, auth, host); + + case _constants.DOWNLOAD: + return this.downloadRequest(path, args, auth, host); + + case _constants.UPLOAD: + return this.uploadRequest(path, args, auth, host); + + default: + throw new Error("Invalid request style: ".concat(style)); + } + } + }, { + key: "rpcRequest", + value: function rpcRequest(path, body, auth, host) { + var _this = this; + + return this.auth.checkAndRefreshAccessToken().then(function () { + var fetchOptions = { + method: 'POST', + body: body ? JSON.stringify(body) : null, + headers: {} + }; + + if (body) { + fetchOptions.headers['Content-Type'] = 'application/json'; + } + + _this.setAuthHeaders(auth, fetchOptions); + + _this.setCommonHeaders(fetchOptions); + + return fetchOptions; + }).then(function (fetchOptions) { + return _this.fetch((0, _utils.baseApiUrl)(host, _this.domain, _this.domainDelimiter) + path, fetchOptions); + }).then(function (res) { + return (0, _response.parseResponse)(res); + }); + } + }, { + key: "downloadRequest", + value: function downloadRequest(path, args, auth, host) { + var _this2 = this; + + return this.auth.checkAndRefreshAccessToken().then(function () { + var fetchOptions = { + method: 'POST', + headers: { + 'Dropbox-API-Arg': (0, _utils.httpHeaderSafeJson)(args) + } + }; + + _this2.setAuthHeaders(auth, fetchOptions); + + _this2.setCommonHeaders(fetchOptions); + + return fetchOptions; + }).then(function (fetchOptions) { + return _this2.fetch((0, _utils.baseApiUrl)(host, _this2.domain, _this2.domainDelimiter) + path, fetchOptions); + }).then(function (res) { + return (0, _response.parseDownloadResponse)(res); + }); + } + }, { + key: "uploadRequest", + value: function uploadRequest(path, args, auth, host) { + var _this3 = this; + + return this.auth.checkAndRefreshAccessToken().then(function () { + var contents = args.contents; + delete args.contents; + var fetchOptions = { + body: contents, + method: 'POST', + headers: { + 'Content-Type': 'application/octet-stream', + 'Dropbox-API-Arg': (0, _utils.httpHeaderSafeJson)(args) + } + }; + + _this3.setAuthHeaders(auth, fetchOptions); + + _this3.setCommonHeaders(fetchOptions); + + return fetchOptions; + }).then(function (fetchOptions) { + return _this3.fetch((0, _utils.baseApiUrl)(host, _this3.domain, _this3.domainDelimiter) + path, fetchOptions); + }).then(function (res) { + return (0, _response.parseResponse)(res); + }); + } + }, { + key: "setAuthHeaders", + value: function setAuthHeaders(auth, fetchOptions) { + // checks for multiauth and assigns auth based on priority to create header in switch case + if (auth.split(',').length > 1) { + var authTypes = auth.replace(' ', '').split(','); + + if (authTypes.includes(_constants.USER_AUTH) && this.auth.getAccessToken()) { + auth = _constants.USER_AUTH; + } else if (authTypes.includes(_constants.TEAM_AUTH) && this.auth.getAccessToken()) { + auth = _constants.TEAM_AUTH; + } else if (authTypes.includes(_constants.APP_AUTH)) { + auth = _constants.APP_AUTH; + } + } + + switch (auth) { + case _constants.APP_AUTH: + if (this.auth.clientId && this.auth.clientSecret) { + var authHeader = b64("".concat(this.auth.clientId, ":").concat(this.auth.clientSecret)); + fetchOptions.headers.Authorization = "Basic ".concat(authHeader); + } + + break; + + case _constants.TEAM_AUTH: + case _constants.USER_AUTH: + if (this.auth.getAccessToken()) { + fetchOptions.headers.Authorization = "Bearer ".concat(this.auth.getAccessToken()); + } + + break; + + case _constants.NO_AUTH: + case _constants.COOKIE: + break; + + default: + throw new Error("Unhandled auth type: ".concat(auth)); + } + } + }, { + key: "setCommonHeaders", + value: function setCommonHeaders(options) { + var _this4 = this; + + if (this.selectUser) { + options.headers['Dropbox-API-Select-User'] = this.selectUser; + } + + if (this.selectAdmin) { + options.headers['Dropbox-API-Select-Admin'] = this.selectAdmin; + } + + if (this.pathRoot) { + options.headers['Dropbox-API-Path-Root'] = this.pathRoot; + } + + if (this.customHeaders) { + var headerKeys = Object.keys(this.customHeaders); + headerKeys.forEach(function (header) { + options.headers[header] = _this4.customHeaders[header]; + }); + } + } + }]); + + return Dropbox; +}(); + +exports["default"] = Dropbox; \ No newline at end of file diff --git a/node_modules/tr46/dropbox/cjs/src/error.js b/node_modules/tr46/dropbox/cjs/src/error.js new file mode 100644 index 0000000000000000000000000000000000000000..600264a33ec7e8bd50ebfc54571fecd95b2291ed --- /dev/null +++ b/node_modules/tr46/dropbox/cjs/src/error.js @@ -0,0 +1,58 @@ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } + +function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +/** + * The response class of HTTP errors from API calls using the Dropbox SDK. + * @class DropboxResponseError + * @classdesc The response class of HTTP errors from API calls using the Dropbox SDK. + * @arg {number} status - HTTP Status code of the call + * @arg {Object} headers - Headers returned from the call + * @arg {Object} error - Serialized Error of the call + */ +var DropboxResponseError = /*#__PURE__*/exports.DropboxResponseError = function (_Error) { + _inherits(DropboxResponseError, _Error); + + var _super = _createSuper(DropboxResponseError); + + function DropboxResponseError(status, headers, error) { + var _this; + + _classCallCheck(this, DropboxResponseError); + + _this = _super.call(this, "Response failed with a ".concat(status, " code")); + _this.name = 'DropboxResponseError'; + _this.status = status; + _this.headers = headers; + _this.error = error; + return _this; + } + + return DropboxResponseError; +}( /*#__PURE__*/_wrapNativeSuper(Error)); \ No newline at end of file diff --git a/node_modules/tr46/dropbox/cjs/src/response.js b/node_modules/tr46/dropbox/cjs/src/response.js new file mode 100644 index 0000000000000000000000000000000000000000..ec37d1b1411a5e93ff19051a2d63652eb60b54be --- /dev/null +++ b/node_modules/tr46/dropbox/cjs/src/response.js @@ -0,0 +1,82 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.DropboxResponse = undefined; +exports.parseResponse = parseResponse; +exports.parseDownloadResponse = parseDownloadResponse; + +var _utils = require("./utils.js"); + +var _error = require("./error.js"); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var DropboxResponse = exports.DropboxResponse = function DropboxResponse(status, headers, result) { + _classCallCheck(this, DropboxResponse); + + this.status = status; + this.headers = headers; + this.result = result; +}; + +function throwAsError(res) { + return res.text().then(function (data) { + var errorObject; + + try { + errorObject = JSON.parse(data); + } catch (error) { + errorObject = data; + } + + throw new _error.DropboxResponseError(res.status, res.headers, errorObject); + }); +} + +function parseResponse(res) { + if (!res.ok) { + return throwAsError(res); + } + + return res.text().then(function (data) { + var responseObject; + + try { + responseObject = JSON.parse(data); + } catch (error) { + responseObject = data; + } + + return new DropboxResponse(res.status, res.headers, responseObject); + }); +} + +function parseDownloadResponse(res) { + if (!res.ok) { + return throwAsError(res); + } + + return new Promise(function (resolve) { + if ((0, _utils.isWindowOrWorker)()) { + res.blob().then(function (data) { + return resolve(data); + }); + } else { + res.buffer().then(function (data) { + return resolve(data); + }); + } + }).then(function (data) { + var result = JSON.parse(res.headers.get('dropbox-api-result')); + + if ((0, _utils.isWindowOrWorker)()) { + result.fileBlob = data; + } else { + result.fileBinary = data; + } + + return new DropboxResponse(res.status, res.headers, result); + }); +} \ No newline at end of file diff --git a/node_modules/tr46/dropbox/cjs/src/utils.js b/node_modules/tr46/dropbox/cjs/src/utils.js new file mode 100644 index 0000000000000000000000000000000000000000..45ffd1e9bab1a2700a48ae29db154f61ed1f0b21 --- /dev/null +++ b/node_modules/tr46/dropbox/cjs/src/utils.js @@ -0,0 +1,87 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.OAuth2TokenUrl = exports.OAuth2AuthorizationUrl = exports.baseApiUrl = undefined; +exports.httpHeaderSafeJson = httpHeaderSafeJson; +exports.getTokenExpiresAtDate = getTokenExpiresAtDate; +exports.isWindowOrWorker = isWindowOrWorker; +exports.isBrowserEnv = isBrowserEnv; +exports.isWorkerEnv = isWorkerEnv; +exports.createBrowserSafeString = createBrowserSafeString; + +var _constants = require("./constants"); + +function getSafeUnicode(c) { + var unicode = "000".concat(c.charCodeAt(0).toString(16)).slice(-4); + return "\\u".concat(unicode); +} + +var baseApiUrl = exports.baseApiUrl = function baseApiUrl(subdomain) { + var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.DEFAULT_API_DOMAIN; + var domainDelimiter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.'; + + if (!domainDelimiter) { + return "https://".concat(domain, "/2/"); + } + + if (domain !== _constants.DEFAULT_API_DOMAIN && _constants.TEST_DOMAIN_MAPPINGS[subdomain] !== undefined) { + subdomain = _constants.TEST_DOMAIN_MAPPINGS[subdomain]; + domainDelimiter = '-'; + } + + return "https://".concat(subdomain).concat(domainDelimiter).concat(domain, "/2/"); +}; + +var OAuth2AuthorizationUrl = exports.OAuth2AuthorizationUrl = function OAuth2AuthorizationUrl() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.DEFAULT_DOMAIN; + + if (domain !== _constants.DEFAULT_DOMAIN) { + domain = "meta-".concat(domain); + } + + return "https://".concat(domain, "/oauth2/authorize"); +}; + +var OAuth2TokenUrl = exports.OAuth2TokenUrl = function OAuth2TokenUrl() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _constants.DEFAULT_API_DOMAIN; + var domainDelimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '.'; + var subdomain = 'api'; + + if (domain !== _constants.DEFAULT_API_DOMAIN) { + subdomain = _constants.TEST_DOMAIN_MAPPINGS[subdomain]; + domainDelimiter = '-'; + } + + return "https://".concat(subdomain).concat(domainDelimiter).concat(domain, "/oauth2/token"); +}; // source https://www.dropboxforum.com/t5/API-support/HTTP-header-quot-Dropbox-API-Arg-quot-could-not-decode-input-as/m-p/173823/highlight/true#M6786 + + +function httpHeaderSafeJson(args) { + return JSON.stringify(args).replace(/[\u007f-\uffff]/g, getSafeUnicode); +} + +function getTokenExpiresAtDate(expiresIn) { + return new Date(Date.now() + expiresIn * 1000); +} +/* global WorkerGlobalScope */ + + +function isWindowOrWorker() { + return typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope // eslint-disable-line no-restricted-globals + || typeof module === 'undefined' || typeof window !== 'undefined'; +} + +function isBrowserEnv() { + return typeof window !== 'undefined'; +} + +function isWorkerEnv() { + return typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope; // eslint-disable-line no-restricted-globals +} + +function createBrowserSafeString(toBeConverted) { + var convertedString = toBeConverted.toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, ''); + return convertedString; +} \ No newline at end of file diff --git a/node_modules/tr46/dropbox/dist/Dropbox-sdk.js b/node_modules/tr46/dropbox/dist/Dropbox-sdk.js new file mode 100644 index 0000000000000000000000000000000000000000..a8471c09679245983080d94edf5678020065354e --- /dev/null +++ b/node_modules/tr46/dropbox/dist/Dropbox-sdk.js @@ -0,0 +1,5087 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Dropbox = {})); +}(this, (function (exports) { 'use strict'; + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; + } + + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); + } + + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + + try { + Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); + return true; + } catch (e) { + return false; + } + } + + function _construct(Parent, args, Class) { + if (_isNativeReflectConstruct()) { + _construct = Reflect.construct; + } else { + _construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var Constructor = Function.bind.apply(Parent, a); + var instance = new Constructor(); + if (Class) _setPrototypeOf(instance, Class.prototype); + return instance; + }; + } + + return _construct.apply(null, arguments); + } + + function _isNativeFunction(fn) { + return Function.toString.call(fn).indexOf("[native code]") !== -1; + } + + function _wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? new Map() : undefined; + + _wrapNativeSuper = function _wrapNativeSuper(Class) { + if (Class === null || !_isNativeFunction(Class)) return Class; + + if (typeof Class !== "function") { + throw new TypeError("Super expression must either be null or a function"); + } + + if (typeof _cache !== "undefined") { + if (_cache.has(Class)) return _cache.get(Class); + + _cache.set(Class, Wrapper); + } + + function Wrapper() { + return _construct(Class, arguments, _getPrototypeOf(this).constructor); + } + + Wrapper.prototype = Object.create(Class.prototype, { + constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true + } + }); + return _setPrototypeOf(Wrapper, Class); + }; + + return _wrapNativeSuper(Class); + } + + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; + } + + function _possibleConstructorReturn(self, call) { + if (call && (typeof call === "object" || typeof call === "function")) { + return call; + } + + return _assertThisInitialized(self); + } + + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), + result; + + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + + return _possibleConstructorReturn(this, result); + }; + } + + var RPC = 'rpc'; + var UPLOAD = 'upload'; + var DOWNLOAD = 'download'; + var APP_AUTH = 'app'; + var USER_AUTH = 'user'; + var TEAM_AUTH = 'team'; + var NO_AUTH = 'noauth'; + var COOKIE = 'cookie'; + var DEFAULT_API_DOMAIN = 'dropboxapi.com'; + var DEFAULT_DOMAIN = 'dropbox.com'; + var TEST_DOMAIN_MAPPINGS = { + api: 'api', + notify: 'bolt', + content: 'api-content' + }; + + // Auto-generated by Stone, do not modify. + var routes = {}; + /** + * Sets a user's profile photo. + * Route attributes: + * scope: account_info.write + * @function Dropbox#accountSetProfilePhoto + * @arg {AccountSetProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + routes.accountSetProfilePhoto = function (arg) { + return this.request('account/set_profile_photo', arg, 'user', 'api', 'rpc', 'account_info.write'); + }; + /** + * Creates an OAuth 2.0 access token from the supplied OAuth 1.0 access token. + * @function Dropbox#authTokenFromOauth1 + * @arg {AuthTokenFromOAuth1Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.authTokenFromOauth1 = function (arg) { + return this.request('auth/token/from_oauth1', arg, 'app', 'api', 'rpc', null); + }; + /** + * Disables the access token used to authenticate the call. If there is a + * corresponding refresh token for the access token, this disables that refresh + * token, as well as any other access tokens for that refresh token. + * @function Dropbox#authTokenRevoke + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.authTokenRevoke = function () { + return this.request('auth/token/revoke', null, 'user', 'api', 'rpc', null); + }; + /** + * This endpoint performs App Authentication, validating the supplied app key + * and secret, and returns the supplied string, to allow you to test your code + * and connection to the Dropbox API. It has no other effect. If you receive an + * HTTP 200 response with the supplied query, it indicates at least part of the + * Dropbox API infrastructure is working and that the app key and secret valid. + * @function Dropbox#checkApp + * @arg {CheckEchoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.checkApp = function (arg) { + return this.request('check/app', arg, 'app', 'api', 'rpc', null); + }; + /** + * This endpoint performs User Authentication, validating the supplied access + * token, and returns the supplied string, to allow you to test your code and + * connection to the Dropbox API. It has no other effect. If you receive an HTTP + * 200 response with the supplied query, it indicates at least part of the + * Dropbox API infrastructure is working and that the access token is valid. + * Route attributes: + * scope: account_info.read + * @function Dropbox#checkUser + * @arg {CheckEchoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.checkUser = function (arg) { + return this.request('check/user', arg, 'user', 'api', 'rpc', 'account_info.read'); + }; + /** + * Removes all manually added contacts. You'll still keep contacts who are on + * your team or who you imported. New contacts will be added when you share. + * Route attributes: + * scope: contacts.write + * @function Dropbox#contactsDeleteManualContacts + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.contactsDeleteManualContacts = function () { + return this.request('contacts/delete_manual_contacts', null, 'user', 'api', 'rpc', 'contacts.write'); + }; + /** + * Removes manually added contacts from the given list. + * Route attributes: + * scope: contacts.write + * @function Dropbox#contactsDeleteManualContactsBatch + * @arg {ContactsDeleteManualContactsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.contactsDeleteManualContactsBatch = function (arg) { + return this.request('contacts/delete_manual_contacts_batch', arg, 'user', 'api', 'rpc', 'contacts.write'); + }; + /** + * Add property groups to a Dropbox file. See templates/add_for_user or + * templates/add_for_team to create new templates. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesPropertiesAdd + * @arg {FilePropertiesAddPropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filePropertiesPropertiesAdd = function (arg) { + return this.request('file_properties/properties/add', arg, 'user', 'api', 'rpc', 'files.metadata.write'); + }; + /** + * Overwrite property groups associated with a file. This endpoint should be + * used instead of properties/update when property groups are being updated via + * a "snapshot" instead of via a "delta". In other words, this endpoint will + * delete all omitted fields from a property group, whereas properties/update + * will only delete fields that are explicitly marked for deletion. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesPropertiesOverwrite + * @arg {FilePropertiesOverwritePropertyGroupArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filePropertiesPropertiesOverwrite = function (arg) { + return this.request('file_properties/properties/overwrite', arg, 'user', 'api', 'rpc', 'files.metadata.write'); + }; + /** + * Permanently removes the specified property group from the file. To remove + * specific property field key value pairs, see properties/update. To update a + * template, see templates/update_for_user or templates/update_for_team. To + * remove a template, see templates/remove_for_user or + * templates/remove_for_team. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesPropertiesRemove + * @arg {FilePropertiesRemovePropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filePropertiesPropertiesRemove = function (arg) { + return this.request('file_properties/properties/remove', arg, 'user', 'api', 'rpc', 'files.metadata.write'); + }; + /** + * Search across property templates for particular property field values. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filePropertiesPropertiesSearch + * @arg {FilePropertiesPropertiesSearchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filePropertiesPropertiesSearch = function (arg) { + return this.request('file_properties/properties/search', arg, 'user', 'api', 'rpc', 'files.metadata.read'); + }; + /** + * Once a cursor has been retrieved from properties/search, use this to paginate + * through all search results. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filePropertiesPropertiesSearchContinue + * @arg {FilePropertiesPropertiesSearchContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filePropertiesPropertiesSearchContinue = function (arg) { + return this.request('file_properties/properties/search/continue', arg, 'user', 'api', 'rpc', 'files.metadata.read'); + }; + /** + * Add, update or remove properties associated with the supplied file and + * templates. This endpoint should be used instead of properties/overwrite when + * property groups are being updated via a "delta" instead of via a "snapshot" . + * In other words, this endpoint will not delete any omitted fields from a + * property group, whereas properties/overwrite will delete any fields that are + * omitted from a property group. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesPropertiesUpdate + * @arg {FilePropertiesUpdatePropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filePropertiesPropertiesUpdate = function (arg) { + return this.request('file_properties/properties/update', arg, 'user', 'api', 'rpc', 'files.metadata.write'); + }; + /** + * Add a template associated with a team. See properties/add to add properties + * to a file or folder. Note: this endpoint will create team-owned templates. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesAddForTeam + * @arg {FilePropertiesAddTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filePropertiesTemplatesAddForTeam = function (arg) { + return this.request('file_properties/templates/add_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); + }; + /** + * Add a template associated with a user. See properties/add to add properties + * to a file. This endpoint can't be called on a team member or admin's behalf. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesTemplatesAddForUser + * @arg {FilePropertiesAddTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filePropertiesTemplatesAddForUser = function (arg) { + return this.request('file_properties/templates/add_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.write'); + }; + /** + * Get the schema for a specified template. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesGetForTeam + * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filePropertiesTemplatesGetForTeam = function (arg) { + return this.request('file_properties/templates/get_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); + }; + /** + * Get the schema for a specified template. This endpoint can't be called on a + * team member or admin's behalf. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filePropertiesTemplatesGetForUser + * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filePropertiesTemplatesGetForUser = function (arg) { + return this.request('file_properties/templates/get_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.read'); + }; + /** + * Get the template identifiers for a team. To get the schema of each template + * use templates/get_for_team. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesListForTeam + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filePropertiesTemplatesListForTeam = function () { + return this.request('file_properties/templates/list_for_team', null, 'team', 'api', 'rpc', 'files.team_metadata.write'); + }; + /** + * Get the template identifiers for a team. To get the schema of each template + * use templates/get_for_user. This endpoint can't be called on a team member or + * admin's behalf. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filePropertiesTemplatesListForUser + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filePropertiesTemplatesListForUser = function () { + return this.request('file_properties/templates/list_for_user', null, 'user', 'api', 'rpc', 'files.metadata.read'); + }; + /** + * Permanently removes the specified template created from + * templates/add_for_user. All properties associated with the template will also + * be removed. This action cannot be undone. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesRemoveForTeam + * @arg {FilePropertiesRemoveTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filePropertiesTemplatesRemoveForTeam = function (arg) { + return this.request('file_properties/templates/remove_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); + }; + /** + * Permanently removes the specified template created from + * templates/add_for_user. All properties associated with the template will also + * be removed. This action cannot be undone. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesTemplatesRemoveForUser + * @arg {FilePropertiesRemoveTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filePropertiesTemplatesRemoveForUser = function (arg) { + return this.request('file_properties/templates/remove_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.write'); + }; + /** + * Update a template associated with a team. This route can update the template + * name, the template description and add optional properties to templates. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesUpdateForTeam + * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filePropertiesTemplatesUpdateForTeam = function (arg) { + return this.request('file_properties/templates/update_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); + }; + /** + * Update a template associated with a user. This route can update the template + * name, the template description and add optional properties to templates. This + * endpoint can't be called on a team member or admin's behalf. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesTemplatesUpdateForUser + * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filePropertiesTemplatesUpdateForUser = function (arg) { + return this.request('file_properties/templates/update_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.write'); + }; + /** + * Returns the total number of file requests owned by this user. Includes both + * open and closed file requests. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsCount + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.fileRequestsCount = function () { + return this.request('file_requests/count', null, 'user', 'api', 'rpc', 'file_requests.read'); + }; + /** + * Creates a file request for this user. + * Route attributes: + * scope: file_requests.write + * @function Dropbox#fileRequestsCreate + * @arg {FileRequestsCreateFileRequestArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.fileRequestsCreate = function (arg) { + return this.request('file_requests/create', arg, 'user', 'api', 'rpc', 'file_requests.write'); + }; + /** + * Delete a batch of closed file requests. + * Route attributes: + * scope: file_requests.write + * @function Dropbox#fileRequestsDelete + * @arg {FileRequestsDeleteFileRequestArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.fileRequestsDelete = function (arg) { + return this.request('file_requests/delete', arg, 'user', 'api', 'rpc', 'file_requests.write'); + }; + /** + * Delete all closed file requests owned by this user. + * Route attributes: + * scope: file_requests.write + * @function Dropbox#fileRequestsDeleteAllClosed + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.fileRequestsDeleteAllClosed = function () { + return this.request('file_requests/delete_all_closed', null, 'user', 'api', 'rpc', 'file_requests.write'); + }; + /** + * Returns the specified file request. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsGet + * @arg {FileRequestsGetFileRequestArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.fileRequestsGet = function (arg) { + return this.request('file_requests/get', arg, 'user', 'api', 'rpc', 'file_requests.read'); + }; + /** + * Returns a list of file requests owned by this user. For apps with the app + * folder permission, this will only return file requests with destinations in + * the app folder. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsListV2 + * @arg {FileRequestsListFileRequestsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.fileRequestsListV2 = function (arg) { + return this.request('file_requests/list_v2', arg, 'user', 'api', 'rpc', 'file_requests.read'); + }; + /** + * Returns a list of file requests owned by this user. For apps with the app + * folder permission, this will only return file requests with destinations in + * the app folder. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsList + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.fileRequestsList = function () { + return this.request('file_requests/list', null, 'user', 'api', 'rpc', 'file_requests.read'); + }; + /** + * Once a cursor has been retrieved from list_v2, use this to paginate through + * all file requests. The cursor must come from a previous call to list_v2 or + * list/continue. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsListContinue + * @arg {FileRequestsListFileRequestsContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.fileRequestsListContinue = function (arg) { + return this.request('file_requests/list/continue', arg, 'user', 'api', 'rpc', 'file_requests.read'); + }; + /** + * Update a file request. + * Route attributes: + * scope: file_requests.write + * @function Dropbox#fileRequestsUpdate + * @arg {FileRequestsUpdateFileRequestArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.fileRequestsUpdate = function (arg) { + return this.request('file_requests/update', arg, 'user', 'api', 'rpc', 'file_requests.write'); + }; + /** + * Returns the metadata for a file or folder. This is an alpha endpoint + * compatible with the properties API. Note: Metadata for the root folder is + * unsupported. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesAlphaGetMetadata + * @deprecated + * @arg {FilesAlphaGetMetadataArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesAlphaGetMetadata = function (arg) { + return this.request('files/alpha/get_metadata', arg, 'user', 'api', 'rpc', 'files.metadata.read'); + }; + /** + * Create a new file with the contents provided in the request. Note that the + * behavior of this alpha endpoint is unstable and subject to change. Do not use + * this to upload a file larger than 150 MB. Instead, create an upload session + * with upload_session/start. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesAlphaUpload + * @deprecated + * @arg {FilesUploadArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesAlphaUpload = function (arg) { + return this.request('files/alpha/upload', arg, 'user', 'content', 'upload', 'files.content.write'); + }; + /** + * Copy a file or folder to a different location in the user's Dropbox. If the + * source path is a folder all its contents will be copied. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyV2 + * @arg {FilesRelocationArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesCopyV2 = function (arg) { + return this.request('files/copy_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Copy a file or folder to a different location in the user's Dropbox. If the + * source path is a folder all its contents will be copied. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopy + * @deprecated + * @arg {FilesRelocationArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesCopy = function (arg) { + return this.request('files/copy', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Copy multiple files or folders to different locations at once in the user's + * Dropbox. This route will replace copy_batch. The main difference is this + * route will return status for each entry, while copy_batch raises failure if + * any entry fails. This route will either finish synchronously, or return a job + * ID and do the async copy job in background. Please use copy_batch/check_v2 to + * check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyBatchV2 + * @arg {Object} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesCopyBatchV2 = function (arg) { + return this.request('files/copy_batch_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Copy multiple files or folders to different locations at once in the user's + * Dropbox. This route will return job ID immediately and do the async copy job + * in background. Please use copy_batch/check to check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyBatch + * @deprecated + * @arg {FilesRelocationBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesCopyBatch = function (arg) { + return this.request('files/copy_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Returns the status of an asynchronous job for copy_batch_v2. It returns list + * of results for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyBatchCheckV2 + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesCopyBatchCheckV2 = function (arg) { + return this.request('files/copy_batch/check_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Returns the status of an asynchronous job for copy_batch. If success, it + * returns list of results for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyBatchCheck + * @deprecated + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesCopyBatchCheck = function (arg) { + return this.request('files/copy_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Get a copy reference to a file or folder. This reference string can be used + * to save that file or folder to another user's Dropbox by passing it to + * copy_reference/save. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyReferenceGet + * @arg {FilesGetCopyReferenceArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesCopyReferenceGet = function (arg) { + return this.request('files/copy_reference/get', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Save a copy reference returned by copy_reference/get to the user's Dropbox. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyReferenceSave + * @arg {FilesSaveCopyReferenceArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesCopyReferenceSave = function (arg) { + return this.request('files/copy_reference/save', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Create a folder at a given path. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCreateFolderV2 + * @arg {FilesCreateFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesCreateFolderV2 = function (arg) { + return this.request('files/create_folder_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Create a folder at a given path. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCreateFolder + * @deprecated + * @arg {FilesCreateFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesCreateFolder = function (arg) { + return this.request('files/create_folder', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Create multiple folders at once. This route is asynchronous for large + * batches, which returns a job ID immediately and runs the create folder batch + * asynchronously. Otherwise, creates the folders and returns the result + * synchronously for smaller inputs. You can force asynchronous behaviour by + * using the CreateFolderBatchArg.force_async flag. Use + * create_folder_batch/check to check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCreateFolderBatch + * @arg {FilesCreateFolderBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesCreateFolderBatch = function (arg) { + return this.request('files/create_folder_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Returns the status of an asynchronous job for create_folder_batch. If + * success, it returns list of result for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCreateFolderBatchCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesCreateFolderBatchCheck = function (arg) { + return this.request('files/create_folder_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Delete the file or folder at a given path. If the path is a folder, all its + * contents will be deleted too. A successful response indicates that the file + * or folder was deleted. The returned metadata will be the corresponding + * FileMetadata or FolderMetadata for the item at time of deletion, and not a + * DeletedMetadata object. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesDeleteV2 + * @arg {FilesDeleteArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesDeleteV2 = function (arg) { + return this.request('files/delete_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Delete the file or folder at a given path. If the path is a folder, all its + * contents will be deleted too. A successful response indicates that the file + * or folder was deleted. The returned metadata will be the corresponding + * FileMetadata or FolderMetadata for the item at time of deletion, and not a + * DeletedMetadata object. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesDelete + * @deprecated + * @arg {FilesDeleteArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesDelete = function (arg) { + return this.request('files/delete', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Delete multiple files/folders at once. This route is asynchronous, which + * returns a job ID immediately and runs the delete batch asynchronously. Use + * delete_batch/check to check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesDeleteBatch + * @arg {FilesDeleteBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesDeleteBatch = function (arg) { + return this.request('files/delete_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Returns the status of an asynchronous job for delete_batch. If success, it + * returns list of result for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesDeleteBatchCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesDeleteBatchCheck = function (arg) { + return this.request('files/delete_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Download a file from a user's Dropbox. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesDownload + * @arg {FilesDownloadArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesDownload = function (arg) { + return this.request('files/download', arg, 'user', 'content', 'download', 'files.content.read'); + }; + /** + * Download a folder from the user's Dropbox, as a zip file. The folder must be + * less than 20 GB in size and any single file within must be less than 4 GB in + * size. The resulting zip must have fewer than 10,000 total file and folder + * entries, including the top level folder. The input cannot be a single file. + * Note: this endpoint does not support HTTP range requests. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesDownloadZip + * @arg {FilesDownloadZipArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesDownloadZip = function (arg) { + return this.request('files/download_zip', arg, 'user', 'content', 'download', 'files.content.read'); + }; + /** + * Export a file from a user's Dropbox. This route only supports exporting files + * that cannot be downloaded directly and whose ExportResult.file_metadata has + * ExportInfo.export_as populated. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesExport + * @arg {FilesExportArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesExport = function (arg) { + return this.request('files/export', arg, 'user', 'content', 'download', 'files.content.read'); + }; + /** + * Return the lock metadata for the given list of paths. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetFileLockBatch + * @arg {FilesLockFileBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesGetFileLockBatch = function (arg) { + return this.request('files/get_file_lock_batch', arg, 'user', 'api', 'rpc', 'files.content.read'); + }; + /** + * Returns the metadata for a file or folder. Note: Metadata for the root folder + * is unsupported. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesGetMetadata + * @arg {FilesGetMetadataArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesGetMetadata = function (arg) { + return this.request('files/get_metadata', arg, 'user', 'api', 'rpc', 'files.metadata.read'); + }; + /** + * Get a preview for a file. Currently, PDF previews are generated for files + * with the following extensions: .ai, .doc, .docm, .docx, .eps, .gdoc, + * .gslides, .odp, .odt, .pps, .ppsm, .ppsx, .ppt, .pptm, .pptx, .rtf. HTML + * previews are generated for files with the following extensions: .csv, .ods, + * .xls, .xlsm, .gsheet, .xlsx. Other formats will return an unsupported + * extension error. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetPreview + * @arg {FilesPreviewArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesGetPreview = function (arg) { + return this.request('files/get_preview', arg, 'user', 'content', 'download', 'files.content.read'); + }; + /** + * Get a temporary link to stream content of a file. This link will expire in + * four hours and afterwards you will get 410 Gone. This URL should not be used + * to display content directly in the browser. The Content-Type of the link is + * determined automatically by the file's mime type. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetTemporaryLink + * @arg {FilesGetTemporaryLinkArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesGetTemporaryLink = function (arg) { + return this.request('files/get_temporary_link', arg, 'user', 'api', 'rpc', 'files.content.read'); + }; + /** + * Get a one-time use temporary upload link to upload a file to a Dropbox + * location. This endpoint acts as a delayed upload. The returned temporary + * upload link may be used to make a POST request with the data to be uploaded. + * The upload will then be perfomed with the CommitInfo previously provided to + * get_temporary_upload_link but evaluated only upon consumption. Hence, errors + * stemming from invalid CommitInfo with respect to the state of the user's + * Dropbox will only be communicated at consumption time. Additionally, these + * errors are surfaced as generic HTTP 409 Conflict responses, potentially + * hiding issue details. The maximum temporary upload link duration is 4 hours. + * Upon consumption or expiration, a new link will have to be generated. + * Multiple links may exist for a specific upload path at any given time. The + * POST request on the temporary upload link must have its Content-Type set to + * "application/octet-stream". Example temporary upload link consumption + * request: curl -X POST + * https://content.dropboxapi.com/apitul/1/bNi2uIYF51cVBND --header + * "Content-Type: application/octet-stream" --data-binary @local_file.txt A + * successful temporary upload link consumption request returns the content hash + * of the uploaded data in JSON format. Example successful temporary upload + * link consumption response: {"content-hash": + * "599d71033d700ac892a0e48fa61b125d2f5994"} An unsuccessful temporary upload + * link consumption request returns any of the following status codes: HTTP 400 + * Bad Request: Content-Type is not one of application/octet-stream and + * text/plain or request is invalid. HTTP 409 Conflict: The temporary upload + * link does not exist or is currently unavailable, the upload failed, or + * another error happened. HTTP 410 Gone: The temporary upload link is expired + * or consumed. Example unsuccessful temporary upload link consumption + * response: Temporary upload link has been recently consumed. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesGetTemporaryUploadLink + * @arg {FilesGetTemporaryUploadLinkArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesGetTemporaryUploadLink = function (arg) { + return this.request('files/get_temporary_upload_link', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Get a thumbnail for an image. This method currently supports files with the + * following file extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp. + * Photos that are larger than 20MB in size won't be converted to a thumbnail. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetThumbnail + * @arg {FilesThumbnailArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesGetThumbnail = function (arg) { + return this.request('files/get_thumbnail', arg, 'user', 'content', 'download', 'files.content.read'); + }; + /** + * Get a thumbnail for an image. This method currently supports files with the + * following file extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp. + * Photos that are larger than 20MB in size won't be converted to a thumbnail. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetThumbnailV2 + * @arg {FilesThumbnailV2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesGetThumbnailV2 = function (arg) { + return this.request('files/get_thumbnail_v2', arg, 'app, user', 'content', 'download', 'files.content.read'); + }; + /** + * Get thumbnails for a list of images. We allow up to 25 thumbnails in a single + * batch. This method currently supports files with the following file + * extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp. Photos that + * are larger than 20MB in size won't be converted to a thumbnail. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetThumbnailBatch + * @arg {FilesGetThumbnailBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesGetThumbnailBatch = function (arg) { + return this.request('files/get_thumbnail_batch', arg, 'user', 'content', 'rpc', 'files.content.read'); + }; + /** + * Starts returning the contents of a folder. If the result's + * ListFolderResult.has_more field is true, call list_folder/continue with the + * returned ListFolderResult.cursor to retrieve more entries. If you're using + * ListFolderArg.recursive set to true to keep a local cache of the contents of + * a Dropbox account, iterate through each entry in order and process them as + * follows to keep your local state in sync: For each FileMetadata, store the + * new entry at the given path in your local state. If the required parent + * folders don't exist yet, create them. If there's already something else at + * the given path, replace it and remove all its children. For each + * FolderMetadata, store the new entry at the given path in your local state. If + * the required parent folders don't exist yet, create them. If there's already + * something else at the given path, replace it but leave the children as they + * are. Check the new entry's FolderSharingInfo.read_only and set all its + * children's read-only statuses to match. For each DeletedMetadata, if your + * local state has something at the given path, remove it and all its children. + * If there's nothing at the given path, ignore this entry. Note: + * auth.RateLimitError may be returned if multiple list_folder or + * list_folder/continue calls with same parameters are made simultaneously by + * same API app for same user. If your app implements retry logic, please hold + * off the retry until the previous request finishes. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListFolder + * @arg {FilesListFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesListFolder = function (arg) { + return this.request('files/list_folder', arg, 'app, user', 'api', 'rpc', 'files.metadata.read'); + }; + /** + * Once a cursor has been retrieved from list_folder, use this to paginate + * through all files and retrieve updates to the folder, following the same + * rules as documented for list_folder. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListFolderContinue + * @arg {FilesListFolderContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesListFolderContinue = function (arg) { + return this.request('files/list_folder/continue', arg, 'app, user', 'api', 'rpc', 'files.metadata.read'); + }; + /** + * A way to quickly get a cursor for the folder's state. Unlike list_folder, + * list_folder/get_latest_cursor doesn't return any entries. This endpoint is + * for app which only needs to know about new files and modifications and + * doesn't need to know about files that already exist in Dropbox. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListFolderGetLatestCursor + * @arg {FilesListFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesListFolderGetLatestCursor = function (arg) { + return this.request('files/list_folder/get_latest_cursor', arg, 'user', 'api', 'rpc', 'files.metadata.read'); + }; + /** + * A longpoll endpoint to wait for changes on an account. In conjunction with + * list_folder/continue, this call gives you a low-latency way to monitor an + * account for file changes. The connection will block until there are changes + * available or a timeout occurs. This endpoint is useful mostly for client-side + * apps. If you're looking for server-side notifications, check out our webhooks + * documentation https://www.dropbox.com/developers/reference/webhooks. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListFolderLongpoll + * @arg {FilesListFolderLongpollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesListFolderLongpoll = function (arg) { + return this.request('files/list_folder/longpoll', arg, 'noauth', 'notify', 'rpc', 'files.metadata.read'); + }; + /** + * Returns revisions for files based on a file path or a file id. The file path + * or file id is identified from the latest file entry at the given file path or + * id. This end point allows your app to query either by file path or file id by + * setting the mode parameter appropriately. In the ListRevisionsMode.path + * (default) mode, all revisions at the same file path as the latest file entry + * are returned. If revisions with the same file id are desired, then mode must + * be set to ListRevisionsMode.id. The ListRevisionsMode.id mode is useful to + * retrieve revisions for a given file across moves or renames. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListRevisions + * @arg {FilesListRevisionsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesListRevisions = function (arg) { + return this.request('files/list_revisions', arg, 'user', 'api', 'rpc', 'files.metadata.read'); + }; + /** + * Lock the files at the given paths. A locked file will be writable only by the + * lock holder. A successful response indicates that the file has been locked. + * Returns a list of the locked file paths and their metadata after this + * operation. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesLockFileBatch + * @arg {FilesLockFileBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesLockFileBatch = function (arg) { + return this.request('files/lock_file_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Move a file or folder to a different location in the user's Dropbox. If the + * source path is a folder all its contents will be moved. Note that we do not + * currently support case-only renaming. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveV2 + * @arg {FilesRelocationArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesMoveV2 = function (arg) { + return this.request('files/move_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Move a file or folder to a different location in the user's Dropbox. If the + * source path is a folder all its contents will be moved. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMove + * @deprecated + * @arg {FilesRelocationArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesMove = function (arg) { + return this.request('files/move', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Move multiple files or folders to different locations at once in the user's + * Dropbox. Note that we do not currently support case-only renaming. This route + * will replace move_batch. The main difference is this route will return status + * for each entry, while move_batch raises failure if any entry fails. This + * route will either finish synchronously, or return a job ID and do the async + * move job in background. Please use move_batch/check_v2 to check the job + * status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveBatchV2 + * @arg {FilesMoveBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesMoveBatchV2 = function (arg) { + return this.request('files/move_batch_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Move multiple files or folders to different locations at once in the user's + * Dropbox. This route will return job ID immediately and do the async moving + * job in background. Please use move_batch/check to check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveBatch + * @deprecated + * @arg {FilesRelocationBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesMoveBatch = function (arg) { + return this.request('files/move_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Returns the status of an asynchronous job for move_batch_v2. It returns list + * of results for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveBatchCheckV2 + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesMoveBatchCheckV2 = function (arg) { + return this.request('files/move_batch/check_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Returns the status of an asynchronous job for move_batch. If success, it + * returns list of results for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveBatchCheck + * @deprecated + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesMoveBatchCheck = function (arg) { + return this.request('files/move_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Creates a new Paper doc with the provided content. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesPaperCreate + * @arg {FilesPaperCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesPaperCreate = function (arg) { + return this.request('files/paper/create', arg, 'user', 'api', 'upload', 'files.content.write'); + }; + /** + * Updates an existing Paper doc with the provided content. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesPaperUpdate + * @arg {FilesPaperUpdateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesPaperUpdate = function (arg) { + return this.request('files/paper/update', arg, 'user', 'api', 'upload', 'files.content.write'); + }; + /** + * Permanently delete the file or folder at a given path (see + * https://www.dropbox.com/en/help/40). If the given file or folder is not yet + * deleted, this route will first delete it. It is possible for this route to + * successfully delete, then fail to permanently delete. Note: This endpoint is + * only available for Dropbox Business apps. + * Route attributes: + * scope: files.permanent_delete + * @function Dropbox#filesPermanentlyDelete + * @arg {FilesDeleteArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesPermanentlyDelete = function (arg) { + return this.request('files/permanently_delete', arg, 'user', 'api', 'rpc', 'files.permanent_delete'); + }; + /** + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesPropertiesAdd + * @deprecated + * @arg {FilePropertiesAddPropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesPropertiesAdd = function (arg) { + return this.request('files/properties/add', arg, 'user', 'api', 'rpc', 'files.metadata.write'); + }; + /** + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesPropertiesOverwrite + * @deprecated + * @arg {FilePropertiesOverwritePropertyGroupArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesPropertiesOverwrite = function (arg) { + return this.request('files/properties/overwrite', arg, 'user', 'api', 'rpc', 'files.metadata.write'); + }; + /** + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesPropertiesRemove + * @deprecated + * @arg {FilePropertiesRemovePropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesPropertiesRemove = function (arg) { + return this.request('files/properties/remove', arg, 'user', 'api', 'rpc', 'files.metadata.write'); + }; + /** + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesPropertiesTemplateGet + * @deprecated + * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesPropertiesTemplateGet = function (arg) { + return this.request('files/properties/template/get', arg, 'user', 'api', 'rpc', 'files.metadata.read'); + }; + /** + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesPropertiesTemplateList + * @deprecated + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesPropertiesTemplateList = function () { + return this.request('files/properties/template/list', null, 'user', 'api', 'rpc', 'files.metadata.read'); + }; + /** + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesPropertiesUpdate + * @deprecated + * @arg {FilePropertiesUpdatePropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesPropertiesUpdate = function (arg) { + return this.request('files/properties/update', arg, 'user', 'api', 'rpc', 'files.metadata.write'); + }; + /** + * Restore a specific revision of a file to the given path. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesRestore + * @arg {FilesRestoreArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesRestore = function (arg) { + return this.request('files/restore', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Save the data from a specified URL into a file in user's Dropbox. Note that + * the transfer from the URL must complete within 5 minutes, or the operation + * will time out and the job will fail. If the given path already exists, the + * file will be renamed to avoid the conflict (e.g. myfile (1).txt). + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesSaveUrl + * @arg {FilesSaveUrlArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesSaveUrl = function (arg) { + return this.request('files/save_url', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Check the status of a save_url job. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesSaveUrlCheckJobStatus + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesSaveUrlCheckJobStatus = function (arg) { + return this.request('files/save_url/check_job_status', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Searches for files and folders. Note: Recent changes will be reflected in + * search results within a few seconds and older revisions of existing files may + * still match your query for up to a few days. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesSearch + * @deprecated + * @arg {FilesSearchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesSearch = function (arg) { + return this.request('files/search', arg, 'user', 'api', 'rpc', 'files.metadata.read'); + }; + /** + * Searches for files and folders. Note: search_v2 along with search/continue_v2 + * can only be used to retrieve a maximum of 10,000 matches. Recent changes may + * not immediately be reflected in search results due to a short delay in + * indexing. Duplicate results may be returned across pages. Some results may + * not be returned. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesSearchV2 + * @arg {FilesSearchV2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesSearchV2 = function (arg) { + return this.request('files/search_v2', arg, 'user', 'api', 'rpc', 'files.metadata.read'); + }; + /** + * Fetches the next page of search results returned from search_v2. Note: + * search_v2 along with search/continue_v2 can only be used to retrieve a + * maximum of 10,000 matches. Recent changes may not immediately be reflected in + * search results due to a short delay in indexing. Duplicate results may be + * returned across pages. Some results may not be returned. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesSearchContinueV2 + * @arg {FilesSearchV2ContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesSearchContinueV2 = function (arg) { + return this.request('files/search/continue_v2', arg, 'user', 'api', 'rpc', 'files.metadata.read'); + }; + /** + * Add a tag to an item. A tag is a string. The strings are automatically + * converted to lowercase letters. No more than 20 tags can be added to a given + * item. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesTagsAdd + * @arg {FilesAddTagArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesTagsAdd = function (arg) { + return this.request('files/tags/add', arg, 'user', 'api', 'rpc', 'files.metadata.write'); + }; + /** + * Get list of tags assigned to items. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesTagsGet + * @arg {FilesGetTagsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesTagsGet = function (arg) { + return this.request('files/tags/get', arg, 'user', 'api', 'rpc', 'files.metadata.read'); + }; + /** + * Remove a tag from an item. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesTagsRemove + * @arg {FilesRemoveTagArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesTagsRemove = function (arg) { + return this.request('files/tags/remove', arg, 'user', 'api', 'rpc', 'files.metadata.write'); + }; + /** + * Unlock the files at the given paths. A locked file can only be unlocked by + * the lock holder or, if a business account, a team admin. A successful + * response indicates that the file has been unlocked. Returns a list of the + * unlocked file paths and their metadata after this operation. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUnlockFileBatch + * @arg {FilesUnlockFileBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesUnlockFileBatch = function (arg) { + return this.request('files/unlock_file_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Create a new file with the contents provided in the request. Do not use this + * to upload a file larger than 150 MB. Instead, create an upload session with + * upload_session/start. Calls to this endpoint will count as data transport + * calls for any Dropbox Business teams with a limit on the number of data + * transport calls allowed per month. For more information, see the Data + * transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUpload + * @arg {FilesUploadArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesUpload = function (arg) { + return this.request('files/upload', arg, 'user', 'content', 'upload', 'files.content.write'); + }; + /** + * Append more data to an upload session. When the parameter close is set, this + * call will close the session. A single request should not upload more than 150 + * MB. The maximum size of a file one can upload to an upload session is 350 GB. + * Calls to this endpoint will count as data transport calls for any Dropbox + * Business teams with a limit on the number of data transport calls allowed per + * month. For more information, see the Data transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionAppendV2 + * @arg {FilesUploadSessionAppendArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesUploadSessionAppendV2 = function (arg) { + return this.request('files/upload_session/append_v2', arg, 'user', 'content', 'upload', 'files.content.write'); + }; + /** + * Append more data to an upload session. A single request should not upload + * more than 150 MB. The maximum size of a file one can upload to an upload + * session is 350 GB. Calls to this endpoint will count as data transport calls + * for any Dropbox Business teams with a limit on the number of data transport + * calls allowed per month. For more information, see the Data transport limit + * page https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionAppend + * @deprecated + * @arg {FilesUploadSessionCursor} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesUploadSessionAppend = function (arg) { + return this.request('files/upload_session/append', arg, 'user', 'content', 'upload', 'files.content.write'); + }; + /** + * Finish an upload session and save the uploaded data to the given file path. A + * single request should not upload more than 150 MB. The maximum size of a file + * one can upload to an upload session is 350 GB. Calls to this endpoint will + * count as data transport calls for any Dropbox Business teams with a limit on + * the number of data transport calls allowed per month. For more information, + * see the Data transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionFinish + * @arg {FilesUploadSessionFinishArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesUploadSessionFinish = function (arg) { + return this.request('files/upload_session/finish', arg, 'user', 'content', 'upload', 'files.content.write'); + }; + /** + * This route helps you commit many files at once into a user's Dropbox. Use + * upload_session/start and upload_session/append_v2 to upload file contents. We + * recommend uploading many files in parallel to increase throughput. Once the + * file contents have been uploaded, rather than calling upload_session/finish, + * use this route to finish all your upload sessions in a single request. + * UploadSessionStartArg.close or UploadSessionAppendArg.close needs to be true + * for the last upload_session/start or upload_session/append_v2 call. The + * maximum size of a file one can upload to an upload session is 350 GB. This + * route will return a job_id immediately and do the async commit job in + * background. Use upload_session/finish_batch/check to check the job status. + * For the same account, this route should be executed serially. That means you + * should not start the next job before current job finishes. We allow up to + * 1000 entries in a single request. Calls to this endpoint will count as data + * transport calls for any Dropbox Business teams with a limit on the number of + * data transport calls allowed per month. For more information, see the Data + * transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionFinishBatch + * @deprecated + * @arg {FilesUploadSessionFinishBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesUploadSessionFinishBatch = function (arg) { + return this.request('files/upload_session/finish_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * This route helps you commit many files at once into a user's Dropbox. Use + * upload_session/start and upload_session/append_v2 to upload file contents. We + * recommend uploading many files in parallel to increase throughput. Once the + * file contents have been uploaded, rather than calling upload_session/finish, + * use this route to finish all your upload sessions in a single request. + * UploadSessionStartArg.close or UploadSessionAppendArg.close needs to be true + * for the last upload_session/start or upload_session/append_v2 call of each + * upload session. The maximum size of a file one can upload to an upload + * session is 350 GB. We allow up to 1000 entries in a single request. Calls to + * this endpoint will count as data transport calls for any Dropbox Business + * teams with a limit on the number of data transport calls allowed per month. + * For more information, see the Data transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionFinishBatchV2 + * @arg {FilesUploadSessionFinishBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesUploadSessionFinishBatchV2 = function (arg) { + return this.request('files/upload_session/finish_batch_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Returns the status of an asynchronous job for upload_session/finish_batch. If + * success, it returns list of result for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionFinishBatchCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesUploadSessionFinishBatchCheck = function (arg) { + return this.request('files/upload_session/finish_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Upload sessions allow you to upload a single file in one or more requests, + * for example where the size of the file is greater than 150 MB. This call + * starts a new upload session with the given data. You can then use + * upload_session/append_v2 to add more data and upload_session/finish to save + * all the data to a file in Dropbox. A single request should not upload more + * than 150 MB. The maximum size of a file one can upload to an upload session + * is 350 GB. An upload session can be used for a maximum of 7 days. Attempting + * to use an UploadSessionStartResult.session_id with upload_session/append_v2 + * or upload_session/finish more than 7 days after its creation will return a + * UploadSessionLookupError.not_found. Calls to this endpoint will count as data + * transport calls for any Dropbox Business teams with a limit on the number of + * data transport calls allowed per month. For more information, see the Data + * transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. By + * default, upload sessions require you to send content of the file in + * sequential order via consecutive upload_session/start, + * upload_session/append_v2, upload_session/finish calls. For better + * performance, you can instead optionally use a UploadSessionType.concurrent + * upload session. To start a new concurrent session, set + * UploadSessionStartArg.session_type to UploadSessionType.concurrent. After + * that, you can send file data in concurrent upload_session/append_v2 requests. + * Finally finish the session with upload_session/finish. There are couple of + * constraints with concurrent sessions to make them work. You can not send data + * with upload_session/start or upload_session/finish call, only with + * upload_session/append_v2 call. Also data uploaded in upload_session/append_v2 + * call must be multiple of 4194304 bytes (except for last + * upload_session/append_v2 with UploadSessionStartArg.close to true, that may + * contain any remaining data). + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionStart + * @arg {FilesUploadSessionStartArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesUploadSessionStart = function (arg) { + return this.request('files/upload_session/start', arg, 'user', 'content', 'upload', 'files.content.write'); + }; + /** + * This route starts batch of upload_sessions. Please refer to + * `upload_session/start` usage. Calls to this endpoint will count as data + * transport calls for any Dropbox Business teams with a limit on the number of + * data transport calls allowed per month. For more information, see the Data + * transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionStartBatch + * @arg {FilesUploadSessionStartBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.filesUploadSessionStartBatch = function (arg) { + return this.request('files/upload_session/start_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * This route is used for refreshing the info that is found in the id_token + * during the OIDC flow. This route doesn't require any arguments and will use + * the scopes approved for the given access token. + * Route attributes: + * scope: openid + * @function Dropbox#openidUserinfo + * @arg {OpenidUserInfoArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.openidUserinfo = function (arg) { + return this.request('openid/userinfo', arg, 'user', 'api', 'rpc', 'openid'); + }; + /** + * Marks the given Paper doc as archived. This action can be performed or undone + * by anyone with edit permissions to the doc. Note that this endpoint will + * continue to work for content created by users on the older version of Paper. + * To check which version of Paper a user is on, use /users/features/get_values. + * If the paper_as_files feature is enabled, then the user is running the new + * version of Paper. This endpoint will be retired in September 2020. Refer to + * the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * more information. + * Route attributes: + * scope: files.content.write + * @function Dropbox#paperDocsArchive + * @deprecated + * @arg {PaperRefPaperDoc} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.paperDocsArchive = function (arg) { + return this.request('paper/docs/archive', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Creates a new Paper doc with the provided content. Note that this endpoint + * will continue to work for content created by users on the older version of + * Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. This endpoint will be retired + * in September 2020. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * more information. + * Route attributes: + * scope: files.content.write + * @function Dropbox#paperDocsCreate + * @deprecated + * @arg {PaperPaperDocCreateArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.paperDocsCreate = function (arg) { + return this.request('paper/docs/create', arg, 'user', 'api', 'upload', 'files.content.write'); + }; + /** + * Exports and downloads Paper doc either as HTML or markdown. Note that this + * endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: files.content.read + * @function Dropbox#paperDocsDownload + * @deprecated + * @arg {PaperPaperDocExport} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.paperDocsDownload = function (arg) { + return this.request('paper/docs/download', arg, 'user', 'api', 'download', 'files.content.read'); + }; + /** + * Lists the users who are explicitly invited to the Paper folder in which the + * Paper doc is contained. For private folders all users (including owner) + * shared on the folder are listed and for team folders all non-team users + * shared on the folder are returned. Note that this endpoint will continue to + * work for content created by users on the older version of Paper. To check + * which version of Paper a user is on, use /users/features/get_values. If the + * paper_as_files feature is enabled, then the user is running the new version + * of Paper. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsFolderUsersList + * @deprecated + * @arg {PaperListUsersOnFolderArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.paperDocsFolderUsersList = function (arg) { + return this.request('paper/docs/folder_users/list', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Once a cursor has been retrieved from docs/folder_users/list, use this to + * paginate through all users on the Paper folder. Note that this endpoint will + * continue to work for content created by users on the older version of Paper. + * To check which version of Paper a user is on, use /users/features/get_values. + * If the paper_as_files feature is enabled, then the user is running the new + * version of Paper. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsFolderUsersListContinue + * @deprecated + * @arg {PaperListUsersOnFolderContinueArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.paperDocsFolderUsersListContinue = function (arg) { + return this.request('paper/docs/folder_users/list/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Retrieves folder information for the given Paper doc. This includes: - + * folder sharing policy; permissions for subfolders are set by the top-level + * folder. - full 'filepath', i.e. the list of folders (both folderId and + * folderName) from the root folder to the folder directly containing the + * Paper doc. If the Paper doc is not in any folder (aka unfiled) the response + * will be empty. Note that this endpoint will continue to work for content + * created by users on the older version of Paper. To check which version of + * Paper a user is on, use /users/features/get_values. If the paper_as_files + * feature is enabled, then the user is running the new version of Paper. Refer + * to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsGetFolderInfo + * @deprecated + * @arg {PaperRefPaperDoc} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.paperDocsGetFolderInfo = function (arg) { + return this.request('paper/docs/get_folder_info', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Return the list of all Paper docs according to the argument specifications. + * To iterate over through the full pagination, pass the cursor to + * docs/list/continue. Note that this endpoint will continue to work for content + * created by users on the older version of Paper. To check which version of + * Paper a user is on, use /users/features/get_values. If the paper_as_files + * feature is enabled, then the user is running the new version of Paper. Refer + * to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#paperDocsList + * @deprecated + * @arg {PaperListPaperDocsArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.paperDocsList = function (arg) { + return this.request('paper/docs/list', arg, 'user', 'api', 'rpc', 'files.metadata.read'); + }; + /** + * Once a cursor has been retrieved from docs/list, use this to paginate through + * all Paper doc. Note that this endpoint will continue to work for content + * created by users on the older version of Paper. To check which version of + * Paper a user is on, use /users/features/get_values. If the paper_as_files + * feature is enabled, then the user is running the new version of Paper. Refer + * to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#paperDocsListContinue + * @deprecated + * @arg {PaperListPaperDocsContinueArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.paperDocsListContinue = function (arg) { + return this.request('paper/docs/list/continue', arg, 'user', 'api', 'rpc', 'files.metadata.read'); + }; + /** + * Permanently deletes the given Paper doc. This operation is final as the doc + * cannot be recovered. This action can be performed only by the doc owner. Note + * that this endpoint will continue to work for content created by users on the + * older version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: files.permanent_delete + * @function Dropbox#paperDocsPermanentlyDelete + * @deprecated + * @arg {PaperRefPaperDoc} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.paperDocsPermanentlyDelete = function (arg) { + return this.request('paper/docs/permanently_delete', arg, 'user', 'api', 'rpc', 'files.permanent_delete'); + }; + /** + * Gets the default sharing policy for the given Paper doc. Note that this + * endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsSharingPolicyGet + * @deprecated + * @arg {PaperRefPaperDoc} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.paperDocsSharingPolicyGet = function (arg) { + return this.request('paper/docs/sharing_policy/get', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Sets the default sharing policy for the given Paper doc. The default + * 'team_sharing_policy' can be changed only by teams, omit this field for + * personal accounts. The 'public_sharing_policy' policy can't be set to the + * value 'disabled' because this setting can be changed only via the team admin + * console. Note that this endpoint will continue to work for content created by + * users on the older version of Paper. To check which version of Paper a user + * is on, use /users/features/get_values. If the paper_as_files feature is + * enabled, then the user is running the new version of Paper. Refer to the + * Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.write + * @function Dropbox#paperDocsSharingPolicySet + * @deprecated + * @arg {PaperPaperDocSharingPolicy} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.paperDocsSharingPolicySet = function (arg) { + return this.request('paper/docs/sharing_policy/set', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Updates an existing Paper doc with the provided content. Note that this + * endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. This endpoint will be retired + * in September 2020. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * more information. + * Route attributes: + * scope: files.content.write + * @function Dropbox#paperDocsUpdate + * @deprecated + * @arg {PaperPaperDocUpdateArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.paperDocsUpdate = function (arg) { + return this.request('paper/docs/update', arg, 'user', 'api', 'upload', 'files.content.write'); + }; + /** + * Allows an owner or editor to add users to a Paper doc or change their + * permissions using their email address or Dropbox account ID. The doc owner's + * permissions cannot be changed. Note that this endpoint will continue to work + * for content created by users on the older version of Paper. To check which + * version of Paper a user is on, use /users/features/get_values. If the + * paper_as_files feature is enabled, then the user is running the new version + * of Paper. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.write + * @function Dropbox#paperDocsUsersAdd + * @deprecated + * @arg {PaperAddPaperDocUser} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + + routes.paperDocsUsersAdd = function (arg) { + return this.request('paper/docs/users/add', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Lists all users who visited the Paper doc or users with explicit access. This + * call excludes users who have been removed. The list is sorted by the date of + * the visit or the share date. The list will include both users, the explicitly + * shared ones as well as those who came in using the Paper url link. Note that + * this endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsUsersList + * @deprecated + * @arg {PaperListUsersOnPaperDocArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.paperDocsUsersList = function (arg) { + return this.request('paper/docs/users/list', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Once a cursor has been retrieved from docs/users/list, use this to paginate + * through all users on the Paper doc. Note that this endpoint will continue to + * work for content created by users on the older version of Paper. To check + * which version of Paper a user is on, use /users/features/get_values. If the + * paper_as_files feature is enabled, then the user is running the new version + * of Paper. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsUsersListContinue + * @deprecated + * @arg {PaperListUsersOnPaperDocContinueArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.paperDocsUsersListContinue = function (arg) { + return this.request('paper/docs/users/list/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Allows an owner or editor to remove users from a Paper doc using their email + * address or Dropbox account ID. The doc owner cannot be removed. Note that + * this endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: sharing.write + * @function Dropbox#paperDocsUsersRemove + * @deprecated + * @arg {PaperRemovePaperDocUser} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.paperDocsUsersRemove = function (arg) { + return this.request('paper/docs/users/remove', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Create a new Paper folder with the provided info. Note that this endpoint + * will continue to work for content created by users on the older version of + * Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: files.content.write + * @function Dropbox#paperFoldersCreate + * @deprecated + * @arg {PaperPaperFolderCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.paperFoldersCreate = function (arg) { + return this.request('paper/folders/create', arg, 'user', 'api', 'rpc', 'files.content.write'); + }; + /** + * Adds specified members to a file. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingAddFileMember + * @arg {SharingAddFileMemberArgs} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + + routes.sharingAddFileMember = function (arg) { + return this.request('sharing/add_file_member', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Allows an owner or editor (if the ACL update policy allows) of a shared + * folder to add another member. For the new member to get access to all the + * functionality for this folder, you will need to call mount_folder on their + * behalf. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingAddFolderMember + * @arg {SharingAddFolderMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingAddFolderMember = function (arg) { + return this.request('sharing/add_folder_member', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Returns the status of an asynchronous job. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCheckJobStatus + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingCheckJobStatus = function (arg) { + return this.request('sharing/check_job_status', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Returns the status of an asynchronous job for sharing a folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCheckRemoveMemberJobStatus + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingCheckRemoveMemberJobStatus = function (arg) { + return this.request('sharing/check_remove_member_job_status', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Returns the status of an asynchronous job for sharing a folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCheckShareJobStatus + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingCheckShareJobStatus = function (arg) { + return this.request('sharing/check_share_job_status', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Create a shared link. If a shared link already exists for the given path, + * that link is returned. Previously, it was technically possible to break a + * shared link by moving or renaming the corresponding file or folder. In the + * future, this will no longer be the case, so your app shouldn't rely on this + * behavior. Instead, if your app needs to revoke a shared link, use + * revoke_shared_link. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCreateSharedLink + * @deprecated + * @arg {SharingCreateSharedLinkArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingCreateSharedLink = function (arg) { + return this.request('sharing/create_shared_link', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Create a shared link with custom settings. If no settings are given then the + * default visibility is RequestedVisibility.public (The resolved visibility, + * though, may depend on other aspects such as team and shared folder settings). + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCreateSharedLinkWithSettings + * @arg {SharingCreateSharedLinkWithSettingsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingCreateSharedLinkWithSettings = function (arg) { + return this.request('sharing/create_shared_link_with_settings', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Returns shared file metadata. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetFileMetadata + * @arg {SharingGetFileMetadataArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingGetFileMetadata = function (arg) { + return this.request('sharing/get_file_metadata', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Returns shared file metadata. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetFileMetadataBatch + * @arg {SharingGetFileMetadataBatchArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + + routes.sharingGetFileMetadataBatch = function (arg) { + return this.request('sharing/get_file_metadata/batch', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Returns shared folder metadata by its folder ID. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetFolderMetadata + * @arg {SharingGetMetadataArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingGetFolderMetadata = function (arg) { + return this.request('sharing/get_folder_metadata', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Download the shared link's file from a user's Dropbox. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetSharedLinkFile + * @arg {Object} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingGetSharedLinkFile = function (arg) { + return this.request('sharing/get_shared_link_file', arg, 'user', 'content', 'download', 'sharing.read'); + }; + /** + * Get the shared link's metadata. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetSharedLinkMetadata + * @arg {SharingGetSharedLinkMetadataArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingGetSharedLinkMetadata = function (arg) { + return this.request('sharing/get_shared_link_metadata', arg, 'app, user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Returns a list of LinkMetadata objects for this user, including collection + * links. If no path is given, returns a list of all shared links for the + * current user, including collection links, up to a maximum of 1000 links. If a + * non-empty path is given, returns a list of all shared links that allow access + * to the given path. Collection links are never returned in this case. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetSharedLinks + * @deprecated + * @arg {SharingGetSharedLinksArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingGetSharedLinks = function (arg) { + return this.request('sharing/get_shared_links', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Use to obtain the members who have been invited to a file, both inherited and + * uninherited members. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFileMembers + * @arg {SharingListFileMembersArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingListFileMembers = function (arg) { + return this.request('sharing/list_file_members', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Get members of multiple files at once. The arguments to this route are more + * limited, and the limit on query result size per file is more strict. To + * customize the results more, use the individual file endpoint. Inherited users + * and groups are not included in the result, and permissions are not returned + * for this endpoint. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFileMembersBatch + * @arg {SharingListFileMembersBatchArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + + routes.sharingListFileMembersBatch = function (arg) { + return this.request('sharing/list_file_members/batch', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Once a cursor has been retrieved from list_file_members or + * list_file_members/batch, use this to paginate through all shared file + * members. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFileMembersContinue + * @arg {SharingListFileMembersContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingListFileMembersContinue = function (arg) { + return this.request('sharing/list_file_members/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Returns shared folder membership by its folder ID. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFolderMembers + * @arg {SharingListFolderMembersArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingListFolderMembers = function (arg) { + return this.request('sharing/list_folder_members', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Once a cursor has been retrieved from list_folder_members, use this to + * paginate through all shared folder members. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFolderMembersContinue + * @arg {SharingListFolderMembersContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingListFolderMembersContinue = function (arg) { + return this.request('sharing/list_folder_members/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Return the list of all shared folders the current user has access to. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFolders + * @arg {SharingListFoldersArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingListFolders = function (arg) { + return this.request('sharing/list_folders', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Once a cursor has been retrieved from list_folders, use this to paginate + * through all shared folders. The cursor must come from a previous call to + * list_folders or list_folders/continue. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFoldersContinue + * @arg {SharingListFoldersContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingListFoldersContinue = function (arg) { + return this.request('sharing/list_folders/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Return the list of all shared folders the current user can mount or unmount. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListMountableFolders + * @arg {SharingListFoldersArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingListMountableFolders = function (arg) { + return this.request('sharing/list_mountable_folders', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Once a cursor has been retrieved from list_mountable_folders, use this to + * paginate through all mountable shared folders. The cursor must come from a + * previous call to list_mountable_folders or list_mountable_folders/continue. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListMountableFoldersContinue + * @arg {SharingListFoldersContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingListMountableFoldersContinue = function (arg) { + return this.request('sharing/list_mountable_folders/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Returns a list of all files shared with current user. Does not include files + * the user has received via shared folders, and does not include unclaimed + * invitations. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListReceivedFiles + * @arg {SharingListFilesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingListReceivedFiles = function (arg) { + return this.request('sharing/list_received_files', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Get more results with a cursor from list_received_files. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListReceivedFilesContinue + * @arg {SharingListFilesContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingListReceivedFilesContinue = function (arg) { + return this.request('sharing/list_received_files/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * List shared links of this user. If no path is given, returns a list of all + * shared links for the current user. For members of business teams using team + * space and member folders, returns all shared links in the team member's home + * folder unless the team space ID is specified in the request header. For more + * information, refer to the Namespace Guide + * https://www.dropbox.com/developers/reference/namespace-guide. If a non-empty + * path is given, returns a list of all shared links that allow access to the + * given path - direct links to the given path and links to parent folders of + * the given path. Links to parent folders can be suppressed by setting + * direct_only to true. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListSharedLinks + * @arg {SharingListSharedLinksArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingListSharedLinks = function (arg) { + return this.request('sharing/list_shared_links', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Modify the shared link's settings. If the requested visibility conflict with + * the shared links policy of the team or the shared folder (in case the linked + * file is part of a shared folder) then the LinkPermissions.resolved_visibility + * of the returned SharedLinkMetadata will reflect the actual visibility of the + * shared link and the LinkPermissions.requested_visibility will reflect the + * requested visibility. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingModifySharedLinkSettings + * @arg {SharingModifySharedLinkSettingsArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingModifySharedLinkSettings = function (arg) { + return this.request('sharing/modify_shared_link_settings', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * The current user mounts the designated folder. Mount a shared folder for a + * user after they have been added as a member. Once mounted, the shared folder + * will appear in their Dropbox. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingMountFolder + * @arg {SharingMountFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingMountFolder = function (arg) { + return this.request('sharing/mount_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * The current user relinquishes their membership in the designated file. Note + * that the current user may still have inherited access to this file through + * the parent folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRelinquishFileMembership + * @arg {SharingRelinquishFileMembershipArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingRelinquishFileMembership = function (arg) { + return this.request('sharing/relinquish_file_membership', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * The current user relinquishes their membership in the designated shared + * folder and will no longer have access to the folder. A folder owner cannot + * relinquish membership in their own folder. This will run synchronously if + * leave_a_copy is false, and asynchronously if leave_a_copy is true. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRelinquishFolderMembership + * @arg {SharingRelinquishFolderMembershipArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingRelinquishFolderMembership = function (arg) { + return this.request('sharing/relinquish_folder_membership', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Identical to remove_file_member_2 but with less information returned. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRemoveFileMember + * @deprecated + * @arg {SharingRemoveFileMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingRemoveFileMember = function (arg) { + return this.request('sharing/remove_file_member', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Removes a specified member from the file. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRemoveFileMember2 + * @arg {SharingRemoveFileMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingRemoveFileMember2 = function (arg) { + return this.request('sharing/remove_file_member_2', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Allows an owner or editor (if the ACL update policy allows) of a shared + * folder to remove another member. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRemoveFolderMember + * @arg {SharingRemoveFolderMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingRemoveFolderMember = function (arg) { + return this.request('sharing/remove_folder_member', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Revoke a shared link. Note that even after revoking a shared link to a file, + * the file may be accessible if there are shared links leading to any of the + * file parent folders. To list all shared links that enable access to a + * specific file, you can use the list_shared_links with the file as the + * ListSharedLinksArg.path argument. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRevokeSharedLink + * @arg {SharingRevokeSharedLinkArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingRevokeSharedLink = function (arg) { + return this.request('sharing/revoke_shared_link', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Change the inheritance policy of an existing Shared Folder. Only permitted + * for shared folders in a shared team root. If a ShareFolderLaunch.async_job_id + * is returned, you'll need to call check_share_job_status until the action + * completes to get the metadata for the folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingSetAccessInheritance + * @arg {SharingSetAccessInheritanceArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingSetAccessInheritance = function (arg) { + return this.request('sharing/set_access_inheritance', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Share a folder with collaborators. Most sharing will be completed + * synchronously. Large folders will be completed asynchronously. To make + * testing the async case repeatable, set `ShareFolderArg.force_async`. If a + * ShareFolderLaunch.async_job_id is returned, you'll need to call + * check_share_job_status until the action completes to get the metadata for the + * folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingShareFolder + * @arg {SharingShareFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingShareFolder = function (arg) { + return this.request('sharing/share_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Transfer ownership of a shared folder to a member of the shared folder. User + * must have AccessLevel.owner access to the shared folder to perform a + * transfer. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingTransferFolder + * @arg {SharingTransferFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingTransferFolder = function (arg) { + return this.request('sharing/transfer_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * The current user unmounts the designated folder. They can re-mount the folder + * at a later time using mount_folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUnmountFolder + * @arg {SharingUnmountFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingUnmountFolder = function (arg) { + return this.request('sharing/unmount_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Remove all members from this file. Does not remove inherited members. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUnshareFile + * @arg {SharingUnshareFileArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingUnshareFile = function (arg) { + return this.request('sharing/unshare_file', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Allows a shared folder owner to unshare the folder. You'll need to call + * check_job_status to determine if the action has completed successfully. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUnshareFolder + * @arg {SharingUnshareFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingUnshareFolder = function (arg) { + return this.request('sharing/unshare_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Changes a member's access on a shared file. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUpdateFileMember + * @arg {SharingUpdateFileMemberArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingUpdateFileMember = function (arg) { + return this.request('sharing/update_file_member', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Allows an owner or editor of a shared folder to update another member's + * permissions. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUpdateFolderMember + * @arg {SharingUpdateFolderMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingUpdateFolderMember = function (arg) { + return this.request('sharing/update_folder_member', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * Update the sharing policies for a shared folder. User must have + * AccessLevel.owner access to the shared folder to update its policies. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUpdateFolderPolicy + * @arg {SharingUpdateFolderPolicyArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.sharingUpdateFolderPolicy = function (arg) { + return this.request('sharing/update_folder_policy', arg, 'user', 'api', 'rpc', 'sharing.write'); + }; + /** + * List all device sessions of a team's member. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamDevicesListMemberDevices + * @arg {TeamListMemberDevicesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamDevicesListMemberDevices = function (arg) { + return this.request('team/devices/list_member_devices', arg, 'team', 'api', 'rpc', 'sessions.list'); + }; + /** + * List all device sessions of a team. Permission : Team member file access. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamDevicesListMembersDevices + * @arg {TeamListMembersDevicesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamDevicesListMembersDevices = function (arg) { + return this.request('team/devices/list_members_devices', arg, 'team', 'api', 'rpc', 'sessions.list'); + }; + /** + * List all device sessions of a team. Permission : Team member file access. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamDevicesListTeamDevices + * @deprecated + * @arg {TeamListTeamDevicesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamDevicesListTeamDevices = function (arg) { + return this.request('team/devices/list_team_devices', arg, 'team', 'api', 'rpc', 'sessions.list'); + }; + /** + * Revoke a device session of a team's member. + * Route attributes: + * scope: sessions.modify + * @function Dropbox#teamDevicesRevokeDeviceSession + * @arg {TeamRevokeDeviceSessionArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamDevicesRevokeDeviceSession = function (arg) { + return this.request('team/devices/revoke_device_session', arg, 'team', 'api', 'rpc', 'sessions.modify'); + }; + /** + * Revoke a list of device sessions of team members. + * Route attributes: + * scope: sessions.modify + * @function Dropbox#teamDevicesRevokeDeviceSessionBatch + * @arg {TeamRevokeDeviceSessionBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamDevicesRevokeDeviceSessionBatch = function (arg) { + return this.request('team/devices/revoke_device_session_batch', arg, 'team', 'api', 'rpc', 'sessions.modify'); + }; + /** + * Get the values for one or more featues. This route allows you to check your + * account's capability for what feature you can access or what value you have + * for certain features. Permission : Team information. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamFeaturesGetValues + * @arg {TeamFeaturesGetValuesBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamFeaturesGetValues = function (arg) { + return this.request('team/features/get_values', arg, 'team', 'api', 'rpc', 'team_info.read'); + }; + /** + * Retrieves information about a team. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamGetInfo + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamGetInfo = function () { + return this.request('team/get_info', null, 'team', 'api', 'rpc', 'team_info.read'); + }; + /** + * Creates a new, empty group, with a requested name. Permission : Team member + * management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsCreate + * @arg {TeamGroupCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamGroupsCreate = function (arg) { + return this.request('team/groups/create', arg, 'team', 'api', 'rpc', 'groups.write'); + }; + /** + * Deletes a group. The group is deleted immediately. However the revoking of + * group-owned resources may take additional time. Use the groups/job_status/get + * to determine whether this process has completed. Permission : Team member + * management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsDelete + * @arg {TeamGroupSelector} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamGroupsDelete = function (arg) { + return this.request('team/groups/delete', arg, 'team', 'api', 'rpc', 'groups.write'); + }; + /** + * Retrieves information about one or more groups. Note that the optional field + * GroupFullInfo.members is not returned for system-managed groups. Permission : + * Team Information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsGetInfo + * @arg {TeamGroupsSelector} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamGroupsGetInfo = function (arg) { + return this.request('team/groups/get_info', arg, 'team', 'api', 'rpc', 'groups.read'); + }; + /** + * Once an async_job_id is returned from groups/delete, groups/members/add , or + * groups/members/remove use this method to poll the status of granting/revoking + * group members' access to group-owned resources. Permission : Team member + * management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsJobStatusGet + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamGroupsJobStatusGet = function (arg) { + return this.request('team/groups/job_status/get', arg, 'team', 'api', 'rpc', 'groups.write'); + }; + /** + * Lists groups on a team. Permission : Team Information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsList + * @arg {TeamGroupsListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamGroupsList = function (arg) { + return this.request('team/groups/list', arg, 'team', 'api', 'rpc', 'groups.read'); + }; + /** + * Once a cursor has been retrieved from groups/list, use this to paginate + * through all groups. Permission : Team Information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsListContinue + * @arg {TeamGroupsListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamGroupsListContinue = function (arg) { + return this.request('team/groups/list/continue', arg, 'team', 'api', 'rpc', 'groups.read'); + }; + /** + * Adds members to a group. The members are added immediately. However the + * granting of group-owned resources may take additional time. Use the + * groups/job_status/get to determine whether this process has completed. + * Permission : Team member management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsMembersAdd + * @arg {TeamGroupMembersAddArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamGroupsMembersAdd = function (arg) { + return this.request('team/groups/members/add', arg, 'team', 'api', 'rpc', 'groups.write'); + }; + /** + * Lists members of a group. Permission : Team Information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsMembersList + * @arg {TeamGroupsMembersListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamGroupsMembersList = function (arg) { + return this.request('team/groups/members/list', arg, 'team', 'api', 'rpc', 'groups.read'); + }; + /** + * Once a cursor has been retrieved from groups/members/list, use this to + * paginate through all members of the group. Permission : Team information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsMembersListContinue + * @arg {TeamGroupsMembersListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamGroupsMembersListContinue = function (arg) { + return this.request('team/groups/members/list/continue', arg, 'team', 'api', 'rpc', 'groups.read'); + }; + /** + * Removes members from a group. The members are removed immediately. However + * the revoking of group-owned resources may take additional time. Use the + * groups/job_status/get to determine whether this process has completed. This + * method permits removing the only owner of a group, even in cases where this + * is not possible via the web client. Permission : Team member management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsMembersRemove + * @arg {TeamGroupMembersRemoveArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamGroupsMembersRemove = function (arg) { + return this.request('team/groups/members/remove', arg, 'team', 'api', 'rpc', 'groups.write'); + }; + /** + * Sets a member's access type in a group. Permission : Team member management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsMembersSetAccessType + * @arg {TeamGroupMembersSetAccessTypeArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamGroupsMembersSetAccessType = function (arg) { + return this.request('team/groups/members/set_access_type', arg, 'team', 'api', 'rpc', 'groups.write'); + }; + /** + * Updates a group's name and/or external ID. Permission : Team member + * management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsUpdate + * @arg {TeamGroupUpdateArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamGroupsUpdate = function (arg) { + return this.request('team/groups/update', arg, 'team', 'api', 'rpc', 'groups.write'); + }; + /** + * Creates new legal hold policy. Note: Legal Holds is a paid add-on. Not all + * teams have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsCreatePolicy + * @arg {TeamLegalHoldsPolicyCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamLegalHoldsCreatePolicy = function (arg) { + return this.request('team/legal_holds/create_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); + }; + /** + * Gets a legal hold by Id. Note: Legal Holds is a paid add-on. Not all teams + * have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsGetPolicy + * @arg {TeamLegalHoldsGetPolicyArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamLegalHoldsGetPolicy = function (arg) { + return this.request('team/legal_holds/get_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); + }; + /** + * List the file metadata that's under the hold. Note: Legal Holds is a paid + * add-on. Not all teams have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsListHeldRevisions + * @arg {TeamLegalHoldsListHeldRevisionsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamLegalHoldsListHeldRevisions = function (arg) { + return this.request('team/legal_holds/list_held_revisions', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); + }; + /** + * Continue listing the file metadata that's under the hold. Note: Legal Holds + * is a paid add-on. Not all teams have the feature. Permission : Team member + * file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsListHeldRevisionsContinue + * @arg {TeamLegalHoldsListHeldRevisionsContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamLegalHoldsListHeldRevisionsContinue = function (arg) { + return this.request('team/legal_holds/list_held_revisions_continue', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); + }; + /** + * Lists legal holds on a team. Note: Legal Holds is a paid add-on. Not all + * teams have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsListPolicies + * @arg {TeamLegalHoldsListPoliciesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamLegalHoldsListPolicies = function (arg) { + return this.request('team/legal_holds/list_policies', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); + }; + /** + * Releases a legal hold by Id. Note: Legal Holds is a paid add-on. Not all + * teams have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsReleasePolicy + * @arg {TeamLegalHoldsPolicyReleaseArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamLegalHoldsReleasePolicy = function (arg) { + return this.request('team/legal_holds/release_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); + }; + /** + * Updates a legal hold. Note: Legal Holds is a paid add-on. Not all teams have + * the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsUpdatePolicy + * @arg {TeamLegalHoldsPolicyUpdateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamLegalHoldsUpdatePolicy = function (arg) { + return this.request('team/legal_holds/update_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); + }; + /** + * List all linked applications of the team member. Note, this endpoint does not + * list any team-linked applications. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamLinkedAppsListMemberLinkedApps + * @arg {TeamListMemberAppsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamLinkedAppsListMemberLinkedApps = function (arg) { + return this.request('team/linked_apps/list_member_linked_apps', arg, 'team', 'api', 'rpc', 'sessions.list'); + }; + /** + * List all applications linked to the team members' accounts. Note, this + * endpoint does not list any team-linked applications. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamLinkedAppsListMembersLinkedApps + * @arg {TeamListMembersAppsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamLinkedAppsListMembersLinkedApps = function (arg) { + return this.request('team/linked_apps/list_members_linked_apps', arg, 'team', 'api', 'rpc', 'sessions.list'); + }; + /** + * List all applications linked to the team members' accounts. Note, this + * endpoint doesn't list any team-linked applications. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamLinkedAppsListTeamLinkedApps + * @deprecated + * @arg {TeamListTeamAppsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamLinkedAppsListTeamLinkedApps = function (arg) { + return this.request('team/linked_apps/list_team_linked_apps', arg, 'team', 'api', 'rpc', 'sessions.list'); + }; + /** + * Revoke a linked application of the team member. + * Route attributes: + * scope: sessions.modify + * @function Dropbox#teamLinkedAppsRevokeLinkedApp + * @arg {TeamRevokeLinkedApiAppArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamLinkedAppsRevokeLinkedApp = function (arg) { + return this.request('team/linked_apps/revoke_linked_app', arg, 'team', 'api', 'rpc', 'sessions.modify'); + }; + /** + * Revoke a list of linked applications of the team members. + * Route attributes: + * scope: sessions.modify + * @function Dropbox#teamLinkedAppsRevokeLinkedAppBatch + * @arg {TeamRevokeLinkedApiAppBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamLinkedAppsRevokeLinkedAppBatch = function (arg) { + return this.request('team/linked_apps/revoke_linked_app_batch', arg, 'team', 'api', 'rpc', 'sessions.modify'); + }; + /** + * Add users to member space limits excluded users list. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMemberSpaceLimitsExcludedUsersAdd + * @arg {TeamExcludedUsersUpdateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMemberSpaceLimitsExcludedUsersAdd = function (arg) { + return this.request('team/member_space_limits/excluded_users/add', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * List member space limits excluded users. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMemberSpaceLimitsExcludedUsersList + * @arg {TeamExcludedUsersListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMemberSpaceLimitsExcludedUsersList = function (arg) { + return this.request('team/member_space_limits/excluded_users/list', arg, 'team', 'api', 'rpc', 'members.read'); + }; + /** + * Continue listing member space limits excluded users. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMemberSpaceLimitsExcludedUsersListContinue + * @arg {TeamExcludedUsersListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMemberSpaceLimitsExcludedUsersListContinue = function (arg) { + return this.request('team/member_space_limits/excluded_users/list/continue', arg, 'team', 'api', 'rpc', 'members.read'); + }; + /** + * Remove users from member space limits excluded users list. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMemberSpaceLimitsExcludedUsersRemove + * @arg {TeamExcludedUsersUpdateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMemberSpaceLimitsExcludedUsersRemove = function (arg) { + return this.request('team/member_space_limits/excluded_users/remove', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Get users custom quota. Returns none as the custom quota if none was set. A + * maximum of 1000 members can be specified in a single call. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMemberSpaceLimitsGetCustomQuota + * @arg {TeamCustomQuotaUsersArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + + routes.teamMemberSpaceLimitsGetCustomQuota = function (arg) { + return this.request('team/member_space_limits/get_custom_quota', arg, 'team', 'api', 'rpc', 'members.read'); + }; + /** + * Remove users custom quota. A maximum of 1000 members can be specified in a + * single call. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMemberSpaceLimitsRemoveCustomQuota + * @arg {TeamCustomQuotaUsersArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + + routes.teamMemberSpaceLimitsRemoveCustomQuota = function (arg) { + return this.request('team/member_space_limits/remove_custom_quota', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Set users custom quota. Custom quota has to be at least 15GB. A maximum of + * 1000 members can be specified in a single call. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMemberSpaceLimitsSetCustomQuota + * @arg {TeamSetCustomQuotaArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + + routes.teamMemberSpaceLimitsSetCustomQuota = function (arg) { + return this.request('team/member_space_limits/set_custom_quota', arg, 'team', 'api', 'rpc', 'members.read'); + }; + /** + * Adds members to a team. Permission : Team member management A maximum of 20 + * members can be specified in a single call. If no Dropbox account exists with + * the email address specified, a new Dropbox account will be created with the + * given email address, and that account will be invited to the team. If a + * personal Dropbox account exists with the email address specified in the call, + * this call will create a placeholder Dropbox account for the user on the team + * and send an email inviting the user to migrate their existing personal + * account onto the team. Team member management apps are required to set an + * initial given_name and surname for a user to use in the team invitation and + * for 'Perform as team member' actions taken on the user before they become + * 'active'. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersAddV2 + * @arg {TeamMembersAddV2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersAddV2 = function (arg) { + return this.request('team/members/add_v2', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Adds members to a team. Permission : Team member management A maximum of 20 + * members can be specified in a single call. If no Dropbox account exists with + * the email address specified, a new Dropbox account will be created with the + * given email address, and that account will be invited to the team. If a + * personal Dropbox account exists with the email address specified in the call, + * this call will create a placeholder Dropbox account for the user on the team + * and send an email inviting the user to migrate their existing personal + * account onto the team. Team member management apps are required to set an + * initial given_name and surname for a user to use in the team invitation and + * for 'Perform as team member' actions taken on the user before they become + * 'active'. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersAdd + * @arg {TeamMembersAddArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersAdd = function (arg) { + return this.request('team/members/add', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Once an async_job_id is returned from members/add_v2 , use this to poll the + * status of the asynchronous request. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersAddJobStatusGetV2 + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersAddJobStatusGetV2 = function (arg) { + return this.request('team/members/add/job_status/get_v2', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Once an async_job_id is returned from members/add , use this to poll the + * status of the asynchronous request. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersAddJobStatusGet + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersAddJobStatusGet = function (arg) { + return this.request('team/members/add/job_status/get', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Deletes a team member's profile photo. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersDeleteProfilePhotoV2 + * @arg {TeamMembersDeleteProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersDeleteProfilePhotoV2 = function (arg) { + return this.request('team/members/delete_profile_photo_v2', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Deletes a team member's profile photo. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersDeleteProfilePhoto + * @arg {TeamMembersDeleteProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersDeleteProfilePhoto = function (arg) { + return this.request('team/members/delete_profile_photo', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Get available TeamMemberRoles for the connected team. To be used with + * members/set_admin_permissions_v2. Permission : Team member management. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersGetAvailableTeamMemberRoles + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersGetAvailableTeamMemberRoles = function () { + return this.request('team/members/get_available_team_member_roles', null, 'team', 'api', 'rpc', 'members.read'); + }; + /** + * Returns information about multiple team members. Permission : Team + * information This endpoint will return MembersGetInfoItem.id_not_found, for + * IDs (or emails) that cannot be matched to a valid team member. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersGetInfoV2 + * @arg {TeamMembersGetInfoV2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersGetInfoV2 = function (arg) { + return this.request('team/members/get_info_v2', arg, 'team', 'api', 'rpc', 'members.read'); + }; + /** + * Returns information about multiple team members. Permission : Team + * information This endpoint will return MembersGetInfoItem.id_not_found, for + * IDs (or emails) that cannot be matched to a valid team member. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersGetInfo + * @arg {TeamMembersGetInfoArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersGetInfo = function (arg) { + return this.request('team/members/get_info', arg, 'team', 'api', 'rpc', 'members.read'); + }; + /** + * Lists members of a team. Permission : Team information. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersListV2 + * @arg {TeamMembersListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersListV2 = function (arg) { + return this.request('team/members/list_v2', arg, 'team', 'api', 'rpc', 'members.read'); + }; + /** + * Lists members of a team. Permission : Team information. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersList + * @arg {TeamMembersListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersList = function (arg) { + return this.request('team/members/list', arg, 'team', 'api', 'rpc', 'members.read'); + }; + /** + * Once a cursor has been retrieved from members/list_v2, use this to paginate + * through all team members. Permission : Team information. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersListContinueV2 + * @arg {TeamMembersListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersListContinueV2 = function (arg) { + return this.request('team/members/list/continue_v2', arg, 'team', 'api', 'rpc', 'members.read'); + }; + /** + * Once a cursor has been retrieved from members/list, use this to paginate + * through all team members. Permission : Team information. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersListContinue + * @arg {TeamMembersListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersListContinue = function (arg) { + return this.request('team/members/list/continue', arg, 'team', 'api', 'rpc', 'members.read'); + }; + /** + * Moves removed member's files to a different member. This endpoint initiates + * an asynchronous job. To obtain the final result of the job, the client should + * periodically poll members/move_former_member_files/job_status/check. + * Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersMoveFormerMemberFiles + * @arg {TeamMembersDataTransferArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersMoveFormerMemberFiles = function (arg) { + return this.request('team/members/move_former_member_files', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Once an async_job_id is returned from members/move_former_member_files , use + * this to poll the status of the asynchronous request. Permission : Team member + * management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersMoveFormerMemberFilesJobStatusCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersMoveFormerMemberFilesJobStatusCheck = function (arg) { + return this.request('team/members/move_former_member_files/job_status/check', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Recover a deleted member. Permission : Team member management Exactly one of + * team_member_id, email, or external_id must be provided to identify the user + * account. + * Route attributes: + * scope: members.delete + * @function Dropbox#teamMembersRecover + * @arg {TeamMembersRecoverArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersRecover = function (arg) { + return this.request('team/members/recover', arg, 'team', 'api', 'rpc', 'members.delete'); + }; + /** + * Removes a member from a team. Permission : Team member management Exactly one + * of team_member_id, email, or external_id must be provided to identify the + * user account. Accounts can be recovered via members/recover for a 7 day + * period or until the account has been permanently deleted or transferred to + * another account (whichever comes first). Calling members/add while a user is + * still recoverable on your team will return with + * MemberAddResult.user_already_on_team. Accounts can have their files + * transferred via the admin console for a limited time, based on the version + * history length associated with the team (180 days for most teams). This + * endpoint may initiate an asynchronous job. To obtain the final result of the + * job, the client should periodically poll members/remove/job_status/get. + * Route attributes: + * scope: members.delete + * @function Dropbox#teamMembersRemove + * @arg {TeamMembersRemoveArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersRemove = function (arg) { + return this.request('team/members/remove', arg, 'team', 'api', 'rpc', 'members.delete'); + }; + /** + * Once an async_job_id is returned from members/remove , use this to poll the + * status of the asynchronous request. Permission : Team member management. + * Route attributes: + * scope: members.delete + * @function Dropbox#teamMembersRemoveJobStatusGet + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersRemoveJobStatusGet = function (arg) { + return this.request('team/members/remove/job_status/get', arg, 'team', 'api', 'rpc', 'members.delete'); + }; + /** + * Add secondary emails to users. Permission : Team member management. Emails + * that are on verified domains will be verified automatically. For each email + * address not on a verified domain a verification email will be sent. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSecondaryEmailsAdd + * @arg {TeamAddSecondaryEmailsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersSecondaryEmailsAdd = function (arg) { + return this.request('team/members/secondary_emails/add', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Delete secondary emails from users Permission : Team member management. Users + * will be notified of deletions of verified secondary emails at both the + * secondary email and their primary email. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSecondaryEmailsDelete + * @arg {TeamDeleteSecondaryEmailsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersSecondaryEmailsDelete = function (arg) { + return this.request('team/members/secondary_emails/delete', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Resend secondary email verification emails. Permission : Team member + * management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSecondaryEmailsResendVerificationEmails + * @arg {TeamResendVerificationEmailArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersSecondaryEmailsResendVerificationEmails = function (arg) { + return this.request('team/members/secondary_emails/resend_verification_emails', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Sends welcome email to pending team member. Permission : Team member + * management Exactly one of team_member_id, email, or external_id must be + * provided to identify the user account. No-op if team member is not pending. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSendWelcomeEmail + * @arg {TeamUserSelectorArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersSendWelcomeEmail = function (arg) { + return this.request('team/members/send_welcome_email', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Updates a team member's permissions. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetAdminPermissionsV2 + * @arg {TeamMembersSetPermissions2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersSetAdminPermissionsV2 = function (arg) { + return this.request('team/members/set_admin_permissions_v2', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Updates a team member's permissions. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetAdminPermissions + * @arg {TeamMembersSetPermissionsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersSetAdminPermissions = function (arg) { + return this.request('team/members/set_admin_permissions', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Updates a team member's profile. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetProfileV2 + * @arg {TeamMembersSetProfileArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersSetProfileV2 = function (arg) { + return this.request('team/members/set_profile_v2', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Updates a team member's profile. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetProfile + * @arg {TeamMembersSetProfileArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersSetProfile = function (arg) { + return this.request('team/members/set_profile', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Updates a team member's profile photo. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetProfilePhotoV2 + * @arg {TeamMembersSetProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersSetProfilePhotoV2 = function (arg) { + return this.request('team/members/set_profile_photo_v2', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Updates a team member's profile photo. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetProfilePhoto + * @arg {TeamMembersSetProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersSetProfilePhoto = function (arg) { + return this.request('team/members/set_profile_photo', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Suspend a member from a team. Permission : Team member management Exactly one + * of team_member_id, email, or external_id must be provided to identify the + * user account. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSuspend + * @arg {TeamMembersDeactivateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersSuspend = function (arg) { + return this.request('team/members/suspend', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Unsuspend a member from a team. Permission : Team member management Exactly + * one of team_member_id, email, or external_id must be provided to identify the + * user account. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersUnsuspend + * @arg {TeamMembersUnsuspendArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamMembersUnsuspend = function (arg) { + return this.request('team/members/unsuspend', arg, 'team', 'api', 'rpc', 'members.write'); + }; + /** + * Returns a list of all team-accessible namespaces. This list includes team + * folders, shared folders containing team members, team members' home + * namespaces, and team members' app folders. Home namespaces and app folders + * are always owned by this team or members of the team, but shared folders may + * be owned by other users or other teams. Duplicates may occur in the list. + * Route attributes: + * scope: team_data.member + * @function Dropbox#teamNamespacesList + * @arg {TeamTeamNamespacesListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamNamespacesList = function (arg) { + return this.request('team/namespaces/list', arg, 'team', 'api', 'rpc', 'team_data.member'); + }; + /** + * Once a cursor has been retrieved from namespaces/list, use this to paginate + * through all team-accessible namespaces. Duplicates may occur in the list. + * Route attributes: + * scope: team_data.member + * @function Dropbox#teamNamespacesListContinue + * @arg {TeamTeamNamespacesListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamNamespacesListContinue = function (arg) { + return this.request('team/namespaces/list/continue', arg, 'team', 'api', 'rpc', 'team_data.member'); + }; + /** + * Permission : Team member file access. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#teamPropertiesTemplateAdd + * @deprecated + * @arg {FilePropertiesAddTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamPropertiesTemplateAdd = function (arg) { + return this.request('team/properties/template/add', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); + }; + /** + * Permission : Team member file access. The scope for the route is + * files.team_metadata.write. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#teamPropertiesTemplateGet + * @deprecated + * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamPropertiesTemplateGet = function (arg) { + return this.request('team/properties/template/get', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); + }; + /** + * Permission : Team member file access. The scope for the route is + * files.team_metadata.write. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#teamPropertiesTemplateList + * @deprecated + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamPropertiesTemplateList = function () { + return this.request('team/properties/template/list', null, 'team', 'api', 'rpc', 'files.team_metadata.write'); + }; + /** + * Permission : Team member file access. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#teamPropertiesTemplateUpdate + * @deprecated + * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamPropertiesTemplateUpdate = function (arg) { + return this.request('team/properties/template/update', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); + }; + /** + * Retrieves reporting data about a team's user activity. Deprecated: Will be + * removed on July 1st 2021. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamReportsGetActivity + * @deprecated + * @arg {TeamDateRange} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamReportsGetActivity = function (arg) { + return this.request('team/reports/get_activity', arg, 'team', 'api', 'rpc', 'team_info.read'); + }; + /** + * Retrieves reporting data about a team's linked devices. Deprecated: Will be + * removed on July 1st 2021. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamReportsGetDevices + * @deprecated + * @arg {TeamDateRange} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamReportsGetDevices = function (arg) { + return this.request('team/reports/get_devices', arg, 'team', 'api', 'rpc', 'team_info.read'); + }; + /** + * Retrieves reporting data about a team's membership. Deprecated: Will be + * removed on July 1st 2021. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamReportsGetMembership + * @deprecated + * @arg {TeamDateRange} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamReportsGetMembership = function (arg) { + return this.request('team/reports/get_membership', arg, 'team', 'api', 'rpc', 'team_info.read'); + }; + /** + * Retrieves reporting data about a team's storage usage. Deprecated: Will be + * removed on July 1st 2021. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamReportsGetStorage + * @deprecated + * @arg {TeamDateRange} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamReportsGetStorage = function (arg) { + return this.request('team/reports/get_storage', arg, 'team', 'api', 'rpc', 'team_info.read'); + }; + /** + * Endpoint adds Approve List entries. Changes are effective immediately. + * Changes are committed in transaction. In case of single validation error - + * all entries are rejected. Valid domains (RFC-1034/5) and emails + * (RFC-5322/822) are accepted. Added entries cannot overflow limit of 10000 + * entries per team. Maximum 100 entries per call is allowed. + * Route attributes: + * scope: team_info.write + * @function Dropbox#teamSharingAllowlistAdd + * @arg {TeamSharingAllowlistAddArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamSharingAllowlistAdd = function (arg) { + return this.request('team/sharing_allowlist/add', arg, 'team', 'api', 'rpc', 'team_info.write'); + }; + /** + * Lists Approve List entries for given team, from newest to oldest, returning + * up to `limit` entries at a time. If there are more than `limit` entries + * associated with the current team, more can be fetched by passing the returned + * `cursor` to sharing_allowlist/list/continue. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamSharingAllowlistList + * @arg {TeamSharingAllowlistListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamSharingAllowlistList = function (arg) { + return this.request('team/sharing_allowlist/list', arg, 'team', 'api', 'rpc', 'team_info.read'); + }; + /** + * Lists entries associated with given team, starting from a the cursor. See + * sharing_allowlist/list. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamSharingAllowlistListContinue + * @arg {TeamSharingAllowlistListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamSharingAllowlistListContinue = function (arg) { + return this.request('team/sharing_allowlist/list/continue', arg, 'team', 'api', 'rpc', 'team_info.read'); + }; + /** + * Endpoint removes Approve List entries. Changes are effective immediately. + * Changes are committed in transaction. In case of single validation error - + * all entries are rejected. Valid domains (RFC-1034/5) and emails + * (RFC-5322/822) are accepted. Entries being removed have to be present on the + * list. Maximum 1000 entries per call is allowed. + * Route attributes: + * scope: team_info.write + * @function Dropbox#teamSharingAllowlistRemove + * @arg {TeamSharingAllowlistRemoveArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamSharingAllowlistRemove = function (arg) { + return this.request('team/sharing_allowlist/remove', arg, 'team', 'api', 'rpc', 'team_info.write'); + }; + /** + * Sets an archived team folder's status to active. Permission : Team member + * file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderActivate + * @arg {TeamTeamFolderIdArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamTeamFolderActivate = function (arg) { + return this.request('team/team_folder/activate', arg, 'team', 'api', 'rpc', 'team_data.content.write'); + }; + /** + * Sets an active team folder's status to archived and removes all folder and + * file members. This endpoint cannot be used for teams that have a shared team + * space. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderArchive + * @arg {TeamTeamFolderArchiveArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamTeamFolderArchive = function (arg) { + return this.request('team/team_folder/archive', arg, 'team', 'api', 'rpc', 'team_data.content.write'); + }; + /** + * Returns the status of an asynchronous job for archiving a team folder. + * Permission : Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderArchiveCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamTeamFolderArchiveCheck = function (arg) { + return this.request('team/team_folder/archive/check', arg, 'team', 'api', 'rpc', 'team_data.content.write'); + }; + /** + * Creates a new, active, team folder with no members. This endpoint can only be + * used for teams that do not already have a shared team space. Permission : + * Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderCreate + * @arg {TeamTeamFolderCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamTeamFolderCreate = function (arg) { + return this.request('team/team_folder/create', arg, 'team', 'api', 'rpc', 'team_data.content.write'); + }; + /** + * Retrieves metadata for team folders. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.read + * @function Dropbox#teamTeamFolderGetInfo + * @arg {TeamTeamFolderIdListArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + + routes.teamTeamFolderGetInfo = function (arg) { + return this.request('team/team_folder/get_info', arg, 'team', 'api', 'rpc', 'team_data.content.read'); + }; + /** + * Lists all team folders. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.read + * @function Dropbox#teamTeamFolderList + * @arg {TeamTeamFolderListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamTeamFolderList = function (arg) { + return this.request('team/team_folder/list', arg, 'team', 'api', 'rpc', 'team_data.content.read'); + }; + /** + * Once a cursor has been retrieved from team_folder/list, use this to paginate + * through all team folders. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.read + * @function Dropbox#teamTeamFolderListContinue + * @arg {TeamTeamFolderListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamTeamFolderListContinue = function (arg) { + return this.request('team/team_folder/list/continue', arg, 'team', 'api', 'rpc', 'team_data.content.read'); + }; + /** + * Permanently deletes an archived team folder. This endpoint cannot be used for + * teams that have a shared team space. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderPermanentlyDelete + * @arg {TeamTeamFolderIdArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamTeamFolderPermanentlyDelete = function (arg) { + return this.request('team/team_folder/permanently_delete', arg, 'team', 'api', 'rpc', 'team_data.content.write'); + }; + /** + * Changes an active team folder's name. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderRename + * @arg {TeamTeamFolderRenameArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamTeamFolderRename = function (arg) { + return this.request('team/team_folder/rename', arg, 'team', 'api', 'rpc', 'team_data.content.write'); + }; + /** + * Updates the sync settings on a team folder or its contents. Use of this + * endpoint requires that the team has team selective sync enabled. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderUpdateSyncSettings + * @arg {TeamTeamFolderUpdateSyncSettingsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamTeamFolderUpdateSyncSettings = function (arg) { + return this.request('team/team_folder/update_sync_settings', arg, 'team', 'api', 'rpc', 'team_data.content.write'); + }; + /** + * Returns the member profile of the admin who generated the team access token + * used to make the call. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamTokenGetAuthenticatedAdmin + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamTokenGetAuthenticatedAdmin = function () { + return this.request('team/token/get_authenticated_admin', null, 'team', 'api', 'rpc', 'team_info.read'); + }; + /** + * Retrieves team events. If the result's GetTeamEventsResult.has_more field is + * true, call get_events/continue with the returned cursor to retrieve more + * entries. If end_time is not specified in your request, you may use the + * returned cursor to poll get_events/continue for new events. Many attributes + * note 'may be missing due to historical data gap'. Note that the + * file_operations category and & analogous paper events are not available on + * all Dropbox Business plans /business/plans-comparison. Use + * features/get_values + * /developers/documentation/http/teams#team-features-get_values to check for + * this feature. Permission : Team Auditing. + * Route attributes: + * scope: events.read + * @function Dropbox#teamLogGetEvents + * @arg {TeamLogGetTeamEventsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamLogGetEvents = function (arg) { + return this.request('team_log/get_events', arg, 'team', 'api', 'rpc', 'events.read'); + }; + /** + * Once a cursor has been retrieved from get_events, use this to paginate + * through all events. Permission : Team Auditing. + * Route attributes: + * scope: events.read + * @function Dropbox#teamLogGetEventsContinue + * @arg {TeamLogGetTeamEventsContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.teamLogGetEventsContinue = function (arg) { + return this.request('team_log/get_events/continue', arg, 'team', 'api', 'rpc', 'events.read'); + }; + /** + * Get a list of feature values that may be configured for the current account. + * Route attributes: + * scope: account_info.read + * @function Dropbox#usersFeaturesGetValues + * @arg {UsersUserFeaturesGetValuesBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.usersFeaturesGetValues = function (arg) { + return this.request('users/features/get_values', arg, 'user', 'api', 'rpc', 'account_info.read'); + }; + /** + * Get information about a user's account. + * Route attributes: + * scope: sharing.read + * @function Dropbox#usersGetAccount + * @arg {UsersGetAccountArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.usersGetAccount = function (arg) { + return this.request('users/get_account', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Get information about multiple user accounts. At most 300 accounts may be + * queried per request. + * Route attributes: + * scope: sharing.read + * @function Dropbox#usersGetAccountBatch + * @arg {UsersGetAccountBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.usersGetAccountBatch = function (arg) { + return this.request('users/get_account_batch', arg, 'user', 'api', 'rpc', 'sharing.read'); + }; + /** + * Get information about the current user's account. + * Route attributes: + * scope: account_info.read + * @function Dropbox#usersGetCurrentAccount + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.usersGetCurrentAccount = function () { + return this.request('users/get_current_account', null, 'user', 'api', 'rpc', 'account_info.read'); + }; + /** + * Get the space usage information for the current user's account. + * Route attributes: + * scope: account_info.read + * @function Dropbox#usersGetSpaceUsage + * @returns {Promise., DropboxResponseError.>} + */ + + + routes.usersGetSpaceUsage = function () { + return this.request('users/get_space_usage', null, 'user', 'api', 'rpc', 'account_info.read'); + }; + + function getSafeUnicode(c) { + var unicode = "000".concat(c.charCodeAt(0).toString(16)).slice(-4); + return "\\u".concat(unicode); + } + + var baseApiUrl = function baseApiUrl(subdomain) { + var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_API_DOMAIN; + var domainDelimiter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.'; + + if (!domainDelimiter) { + return "https://".concat(domain, "/2/"); + } + + if (domain !== DEFAULT_API_DOMAIN && TEST_DOMAIN_MAPPINGS[subdomain] !== undefined) { + subdomain = TEST_DOMAIN_MAPPINGS[subdomain]; + domainDelimiter = '-'; + } + + return "https://".concat(subdomain).concat(domainDelimiter).concat(domain, "/2/"); + }; + var OAuth2AuthorizationUrl = function OAuth2AuthorizationUrl() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_DOMAIN; + + if (domain !== DEFAULT_DOMAIN) { + domain = "meta-".concat(domain); + } + + return "https://".concat(domain, "/oauth2/authorize"); + }; + var OAuth2TokenUrl = function OAuth2TokenUrl() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_API_DOMAIN; + var domainDelimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '.'; + var subdomain = 'api'; + + if (domain !== DEFAULT_API_DOMAIN) { + subdomain = TEST_DOMAIN_MAPPINGS[subdomain]; + domainDelimiter = '-'; + } + + return "https://".concat(subdomain).concat(domainDelimiter).concat(domain, "/oauth2/token"); + }; // source https://www.dropboxforum.com/t5/API-support/HTTP-header-quot-Dropbox-API-Arg-quot-could-not-decode-input-as/m-p/173823/highlight/true#M6786 + + function httpHeaderSafeJson(args) { + return JSON.stringify(args).replace(/[\u007f-\uffff]/g, getSafeUnicode); + } + function getTokenExpiresAtDate(expiresIn) { + return new Date(Date.now() + expiresIn * 1000); + } + /* global WorkerGlobalScope */ + + function isWindowOrWorker() { + return typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope // eslint-disable-line no-restricted-globals + || typeof module === 'undefined' || typeof window !== 'undefined'; + } + function isBrowserEnv() { + return typeof window !== 'undefined'; + } + function isWorkerEnv() { + return typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope; // eslint-disable-line no-restricted-globals + } + function createBrowserSafeString(toBeConverted) { + var convertedString = toBeConverted.toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, ''); + return convertedString; + } + + /** + * The response class of HTTP errors from API calls using the Dropbox SDK. + * @class DropboxResponseError + * @classdesc The response class of HTTP errors from API calls using the Dropbox SDK. + * @arg {number} status - HTTP Status code of the call + * @arg {Object} headers - Headers returned from the call + * @arg {Object} error - Serialized Error of the call + */ + var DropboxResponseError = /*#__PURE__*/function (_Error) { + _inherits(DropboxResponseError, _Error); + + var _super = _createSuper(DropboxResponseError); + + function DropboxResponseError(status, headers, error) { + var _this; + + _classCallCheck(this, DropboxResponseError); + + _this = _super.call(this, "Response failed with a ".concat(status, " code")); + _this.name = 'DropboxResponseError'; + _this.status = status; + _this.headers = headers; + _this.error = error; + return _this; + } + + return DropboxResponseError; + }( /*#__PURE__*/_wrapNativeSuper(Error)); + + var DropboxResponse = function DropboxResponse(status, headers, result) { + _classCallCheck(this, DropboxResponse); + + this.status = status; + this.headers = headers; + this.result = result; + }; + + function throwAsError(res) { + return res.text().then(function (data) { + var errorObject; + + try { + errorObject = JSON.parse(data); + } catch (error) { + errorObject = data; + } + + throw new DropboxResponseError(res.status, res.headers, errorObject); + }); + } + + function parseResponse(res) { + if (!res.ok) { + return throwAsError(res); + } + + return res.text().then(function (data) { + var responseObject; + + try { + responseObject = JSON.parse(data); + } catch (error) { + responseObject = data; + } + + return new DropboxResponse(res.status, res.headers, responseObject); + }); + } + function parseDownloadResponse(res) { + if (!res.ok) { + return throwAsError(res); + } + + return new Promise(function (resolve) { + if (isWindowOrWorker()) { + res.blob().then(function (data) { + return resolve(data); + }); + } else { + res.buffer().then(function (data) { + return resolve(data); + }); + } + }).then(function (data) { + var result = JSON.parse(res.headers.get('dropbox-api-result')); + + if (isWindowOrWorker()) { + result.fileBlob = data; + } else { + result.fileBinary = data; + } + + return new DropboxResponse(res.status, res.headers, result); + }); + } + + var fetch; + var crypto; + var Encoder; // Expiration is 300 seconds but needs to be in milliseconds for Date object + + var TokenExpirationBuffer = 300 * 1000; + var PKCELength = 128; + var TokenAccessTypes = ['legacy', 'offline', 'online']; + var GrantTypes = ['code', 'token']; + var IncludeGrantedScopes = ['none', 'user', 'team']; + /** + * @class DropboxAuth + * @classdesc The DropboxAuth class that provides methods to manage, acquire, and refresh tokens. + * @arg {Object} options + * @arg {Function} [options.fetch] - fetch library for making requests. + * @arg {String} [options.accessToken] - An access token for making authenticated + * requests. + * @arg {Date} [options.AccessTokenExpiresAt] - Date of the current access token's + * expiration (if available) + * @arg {String} [options.refreshToken] - A refresh token for retrieving access tokens + * @arg {String} [options.clientId] - The client id for your app. Used to create + * authentication URL. + * @arg {String} [options.clientSecret] - The client secret for your app. Used to create + * authentication URL and refresh access tokens. + * @arg {String} [options.domain] - A custom domain to use when making api requests. This + * should only be used for testing as scaffolding to avoid making network requests. + * @arg {String} [options.domainDelimiter] - A custom delimiter to use when separating domain from + * subdomain. This should only be used for testing as scaffolding. + * @arg {Object} [options.customHeaders] - An object (in the form of header: value) designed to set + * custom headers to use during a request. + * @arg {Boolean} [options.dataOnBody] - Whether request data is sent on body or as URL params. + * Defaults to false. + */ + + var DropboxAuth = /*#__PURE__*/function () { + function DropboxAuth(options) { + _classCallCheck(this, DropboxAuth); + + options = options || {}; + + if (isBrowserEnv()) { + fetch = window.fetch.bind(window); + crypto = window.crypto || window.msCrypto; // for IE11 + } else if (isWorkerEnv()) { + /* eslint-disable no-restricted-globals */ + fetch = self.fetch.bind(self); + crypto = self.crypto; + /* eslint-enable no-restricted-globals */ + } else { + fetch = require('node-fetch'); // eslint-disable-line global-require + + crypto = require('crypto'); // eslint-disable-line global-require + } + + if (typeof TextEncoder === 'undefined') { + Encoder = require('util').TextEncoder; // eslint-disable-line global-require + } else { + Encoder = TextEncoder; + } + + this.fetch = options.fetch || fetch; + this.accessToken = options.accessToken; + this.accessTokenExpiresAt = options.accessTokenExpiresAt; + this.refreshToken = options.refreshToken; + this.clientId = options.clientId; + this.clientSecret = options.clientSecret; + this.domain = options.domain; + this.domainDelimiter = options.domainDelimiter; + this.customHeaders = options.customHeaders; + this.dataOnBody = options.dataOnBody; + } + /** + * Set the access token used to authenticate requests to the API. + * @arg {String} accessToken - An access token + * @returns {undefined} + */ + + + _createClass(DropboxAuth, [{ + key: "setAccessToken", + value: function setAccessToken(accessToken) { + this.accessToken = accessToken; + } + /** + * Get the access token + * @returns {String} Access token + */ + + }, { + key: "getAccessToken", + value: function getAccessToken() { + return this.accessToken; + } + /** + * Set the client id, which is used to help gain an access token. + * @arg {String} clientId - Your apps client id + * @returns {undefined} + */ + + }, { + key: "setClientId", + value: function setClientId(clientId) { + this.clientId = clientId; + } + /** + * Get the client id + * @returns {String} Client id + */ + + }, { + key: "getClientId", + value: function getClientId() { + return this.clientId; + } + /** + * Set the client secret + * @arg {String} clientSecret - Your app's client secret + * @returns {undefined} + */ + + }, { + key: "setClientSecret", + value: function setClientSecret(clientSecret) { + this.clientSecret = clientSecret; + } + /** + * Get the client secret + * @returns {String} Client secret + */ + + }, { + key: "getClientSecret", + value: function getClientSecret() { + return this.clientSecret; + } + /** + * Gets the refresh token + * @returns {String} Refresh token + */ + + }, { + key: "getRefreshToken", + value: function getRefreshToken() { + return this.refreshToken; + } + /** + * Sets the refresh token + * @param refreshToken - A refresh token + */ + + }, { + key: "setRefreshToken", + value: function setRefreshToken(refreshToken) { + this.refreshToken = refreshToken; + } + /** + * Gets the access token's expiration date + * @returns {Date} date of token expiration + */ + + }, { + key: "getAccessTokenExpiresAt", + value: function getAccessTokenExpiresAt() { + return this.accessTokenExpiresAt; + } + /** + * Sets the access token's expiration date + * @param accessTokenExpiresAt - new expiration date + */ + + }, { + key: "setAccessTokenExpiresAt", + value: function setAccessTokenExpiresAt(accessTokenExpiresAt) { + this.accessTokenExpiresAt = accessTokenExpiresAt; + } + /** + * Sets the code verifier for PKCE flow + * @param {String} codeVerifier - new code verifier + */ + + }, { + key: "setCodeVerifier", + value: function setCodeVerifier(codeVerifier) { + this.codeVerifier = codeVerifier; + } + /** + * Gets the code verifier for PKCE flow + * @returns {String} - code verifier for PKCE + */ + + }, { + key: "getCodeVerifier", + value: function getCodeVerifier() { + return this.codeVerifier; + } + }, { + key: "generateCodeChallenge", + value: function generateCodeChallenge() { + var _this = this; + + var encoder = new Encoder(); + var codeData = encoder.encode(this.codeVerifier); + var codeChallenge; + + if (isBrowserEnv() || isWorkerEnv()) { + return crypto.subtle.digest('SHA-256', codeData).then(function (digestedHash) { + var base64String = btoa(String.fromCharCode.apply(null, new Uint8Array(digestedHash))); + codeChallenge = createBrowserSafeString(base64String).substr(0, 128); + _this.codeChallenge = codeChallenge; + }); + } + + var digestedHash = crypto.createHash('sha256').update(codeData).digest(); + codeChallenge = createBrowserSafeString(digestedHash); + this.codeChallenge = codeChallenge; + return Promise.resolve(); + } + }, { + key: "generatePKCECodes", + value: function generatePKCECodes() { + var codeVerifier; + + if (isBrowserEnv() || isWorkerEnv()) { + var array = new Uint8Array(PKCELength); + var randomValueArray = crypto.getRandomValues(array); + var base64String = btoa(randomValueArray); + codeVerifier = createBrowserSafeString(base64String).substr(0, 128); + } else { + var randomBytes = crypto.randomBytes(PKCELength); + codeVerifier = createBrowserSafeString(randomBytes).substr(0, 128); + } + + this.codeVerifier = codeVerifier; + return this.generateCodeChallenge(); + } + /** + * Get a URL that can be used to authenticate users for the Dropbox API. + * @arg {String} redirectUri - A URL to redirect the user to after + * authenticating. This must be added to your app through the admin interface. + * @arg {String} [state] - State that will be returned in the redirect URL to help + * prevent cross site scripting attacks. + * @arg {String} [authType] - auth type, defaults to 'token', other option is 'code' + * @arg {String} [tokenAccessType] - type of token to request. From the following: + * null - creates a token with the app default (either legacy or online) + * legacy - creates one long-lived token with no expiration + * online - create one short-lived token with an expiration + * offline - create one short-lived token with an expiration with a refresh token + * @arg {Array} [scope] - scopes to request for the grant + * @arg {String} [includeGrantedScopes] - whether or not to include previously granted scopes. + * From the following: + * user - include user scopes in the grant + * team - include team scopes in the grant + * Note: if this user has never linked the app, include_granted_scopes must be None + * @arg {boolean} [usePKCE] - Whether or not to use Sha256 based PKCE. PKCE should be only use + * on client apps which doesn't call your server. It is less secure than non-PKCE flow but + * can be used if you are unable to safely retrieve your app secret + * @returns {Promise} - Url to send user to for Dropbox API authentication + * returned in a promise + */ + + }, { + key: "getAuthenticationUrl", + value: function getAuthenticationUrl(redirectUri, state) { + var _this2 = this; + + var authType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'token'; + var tokenAccessType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + var scope = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null; + var includeGrantedScopes = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'none'; + var usePKCE = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false; + var clientId = this.getClientId(); + var baseUrl = OAuth2AuthorizationUrl(this.domain); + + if (!clientId) { + throw new Error('A client id is required. You can set the client id using .setClientId().'); + } + + if (authType !== 'code' && !redirectUri) { + throw new Error('A redirect uri is required.'); + } + + if (!GrantTypes.includes(authType)) { + throw new Error('Authorization type must be code or token'); + } + + if (tokenAccessType && !TokenAccessTypes.includes(tokenAccessType)) { + throw new Error('Token Access Type must be legacy, offline, or online'); + } + + if (scope && !(scope instanceof Array)) { + throw new Error('Scope must be an array of strings'); + } + + if (!IncludeGrantedScopes.includes(includeGrantedScopes)) { + throw new Error('includeGrantedScopes must be none, user, or team'); + } + + var authUrl; + + if (authType === 'code') { + authUrl = "".concat(baseUrl, "?response_type=code&client_id=").concat(clientId); + } else { + authUrl = "".concat(baseUrl, "?response_type=token&client_id=").concat(clientId); + } + + if (redirectUri) { + authUrl += "&redirect_uri=".concat(redirectUri); + } + + if (state) { + authUrl += "&state=".concat(state); + } + + if (tokenAccessType) { + authUrl += "&token_access_type=".concat(tokenAccessType); + } + + if (scope) { + authUrl += "&scope=".concat(scope.join(' ')); + } + + if (includeGrantedScopes !== 'none') { + authUrl += "&include_granted_scopes=".concat(includeGrantedScopes); + } + + if (usePKCE) { + return this.generatePKCECodes().then(function () { + authUrl += '&code_challenge_method=S256'; + authUrl += "&code_challenge=".concat(_this2.codeChallenge); + return authUrl; + }); + } + + return Promise.resolve(authUrl); + } + /** + * Get an OAuth2 access token from an OAuth2 Code. + * @arg {String} redirectUri - A URL to redirect the user to after + * authenticating. This must be added to your app through the admin interface. + * @arg {String} code - An OAuth2 code. + * @returns {Object} An object containing the token and related info (if applicable) + */ + + }, { + key: "getAccessTokenFromCode", + value: function getAccessTokenFromCode(redirectUri, code) { + var clientId = this.getClientId(); + var clientSecret = this.getClientSecret(); + + if (!clientId) { + throw new Error('A client id is required. You can set the client id using .setClientId().'); + } + + var path = OAuth2TokenUrl(this.domain, this.domainDelimiter); + path += '?grant_type=authorization_code'; + path += "&code=".concat(code); + path += "&client_id=".concat(clientId); + + if (clientSecret) { + path += "&client_secret=".concat(clientSecret); + } else { + if (!this.codeVerifier) { + throw new Error('You must use PKCE when generating the authorization URL to not include a client secret'); + } + + path += "&code_verifier=".concat(this.codeVerifier); + } + + if (redirectUri) { + path += "&redirect_uri=".concat(redirectUri); + } + + var fetchOptions = { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }; + return this.fetch(path, fetchOptions).then(function (res) { + return parseResponse(res); + }); + } + /** + * Checks if a token is needed, can be refreshed and if the token is expired. + * If so, attempts to refresh access token + * @returns {Promise<*>} + */ + + }, { + key: "checkAndRefreshAccessToken", + value: function checkAndRefreshAccessToken() { + var canRefresh = this.getRefreshToken() && this.getClientId(); + var needsRefresh = !this.getAccessTokenExpiresAt() || new Date(Date.now() + TokenExpirationBuffer) >= this.getAccessTokenExpiresAt(); + var needsToken = !this.getAccessToken(); + + if ((needsRefresh || needsToken) && canRefresh) { + return this.refreshAccessToken(); + } + + return Promise.resolve(); + } + /** + * Refreshes the access token using the refresh token, if available + * @arg {Array} scope - a subset of scopes from the original + * refresh to acquire with an access token + * @returns {Promise<*>} + */ + + }, { + key: "refreshAccessToken", + value: function refreshAccessToken() { + var _this3 = this; + + var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + var clientId = this.getClientId(); + var clientSecret = this.getClientSecret(); + + if (!clientId) { + throw new Error('A client id is required. You can set the client id using .setClientId().'); + } + + if (scope && !(scope instanceof Array)) { + throw new Error('Scope must be an array of strings'); + } + + var refreshUrl = OAuth2TokenUrl(this.domain, this.domainDelimiter); + var fetchOptions = { + headers: { + 'Content-Type': 'application/json' + }, + method: 'POST' + }; + + if (this.dataOnBody) { + var body = { + grant_type: 'refresh_token', + client_id: clientId, + refresh_token: this.getRefreshToken() + }; + + if (clientSecret) { + body.client_secret = clientSecret; + } + + if (scope) { + body.scope = scope.join(' '); + } + + fetchOptions.body = body; + } else { + refreshUrl += "?grant_type=refresh_token&refresh_token=".concat(this.getRefreshToken()); + refreshUrl += "&client_id=".concat(clientId); + + if (clientSecret) { + refreshUrl += "&client_secret=".concat(clientSecret); + } + + if (scope) { + refreshUrl += "&scope=".concat(scope.join(' ')); + } + } + + return this.fetch(refreshUrl, fetchOptions).then(function (res) { + return parseResponse(res); + }).then(function (res) { + _this3.setAccessToken(res.result.access_token); + + _this3.setAccessTokenExpiresAt(getTokenExpiresAtDate(res.result.expires_in)); + }); + } + }]); + + return DropboxAuth; + }(); + + var b64 = typeof btoa === 'undefined' ? function (str) { + return Buffer.from(str).toString('base64'); + } : btoa; + /** + * @class Dropbox + * @classdesc The Dropbox SDK class that provides methods to read, write and + * create files or folders in a user or team's Dropbox. + * @arg {Object} options + * @arg {Function} [options.fetch] - fetch library for making requests. + * @arg {String} [options.selectUser] - Select user is only used for team functionality. + * It specifies which user the team access token should be acting as. + * @arg {String} [options.pathRoot] - root path to access other namespaces + * Use to access team folders for example + * @arg {String} [options.selectAdmin] - Select admin is only used by team functionality. + * It specifies which team admin the team access token should be acting as. + * @arg {DropboxAuth} [options.auth] - The DropboxAuth object used to authenticate requests. + * If this is set, the remaining parameters will be ignored. + * @arg {String} [options.accessToken] - An access token for making authenticated + * requests. + * @arg {Date} [options.accessTokenExpiresAt] - Date of the current access token's + * expiration (if available) + * @arg {String} [options.refreshToken] - A refresh token for retrieving access tokens + * @arg {String} [options.clientId] - The client id for your app. Used to create + * authentication URL. + * @arg {String} [options.clientSecret] - The client secret for your app. Used to create + * authentication URL and refresh access tokens. + * @arg {String} [options.domain] - A custom domain to use when making api requests. This + * should only be used for testing as scaffolding to avoid making network requests. + * @arg {String} [options.domainDelimiter] - A custom delimiter to use when separating domain from + * subdomain. This should only be used for testing as scaffolding. + * @arg {Object} [options.customHeaders] - An object (in the form of header: value) designed to set + * custom headers to use during a request. + */ + + var Dropbox = /*#__PURE__*/function () { + function Dropbox(options) { + _classCallCheck(this, Dropbox); + + options = options || {}; + + if (options.auth) { + this.auth = options.auth; + } else { + this.auth = new DropboxAuth(options); + } + + this.fetch = options.fetch || this.auth.fetch; + this.selectUser = options.selectUser; + this.selectAdmin = options.selectAdmin; + this.pathRoot = options.pathRoot; + this.domain = options.domain || this.auth.domain; + this.domainDelimiter = options.domainDelimiter || this.auth.domainDelimiter; + this.customHeaders = options.customHeaders || this.auth.customHeaders; + Object.assign(this, routes); + } + + _createClass(Dropbox, [{ + key: "request", + value: function request(path, args, auth, host, style) { + // scope is provided after "style", but unused in requests, so it's not in parameters + switch (style) { + case RPC: + return this.rpcRequest(path, args, auth, host); + + case DOWNLOAD: + return this.downloadRequest(path, args, auth, host); + + case UPLOAD: + return this.uploadRequest(path, args, auth, host); + + default: + throw new Error("Invalid request style: ".concat(style)); + } + } + }, { + key: "rpcRequest", + value: function rpcRequest(path, body, auth, host) { + var _this = this; + + return this.auth.checkAndRefreshAccessToken().then(function () { + var fetchOptions = { + method: 'POST', + body: body ? JSON.stringify(body) : null, + headers: {} + }; + + if (body) { + fetchOptions.headers['Content-Type'] = 'application/json'; + } + + _this.setAuthHeaders(auth, fetchOptions); + + _this.setCommonHeaders(fetchOptions); + + return fetchOptions; + }).then(function (fetchOptions) { + return _this.fetch(baseApiUrl(host, _this.domain, _this.domainDelimiter) + path, fetchOptions); + }).then(function (res) { + return parseResponse(res); + }); + } + }, { + key: "downloadRequest", + value: function downloadRequest(path, args, auth, host) { + var _this2 = this; + + return this.auth.checkAndRefreshAccessToken().then(function () { + var fetchOptions = { + method: 'POST', + headers: { + 'Dropbox-API-Arg': httpHeaderSafeJson(args) + } + }; + + _this2.setAuthHeaders(auth, fetchOptions); + + _this2.setCommonHeaders(fetchOptions); + + return fetchOptions; + }).then(function (fetchOptions) { + return _this2.fetch(baseApiUrl(host, _this2.domain, _this2.domainDelimiter) + path, fetchOptions); + }).then(function (res) { + return parseDownloadResponse(res); + }); + } + }, { + key: "uploadRequest", + value: function uploadRequest(path, args, auth, host) { + var _this3 = this; + + return this.auth.checkAndRefreshAccessToken().then(function () { + var contents = args.contents; + delete args.contents; + var fetchOptions = { + body: contents, + method: 'POST', + headers: { + 'Content-Type': 'application/octet-stream', + 'Dropbox-API-Arg': httpHeaderSafeJson(args) + } + }; + + _this3.setAuthHeaders(auth, fetchOptions); + + _this3.setCommonHeaders(fetchOptions); + + return fetchOptions; + }).then(function (fetchOptions) { + return _this3.fetch(baseApiUrl(host, _this3.domain, _this3.domainDelimiter) + path, fetchOptions); + }).then(function (res) { + return parseResponse(res); + }); + } + }, { + key: "setAuthHeaders", + value: function setAuthHeaders(auth, fetchOptions) { + // checks for multiauth and assigns auth based on priority to create header in switch case + if (auth.split(',').length > 1) { + var authTypes = auth.replace(' ', '').split(','); + + if (authTypes.includes(USER_AUTH) && this.auth.getAccessToken()) { + auth = USER_AUTH; + } else if (authTypes.includes(TEAM_AUTH) && this.auth.getAccessToken()) { + auth = TEAM_AUTH; + } else if (authTypes.includes(APP_AUTH)) { + auth = APP_AUTH; + } + } + + switch (auth) { + case APP_AUTH: + if (this.auth.clientId && this.auth.clientSecret) { + var authHeader = b64("".concat(this.auth.clientId, ":").concat(this.auth.clientSecret)); + fetchOptions.headers.Authorization = "Basic ".concat(authHeader); + } + + break; + + case TEAM_AUTH: + case USER_AUTH: + if (this.auth.getAccessToken()) { + fetchOptions.headers.Authorization = "Bearer ".concat(this.auth.getAccessToken()); + } + + break; + + case NO_AUTH: + case COOKIE: + break; + + default: + throw new Error("Unhandled auth type: ".concat(auth)); + } + } + }, { + key: "setCommonHeaders", + value: function setCommonHeaders(options) { + var _this4 = this; + + if (this.selectUser) { + options.headers['Dropbox-API-Select-User'] = this.selectUser; + } + + if (this.selectAdmin) { + options.headers['Dropbox-API-Select-Admin'] = this.selectAdmin; + } + + if (this.pathRoot) { + options.headers['Dropbox-API-Path-Root'] = this.pathRoot; + } + + if (this.customHeaders) { + var headerKeys = Object.keys(this.customHeaders); + headerKeys.forEach(function (header) { + options.headers[header] = _this4.customHeaders[header]; + }); + } + } + }]); + + return Dropbox; + }(); + + exports.Dropbox = Dropbox; + exports.DropboxAuth = DropboxAuth; + exports.DropboxResponse = DropboxResponse; + exports.DropboxResponseError = DropboxResponseError; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); +//# sourceMappingURL=Dropbox-sdk.js.map diff --git a/node_modules/tr46/dropbox/dist/Dropbox-sdk.js.map b/node_modules/tr46/dropbox/dist/Dropbox-sdk.js.map new file mode 100644 index 0000000000000000000000000000000000000000..26ac71746640540ade45e7b07d86180ea4f61d3e --- /dev/null +++ b/node_modules/tr46/dropbox/dist/Dropbox-sdk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Dropbox-sdk.js","sources":["../src/constants.js","../lib/routes.js","../src/utils.js","../src/error.js","../src/response.js","../src/auth.js","../src/dropbox.js"],"sourcesContent":["export const RPC = 'rpc';\nexport const UPLOAD = 'upload';\nexport const DOWNLOAD = 'download';\n\nexport const APP_AUTH = 'app';\nexport const USER_AUTH = 'user';\nexport const TEAM_AUTH = 'team';\nexport const NO_AUTH = 'noauth';\nexport const COOKIE = 'cookie';\n\nexport const DEFAULT_API_DOMAIN = 'dropboxapi.com';\nexport const DEFAULT_DOMAIN = 'dropbox.com';\n\nexport const TEST_DOMAIN_MAPPINGS = {\n api: 'api',\n notify: 'bolt',\n content: 'api-content',\n};\n","// Auto-generated by Stone, do not modify.\nvar routes = {};\n\n/**\n * Sets a user's profile photo.\n * Route attributes:\n * scope: account_info.write\n * @function Dropbox#accountSetProfilePhoto\n * @arg {AccountSetProfilePhotoArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.accountSetProfilePhoto = function (arg) {\n return this.request('account/set_profile_photo', arg, 'user', 'api', 'rpc', 'account_info.write');\n};\n\n/**\n * Creates an OAuth 2.0 access token from the supplied OAuth 1.0 access token.\n * @function Dropbox#authTokenFromOauth1\n * @arg {AuthTokenFromOAuth1Arg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.authTokenFromOauth1 = function (arg) {\n return this.request('auth/token/from_oauth1', arg, 'app', 'api', 'rpc', null);\n};\n\n/**\n * Disables the access token used to authenticate the call. If there is a\n * corresponding refresh token for the access token, this disables that refresh\n * token, as well as any other access tokens for that refresh token.\n * @function Dropbox#authTokenRevoke\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.authTokenRevoke = function () {\n return this.request('auth/token/revoke', null, 'user', 'api', 'rpc', null);\n};\n\n/**\n * This endpoint performs App Authentication, validating the supplied app key\n * and secret, and returns the supplied string, to allow you to test your code\n * and connection to the Dropbox API. It has no other effect. If you receive an\n * HTTP 200 response with the supplied query, it indicates at least part of the\n * Dropbox API infrastructure is working and that the app key and secret valid.\n * @function Dropbox#checkApp\n * @arg {CheckEchoArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.checkApp = function (arg) {\n return this.request('check/app', arg, 'app', 'api', 'rpc', null);\n};\n\n/**\n * This endpoint performs User Authentication, validating the supplied access\n * token, and returns the supplied string, to allow you to test your code and\n * connection to the Dropbox API. It has no other effect. If you receive an HTTP\n * 200 response with the supplied query, it indicates at least part of the\n * Dropbox API infrastructure is working and that the access token is valid.\n * Route attributes:\n * scope: account_info.read\n * @function Dropbox#checkUser\n * @arg {CheckEchoArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.checkUser = function (arg) {\n return this.request('check/user', arg, 'user', 'api', 'rpc', 'account_info.read');\n};\n\n/**\n * Removes all manually added contacts. You'll still keep contacts who are on\n * your team or who you imported. New contacts will be added when you share.\n * Route attributes:\n * scope: contacts.write\n * @function Dropbox#contactsDeleteManualContacts\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.contactsDeleteManualContacts = function () {\n return this.request('contacts/delete_manual_contacts', null, 'user', 'api', 'rpc', 'contacts.write');\n};\n\n/**\n * Removes manually added contacts from the given list.\n * Route attributes:\n * scope: contacts.write\n * @function Dropbox#contactsDeleteManualContactsBatch\n * @arg {ContactsDeleteManualContactsArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.contactsDeleteManualContactsBatch = function (arg) {\n return this.request('contacts/delete_manual_contacts_batch', arg, 'user', 'api', 'rpc', 'contacts.write');\n};\n\n/**\n * Add property groups to a Dropbox file. See templates/add_for_user or\n * templates/add_for_team to create new templates.\n * Route attributes:\n * scope: files.metadata.write\n * @function Dropbox#filePropertiesPropertiesAdd\n * @arg {FilePropertiesAddPropertiesArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filePropertiesPropertiesAdd = function (arg) {\n return this.request('file_properties/properties/add', arg, 'user', 'api', 'rpc', 'files.metadata.write');\n};\n\n/**\n * Overwrite property groups associated with a file. This endpoint should be\n * used instead of properties/update when property groups are being updated via\n * a \"snapshot\" instead of via a \"delta\". In other words, this endpoint will\n * delete all omitted fields from a property group, whereas properties/update\n * will only delete fields that are explicitly marked for deletion.\n * Route attributes:\n * scope: files.metadata.write\n * @function Dropbox#filePropertiesPropertiesOverwrite\n * @arg {FilePropertiesOverwritePropertyGroupArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filePropertiesPropertiesOverwrite = function (arg) {\n return this.request('file_properties/properties/overwrite', arg, 'user', 'api', 'rpc', 'files.metadata.write');\n};\n\n/**\n * Permanently removes the specified property group from the file. To remove\n * specific property field key value pairs, see properties/update. To update a\n * template, see templates/update_for_user or templates/update_for_team. To\n * remove a template, see templates/remove_for_user or\n * templates/remove_for_team.\n * Route attributes:\n * scope: files.metadata.write\n * @function Dropbox#filePropertiesPropertiesRemove\n * @arg {FilePropertiesRemovePropertiesArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filePropertiesPropertiesRemove = function (arg) {\n return this.request('file_properties/properties/remove', arg, 'user', 'api', 'rpc', 'files.metadata.write');\n};\n\n/**\n * Search across property templates for particular property field values.\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#filePropertiesPropertiesSearch\n * @arg {FilePropertiesPropertiesSearchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filePropertiesPropertiesSearch = function (arg) {\n return this.request('file_properties/properties/search', arg, 'user', 'api', 'rpc', 'files.metadata.read');\n};\n\n/**\n * Once a cursor has been retrieved from properties/search, use this to paginate\n * through all search results.\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#filePropertiesPropertiesSearchContinue\n * @arg {FilePropertiesPropertiesSearchContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filePropertiesPropertiesSearchContinue = function (arg) {\n return this.request('file_properties/properties/search/continue', arg, 'user', 'api', 'rpc', 'files.metadata.read');\n};\n\n/**\n * Add, update or remove properties associated with the supplied file and\n * templates. This endpoint should be used instead of properties/overwrite when\n * property groups are being updated via a \"delta\" instead of via a \"snapshot\" .\n * In other words, this endpoint will not delete any omitted fields from a\n * property group, whereas properties/overwrite will delete any fields that are\n * omitted from a property group.\n * Route attributes:\n * scope: files.metadata.write\n * @function Dropbox#filePropertiesPropertiesUpdate\n * @arg {FilePropertiesUpdatePropertiesArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filePropertiesPropertiesUpdate = function (arg) {\n return this.request('file_properties/properties/update', arg, 'user', 'api', 'rpc', 'files.metadata.write');\n};\n\n/**\n * Add a template associated with a team. See properties/add to add properties\n * to a file or folder. Note: this endpoint will create team-owned templates.\n * Route attributes:\n * scope: files.team_metadata.write\n * @function Dropbox#filePropertiesTemplatesAddForTeam\n * @arg {FilePropertiesAddTemplateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filePropertiesTemplatesAddForTeam = function (arg) {\n return this.request('file_properties/templates/add_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write');\n};\n\n/**\n * Add a template associated with a user. See properties/add to add properties\n * to a file. This endpoint can't be called on a team member or admin's behalf.\n * Route attributes:\n * scope: files.metadata.write\n * @function Dropbox#filePropertiesTemplatesAddForUser\n * @arg {FilePropertiesAddTemplateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filePropertiesTemplatesAddForUser = function (arg) {\n return this.request('file_properties/templates/add_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.write');\n};\n\n/**\n * Get the schema for a specified template.\n * Route attributes:\n * scope: files.team_metadata.write\n * @function Dropbox#filePropertiesTemplatesGetForTeam\n * @arg {FilePropertiesGetTemplateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filePropertiesTemplatesGetForTeam = function (arg) {\n return this.request('file_properties/templates/get_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write');\n};\n\n/**\n * Get the schema for a specified template. This endpoint can't be called on a\n * team member or admin's behalf.\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#filePropertiesTemplatesGetForUser\n * @arg {FilePropertiesGetTemplateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filePropertiesTemplatesGetForUser = function (arg) {\n return this.request('file_properties/templates/get_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.read');\n};\n\n/**\n * Get the template identifiers for a team. To get the schema of each template\n * use templates/get_for_team.\n * Route attributes:\n * scope: files.team_metadata.write\n * @function Dropbox#filePropertiesTemplatesListForTeam\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filePropertiesTemplatesListForTeam = function () {\n return this.request('file_properties/templates/list_for_team', null, 'team', 'api', 'rpc', 'files.team_metadata.write');\n};\n\n/**\n * Get the template identifiers for a team. To get the schema of each template\n * use templates/get_for_user. This endpoint can't be called on a team member or\n * admin's behalf.\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#filePropertiesTemplatesListForUser\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filePropertiesTemplatesListForUser = function () {\n return this.request('file_properties/templates/list_for_user', null, 'user', 'api', 'rpc', 'files.metadata.read');\n};\n\n/**\n * Permanently removes the specified template created from\n * templates/add_for_user. All properties associated with the template will also\n * be removed. This action cannot be undone.\n * Route attributes:\n * scope: files.team_metadata.write\n * @function Dropbox#filePropertiesTemplatesRemoveForTeam\n * @arg {FilePropertiesRemoveTemplateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filePropertiesTemplatesRemoveForTeam = function (arg) {\n return this.request('file_properties/templates/remove_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write');\n};\n\n/**\n * Permanently removes the specified template created from\n * templates/add_for_user. All properties associated with the template will also\n * be removed. This action cannot be undone.\n * Route attributes:\n * scope: files.metadata.write\n * @function Dropbox#filePropertiesTemplatesRemoveForUser\n * @arg {FilePropertiesRemoveTemplateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filePropertiesTemplatesRemoveForUser = function (arg) {\n return this.request('file_properties/templates/remove_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.write');\n};\n\n/**\n * Update a template associated with a team. This route can update the template\n * name, the template description and add optional properties to templates.\n * Route attributes:\n * scope: files.team_metadata.write\n * @function Dropbox#filePropertiesTemplatesUpdateForTeam\n * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filePropertiesTemplatesUpdateForTeam = function (arg) {\n return this.request('file_properties/templates/update_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write');\n};\n\n/**\n * Update a template associated with a user. This route can update the template\n * name, the template description and add optional properties to templates. This\n * endpoint can't be called on a team member or admin's behalf.\n * Route attributes:\n * scope: files.metadata.write\n * @function Dropbox#filePropertiesTemplatesUpdateForUser\n * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filePropertiesTemplatesUpdateForUser = function (arg) {\n return this.request('file_properties/templates/update_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.write');\n};\n\n/**\n * Returns the total number of file requests owned by this user. Includes both\n * open and closed file requests.\n * Route attributes:\n * scope: file_requests.read\n * @function Dropbox#fileRequestsCount\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.fileRequestsCount = function () {\n return this.request('file_requests/count', null, 'user', 'api', 'rpc', 'file_requests.read');\n};\n\n/**\n * Creates a file request for this user.\n * Route attributes:\n * scope: file_requests.write\n * @function Dropbox#fileRequestsCreate\n * @arg {FileRequestsCreateFileRequestArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.fileRequestsCreate = function (arg) {\n return this.request('file_requests/create', arg, 'user', 'api', 'rpc', 'file_requests.write');\n};\n\n/**\n * Delete a batch of closed file requests.\n * Route attributes:\n * scope: file_requests.write\n * @function Dropbox#fileRequestsDelete\n * @arg {FileRequestsDeleteFileRequestArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.fileRequestsDelete = function (arg) {\n return this.request('file_requests/delete', arg, 'user', 'api', 'rpc', 'file_requests.write');\n};\n\n/**\n * Delete all closed file requests owned by this user.\n * Route attributes:\n * scope: file_requests.write\n * @function Dropbox#fileRequestsDeleteAllClosed\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.fileRequestsDeleteAllClosed = function () {\n return this.request('file_requests/delete_all_closed', null, 'user', 'api', 'rpc', 'file_requests.write');\n};\n\n/**\n * Returns the specified file request.\n * Route attributes:\n * scope: file_requests.read\n * @function Dropbox#fileRequestsGet\n * @arg {FileRequestsGetFileRequestArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.fileRequestsGet = function (arg) {\n return this.request('file_requests/get', arg, 'user', 'api', 'rpc', 'file_requests.read');\n};\n\n/**\n * Returns a list of file requests owned by this user. For apps with the app\n * folder permission, this will only return file requests with destinations in\n * the app folder.\n * Route attributes:\n * scope: file_requests.read\n * @function Dropbox#fileRequestsListV2\n * @arg {FileRequestsListFileRequestsArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.fileRequestsListV2 = function (arg) {\n return this.request('file_requests/list_v2', arg, 'user', 'api', 'rpc', 'file_requests.read');\n};\n\n/**\n * Returns a list of file requests owned by this user. For apps with the app\n * folder permission, this will only return file requests with destinations in\n * the app folder.\n * Route attributes:\n * scope: file_requests.read\n * @function Dropbox#fileRequestsList\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.fileRequestsList = function () {\n return this.request('file_requests/list', null, 'user', 'api', 'rpc', 'file_requests.read');\n};\n\n/**\n * Once a cursor has been retrieved from list_v2, use this to paginate through\n * all file requests. The cursor must come from a previous call to list_v2 or\n * list/continue.\n * Route attributes:\n * scope: file_requests.read\n * @function Dropbox#fileRequestsListContinue\n * @arg {FileRequestsListFileRequestsContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.fileRequestsListContinue = function (arg) {\n return this.request('file_requests/list/continue', arg, 'user', 'api', 'rpc', 'file_requests.read');\n};\n\n/**\n * Update a file request.\n * Route attributes:\n * scope: file_requests.write\n * @function Dropbox#fileRequestsUpdate\n * @arg {FileRequestsUpdateFileRequestArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.fileRequestsUpdate = function (arg) {\n return this.request('file_requests/update', arg, 'user', 'api', 'rpc', 'file_requests.write');\n};\n\n/**\n * Returns the metadata for a file or folder. This is an alpha endpoint\n * compatible with the properties API. Note: Metadata for the root folder is\n * unsupported.\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#filesAlphaGetMetadata\n * @deprecated\n * @arg {FilesAlphaGetMetadataArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesAlphaGetMetadata = function (arg) {\n return this.request('files/alpha/get_metadata', arg, 'user', 'api', 'rpc', 'files.metadata.read');\n};\n\n/**\n * Create a new file with the contents provided in the request. Note that the\n * behavior of this alpha endpoint is unstable and subject to change. Do not use\n * this to upload a file larger than 150 MB. Instead, create an upload session\n * with upload_session/start.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesAlphaUpload\n * @deprecated\n * @arg {FilesUploadArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesAlphaUpload = function (arg) {\n return this.request('files/alpha/upload', arg, 'user', 'content', 'upload', 'files.content.write');\n};\n\n/**\n * Copy a file or folder to a different location in the user's Dropbox. If the\n * source path is a folder all its contents will be copied.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesCopyV2\n * @arg {FilesRelocationArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesCopyV2 = function (arg) {\n return this.request('files/copy_v2', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Copy a file or folder to a different location in the user's Dropbox. If the\n * source path is a folder all its contents will be copied.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesCopy\n * @deprecated\n * @arg {FilesRelocationArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesCopy = function (arg) {\n return this.request('files/copy', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Copy multiple files or folders to different locations at once in the user's\n * Dropbox. This route will replace copy_batch. The main difference is this\n * route will return status for each entry, while copy_batch raises failure if\n * any entry fails. This route will either finish synchronously, or return a job\n * ID and do the async copy job in background. Please use copy_batch/check_v2 to\n * check the job status.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesCopyBatchV2\n * @arg {Object} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesCopyBatchV2 = function (arg) {\n return this.request('files/copy_batch_v2', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Copy multiple files or folders to different locations at once in the user's\n * Dropbox. This route will return job ID immediately and do the async copy job\n * in background. Please use copy_batch/check to check the job status.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesCopyBatch\n * @deprecated\n * @arg {FilesRelocationBatchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesCopyBatch = function (arg) {\n return this.request('files/copy_batch', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Returns the status of an asynchronous job for copy_batch_v2. It returns list\n * of results for each entry.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesCopyBatchCheckV2\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesCopyBatchCheckV2 = function (arg) {\n return this.request('files/copy_batch/check_v2', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Returns the status of an asynchronous job for copy_batch. If success, it\n * returns list of results for each entry.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesCopyBatchCheck\n * @deprecated\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesCopyBatchCheck = function (arg) {\n return this.request('files/copy_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Get a copy reference to a file or folder. This reference string can be used\n * to save that file or folder to another user's Dropbox by passing it to\n * copy_reference/save.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesCopyReferenceGet\n * @arg {FilesGetCopyReferenceArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesCopyReferenceGet = function (arg) {\n return this.request('files/copy_reference/get', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Save a copy reference returned by copy_reference/get to the user's Dropbox.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesCopyReferenceSave\n * @arg {FilesSaveCopyReferenceArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesCopyReferenceSave = function (arg) {\n return this.request('files/copy_reference/save', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Create a folder at a given path.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesCreateFolderV2\n * @arg {FilesCreateFolderArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesCreateFolderV2 = function (arg) {\n return this.request('files/create_folder_v2', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Create a folder at a given path.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesCreateFolder\n * @deprecated\n * @arg {FilesCreateFolderArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesCreateFolder = function (arg) {\n return this.request('files/create_folder', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Create multiple folders at once. This route is asynchronous for large\n * batches, which returns a job ID immediately and runs the create folder batch\n * asynchronously. Otherwise, creates the folders and returns the result\n * synchronously for smaller inputs. You can force asynchronous behaviour by\n * using the CreateFolderBatchArg.force_async flag. Use\n * create_folder_batch/check to check the job status.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesCreateFolderBatch\n * @arg {FilesCreateFolderBatchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesCreateFolderBatch = function (arg) {\n return this.request('files/create_folder_batch', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Returns the status of an asynchronous job for create_folder_batch. If\n * success, it returns list of result for each entry.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesCreateFolderBatchCheck\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesCreateFolderBatchCheck = function (arg) {\n return this.request('files/create_folder_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Delete the file or folder at a given path. If the path is a folder, all its\n * contents will be deleted too. A successful response indicates that the file\n * or folder was deleted. The returned metadata will be the corresponding\n * FileMetadata or FolderMetadata for the item at time of deletion, and not a\n * DeletedMetadata object.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesDeleteV2\n * @arg {FilesDeleteArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesDeleteV2 = function (arg) {\n return this.request('files/delete_v2', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Delete the file or folder at a given path. If the path is a folder, all its\n * contents will be deleted too. A successful response indicates that the file\n * or folder was deleted. The returned metadata will be the corresponding\n * FileMetadata or FolderMetadata for the item at time of deletion, and not a\n * DeletedMetadata object.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesDelete\n * @deprecated\n * @arg {FilesDeleteArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesDelete = function (arg) {\n return this.request('files/delete', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Delete multiple files/folders at once. This route is asynchronous, which\n * returns a job ID immediately and runs the delete batch asynchronously. Use\n * delete_batch/check to check the job status.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesDeleteBatch\n * @arg {FilesDeleteBatchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesDeleteBatch = function (arg) {\n return this.request('files/delete_batch', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Returns the status of an asynchronous job for delete_batch. If success, it\n * returns list of result for each entry.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesDeleteBatchCheck\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesDeleteBatchCheck = function (arg) {\n return this.request('files/delete_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Download a file from a user's Dropbox.\n * Route attributes:\n * scope: files.content.read\n * @function Dropbox#filesDownload\n * @arg {FilesDownloadArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesDownload = function (arg) {\n return this.request('files/download', arg, 'user', 'content', 'download', 'files.content.read');\n};\n\n/**\n * Download a folder from the user's Dropbox, as a zip file. The folder must be\n * less than 20 GB in size and any single file within must be less than 4 GB in\n * size. The resulting zip must have fewer than 10,000 total file and folder\n * entries, including the top level folder. The input cannot be a single file.\n * Note: this endpoint does not support HTTP range requests.\n * Route attributes:\n * scope: files.content.read\n * @function Dropbox#filesDownloadZip\n * @arg {FilesDownloadZipArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesDownloadZip = function (arg) {\n return this.request('files/download_zip', arg, 'user', 'content', 'download', 'files.content.read');\n};\n\n/**\n * Export a file from a user's Dropbox. This route only supports exporting files\n * that cannot be downloaded directly and whose ExportResult.file_metadata has\n * ExportInfo.export_as populated.\n * Route attributes:\n * scope: files.content.read\n * @function Dropbox#filesExport\n * @arg {FilesExportArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesExport = function (arg) {\n return this.request('files/export', arg, 'user', 'content', 'download', 'files.content.read');\n};\n\n/**\n * Return the lock metadata for the given list of paths.\n * Route attributes:\n * scope: files.content.read\n * @function Dropbox#filesGetFileLockBatch\n * @arg {FilesLockFileBatchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesGetFileLockBatch = function (arg) {\n return this.request('files/get_file_lock_batch', arg, 'user', 'api', 'rpc', 'files.content.read');\n};\n\n/**\n * Returns the metadata for a file or folder. Note: Metadata for the root folder\n * is unsupported.\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#filesGetMetadata\n * @arg {FilesGetMetadataArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesGetMetadata = function (arg) {\n return this.request('files/get_metadata', arg, 'user', 'api', 'rpc', 'files.metadata.read');\n};\n\n/**\n * Get a preview for a file. Currently, PDF previews are generated for files\n * with the following extensions: .ai, .doc, .docm, .docx, .eps, .gdoc,\n * .gslides, .odp, .odt, .pps, .ppsm, .ppsx, .ppt, .pptm, .pptx, .rtf. HTML\n * previews are generated for files with the following extensions: .csv, .ods,\n * .xls, .xlsm, .gsheet, .xlsx. Other formats will return an unsupported\n * extension error.\n * Route attributes:\n * scope: files.content.read\n * @function Dropbox#filesGetPreview\n * @arg {FilesPreviewArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesGetPreview = function (arg) {\n return this.request('files/get_preview', arg, 'user', 'content', 'download', 'files.content.read');\n};\n\n/**\n * Get a temporary link to stream content of a file. This link will expire in\n * four hours and afterwards you will get 410 Gone. This URL should not be used\n * to display content directly in the browser. The Content-Type of the link is\n * determined automatically by the file's mime type.\n * Route attributes:\n * scope: files.content.read\n * @function Dropbox#filesGetTemporaryLink\n * @arg {FilesGetTemporaryLinkArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesGetTemporaryLink = function (arg) {\n return this.request('files/get_temporary_link', arg, 'user', 'api', 'rpc', 'files.content.read');\n};\n\n/**\n * Get a one-time use temporary upload link to upload a file to a Dropbox\n * location. This endpoint acts as a delayed upload. The returned temporary\n * upload link may be used to make a POST request with the data to be uploaded.\n * The upload will then be perfomed with the CommitInfo previously provided to\n * get_temporary_upload_link but evaluated only upon consumption. Hence, errors\n * stemming from invalid CommitInfo with respect to the state of the user's\n * Dropbox will only be communicated at consumption time. Additionally, these\n * errors are surfaced as generic HTTP 409 Conflict responses, potentially\n * hiding issue details. The maximum temporary upload link duration is 4 hours.\n * Upon consumption or expiration, a new link will have to be generated.\n * Multiple links may exist for a specific upload path at any given time. The\n * POST request on the temporary upload link must have its Content-Type set to\n * \"application/octet-stream\". Example temporary upload link consumption\n * request: curl -X POST\n * https://content.dropboxapi.com/apitul/1/bNi2uIYF51cVBND --header\n * \"Content-Type: application/octet-stream\" --data-binary @local_file.txt A\n * successful temporary upload link consumption request returns the content hash\n * of the uploaded data in JSON format. Example successful temporary upload\n * link consumption response: {\"content-hash\":\n * \"599d71033d700ac892a0e48fa61b125d2f5994\"} An unsuccessful temporary upload\n * link consumption request returns any of the following status codes: HTTP 400\n * Bad Request: Content-Type is not one of application/octet-stream and\n * text/plain or request is invalid. HTTP 409 Conflict: The temporary upload\n * link does not exist or is currently unavailable, the upload failed, or\n * another error happened. HTTP 410 Gone: The temporary upload link is expired\n * or consumed. Example unsuccessful temporary upload link consumption\n * response: Temporary upload link has been recently consumed.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesGetTemporaryUploadLink\n * @arg {FilesGetTemporaryUploadLinkArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesGetTemporaryUploadLink = function (arg) {\n return this.request('files/get_temporary_upload_link', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Get a thumbnail for an image. This method currently supports files with the\n * following file extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp.\n * Photos that are larger than 20MB in size won't be converted to a thumbnail.\n * Route attributes:\n * scope: files.content.read\n * @function Dropbox#filesGetThumbnail\n * @arg {FilesThumbnailArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesGetThumbnail = function (arg) {\n return this.request('files/get_thumbnail', arg, 'user', 'content', 'download', 'files.content.read');\n};\n\n/**\n * Get a thumbnail for an image. This method currently supports files with the\n * following file extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp.\n * Photos that are larger than 20MB in size won't be converted to a thumbnail.\n * Route attributes:\n * scope: files.content.read\n * @function Dropbox#filesGetThumbnailV2\n * @arg {FilesThumbnailV2Arg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesGetThumbnailV2 = function (arg) {\n return this.request('files/get_thumbnail_v2', arg, 'app, user', 'content', 'download', 'files.content.read');\n};\n\n/**\n * Get thumbnails for a list of images. We allow up to 25 thumbnails in a single\n * batch. This method currently supports files with the following file\n * extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp. Photos that\n * are larger than 20MB in size won't be converted to a thumbnail.\n * Route attributes:\n * scope: files.content.read\n * @function Dropbox#filesGetThumbnailBatch\n * @arg {FilesGetThumbnailBatchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesGetThumbnailBatch = function (arg) {\n return this.request('files/get_thumbnail_batch', arg, 'user', 'content', 'rpc', 'files.content.read');\n};\n\n/**\n * Starts returning the contents of a folder. If the result's\n * ListFolderResult.has_more field is true, call list_folder/continue with the\n * returned ListFolderResult.cursor to retrieve more entries. If you're using\n * ListFolderArg.recursive set to true to keep a local cache of the contents of\n * a Dropbox account, iterate through each entry in order and process them as\n * follows to keep your local state in sync: For each FileMetadata, store the\n * new entry at the given path in your local state. If the required parent\n * folders don't exist yet, create them. If there's already something else at\n * the given path, replace it and remove all its children. For each\n * FolderMetadata, store the new entry at the given path in your local state. If\n * the required parent folders don't exist yet, create them. If there's already\n * something else at the given path, replace it but leave the children as they\n * are. Check the new entry's FolderSharingInfo.read_only and set all its\n * children's read-only statuses to match. For each DeletedMetadata, if your\n * local state has something at the given path, remove it and all its children.\n * If there's nothing at the given path, ignore this entry. Note:\n * auth.RateLimitError may be returned if multiple list_folder or\n * list_folder/continue calls with same parameters are made simultaneously by\n * same API app for same user. If your app implements retry logic, please hold\n * off the retry until the previous request finishes.\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#filesListFolder\n * @arg {FilesListFolderArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesListFolder = function (arg) {\n return this.request('files/list_folder', arg, 'app, user', 'api', 'rpc', 'files.metadata.read');\n};\n\n/**\n * Once a cursor has been retrieved from list_folder, use this to paginate\n * through all files and retrieve updates to the folder, following the same\n * rules as documented for list_folder.\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#filesListFolderContinue\n * @arg {FilesListFolderContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesListFolderContinue = function (arg) {\n return this.request('files/list_folder/continue', arg, 'app, user', 'api', 'rpc', 'files.metadata.read');\n};\n\n/**\n * A way to quickly get a cursor for the folder's state. Unlike list_folder,\n * list_folder/get_latest_cursor doesn't return any entries. This endpoint is\n * for app which only needs to know about new files and modifications and\n * doesn't need to know about files that already exist in Dropbox.\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#filesListFolderGetLatestCursor\n * @arg {FilesListFolderArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesListFolderGetLatestCursor = function (arg) {\n return this.request('files/list_folder/get_latest_cursor', arg, 'user', 'api', 'rpc', 'files.metadata.read');\n};\n\n/**\n * A longpoll endpoint to wait for changes on an account. In conjunction with\n * list_folder/continue, this call gives you a low-latency way to monitor an\n * account for file changes. The connection will block until there are changes\n * available or a timeout occurs. This endpoint is useful mostly for client-side\n * apps. If you're looking for server-side notifications, check out our webhooks\n * documentation https://www.dropbox.com/developers/reference/webhooks.\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#filesListFolderLongpoll\n * @arg {FilesListFolderLongpollArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesListFolderLongpoll = function (arg) {\n return this.request('files/list_folder/longpoll', arg, 'noauth', 'notify', 'rpc', 'files.metadata.read');\n};\n\n/**\n * Returns revisions for files based on a file path or a file id. The file path\n * or file id is identified from the latest file entry at the given file path or\n * id. This end point allows your app to query either by file path or file id by\n * setting the mode parameter appropriately. In the ListRevisionsMode.path\n * (default) mode, all revisions at the same file path as the latest file entry\n * are returned. If revisions with the same file id are desired, then mode must\n * be set to ListRevisionsMode.id. The ListRevisionsMode.id mode is useful to\n * retrieve revisions for a given file across moves or renames.\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#filesListRevisions\n * @arg {FilesListRevisionsArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesListRevisions = function (arg) {\n return this.request('files/list_revisions', arg, 'user', 'api', 'rpc', 'files.metadata.read');\n};\n\n/**\n * Lock the files at the given paths. A locked file will be writable only by the\n * lock holder. A successful response indicates that the file has been locked.\n * Returns a list of the locked file paths and their metadata after this\n * operation.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesLockFileBatch\n * @arg {FilesLockFileBatchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesLockFileBatch = function (arg) {\n return this.request('files/lock_file_batch', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Move a file or folder to a different location in the user's Dropbox. If the\n * source path is a folder all its contents will be moved. Note that we do not\n * currently support case-only renaming.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesMoveV2\n * @arg {FilesRelocationArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesMoveV2 = function (arg) {\n return this.request('files/move_v2', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Move a file or folder to a different location in the user's Dropbox. If the\n * source path is a folder all its contents will be moved.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesMove\n * @deprecated\n * @arg {FilesRelocationArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesMove = function (arg) {\n return this.request('files/move', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Move multiple files or folders to different locations at once in the user's\n * Dropbox. Note that we do not currently support case-only renaming. This route\n * will replace move_batch. The main difference is this route will return status\n * for each entry, while move_batch raises failure if any entry fails. This\n * route will either finish synchronously, or return a job ID and do the async\n * move job in background. Please use move_batch/check_v2 to check the job\n * status.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesMoveBatchV2\n * @arg {FilesMoveBatchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesMoveBatchV2 = function (arg) {\n return this.request('files/move_batch_v2', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Move multiple files or folders to different locations at once in the user's\n * Dropbox. This route will return job ID immediately and do the async moving\n * job in background. Please use move_batch/check to check the job status.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesMoveBatch\n * @deprecated\n * @arg {FilesRelocationBatchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesMoveBatch = function (arg) {\n return this.request('files/move_batch', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Returns the status of an asynchronous job for move_batch_v2. It returns list\n * of results for each entry.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesMoveBatchCheckV2\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesMoveBatchCheckV2 = function (arg) {\n return this.request('files/move_batch/check_v2', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Returns the status of an asynchronous job for move_batch. If success, it\n * returns list of results for each entry.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesMoveBatchCheck\n * @deprecated\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesMoveBatchCheck = function (arg) {\n return this.request('files/move_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Creates a new Paper doc with the provided content.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesPaperCreate\n * @arg {FilesPaperCreateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesPaperCreate = function (arg) {\n return this.request('files/paper/create', arg, 'user', 'api', 'upload', 'files.content.write');\n};\n\n/**\n * Updates an existing Paper doc with the provided content.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesPaperUpdate\n * @arg {FilesPaperUpdateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesPaperUpdate = function (arg) {\n return this.request('files/paper/update', arg, 'user', 'api', 'upload', 'files.content.write');\n};\n\n/**\n * Permanently delete the file or folder at a given path (see\n * https://www.dropbox.com/en/help/40). If the given file or folder is not yet\n * deleted, this route will first delete it. It is possible for this route to\n * successfully delete, then fail to permanently delete. Note: This endpoint is\n * only available for Dropbox Business apps.\n * Route attributes:\n * scope: files.permanent_delete\n * @function Dropbox#filesPermanentlyDelete\n * @arg {FilesDeleteArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesPermanentlyDelete = function (arg) {\n return this.request('files/permanently_delete', arg, 'user', 'api', 'rpc', 'files.permanent_delete');\n};\n\n/**\n * Route attributes:\n * scope: files.metadata.write\n * @function Dropbox#filesPropertiesAdd\n * @deprecated\n * @arg {FilePropertiesAddPropertiesArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesPropertiesAdd = function (arg) {\n return this.request('files/properties/add', arg, 'user', 'api', 'rpc', 'files.metadata.write');\n};\n\n/**\n * Route attributes:\n * scope: files.metadata.write\n * @function Dropbox#filesPropertiesOverwrite\n * @deprecated\n * @arg {FilePropertiesOverwritePropertyGroupArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesPropertiesOverwrite = function (arg) {\n return this.request('files/properties/overwrite', arg, 'user', 'api', 'rpc', 'files.metadata.write');\n};\n\n/**\n * Route attributes:\n * scope: files.metadata.write\n * @function Dropbox#filesPropertiesRemove\n * @deprecated\n * @arg {FilePropertiesRemovePropertiesArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesPropertiesRemove = function (arg) {\n return this.request('files/properties/remove', arg, 'user', 'api', 'rpc', 'files.metadata.write');\n};\n\n/**\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#filesPropertiesTemplateGet\n * @deprecated\n * @arg {FilePropertiesGetTemplateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesPropertiesTemplateGet = function (arg) {\n return this.request('files/properties/template/get', arg, 'user', 'api', 'rpc', 'files.metadata.read');\n};\n\n/**\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#filesPropertiesTemplateList\n * @deprecated\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesPropertiesTemplateList = function () {\n return this.request('files/properties/template/list', null, 'user', 'api', 'rpc', 'files.metadata.read');\n};\n\n/**\n * Route attributes:\n * scope: files.metadata.write\n * @function Dropbox#filesPropertiesUpdate\n * @deprecated\n * @arg {FilePropertiesUpdatePropertiesArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesPropertiesUpdate = function (arg) {\n return this.request('files/properties/update', arg, 'user', 'api', 'rpc', 'files.metadata.write');\n};\n\n/**\n * Restore a specific revision of a file to the given path.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesRestore\n * @arg {FilesRestoreArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesRestore = function (arg) {\n return this.request('files/restore', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Save the data from a specified URL into a file in user's Dropbox. Note that\n * the transfer from the URL must complete within 5 minutes, or the operation\n * will time out and the job will fail. If the given path already exists, the\n * file will be renamed to avoid the conflict (e.g. myfile (1).txt).\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesSaveUrl\n * @arg {FilesSaveUrlArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesSaveUrl = function (arg) {\n return this.request('files/save_url', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Check the status of a save_url job.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesSaveUrlCheckJobStatus\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesSaveUrlCheckJobStatus = function (arg) {\n return this.request('files/save_url/check_job_status', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Searches for files and folders. Note: Recent changes will be reflected in\n * search results within a few seconds and older revisions of existing files may\n * still match your query for up to a few days.\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#filesSearch\n * @deprecated\n * @arg {FilesSearchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesSearch = function (arg) {\n return this.request('files/search', arg, 'user', 'api', 'rpc', 'files.metadata.read');\n};\n\n/**\n * Searches for files and folders. Note: search_v2 along with search/continue_v2\n * can only be used to retrieve a maximum of 10,000 matches. Recent changes may\n * not immediately be reflected in search results due to a short delay in\n * indexing. Duplicate results may be returned across pages. Some results may\n * not be returned.\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#filesSearchV2\n * @arg {FilesSearchV2Arg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesSearchV2 = function (arg) {\n return this.request('files/search_v2', arg, 'user', 'api', 'rpc', 'files.metadata.read');\n};\n\n/**\n * Fetches the next page of search results returned from search_v2. Note:\n * search_v2 along with search/continue_v2 can only be used to retrieve a\n * maximum of 10,000 matches. Recent changes may not immediately be reflected in\n * search results due to a short delay in indexing. Duplicate results may be\n * returned across pages. Some results may not be returned.\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#filesSearchContinueV2\n * @arg {FilesSearchV2ContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesSearchContinueV2 = function (arg) {\n return this.request('files/search/continue_v2', arg, 'user', 'api', 'rpc', 'files.metadata.read');\n};\n\n/**\n * Add a tag to an item. A tag is a string. The strings are automatically\n * converted to lowercase letters. No more than 20 tags can be added to a given\n * item.\n * Route attributes:\n * scope: files.metadata.write\n * @function Dropbox#filesTagsAdd\n * @arg {FilesAddTagArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesTagsAdd = function (arg) {\n return this.request('files/tags/add', arg, 'user', 'api', 'rpc', 'files.metadata.write');\n};\n\n/**\n * Get list of tags assigned to items.\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#filesTagsGet\n * @arg {FilesGetTagsArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesTagsGet = function (arg) {\n return this.request('files/tags/get', arg, 'user', 'api', 'rpc', 'files.metadata.read');\n};\n\n/**\n * Remove a tag from an item.\n * Route attributes:\n * scope: files.metadata.write\n * @function Dropbox#filesTagsRemove\n * @arg {FilesRemoveTagArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesTagsRemove = function (arg) {\n return this.request('files/tags/remove', arg, 'user', 'api', 'rpc', 'files.metadata.write');\n};\n\n/**\n * Unlock the files at the given paths. A locked file can only be unlocked by\n * the lock holder or, if a business account, a team admin. A successful\n * response indicates that the file has been unlocked. Returns a list of the\n * unlocked file paths and their metadata after this operation.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesUnlockFileBatch\n * @arg {FilesUnlockFileBatchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesUnlockFileBatch = function (arg) {\n return this.request('files/unlock_file_batch', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Create a new file with the contents provided in the request. Do not use this\n * to upload a file larger than 150 MB. Instead, create an upload session with\n * upload_session/start. Calls to this endpoint will count as data transport\n * calls for any Dropbox Business teams with a limit on the number of data\n * transport calls allowed per month. For more information, see the Data\n * transport limit page\n * https://www.dropbox.com/developers/reference/data-transport-limit.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesUpload\n * @arg {FilesUploadArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesUpload = function (arg) {\n return this.request('files/upload', arg, 'user', 'content', 'upload', 'files.content.write');\n};\n\n/**\n * Append more data to an upload session. When the parameter close is set, this\n * call will close the session. A single request should not upload more than 150\n * MB. The maximum size of a file one can upload to an upload session is 350 GB.\n * Calls to this endpoint will count as data transport calls for any Dropbox\n * Business teams with a limit on the number of data transport calls allowed per\n * month. For more information, see the Data transport limit page\n * https://www.dropbox.com/developers/reference/data-transport-limit.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesUploadSessionAppendV2\n * @arg {FilesUploadSessionAppendArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesUploadSessionAppendV2 = function (arg) {\n return this.request('files/upload_session/append_v2', arg, 'user', 'content', 'upload', 'files.content.write');\n};\n\n/**\n * Append more data to an upload session. A single request should not upload\n * more than 150 MB. The maximum size of a file one can upload to an upload\n * session is 350 GB. Calls to this endpoint will count as data transport calls\n * for any Dropbox Business teams with a limit on the number of data transport\n * calls allowed per month. For more information, see the Data transport limit\n * page https://www.dropbox.com/developers/reference/data-transport-limit.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesUploadSessionAppend\n * @deprecated\n * @arg {FilesUploadSessionCursor} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesUploadSessionAppend = function (arg) {\n return this.request('files/upload_session/append', arg, 'user', 'content', 'upload', 'files.content.write');\n};\n\n/**\n * Finish an upload session and save the uploaded data to the given file path. A\n * single request should not upload more than 150 MB. The maximum size of a file\n * one can upload to an upload session is 350 GB. Calls to this endpoint will\n * count as data transport calls for any Dropbox Business teams with a limit on\n * the number of data transport calls allowed per month. For more information,\n * see the Data transport limit page\n * https://www.dropbox.com/developers/reference/data-transport-limit.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesUploadSessionFinish\n * @arg {FilesUploadSessionFinishArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesUploadSessionFinish = function (arg) {\n return this.request('files/upload_session/finish', arg, 'user', 'content', 'upload', 'files.content.write');\n};\n\n/**\n * This route helps you commit many files at once into a user's Dropbox. Use\n * upload_session/start and upload_session/append_v2 to upload file contents. We\n * recommend uploading many files in parallel to increase throughput. Once the\n * file contents have been uploaded, rather than calling upload_session/finish,\n * use this route to finish all your upload sessions in a single request.\n * UploadSessionStartArg.close or UploadSessionAppendArg.close needs to be true\n * for the last upload_session/start or upload_session/append_v2 call. The\n * maximum size of a file one can upload to an upload session is 350 GB. This\n * route will return a job_id immediately and do the async commit job in\n * background. Use upload_session/finish_batch/check to check the job status.\n * For the same account, this route should be executed serially. That means you\n * should not start the next job before current job finishes. We allow up to\n * 1000 entries in a single request. Calls to this endpoint will count as data\n * transport calls for any Dropbox Business teams with a limit on the number of\n * data transport calls allowed per month. For more information, see the Data\n * transport limit page\n * https://www.dropbox.com/developers/reference/data-transport-limit.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesUploadSessionFinishBatch\n * @deprecated\n * @arg {FilesUploadSessionFinishBatchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesUploadSessionFinishBatch = function (arg) {\n return this.request('files/upload_session/finish_batch', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * This route helps you commit many files at once into a user's Dropbox. Use\n * upload_session/start and upload_session/append_v2 to upload file contents. We\n * recommend uploading many files in parallel to increase throughput. Once the\n * file contents have been uploaded, rather than calling upload_session/finish,\n * use this route to finish all your upload sessions in a single request.\n * UploadSessionStartArg.close or UploadSessionAppendArg.close needs to be true\n * for the last upload_session/start or upload_session/append_v2 call of each\n * upload session. The maximum size of a file one can upload to an upload\n * session is 350 GB. We allow up to 1000 entries in a single request. Calls to\n * this endpoint will count as data transport calls for any Dropbox Business\n * teams with a limit on the number of data transport calls allowed per month.\n * For more information, see the Data transport limit page\n * https://www.dropbox.com/developers/reference/data-transport-limit.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesUploadSessionFinishBatchV2\n * @arg {FilesUploadSessionFinishBatchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesUploadSessionFinishBatchV2 = function (arg) {\n return this.request('files/upload_session/finish_batch_v2', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Returns the status of an asynchronous job for upload_session/finish_batch. If\n * success, it returns list of result for each entry.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesUploadSessionFinishBatchCheck\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesUploadSessionFinishBatchCheck = function (arg) {\n return this.request('files/upload_session/finish_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Upload sessions allow you to upload a single file in one or more requests,\n * for example where the size of the file is greater than 150 MB. This call\n * starts a new upload session with the given data. You can then use\n * upload_session/append_v2 to add more data and upload_session/finish to save\n * all the data to a file in Dropbox. A single request should not upload more\n * than 150 MB. The maximum size of a file one can upload to an upload session\n * is 350 GB. An upload session can be used for a maximum of 7 days. Attempting\n * to use an UploadSessionStartResult.session_id with upload_session/append_v2\n * or upload_session/finish more than 7 days after its creation will return a\n * UploadSessionLookupError.not_found. Calls to this endpoint will count as data\n * transport calls for any Dropbox Business teams with a limit on the number of\n * data transport calls allowed per month. For more information, see the Data\n * transport limit page\n * https://www.dropbox.com/developers/reference/data-transport-limit. By\n * default, upload sessions require you to send content of the file in\n * sequential order via consecutive upload_session/start,\n * upload_session/append_v2, upload_session/finish calls. For better\n * performance, you can instead optionally use a UploadSessionType.concurrent\n * upload session. To start a new concurrent session, set\n * UploadSessionStartArg.session_type to UploadSessionType.concurrent. After\n * that, you can send file data in concurrent upload_session/append_v2 requests.\n * Finally finish the session with upload_session/finish. There are couple of\n * constraints with concurrent sessions to make them work. You can not send data\n * with upload_session/start or upload_session/finish call, only with\n * upload_session/append_v2 call. Also data uploaded in upload_session/append_v2\n * call must be multiple of 4194304 bytes (except for last\n * upload_session/append_v2 with UploadSessionStartArg.close to true, that may\n * contain any remaining data).\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesUploadSessionStart\n * @arg {FilesUploadSessionStartArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesUploadSessionStart = function (arg) {\n return this.request('files/upload_session/start', arg, 'user', 'content', 'upload', 'files.content.write');\n};\n\n/**\n * This route starts batch of upload_sessions. Please refer to\n * `upload_session/start` usage. Calls to this endpoint will count as data\n * transport calls for any Dropbox Business teams with a limit on the number of\n * data transport calls allowed per month. For more information, see the Data\n * transport limit page\n * https://www.dropbox.com/developers/reference/data-transport-limit.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#filesUploadSessionStartBatch\n * @arg {FilesUploadSessionStartBatchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.filesUploadSessionStartBatch = function (arg) {\n return this.request('files/upload_session/start_batch', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * This route is used for refreshing the info that is found in the id_token\n * during the OIDC flow. This route doesn't require any arguments and will use\n * the scopes approved for the given access token.\n * Route attributes:\n * scope: openid\n * @function Dropbox#openidUserinfo\n * @arg {OpenidUserInfoArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.openidUserinfo = function (arg) {\n return this.request('openid/userinfo', arg, 'user', 'api', 'rpc', 'openid');\n};\n\n/**\n * Marks the given Paper doc as archived. This action can be performed or undone\n * by anyone with edit permissions to the doc. Note that this endpoint will\n * continue to work for content created by users on the older version of Paper.\n * To check which version of Paper a user is on, use /users/features/get_values.\n * If the paper_as_files feature is enabled, then the user is running the new\n * version of Paper. This endpoint will be retired in September 2020. Refer to\n * the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * more information.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#paperDocsArchive\n * @deprecated\n * @arg {PaperRefPaperDoc} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.paperDocsArchive = function (arg) {\n return this.request('paper/docs/archive', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Creates a new Paper doc with the provided content. Note that this endpoint\n * will continue to work for content created by users on the older version of\n * Paper. To check which version of Paper a user is on, use\n * /users/features/get_values. If the paper_as_files feature is enabled, then\n * the user is running the new version of Paper. This endpoint will be retired\n * in September 2020. Refer to the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * more information.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#paperDocsCreate\n * @deprecated\n * @arg {PaperPaperDocCreateArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.paperDocsCreate = function (arg) {\n return this.request('paper/docs/create', arg, 'user', 'api', 'upload', 'files.content.write');\n};\n\n/**\n * Exports and downloads Paper doc either as HTML or markdown. Note that this\n * endpoint will continue to work for content created by users on the older\n * version of Paper. To check which version of Paper a user is on, use\n * /users/features/get_values. If the paper_as_files feature is enabled, then\n * the user is running the new version of Paper. Refer to the Paper Migration\n * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide\n * for migration information.\n * Route attributes:\n * scope: files.content.read\n * @function Dropbox#paperDocsDownload\n * @deprecated\n * @arg {PaperPaperDocExport} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.paperDocsDownload = function (arg) {\n return this.request('paper/docs/download', arg, 'user', 'api', 'download', 'files.content.read');\n};\n\n/**\n * Lists the users who are explicitly invited to the Paper folder in which the\n * Paper doc is contained. For private folders all users (including owner)\n * shared on the folder are listed and for team folders all non-team users\n * shared on the folder are returned. Note that this endpoint will continue to\n * work for content created by users on the older version of Paper. To check\n * which version of Paper a user is on, use /users/features/get_values. If the\n * paper_as_files feature is enabled, then the user is running the new version\n * of Paper. Refer to the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * migration information.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#paperDocsFolderUsersList\n * @deprecated\n * @arg {PaperListUsersOnFolderArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.paperDocsFolderUsersList = function (arg) {\n return this.request('paper/docs/folder_users/list', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Once a cursor has been retrieved from docs/folder_users/list, use this to\n * paginate through all users on the Paper folder. Note that this endpoint will\n * continue to work for content created by users on the older version of Paper.\n * To check which version of Paper a user is on, use /users/features/get_values.\n * If the paper_as_files feature is enabled, then the user is running the new\n * version of Paper. Refer to the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * migration information.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#paperDocsFolderUsersListContinue\n * @deprecated\n * @arg {PaperListUsersOnFolderContinueArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.paperDocsFolderUsersListContinue = function (arg) {\n return this.request('paper/docs/folder_users/list/continue', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Retrieves folder information for the given Paper doc. This includes: -\n * folder sharing policy; permissions for subfolders are set by the top-level\n * folder. - full 'filepath', i.e. the list of folders (both folderId and\n * folderName) from the root folder to the folder directly containing the\n * Paper doc. If the Paper doc is not in any folder (aka unfiled) the response\n * will be empty. Note that this endpoint will continue to work for content\n * created by users on the older version of Paper. To check which version of\n * Paper a user is on, use /users/features/get_values. If the paper_as_files\n * feature is enabled, then the user is running the new version of Paper. Refer\n * to the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * migration information.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#paperDocsGetFolderInfo\n * @deprecated\n * @arg {PaperRefPaperDoc} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.paperDocsGetFolderInfo = function (arg) {\n return this.request('paper/docs/get_folder_info', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Return the list of all Paper docs according to the argument specifications.\n * To iterate over through the full pagination, pass the cursor to\n * docs/list/continue. Note that this endpoint will continue to work for content\n * created by users on the older version of Paper. To check which version of\n * Paper a user is on, use /users/features/get_values. If the paper_as_files\n * feature is enabled, then the user is running the new version of Paper. Refer\n * to the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * migration information.\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#paperDocsList\n * @deprecated\n * @arg {PaperListPaperDocsArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.paperDocsList = function (arg) {\n return this.request('paper/docs/list', arg, 'user', 'api', 'rpc', 'files.metadata.read');\n};\n\n/**\n * Once a cursor has been retrieved from docs/list, use this to paginate through\n * all Paper doc. Note that this endpoint will continue to work for content\n * created by users on the older version of Paper. To check which version of\n * Paper a user is on, use /users/features/get_values. If the paper_as_files\n * feature is enabled, then the user is running the new version of Paper. Refer\n * to the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * migration information.\n * Route attributes:\n * scope: files.metadata.read\n * @function Dropbox#paperDocsListContinue\n * @deprecated\n * @arg {PaperListPaperDocsContinueArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.paperDocsListContinue = function (arg) {\n return this.request('paper/docs/list/continue', arg, 'user', 'api', 'rpc', 'files.metadata.read');\n};\n\n/**\n * Permanently deletes the given Paper doc. This operation is final as the doc\n * cannot be recovered. This action can be performed only by the doc owner. Note\n * that this endpoint will continue to work for content created by users on the\n * older version of Paper. To check which version of Paper a user is on, use\n * /users/features/get_values. If the paper_as_files feature is enabled, then\n * the user is running the new version of Paper. Refer to the Paper Migration\n * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide\n * for migration information.\n * Route attributes:\n * scope: files.permanent_delete\n * @function Dropbox#paperDocsPermanentlyDelete\n * @deprecated\n * @arg {PaperRefPaperDoc} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.paperDocsPermanentlyDelete = function (arg) {\n return this.request('paper/docs/permanently_delete', arg, 'user', 'api', 'rpc', 'files.permanent_delete');\n};\n\n/**\n * Gets the default sharing policy for the given Paper doc. Note that this\n * endpoint will continue to work for content created by users on the older\n * version of Paper. To check which version of Paper a user is on, use\n * /users/features/get_values. If the paper_as_files feature is enabled, then\n * the user is running the new version of Paper. Refer to the Paper Migration\n * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide\n * for migration information.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#paperDocsSharingPolicyGet\n * @deprecated\n * @arg {PaperRefPaperDoc} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.paperDocsSharingPolicyGet = function (arg) {\n return this.request('paper/docs/sharing_policy/get', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Sets the default sharing policy for the given Paper doc. The default\n * 'team_sharing_policy' can be changed only by teams, omit this field for\n * personal accounts. The 'public_sharing_policy' policy can't be set to the\n * value 'disabled' because this setting can be changed only via the team admin\n * console. Note that this endpoint will continue to work for content created by\n * users on the older version of Paper. To check which version of Paper a user\n * is on, use /users/features/get_values. If the paper_as_files feature is\n * enabled, then the user is running the new version of Paper. Refer to the\n * Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * migration information.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#paperDocsSharingPolicySet\n * @deprecated\n * @arg {PaperPaperDocSharingPolicy} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.paperDocsSharingPolicySet = function (arg) {\n return this.request('paper/docs/sharing_policy/set', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Updates an existing Paper doc with the provided content. Note that this\n * endpoint will continue to work for content created by users on the older\n * version of Paper. To check which version of Paper a user is on, use\n * /users/features/get_values. If the paper_as_files feature is enabled, then\n * the user is running the new version of Paper. This endpoint will be retired\n * in September 2020. Refer to the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * more information.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#paperDocsUpdate\n * @deprecated\n * @arg {PaperPaperDocUpdateArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.paperDocsUpdate = function (arg) {\n return this.request('paper/docs/update', arg, 'user', 'api', 'upload', 'files.content.write');\n};\n\n/**\n * Allows an owner or editor to add users to a Paper doc or change their\n * permissions using their email address or Dropbox account ID. The doc owner's\n * permissions cannot be changed. Note that this endpoint will continue to work\n * for content created by users on the older version of Paper. To check which\n * version of Paper a user is on, use /users/features/get_values. If the\n * paper_as_files feature is enabled, then the user is running the new version\n * of Paper. Refer to the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * migration information.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#paperDocsUsersAdd\n * @deprecated\n * @arg {PaperAddPaperDocUser} arg - The request parameters.\n * @returns {Promise.>, DropboxResponseError.>}\n */\nroutes.paperDocsUsersAdd = function (arg) {\n return this.request('paper/docs/users/add', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Lists all users who visited the Paper doc or users with explicit access. This\n * call excludes users who have been removed. The list is sorted by the date of\n * the visit or the share date. The list will include both users, the explicitly\n * shared ones as well as those who came in using the Paper url link. Note that\n * this endpoint will continue to work for content created by users on the older\n * version of Paper. To check which version of Paper a user is on, use\n * /users/features/get_values. If the paper_as_files feature is enabled, then\n * the user is running the new version of Paper. Refer to the Paper Migration\n * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide\n * for migration information.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#paperDocsUsersList\n * @deprecated\n * @arg {PaperListUsersOnPaperDocArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.paperDocsUsersList = function (arg) {\n return this.request('paper/docs/users/list', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Once a cursor has been retrieved from docs/users/list, use this to paginate\n * through all users on the Paper doc. Note that this endpoint will continue to\n * work for content created by users on the older version of Paper. To check\n * which version of Paper a user is on, use /users/features/get_values. If the\n * paper_as_files feature is enabled, then the user is running the new version\n * of Paper. Refer to the Paper Migration Guide\n * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for\n * migration information.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#paperDocsUsersListContinue\n * @deprecated\n * @arg {PaperListUsersOnPaperDocContinueArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.paperDocsUsersListContinue = function (arg) {\n return this.request('paper/docs/users/list/continue', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Allows an owner or editor to remove users from a Paper doc using their email\n * address or Dropbox account ID. The doc owner cannot be removed. Note that\n * this endpoint will continue to work for content created by users on the older\n * version of Paper. To check which version of Paper a user is on, use\n * /users/features/get_values. If the paper_as_files feature is enabled, then\n * the user is running the new version of Paper. Refer to the Paper Migration\n * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide\n * for migration information.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#paperDocsUsersRemove\n * @deprecated\n * @arg {PaperRemovePaperDocUser} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.paperDocsUsersRemove = function (arg) {\n return this.request('paper/docs/users/remove', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Create a new Paper folder with the provided info. Note that this endpoint\n * will continue to work for content created by users on the older version of\n * Paper. To check which version of Paper a user is on, use\n * /users/features/get_values. If the paper_as_files feature is enabled, then\n * the user is running the new version of Paper. Refer to the Paper Migration\n * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide\n * for migration information.\n * Route attributes:\n * scope: files.content.write\n * @function Dropbox#paperFoldersCreate\n * @deprecated\n * @arg {PaperPaperFolderCreateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.paperFoldersCreate = function (arg) {\n return this.request('paper/folders/create', arg, 'user', 'api', 'rpc', 'files.content.write');\n};\n\n/**\n * Adds specified members to a file.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingAddFileMember\n * @arg {SharingAddFileMemberArgs} arg - The request parameters.\n * @returns {Promise.>, DropboxResponseError.>}\n */\nroutes.sharingAddFileMember = function (arg) {\n return this.request('sharing/add_file_member', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Allows an owner or editor (if the ACL update policy allows) of a shared\n * folder to add another member. For the new member to get access to all the\n * functionality for this folder, you will need to call mount_folder on their\n * behalf.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingAddFolderMember\n * @arg {SharingAddFolderMemberArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingAddFolderMember = function (arg) {\n return this.request('sharing/add_folder_member', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Returns the status of an asynchronous job.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingCheckJobStatus\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingCheckJobStatus = function (arg) {\n return this.request('sharing/check_job_status', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Returns the status of an asynchronous job for sharing a folder.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingCheckRemoveMemberJobStatus\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingCheckRemoveMemberJobStatus = function (arg) {\n return this.request('sharing/check_remove_member_job_status', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Returns the status of an asynchronous job for sharing a folder.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingCheckShareJobStatus\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingCheckShareJobStatus = function (arg) {\n return this.request('sharing/check_share_job_status', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Create a shared link. If a shared link already exists for the given path,\n * that link is returned. Previously, it was technically possible to break a\n * shared link by moving or renaming the corresponding file or folder. In the\n * future, this will no longer be the case, so your app shouldn't rely on this\n * behavior. Instead, if your app needs to revoke a shared link, use\n * revoke_shared_link.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingCreateSharedLink\n * @deprecated\n * @arg {SharingCreateSharedLinkArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingCreateSharedLink = function (arg) {\n return this.request('sharing/create_shared_link', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Create a shared link with custom settings. If no settings are given then the\n * default visibility is RequestedVisibility.public (The resolved visibility,\n * though, may depend on other aspects such as team and shared folder settings).\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingCreateSharedLinkWithSettings\n * @arg {SharingCreateSharedLinkWithSettingsArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingCreateSharedLinkWithSettings = function (arg) {\n return this.request('sharing/create_shared_link_with_settings', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Returns shared file metadata.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#sharingGetFileMetadata\n * @arg {SharingGetFileMetadataArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingGetFileMetadata = function (arg) {\n return this.request('sharing/get_file_metadata', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Returns shared file metadata.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#sharingGetFileMetadataBatch\n * @arg {SharingGetFileMetadataBatchArg} arg - The request parameters.\n * @returns {Promise.>, DropboxResponseError.>}\n */\nroutes.sharingGetFileMetadataBatch = function (arg) {\n return this.request('sharing/get_file_metadata/batch', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Returns shared folder metadata by its folder ID.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#sharingGetFolderMetadata\n * @arg {SharingGetMetadataArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingGetFolderMetadata = function (arg) {\n return this.request('sharing/get_folder_metadata', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Download the shared link's file from a user's Dropbox.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#sharingGetSharedLinkFile\n * @arg {Object} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingGetSharedLinkFile = function (arg) {\n return this.request('sharing/get_shared_link_file', arg, 'user', 'content', 'download', 'sharing.read');\n};\n\n/**\n * Get the shared link's metadata.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#sharingGetSharedLinkMetadata\n * @arg {SharingGetSharedLinkMetadataArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingGetSharedLinkMetadata = function (arg) {\n return this.request('sharing/get_shared_link_metadata', arg, 'app, user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Returns a list of LinkMetadata objects for this user, including collection\n * links. If no path is given, returns a list of all shared links for the\n * current user, including collection links, up to a maximum of 1000 links. If a\n * non-empty path is given, returns a list of all shared links that allow access\n * to the given path. Collection links are never returned in this case.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#sharingGetSharedLinks\n * @deprecated\n * @arg {SharingGetSharedLinksArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingGetSharedLinks = function (arg) {\n return this.request('sharing/get_shared_links', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Use to obtain the members who have been invited to a file, both inherited and\n * uninherited members.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#sharingListFileMembers\n * @arg {SharingListFileMembersArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingListFileMembers = function (arg) {\n return this.request('sharing/list_file_members', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Get members of multiple files at once. The arguments to this route are more\n * limited, and the limit on query result size per file is more strict. To\n * customize the results more, use the individual file endpoint. Inherited users\n * and groups are not included in the result, and permissions are not returned\n * for this endpoint.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#sharingListFileMembersBatch\n * @arg {SharingListFileMembersBatchArg} arg - The request parameters.\n * @returns {Promise.>, DropboxResponseError.>}\n */\nroutes.sharingListFileMembersBatch = function (arg) {\n return this.request('sharing/list_file_members/batch', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Once a cursor has been retrieved from list_file_members or\n * list_file_members/batch, use this to paginate through all shared file\n * members.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#sharingListFileMembersContinue\n * @arg {SharingListFileMembersContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingListFileMembersContinue = function (arg) {\n return this.request('sharing/list_file_members/continue', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Returns shared folder membership by its folder ID.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#sharingListFolderMembers\n * @arg {SharingListFolderMembersArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingListFolderMembers = function (arg) {\n return this.request('sharing/list_folder_members', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Once a cursor has been retrieved from list_folder_members, use this to\n * paginate through all shared folder members.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#sharingListFolderMembersContinue\n * @arg {SharingListFolderMembersContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingListFolderMembersContinue = function (arg) {\n return this.request('sharing/list_folder_members/continue', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Return the list of all shared folders the current user has access to.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#sharingListFolders\n * @arg {SharingListFoldersArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingListFolders = function (arg) {\n return this.request('sharing/list_folders', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Once a cursor has been retrieved from list_folders, use this to paginate\n * through all shared folders. The cursor must come from a previous call to\n * list_folders or list_folders/continue.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#sharingListFoldersContinue\n * @arg {SharingListFoldersContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingListFoldersContinue = function (arg) {\n return this.request('sharing/list_folders/continue', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Return the list of all shared folders the current user can mount or unmount.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#sharingListMountableFolders\n * @arg {SharingListFoldersArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingListMountableFolders = function (arg) {\n return this.request('sharing/list_mountable_folders', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Once a cursor has been retrieved from list_mountable_folders, use this to\n * paginate through all mountable shared folders. The cursor must come from a\n * previous call to list_mountable_folders or list_mountable_folders/continue.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#sharingListMountableFoldersContinue\n * @arg {SharingListFoldersContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingListMountableFoldersContinue = function (arg) {\n return this.request('sharing/list_mountable_folders/continue', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Returns a list of all files shared with current user. Does not include files\n * the user has received via shared folders, and does not include unclaimed\n * invitations.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#sharingListReceivedFiles\n * @arg {SharingListFilesArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingListReceivedFiles = function (arg) {\n return this.request('sharing/list_received_files', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Get more results with a cursor from list_received_files.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#sharingListReceivedFilesContinue\n * @arg {SharingListFilesContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingListReceivedFilesContinue = function (arg) {\n return this.request('sharing/list_received_files/continue', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * List shared links of this user. If no path is given, returns a list of all\n * shared links for the current user. For members of business teams using team\n * space and member folders, returns all shared links in the team member's home\n * folder unless the team space ID is specified in the request header. For more\n * information, refer to the Namespace Guide\n * https://www.dropbox.com/developers/reference/namespace-guide. If a non-empty\n * path is given, returns a list of all shared links that allow access to the\n * given path - direct links to the given path and links to parent folders of\n * the given path. Links to parent folders can be suppressed by setting\n * direct_only to true.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#sharingListSharedLinks\n * @arg {SharingListSharedLinksArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingListSharedLinks = function (arg) {\n return this.request('sharing/list_shared_links', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Modify the shared link's settings. If the requested visibility conflict with\n * the shared links policy of the team or the shared folder (in case the linked\n * file is part of a shared folder) then the LinkPermissions.resolved_visibility\n * of the returned SharedLinkMetadata will reflect the actual visibility of the\n * shared link and the LinkPermissions.requested_visibility will reflect the\n * requested visibility.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingModifySharedLinkSettings\n * @arg {SharingModifySharedLinkSettingsArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingModifySharedLinkSettings = function (arg) {\n return this.request('sharing/modify_shared_link_settings', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * The current user mounts the designated folder. Mount a shared folder for a\n * user after they have been added as a member. Once mounted, the shared folder\n * will appear in their Dropbox.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingMountFolder\n * @arg {SharingMountFolderArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingMountFolder = function (arg) {\n return this.request('sharing/mount_folder', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * The current user relinquishes their membership in the designated file. Note\n * that the current user may still have inherited access to this file through\n * the parent folder.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingRelinquishFileMembership\n * @arg {SharingRelinquishFileMembershipArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingRelinquishFileMembership = function (arg) {\n return this.request('sharing/relinquish_file_membership', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * The current user relinquishes their membership in the designated shared\n * folder and will no longer have access to the folder. A folder owner cannot\n * relinquish membership in their own folder. This will run synchronously if\n * leave_a_copy is false, and asynchronously if leave_a_copy is true.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingRelinquishFolderMembership\n * @arg {SharingRelinquishFolderMembershipArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingRelinquishFolderMembership = function (arg) {\n return this.request('sharing/relinquish_folder_membership', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Identical to remove_file_member_2 but with less information returned.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingRemoveFileMember\n * @deprecated\n * @arg {SharingRemoveFileMemberArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingRemoveFileMember = function (arg) {\n return this.request('sharing/remove_file_member', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Removes a specified member from the file.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingRemoveFileMember2\n * @arg {SharingRemoveFileMemberArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingRemoveFileMember2 = function (arg) {\n return this.request('sharing/remove_file_member_2', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Allows an owner or editor (if the ACL update policy allows) of a shared\n * folder to remove another member.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingRemoveFolderMember\n * @arg {SharingRemoveFolderMemberArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingRemoveFolderMember = function (arg) {\n return this.request('sharing/remove_folder_member', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Revoke a shared link. Note that even after revoking a shared link to a file,\n * the file may be accessible if there are shared links leading to any of the\n * file parent folders. To list all shared links that enable access to a\n * specific file, you can use the list_shared_links with the file as the\n * ListSharedLinksArg.path argument.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingRevokeSharedLink\n * @arg {SharingRevokeSharedLinkArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingRevokeSharedLink = function (arg) {\n return this.request('sharing/revoke_shared_link', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Change the inheritance policy of an existing Shared Folder. Only permitted\n * for shared folders in a shared team root. If a ShareFolderLaunch.async_job_id\n * is returned, you'll need to call check_share_job_status until the action\n * completes to get the metadata for the folder.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingSetAccessInheritance\n * @arg {SharingSetAccessInheritanceArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingSetAccessInheritance = function (arg) {\n return this.request('sharing/set_access_inheritance', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Share a folder with collaborators. Most sharing will be completed\n * synchronously. Large folders will be completed asynchronously. To make\n * testing the async case repeatable, set `ShareFolderArg.force_async`. If a\n * ShareFolderLaunch.async_job_id is returned, you'll need to call\n * check_share_job_status until the action completes to get the metadata for the\n * folder.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingShareFolder\n * @arg {SharingShareFolderArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingShareFolder = function (arg) {\n return this.request('sharing/share_folder', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Transfer ownership of a shared folder to a member of the shared folder. User\n * must have AccessLevel.owner access to the shared folder to perform a\n * transfer.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingTransferFolder\n * @arg {SharingTransferFolderArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingTransferFolder = function (arg) {\n return this.request('sharing/transfer_folder', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * The current user unmounts the designated folder. They can re-mount the folder\n * at a later time using mount_folder.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingUnmountFolder\n * @arg {SharingUnmountFolderArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingUnmountFolder = function (arg) {\n return this.request('sharing/unmount_folder', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Remove all members from this file. Does not remove inherited members.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingUnshareFile\n * @arg {SharingUnshareFileArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingUnshareFile = function (arg) {\n return this.request('sharing/unshare_file', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Allows a shared folder owner to unshare the folder. You'll need to call\n * check_job_status to determine if the action has completed successfully.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingUnshareFolder\n * @arg {SharingUnshareFolderArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingUnshareFolder = function (arg) {\n return this.request('sharing/unshare_folder', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Changes a member's access on a shared file.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingUpdateFileMember\n * @arg {SharingUpdateFileMemberArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingUpdateFileMember = function (arg) {\n return this.request('sharing/update_file_member', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Allows an owner or editor of a shared folder to update another member's\n * permissions.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingUpdateFolderMember\n * @arg {SharingUpdateFolderMemberArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingUpdateFolderMember = function (arg) {\n return this.request('sharing/update_folder_member', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * Update the sharing policies for a shared folder. User must have\n * AccessLevel.owner access to the shared folder to update its policies.\n * Route attributes:\n * scope: sharing.write\n * @function Dropbox#sharingUpdateFolderPolicy\n * @arg {SharingUpdateFolderPolicyArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.sharingUpdateFolderPolicy = function (arg) {\n return this.request('sharing/update_folder_policy', arg, 'user', 'api', 'rpc', 'sharing.write');\n};\n\n/**\n * List all device sessions of a team's member.\n * Route attributes:\n * scope: sessions.list\n * @function Dropbox#teamDevicesListMemberDevices\n * @arg {TeamListMemberDevicesArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamDevicesListMemberDevices = function (arg) {\n return this.request('team/devices/list_member_devices', arg, 'team', 'api', 'rpc', 'sessions.list');\n};\n\n/**\n * List all device sessions of a team. Permission : Team member file access.\n * Route attributes:\n * scope: sessions.list\n * @function Dropbox#teamDevicesListMembersDevices\n * @arg {TeamListMembersDevicesArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamDevicesListMembersDevices = function (arg) {\n return this.request('team/devices/list_members_devices', arg, 'team', 'api', 'rpc', 'sessions.list');\n};\n\n/**\n * List all device sessions of a team. Permission : Team member file access.\n * Route attributes:\n * scope: sessions.list\n * @function Dropbox#teamDevicesListTeamDevices\n * @deprecated\n * @arg {TeamListTeamDevicesArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamDevicesListTeamDevices = function (arg) {\n return this.request('team/devices/list_team_devices', arg, 'team', 'api', 'rpc', 'sessions.list');\n};\n\n/**\n * Revoke a device session of a team's member.\n * Route attributes:\n * scope: sessions.modify\n * @function Dropbox#teamDevicesRevokeDeviceSession\n * @arg {TeamRevokeDeviceSessionArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamDevicesRevokeDeviceSession = function (arg) {\n return this.request('team/devices/revoke_device_session', arg, 'team', 'api', 'rpc', 'sessions.modify');\n};\n\n/**\n * Revoke a list of device sessions of team members.\n * Route attributes:\n * scope: sessions.modify\n * @function Dropbox#teamDevicesRevokeDeviceSessionBatch\n * @arg {TeamRevokeDeviceSessionBatchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamDevicesRevokeDeviceSessionBatch = function (arg) {\n return this.request('team/devices/revoke_device_session_batch', arg, 'team', 'api', 'rpc', 'sessions.modify');\n};\n\n/**\n * Get the values for one or more featues. This route allows you to check your\n * account's capability for what feature you can access or what value you have\n * for certain features. Permission : Team information.\n * Route attributes:\n * scope: team_info.read\n * @function Dropbox#teamFeaturesGetValues\n * @arg {TeamFeaturesGetValuesBatchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamFeaturesGetValues = function (arg) {\n return this.request('team/features/get_values', arg, 'team', 'api', 'rpc', 'team_info.read');\n};\n\n/**\n * Retrieves information about a team.\n * Route attributes:\n * scope: team_info.read\n * @function Dropbox#teamGetInfo\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamGetInfo = function () {\n return this.request('team/get_info', null, 'team', 'api', 'rpc', 'team_info.read');\n};\n\n/**\n * Creates a new, empty group, with a requested name. Permission : Team member\n * management.\n * Route attributes:\n * scope: groups.write\n * @function Dropbox#teamGroupsCreate\n * @arg {TeamGroupCreateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamGroupsCreate = function (arg) {\n return this.request('team/groups/create', arg, 'team', 'api', 'rpc', 'groups.write');\n};\n\n/**\n * Deletes a group. The group is deleted immediately. However the revoking of\n * group-owned resources may take additional time. Use the groups/job_status/get\n * to determine whether this process has completed. Permission : Team member\n * management.\n * Route attributes:\n * scope: groups.write\n * @function Dropbox#teamGroupsDelete\n * @arg {TeamGroupSelector} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamGroupsDelete = function (arg) {\n return this.request('team/groups/delete', arg, 'team', 'api', 'rpc', 'groups.write');\n};\n\n/**\n * Retrieves information about one or more groups. Note that the optional field\n * GroupFullInfo.members is not returned for system-managed groups. Permission :\n * Team Information.\n * Route attributes:\n * scope: groups.read\n * @function Dropbox#teamGroupsGetInfo\n * @arg {TeamGroupsSelector} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamGroupsGetInfo = function (arg) {\n return this.request('team/groups/get_info', arg, 'team', 'api', 'rpc', 'groups.read');\n};\n\n/**\n * Once an async_job_id is returned from groups/delete, groups/members/add , or\n * groups/members/remove use this method to poll the status of granting/revoking\n * group members' access to group-owned resources. Permission : Team member\n * management.\n * Route attributes:\n * scope: groups.write\n * @function Dropbox#teamGroupsJobStatusGet\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamGroupsJobStatusGet = function (arg) {\n return this.request('team/groups/job_status/get', arg, 'team', 'api', 'rpc', 'groups.write');\n};\n\n/**\n * Lists groups on a team. Permission : Team Information.\n * Route attributes:\n * scope: groups.read\n * @function Dropbox#teamGroupsList\n * @arg {TeamGroupsListArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamGroupsList = function (arg) {\n return this.request('team/groups/list', arg, 'team', 'api', 'rpc', 'groups.read');\n};\n\n/**\n * Once a cursor has been retrieved from groups/list, use this to paginate\n * through all groups. Permission : Team Information.\n * Route attributes:\n * scope: groups.read\n * @function Dropbox#teamGroupsListContinue\n * @arg {TeamGroupsListContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamGroupsListContinue = function (arg) {\n return this.request('team/groups/list/continue', arg, 'team', 'api', 'rpc', 'groups.read');\n};\n\n/**\n * Adds members to a group. The members are added immediately. However the\n * granting of group-owned resources may take additional time. Use the\n * groups/job_status/get to determine whether this process has completed.\n * Permission : Team member management.\n * Route attributes:\n * scope: groups.write\n * @function Dropbox#teamGroupsMembersAdd\n * @arg {TeamGroupMembersAddArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamGroupsMembersAdd = function (arg) {\n return this.request('team/groups/members/add', arg, 'team', 'api', 'rpc', 'groups.write');\n};\n\n/**\n * Lists members of a group. Permission : Team Information.\n * Route attributes:\n * scope: groups.read\n * @function Dropbox#teamGroupsMembersList\n * @arg {TeamGroupsMembersListArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamGroupsMembersList = function (arg) {\n return this.request('team/groups/members/list', arg, 'team', 'api', 'rpc', 'groups.read');\n};\n\n/**\n * Once a cursor has been retrieved from groups/members/list, use this to\n * paginate through all members of the group. Permission : Team information.\n * Route attributes:\n * scope: groups.read\n * @function Dropbox#teamGroupsMembersListContinue\n * @arg {TeamGroupsMembersListContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamGroupsMembersListContinue = function (arg) {\n return this.request('team/groups/members/list/continue', arg, 'team', 'api', 'rpc', 'groups.read');\n};\n\n/**\n * Removes members from a group. The members are removed immediately. However\n * the revoking of group-owned resources may take additional time. Use the\n * groups/job_status/get to determine whether this process has completed. This\n * method permits removing the only owner of a group, even in cases where this\n * is not possible via the web client. Permission : Team member management.\n * Route attributes:\n * scope: groups.write\n * @function Dropbox#teamGroupsMembersRemove\n * @arg {TeamGroupMembersRemoveArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamGroupsMembersRemove = function (arg) {\n return this.request('team/groups/members/remove', arg, 'team', 'api', 'rpc', 'groups.write');\n};\n\n/**\n * Sets a member's access type in a group. Permission : Team member management.\n * Route attributes:\n * scope: groups.write\n * @function Dropbox#teamGroupsMembersSetAccessType\n * @arg {TeamGroupMembersSetAccessTypeArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamGroupsMembersSetAccessType = function (arg) {\n return this.request('team/groups/members/set_access_type', arg, 'team', 'api', 'rpc', 'groups.write');\n};\n\n/**\n * Updates a group's name and/or external ID. Permission : Team member\n * management.\n * Route attributes:\n * scope: groups.write\n * @function Dropbox#teamGroupsUpdate\n * @arg {TeamGroupUpdateArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamGroupsUpdate = function (arg) {\n return this.request('team/groups/update', arg, 'team', 'api', 'rpc', 'groups.write');\n};\n\n/**\n * Creates new legal hold policy. Note: Legal Holds is a paid add-on. Not all\n * teams have the feature. Permission : Team member file access.\n * Route attributes:\n * scope: team_data.governance.write\n * @function Dropbox#teamLegalHoldsCreatePolicy\n * @arg {TeamLegalHoldsPolicyCreateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamLegalHoldsCreatePolicy = function (arg) {\n return this.request('team/legal_holds/create_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write');\n};\n\n/**\n * Gets a legal hold by Id. Note: Legal Holds is a paid add-on. Not all teams\n * have the feature. Permission : Team member file access.\n * Route attributes:\n * scope: team_data.governance.write\n * @function Dropbox#teamLegalHoldsGetPolicy\n * @arg {TeamLegalHoldsGetPolicyArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamLegalHoldsGetPolicy = function (arg) {\n return this.request('team/legal_holds/get_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write');\n};\n\n/**\n * List the file metadata that's under the hold. Note: Legal Holds is a paid\n * add-on. Not all teams have the feature. Permission : Team member file access.\n * Route attributes:\n * scope: team_data.governance.write\n * @function Dropbox#teamLegalHoldsListHeldRevisions\n * @arg {TeamLegalHoldsListHeldRevisionsArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamLegalHoldsListHeldRevisions = function (arg) {\n return this.request('team/legal_holds/list_held_revisions', arg, 'team', 'api', 'rpc', 'team_data.governance.write');\n};\n\n/**\n * Continue listing the file metadata that's under the hold. Note: Legal Holds\n * is a paid add-on. Not all teams have the feature. Permission : Team member\n * file access.\n * Route attributes:\n * scope: team_data.governance.write\n * @function Dropbox#teamLegalHoldsListHeldRevisionsContinue\n * @arg {TeamLegalHoldsListHeldRevisionsContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamLegalHoldsListHeldRevisionsContinue = function (arg) {\n return this.request('team/legal_holds/list_held_revisions_continue', arg, 'team', 'api', 'rpc', 'team_data.governance.write');\n};\n\n/**\n * Lists legal holds on a team. Note: Legal Holds is a paid add-on. Not all\n * teams have the feature. Permission : Team member file access.\n * Route attributes:\n * scope: team_data.governance.write\n * @function Dropbox#teamLegalHoldsListPolicies\n * @arg {TeamLegalHoldsListPoliciesArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamLegalHoldsListPolicies = function (arg) {\n return this.request('team/legal_holds/list_policies', arg, 'team', 'api', 'rpc', 'team_data.governance.write');\n};\n\n/**\n * Releases a legal hold by Id. Note: Legal Holds is a paid add-on. Not all\n * teams have the feature. Permission : Team member file access.\n * Route attributes:\n * scope: team_data.governance.write\n * @function Dropbox#teamLegalHoldsReleasePolicy\n * @arg {TeamLegalHoldsPolicyReleaseArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamLegalHoldsReleasePolicy = function (arg) {\n return this.request('team/legal_holds/release_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write');\n};\n\n/**\n * Updates a legal hold. Note: Legal Holds is a paid add-on. Not all teams have\n * the feature. Permission : Team member file access.\n * Route attributes:\n * scope: team_data.governance.write\n * @function Dropbox#teamLegalHoldsUpdatePolicy\n * @arg {TeamLegalHoldsPolicyUpdateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamLegalHoldsUpdatePolicy = function (arg) {\n return this.request('team/legal_holds/update_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write');\n};\n\n/**\n * List all linked applications of the team member. Note, this endpoint does not\n * list any team-linked applications.\n * Route attributes:\n * scope: sessions.list\n * @function Dropbox#teamLinkedAppsListMemberLinkedApps\n * @arg {TeamListMemberAppsArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamLinkedAppsListMemberLinkedApps = function (arg) {\n return this.request('team/linked_apps/list_member_linked_apps', arg, 'team', 'api', 'rpc', 'sessions.list');\n};\n\n/**\n * List all applications linked to the team members' accounts. Note, this\n * endpoint does not list any team-linked applications.\n * Route attributes:\n * scope: sessions.list\n * @function Dropbox#teamLinkedAppsListMembersLinkedApps\n * @arg {TeamListMembersAppsArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamLinkedAppsListMembersLinkedApps = function (arg) {\n return this.request('team/linked_apps/list_members_linked_apps', arg, 'team', 'api', 'rpc', 'sessions.list');\n};\n\n/**\n * List all applications linked to the team members' accounts. Note, this\n * endpoint doesn't list any team-linked applications.\n * Route attributes:\n * scope: sessions.list\n * @function Dropbox#teamLinkedAppsListTeamLinkedApps\n * @deprecated\n * @arg {TeamListTeamAppsArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamLinkedAppsListTeamLinkedApps = function (arg) {\n return this.request('team/linked_apps/list_team_linked_apps', arg, 'team', 'api', 'rpc', 'sessions.list');\n};\n\n/**\n * Revoke a linked application of the team member.\n * Route attributes:\n * scope: sessions.modify\n * @function Dropbox#teamLinkedAppsRevokeLinkedApp\n * @arg {TeamRevokeLinkedApiAppArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamLinkedAppsRevokeLinkedApp = function (arg) {\n return this.request('team/linked_apps/revoke_linked_app', arg, 'team', 'api', 'rpc', 'sessions.modify');\n};\n\n/**\n * Revoke a list of linked applications of the team members.\n * Route attributes:\n * scope: sessions.modify\n * @function Dropbox#teamLinkedAppsRevokeLinkedAppBatch\n * @arg {TeamRevokeLinkedApiAppBatchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamLinkedAppsRevokeLinkedAppBatch = function (arg) {\n return this.request('team/linked_apps/revoke_linked_app_batch', arg, 'team', 'api', 'rpc', 'sessions.modify');\n};\n\n/**\n * Add users to member space limits excluded users list.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMemberSpaceLimitsExcludedUsersAdd\n * @arg {TeamExcludedUsersUpdateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMemberSpaceLimitsExcludedUsersAdd = function (arg) {\n return this.request('team/member_space_limits/excluded_users/add', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * List member space limits excluded users.\n * Route attributes:\n * scope: members.read\n * @function Dropbox#teamMemberSpaceLimitsExcludedUsersList\n * @arg {TeamExcludedUsersListArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMemberSpaceLimitsExcludedUsersList = function (arg) {\n return this.request('team/member_space_limits/excluded_users/list', arg, 'team', 'api', 'rpc', 'members.read');\n};\n\n/**\n * Continue listing member space limits excluded users.\n * Route attributes:\n * scope: members.read\n * @function Dropbox#teamMemberSpaceLimitsExcludedUsersListContinue\n * @arg {TeamExcludedUsersListContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMemberSpaceLimitsExcludedUsersListContinue = function (arg) {\n return this.request('team/member_space_limits/excluded_users/list/continue', arg, 'team', 'api', 'rpc', 'members.read');\n};\n\n/**\n * Remove users from member space limits excluded users list.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMemberSpaceLimitsExcludedUsersRemove\n * @arg {TeamExcludedUsersUpdateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMemberSpaceLimitsExcludedUsersRemove = function (arg) {\n return this.request('team/member_space_limits/excluded_users/remove', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Get users custom quota. Returns none as the custom quota if none was set. A\n * maximum of 1000 members can be specified in a single call.\n * Route attributes:\n * scope: members.read\n * @function Dropbox#teamMemberSpaceLimitsGetCustomQuota\n * @arg {TeamCustomQuotaUsersArg} arg - The request parameters.\n * @returns {Promise.>, DropboxResponseError.>}\n */\nroutes.teamMemberSpaceLimitsGetCustomQuota = function (arg) {\n return this.request('team/member_space_limits/get_custom_quota', arg, 'team', 'api', 'rpc', 'members.read');\n};\n\n/**\n * Remove users custom quota. A maximum of 1000 members can be specified in a\n * single call.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMemberSpaceLimitsRemoveCustomQuota\n * @arg {TeamCustomQuotaUsersArg} arg - The request parameters.\n * @returns {Promise.>, DropboxResponseError.>}\n */\nroutes.teamMemberSpaceLimitsRemoveCustomQuota = function (arg) {\n return this.request('team/member_space_limits/remove_custom_quota', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Set users custom quota. Custom quota has to be at least 15GB. A maximum of\n * 1000 members can be specified in a single call.\n * Route attributes:\n * scope: members.read\n * @function Dropbox#teamMemberSpaceLimitsSetCustomQuota\n * @arg {TeamSetCustomQuotaArg} arg - The request parameters.\n * @returns {Promise.>, DropboxResponseError.>}\n */\nroutes.teamMemberSpaceLimitsSetCustomQuota = function (arg) {\n return this.request('team/member_space_limits/set_custom_quota', arg, 'team', 'api', 'rpc', 'members.read');\n};\n\n/**\n * Adds members to a team. Permission : Team member management A maximum of 20\n * members can be specified in a single call. If no Dropbox account exists with\n * the email address specified, a new Dropbox account will be created with the\n * given email address, and that account will be invited to the team. If a\n * personal Dropbox account exists with the email address specified in the call,\n * this call will create a placeholder Dropbox account for the user on the team\n * and send an email inviting the user to migrate their existing personal\n * account onto the team. Team member management apps are required to set an\n * initial given_name and surname for a user to use in the team invitation and\n * for 'Perform as team member' actions taken on the user before they become\n * 'active'.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersAddV2\n * @arg {TeamMembersAddV2Arg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersAddV2 = function (arg) {\n return this.request('team/members/add_v2', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Adds members to a team. Permission : Team member management A maximum of 20\n * members can be specified in a single call. If no Dropbox account exists with\n * the email address specified, a new Dropbox account will be created with the\n * given email address, and that account will be invited to the team. If a\n * personal Dropbox account exists with the email address specified in the call,\n * this call will create a placeholder Dropbox account for the user on the team\n * and send an email inviting the user to migrate their existing personal\n * account onto the team. Team member management apps are required to set an\n * initial given_name and surname for a user to use in the team invitation and\n * for 'Perform as team member' actions taken on the user before they become\n * 'active'.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersAdd\n * @arg {TeamMembersAddArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersAdd = function (arg) {\n return this.request('team/members/add', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Once an async_job_id is returned from members/add_v2 , use this to poll the\n * status of the asynchronous request. Permission : Team member management.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersAddJobStatusGetV2\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersAddJobStatusGetV2 = function (arg) {\n return this.request('team/members/add/job_status/get_v2', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Once an async_job_id is returned from members/add , use this to poll the\n * status of the asynchronous request. Permission : Team member management.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersAddJobStatusGet\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersAddJobStatusGet = function (arg) {\n return this.request('team/members/add/job_status/get', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Deletes a team member's profile photo. Permission : Team member management.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersDeleteProfilePhotoV2\n * @arg {TeamMembersDeleteProfilePhotoArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersDeleteProfilePhotoV2 = function (arg) {\n return this.request('team/members/delete_profile_photo_v2', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Deletes a team member's profile photo. Permission : Team member management.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersDeleteProfilePhoto\n * @arg {TeamMembersDeleteProfilePhotoArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersDeleteProfilePhoto = function (arg) {\n return this.request('team/members/delete_profile_photo', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Get available TeamMemberRoles for the connected team. To be used with\n * members/set_admin_permissions_v2. Permission : Team member management.\n * Route attributes:\n * scope: members.read\n * @function Dropbox#teamMembersGetAvailableTeamMemberRoles\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersGetAvailableTeamMemberRoles = function () {\n return this.request('team/members/get_available_team_member_roles', null, 'team', 'api', 'rpc', 'members.read');\n};\n\n/**\n * Returns information about multiple team members. Permission : Team\n * information This endpoint will return MembersGetInfoItem.id_not_found, for\n * IDs (or emails) that cannot be matched to a valid team member.\n * Route attributes:\n * scope: members.read\n * @function Dropbox#teamMembersGetInfoV2\n * @arg {TeamMembersGetInfoV2Arg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersGetInfoV2 = function (arg) {\n return this.request('team/members/get_info_v2', arg, 'team', 'api', 'rpc', 'members.read');\n};\n\n/**\n * Returns information about multiple team members. Permission : Team\n * information This endpoint will return MembersGetInfoItem.id_not_found, for\n * IDs (or emails) that cannot be matched to a valid team member.\n * Route attributes:\n * scope: members.read\n * @function Dropbox#teamMembersGetInfo\n * @arg {TeamMembersGetInfoArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersGetInfo = function (arg) {\n return this.request('team/members/get_info', arg, 'team', 'api', 'rpc', 'members.read');\n};\n\n/**\n * Lists members of a team. Permission : Team information.\n * Route attributes:\n * scope: members.read\n * @function Dropbox#teamMembersListV2\n * @arg {TeamMembersListArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersListV2 = function (arg) {\n return this.request('team/members/list_v2', arg, 'team', 'api', 'rpc', 'members.read');\n};\n\n/**\n * Lists members of a team. Permission : Team information.\n * Route attributes:\n * scope: members.read\n * @function Dropbox#teamMembersList\n * @arg {TeamMembersListArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersList = function (arg) {\n return this.request('team/members/list', arg, 'team', 'api', 'rpc', 'members.read');\n};\n\n/**\n * Once a cursor has been retrieved from members/list_v2, use this to paginate\n * through all team members. Permission : Team information.\n * Route attributes:\n * scope: members.read\n * @function Dropbox#teamMembersListContinueV2\n * @arg {TeamMembersListContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersListContinueV2 = function (arg) {\n return this.request('team/members/list/continue_v2', arg, 'team', 'api', 'rpc', 'members.read');\n};\n\n/**\n * Once a cursor has been retrieved from members/list, use this to paginate\n * through all team members. Permission : Team information.\n * Route attributes:\n * scope: members.read\n * @function Dropbox#teamMembersListContinue\n * @arg {TeamMembersListContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersListContinue = function (arg) {\n return this.request('team/members/list/continue', arg, 'team', 'api', 'rpc', 'members.read');\n};\n\n/**\n * Moves removed member's files to a different member. This endpoint initiates\n * an asynchronous job. To obtain the final result of the job, the client should\n * periodically poll members/move_former_member_files/job_status/check.\n * Permission : Team member management.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersMoveFormerMemberFiles\n * @arg {TeamMembersDataTransferArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersMoveFormerMemberFiles = function (arg) {\n return this.request('team/members/move_former_member_files', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Once an async_job_id is returned from members/move_former_member_files , use\n * this to poll the status of the asynchronous request. Permission : Team member\n * management.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersMoveFormerMemberFilesJobStatusCheck\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersMoveFormerMemberFilesJobStatusCheck = function (arg) {\n return this.request('team/members/move_former_member_files/job_status/check', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Recover a deleted member. Permission : Team member management Exactly one of\n * team_member_id, email, or external_id must be provided to identify the user\n * account.\n * Route attributes:\n * scope: members.delete\n * @function Dropbox#teamMembersRecover\n * @arg {TeamMembersRecoverArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersRecover = function (arg) {\n return this.request('team/members/recover', arg, 'team', 'api', 'rpc', 'members.delete');\n};\n\n/**\n * Removes a member from a team. Permission : Team member management Exactly one\n * of team_member_id, email, or external_id must be provided to identify the\n * user account. Accounts can be recovered via members/recover for a 7 day\n * period or until the account has been permanently deleted or transferred to\n * another account (whichever comes first). Calling members/add while a user is\n * still recoverable on your team will return with\n * MemberAddResult.user_already_on_team. Accounts can have their files\n * transferred via the admin console for a limited time, based on the version\n * history length associated with the team (180 days for most teams). This\n * endpoint may initiate an asynchronous job. To obtain the final result of the\n * job, the client should periodically poll members/remove/job_status/get.\n * Route attributes:\n * scope: members.delete\n * @function Dropbox#teamMembersRemove\n * @arg {TeamMembersRemoveArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersRemove = function (arg) {\n return this.request('team/members/remove', arg, 'team', 'api', 'rpc', 'members.delete');\n};\n\n/**\n * Once an async_job_id is returned from members/remove , use this to poll the\n * status of the asynchronous request. Permission : Team member management.\n * Route attributes:\n * scope: members.delete\n * @function Dropbox#teamMembersRemoveJobStatusGet\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersRemoveJobStatusGet = function (arg) {\n return this.request('team/members/remove/job_status/get', arg, 'team', 'api', 'rpc', 'members.delete');\n};\n\n/**\n * Add secondary emails to users. Permission : Team member management. Emails\n * that are on verified domains will be verified automatically. For each email\n * address not on a verified domain a verification email will be sent.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersSecondaryEmailsAdd\n * @arg {TeamAddSecondaryEmailsArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersSecondaryEmailsAdd = function (arg) {\n return this.request('team/members/secondary_emails/add', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Delete secondary emails from users Permission : Team member management. Users\n * will be notified of deletions of verified secondary emails at both the\n * secondary email and their primary email.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersSecondaryEmailsDelete\n * @arg {TeamDeleteSecondaryEmailsArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersSecondaryEmailsDelete = function (arg) {\n return this.request('team/members/secondary_emails/delete', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Resend secondary email verification emails. Permission : Team member\n * management.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersSecondaryEmailsResendVerificationEmails\n * @arg {TeamResendVerificationEmailArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersSecondaryEmailsResendVerificationEmails = function (arg) {\n return this.request('team/members/secondary_emails/resend_verification_emails', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Sends welcome email to pending team member. Permission : Team member\n * management Exactly one of team_member_id, email, or external_id must be\n * provided to identify the user account. No-op if team member is not pending.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersSendWelcomeEmail\n * @arg {TeamUserSelectorArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersSendWelcomeEmail = function (arg) {\n return this.request('team/members/send_welcome_email', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Updates a team member's permissions. Permission : Team member management.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersSetAdminPermissionsV2\n * @arg {TeamMembersSetPermissions2Arg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersSetAdminPermissionsV2 = function (arg) {\n return this.request('team/members/set_admin_permissions_v2', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Updates a team member's permissions. Permission : Team member management.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersSetAdminPermissions\n * @arg {TeamMembersSetPermissionsArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersSetAdminPermissions = function (arg) {\n return this.request('team/members/set_admin_permissions', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Updates a team member's profile. Permission : Team member management.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersSetProfileV2\n * @arg {TeamMembersSetProfileArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersSetProfileV2 = function (arg) {\n return this.request('team/members/set_profile_v2', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Updates a team member's profile. Permission : Team member management.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersSetProfile\n * @arg {TeamMembersSetProfileArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersSetProfile = function (arg) {\n return this.request('team/members/set_profile', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Updates a team member's profile photo. Permission : Team member management.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersSetProfilePhotoV2\n * @arg {TeamMembersSetProfilePhotoArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersSetProfilePhotoV2 = function (arg) {\n return this.request('team/members/set_profile_photo_v2', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Updates a team member's profile photo. Permission : Team member management.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersSetProfilePhoto\n * @arg {TeamMembersSetProfilePhotoArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersSetProfilePhoto = function (arg) {\n return this.request('team/members/set_profile_photo', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Suspend a member from a team. Permission : Team member management Exactly one\n * of team_member_id, email, or external_id must be provided to identify the\n * user account.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersSuspend\n * @arg {TeamMembersDeactivateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersSuspend = function (arg) {\n return this.request('team/members/suspend', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Unsuspend a member from a team. Permission : Team member management Exactly\n * one of team_member_id, email, or external_id must be provided to identify the\n * user account.\n * Route attributes:\n * scope: members.write\n * @function Dropbox#teamMembersUnsuspend\n * @arg {TeamMembersUnsuspendArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamMembersUnsuspend = function (arg) {\n return this.request('team/members/unsuspend', arg, 'team', 'api', 'rpc', 'members.write');\n};\n\n/**\n * Returns a list of all team-accessible namespaces. This list includes team\n * folders, shared folders containing team members, team members' home\n * namespaces, and team members' app folders. Home namespaces and app folders\n * are always owned by this team or members of the team, but shared folders may\n * be owned by other users or other teams. Duplicates may occur in the list.\n * Route attributes:\n * scope: team_data.member\n * @function Dropbox#teamNamespacesList\n * @arg {TeamTeamNamespacesListArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamNamespacesList = function (arg) {\n return this.request('team/namespaces/list', arg, 'team', 'api', 'rpc', 'team_data.member');\n};\n\n/**\n * Once a cursor has been retrieved from namespaces/list, use this to paginate\n * through all team-accessible namespaces. Duplicates may occur in the list.\n * Route attributes:\n * scope: team_data.member\n * @function Dropbox#teamNamespacesListContinue\n * @arg {TeamTeamNamespacesListContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamNamespacesListContinue = function (arg) {\n return this.request('team/namespaces/list/continue', arg, 'team', 'api', 'rpc', 'team_data.member');\n};\n\n/**\n * Permission : Team member file access.\n * Route attributes:\n * scope: files.team_metadata.write\n * @function Dropbox#teamPropertiesTemplateAdd\n * @deprecated\n * @arg {FilePropertiesAddTemplateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamPropertiesTemplateAdd = function (arg) {\n return this.request('team/properties/template/add', arg, 'team', 'api', 'rpc', 'files.team_metadata.write');\n};\n\n/**\n * Permission : Team member file access. The scope for the route is\n * files.team_metadata.write.\n * Route attributes:\n * scope: files.team_metadata.write\n * @function Dropbox#teamPropertiesTemplateGet\n * @deprecated\n * @arg {FilePropertiesGetTemplateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamPropertiesTemplateGet = function (arg) {\n return this.request('team/properties/template/get', arg, 'team', 'api', 'rpc', 'files.team_metadata.write');\n};\n\n/**\n * Permission : Team member file access. The scope for the route is\n * files.team_metadata.write.\n * Route attributes:\n * scope: files.team_metadata.write\n * @function Dropbox#teamPropertiesTemplateList\n * @deprecated\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamPropertiesTemplateList = function () {\n return this.request('team/properties/template/list', null, 'team', 'api', 'rpc', 'files.team_metadata.write');\n};\n\n/**\n * Permission : Team member file access.\n * Route attributes:\n * scope: files.team_metadata.write\n * @function Dropbox#teamPropertiesTemplateUpdate\n * @deprecated\n * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamPropertiesTemplateUpdate = function (arg) {\n return this.request('team/properties/template/update', arg, 'team', 'api', 'rpc', 'files.team_metadata.write');\n};\n\n/**\n * Retrieves reporting data about a team's user activity. Deprecated: Will be\n * removed on July 1st 2021.\n * Route attributes:\n * scope: team_info.read\n * @function Dropbox#teamReportsGetActivity\n * @deprecated\n * @arg {TeamDateRange} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamReportsGetActivity = function (arg) {\n return this.request('team/reports/get_activity', arg, 'team', 'api', 'rpc', 'team_info.read');\n};\n\n/**\n * Retrieves reporting data about a team's linked devices. Deprecated: Will be\n * removed on July 1st 2021.\n * Route attributes:\n * scope: team_info.read\n * @function Dropbox#teamReportsGetDevices\n * @deprecated\n * @arg {TeamDateRange} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamReportsGetDevices = function (arg) {\n return this.request('team/reports/get_devices', arg, 'team', 'api', 'rpc', 'team_info.read');\n};\n\n/**\n * Retrieves reporting data about a team's membership. Deprecated: Will be\n * removed on July 1st 2021.\n * Route attributes:\n * scope: team_info.read\n * @function Dropbox#teamReportsGetMembership\n * @deprecated\n * @arg {TeamDateRange} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamReportsGetMembership = function (arg) {\n return this.request('team/reports/get_membership', arg, 'team', 'api', 'rpc', 'team_info.read');\n};\n\n/**\n * Retrieves reporting data about a team's storage usage. Deprecated: Will be\n * removed on July 1st 2021.\n * Route attributes:\n * scope: team_info.read\n * @function Dropbox#teamReportsGetStorage\n * @deprecated\n * @arg {TeamDateRange} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamReportsGetStorage = function (arg) {\n return this.request('team/reports/get_storage', arg, 'team', 'api', 'rpc', 'team_info.read');\n};\n\n/**\n * Endpoint adds Approve List entries. Changes are effective immediately.\n * Changes are committed in transaction. In case of single validation error -\n * all entries are rejected. Valid domains (RFC-1034/5) and emails\n * (RFC-5322/822) are accepted. Added entries cannot overflow limit of 10000\n * entries per team. Maximum 100 entries per call is allowed.\n * Route attributes:\n * scope: team_info.write\n * @function Dropbox#teamSharingAllowlistAdd\n * @arg {TeamSharingAllowlistAddArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamSharingAllowlistAdd = function (arg) {\n return this.request('team/sharing_allowlist/add', arg, 'team', 'api', 'rpc', 'team_info.write');\n};\n\n/**\n * Lists Approve List entries for given team, from newest to oldest, returning\n * up to `limit` entries at a time. If there are more than `limit` entries\n * associated with the current team, more can be fetched by passing the returned\n * `cursor` to sharing_allowlist/list/continue.\n * Route attributes:\n * scope: team_info.read\n * @function Dropbox#teamSharingAllowlistList\n * @arg {TeamSharingAllowlistListArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamSharingAllowlistList = function (arg) {\n return this.request('team/sharing_allowlist/list', arg, 'team', 'api', 'rpc', 'team_info.read');\n};\n\n/**\n * Lists entries associated with given team, starting from a the cursor. See\n * sharing_allowlist/list.\n * Route attributes:\n * scope: team_info.read\n * @function Dropbox#teamSharingAllowlistListContinue\n * @arg {TeamSharingAllowlistListContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamSharingAllowlistListContinue = function (arg) {\n return this.request('team/sharing_allowlist/list/continue', arg, 'team', 'api', 'rpc', 'team_info.read');\n};\n\n/**\n * Endpoint removes Approve List entries. Changes are effective immediately.\n * Changes are committed in transaction. In case of single validation error -\n * all entries are rejected. Valid domains (RFC-1034/5) and emails\n * (RFC-5322/822) are accepted. Entries being removed have to be present on the\n * list. Maximum 1000 entries per call is allowed.\n * Route attributes:\n * scope: team_info.write\n * @function Dropbox#teamSharingAllowlistRemove\n * @arg {TeamSharingAllowlistRemoveArgs} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamSharingAllowlistRemove = function (arg) {\n return this.request('team/sharing_allowlist/remove', arg, 'team', 'api', 'rpc', 'team_info.write');\n};\n\n/**\n * Sets an archived team folder's status to active. Permission : Team member\n * file access.\n * Route attributes:\n * scope: team_data.content.write\n * @function Dropbox#teamTeamFolderActivate\n * @arg {TeamTeamFolderIdArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamTeamFolderActivate = function (arg) {\n return this.request('team/team_folder/activate', arg, 'team', 'api', 'rpc', 'team_data.content.write');\n};\n\n/**\n * Sets an active team folder's status to archived and removes all folder and\n * file members. This endpoint cannot be used for teams that have a shared team\n * space. Permission : Team member file access.\n * Route attributes:\n * scope: team_data.content.write\n * @function Dropbox#teamTeamFolderArchive\n * @arg {TeamTeamFolderArchiveArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamTeamFolderArchive = function (arg) {\n return this.request('team/team_folder/archive', arg, 'team', 'api', 'rpc', 'team_data.content.write');\n};\n\n/**\n * Returns the status of an asynchronous job for archiving a team folder.\n * Permission : Team member file access.\n * Route attributes:\n * scope: team_data.content.write\n * @function Dropbox#teamTeamFolderArchiveCheck\n * @arg {AsyncPollArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamTeamFolderArchiveCheck = function (arg) {\n return this.request('team/team_folder/archive/check', arg, 'team', 'api', 'rpc', 'team_data.content.write');\n};\n\n/**\n * Creates a new, active, team folder with no members. This endpoint can only be\n * used for teams that do not already have a shared team space. Permission :\n * Team member file access.\n * Route attributes:\n * scope: team_data.content.write\n * @function Dropbox#teamTeamFolderCreate\n * @arg {TeamTeamFolderCreateArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamTeamFolderCreate = function (arg) {\n return this.request('team/team_folder/create', arg, 'team', 'api', 'rpc', 'team_data.content.write');\n};\n\n/**\n * Retrieves metadata for team folders. Permission : Team member file access.\n * Route attributes:\n * scope: team_data.content.read\n * @function Dropbox#teamTeamFolderGetInfo\n * @arg {TeamTeamFolderIdListArg} arg - The request parameters.\n * @returns {Promise.>, DropboxResponseError.>}\n */\nroutes.teamTeamFolderGetInfo = function (arg) {\n return this.request('team/team_folder/get_info', arg, 'team', 'api', 'rpc', 'team_data.content.read');\n};\n\n/**\n * Lists all team folders. Permission : Team member file access.\n * Route attributes:\n * scope: team_data.content.read\n * @function Dropbox#teamTeamFolderList\n * @arg {TeamTeamFolderListArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamTeamFolderList = function (arg) {\n return this.request('team/team_folder/list', arg, 'team', 'api', 'rpc', 'team_data.content.read');\n};\n\n/**\n * Once a cursor has been retrieved from team_folder/list, use this to paginate\n * through all team folders. Permission : Team member file access.\n * Route attributes:\n * scope: team_data.content.read\n * @function Dropbox#teamTeamFolderListContinue\n * @arg {TeamTeamFolderListContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamTeamFolderListContinue = function (arg) {\n return this.request('team/team_folder/list/continue', arg, 'team', 'api', 'rpc', 'team_data.content.read');\n};\n\n/**\n * Permanently deletes an archived team folder. This endpoint cannot be used for\n * teams that have a shared team space. Permission : Team member file access.\n * Route attributes:\n * scope: team_data.content.write\n * @function Dropbox#teamTeamFolderPermanentlyDelete\n * @arg {TeamTeamFolderIdArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamTeamFolderPermanentlyDelete = function (arg) {\n return this.request('team/team_folder/permanently_delete', arg, 'team', 'api', 'rpc', 'team_data.content.write');\n};\n\n/**\n * Changes an active team folder's name. Permission : Team member file access.\n * Route attributes:\n * scope: team_data.content.write\n * @function Dropbox#teamTeamFolderRename\n * @arg {TeamTeamFolderRenameArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamTeamFolderRename = function (arg) {\n return this.request('team/team_folder/rename', arg, 'team', 'api', 'rpc', 'team_data.content.write');\n};\n\n/**\n * Updates the sync settings on a team folder or its contents. Use of this\n * endpoint requires that the team has team selective sync enabled.\n * Route attributes:\n * scope: team_data.content.write\n * @function Dropbox#teamTeamFolderUpdateSyncSettings\n * @arg {TeamTeamFolderUpdateSyncSettingsArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamTeamFolderUpdateSyncSettings = function (arg) {\n return this.request('team/team_folder/update_sync_settings', arg, 'team', 'api', 'rpc', 'team_data.content.write');\n};\n\n/**\n * Returns the member profile of the admin who generated the team access token\n * used to make the call.\n * Route attributes:\n * scope: team_info.read\n * @function Dropbox#teamTokenGetAuthenticatedAdmin\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamTokenGetAuthenticatedAdmin = function () {\n return this.request('team/token/get_authenticated_admin', null, 'team', 'api', 'rpc', 'team_info.read');\n};\n\n/**\n * Retrieves team events. If the result's GetTeamEventsResult.has_more field is\n * true, call get_events/continue with the returned cursor to retrieve more\n * entries. If end_time is not specified in your request, you may use the\n * returned cursor to poll get_events/continue for new events. Many attributes\n * note 'may be missing due to historical data gap'. Note that the\n * file_operations category and & analogous paper events are not available on\n * all Dropbox Business plans /business/plans-comparison. Use\n * features/get_values\n * /developers/documentation/http/teams#team-features-get_values to check for\n * this feature. Permission : Team Auditing.\n * Route attributes:\n * scope: events.read\n * @function Dropbox#teamLogGetEvents\n * @arg {TeamLogGetTeamEventsArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamLogGetEvents = function (arg) {\n return this.request('team_log/get_events', arg, 'team', 'api', 'rpc', 'events.read');\n};\n\n/**\n * Once a cursor has been retrieved from get_events, use this to paginate\n * through all events. Permission : Team Auditing.\n * Route attributes:\n * scope: events.read\n * @function Dropbox#teamLogGetEventsContinue\n * @arg {TeamLogGetTeamEventsContinueArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.teamLogGetEventsContinue = function (arg) {\n return this.request('team_log/get_events/continue', arg, 'team', 'api', 'rpc', 'events.read');\n};\n\n/**\n * Get a list of feature values that may be configured for the current account.\n * Route attributes:\n * scope: account_info.read\n * @function Dropbox#usersFeaturesGetValues\n * @arg {UsersUserFeaturesGetValuesBatchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.usersFeaturesGetValues = function (arg) {\n return this.request('users/features/get_values', arg, 'user', 'api', 'rpc', 'account_info.read');\n};\n\n/**\n * Get information about a user's account.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#usersGetAccount\n * @arg {UsersGetAccountArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.usersGetAccount = function (arg) {\n return this.request('users/get_account', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Get information about multiple user accounts. At most 300 accounts may be\n * queried per request.\n * Route attributes:\n * scope: sharing.read\n * @function Dropbox#usersGetAccountBatch\n * @arg {UsersGetAccountBatchArg} arg - The request parameters.\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.usersGetAccountBatch = function (arg) {\n return this.request('users/get_account_batch', arg, 'user', 'api', 'rpc', 'sharing.read');\n};\n\n/**\n * Get information about the current user's account.\n * Route attributes:\n * scope: account_info.read\n * @function Dropbox#usersGetCurrentAccount\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.usersGetCurrentAccount = function () {\n return this.request('users/get_current_account', null, 'user', 'api', 'rpc', 'account_info.read');\n};\n\n/**\n * Get the space usage information for the current user's account.\n * Route attributes:\n * scope: account_info.read\n * @function Dropbox#usersGetSpaceUsage\n * @returns {Promise., DropboxResponseError.>}\n */\nroutes.usersGetSpaceUsage = function () {\n return this.request('users/get_space_usage', null, 'user', 'api', 'rpc', 'account_info.read');\n};\n\nexport { routes };\n","import { DEFAULT_API_DOMAIN, DEFAULT_DOMAIN, TEST_DOMAIN_MAPPINGS } from './constants';\n\nfunction getSafeUnicode(c) {\n const unicode = `000${c.charCodeAt(0).toString(16)}`.slice(-4);\n return `\\\\u${unicode}`;\n}\n\nexport const baseApiUrl = (subdomain, domain = DEFAULT_API_DOMAIN, domainDelimiter = '.') => {\n if (!domainDelimiter) {\n return `https://${domain}/2/`;\n }\n if (domain !== DEFAULT_API_DOMAIN && TEST_DOMAIN_MAPPINGS[subdomain] !== undefined) {\n subdomain = TEST_DOMAIN_MAPPINGS[subdomain];\n domainDelimiter = '-';\n }\n return `https://${subdomain}${domainDelimiter}${domain}/2/`;\n};\nexport const OAuth2AuthorizationUrl = (domain = DEFAULT_DOMAIN) => {\n if (domain !== DEFAULT_DOMAIN) {\n domain = `meta-${domain}`;\n }\n return `https://${domain}/oauth2/authorize`;\n};\nexport const OAuth2TokenUrl = (domain = DEFAULT_API_DOMAIN, domainDelimiter = '.') => {\n let subdomain = 'api';\n if (domain !== DEFAULT_API_DOMAIN) {\n subdomain = TEST_DOMAIN_MAPPINGS[subdomain];\n domainDelimiter = '-';\n }\n return `https://${subdomain}${domainDelimiter}${domain}/oauth2/token`;\n};\n\n// source https://www.dropboxforum.com/t5/API-support/HTTP-header-quot-Dropbox-API-Arg-quot-could-not-decode-input-as/m-p/173823/highlight/true#M6786\nexport function httpHeaderSafeJson(args) {\n return JSON.stringify(args).replace(/[\\u007f-\\uffff]/g, getSafeUnicode);\n}\n\nexport function getTokenExpiresAtDate(expiresIn) {\n return new Date(Date.now() + (expiresIn * 1000));\n}\n\n/* global WorkerGlobalScope */\nexport function isWindowOrWorker() {\n return (\n (\n typeof WorkerGlobalScope !== 'undefined'\n && self instanceof WorkerGlobalScope // eslint-disable-line no-restricted-globals\n )\n || (\n typeof module === 'undefined'\n || typeof window !== 'undefined'\n )\n );\n}\n\nexport function isBrowserEnv() {\n return typeof window !== 'undefined';\n}\n\nexport function isWorkerEnv() {\n return typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope; // eslint-disable-line no-restricted-globals\n}\n\nexport function createBrowserSafeString(toBeConverted) {\n const convertedString = toBeConverted.toString('base64')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=/g, '');\n return convertedString;\n}\n","/**\n * The response class of HTTP errors from API calls using the Dropbox SDK.\n * @class DropboxResponseError\n * @classdesc The response class of HTTP errors from API calls using the Dropbox SDK.\n * @arg {number} status - HTTP Status code of the call\n * @arg {Object} headers - Headers returned from the call\n * @arg {Object} error - Serialized Error of the call\n */\nexport class DropboxResponseError extends Error {\n constructor(status, headers, error) {\n super(`Response failed with a ${status} code`);\n this.name = 'DropboxResponseError';\n this.status = status;\n this.headers = headers;\n this.error = error;\n }\n}\n","import { isWindowOrWorker } from './utils.js';\nimport { DropboxResponseError } from './error.js';\n\nexport class DropboxResponse {\n constructor(status, headers, result) {\n this.status = status;\n this.headers = headers;\n this.result = result;\n }\n}\n\nfunction throwAsError(res) {\n return res.text()\n .then((data) => {\n let errorObject;\n try {\n errorObject = JSON.parse(data);\n } catch (error) {\n errorObject = data;\n }\n\n throw new DropboxResponseError(res.status, res.headers, errorObject);\n });\n}\n\nexport function parseResponse(res) {\n if (!res.ok) {\n return throwAsError(res);\n }\n return res.text()\n .then((data) => {\n let responseObject;\n try {\n responseObject = JSON.parse(data);\n } catch (error) {\n responseObject = data;\n }\n\n return new DropboxResponse(res.status, res.headers, responseObject);\n });\n}\n\nexport function parseDownloadResponse(res) {\n if (!res.ok) {\n return throwAsError(res);\n }\n return new Promise((resolve) => {\n if (isWindowOrWorker()) {\n res.blob().then((data) => resolve(data));\n } else {\n res.buffer().then((data) => resolve(data));\n }\n }).then((data) => {\n const result = JSON.parse(res.headers.get('dropbox-api-result'));\n\n if (isWindowOrWorker()) {\n result.fileBlob = data;\n } else {\n result.fileBinary = data;\n }\n\n return new DropboxResponse(res.status, res.headers, result);\n });\n}\n","import {\n getTokenExpiresAtDate,\n isBrowserEnv,\n createBrowserSafeString,\n OAuth2AuthorizationUrl,\n OAuth2TokenUrl,\n isWorkerEnv,\n} from './utils.js';\nimport { parseResponse } from './response.js';\n\nlet fetch;\nlet crypto;\nlet Encoder;\n\n// Expiration is 300 seconds but needs to be in milliseconds for Date object\nconst TokenExpirationBuffer = 300 * 1000;\nconst PKCELength = 128;\nconst TokenAccessTypes = ['legacy', 'offline', 'online'];\nconst GrantTypes = ['code', 'token'];\nconst IncludeGrantedScopes = ['none', 'user', 'team'];\n\n/**\n * @class DropboxAuth\n * @classdesc The DropboxAuth class that provides methods to manage, acquire, and refresh tokens.\n * @arg {Object} options\n * @arg {Function} [options.fetch] - fetch library for making requests.\n * @arg {String} [options.accessToken] - An access token for making authenticated\n * requests.\n * @arg {Date} [options.AccessTokenExpiresAt] - Date of the current access token's\n * expiration (if available)\n * @arg {String} [options.refreshToken] - A refresh token for retrieving access tokens\n * @arg {String} [options.clientId] - The client id for your app. Used to create\n * authentication URL.\n * @arg {String} [options.clientSecret] - The client secret for your app. Used to create\n * authentication URL and refresh access tokens.\n * @arg {String} [options.domain] - A custom domain to use when making api requests. This\n * should only be used for testing as scaffolding to avoid making network requests.\n * @arg {String} [options.domainDelimiter] - A custom delimiter to use when separating domain from\n * subdomain. This should only be used for testing as scaffolding.\n * @arg {Object} [options.customHeaders] - An object (in the form of header: value) designed to set\n * custom headers to use during a request.\n * @arg {Boolean} [options.dataOnBody] - Whether request data is sent on body or as URL params.\n * Defaults to false.\n*/\nexport default class DropboxAuth {\n constructor(options) {\n options = options || {};\n\n if (isBrowserEnv()) {\n fetch = window.fetch.bind(window);\n crypto = window.crypto || window.msCrypto; // for IE11\n } else if (isWorkerEnv()) {\n /* eslint-disable no-restricted-globals */\n fetch = self.fetch.bind(self);\n crypto = self.crypto;\n /* eslint-enable no-restricted-globals */\n } else {\n fetch = require('node-fetch'); // eslint-disable-line global-require\n crypto = require('crypto'); // eslint-disable-line global-require\n }\n\n if (typeof TextEncoder === 'undefined') {\n Encoder = require('util').TextEncoder; // eslint-disable-line global-require\n } else {\n Encoder = TextEncoder;\n }\n\n this.fetch = options.fetch || fetch;\n this.accessToken = options.accessToken;\n this.accessTokenExpiresAt = options.accessTokenExpiresAt;\n this.refreshToken = options.refreshToken;\n this.clientId = options.clientId;\n this.clientSecret = options.clientSecret;\n\n this.domain = options.domain;\n this.domainDelimiter = options.domainDelimiter;\n this.customHeaders = options.customHeaders;\n this.dataOnBody = options.dataOnBody;\n }\n\n /**\n * Set the access token used to authenticate requests to the API.\n * @arg {String} accessToken - An access token\n * @returns {undefined}\n */\n setAccessToken(accessToken) {\n this.accessToken = accessToken;\n }\n\n /**\n * Get the access token\n * @returns {String} Access token\n */\n getAccessToken() {\n return this.accessToken;\n }\n\n /**\n * Set the client id, which is used to help gain an access token.\n * @arg {String} clientId - Your apps client id\n * @returns {undefined}\n */\n setClientId(clientId) {\n this.clientId = clientId;\n }\n\n /**\n * Get the client id\n * @returns {String} Client id\n */\n getClientId() {\n return this.clientId;\n }\n\n /**\n * Set the client secret\n * @arg {String} clientSecret - Your app's client secret\n * @returns {undefined}\n */\n setClientSecret(clientSecret) {\n this.clientSecret = clientSecret;\n }\n\n /**\n * Get the client secret\n * @returns {String} Client secret\n */\n getClientSecret() {\n return this.clientSecret;\n }\n\n /**\n * Gets the refresh token\n * @returns {String} Refresh token\n */\n getRefreshToken() {\n return this.refreshToken;\n }\n\n /**\n * Sets the refresh token\n * @param refreshToken - A refresh token\n */\n setRefreshToken(refreshToken) {\n this.refreshToken = refreshToken;\n }\n\n /**\n * Gets the access token's expiration date\n * @returns {Date} date of token expiration\n */\n getAccessTokenExpiresAt() {\n return this.accessTokenExpiresAt;\n }\n\n /**\n * Sets the access token's expiration date\n * @param accessTokenExpiresAt - new expiration date\n */\n setAccessTokenExpiresAt(accessTokenExpiresAt) {\n this.accessTokenExpiresAt = accessTokenExpiresAt;\n }\n\n /**\n * Sets the code verifier for PKCE flow\n * @param {String} codeVerifier - new code verifier\n */\n setCodeVerifier(codeVerifier) {\n this.codeVerifier = codeVerifier;\n }\n\n /**\n * Gets the code verifier for PKCE flow\n * @returns {String} - code verifier for PKCE\n */\n getCodeVerifier() {\n return this.codeVerifier;\n }\n\n generateCodeChallenge() {\n const encoder = new Encoder();\n const codeData = encoder.encode(this.codeVerifier);\n let codeChallenge;\n if (isBrowserEnv() || isWorkerEnv()) {\n return crypto.subtle.digest('SHA-256', codeData)\n .then((digestedHash) => {\n const base64String = btoa(String.fromCharCode.apply(null, new Uint8Array(digestedHash)));\n codeChallenge = createBrowserSafeString(base64String).substr(0, 128);\n this.codeChallenge = codeChallenge;\n });\n }\n const digestedHash = crypto.createHash('sha256').update(codeData).digest();\n codeChallenge = createBrowserSafeString(digestedHash);\n this.codeChallenge = codeChallenge;\n return Promise.resolve();\n }\n\n generatePKCECodes() {\n let codeVerifier;\n if (isBrowserEnv() || isWorkerEnv()) {\n const array = new Uint8Array(PKCELength);\n const randomValueArray = crypto.getRandomValues(array);\n const base64String = btoa(randomValueArray);\n codeVerifier = createBrowserSafeString(base64String).substr(0, 128);\n } else {\n const randomBytes = crypto.randomBytes(PKCELength);\n codeVerifier = createBrowserSafeString(randomBytes).substr(0, 128);\n }\n this.codeVerifier = codeVerifier;\n\n return this.generateCodeChallenge();\n }\n\n /**\n * Get a URL that can be used to authenticate users for the Dropbox API.\n * @arg {String} redirectUri - A URL to redirect the user to after\n * authenticating. This must be added to your app through the admin interface.\n * @arg {String} [state] - State that will be returned in the redirect URL to help\n * prevent cross site scripting attacks.\n * @arg {String} [authType] - auth type, defaults to 'token', other option is 'code'\n * @arg {String} [tokenAccessType] - type of token to request. From the following:\n * null - creates a token with the app default (either legacy or online)\n * legacy - creates one long-lived token with no expiration\n * online - create one short-lived token with an expiration\n * offline - create one short-lived token with an expiration with a refresh token\n * @arg {Array} [scope] - scopes to request for the grant\n * @arg {String} [includeGrantedScopes] - whether or not to include previously granted scopes.\n * From the following:\n * user - include user scopes in the grant\n * team - include team scopes in the grant\n * Note: if this user has never linked the app, include_granted_scopes must be None\n * @arg {boolean} [usePKCE] - Whether or not to use Sha256 based PKCE. PKCE should be only use\n * on client apps which doesn't call your server. It is less secure than non-PKCE flow but\n * can be used if you are unable to safely retrieve your app secret\n * @returns {Promise} - Url to send user to for Dropbox API authentication\n * returned in a promise\n */\n getAuthenticationUrl(redirectUri, state, authType = 'token', tokenAccessType = null, scope = null, includeGrantedScopes = 'none', usePKCE = false) {\n const clientId = this.getClientId();\n const baseUrl = OAuth2AuthorizationUrl(this.domain);\n\n if (!clientId) {\n throw new Error('A client id is required. You can set the client id using .setClientId().');\n }\n if (authType !== 'code' && !redirectUri) {\n throw new Error('A redirect uri is required.');\n }\n if (!GrantTypes.includes(authType)) {\n throw new Error('Authorization type must be code or token');\n }\n if (tokenAccessType && !TokenAccessTypes.includes(tokenAccessType)) {\n throw new Error('Token Access Type must be legacy, offline, or online');\n }\n if (scope && !(scope instanceof Array)) {\n throw new Error('Scope must be an array of strings');\n }\n if (!IncludeGrantedScopes.includes(includeGrantedScopes)) {\n throw new Error('includeGrantedScopes must be none, user, or team');\n }\n\n let authUrl;\n if (authType === 'code') {\n authUrl = `${baseUrl}?response_type=code&client_id=${clientId}`;\n } else {\n authUrl = `${baseUrl}?response_type=token&client_id=${clientId}`;\n }\n\n if (redirectUri) {\n authUrl += `&redirect_uri=${redirectUri}`;\n }\n if (state) {\n authUrl += `&state=${state}`;\n }\n if (tokenAccessType) {\n authUrl += `&token_access_type=${tokenAccessType}`;\n }\n if (scope) {\n authUrl += `&scope=${scope.join(' ')}`;\n }\n if (includeGrantedScopes !== 'none') {\n authUrl += `&include_granted_scopes=${includeGrantedScopes}`;\n }\n if (usePKCE) {\n return this.generatePKCECodes()\n .then(() => {\n authUrl += '&code_challenge_method=S256';\n authUrl += `&code_challenge=${this.codeChallenge}`;\n return authUrl;\n });\n }\n return Promise.resolve(authUrl);\n }\n\n /**\n * Get an OAuth2 access token from an OAuth2 Code.\n * @arg {String} redirectUri - A URL to redirect the user to after\n * authenticating. This must be added to your app through the admin interface.\n * @arg {String} code - An OAuth2 code.\n * @returns {Object} An object containing the token and related info (if applicable)\n */\n getAccessTokenFromCode(redirectUri, code) {\n const clientId = this.getClientId();\n const clientSecret = this.getClientSecret();\n\n if (!clientId) {\n throw new Error('A client id is required. You can set the client id using .setClientId().');\n }\n let path = OAuth2TokenUrl(this.domain, this.domainDelimiter);\n path += '?grant_type=authorization_code';\n path += `&code=${code}`;\n path += `&client_id=${clientId}`;\n\n if (clientSecret) {\n path += `&client_secret=${clientSecret}`;\n } else {\n if (!this.codeVerifier) {\n throw new Error('You must use PKCE when generating the authorization URL to not include a client secret');\n }\n path += `&code_verifier=${this.codeVerifier}`;\n }\n if (redirectUri) {\n path += `&redirect_uri=${redirectUri}`;\n }\n\n const fetchOptions = {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n };\n return this.fetch(path, fetchOptions)\n .then((res) => parseResponse(res));\n }\n\n /**\n * Checks if a token is needed, can be refreshed and if the token is expired.\n * If so, attempts to refresh access token\n * @returns {Promise<*>}\n */\n checkAndRefreshAccessToken() {\n const canRefresh = this.getRefreshToken() && this.getClientId();\n const needsRefresh = !this.getAccessTokenExpiresAt()\n || (new Date(Date.now() + TokenExpirationBuffer)) >= this.getAccessTokenExpiresAt();\n const needsToken = !this.getAccessToken();\n if ((needsRefresh || needsToken) && canRefresh) {\n return this.refreshAccessToken();\n }\n return Promise.resolve();\n }\n\n /**\n * Refreshes the access token using the refresh token, if available\n * @arg {Array} scope - a subset of scopes from the original\n * refresh to acquire with an access token\n * @returns {Promise<*>}\n */\n refreshAccessToken(scope = null) {\n const clientId = this.getClientId();\n const clientSecret = this.getClientSecret();\n\n if (!clientId) {\n throw new Error('A client id is required. You can set the client id using .setClientId().');\n }\n if (scope && !(scope instanceof Array)) {\n throw new Error('Scope must be an array of strings');\n }\n\n let refreshUrl = OAuth2TokenUrl(this.domain, this.domainDelimiter);\n const fetchOptions = {\n headers: { 'Content-Type': 'application/json' },\n method: 'POST',\n };\n\n if (this.dataOnBody) {\n const body = { grant_type: 'refresh_token', client_id: clientId, refresh_token: this.getRefreshToken() };\n\n if (clientSecret) {\n body.client_secret = clientSecret;\n }\n if (scope) {\n body.scope = scope.join(' ');\n }\n\n fetchOptions.body = body;\n } else {\n refreshUrl += `?grant_type=refresh_token&refresh_token=${this.getRefreshToken()}`;\n refreshUrl += `&client_id=${clientId}`;\n if (clientSecret) {\n refreshUrl += `&client_secret=${clientSecret}`;\n }\n if (scope) {\n refreshUrl += `&scope=${scope.join(' ')}`;\n }\n }\n\n return this.fetch(refreshUrl, fetchOptions)\n .then((res) => parseResponse(res))\n .then((res) => {\n this.setAccessToken(res.result.access_token);\n this.setAccessTokenExpiresAt(getTokenExpiresAtDate(res.result.expires_in));\n });\n }\n}\n","import {\n UPLOAD,\n DOWNLOAD,\n RPC,\n APP_AUTH,\n TEAM_AUTH,\n USER_AUTH,\n NO_AUTH,\n COOKIE,\n} from './constants.js';\nimport { routes } from '../lib/routes.js';\nimport DropboxAuth from './auth.js';\nimport { baseApiUrl, httpHeaderSafeJson } from './utils.js';\nimport { parseDownloadResponse, parseResponse } from './response.js';\n\nconst b64 = typeof btoa === 'undefined'\n ? (str) => Buffer.from(str).toString('base64')\n : btoa;\n\n/**\n * @class Dropbox\n * @classdesc The Dropbox SDK class that provides methods to read, write and\n * create files or folders in a user or team's Dropbox.\n * @arg {Object} options\n * @arg {Function} [options.fetch] - fetch library for making requests.\n * @arg {String} [options.selectUser] - Select user is only used for team functionality.\n * It specifies which user the team access token should be acting as.\n * @arg {String} [options.pathRoot] - root path to access other namespaces\n * Use to access team folders for example\n * @arg {String} [options.selectAdmin] - Select admin is only used by team functionality.\n * It specifies which team admin the team access token should be acting as.\n * @arg {DropboxAuth} [options.auth] - The DropboxAuth object used to authenticate requests.\n * If this is set, the remaining parameters will be ignored.\n * @arg {String} [options.accessToken] - An access token for making authenticated\n * requests.\n * @arg {Date} [options.accessTokenExpiresAt] - Date of the current access token's\n * expiration (if available)\n * @arg {String} [options.refreshToken] - A refresh token for retrieving access tokens\n * @arg {String} [options.clientId] - The client id for your app. Used to create\n * authentication URL.\n * @arg {String} [options.clientSecret] - The client secret for your app. Used to create\n * authentication URL and refresh access tokens.\n * @arg {String} [options.domain] - A custom domain to use when making api requests. This\n * should only be used for testing as scaffolding to avoid making network requests.\n * @arg {String} [options.domainDelimiter] - A custom delimiter to use when separating domain from\n * subdomain. This should only be used for testing as scaffolding.\n * @arg {Object} [options.customHeaders] - An object (in the form of header: value) designed to set\n * custom headers to use during a request.\n */\nexport default class Dropbox {\n constructor(options) {\n options = options || {};\n\n if (options.auth) {\n this.auth = options.auth;\n } else {\n this.auth = new DropboxAuth(options);\n }\n\n this.fetch = options.fetch || this.auth.fetch;\n this.selectUser = options.selectUser;\n this.selectAdmin = options.selectAdmin;\n this.pathRoot = options.pathRoot;\n\n this.domain = options.domain || this.auth.domain;\n this.domainDelimiter = options.domainDelimiter || this.auth.domainDelimiter;\n this.customHeaders = options.customHeaders || this.auth.customHeaders;\n\n Object.assign(this, routes);\n }\n\n request(path, args, auth, host, style) {\n // scope is provided after \"style\", but unused in requests, so it's not in parameters\n switch (style) {\n case RPC:\n return this.rpcRequest(path, args, auth, host);\n case DOWNLOAD:\n return this.downloadRequest(path, args, auth, host);\n case UPLOAD:\n return this.uploadRequest(path, args, auth, host);\n default:\n throw new Error(`Invalid request style: ${style}`);\n }\n }\n\n rpcRequest(path, body, auth, host) {\n return this.auth.checkAndRefreshAccessToken()\n .then(() => {\n const fetchOptions = {\n method: 'POST',\n body: (body) ? JSON.stringify(body) : null,\n headers: {},\n };\n\n if (body) {\n fetchOptions.headers['Content-Type'] = 'application/json';\n }\n\n this.setAuthHeaders(auth, fetchOptions);\n this.setCommonHeaders(fetchOptions);\n\n return fetchOptions;\n })\n .then((fetchOptions) => this.fetch(\n baseApiUrl(host, this.domain, this.domainDelimiter) + path,\n fetchOptions,\n ))\n .then((res) => parseResponse(res));\n }\n\n downloadRequest(path, args, auth, host) {\n return this.auth.checkAndRefreshAccessToken()\n .then(() => {\n const fetchOptions = {\n method: 'POST',\n headers: {\n 'Dropbox-API-Arg': httpHeaderSafeJson(args),\n },\n };\n\n this.setAuthHeaders(auth, fetchOptions);\n this.setCommonHeaders(fetchOptions);\n\n return fetchOptions;\n })\n .then((fetchOptions) => this.fetch(\n baseApiUrl(host, this.domain, this.domainDelimiter) + path,\n fetchOptions,\n ))\n .then((res) => parseDownloadResponse(res));\n }\n\n uploadRequest(path, args, auth, host) {\n return this.auth.checkAndRefreshAccessToken()\n .then(() => {\n const { contents } = args;\n delete args.contents;\n\n const fetchOptions = {\n body: contents,\n method: 'POST',\n headers: {\n 'Content-Type': 'application/octet-stream',\n 'Dropbox-API-Arg': httpHeaderSafeJson(args),\n },\n };\n\n this.setAuthHeaders(auth, fetchOptions);\n this.setCommonHeaders(fetchOptions);\n\n return fetchOptions;\n })\n .then((fetchOptions) => this.fetch(\n baseApiUrl(host, this.domain, this.domainDelimiter) + path,\n fetchOptions,\n ))\n .then((res) => parseResponse(res));\n }\n\n setAuthHeaders(auth, fetchOptions) {\n // checks for multiauth and assigns auth based on priority to create header in switch case\n if (auth.split(',').length > 1) {\n const authTypes = auth.replace(' ', '').split(',');\n if (authTypes.includes(USER_AUTH) && this.auth.getAccessToken()) {\n auth = USER_AUTH;\n } else if (authTypes.includes(TEAM_AUTH) && this.auth.getAccessToken()) {\n auth = TEAM_AUTH;\n } else if (authTypes.includes(APP_AUTH)) {\n auth = APP_AUTH;\n }\n }\n\n switch (auth) {\n case APP_AUTH:\n if (this.auth.clientId && this.auth.clientSecret) {\n const authHeader = b64(`${this.auth.clientId}:${this.auth.clientSecret}`);\n fetchOptions.headers.Authorization = `Basic ${authHeader}`;\n }\n break;\n case TEAM_AUTH:\n case USER_AUTH:\n if (this.auth.getAccessToken()) {\n fetchOptions.headers.Authorization = `Bearer ${this.auth.getAccessToken()}`;\n }\n break;\n case NO_AUTH:\n case COOKIE:\n break;\n default:\n throw new Error(`Unhandled auth type: ${auth}`);\n }\n }\n\n setCommonHeaders(options) {\n if (this.selectUser) {\n options.headers['Dropbox-API-Select-User'] = this.selectUser;\n }\n if (this.selectAdmin) {\n options.headers['Dropbox-API-Select-Admin'] = this.selectAdmin;\n }\n if (this.pathRoot) {\n options.headers['Dropbox-API-Path-Root'] = this.pathRoot;\n }\n if (this.customHeaders) {\n const headerKeys = Object.keys(this.customHeaders);\n headerKeys.forEach((header) => {\n options.headers[header] = this.customHeaders[header];\n });\n }\n }\n}\n"],"names":["RPC","UPLOAD","DOWNLOAD","APP_AUTH","USER_AUTH","TEAM_AUTH","NO_AUTH","COOKIE","DEFAULT_API_DOMAIN","DEFAULT_DOMAIN","TEST_DOMAIN_MAPPINGS","api","notify","content","routes","accountSetProfilePhoto","arg","request","authTokenFromOauth1","authTokenRevoke","checkApp","checkUser","contactsDeleteManualContacts","contactsDeleteManualContactsBatch","filePropertiesPropertiesAdd","filePropertiesPropertiesOverwrite","filePropertiesPropertiesRemove","filePropertiesPropertiesSearch","filePropertiesPropertiesSearchContinue","filePropertiesPropertiesUpdate","filePropertiesTemplatesAddForTeam","filePropertiesTemplatesAddForUser","filePropertiesTemplatesGetForTeam","filePropertiesTemplatesGetForUser","filePropertiesTemplatesListForTeam","filePropertiesTemplatesListForUser","filePropertiesTemplatesRemoveForTeam","filePropertiesTemplatesRemoveForUser","filePropertiesTemplatesUpdateForTeam","filePropertiesTemplatesUpdateForUser","fileRequestsCount","fileRequestsCreate","fileRequestsDelete","fileRequestsDeleteAllClosed","fileRequestsGet","fileRequestsListV2","fileRequestsList","fileRequestsListContinue","fileRequestsUpdate","filesAlphaGetMetadata","filesAlphaUpload","filesCopyV2","filesCopy","filesCopyBatchV2","filesCopyBatch","filesCopyBatchCheckV2","filesCopyBatchCheck","filesCopyReferenceGet","filesCopyReferenceSave","filesCreateFolderV2","filesCreateFolder","filesCreateFolderBatch","filesCreateFolderBatchCheck","filesDeleteV2","filesDelete","filesDeleteBatch","filesDeleteBatchCheck","filesDownload","filesDownloadZip","filesExport","filesGetFileLockBatch","filesGetMetadata","filesGetPreview","filesGetTemporaryLink","filesGetTemporaryUploadLink","filesGetThumbnail","filesGetThumbnailV2","filesGetThumbnailBatch","filesListFolder","filesListFolderContinue","filesListFolderGetLatestCursor","filesListFolderLongpoll","filesListRevisions","filesLockFileBatch","filesMoveV2","filesMove","filesMoveBatchV2","filesMoveBatch","filesMoveBatchCheckV2","filesMoveBatchCheck","filesPaperCreate","filesPaperUpdate","filesPermanentlyDelete","filesPropertiesAdd","filesPropertiesOverwrite","filesPropertiesRemove","filesPropertiesTemplateGet","filesPropertiesTemplateList","filesPropertiesUpdate","filesRestore","filesSaveUrl","filesSaveUrlCheckJobStatus","filesSearch","filesSearchV2","filesSearchContinueV2","filesTagsAdd","filesTagsGet","filesTagsRemove","filesUnlockFileBatch","filesUpload","filesUploadSessionAppendV2","filesUploadSessionAppend","filesUploadSessionFinish","filesUploadSessionFinishBatch","filesUploadSessionFinishBatchV2","filesUploadSessionFinishBatchCheck","filesUploadSessionStart","filesUploadSessionStartBatch","openidUserinfo","paperDocsArchive","paperDocsCreate","paperDocsDownload","paperDocsFolderUsersList","paperDocsFolderUsersListContinue","paperDocsGetFolderInfo","paperDocsList","paperDocsListContinue","paperDocsPermanentlyDelete","paperDocsSharingPolicyGet","paperDocsSharingPolicySet","paperDocsUpdate","paperDocsUsersAdd","paperDocsUsersList","paperDocsUsersListContinue","paperDocsUsersRemove","paperFoldersCreate","sharingAddFileMember","sharingAddFolderMember","sharingCheckJobStatus","sharingCheckRemoveMemberJobStatus","sharingCheckShareJobStatus","sharingCreateSharedLink","sharingCreateSharedLinkWithSettings","sharingGetFileMetadata","sharingGetFileMetadataBatch","sharingGetFolderMetadata","sharingGetSharedLinkFile","sharingGetSharedLinkMetadata","sharingGetSharedLinks","sharingListFileMembers","sharingListFileMembersBatch","sharingListFileMembersContinue","sharingListFolderMembers","sharingListFolderMembersContinue","sharingListFolders","sharingListFoldersContinue","sharingListMountableFolders","sharingListMountableFoldersContinue","sharingListReceivedFiles","sharingListReceivedFilesContinue","sharingListSharedLinks","sharingModifySharedLinkSettings","sharingMountFolder","sharingRelinquishFileMembership","sharingRelinquishFolderMembership","sharingRemoveFileMember","sharingRemoveFileMember2","sharingRemoveFolderMember","sharingRevokeSharedLink","sharingSetAccessInheritance","sharingShareFolder","sharingTransferFolder","sharingUnmountFolder","sharingUnshareFile","sharingUnshareFolder","sharingUpdateFileMember","sharingUpdateFolderMember","sharingUpdateFolderPolicy","teamDevicesListMemberDevices","teamDevicesListMembersDevices","teamDevicesListTeamDevices","teamDevicesRevokeDeviceSession","teamDevicesRevokeDeviceSessionBatch","teamFeaturesGetValues","teamGetInfo","teamGroupsCreate","teamGroupsDelete","teamGroupsGetInfo","teamGroupsJobStatusGet","teamGroupsList","teamGroupsListContinue","teamGroupsMembersAdd","teamGroupsMembersList","teamGroupsMembersListContinue","teamGroupsMembersRemove","teamGroupsMembersSetAccessType","teamGroupsUpdate","teamLegalHoldsCreatePolicy","teamLegalHoldsGetPolicy","teamLegalHoldsListHeldRevisions","teamLegalHoldsListHeldRevisionsContinue","teamLegalHoldsListPolicies","teamLegalHoldsReleasePolicy","teamLegalHoldsUpdatePolicy","teamLinkedAppsListMemberLinkedApps","teamLinkedAppsListMembersLinkedApps","teamLinkedAppsListTeamLinkedApps","teamLinkedAppsRevokeLinkedApp","teamLinkedAppsRevokeLinkedAppBatch","teamMemberSpaceLimitsExcludedUsersAdd","teamMemberSpaceLimitsExcludedUsersList","teamMemberSpaceLimitsExcludedUsersListContinue","teamMemberSpaceLimitsExcludedUsersRemove","teamMemberSpaceLimitsGetCustomQuota","teamMemberSpaceLimitsRemoveCustomQuota","teamMemberSpaceLimitsSetCustomQuota","teamMembersAddV2","teamMembersAdd","teamMembersAddJobStatusGetV2","teamMembersAddJobStatusGet","teamMembersDeleteProfilePhotoV2","teamMembersDeleteProfilePhoto","teamMembersGetAvailableTeamMemberRoles","teamMembersGetInfoV2","teamMembersGetInfo","teamMembersListV2","teamMembersList","teamMembersListContinueV2","teamMembersListContinue","teamMembersMoveFormerMemberFiles","teamMembersMoveFormerMemberFilesJobStatusCheck","teamMembersRecover","teamMembersRemove","teamMembersRemoveJobStatusGet","teamMembersSecondaryEmailsAdd","teamMembersSecondaryEmailsDelete","teamMembersSecondaryEmailsResendVerificationEmails","teamMembersSendWelcomeEmail","teamMembersSetAdminPermissionsV2","teamMembersSetAdminPermissions","teamMembersSetProfileV2","teamMembersSetProfile","teamMembersSetProfilePhotoV2","teamMembersSetProfilePhoto","teamMembersSuspend","teamMembersUnsuspend","teamNamespacesList","teamNamespacesListContinue","teamPropertiesTemplateAdd","teamPropertiesTemplateGet","teamPropertiesTemplateList","teamPropertiesTemplateUpdate","teamReportsGetActivity","teamReportsGetDevices","teamReportsGetMembership","teamReportsGetStorage","teamSharingAllowlistAdd","teamSharingAllowlistList","teamSharingAllowlistListContinue","teamSharingAllowlistRemove","teamTeamFolderActivate","teamTeamFolderArchive","teamTeamFolderArchiveCheck","teamTeamFolderCreate","teamTeamFolderGetInfo","teamTeamFolderList","teamTeamFolderListContinue","teamTeamFolderPermanentlyDelete","teamTeamFolderRename","teamTeamFolderUpdateSyncSettings","teamTokenGetAuthenticatedAdmin","teamLogGetEvents","teamLogGetEventsContinue","usersFeaturesGetValues","usersGetAccount","usersGetAccountBatch","usersGetCurrentAccount","usersGetSpaceUsage","getSafeUnicode","c","unicode","charCodeAt","toString","slice","baseApiUrl","subdomain","domain","domainDelimiter","undefined","OAuth2AuthorizationUrl","OAuth2TokenUrl","httpHeaderSafeJson","args","JSON","stringify","replace","getTokenExpiresAtDate","expiresIn","Date","now","isWindowOrWorker","WorkerGlobalScope","self","module","window","isBrowserEnv","isWorkerEnv","createBrowserSafeString","toBeConverted","convertedString","DropboxResponseError","status","headers","error","name","Error","DropboxResponse","result","throwAsError","res","text","then","data","errorObject","parse","parseResponse","ok","responseObject","parseDownloadResponse","Promise","resolve","blob","buffer","get","fileBlob","fileBinary","fetch","crypto","Encoder","TokenExpirationBuffer","PKCELength","TokenAccessTypes","GrantTypes","IncludeGrantedScopes","DropboxAuth","options","bind","msCrypto","require","TextEncoder","accessToken","accessTokenExpiresAt","refreshToken","clientId","clientSecret","customHeaders","dataOnBody","codeVerifier","encoder","codeData","encode","codeChallenge","subtle","digest","digestedHash","base64String","btoa","String","fromCharCode","apply","Uint8Array","substr","createHash","update","array","randomValueArray","getRandomValues","randomBytes","generateCodeChallenge","redirectUri","state","authType","tokenAccessType","scope","includeGrantedScopes","usePKCE","getClientId","baseUrl","includes","Array","authUrl","join","generatePKCECodes","code","getClientSecret","path","fetchOptions","method","canRefresh","getRefreshToken","needsRefresh","getAccessTokenExpiresAt","needsToken","getAccessToken","refreshAccessToken","refreshUrl","body","grant_type","client_id","refresh_token","client_secret","setAccessToken","access_token","setAccessTokenExpiresAt","expires_in","b64","str","Buffer","from","Dropbox","auth","selectUser","selectAdmin","pathRoot","Object","assign","host","style","rpcRequest","downloadRequest","uploadRequest","checkAndRefreshAccessToken","setAuthHeaders","setCommonHeaders","contents","split","length","authTypes","authHeader","Authorization","headerKeys","keys","forEach","header"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAO,IAAMA,GAAG,GAAG,KAAZ;EACA,IAAMC,MAAM,GAAG,QAAf;EACA,IAAMC,QAAQ,GAAG,UAAjB;EAEA,IAAMC,QAAQ,GAAG,KAAjB;EACA,IAAMC,SAAS,GAAG,MAAlB;EACA,IAAMC,SAAS,GAAG,MAAlB;EACA,IAAMC,OAAO,GAAG,QAAhB;EACA,IAAMC,MAAM,GAAG,QAAf;EAEA,IAAMC,kBAAkB,GAAG,gBAA3B;EACA,IAAMC,cAAc,GAAG,aAAvB;EAEA,IAAMC,oBAAoB,GAAG;EAClCC,EAAAA,GAAG,EAAE,KAD6B;EAElCC,EAAAA,MAAM,EAAE,MAF0B;EAGlCC,EAAAA,OAAO,EAAE;EAHyB,CAA7B;;ECbP;EACA,IAAIC,MAAM,GAAG,EAAb;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EACAA,MAAM,CAACC,sBAAP,GAAgC,UAAUC,GAAV,EAAe;EAC7C,SAAO,KAAKC,OAAL,CAAa,2BAAb,EAA0CD,GAA1C,EAA+C,MAA/C,EAAuD,KAAvD,EAA8D,KAA9D,EAAqE,oBAArE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACI,mBAAP,GAA6B,UAAUF,GAAV,EAAe;EAC1C,SAAO,KAAKC,OAAL,CAAa,wBAAb,EAAuCD,GAAvC,EAA4C,KAA5C,EAAmD,KAAnD,EAA0D,KAA1D,EAAiE,IAAjE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACK,eAAP,GAAyB,YAAY;EACnC,SAAO,KAAKF,OAAL,CAAa,mBAAb,EAAkC,IAAlC,EAAwC,MAAxC,EAAgD,KAAhD,EAAuD,KAAvD,EAA8D,IAA9D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAH,MAAM,CAACM,QAAP,GAAkB,UAAUJ,GAAV,EAAe;EAC/B,SAAO,KAAKC,OAAL,CAAa,WAAb,EAA0BD,GAA1B,EAA+B,KAA/B,EAAsC,KAAtC,EAA6C,KAA7C,EAAoD,IAApD,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACO,SAAP,GAAmB,UAAUL,GAAV,EAAe;EAChC,SAAO,KAAKC,OAAL,CAAa,YAAb,EAA2BD,GAA3B,EAAgC,MAAhC,EAAwC,KAAxC,EAA+C,KAA/C,EAAsD,mBAAtD,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACQ,4BAAP,GAAsC,YAAY;EAChD,SAAO,KAAKL,OAAL,CAAa,iCAAb,EAAgD,IAAhD,EAAsD,MAAtD,EAA8D,KAA9D,EAAqE,KAArE,EAA4E,gBAA5E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAH,MAAM,CAACS,iCAAP,GAA2C,UAAUP,GAAV,EAAe;EACxD,SAAO,KAAKC,OAAL,CAAa,uCAAb,EAAsDD,GAAtD,EAA2D,MAA3D,EAAmE,KAAnE,EAA0E,KAA1E,EAAiF,gBAAjF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACU,2BAAP,GAAqC,UAAUR,GAAV,EAAe;EAClD,SAAO,KAAKC,OAAL,CAAa,gCAAb,EAA+CD,GAA/C,EAAoD,MAApD,EAA4D,KAA5D,EAAmE,KAAnE,EAA0E,sBAA1E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACW,iCAAP,GAA2C,UAAUT,GAAV,EAAe;EACxD,SAAO,KAAKC,OAAL,CAAa,sCAAb,EAAqDD,GAArD,EAA0D,MAA1D,EAAkE,KAAlE,EAAyE,KAAzE,EAAgF,sBAAhF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACY,8BAAP,GAAwC,UAAUV,GAAV,EAAe;EACrD,SAAO,KAAKC,OAAL,CAAa,mCAAb,EAAkDD,GAAlD,EAAuD,MAAvD,EAA+D,KAA/D,EAAsE,KAAtE,EAA6E,sBAA7E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACa,8BAAP,GAAwC,UAAUX,GAAV,EAAe;EACrD,SAAO,KAAKC,OAAL,CAAa,mCAAb,EAAkDD,GAAlD,EAAuD,MAAvD,EAA+D,KAA/D,EAAsE,KAAtE,EAA6E,qBAA7E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACc,sCAAP,GAAgD,UAAUZ,GAAV,EAAe;EAC7D,SAAO,KAAKC,OAAL,CAAa,4CAAb,EAA2DD,GAA3D,EAAgE,MAAhE,EAAwE,KAAxE,EAA+E,KAA/E,EAAsF,qBAAtF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACe,8BAAP,GAAwC,UAAUb,GAAV,EAAe;EACrD,SAAO,KAAKC,OAAL,CAAa,mCAAb,EAAkDD,GAAlD,EAAuD,MAAvD,EAA+D,KAA/D,EAAsE,KAAtE,EAA6E,sBAA7E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACgB,iCAAP,GAA2C,UAAUd,GAAV,EAAe;EACxD,SAAO,KAAKC,OAAL,CAAa,wCAAb,EAAuDD,GAAvD,EAA4D,MAA5D,EAAoE,KAApE,EAA2E,KAA3E,EAAkF,2BAAlF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACiB,iCAAP,GAA2C,UAAUf,GAAV,EAAe;EACxD,SAAO,KAAKC,OAAL,CAAa,wCAAb,EAAuDD,GAAvD,EAA4D,MAA5D,EAAoE,KAApE,EAA2E,KAA3E,EAAkF,sBAAlF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACkB,iCAAP,GAA2C,UAAUhB,GAAV,EAAe;EACxD,SAAO,KAAKC,OAAL,CAAa,wCAAb,EAAuDD,GAAvD,EAA4D,MAA5D,EAAoE,KAApE,EAA2E,KAA3E,EAAkF,2BAAlF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACmB,iCAAP,GAA2C,UAAUjB,GAAV,EAAe;EACxD,SAAO,KAAKC,OAAL,CAAa,wCAAb,EAAuDD,GAAvD,EAA4D,MAA5D,EAAoE,KAApE,EAA2E,KAA3E,EAAkF,qBAAlF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACoB,kCAAP,GAA4C,YAAY;EACtD,SAAO,KAAKjB,OAAL,CAAa,yCAAb,EAAwD,IAAxD,EAA8D,MAA9D,EAAsE,KAAtE,EAA6E,KAA7E,EAAoF,2BAApF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAH,MAAM,CAACqB,kCAAP,GAA4C,YAAY;EACtD,SAAO,KAAKlB,OAAL,CAAa,yCAAb,EAAwD,IAAxD,EAA8D,MAA9D,EAAsE,KAAtE,EAA6E,KAA7E,EAAoF,qBAApF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAH,MAAM,CAACsB,oCAAP,GAA8C,UAAUpB,GAAV,EAAe;EAC3D,SAAO,KAAKC,OAAL,CAAa,2CAAb,EAA0DD,GAA1D,EAA+D,MAA/D,EAAuE,KAAvE,EAA8E,KAA9E,EAAqF,2BAArF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACuB,oCAAP,GAA8C,UAAUrB,GAAV,EAAe;EAC3D,SAAO,KAAKC,OAAL,CAAa,2CAAb,EAA0DD,GAA1D,EAA+D,MAA/D,EAAuE,KAAvE,EAA8E,KAA9E,EAAqF,sBAArF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACwB,oCAAP,GAA8C,UAAUtB,GAAV,EAAe;EAC3D,SAAO,KAAKC,OAAL,CAAa,2CAAb,EAA0DD,GAA1D,EAA+D,MAA/D,EAAuE,KAAvE,EAA8E,KAA9E,EAAqF,2BAArF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACyB,oCAAP,GAA8C,UAAUvB,GAAV,EAAe;EAC3D,SAAO,KAAKC,OAAL,CAAa,2CAAb,EAA0DD,GAA1D,EAA+D,MAA/D,EAAuE,KAAvE,EAA8E,KAA9E,EAAqF,sBAArF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC0B,iBAAP,GAA2B,YAAY;EACrC,SAAO,KAAKvB,OAAL,CAAa,qBAAb,EAAoC,IAApC,EAA0C,MAA1C,EAAkD,KAAlD,EAAyD,KAAzD,EAAgE,oBAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAH,MAAM,CAAC2B,kBAAP,GAA4B,UAAUzB,GAAV,EAAe;EACzC,SAAO,KAAKC,OAAL,CAAa,sBAAb,EAAqCD,GAArC,EAA0C,MAA1C,EAAkD,KAAlD,EAAyD,KAAzD,EAAgE,qBAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC4B,kBAAP,GAA4B,UAAU1B,GAAV,EAAe;EACzC,SAAO,KAAKC,OAAL,CAAa,sBAAb,EAAqCD,GAArC,EAA0C,MAA1C,EAAkD,KAAlD,EAAyD,KAAzD,EAAgE,qBAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC6B,2BAAP,GAAqC,YAAY;EAC/C,SAAO,KAAK1B,OAAL,CAAa,iCAAb,EAAgD,IAAhD,EAAsD,MAAtD,EAA8D,KAA9D,EAAqE,KAArE,EAA4E,qBAA5E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAH,MAAM,CAAC8B,eAAP,GAAyB,UAAU5B,GAAV,EAAe;EACtC,SAAO,KAAKC,OAAL,CAAa,mBAAb,EAAkCD,GAAlC,EAAuC,MAAvC,EAA+C,KAA/C,EAAsD,KAAtD,EAA6D,oBAA7D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC+B,kBAAP,GAA4B,UAAU7B,GAAV,EAAe;EACzC,SAAO,KAAKC,OAAL,CAAa,uBAAb,EAAsCD,GAAtC,EAA2C,MAA3C,EAAmD,KAAnD,EAA0D,KAA1D,EAAiE,oBAAjE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACgC,gBAAP,GAA0B,YAAY;EACpC,SAAO,KAAK7B,OAAL,CAAa,oBAAb,EAAmC,IAAnC,EAAyC,MAAzC,EAAiD,KAAjD,EAAwD,KAAxD,EAA+D,oBAA/D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAH,MAAM,CAACiC,wBAAP,GAAkC,UAAU/B,GAAV,EAAe;EAC/C,SAAO,KAAKC,OAAL,CAAa,6BAAb,EAA4CD,GAA5C,EAAiD,MAAjD,EAAyD,KAAzD,EAAgE,KAAhE,EAAuE,oBAAvE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACkC,kBAAP,GAA4B,UAAUhC,GAAV,EAAe;EACzC,SAAO,KAAKC,OAAL,CAAa,sBAAb,EAAqCD,GAArC,EAA0C,MAA1C,EAAkD,KAAlD,EAAyD,KAAzD,EAAgE,qBAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACmC,qBAAP,GAA+B,UAAUjC,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,0BAAb,EAAyCD,GAAzC,EAA8C,MAA9C,EAAsD,KAAtD,EAA6D,KAA7D,EAAoE,qBAApE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACoC,gBAAP,GAA0B,UAAUlC,GAAV,EAAe;EACvC,SAAO,KAAKC,OAAL,CAAa,oBAAb,EAAmCD,GAAnC,EAAwC,MAAxC,EAAgD,SAAhD,EAA2D,QAA3D,EAAqE,qBAArE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACqC,WAAP,GAAqB,UAAUnC,GAAV,EAAe;EAClC,SAAO,KAAKC,OAAL,CAAa,eAAb,EAA8BD,GAA9B,EAAmC,MAAnC,EAA2C,KAA3C,EAAkD,KAAlD,EAAyD,qBAAzD,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACsC,SAAP,GAAmB,UAAUpC,GAAV,EAAe;EAChC,SAAO,KAAKC,OAAL,CAAa,YAAb,EAA2BD,GAA3B,EAAgC,MAAhC,EAAwC,KAAxC,EAA+C,KAA/C,EAAsD,qBAAtD,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACuC,gBAAP,GAA0B,UAAUrC,GAAV,EAAe;EACvC,SAAO,KAAKC,OAAL,CAAa,qBAAb,EAAoCD,GAApC,EAAyC,MAAzC,EAAiD,KAAjD,EAAwD,KAAxD,EAA+D,qBAA/D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACwC,cAAP,GAAwB,UAAUtC,GAAV,EAAe;EACrC,SAAO,KAAKC,OAAL,CAAa,kBAAb,EAAiCD,GAAjC,EAAsC,MAAtC,EAA8C,KAA9C,EAAqD,KAArD,EAA4D,qBAA5D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACyC,qBAAP,GAA+B,UAAUvC,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,2BAAb,EAA0CD,GAA1C,EAA+C,MAA/C,EAAuD,KAAvD,EAA8D,KAA9D,EAAqE,qBAArE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC0C,mBAAP,GAA6B,UAAUxC,GAAV,EAAe;EAC1C,SAAO,KAAKC,OAAL,CAAa,wBAAb,EAAuCD,GAAvC,EAA4C,MAA5C,EAAoD,KAApD,EAA2D,KAA3D,EAAkE,qBAAlE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC2C,qBAAP,GAA+B,UAAUzC,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,0BAAb,EAAyCD,GAAzC,EAA8C,MAA9C,EAAsD,KAAtD,EAA6D,KAA7D,EAAoE,qBAApE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC4C,sBAAP,GAAgC,UAAU1C,GAAV,EAAe;EAC7C,SAAO,KAAKC,OAAL,CAAa,2BAAb,EAA0CD,GAA1C,EAA+C,MAA/C,EAAuD,KAAvD,EAA8D,KAA9D,EAAqE,qBAArE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC6C,mBAAP,GAA6B,UAAU3C,GAAV,EAAe;EAC1C,SAAO,KAAKC,OAAL,CAAa,wBAAb,EAAuCD,GAAvC,EAA4C,MAA5C,EAAoD,KAApD,EAA2D,KAA3D,EAAkE,qBAAlE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC8C,iBAAP,GAA2B,UAAU5C,GAAV,EAAe;EACxC,SAAO,KAAKC,OAAL,CAAa,qBAAb,EAAoCD,GAApC,EAAyC,MAAzC,EAAiD,KAAjD,EAAwD,KAAxD,EAA+D,qBAA/D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC+C,sBAAP,GAAgC,UAAU7C,GAAV,EAAe;EAC7C,SAAO,KAAKC,OAAL,CAAa,2BAAb,EAA0CD,GAA1C,EAA+C,MAA/C,EAAuD,KAAvD,EAA8D,KAA9D,EAAqE,qBAArE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACgD,2BAAP,GAAqC,UAAU9C,GAAV,EAAe;EAClD,SAAO,KAAKC,OAAL,CAAa,iCAAb,EAAgDD,GAAhD,EAAqD,MAArD,EAA6D,KAA7D,EAAoE,KAApE,EAA2E,qBAA3E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACiD,aAAP,GAAuB,UAAU/C,GAAV,EAAe;EACpC,SAAO,KAAKC,OAAL,CAAa,iBAAb,EAAgCD,GAAhC,EAAqC,MAArC,EAA6C,KAA7C,EAAoD,KAApD,EAA2D,qBAA3D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACkD,WAAP,GAAqB,UAAUhD,GAAV,EAAe;EAClC,SAAO,KAAKC,OAAL,CAAa,cAAb,EAA6BD,GAA7B,EAAkC,MAAlC,EAA0C,KAA1C,EAAiD,KAAjD,EAAwD,qBAAxD,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACmD,gBAAP,GAA0B,UAAUjD,GAAV,EAAe;EACvC,SAAO,KAAKC,OAAL,CAAa,oBAAb,EAAmCD,GAAnC,EAAwC,MAAxC,EAAgD,KAAhD,EAAuD,KAAvD,EAA8D,qBAA9D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACoD,qBAAP,GAA+B,UAAUlD,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,0BAAb,EAAyCD,GAAzC,EAA8C,MAA9C,EAAsD,KAAtD,EAA6D,KAA7D,EAAoE,qBAApE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACqD,aAAP,GAAuB,UAAUnD,GAAV,EAAe;EACpC,SAAO,KAAKC,OAAL,CAAa,gBAAb,EAA+BD,GAA/B,EAAoC,MAApC,EAA4C,SAA5C,EAAuD,UAAvD,EAAmE,oBAAnE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACsD,gBAAP,GAA0B,UAAUpD,GAAV,EAAe;EACvC,SAAO,KAAKC,OAAL,CAAa,oBAAb,EAAmCD,GAAnC,EAAwC,MAAxC,EAAgD,SAAhD,EAA2D,UAA3D,EAAuE,oBAAvE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACuD,WAAP,GAAqB,UAAUrD,GAAV,EAAe;EAClC,SAAO,KAAKC,OAAL,CAAa,cAAb,EAA6BD,GAA7B,EAAkC,MAAlC,EAA0C,SAA1C,EAAqD,UAArD,EAAiE,oBAAjE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACwD,qBAAP,GAA+B,UAAUtD,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,2BAAb,EAA0CD,GAA1C,EAA+C,MAA/C,EAAuD,KAAvD,EAA8D,KAA9D,EAAqE,oBAArE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACyD,gBAAP,GAA0B,UAAUvD,GAAV,EAAe;EACvC,SAAO,KAAKC,OAAL,CAAa,oBAAb,EAAmCD,GAAnC,EAAwC,MAAxC,EAAgD,KAAhD,EAAuD,KAAvD,EAA8D,qBAA9D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC0D,eAAP,GAAyB,UAAUxD,GAAV,EAAe;EACtC,SAAO,KAAKC,OAAL,CAAa,mBAAb,EAAkCD,GAAlC,EAAuC,MAAvC,EAA+C,SAA/C,EAA0D,UAA1D,EAAsE,oBAAtE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC2D,qBAAP,GAA+B,UAAUzD,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,0BAAb,EAAyCD,GAAzC,EAA8C,MAA9C,EAAsD,KAAtD,EAA6D,KAA7D,EAAoE,oBAApE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC4D,2BAAP,GAAqC,UAAU1D,GAAV,EAAe;EAClD,SAAO,KAAKC,OAAL,CAAa,iCAAb,EAAgDD,GAAhD,EAAqD,MAArD,EAA6D,KAA7D,EAAoE,KAApE,EAA2E,qBAA3E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC6D,iBAAP,GAA2B,UAAU3D,GAAV,EAAe;EACxC,SAAO,KAAKC,OAAL,CAAa,qBAAb,EAAoCD,GAApC,EAAyC,MAAzC,EAAiD,SAAjD,EAA4D,UAA5D,EAAwE,oBAAxE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC8D,mBAAP,GAA6B,UAAU5D,GAAV,EAAe;EAC1C,SAAO,KAAKC,OAAL,CAAa,wBAAb,EAAuCD,GAAvC,EAA4C,WAA5C,EAAyD,SAAzD,EAAoE,UAApE,EAAgF,oBAAhF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC+D,sBAAP,GAAgC,UAAU7D,GAAV,EAAe;EAC7C,SAAO,KAAKC,OAAL,CAAa,2BAAb,EAA0CD,GAA1C,EAA+C,MAA/C,EAAuD,SAAvD,EAAkE,KAAlE,EAAyE,oBAAzE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACgE,eAAP,GAAyB,UAAU9D,GAAV,EAAe;EACtC,SAAO,KAAKC,OAAL,CAAa,mBAAb,EAAkCD,GAAlC,EAAuC,WAAvC,EAAoD,KAApD,EAA2D,KAA3D,EAAkE,qBAAlE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACiE,uBAAP,GAAiC,UAAU/D,GAAV,EAAe;EAC9C,SAAO,KAAKC,OAAL,CAAa,4BAAb,EAA2CD,GAA3C,EAAgD,WAAhD,EAA6D,KAA7D,EAAoE,KAApE,EAA2E,qBAA3E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACkE,8BAAP,GAAwC,UAAUhE,GAAV,EAAe;EACrD,SAAO,KAAKC,OAAL,CAAa,qCAAb,EAAoDD,GAApD,EAAyD,MAAzD,EAAiE,KAAjE,EAAwE,KAAxE,EAA+E,qBAA/E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACmE,uBAAP,GAAiC,UAAUjE,GAAV,EAAe;EAC9C,SAAO,KAAKC,OAAL,CAAa,4BAAb,EAA2CD,GAA3C,EAAgD,QAAhD,EAA0D,QAA1D,EAAoE,KAApE,EAA2E,qBAA3E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACoE,kBAAP,GAA4B,UAAUlE,GAAV,EAAe;EACzC,SAAO,KAAKC,OAAL,CAAa,sBAAb,EAAqCD,GAArC,EAA0C,MAA1C,EAAkD,KAAlD,EAAyD,KAAzD,EAAgE,qBAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACqE,kBAAP,GAA4B,UAAUnE,GAAV,EAAe;EACzC,SAAO,KAAKC,OAAL,CAAa,uBAAb,EAAsCD,GAAtC,EAA2C,MAA3C,EAAmD,KAAnD,EAA0D,KAA1D,EAAiE,qBAAjE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACsE,WAAP,GAAqB,UAAUpE,GAAV,EAAe;EAClC,SAAO,KAAKC,OAAL,CAAa,eAAb,EAA8BD,GAA9B,EAAmC,MAAnC,EAA2C,KAA3C,EAAkD,KAAlD,EAAyD,qBAAzD,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACuE,SAAP,GAAmB,UAAUrE,GAAV,EAAe;EAChC,SAAO,KAAKC,OAAL,CAAa,YAAb,EAA2BD,GAA3B,EAAgC,MAAhC,EAAwC,KAAxC,EAA+C,KAA/C,EAAsD,qBAAtD,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACwE,gBAAP,GAA0B,UAAUtE,GAAV,EAAe;EACvC,SAAO,KAAKC,OAAL,CAAa,qBAAb,EAAoCD,GAApC,EAAyC,MAAzC,EAAiD,KAAjD,EAAwD,KAAxD,EAA+D,qBAA/D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACyE,cAAP,GAAwB,UAAUvE,GAAV,EAAe;EACrC,SAAO,KAAKC,OAAL,CAAa,kBAAb,EAAiCD,GAAjC,EAAsC,MAAtC,EAA8C,KAA9C,EAAqD,KAArD,EAA4D,qBAA5D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC0E,qBAAP,GAA+B,UAAUxE,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,2BAAb,EAA0CD,GAA1C,EAA+C,MAA/C,EAAuD,KAAvD,EAA8D,KAA9D,EAAqE,qBAArE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC2E,mBAAP,GAA6B,UAAUzE,GAAV,EAAe;EAC1C,SAAO,KAAKC,OAAL,CAAa,wBAAb,EAAuCD,GAAvC,EAA4C,MAA5C,EAAoD,KAApD,EAA2D,KAA3D,EAAkE,qBAAlE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC4E,gBAAP,GAA0B,UAAU1E,GAAV,EAAe;EACvC,SAAO,KAAKC,OAAL,CAAa,oBAAb,EAAmCD,GAAnC,EAAwC,MAAxC,EAAgD,KAAhD,EAAuD,QAAvD,EAAiE,qBAAjE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC6E,gBAAP,GAA0B,UAAU3E,GAAV,EAAe;EACvC,SAAO,KAAKC,OAAL,CAAa,oBAAb,EAAmCD,GAAnC,EAAwC,MAAxC,EAAgD,KAAhD,EAAuD,QAAvD,EAAiE,qBAAjE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC8E,sBAAP,GAAgC,UAAU5E,GAAV,EAAe;EAC7C,SAAO,KAAKC,OAAL,CAAa,0BAAb,EAAyCD,GAAzC,EAA8C,MAA9C,EAAsD,KAAtD,EAA6D,KAA7D,EAAoE,wBAApE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC+E,kBAAP,GAA4B,UAAU7E,GAAV,EAAe;EACzC,SAAO,KAAKC,OAAL,CAAa,sBAAb,EAAqCD,GAArC,EAA0C,MAA1C,EAAkD,KAAlD,EAAyD,KAAzD,EAAgE,sBAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACgF,wBAAP,GAAkC,UAAU9E,GAAV,EAAe;EAC/C,SAAO,KAAKC,OAAL,CAAa,4BAAb,EAA2CD,GAA3C,EAAgD,MAAhD,EAAwD,KAAxD,EAA+D,KAA/D,EAAsE,sBAAtE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACiF,qBAAP,GAA+B,UAAU/E,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,yBAAb,EAAwCD,GAAxC,EAA6C,MAA7C,EAAqD,KAArD,EAA4D,KAA5D,EAAmE,sBAAnE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACkF,0BAAP,GAAoC,UAAUhF,GAAV,EAAe;EACjD,SAAO,KAAKC,OAAL,CAAa,+BAAb,EAA8CD,GAA9C,EAAmD,MAAnD,EAA2D,KAA3D,EAAkE,KAAlE,EAAyE,qBAAzE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACmF,2BAAP,GAAqC,YAAY;EAC/C,SAAO,KAAKhF,OAAL,CAAa,gCAAb,EAA+C,IAA/C,EAAqD,MAArD,EAA6D,KAA7D,EAAoE,KAApE,EAA2E,qBAA3E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAH,MAAM,CAACoF,qBAAP,GAA+B,UAAUlF,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,yBAAb,EAAwCD,GAAxC,EAA6C,MAA7C,EAAqD,KAArD,EAA4D,KAA5D,EAAmE,sBAAnE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACqF,YAAP,GAAsB,UAAUnF,GAAV,EAAe;EACnC,SAAO,KAAKC,OAAL,CAAa,eAAb,EAA8BD,GAA9B,EAAmC,MAAnC,EAA2C,KAA3C,EAAkD,KAAlD,EAAyD,qBAAzD,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACsF,YAAP,GAAsB,UAAUpF,GAAV,EAAe;EACnC,SAAO,KAAKC,OAAL,CAAa,gBAAb,EAA+BD,GAA/B,EAAoC,MAApC,EAA4C,KAA5C,EAAmD,KAAnD,EAA0D,qBAA1D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACuF,0BAAP,GAAoC,UAAUrF,GAAV,EAAe;EACjD,SAAO,KAAKC,OAAL,CAAa,iCAAb,EAAgDD,GAAhD,EAAqD,MAArD,EAA6D,KAA7D,EAAoE,KAApE,EAA2E,qBAA3E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACwF,WAAP,GAAqB,UAAUtF,GAAV,EAAe;EAClC,SAAO,KAAKC,OAAL,CAAa,cAAb,EAA6BD,GAA7B,EAAkC,MAAlC,EAA0C,KAA1C,EAAiD,KAAjD,EAAwD,qBAAxD,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACyF,aAAP,GAAuB,UAAUvF,GAAV,EAAe;EACpC,SAAO,KAAKC,OAAL,CAAa,iBAAb,EAAgCD,GAAhC,EAAqC,MAArC,EAA6C,KAA7C,EAAoD,KAApD,EAA2D,qBAA3D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC0F,qBAAP,GAA+B,UAAUxF,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,0BAAb,EAAyCD,GAAzC,EAA8C,MAA9C,EAAsD,KAAtD,EAA6D,KAA7D,EAAoE,qBAApE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC2F,YAAP,GAAsB,UAAUzF,GAAV,EAAe;EACnC,SAAO,KAAKC,OAAL,CAAa,gBAAb,EAA+BD,GAA/B,EAAoC,MAApC,EAA4C,KAA5C,EAAmD,KAAnD,EAA0D,sBAA1D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC4F,YAAP,GAAsB,UAAU1F,GAAV,EAAe;EACnC,SAAO,KAAKC,OAAL,CAAa,gBAAb,EAA+BD,GAA/B,EAAoC,MAApC,EAA4C,KAA5C,EAAmD,KAAnD,EAA0D,qBAA1D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC6F,eAAP,GAAyB,UAAU3F,GAAV,EAAe;EACtC,SAAO,KAAKC,OAAL,CAAa,mBAAb,EAAkCD,GAAlC,EAAuC,MAAvC,EAA+C,KAA/C,EAAsD,KAAtD,EAA6D,sBAA7D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC8F,oBAAP,GAA8B,UAAU5F,GAAV,EAAe;EAC3C,SAAO,KAAKC,OAAL,CAAa,yBAAb,EAAwCD,GAAxC,EAA6C,MAA7C,EAAqD,KAArD,EAA4D,KAA5D,EAAmE,qBAAnE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC+F,WAAP,GAAqB,UAAU7F,GAAV,EAAe;EAClC,SAAO,KAAKC,OAAL,CAAa,cAAb,EAA6BD,GAA7B,EAAkC,MAAlC,EAA0C,SAA1C,EAAqD,QAArD,EAA+D,qBAA/D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACgG,0BAAP,GAAoC,UAAU9F,GAAV,EAAe;EACjD,SAAO,KAAKC,OAAL,CAAa,gCAAb,EAA+CD,GAA/C,EAAoD,MAApD,EAA4D,SAA5D,EAAuE,QAAvE,EAAiF,qBAAjF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACiG,wBAAP,GAAkC,UAAU/F,GAAV,EAAe;EAC/C,SAAO,KAAKC,OAAL,CAAa,6BAAb,EAA4CD,GAA5C,EAAiD,MAAjD,EAAyD,SAAzD,EAAoE,QAApE,EAA8E,qBAA9E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACkG,wBAAP,GAAkC,UAAUhG,GAAV,EAAe;EAC/C,SAAO,KAAKC,OAAL,CAAa,6BAAb,EAA4CD,GAA5C,EAAiD,MAAjD,EAAyD,SAAzD,EAAoE,QAApE,EAA8E,qBAA9E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACmG,6BAAP,GAAuC,UAAUjG,GAAV,EAAe;EACpD,SAAO,KAAKC,OAAL,CAAa,mCAAb,EAAkDD,GAAlD,EAAuD,MAAvD,EAA+D,KAA/D,EAAsE,KAAtE,EAA6E,qBAA7E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACoG,+BAAP,GAAyC,UAAUlG,GAAV,EAAe;EACtD,SAAO,KAAKC,OAAL,CAAa,sCAAb,EAAqDD,GAArD,EAA0D,MAA1D,EAAkE,KAAlE,EAAyE,KAAzE,EAAgF,qBAAhF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACqG,kCAAP,GAA4C,UAAUnG,GAAV,EAAe;EACzD,SAAO,KAAKC,OAAL,CAAa,yCAAb,EAAwDD,GAAxD,EAA6D,MAA7D,EAAqE,KAArE,EAA4E,KAA5E,EAAmF,qBAAnF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACsG,uBAAP,GAAiC,UAAUpG,GAAV,EAAe;EAC9C,SAAO,KAAKC,OAAL,CAAa,4BAAb,EAA2CD,GAA3C,EAAgD,MAAhD,EAAwD,SAAxD,EAAmE,QAAnE,EAA6E,qBAA7E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACuG,4BAAP,GAAsC,UAAUrG,GAAV,EAAe;EACnD,SAAO,KAAKC,OAAL,CAAa,kCAAb,EAAiDD,GAAjD,EAAsD,MAAtD,EAA8D,KAA9D,EAAqE,KAArE,EAA4E,qBAA5E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACwG,cAAP,GAAwB,UAAUtG,GAAV,EAAe;EACrC,SAAO,KAAKC,OAAL,CAAa,iBAAb,EAAgCD,GAAhC,EAAqC,MAArC,EAA6C,KAA7C,EAAoD,KAApD,EAA2D,QAA3D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACyG,gBAAP,GAA0B,UAAUvG,GAAV,EAAe;EACvC,SAAO,KAAKC,OAAL,CAAa,oBAAb,EAAmCD,GAAnC,EAAwC,MAAxC,EAAgD,KAAhD,EAAuD,KAAvD,EAA8D,qBAA9D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC0G,eAAP,GAAyB,UAAUxG,GAAV,EAAe;EACtC,SAAO,KAAKC,OAAL,CAAa,mBAAb,EAAkCD,GAAlC,EAAuC,MAAvC,EAA+C,KAA/C,EAAsD,QAAtD,EAAgE,qBAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC2G,iBAAP,GAA2B,UAAUzG,GAAV,EAAe;EACxC,SAAO,KAAKC,OAAL,CAAa,qBAAb,EAAoCD,GAApC,EAAyC,MAAzC,EAAiD,KAAjD,EAAwD,UAAxD,EAAoE,oBAApE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC4G,wBAAP,GAAkC,UAAU1G,GAAV,EAAe;EAC/C,SAAO,KAAKC,OAAL,CAAa,8BAAb,EAA6CD,GAA7C,EAAkD,MAAlD,EAA0D,KAA1D,EAAiE,KAAjE,EAAwE,cAAxE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC6G,gCAAP,GAA0C,UAAU3G,GAAV,EAAe;EACvD,SAAO,KAAKC,OAAL,CAAa,uCAAb,EAAsDD,GAAtD,EAA2D,MAA3D,EAAmE,KAAnE,EAA0E,KAA1E,EAAiF,cAAjF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC8G,sBAAP,GAAgC,UAAU5G,GAAV,EAAe;EAC7C,SAAO,KAAKC,OAAL,CAAa,4BAAb,EAA2CD,GAA3C,EAAgD,MAAhD,EAAwD,KAAxD,EAA+D,KAA/D,EAAsE,cAAtE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC+G,aAAP,GAAuB,UAAU7G,GAAV,EAAe;EACpC,SAAO,KAAKC,OAAL,CAAa,iBAAb,EAAgCD,GAAhC,EAAqC,MAArC,EAA6C,KAA7C,EAAoD,KAApD,EAA2D,qBAA3D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACgH,qBAAP,GAA+B,UAAU9G,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,0BAAb,EAAyCD,GAAzC,EAA8C,MAA9C,EAAsD,KAAtD,EAA6D,KAA7D,EAAoE,qBAApE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACiH,0BAAP,GAAoC,UAAU/G,GAAV,EAAe;EACjD,SAAO,KAAKC,OAAL,CAAa,+BAAb,EAA8CD,GAA9C,EAAmD,MAAnD,EAA2D,KAA3D,EAAkE,KAAlE,EAAyE,wBAAzE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACkH,yBAAP,GAAmC,UAAUhH,GAAV,EAAe;EAChD,SAAO,KAAKC,OAAL,CAAa,+BAAb,EAA8CD,GAA9C,EAAmD,MAAnD,EAA2D,KAA3D,EAAkE,KAAlE,EAAyE,cAAzE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACmH,yBAAP,GAAmC,UAAUjH,GAAV,EAAe;EAChD,SAAO,KAAKC,OAAL,CAAa,+BAAb,EAA8CD,GAA9C,EAAmD,MAAnD,EAA2D,KAA3D,EAAkE,KAAlE,EAAyE,eAAzE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACoH,eAAP,GAAyB,UAAUlH,GAAV,EAAe;EACtC,SAAO,KAAKC,OAAL,CAAa,mBAAb,EAAkCD,GAAlC,EAAuC,MAAvC,EAA+C,KAA/C,EAAsD,QAAtD,EAAgE,qBAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACqH,iBAAP,GAA2B,UAAUnH,GAAV,EAAe;EACxC,SAAO,KAAKC,OAAL,CAAa,sBAAb,EAAqCD,GAArC,EAA0C,MAA1C,EAAkD,KAAlD,EAAyD,KAAzD,EAAgE,eAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACsH,kBAAP,GAA4B,UAAUpH,GAAV,EAAe;EACzC,SAAO,KAAKC,OAAL,CAAa,uBAAb,EAAsCD,GAAtC,EAA2C,MAA3C,EAAmD,KAAnD,EAA0D,KAA1D,EAAiE,cAAjE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACuH,0BAAP,GAAoC,UAAUrH,GAAV,EAAe;EACjD,SAAO,KAAKC,OAAL,CAAa,gCAAb,EAA+CD,GAA/C,EAAoD,MAApD,EAA4D,KAA5D,EAAmE,KAAnE,EAA0E,cAA1E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACwH,oBAAP,GAA8B,UAAUtH,GAAV,EAAe;EAC3C,SAAO,KAAKC,OAAL,CAAa,yBAAb,EAAwCD,GAAxC,EAA6C,MAA7C,EAAqD,KAArD,EAA4D,KAA5D,EAAmE,eAAnE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACyH,kBAAP,GAA4B,UAAUvH,GAAV,EAAe;EACzC,SAAO,KAAKC,OAAL,CAAa,sBAAb,EAAqCD,GAArC,EAA0C,MAA1C,EAAkD,KAAlD,EAAyD,KAAzD,EAAgE,qBAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC0H,oBAAP,GAA8B,UAAUxH,GAAV,EAAe;EAC3C,SAAO,KAAKC,OAAL,CAAa,yBAAb,EAAwCD,GAAxC,EAA6C,MAA7C,EAAqD,KAArD,EAA4D,KAA5D,EAAmE,eAAnE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC2H,sBAAP,GAAgC,UAAUzH,GAAV,EAAe;EAC7C,SAAO,KAAKC,OAAL,CAAa,2BAAb,EAA0CD,GAA1C,EAA+C,MAA/C,EAAuD,KAAvD,EAA8D,KAA9D,EAAqE,eAArE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC4H,qBAAP,GAA+B,UAAU1H,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,0BAAb,EAAyCD,GAAzC,EAA8C,MAA9C,EAAsD,KAAtD,EAA6D,KAA7D,EAAoE,eAApE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC6H,iCAAP,GAA2C,UAAU3H,GAAV,EAAe;EACxD,SAAO,KAAKC,OAAL,CAAa,wCAAb,EAAuDD,GAAvD,EAA4D,MAA5D,EAAoE,KAApE,EAA2E,KAA3E,EAAkF,eAAlF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC8H,0BAAP,GAAoC,UAAU5H,GAAV,EAAe;EACjD,SAAO,KAAKC,OAAL,CAAa,gCAAb,EAA+CD,GAA/C,EAAoD,MAApD,EAA4D,KAA5D,EAAmE,KAAnE,EAA0E,eAA1E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC+H,uBAAP,GAAiC,UAAU7H,GAAV,EAAe;EAC9C,SAAO,KAAKC,OAAL,CAAa,4BAAb,EAA2CD,GAA3C,EAAgD,MAAhD,EAAwD,KAAxD,EAA+D,KAA/D,EAAsE,eAAtE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACgI,mCAAP,GAA6C,UAAU9H,GAAV,EAAe;EAC1D,SAAO,KAAKC,OAAL,CAAa,0CAAb,EAAyDD,GAAzD,EAA8D,MAA9D,EAAsE,KAAtE,EAA6E,KAA7E,EAAoF,eAApF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACiI,sBAAP,GAAgC,UAAU/H,GAAV,EAAe;EAC7C,SAAO,KAAKC,OAAL,CAAa,2BAAb,EAA0CD,GAA1C,EAA+C,MAA/C,EAAuD,KAAvD,EAA8D,KAA9D,EAAqE,cAArE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACkI,2BAAP,GAAqC,UAAUhI,GAAV,EAAe;EAClD,SAAO,KAAKC,OAAL,CAAa,iCAAb,EAAgDD,GAAhD,EAAqD,MAArD,EAA6D,KAA7D,EAAoE,KAApE,EAA2E,cAA3E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACmI,wBAAP,GAAkC,UAAUjI,GAAV,EAAe;EAC/C,SAAO,KAAKC,OAAL,CAAa,6BAAb,EAA4CD,GAA5C,EAAiD,MAAjD,EAAyD,KAAzD,EAAgE,KAAhE,EAAuE,cAAvE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACoI,wBAAP,GAAkC,UAAUlI,GAAV,EAAe;EAC/C,SAAO,KAAKC,OAAL,CAAa,8BAAb,EAA6CD,GAA7C,EAAkD,MAAlD,EAA0D,SAA1D,EAAqE,UAArE,EAAiF,cAAjF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACqI,4BAAP,GAAsC,UAAUnI,GAAV,EAAe;EACnD,SAAO,KAAKC,OAAL,CAAa,kCAAb,EAAiDD,GAAjD,EAAsD,WAAtD,EAAmE,KAAnE,EAA0E,KAA1E,EAAiF,cAAjF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACsI,qBAAP,GAA+B,UAAUpI,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,0BAAb,EAAyCD,GAAzC,EAA8C,MAA9C,EAAsD,KAAtD,EAA6D,KAA7D,EAAoE,cAApE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACuI,sBAAP,GAAgC,UAAUrI,GAAV,EAAe;EAC7C,SAAO,KAAKC,OAAL,CAAa,2BAAb,EAA0CD,GAA1C,EAA+C,MAA/C,EAAuD,KAAvD,EAA8D,KAA9D,EAAqE,cAArE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACwI,2BAAP,GAAqC,UAAUtI,GAAV,EAAe;EAClD,SAAO,KAAKC,OAAL,CAAa,iCAAb,EAAgDD,GAAhD,EAAqD,MAArD,EAA6D,KAA7D,EAAoE,KAApE,EAA2E,cAA3E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACyI,8BAAP,GAAwC,UAAUvI,GAAV,EAAe;EACrD,SAAO,KAAKC,OAAL,CAAa,oCAAb,EAAmDD,GAAnD,EAAwD,MAAxD,EAAgE,KAAhE,EAAuE,KAAvE,EAA8E,cAA9E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC0I,wBAAP,GAAkC,UAAUxI,GAAV,EAAe;EAC/C,SAAO,KAAKC,OAAL,CAAa,6BAAb,EAA4CD,GAA5C,EAAiD,MAAjD,EAAyD,KAAzD,EAAgE,KAAhE,EAAuE,cAAvE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC2I,gCAAP,GAA0C,UAAUzI,GAAV,EAAe;EACvD,SAAO,KAAKC,OAAL,CAAa,sCAAb,EAAqDD,GAArD,EAA0D,MAA1D,EAAkE,KAAlE,EAAyE,KAAzE,EAAgF,cAAhF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC4I,kBAAP,GAA4B,UAAU1I,GAAV,EAAe;EACzC,SAAO,KAAKC,OAAL,CAAa,sBAAb,EAAqCD,GAArC,EAA0C,MAA1C,EAAkD,KAAlD,EAAyD,KAAzD,EAAgE,cAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC6I,0BAAP,GAAoC,UAAU3I,GAAV,EAAe;EACjD,SAAO,KAAKC,OAAL,CAAa,+BAAb,EAA8CD,GAA9C,EAAmD,MAAnD,EAA2D,KAA3D,EAAkE,KAAlE,EAAyE,cAAzE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC8I,2BAAP,GAAqC,UAAU5I,GAAV,EAAe;EAClD,SAAO,KAAKC,OAAL,CAAa,gCAAb,EAA+CD,GAA/C,EAAoD,MAApD,EAA4D,KAA5D,EAAmE,KAAnE,EAA0E,cAA1E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC+I,mCAAP,GAA6C,UAAU7I,GAAV,EAAe;EAC1D,SAAO,KAAKC,OAAL,CAAa,yCAAb,EAAwDD,GAAxD,EAA6D,MAA7D,EAAqE,KAArE,EAA4E,KAA5E,EAAmF,cAAnF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACgJ,wBAAP,GAAkC,UAAU9I,GAAV,EAAe;EAC/C,SAAO,KAAKC,OAAL,CAAa,6BAAb,EAA4CD,GAA5C,EAAiD,MAAjD,EAAyD,KAAzD,EAAgE,KAAhE,EAAuE,cAAvE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACiJ,gCAAP,GAA0C,UAAU/I,GAAV,EAAe;EACvD,SAAO,KAAKC,OAAL,CAAa,sCAAb,EAAqDD,GAArD,EAA0D,MAA1D,EAAkE,KAAlE,EAAyE,KAAzE,EAAgF,cAAhF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACkJ,sBAAP,GAAgC,UAAUhJ,GAAV,EAAe;EAC7C,SAAO,KAAKC,OAAL,CAAa,2BAAb,EAA0CD,GAA1C,EAA+C,MAA/C,EAAuD,KAAvD,EAA8D,KAA9D,EAAqE,cAArE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACmJ,+BAAP,GAAyC,UAAUjJ,GAAV,EAAe;EACtD,SAAO,KAAKC,OAAL,CAAa,qCAAb,EAAoDD,GAApD,EAAyD,MAAzD,EAAiE,KAAjE,EAAwE,KAAxE,EAA+E,eAA/E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACoJ,kBAAP,GAA4B,UAAUlJ,GAAV,EAAe;EACzC,SAAO,KAAKC,OAAL,CAAa,sBAAb,EAAqCD,GAArC,EAA0C,MAA1C,EAAkD,KAAlD,EAAyD,KAAzD,EAAgE,eAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACqJ,+BAAP,GAAyC,UAAUnJ,GAAV,EAAe;EACtD,SAAO,KAAKC,OAAL,CAAa,oCAAb,EAAmDD,GAAnD,EAAwD,MAAxD,EAAgE,KAAhE,EAAuE,KAAvE,EAA8E,eAA9E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACsJ,iCAAP,GAA2C,UAAUpJ,GAAV,EAAe;EACxD,SAAO,KAAKC,OAAL,CAAa,sCAAb,EAAqDD,GAArD,EAA0D,MAA1D,EAAkE,KAAlE,EAAyE,KAAzE,EAAgF,eAAhF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACuJ,uBAAP,GAAiC,UAAUrJ,GAAV,EAAe;EAC9C,SAAO,KAAKC,OAAL,CAAa,4BAAb,EAA2CD,GAA3C,EAAgD,MAAhD,EAAwD,KAAxD,EAA+D,KAA/D,EAAsE,eAAtE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACwJ,wBAAP,GAAkC,UAAUtJ,GAAV,EAAe;EAC/C,SAAO,KAAKC,OAAL,CAAa,8BAAb,EAA6CD,GAA7C,EAAkD,MAAlD,EAA0D,KAA1D,EAAiE,KAAjE,EAAwE,eAAxE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACyJ,yBAAP,GAAmC,UAAUvJ,GAAV,EAAe;EAChD,SAAO,KAAKC,OAAL,CAAa,8BAAb,EAA6CD,GAA7C,EAAkD,MAAlD,EAA0D,KAA1D,EAAiE,KAAjE,EAAwE,eAAxE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC0J,uBAAP,GAAiC,UAAUxJ,GAAV,EAAe;EAC9C,SAAO,KAAKC,OAAL,CAAa,4BAAb,EAA2CD,GAA3C,EAAgD,MAAhD,EAAwD,KAAxD,EAA+D,KAA/D,EAAsE,eAAtE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC2J,2BAAP,GAAqC,UAAUzJ,GAAV,EAAe;EAClD,SAAO,KAAKC,OAAL,CAAa,gCAAb,EAA+CD,GAA/C,EAAoD,MAApD,EAA4D,KAA5D,EAAmE,KAAnE,EAA0E,eAA1E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC4J,kBAAP,GAA4B,UAAU1J,GAAV,EAAe;EACzC,SAAO,KAAKC,OAAL,CAAa,sBAAb,EAAqCD,GAArC,EAA0C,MAA1C,EAAkD,KAAlD,EAAyD,KAAzD,EAAgE,eAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC6J,qBAAP,GAA+B,UAAU3J,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,yBAAb,EAAwCD,GAAxC,EAA6C,MAA7C,EAAqD,KAArD,EAA4D,KAA5D,EAAmE,eAAnE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC8J,oBAAP,GAA8B,UAAU5J,GAAV,EAAe;EAC3C,SAAO,KAAKC,OAAL,CAAa,wBAAb,EAAuCD,GAAvC,EAA4C,MAA5C,EAAoD,KAApD,EAA2D,KAA3D,EAAkE,eAAlE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC+J,kBAAP,GAA4B,UAAU7J,GAAV,EAAe;EACzC,SAAO,KAAKC,OAAL,CAAa,sBAAb,EAAqCD,GAArC,EAA0C,MAA1C,EAAkD,KAAlD,EAAyD,KAAzD,EAAgE,eAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACgK,oBAAP,GAA8B,UAAU9J,GAAV,EAAe;EAC3C,SAAO,KAAKC,OAAL,CAAa,wBAAb,EAAuCD,GAAvC,EAA4C,MAA5C,EAAoD,KAApD,EAA2D,KAA3D,EAAkE,eAAlE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACiK,uBAAP,GAAiC,UAAU/J,GAAV,EAAe;EAC9C,SAAO,KAAKC,OAAL,CAAa,4BAAb,EAA2CD,GAA3C,EAAgD,MAAhD,EAAwD,KAAxD,EAA+D,KAA/D,EAAsE,eAAtE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACkK,yBAAP,GAAmC,UAAUhK,GAAV,EAAe;EAChD,SAAO,KAAKC,OAAL,CAAa,8BAAb,EAA6CD,GAA7C,EAAkD,MAAlD,EAA0D,KAA1D,EAAiE,KAAjE,EAAwE,eAAxE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACmK,yBAAP,GAAmC,UAAUjK,GAAV,EAAe;EAChD,SAAO,KAAKC,OAAL,CAAa,8BAAb,EAA6CD,GAA7C,EAAkD,MAAlD,EAA0D,KAA1D,EAAiE,KAAjE,EAAwE,eAAxE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACoK,4BAAP,GAAsC,UAAUlK,GAAV,EAAe;EACnD,SAAO,KAAKC,OAAL,CAAa,kCAAb,EAAiDD,GAAjD,EAAsD,MAAtD,EAA8D,KAA9D,EAAqE,KAArE,EAA4E,eAA5E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACqK,6BAAP,GAAuC,UAAUnK,GAAV,EAAe;EACpD,SAAO,KAAKC,OAAL,CAAa,mCAAb,EAAkDD,GAAlD,EAAuD,MAAvD,EAA+D,KAA/D,EAAsE,KAAtE,EAA6E,eAA7E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACsK,0BAAP,GAAoC,UAAUpK,GAAV,EAAe;EACjD,SAAO,KAAKC,OAAL,CAAa,gCAAb,EAA+CD,GAA/C,EAAoD,MAApD,EAA4D,KAA5D,EAAmE,KAAnE,EAA0E,eAA1E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACuK,8BAAP,GAAwC,UAAUrK,GAAV,EAAe;EACrD,SAAO,KAAKC,OAAL,CAAa,oCAAb,EAAmDD,GAAnD,EAAwD,MAAxD,EAAgE,KAAhE,EAAuE,KAAvE,EAA8E,iBAA9E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACwK,mCAAP,GAA6C,UAAUtK,GAAV,EAAe;EAC1D,SAAO,KAAKC,OAAL,CAAa,0CAAb,EAAyDD,GAAzD,EAA8D,MAA9D,EAAsE,KAAtE,EAA6E,KAA7E,EAAoF,iBAApF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACyK,qBAAP,GAA+B,UAAUvK,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,0BAAb,EAAyCD,GAAzC,EAA8C,MAA9C,EAAsD,KAAtD,EAA6D,KAA7D,EAAoE,gBAApE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC0K,WAAP,GAAqB,YAAY;EAC/B,SAAO,KAAKvK,OAAL,CAAa,eAAb,EAA8B,IAA9B,EAAoC,MAApC,EAA4C,KAA5C,EAAmD,KAAnD,EAA0D,gBAA1D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAH,MAAM,CAAC2K,gBAAP,GAA0B,UAAUzK,GAAV,EAAe;EACvC,SAAO,KAAKC,OAAL,CAAa,oBAAb,EAAmCD,GAAnC,EAAwC,MAAxC,EAAgD,KAAhD,EAAuD,KAAvD,EAA8D,cAA9D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC4K,gBAAP,GAA0B,UAAU1K,GAAV,EAAe;EACvC,SAAO,KAAKC,OAAL,CAAa,oBAAb,EAAmCD,GAAnC,EAAwC,MAAxC,EAAgD,KAAhD,EAAuD,KAAvD,EAA8D,cAA9D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC6K,iBAAP,GAA2B,UAAU3K,GAAV,EAAe;EACxC,SAAO,KAAKC,OAAL,CAAa,sBAAb,EAAqCD,GAArC,EAA0C,MAA1C,EAAkD,KAAlD,EAAyD,KAAzD,EAAgE,aAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC8K,sBAAP,GAAgC,UAAU5K,GAAV,EAAe;EAC7C,SAAO,KAAKC,OAAL,CAAa,4BAAb,EAA2CD,GAA3C,EAAgD,MAAhD,EAAwD,KAAxD,EAA+D,KAA/D,EAAsE,cAAtE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC+K,cAAP,GAAwB,UAAU7K,GAAV,EAAe;EACrC,SAAO,KAAKC,OAAL,CAAa,kBAAb,EAAiCD,GAAjC,EAAsC,MAAtC,EAA8C,KAA9C,EAAqD,KAArD,EAA4D,aAA5D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACgL,sBAAP,GAAgC,UAAU9K,GAAV,EAAe;EAC7C,SAAO,KAAKC,OAAL,CAAa,2BAAb,EAA0CD,GAA1C,EAA+C,MAA/C,EAAuD,KAAvD,EAA8D,KAA9D,EAAqE,aAArE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACiL,oBAAP,GAA8B,UAAU/K,GAAV,EAAe;EAC3C,SAAO,KAAKC,OAAL,CAAa,yBAAb,EAAwCD,GAAxC,EAA6C,MAA7C,EAAqD,KAArD,EAA4D,KAA5D,EAAmE,cAAnE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACkL,qBAAP,GAA+B,UAAUhL,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,0BAAb,EAAyCD,GAAzC,EAA8C,MAA9C,EAAsD,KAAtD,EAA6D,KAA7D,EAAoE,aAApE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACmL,6BAAP,GAAuC,UAAUjL,GAAV,EAAe;EACpD,SAAO,KAAKC,OAAL,CAAa,mCAAb,EAAkDD,GAAlD,EAAuD,MAAvD,EAA+D,KAA/D,EAAsE,KAAtE,EAA6E,aAA7E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACoL,uBAAP,GAAiC,UAAUlL,GAAV,EAAe;EAC9C,SAAO,KAAKC,OAAL,CAAa,4BAAb,EAA2CD,GAA3C,EAAgD,MAAhD,EAAwD,KAAxD,EAA+D,KAA/D,EAAsE,cAAtE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACqL,8BAAP,GAAwC,UAAUnL,GAAV,EAAe;EACrD,SAAO,KAAKC,OAAL,CAAa,qCAAb,EAAoDD,GAApD,EAAyD,MAAzD,EAAiE,KAAjE,EAAwE,KAAxE,EAA+E,cAA/E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACsL,gBAAP,GAA0B,UAAUpL,GAAV,EAAe;EACvC,SAAO,KAAKC,OAAL,CAAa,oBAAb,EAAmCD,GAAnC,EAAwC,MAAxC,EAAgD,KAAhD,EAAuD,KAAvD,EAA8D,cAA9D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACuL,0BAAP,GAAoC,UAAUrL,GAAV,EAAe;EACjD,SAAO,KAAKC,OAAL,CAAa,gCAAb,EAA+CD,GAA/C,EAAoD,MAApD,EAA4D,KAA5D,EAAmE,KAAnE,EAA0E,4BAA1E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACwL,uBAAP,GAAiC,UAAUtL,GAAV,EAAe;EAC9C,SAAO,KAAKC,OAAL,CAAa,6BAAb,EAA4CD,GAA5C,EAAiD,MAAjD,EAAyD,KAAzD,EAAgE,KAAhE,EAAuE,4BAAvE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACyL,+BAAP,GAAyC,UAAUvL,GAAV,EAAe;EACtD,SAAO,KAAKC,OAAL,CAAa,sCAAb,EAAqDD,GAArD,EAA0D,MAA1D,EAAkE,KAAlE,EAAyE,KAAzE,EAAgF,4BAAhF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC0L,uCAAP,GAAiD,UAAUxL,GAAV,EAAe;EAC9D,SAAO,KAAKC,OAAL,CAAa,+CAAb,EAA8DD,GAA9D,EAAmE,MAAnE,EAA2E,KAA3E,EAAkF,KAAlF,EAAyF,4BAAzF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC2L,0BAAP,GAAoC,UAAUzL,GAAV,EAAe;EACjD,SAAO,KAAKC,OAAL,CAAa,gCAAb,EAA+CD,GAA/C,EAAoD,MAApD,EAA4D,KAA5D,EAAmE,KAAnE,EAA0E,4BAA1E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC4L,2BAAP,GAAqC,UAAU1L,GAAV,EAAe;EAClD,SAAO,KAAKC,OAAL,CAAa,iCAAb,EAAgDD,GAAhD,EAAqD,MAArD,EAA6D,KAA7D,EAAoE,KAApE,EAA2E,4BAA3E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC6L,0BAAP,GAAoC,UAAU3L,GAAV,EAAe;EACjD,SAAO,KAAKC,OAAL,CAAa,gCAAb,EAA+CD,GAA/C,EAAoD,MAApD,EAA4D,KAA5D,EAAmE,KAAnE,EAA0E,4BAA1E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC8L,kCAAP,GAA4C,UAAU5L,GAAV,EAAe;EACzD,SAAO,KAAKC,OAAL,CAAa,0CAAb,EAAyDD,GAAzD,EAA8D,MAA9D,EAAsE,KAAtE,EAA6E,KAA7E,EAAoF,eAApF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC+L,mCAAP,GAA6C,UAAU7L,GAAV,EAAe;EAC1D,SAAO,KAAKC,OAAL,CAAa,2CAAb,EAA0DD,GAA1D,EAA+D,MAA/D,EAAuE,KAAvE,EAA8E,KAA9E,EAAqF,eAArF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACgM,gCAAP,GAA0C,UAAU9L,GAAV,EAAe;EACvD,SAAO,KAAKC,OAAL,CAAa,wCAAb,EAAuDD,GAAvD,EAA4D,MAA5D,EAAoE,KAApE,EAA2E,KAA3E,EAAkF,eAAlF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACiM,6BAAP,GAAuC,UAAU/L,GAAV,EAAe;EACpD,SAAO,KAAKC,OAAL,CAAa,oCAAb,EAAmDD,GAAnD,EAAwD,MAAxD,EAAgE,KAAhE,EAAuE,KAAvE,EAA8E,iBAA9E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACkM,kCAAP,GAA4C,UAAUhM,GAAV,EAAe;EACzD,SAAO,KAAKC,OAAL,CAAa,0CAAb,EAAyDD,GAAzD,EAA8D,MAA9D,EAAsE,KAAtE,EAA6E,KAA7E,EAAoF,iBAApF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACmM,qCAAP,GAA+C,UAAUjM,GAAV,EAAe;EAC5D,SAAO,KAAKC,OAAL,CAAa,6CAAb,EAA4DD,GAA5D,EAAiE,MAAjE,EAAyE,KAAzE,EAAgF,KAAhF,EAAuF,eAAvF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACoM,sCAAP,GAAgD,UAAUlM,GAAV,EAAe;EAC7D,SAAO,KAAKC,OAAL,CAAa,8CAAb,EAA6DD,GAA7D,EAAkE,MAAlE,EAA0E,KAA1E,EAAiF,KAAjF,EAAwF,cAAxF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACqM,8CAAP,GAAwD,UAAUnM,GAAV,EAAe;EACrE,SAAO,KAAKC,OAAL,CAAa,uDAAb,EAAsED,GAAtE,EAA2E,MAA3E,EAAmF,KAAnF,EAA0F,KAA1F,EAAiG,cAAjG,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACsM,wCAAP,GAAkD,UAAUpM,GAAV,EAAe;EAC/D,SAAO,KAAKC,OAAL,CAAa,gDAAb,EAA+DD,GAA/D,EAAoE,MAApE,EAA4E,KAA5E,EAAmF,KAAnF,EAA0F,eAA1F,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACuM,mCAAP,GAA6C,UAAUrM,GAAV,EAAe;EAC1D,SAAO,KAAKC,OAAL,CAAa,2CAAb,EAA0DD,GAA1D,EAA+D,MAA/D,EAAuE,KAAvE,EAA8E,KAA9E,EAAqF,cAArF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACwM,sCAAP,GAAgD,UAAUtM,GAAV,EAAe;EAC7D,SAAO,KAAKC,OAAL,CAAa,8CAAb,EAA6DD,GAA7D,EAAkE,MAAlE,EAA0E,KAA1E,EAAiF,KAAjF,EAAwF,eAAxF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACyM,mCAAP,GAA6C,UAAUvM,GAAV,EAAe;EAC1D,SAAO,KAAKC,OAAL,CAAa,2CAAb,EAA0DD,GAA1D,EAA+D,MAA/D,EAAuE,KAAvE,EAA8E,KAA9E,EAAqF,cAArF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC0M,gBAAP,GAA0B,UAAUxM,GAAV,EAAe;EACvC,SAAO,KAAKC,OAAL,CAAa,qBAAb,EAAoCD,GAApC,EAAyC,MAAzC,EAAiD,KAAjD,EAAwD,KAAxD,EAA+D,eAA/D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC2M,cAAP,GAAwB,UAAUzM,GAAV,EAAe;EACrC,SAAO,KAAKC,OAAL,CAAa,kBAAb,EAAiCD,GAAjC,EAAsC,MAAtC,EAA8C,KAA9C,EAAqD,KAArD,EAA4D,eAA5D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC4M,4BAAP,GAAsC,UAAU1M,GAAV,EAAe;EACnD,SAAO,KAAKC,OAAL,CAAa,oCAAb,EAAmDD,GAAnD,EAAwD,MAAxD,EAAgE,KAAhE,EAAuE,KAAvE,EAA8E,eAA9E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC6M,0BAAP,GAAoC,UAAU3M,GAAV,EAAe;EACjD,SAAO,KAAKC,OAAL,CAAa,iCAAb,EAAgDD,GAAhD,EAAqD,MAArD,EAA6D,KAA7D,EAAoE,KAApE,EAA2E,eAA3E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC8M,+BAAP,GAAyC,UAAU5M,GAAV,EAAe;EACtD,SAAO,KAAKC,OAAL,CAAa,sCAAb,EAAqDD,GAArD,EAA0D,MAA1D,EAAkE,KAAlE,EAAyE,KAAzE,EAAgF,eAAhF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC+M,6BAAP,GAAuC,UAAU7M,GAAV,EAAe;EACpD,SAAO,KAAKC,OAAL,CAAa,mCAAb,EAAkDD,GAAlD,EAAuD,MAAvD,EAA+D,KAA/D,EAAsE,KAAtE,EAA6E,eAA7E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACgN,sCAAP,GAAgD,YAAY;EAC1D,SAAO,KAAK7M,OAAL,CAAa,8CAAb,EAA6D,IAA7D,EAAmE,MAAnE,EAA2E,KAA3E,EAAkF,KAAlF,EAAyF,cAAzF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAH,MAAM,CAACiN,oBAAP,GAA8B,UAAU/M,GAAV,EAAe;EAC3C,SAAO,KAAKC,OAAL,CAAa,0BAAb,EAAyCD,GAAzC,EAA8C,MAA9C,EAAsD,KAAtD,EAA6D,KAA7D,EAAoE,cAApE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACkN,kBAAP,GAA4B,UAAUhN,GAAV,EAAe;EACzC,SAAO,KAAKC,OAAL,CAAa,uBAAb,EAAsCD,GAAtC,EAA2C,MAA3C,EAAmD,KAAnD,EAA0D,KAA1D,EAAiE,cAAjE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACmN,iBAAP,GAA2B,UAAUjN,GAAV,EAAe;EACxC,SAAO,KAAKC,OAAL,CAAa,sBAAb,EAAqCD,GAArC,EAA0C,MAA1C,EAAkD,KAAlD,EAAyD,KAAzD,EAAgE,cAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACoN,eAAP,GAAyB,UAAUlN,GAAV,EAAe;EACtC,SAAO,KAAKC,OAAL,CAAa,mBAAb,EAAkCD,GAAlC,EAAuC,MAAvC,EAA+C,KAA/C,EAAsD,KAAtD,EAA6D,cAA7D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACqN,yBAAP,GAAmC,UAAUnN,GAAV,EAAe;EAChD,SAAO,KAAKC,OAAL,CAAa,+BAAb,EAA8CD,GAA9C,EAAmD,MAAnD,EAA2D,KAA3D,EAAkE,KAAlE,EAAyE,cAAzE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACsN,uBAAP,GAAiC,UAAUpN,GAAV,EAAe;EAC9C,SAAO,KAAKC,OAAL,CAAa,4BAAb,EAA2CD,GAA3C,EAAgD,MAAhD,EAAwD,KAAxD,EAA+D,KAA/D,EAAsE,cAAtE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACuN,gCAAP,GAA0C,UAAUrN,GAAV,EAAe;EACvD,SAAO,KAAKC,OAAL,CAAa,uCAAb,EAAsDD,GAAtD,EAA2D,MAA3D,EAAmE,KAAnE,EAA0E,KAA1E,EAAiF,eAAjF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACwN,8CAAP,GAAwD,UAAUtN,GAAV,EAAe;EACrE,SAAO,KAAKC,OAAL,CAAa,wDAAb,EAAuED,GAAvE,EAA4E,MAA5E,EAAoF,KAApF,EAA2F,KAA3F,EAAkG,eAAlG,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACyN,kBAAP,GAA4B,UAAUvN,GAAV,EAAe;EACzC,SAAO,KAAKC,OAAL,CAAa,sBAAb,EAAqCD,GAArC,EAA0C,MAA1C,EAAkD,KAAlD,EAAyD,KAAzD,EAAgE,gBAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC0N,iBAAP,GAA2B,UAAUxN,GAAV,EAAe;EACxC,SAAO,KAAKC,OAAL,CAAa,qBAAb,EAAoCD,GAApC,EAAyC,MAAzC,EAAiD,KAAjD,EAAwD,KAAxD,EAA+D,gBAA/D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC2N,6BAAP,GAAuC,UAAUzN,GAAV,EAAe;EACpD,SAAO,KAAKC,OAAL,CAAa,oCAAb,EAAmDD,GAAnD,EAAwD,MAAxD,EAAgE,KAAhE,EAAuE,KAAvE,EAA8E,gBAA9E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC4N,6BAAP,GAAuC,UAAU1N,GAAV,EAAe;EACpD,SAAO,KAAKC,OAAL,CAAa,mCAAb,EAAkDD,GAAlD,EAAuD,MAAvD,EAA+D,KAA/D,EAAsE,KAAtE,EAA6E,eAA7E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC6N,gCAAP,GAA0C,UAAU3N,GAAV,EAAe;EACvD,SAAO,KAAKC,OAAL,CAAa,sCAAb,EAAqDD,GAArD,EAA0D,MAA1D,EAAkE,KAAlE,EAAyE,KAAzE,EAAgF,eAAhF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC8N,kDAAP,GAA4D,UAAU5N,GAAV,EAAe;EACzE,SAAO,KAAKC,OAAL,CAAa,0DAAb,EAAyED,GAAzE,EAA8E,MAA9E,EAAsF,KAAtF,EAA6F,KAA7F,EAAoG,eAApG,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC+N,2BAAP,GAAqC,UAAU7N,GAAV,EAAe;EAClD,SAAO,KAAKC,OAAL,CAAa,iCAAb,EAAgDD,GAAhD,EAAqD,MAArD,EAA6D,KAA7D,EAAoE,KAApE,EAA2E,eAA3E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACgO,gCAAP,GAA0C,UAAU9N,GAAV,EAAe;EACvD,SAAO,KAAKC,OAAL,CAAa,uCAAb,EAAsDD,GAAtD,EAA2D,MAA3D,EAAmE,KAAnE,EAA0E,KAA1E,EAAiF,eAAjF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACiO,8BAAP,GAAwC,UAAU/N,GAAV,EAAe;EACrD,SAAO,KAAKC,OAAL,CAAa,oCAAb,EAAmDD,GAAnD,EAAwD,MAAxD,EAAgE,KAAhE,EAAuE,KAAvE,EAA8E,eAA9E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACkO,uBAAP,GAAiC,UAAUhO,GAAV,EAAe;EAC9C,SAAO,KAAKC,OAAL,CAAa,6BAAb,EAA4CD,GAA5C,EAAiD,MAAjD,EAAyD,KAAzD,EAAgE,KAAhE,EAAuE,eAAvE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACmO,qBAAP,GAA+B,UAAUjO,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,0BAAb,EAAyCD,GAAzC,EAA8C,MAA9C,EAAsD,KAAtD,EAA6D,KAA7D,EAAoE,eAApE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACoO,4BAAP,GAAsC,UAAUlO,GAAV,EAAe;EACnD,SAAO,KAAKC,OAAL,CAAa,mCAAb,EAAkDD,GAAlD,EAAuD,MAAvD,EAA+D,KAA/D,EAAsE,KAAtE,EAA6E,eAA7E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACqO,0BAAP,GAAoC,UAAUnO,GAAV,EAAe;EACjD,SAAO,KAAKC,OAAL,CAAa,gCAAb,EAA+CD,GAA/C,EAAoD,MAApD,EAA4D,KAA5D,EAAmE,KAAnE,EAA0E,eAA1E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACsO,kBAAP,GAA4B,UAAUpO,GAAV,EAAe;EACzC,SAAO,KAAKC,OAAL,CAAa,sBAAb,EAAqCD,GAArC,EAA0C,MAA1C,EAAkD,KAAlD,EAAyD,KAAzD,EAAgE,eAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACuO,oBAAP,GAA8B,UAAUrO,GAAV,EAAe;EAC3C,SAAO,KAAKC,OAAL,CAAa,wBAAb,EAAuCD,GAAvC,EAA4C,MAA5C,EAAoD,KAApD,EAA2D,KAA3D,EAAkE,eAAlE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACwO,kBAAP,GAA4B,UAAUtO,GAAV,EAAe;EACzC,SAAO,KAAKC,OAAL,CAAa,sBAAb,EAAqCD,GAArC,EAA0C,MAA1C,EAAkD,KAAlD,EAAyD,KAAzD,EAAgE,kBAAhE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACyO,0BAAP,GAAoC,UAAUvO,GAAV,EAAe;EACjD,SAAO,KAAKC,OAAL,CAAa,+BAAb,EAA8CD,GAA9C,EAAmD,MAAnD,EAA2D,KAA3D,EAAkE,KAAlE,EAAyE,kBAAzE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC0O,yBAAP,GAAmC,UAAUxO,GAAV,EAAe;EAChD,SAAO,KAAKC,OAAL,CAAa,8BAAb,EAA6CD,GAA7C,EAAkD,MAAlD,EAA0D,KAA1D,EAAiE,KAAjE,EAAwE,2BAAxE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC2O,yBAAP,GAAmC,UAAUzO,GAAV,EAAe;EAChD,SAAO,KAAKC,OAAL,CAAa,8BAAb,EAA6CD,GAA7C,EAAkD,MAAlD,EAA0D,KAA1D,EAAiE,KAAjE,EAAwE,2BAAxE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC4O,0BAAP,GAAoC,YAAY;EAC9C,SAAO,KAAKzO,OAAL,CAAa,+BAAb,EAA8C,IAA9C,EAAoD,MAApD,EAA4D,KAA5D,EAAmE,KAAnE,EAA0E,2BAA1E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAH,MAAM,CAAC6O,4BAAP,GAAsC,UAAU3O,GAAV,EAAe;EACnD,SAAO,KAAKC,OAAL,CAAa,iCAAb,EAAgDD,GAAhD,EAAqD,MAArD,EAA6D,KAA7D,EAAoE,KAApE,EAA2E,2BAA3E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC8O,sBAAP,GAAgC,UAAU5O,GAAV,EAAe;EAC7C,SAAO,KAAKC,OAAL,CAAa,2BAAb,EAA0CD,GAA1C,EAA+C,MAA/C,EAAuD,KAAvD,EAA8D,KAA9D,EAAqE,gBAArE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC+O,qBAAP,GAA+B,UAAU7O,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,0BAAb,EAAyCD,GAAzC,EAA8C,MAA9C,EAAsD,KAAtD,EAA6D,KAA7D,EAAoE,gBAApE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACgP,wBAAP,GAAkC,UAAU9O,GAAV,EAAe;EAC/C,SAAO,KAAKC,OAAL,CAAa,6BAAb,EAA4CD,GAA5C,EAAiD,MAAjD,EAAyD,KAAzD,EAAgE,KAAhE,EAAuE,gBAAvE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACiP,qBAAP,GAA+B,UAAU/O,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,0BAAb,EAAyCD,GAAzC,EAA8C,MAA9C,EAAsD,KAAtD,EAA6D,KAA7D,EAAoE,gBAApE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACkP,uBAAP,GAAiC,UAAUhP,GAAV,EAAe;EAC9C,SAAO,KAAKC,OAAL,CAAa,4BAAb,EAA2CD,GAA3C,EAAgD,MAAhD,EAAwD,KAAxD,EAA+D,KAA/D,EAAsE,iBAAtE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACmP,wBAAP,GAAkC,UAAUjP,GAAV,EAAe;EAC/C,SAAO,KAAKC,OAAL,CAAa,6BAAb,EAA4CD,GAA5C,EAAiD,MAAjD,EAAyD,KAAzD,EAAgE,KAAhE,EAAuE,gBAAvE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACoP,gCAAP,GAA0C,UAAUlP,GAAV,EAAe;EACvD,SAAO,KAAKC,OAAL,CAAa,sCAAb,EAAqDD,GAArD,EAA0D,MAA1D,EAAkE,KAAlE,EAAyE,KAAzE,EAAgF,gBAAhF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACqP,0BAAP,GAAoC,UAAUnP,GAAV,EAAe;EACjD,SAAO,KAAKC,OAAL,CAAa,+BAAb,EAA8CD,GAA9C,EAAmD,MAAnD,EAA2D,KAA3D,EAAkE,KAAlE,EAAyE,iBAAzE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACsP,sBAAP,GAAgC,UAAUpP,GAAV,EAAe;EAC7C,SAAO,KAAKC,OAAL,CAAa,2BAAb,EAA0CD,GAA1C,EAA+C,MAA/C,EAAuD,KAAvD,EAA8D,KAA9D,EAAqE,yBAArE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACuP,qBAAP,GAA+B,UAAUrP,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,0BAAb,EAAyCD,GAAzC,EAA8C,MAA9C,EAAsD,KAAtD,EAA6D,KAA7D,EAAoE,yBAApE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACwP,0BAAP,GAAoC,UAAUtP,GAAV,EAAe;EACjD,SAAO,KAAKC,OAAL,CAAa,gCAAb,EAA+CD,GAA/C,EAAoD,MAApD,EAA4D,KAA5D,EAAmE,KAAnE,EAA0E,yBAA1E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACyP,oBAAP,GAA8B,UAAUvP,GAAV,EAAe;EAC3C,SAAO,KAAKC,OAAL,CAAa,yBAAb,EAAwCD,GAAxC,EAA6C,MAA7C,EAAqD,KAArD,EAA4D,KAA5D,EAAmE,yBAAnE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC0P,qBAAP,GAA+B,UAAUxP,GAAV,EAAe;EAC5C,SAAO,KAAKC,OAAL,CAAa,2BAAb,EAA0CD,GAA1C,EAA+C,MAA/C,EAAuD,KAAvD,EAA8D,KAA9D,EAAqE,wBAArE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC2P,kBAAP,GAA4B,UAAUzP,GAAV,EAAe;EACzC,SAAO,KAAKC,OAAL,CAAa,uBAAb,EAAsCD,GAAtC,EAA2C,MAA3C,EAAmD,KAAnD,EAA0D,KAA1D,EAAiE,wBAAjE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC4P,0BAAP,GAAoC,UAAU1P,GAAV,EAAe;EACjD,SAAO,KAAKC,OAAL,CAAa,gCAAb,EAA+CD,GAA/C,EAAoD,MAApD,EAA4D,KAA5D,EAAmE,KAAnE,EAA0E,wBAA1E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC6P,+BAAP,GAAyC,UAAU3P,GAAV,EAAe;EACtD,SAAO,KAAKC,OAAL,CAAa,qCAAb,EAAoDD,GAApD,EAAyD,MAAzD,EAAiE,KAAjE,EAAwE,KAAxE,EAA+E,yBAA/E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC8P,oBAAP,GAA8B,UAAU5P,GAAV,EAAe;EAC3C,SAAO,KAAKC,OAAL,CAAa,yBAAb,EAAwCD,GAAxC,EAA6C,MAA7C,EAAqD,KAArD,EAA4D,KAA5D,EAAmE,yBAAnE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAAC+P,gCAAP,GAA0C,UAAU7P,GAAV,EAAe;EACvD,SAAO,KAAKC,OAAL,CAAa,uCAAb,EAAsDD,GAAtD,EAA2D,MAA3D,EAAmE,KAAnE,EAA0E,KAA1E,EAAiF,yBAAjF,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACgQ,8BAAP,GAAwC,YAAY;EAClD,SAAO,KAAK7P,OAAL,CAAa,oCAAb,EAAmD,IAAnD,EAAyD,MAAzD,EAAiE,KAAjE,EAAwE,KAAxE,EAA+E,gBAA/E,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAH,MAAM,CAACiQ,gBAAP,GAA0B,UAAU/P,GAAV,EAAe;EACvC,SAAO,KAAKC,OAAL,CAAa,qBAAb,EAAoCD,GAApC,EAAyC,MAAzC,EAAiD,KAAjD,EAAwD,KAAxD,EAA+D,aAA/D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACkQ,wBAAP,GAAkC,UAAUhQ,GAAV,EAAe;EAC/C,SAAO,KAAKC,OAAL,CAAa,8BAAb,EAA6CD,GAA7C,EAAkD,MAAlD,EAA0D,KAA1D,EAAiE,KAAjE,EAAwE,aAAxE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACmQ,sBAAP,GAAgC,UAAUjQ,GAAV,EAAe;EAC7C,SAAO,KAAKC,OAAL,CAAa,2BAAb,EAA0CD,GAA1C,EAA+C,MAA/C,EAAuD,KAAvD,EAA8D,KAA9D,EAAqE,mBAArE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACoQ,eAAP,GAAyB,UAAUlQ,GAAV,EAAe;EACtC,SAAO,KAAKC,OAAL,CAAa,mBAAb,EAAkCD,GAAlC,EAAuC,MAAvC,EAA+C,KAA/C,EAAsD,KAAtD,EAA6D,cAA7D,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACqQ,oBAAP,GAA8B,UAAUnQ,GAAV,EAAe;EAC3C,SAAO,KAAKC,OAAL,CAAa,yBAAb,EAAwCD,GAAxC,EAA6C,MAA7C,EAAqD,KAArD,EAA4D,KAA5D,EAAmE,cAAnE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAF,MAAM,CAACsQ,sBAAP,GAAgC,YAAY;EAC1C,SAAO,KAAKnQ,OAAL,CAAa,2BAAb,EAA0C,IAA1C,EAAgD,MAAhD,EAAwD,KAAxD,EAA+D,KAA/D,EAAsE,mBAAtE,CAAP;EACD,CAFD;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACAH,MAAM,CAACuQ,kBAAP,GAA4B,YAAY;EACtC,SAAO,KAAKpQ,OAAL,CAAa,uBAAb,EAAsC,IAAtC,EAA4C,MAA5C,EAAoD,KAApD,EAA2D,KAA3D,EAAkE,mBAAlE,CAAP;EACD,CAFD;;EChsHA,SAASqQ,cAAT,CAAwBC,CAAxB,EAA2B;EACzB,MAAMC,OAAO,GAAG,aAAMD,CAAC,CAACE,UAAF,CAAa,CAAb,EAAgBC,QAAhB,CAAyB,EAAzB,CAAN,EAAqCC,KAArC,CAA2C,CAAC,CAA5C,CAAhB;EACA,sBAAaH,OAAb;EACD;;EAEM,IAAMI,UAAU,GAAG,SAAbA,UAAa,CAACC,SAAD,EAAmE;EAAA,MAAvDC,MAAuD,uEAA9CtR,kBAA8C;EAAA,MAA1BuR,eAA0B,uEAAR,GAAQ;;EAC3F,MAAI,CAACA,eAAL,EAAsB;EACpB,6BAAkBD,MAAlB;EACD;;EACD,MAAIA,MAAM,KAAKtR,kBAAX,IAAiCE,oBAAoB,CAACmR,SAAD,CAApB,KAAoCG,SAAzE,EAAoF;EAClFH,IAAAA,SAAS,GAAGnR,oBAAoB,CAACmR,SAAD,CAAhC;EACAE,IAAAA,eAAe,GAAG,GAAlB;EACD;;EACD,2BAAkBF,SAAlB,SAA8BE,eAA9B,SAAgDD,MAAhD;EACD,CATM;EAUA,IAAMG,sBAAsB,GAAG,SAAzBA,sBAAyB,GAA6B;EAAA,MAA5BH,MAA4B,uEAAnBrR,cAAmB;;EACjE,MAAIqR,MAAM,KAAKrR,cAAf,EAA+B;EAC7BqR,IAAAA,MAAM,kBAAWA,MAAX,CAAN;EACD;;EACD,2BAAkBA,MAAlB;EACD,CALM;EAMA,IAAMI,cAAc,GAAG,SAAjBA,cAAiB,GAAwD;EAAA,MAAvDJ,MAAuD,uEAA9CtR,kBAA8C;EAAA,MAA1BuR,eAA0B,uEAAR,GAAQ;EACpF,MAAIF,SAAS,GAAG,KAAhB;;EACA,MAAIC,MAAM,KAAKtR,kBAAf,EAAmC;EACjCqR,IAAAA,SAAS,GAAGnR,oBAAoB,CAACmR,SAAD,CAAhC;EACAE,IAAAA,eAAe,GAAG,GAAlB;EACD;;EACD,2BAAkBF,SAAlB,SAA8BE,eAA9B,SAAgDD,MAAhD;EACD,CAPM;;EAUA,SAASK,kBAAT,CAA4BC,IAA5B,EAAkC;EACvC,SAAOC,IAAI,CAACC,SAAL,CAAeF,IAAf,EAAqBG,OAArB,CAA6B,kBAA7B,EAAiDjB,cAAjD,CAAP;EACD;EAEM,SAASkB,qBAAT,CAA+BC,SAA/B,EAA0C;EAC/C,SAAO,IAAIC,IAAJ,CAASA,IAAI,CAACC,GAAL,KAAcF,SAAS,GAAG,IAAnC,CAAP;EACD;EAED;;EACO,SAASG,gBAAT,GAA4B;EACjC,SAEI,OAAOC,iBAAP,KAA6B,WAA7B,IACSC,IAAI,YAAYD,iBAF3B;EAAA,KAKM,OAAOE,MAAP,KAAkB,WAAlB,IACK,OAAOC,MAAP,KAAkB,WAP/B;EAUD;EAEM,SAASC,YAAT,GAAwB;EAC7B,SAAO,OAAOD,MAAP,KAAkB,WAAzB;EACD;EAEM,SAASE,WAAT,GAAuB;EAC5B,SAAO,OAAOL,iBAAP,KAA6B,WAA7B,IAA4CC,IAAI,YAAYD,iBAAnE,CAD4B;EAE7B;EAEM,SAASM,uBAAT,CAAiCC,aAAjC,EAAgD;EACrD,MAAMC,eAAe,GAAGD,aAAa,CAAC1B,QAAd,CAAuB,QAAvB,EACrBa,OADqB,CACb,KADa,EACN,GADM,EAErBA,OAFqB,CAEb,KAFa,EAEN,GAFM,EAGrBA,OAHqB,CAGb,IAHa,EAGP,EAHO,CAAxB;EAIA,SAAOc,eAAP;EACD;;ECrED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;MACaC,oBAAb;EAAA;;EAAA;;EACE,gCAAYC,MAAZ,EAAoBC,OAApB,EAA6BC,KAA7B,EAAoC;EAAA;;EAAA;;EAClC,+DAAgCF,MAAhC;EACA,UAAKG,IAAL,GAAY,sBAAZ;EACA,UAAKH,MAAL,GAAcA,MAAd;EACA,UAAKC,OAAL,GAAeA,OAAf;EACA,UAAKC,KAAL,GAAaA,KAAb;EALkC;EAMnC;;EAPH;EAAA,iCAA0CE,KAA1C;;MCLaC,eAAb,GACE,yBAAYL,MAAZ,EAAoBC,OAApB,EAA6BK,MAA7B,EAAqC;EAAA;;EACnC,OAAKN,MAAL,GAAcA,MAAd;EACA,OAAKC,OAAL,GAAeA,OAAf;EACA,OAAKK,MAAL,GAAcA,MAAd;EACD;;EAGH,SAASC,YAAT,CAAsBC,GAAtB,EAA2B;EACzB,SAAOA,GAAG,CAACC,IAAJ,GACJC,IADI,CACC,UAACC,IAAD,EAAU;EACd,QAAIC,WAAJ;;EACA,QAAI;EACFA,MAAAA,WAAW,GAAG9B,IAAI,CAAC+B,KAAL,CAAWF,IAAX,CAAd;EACD,KAFD,CAEE,OAAOT,KAAP,EAAc;EACdU,MAAAA,WAAW,GAAGD,IAAd;EACD;;EAED,UAAM,IAAIZ,oBAAJ,CAAyBS,GAAG,CAACR,MAA7B,EAAqCQ,GAAG,CAACP,OAAzC,EAAkDW,WAAlD,CAAN;EACD,GAVI,CAAP;EAWD;;EAEM,SAASE,aAAT,CAAuBN,GAAvB,EAA4B;EACjC,MAAI,CAACA,GAAG,CAACO,EAAT,EAAa;EACX,WAAOR,YAAY,CAACC,GAAD,CAAnB;EACD;;EACD,SAAOA,GAAG,CAACC,IAAJ,GACJC,IADI,CACC,UAACC,IAAD,EAAU;EACd,QAAIK,cAAJ;;EACA,QAAI;EACFA,MAAAA,cAAc,GAAGlC,IAAI,CAAC+B,KAAL,CAAWF,IAAX,CAAjB;EACD,KAFD,CAEE,OAAOT,KAAP,EAAc;EACdc,MAAAA,cAAc,GAAGL,IAAjB;EACD;;EAED,WAAO,IAAIN,eAAJ,CAAoBG,GAAG,CAACR,MAAxB,EAAgCQ,GAAG,CAACP,OAApC,EAA6Ce,cAA7C,CAAP;EACD,GAVI,CAAP;EAWD;EAEM,SAASC,qBAAT,CAA+BT,GAA/B,EAAoC;EACzC,MAAI,CAACA,GAAG,CAACO,EAAT,EAAa;EACX,WAAOR,YAAY,CAACC,GAAD,CAAnB;EACD;;EACD,SAAO,IAAIU,OAAJ,CAAY,UAACC,OAAD,EAAa;EAC9B,QAAI9B,gBAAgB,EAApB,EAAwB;EACtBmB,MAAAA,GAAG,CAACY,IAAJ,GAAWV,IAAX,CAAgB,UAACC,IAAD;EAAA,eAAUQ,OAAO,CAACR,IAAD,CAAjB;EAAA,OAAhB;EACD,KAFD,MAEO;EACLH,MAAAA,GAAG,CAACa,MAAJ,GAAaX,IAAb,CAAkB,UAACC,IAAD;EAAA,eAAUQ,OAAO,CAACR,IAAD,CAAjB;EAAA,OAAlB;EACD;EACF,GANM,EAMJD,IANI,CAMC,UAACC,IAAD,EAAU;EAChB,QAAML,MAAM,GAAGxB,IAAI,CAAC+B,KAAL,CAAWL,GAAG,CAACP,OAAJ,CAAYqB,GAAZ,CAAgB,oBAAhB,CAAX,CAAf;;EAEA,QAAIjC,gBAAgB,EAApB,EAAwB;EACtBiB,MAAAA,MAAM,CAACiB,QAAP,GAAkBZ,IAAlB;EACD,KAFD,MAEO;EACLL,MAAAA,MAAM,CAACkB,UAAP,GAAoBb,IAApB;EACD;;EAED,WAAO,IAAIN,eAAJ,CAAoBG,GAAG,CAACR,MAAxB,EAAgCQ,GAAG,CAACP,OAApC,EAA6CK,MAA7C,CAAP;EACD,GAhBM,CAAP;EAiBD;;ECrDD,IAAImB,KAAJ;EACA,IAAIC,MAAJ;EACA,IAAIC,OAAJ;;EAGA,IAAMC,qBAAqB,GAAG,MAAM,IAApC;EACA,IAAMC,UAAU,GAAG,GAAnB;EACA,IAAMC,gBAAgB,GAAG,CAAC,QAAD,EAAW,SAAX,EAAsB,QAAtB,CAAzB;EACA,IAAMC,UAAU,GAAG,CAAC,MAAD,EAAS,OAAT,CAAnB;EACA,IAAMC,oBAAoB,GAAG,CAAC,MAAD,EAAS,MAAT,EAAiB,MAAjB,CAA7B;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;MACqBC;EACnB,uBAAYC,OAAZ,EAAqB;EAAA;;EACnBA,IAAAA,OAAO,GAAGA,OAAO,IAAI,EAArB;;EAEA,QAAIxC,YAAY,EAAhB,EAAoB;EAClB+B,MAAAA,KAAK,GAAGhC,MAAM,CAACgC,KAAP,CAAaU,IAAb,CAAkB1C,MAAlB,CAAR;EACAiC,MAAAA,MAAM,GAAGjC,MAAM,CAACiC,MAAP,IAAiBjC,MAAM,CAAC2C,QAAjC,CAFkB;EAGnB,KAHD,MAGO,IAAIzC,WAAW,EAAf,EAAmB;EACxB;EACA8B,MAAAA,KAAK,GAAGlC,IAAI,CAACkC,KAAL,CAAWU,IAAX,CAAgB5C,IAAhB,CAAR;EACAmC,MAAAA,MAAM,GAAGnC,IAAI,CAACmC,MAAd;EACA;EACD,KALM,MAKA;EACLD,MAAAA,KAAK,GAAGY,OAAO,CAAC,YAAD,CAAf,CADK;;EAELX,MAAAA,MAAM,GAAGW,OAAO,CAAC,QAAD,CAAhB,CAFK;EAGN;;EAED,QAAI,OAAOC,WAAP,KAAuB,WAA3B,EAAwC;EACtCX,MAAAA,OAAO,GAAGU,OAAO,CAAC,MAAD,CAAP,CAAgBC,WAA1B,CADsC;EAEvC,KAFD,MAEO;EACLX,MAAAA,OAAO,GAAGW,WAAV;EACD;;EAED,SAAKb,KAAL,GAAaS,OAAO,CAACT,KAAR,IAAiBA,KAA9B;EACA,SAAKc,WAAL,GAAmBL,OAAO,CAACK,WAA3B;EACA,SAAKC,oBAAL,GAA4BN,OAAO,CAACM,oBAApC;EACA,SAAKC,YAAL,GAAoBP,OAAO,CAACO,YAA5B;EACA,SAAKC,QAAL,GAAgBR,OAAO,CAACQ,QAAxB;EACA,SAAKC,YAAL,GAAoBT,OAAO,CAACS,YAA5B;EAEA,SAAKpE,MAAL,GAAc2D,OAAO,CAAC3D,MAAtB;EACA,SAAKC,eAAL,GAAuB0D,OAAO,CAAC1D,eAA/B;EACA,SAAKoE,aAAL,GAAqBV,OAAO,CAACU,aAA7B;EACA,SAAKC,UAAL,GAAkBX,OAAO,CAACW,UAA1B;EACD;EAED;EACF;EACA;EACA;EACA;;;;;aACE,wBAAeN,WAAf,EAA4B;EAC1B,WAAKA,WAAL,GAAmBA,WAAnB;EACD;EAED;EACF;EACA;EACA;;;;aACE,0BAAiB;EACf,aAAO,KAAKA,WAAZ;EACD;EAED;EACF;EACA;EACA;EACA;;;;aACE,qBAAYG,QAAZ,EAAsB;EACpB,WAAKA,QAAL,GAAgBA,QAAhB;EACD;EAED;EACF;EACA;EACA;;;;aACE,uBAAc;EACZ,aAAO,KAAKA,QAAZ;EACD;EAED;EACF;EACA;EACA;EACA;;;;aACE,yBAAgBC,YAAhB,EAA8B;EAC5B,WAAKA,YAAL,GAAoBA,YAApB;EACD;EAED;EACF;EACA;EACA;;;;aACE,2BAAkB;EAChB,aAAO,KAAKA,YAAZ;EACD;EAED;EACF;EACA;EACA;;;;aACE,2BAAkB;EAChB,aAAO,KAAKF,YAAZ;EACD;EAED;EACF;EACA;EACA;;;;aACE,yBAAgBA,YAAhB,EAA8B;EAC5B,WAAKA,YAAL,GAAoBA,YAApB;EACD;EAED;EACF;EACA;EACA;;;;aACE,mCAA0B;EACxB,aAAO,KAAKD,oBAAZ;EACD;EAED;EACF;EACA;EACA;;;;aACE,iCAAwBA,oBAAxB,EAA8C;EAC5C,WAAKA,oBAAL,GAA4BA,oBAA5B;EACD;EAED;EACF;EACA;EACA;;;;aACE,yBAAgBM,YAAhB,EAA8B;EAC5B,WAAKA,YAAL,GAAoBA,YAApB;EACD;EAED;EACF;EACA;EACA;;;;aACE,2BAAkB;EAChB,aAAO,KAAKA,YAAZ;EACD;;;aAED,iCAAwB;EAAA;;EACtB,UAAMC,OAAO,GAAG,IAAIpB,OAAJ,EAAhB;EACA,UAAMqB,QAAQ,GAAGD,OAAO,CAACE,MAAR,CAAe,KAAKH,YAApB,CAAjB;EACA,UAAII,aAAJ;;EACA,UAAIxD,YAAY,MAAMC,WAAW,EAAjC,EAAqC;EACnC,eAAO+B,MAAM,CAACyB,MAAP,CAAcC,MAAd,CAAqB,SAArB,EAAgCJ,QAAhC,EACJtC,IADI,CACC,UAAC2C,YAAD,EAAkB;EACtB,cAAMC,YAAY,GAAGC,IAAI,CAACC,MAAM,CAACC,YAAP,CAAoBC,KAApB,CAA0B,IAA1B,EAAgC,IAAIC,UAAJ,CAAeN,YAAf,CAAhC,CAAD,CAAzB;EACAH,UAAAA,aAAa,GAAGtD,uBAAuB,CAAC0D,YAAD,CAAvB,CAAsCM,MAAtC,CAA6C,CAA7C,EAAgD,GAAhD,CAAhB;EACA,UAAA,KAAI,CAACV,aAAL,GAAqBA,aAArB;EACD,SALI,CAAP;EAMD;;EACD,UAAMG,YAAY,GAAG3B,MAAM,CAACmC,UAAP,CAAkB,QAAlB,EAA4BC,MAA5B,CAAmCd,QAAnC,EAA6CI,MAA7C,EAArB;EACAF,MAAAA,aAAa,GAAGtD,uBAAuB,CAACyD,YAAD,CAAvC;EACA,WAAKH,aAAL,GAAqBA,aAArB;EACA,aAAOhC,OAAO,CAACC,OAAR,EAAP;EACD;;;aAED,6BAAoB;EAClB,UAAI2B,YAAJ;;EACA,UAAIpD,YAAY,MAAMC,WAAW,EAAjC,EAAqC;EACnC,YAAMoE,KAAK,GAAG,IAAIJ,UAAJ,CAAe9B,UAAf,CAAd;EACA,YAAMmC,gBAAgB,GAAGtC,MAAM,CAACuC,eAAP,CAAuBF,KAAvB,CAAzB;EACA,YAAMT,YAAY,GAAGC,IAAI,CAACS,gBAAD,CAAzB;EACAlB,QAAAA,YAAY,GAAGlD,uBAAuB,CAAC0D,YAAD,CAAvB,CAAsCM,MAAtC,CAA6C,CAA7C,EAAgD,GAAhD,CAAf;EACD,OALD,MAKO;EACL,YAAMM,WAAW,GAAGxC,MAAM,CAACwC,WAAP,CAAmBrC,UAAnB,CAApB;EACAiB,QAAAA,YAAY,GAAGlD,uBAAuB,CAACsE,WAAD,CAAvB,CAAqCN,MAArC,CAA4C,CAA5C,EAA+C,GAA/C,CAAf;EACD;;EACD,WAAKd,YAAL,GAAoBA,YAApB;EAEA,aAAO,KAAKqB,qBAAL,EAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;aACE,8BAAqBC,WAArB,EAAkCC,KAAlC,EAAmJ;EAAA;;EAAA,UAA1GC,QAA0G,uEAA/F,OAA+F;EAAA,UAAtFC,eAAsF,uEAApE,IAAoE;EAAA,UAA9DC,KAA8D,uEAAtD,IAAsD;EAAA,UAAhDC,oBAAgD,uEAAzB,MAAyB;EAAA,UAAjBC,OAAiB,uEAAP,KAAO;EACjJ,UAAMhC,QAAQ,GAAG,KAAKiC,WAAL,EAAjB;EACA,UAAMC,OAAO,GAAGlG,sBAAsB,CAAC,KAAKH,MAAN,CAAtC;;EAEA,UAAI,CAACmE,QAAL,EAAe;EACb,cAAM,IAAItC,KAAJ,CAAU,0EAAV,CAAN;EACD;;EACD,UAAIkE,QAAQ,KAAK,MAAb,IAAuB,CAACF,WAA5B,EAAyC;EACvC,cAAM,IAAIhE,KAAJ,CAAU,6BAAV,CAAN;EACD;;EACD,UAAI,CAAC2B,UAAU,CAAC8C,QAAX,CAAoBP,QAApB,CAAL,EAAoC;EAClC,cAAM,IAAIlE,KAAJ,CAAU,0CAAV,CAAN;EACD;;EACD,UAAImE,eAAe,IAAI,CAACzC,gBAAgB,CAAC+C,QAAjB,CAA0BN,eAA1B,CAAxB,EAAoE;EAClE,cAAM,IAAInE,KAAJ,CAAU,sDAAV,CAAN;EACD;;EACD,UAAIoE,KAAK,IAAI,EAAEA,KAAK,YAAYM,KAAnB,CAAb,EAAwC;EACtC,cAAM,IAAI1E,KAAJ,CAAU,mCAAV,CAAN;EACD;;EACD,UAAI,CAAC4B,oBAAoB,CAAC6C,QAArB,CAA8BJ,oBAA9B,CAAL,EAA0D;EACxD,cAAM,IAAIrE,KAAJ,CAAU,kDAAV,CAAN;EACD;;EAED,UAAI2E,OAAJ;;EACA,UAAIT,QAAQ,KAAK,MAAjB,EAAyB;EACvBS,QAAAA,OAAO,aAAMH,OAAN,2CAA8ClC,QAA9C,CAAP;EACD,OAFD,MAEO;EACLqC,QAAAA,OAAO,aAAMH,OAAN,4CAA+ClC,QAA/C,CAAP;EACD;;EAED,UAAI0B,WAAJ,EAAiB;EACfW,QAAAA,OAAO,4BAAqBX,WAArB,CAAP;EACD;;EACD,UAAIC,KAAJ,EAAW;EACTU,QAAAA,OAAO,qBAAcV,KAAd,CAAP;EACD;;EACD,UAAIE,eAAJ,EAAqB;EACnBQ,QAAAA,OAAO,iCAA0BR,eAA1B,CAAP;EACD;;EACD,UAAIC,KAAJ,EAAW;EACTO,QAAAA,OAAO,qBAAcP,KAAK,CAACQ,IAAN,CAAW,GAAX,CAAd,CAAP;EACD;;EACD,UAAIP,oBAAoB,KAAK,MAA7B,EAAqC;EACnCM,QAAAA,OAAO,sCAA+BN,oBAA/B,CAAP;EACD;;EACD,UAAIC,OAAJ,EAAa;EACX,eAAO,KAAKO,iBAAL,GACJvE,IADI,CACC,YAAM;EACVqE,UAAAA,OAAO,IAAI,6BAAX;EACAA,UAAAA,OAAO,8BAAuB,MAAI,CAAC7B,aAA5B,CAAP;EACA,iBAAO6B,OAAP;EACD,SALI,CAAP;EAMD;;EACD,aAAO7D,OAAO,CAACC,OAAR,CAAgB4D,OAAhB,CAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;;aACE,gCAAuBX,WAAvB,EAAoCc,IAApC,EAA0C;EACxC,UAAMxC,QAAQ,GAAG,KAAKiC,WAAL,EAAjB;EACA,UAAMhC,YAAY,GAAG,KAAKwC,eAAL,EAArB;;EAEA,UAAI,CAACzC,QAAL,EAAe;EACb,cAAM,IAAItC,KAAJ,CAAU,0EAAV,CAAN;EACD;;EACD,UAAIgF,IAAI,GAAGzG,cAAc,CAAC,KAAKJ,MAAN,EAAc,KAAKC,eAAnB,CAAzB;EACA4G,MAAAA,IAAI,IAAI,gCAAR;EACAA,MAAAA,IAAI,oBAAaF,IAAb,CAAJ;EACAE,MAAAA,IAAI,yBAAkB1C,QAAlB,CAAJ;;EAEA,UAAIC,YAAJ,EAAkB;EAChByC,QAAAA,IAAI,6BAAsBzC,YAAtB,CAAJ;EACD,OAFD,MAEO;EACL,YAAI,CAAC,KAAKG,YAAV,EAAwB;EACtB,gBAAM,IAAI1C,KAAJ,CAAU,wFAAV,CAAN;EACD;;EACDgF,QAAAA,IAAI,6BAAsB,KAAKtC,YAA3B,CAAJ;EACD;;EACD,UAAIsB,WAAJ,EAAiB;EACfgB,QAAAA,IAAI,4BAAqBhB,WAArB,CAAJ;EACD;;EAED,UAAMiB,YAAY,GAAG;EACnBC,QAAAA,MAAM,EAAE,MADW;EAEnBrF,QAAAA,OAAO,EAAE;EACP,0BAAgB;EADT;EAFU,OAArB;EAMA,aAAO,KAAKwB,KAAL,CAAW2D,IAAX,EAAiBC,YAAjB,EACJ3E,IADI,CACC,UAACF,GAAD;EAAA,eAASM,aAAa,CAACN,GAAD,CAAtB;EAAA,OADD,CAAP;EAED;EAED;EACF;EACA;EACA;EACA;;;;aACE,sCAA6B;EAC3B,UAAM+E,UAAU,GAAG,KAAKC,eAAL,MAA0B,KAAKb,WAAL,EAA7C;EACA,UAAMc,YAAY,GAAG,CAAC,KAAKC,uBAAL,EAAD,IACT,IAAIvG,IAAJ,CAASA,IAAI,CAACC,GAAL,KAAawC,qBAAtB,CAAD,IAAkD,KAAK8D,uBAAL,EAD7D;EAEA,UAAMC,UAAU,GAAG,CAAC,KAAKC,cAAL,EAApB;;EACA,UAAI,CAACH,YAAY,IAAIE,UAAjB,KAAgCJ,UAApC,EAAgD;EAC9C,eAAO,KAAKM,kBAAL,EAAP;EACD;;EACD,aAAO3E,OAAO,CAACC,OAAR,EAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;;;;aACE,8BAAiC;EAAA;;EAAA,UAAdqD,KAAc,uEAAN,IAAM;EAC/B,UAAM9B,QAAQ,GAAG,KAAKiC,WAAL,EAAjB;EACA,UAAMhC,YAAY,GAAG,KAAKwC,eAAL,EAArB;;EAEA,UAAI,CAACzC,QAAL,EAAe;EACb,cAAM,IAAItC,KAAJ,CAAU,0EAAV,CAAN;EACD;;EACD,UAAIoE,KAAK,IAAI,EAAEA,KAAK,YAAYM,KAAnB,CAAb,EAAwC;EACtC,cAAM,IAAI1E,KAAJ,CAAU,mCAAV,CAAN;EACD;;EAED,UAAI0F,UAAU,GAAGnH,cAAc,CAAC,KAAKJ,MAAN,EAAc,KAAKC,eAAnB,CAA/B;EACA,UAAM6G,YAAY,GAAG;EACnBpF,QAAAA,OAAO,EAAE;EAAE,0BAAgB;EAAlB,SADU;EAEnBqF,QAAAA,MAAM,EAAE;EAFW,OAArB;;EAKA,UAAI,KAAKzC,UAAT,EAAqB;EACnB,YAAMkD,IAAI,GAAG;EAAEC,UAAAA,UAAU,EAAE,eAAd;EAA+BC,UAAAA,SAAS,EAAEvD,QAA1C;EAAoDwD,UAAAA,aAAa,EAAE,KAAKV,eAAL;EAAnE,SAAb;;EAEA,YAAI7C,YAAJ,EAAkB;EAChBoD,UAAAA,IAAI,CAACI,aAAL,GAAqBxD,YAArB;EACD;;EACD,YAAI6B,KAAJ,EAAW;EACTuB,UAAAA,IAAI,CAACvB,KAAL,GAAaA,KAAK,CAACQ,IAAN,CAAW,GAAX,CAAb;EACD;;EAEDK,QAAAA,YAAY,CAACU,IAAb,GAAoBA,IAApB;EACD,OAXD,MAWO;EACLD,QAAAA,UAAU,sDAA+C,KAAKN,eAAL,EAA/C,CAAV;EACAM,QAAAA,UAAU,yBAAkBpD,QAAlB,CAAV;;EACA,YAAIC,YAAJ,EAAkB;EAChBmD,UAAAA,UAAU,6BAAsBnD,YAAtB,CAAV;EACD;;EACD,YAAI6B,KAAJ,EAAW;EACTsB,UAAAA,UAAU,qBAActB,KAAK,CAACQ,IAAN,CAAW,GAAX,CAAd,CAAV;EACD;EACF;;EAED,aAAO,KAAKvD,KAAL,CAAWqE,UAAX,EAAuBT,YAAvB,EACJ3E,IADI,CACC,UAACF,GAAD;EAAA,eAASM,aAAa,CAACN,GAAD,CAAtB;EAAA,OADD,EAEJE,IAFI,CAEC,UAACF,GAAD,EAAS;EACb,QAAA,MAAI,CAAC4F,cAAL,CAAoB5F,GAAG,CAACF,MAAJ,CAAW+F,YAA/B;;EACA,QAAA,MAAI,CAACC,uBAAL,CAA6BrH,qBAAqB,CAACuB,GAAG,CAACF,MAAJ,CAAWiG,UAAZ,CAAlD;EACD,OALI,CAAP;EAMD;;;;;;EClYH,IAAMC,GAAG,GAAG,OAAOjD,IAAP,KAAgB,WAAhB,GACR,UAACkD,GAAD;EAAA,SAASC,MAAM,CAACC,IAAP,CAAYF,GAAZ,EAAiBtI,QAAjB,CAA0B,QAA1B,CAAT;EAAA,CADQ,GAERoF,IAFJ;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;MACqBqD;EACnB,mBAAY1E,OAAZ,EAAqB;EAAA;;EACnBA,IAAAA,OAAO,GAAGA,OAAO,IAAI,EAArB;;EAEA,QAAIA,OAAO,CAAC2E,IAAZ,EAAkB;EAChB,WAAKA,IAAL,GAAY3E,OAAO,CAAC2E,IAApB;EACD,KAFD,MAEO;EACL,WAAKA,IAAL,GAAY,IAAI5E,WAAJ,CAAgBC,OAAhB,CAAZ;EACD;;EAED,SAAKT,KAAL,GAAaS,OAAO,CAACT,KAAR,IAAiB,KAAKoF,IAAL,CAAUpF,KAAxC;EACA,SAAKqF,UAAL,GAAkB5E,OAAO,CAAC4E,UAA1B;EACA,SAAKC,WAAL,GAAmB7E,OAAO,CAAC6E,WAA3B;EACA,SAAKC,QAAL,GAAgB9E,OAAO,CAAC8E,QAAxB;EAEA,SAAKzI,MAAL,GAAc2D,OAAO,CAAC3D,MAAR,IAAkB,KAAKsI,IAAL,CAAUtI,MAA1C;EACA,SAAKC,eAAL,GAAuB0D,OAAO,CAAC1D,eAAR,IAA2B,KAAKqI,IAAL,CAAUrI,eAA5D;EACA,SAAKoE,aAAL,GAAqBV,OAAO,CAACU,aAAR,IAAyB,KAAKiE,IAAL,CAAUjE,aAAxD;EAEAqE,IAAAA,MAAM,CAACC,MAAP,CAAc,IAAd,EAAoB3Z,MAApB;EACD;;;;aAED,iBAAQ6X,IAAR,EAAcvG,IAAd,EAAoBgI,IAApB,EAA0BM,IAA1B,EAAgCC,KAAhC,EAAuC;EACrC;EACA,cAAQA,KAAR;EACE,aAAK3a,GAAL;EACE,iBAAO,KAAK4a,UAAL,CAAgBjC,IAAhB,EAAsBvG,IAAtB,EAA4BgI,IAA5B,EAAkCM,IAAlC,CAAP;;EACF,aAAKxa,QAAL;EACE,iBAAO,KAAK2a,eAAL,CAAqBlC,IAArB,EAA2BvG,IAA3B,EAAiCgI,IAAjC,EAAuCM,IAAvC,CAAP;;EACF,aAAKza,MAAL;EACE,iBAAO,KAAK6a,aAAL,CAAmBnC,IAAnB,EAAyBvG,IAAzB,EAA+BgI,IAA/B,EAAqCM,IAArC,CAAP;;EACF;EACE,gBAAM,IAAI/G,KAAJ,kCAAoCgH,KAApC,EAAN;EARJ;EAUD;;;aAED,oBAAWhC,IAAX,EAAiBW,IAAjB,EAAuBc,IAAvB,EAA6BM,IAA7B,EAAmC;EAAA;;EACjC,aAAO,KAAKN,IAAL,CAAUW,0BAAV,GACJ9G,IADI,CACC,YAAM;EACV,YAAM2E,YAAY,GAAG;EACnBC,UAAAA,MAAM,EAAE,MADW;EAEnBS,UAAAA,IAAI,EAAGA,IAAD,GAASjH,IAAI,CAACC,SAAL,CAAegH,IAAf,CAAT,GAAgC,IAFnB;EAGnB9F,UAAAA,OAAO,EAAE;EAHU,SAArB;;EAMA,YAAI8F,IAAJ,EAAU;EACRV,UAAAA,YAAY,CAACpF,OAAb,CAAqB,cAArB,IAAuC,kBAAvC;EACD;;EAED,QAAA,KAAI,CAACwH,cAAL,CAAoBZ,IAApB,EAA0BxB,YAA1B;;EACA,QAAA,KAAI,CAACqC,gBAAL,CAAsBrC,YAAtB;;EAEA,eAAOA,YAAP;EACD,OAhBI,EAiBJ3E,IAjBI,CAiBC,UAAC2E,YAAD;EAAA,eAAkB,KAAI,CAAC5D,KAAL,CACtBpD,UAAU,CAAC8I,IAAD,EAAO,KAAI,CAAC5I,MAAZ,EAAoB,KAAI,CAACC,eAAzB,CAAV,GAAsD4G,IADhC,EAEtBC,YAFsB,CAAlB;EAAA,OAjBD,EAqBJ3E,IArBI,CAqBC,UAACF,GAAD;EAAA,eAASM,aAAa,CAACN,GAAD,CAAtB;EAAA,OArBD,CAAP;EAsBD;;;aAED,yBAAgB4E,IAAhB,EAAsBvG,IAAtB,EAA4BgI,IAA5B,EAAkCM,IAAlC,EAAwC;EAAA;;EACtC,aAAO,KAAKN,IAAL,CAAUW,0BAAV,GACJ9G,IADI,CACC,YAAM;EACV,YAAM2E,YAAY,GAAG;EACnBC,UAAAA,MAAM,EAAE,MADW;EAEnBrF,UAAAA,OAAO,EAAE;EACP,+BAAmBrB,kBAAkB,CAACC,IAAD;EAD9B;EAFU,SAArB;;EAOA,QAAA,MAAI,CAAC4I,cAAL,CAAoBZ,IAApB,EAA0BxB,YAA1B;;EACA,QAAA,MAAI,CAACqC,gBAAL,CAAsBrC,YAAtB;;EAEA,eAAOA,YAAP;EACD,OAbI,EAcJ3E,IAdI,CAcC,UAAC2E,YAAD;EAAA,eAAkB,MAAI,CAAC5D,KAAL,CACtBpD,UAAU,CAAC8I,IAAD,EAAO,MAAI,CAAC5I,MAAZ,EAAoB,MAAI,CAACC,eAAzB,CAAV,GAAsD4G,IADhC,EAEtBC,YAFsB,CAAlB;EAAA,OAdD,EAkBJ3E,IAlBI,CAkBC,UAACF,GAAD;EAAA,eAASS,qBAAqB,CAACT,GAAD,CAA9B;EAAA,OAlBD,CAAP;EAmBD;;;aAED,uBAAc4E,IAAd,EAAoBvG,IAApB,EAA0BgI,IAA1B,EAAgCM,IAAhC,EAAsC;EAAA;;EACpC,aAAO,KAAKN,IAAL,CAAUW,0BAAV,GACJ9G,IADI,CACC,YAAM;EAAA,YACFiH,QADE,GACW9I,IADX,CACF8I,QADE;EAEV,eAAO9I,IAAI,CAAC8I,QAAZ;EAEA,YAAMtC,YAAY,GAAG;EACnBU,UAAAA,IAAI,EAAE4B,QADa;EAEnBrC,UAAAA,MAAM,EAAE,MAFW;EAGnBrF,UAAAA,OAAO,EAAE;EACP,4BAAgB,0BADT;EAEP,+BAAmBrB,kBAAkB,CAACC,IAAD;EAF9B;EAHU,SAArB;;EASA,QAAA,MAAI,CAAC4I,cAAL,CAAoBZ,IAApB,EAA0BxB,YAA1B;;EACA,QAAA,MAAI,CAACqC,gBAAL,CAAsBrC,YAAtB;;EAEA,eAAOA,YAAP;EACD,OAlBI,EAmBJ3E,IAnBI,CAmBC,UAAC2E,YAAD;EAAA,eAAkB,MAAI,CAAC5D,KAAL,CACtBpD,UAAU,CAAC8I,IAAD,EAAO,MAAI,CAAC5I,MAAZ,EAAoB,MAAI,CAACC,eAAzB,CAAV,GAAsD4G,IADhC,EAEtBC,YAFsB,CAAlB;EAAA,OAnBD,EAuBJ3E,IAvBI,CAuBC,UAACF,GAAD;EAAA,eAASM,aAAa,CAACN,GAAD,CAAtB;EAAA,OAvBD,CAAP;EAwBD;;;aAED,wBAAeqG,IAAf,EAAqBxB,YAArB,EAAmC;EACjC;EACA,UAAIwB,IAAI,CAACe,KAAL,CAAW,GAAX,EAAgBC,MAAhB,GAAyB,CAA7B,EAAgC;EAC9B,YAAMC,SAAS,GAAGjB,IAAI,CAAC7H,OAAL,CAAa,GAAb,EAAkB,EAAlB,EAAsB4I,KAAtB,CAA4B,GAA5B,CAAlB;;EACA,YAAIE,SAAS,CAACjD,QAAV,CAAmBhY,SAAnB,KAAiC,KAAKga,IAAL,CAAUjB,cAAV,EAArC,EAAiE;EAC/DiB,UAAAA,IAAI,GAAGha,SAAP;EACD,SAFD,MAEO,IAAIib,SAAS,CAACjD,QAAV,CAAmB/X,SAAnB,KAAiC,KAAK+Z,IAAL,CAAUjB,cAAV,EAArC,EAAiE;EACtEiB,UAAAA,IAAI,GAAG/Z,SAAP;EACD,SAFM,MAEA,IAAIgb,SAAS,CAACjD,QAAV,CAAmBjY,QAAnB,CAAJ,EAAkC;EACvCia,UAAAA,IAAI,GAAGja,QAAP;EACD;EACF;;EAED,cAAQia,IAAR;EACE,aAAKja,QAAL;EACE,cAAI,KAAKia,IAAL,CAAUnE,QAAV,IAAsB,KAAKmE,IAAL,CAAUlE,YAApC,EAAkD;EAChD,gBAAMoF,UAAU,GAAGvB,GAAG,WAAI,KAAKK,IAAL,CAAUnE,QAAd,cAA0B,KAAKmE,IAAL,CAAUlE,YAApC,EAAtB;EACA0C,YAAAA,YAAY,CAACpF,OAAb,CAAqB+H,aAArB,mBAA8CD,UAA9C;EACD;;EACD;;EACF,aAAKjb,SAAL;EACA,aAAKD,SAAL;EACE,cAAI,KAAKga,IAAL,CAAUjB,cAAV,EAAJ,EAAgC;EAC9BP,YAAAA,YAAY,CAACpF,OAAb,CAAqB+H,aAArB,oBAA+C,KAAKnB,IAAL,CAAUjB,cAAV,EAA/C;EACD;;EACD;;EACF,aAAK7Y,OAAL;EACA,aAAKC,MAAL;EACE;;EACF;EACE,gBAAM,IAAIoT,KAAJ,gCAAkCyG,IAAlC,EAAN;EAjBJ;EAmBD;;;aAED,0BAAiB3E,OAAjB,EAA0B;EAAA;;EACxB,UAAI,KAAK4E,UAAT,EAAqB;EACnB5E,QAAAA,OAAO,CAACjC,OAAR,CAAgB,yBAAhB,IAA6C,KAAK6G,UAAlD;EACD;;EACD,UAAI,KAAKC,WAAT,EAAsB;EACpB7E,QAAAA,OAAO,CAACjC,OAAR,CAAgB,0BAAhB,IAA8C,KAAK8G,WAAnD;EACD;;EACD,UAAI,KAAKC,QAAT,EAAmB;EACjB9E,QAAAA,OAAO,CAACjC,OAAR,CAAgB,uBAAhB,IAA2C,KAAK+G,QAAhD;EACD;;EACD,UAAI,KAAKpE,aAAT,EAAwB;EACtB,YAAMqF,UAAU,GAAGhB,MAAM,CAACiB,IAAP,CAAY,KAAKtF,aAAjB,CAAnB;EACAqF,QAAAA,UAAU,CAACE,OAAX,CAAmB,UAACC,MAAD,EAAY;EAC7BlG,UAAAA,OAAO,CAACjC,OAAR,CAAgBmI,MAAhB,IAA0B,MAAI,CAACxF,aAAL,CAAmBwF,MAAnB,CAA1B;EACD,SAFD;EAGD;EACF;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/node_modules/tr46/dropbox/dist/Dropbox-sdk.min.js b/node_modules/tr46/dropbox/dist/Dropbox-sdk.min.js new file mode 100644 index 0000000000000000000000000000000000000000..fef9d0f3cc10c5a160a5a5838f2e3f20e3f559ab --- /dev/null +++ b/node_modules/tr46/dropbox/dist/Dropbox-sdk.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Dropbox={})}(this,(function(e){"use strict";function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var r=0;t.length>r;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function i(e,t,i){return t&&r(e.prototype,t),i&&r(e,i),e}function s(e){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function n(e,t){return(n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function a(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function o(e,t,r){return(o=a()?Reflect.construct:function(e,t,r){var i=[null];i.push.apply(i,t);var s=new(Function.bind.apply(e,i));return r&&n(s,r.prototype),s}).apply(null,arguments)}function u(e){var t="function"==typeof Map?new Map:void 0;return(u=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return o(e,arguments,s(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),n(r,e)})(e)}function c(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}var p="app",l="user",f="team",m="dropboxapi.com",h="dropbox.com",d={api:"api",notify:"bolt",content:"api-content"},_={};function g(e){var t="000".concat(e.charCodeAt(0).toString(16)).slice(-4);return"\\u".concat(t)}_.accountSetProfilePhoto=function(e){return this.request("account/set_profile_photo",e,"user","api","rpc","account_info.write")},_.authTokenFromOauth1=function(e){return this.request("auth/token/from_oauth1",e,"app","api","rpc",null)},_.authTokenRevoke=function(){return this.request("auth/token/revoke",null,"user","api","rpc",null)},_.checkApp=function(e){return this.request("check/app",e,"app","api","rpc",null)},_.checkUser=function(e){return this.request("check/user",e,"user","api","rpc","account_info.read")},_.contactsDeleteManualContacts=function(){return this.request("contacts/delete_manual_contacts",null,"user","api","rpc","contacts.write")},_.contactsDeleteManualContactsBatch=function(e){return this.request("contacts/delete_manual_contacts_batch",e,"user","api","rpc","contacts.write")},_.filePropertiesPropertiesAdd=function(e){return this.request("file_properties/properties/add",e,"user","api","rpc","files.metadata.write")},_.filePropertiesPropertiesOverwrite=function(e){return this.request("file_properties/properties/overwrite",e,"user","api","rpc","files.metadata.write")},_.filePropertiesPropertiesRemove=function(e){return this.request("file_properties/properties/remove",e,"user","api","rpc","files.metadata.write")},_.filePropertiesPropertiesSearch=function(e){return this.request("file_properties/properties/search",e,"user","api","rpc","files.metadata.read")},_.filePropertiesPropertiesSearchContinue=function(e){return this.request("file_properties/properties/search/continue",e,"user","api","rpc","files.metadata.read")},_.filePropertiesPropertiesUpdate=function(e){return this.request("file_properties/properties/update",e,"user","api","rpc","files.metadata.write")},_.filePropertiesTemplatesAddForTeam=function(e){return this.request("file_properties/templates/add_for_team",e,"team","api","rpc","files.team_metadata.write")},_.filePropertiesTemplatesAddForUser=function(e){return this.request("file_properties/templates/add_for_user",e,"user","api","rpc","files.metadata.write")},_.filePropertiesTemplatesGetForTeam=function(e){return this.request("file_properties/templates/get_for_team",e,"team","api","rpc","files.team_metadata.write")},_.filePropertiesTemplatesGetForUser=function(e){return this.request("file_properties/templates/get_for_user",e,"user","api","rpc","files.metadata.read")},_.filePropertiesTemplatesListForTeam=function(){return this.request("file_properties/templates/list_for_team",null,"team","api","rpc","files.team_metadata.write")},_.filePropertiesTemplatesListForUser=function(){return this.request("file_properties/templates/list_for_user",null,"user","api","rpc","files.metadata.read")},_.filePropertiesTemplatesRemoveForTeam=function(e){return this.request("file_properties/templates/remove_for_team",e,"team","api","rpc","files.team_metadata.write")},_.filePropertiesTemplatesRemoveForUser=function(e){return this.request("file_properties/templates/remove_for_user",e,"user","api","rpc","files.metadata.write")},_.filePropertiesTemplatesUpdateForTeam=function(e){return this.request("file_properties/templates/update_for_team",e,"team","api","rpc","files.team_metadata.write")},_.filePropertiesTemplatesUpdateForUser=function(e){return this.request("file_properties/templates/update_for_user",e,"user","api","rpc","files.metadata.write")},_.fileRequestsCount=function(){return this.request("file_requests/count",null,"user","api","rpc","file_requests.read")},_.fileRequestsCreate=function(e){return this.request("file_requests/create",e,"user","api","rpc","file_requests.write")},_.fileRequestsDelete=function(e){return this.request("file_requests/delete",e,"user","api","rpc","file_requests.write")},_.fileRequestsDeleteAllClosed=function(){return this.request("file_requests/delete_all_closed",null,"user","api","rpc","file_requests.write")},_.fileRequestsGet=function(e){return this.request("file_requests/get",e,"user","api","rpc","file_requests.read")},_.fileRequestsListV2=function(e){return this.request("file_requests/list_v2",e,"user","api","rpc","file_requests.read")},_.fileRequestsList=function(){return this.request("file_requests/list",null,"user","api","rpc","file_requests.read")},_.fileRequestsListContinue=function(e){return this.request("file_requests/list/continue",e,"user","api","rpc","file_requests.read")},_.fileRequestsUpdate=function(e){return this.request("file_requests/update",e,"user","api","rpc","file_requests.write")},_.filesAlphaGetMetadata=function(e){return this.request("files/alpha/get_metadata",e,"user","api","rpc","files.metadata.read")},_.filesAlphaUpload=function(e){return this.request("files/alpha/upload",e,"user","content","upload","files.content.write")},_.filesCopyV2=function(e){return this.request("files/copy_v2",e,"user","api","rpc","files.content.write")},_.filesCopy=function(e){return this.request("files/copy",e,"user","api","rpc","files.content.write")},_.filesCopyBatchV2=function(e){return this.request("files/copy_batch_v2",e,"user","api","rpc","files.content.write")},_.filesCopyBatch=function(e){return this.request("files/copy_batch",e,"user","api","rpc","files.content.write")},_.filesCopyBatchCheckV2=function(e){return this.request("files/copy_batch/check_v2",e,"user","api","rpc","files.content.write")},_.filesCopyBatchCheck=function(e){return this.request("files/copy_batch/check",e,"user","api","rpc","files.content.write")},_.filesCopyReferenceGet=function(e){return this.request("files/copy_reference/get",e,"user","api","rpc","files.content.write")},_.filesCopyReferenceSave=function(e){return this.request("files/copy_reference/save",e,"user","api","rpc","files.content.write")},_.filesCreateFolderV2=function(e){return this.request("files/create_folder_v2",e,"user","api","rpc","files.content.write")},_.filesCreateFolder=function(e){return this.request("files/create_folder",e,"user","api","rpc","files.content.write")},_.filesCreateFolderBatch=function(e){return this.request("files/create_folder_batch",e,"user","api","rpc","files.content.write")},_.filesCreateFolderBatchCheck=function(e){return this.request("files/create_folder_batch/check",e,"user","api","rpc","files.content.write")},_.filesDeleteV2=function(e){return this.request("files/delete_v2",e,"user","api","rpc","files.content.write")},_.filesDelete=function(e){return this.request("files/delete",e,"user","api","rpc","files.content.write")},_.filesDeleteBatch=function(e){return this.request("files/delete_batch",e,"user","api","rpc","files.content.write")},_.filesDeleteBatchCheck=function(e){return this.request("files/delete_batch/check",e,"user","api","rpc","files.content.write")},_.filesDownload=function(e){return this.request("files/download",e,"user","content","download","files.content.read")},_.filesDownloadZip=function(e){return this.request("files/download_zip",e,"user","content","download","files.content.read")},_.filesExport=function(e){return this.request("files/export",e,"user","content","download","files.content.read")},_.filesGetFileLockBatch=function(e){return this.request("files/get_file_lock_batch",e,"user","api","rpc","files.content.read")},_.filesGetMetadata=function(e){return this.request("files/get_metadata",e,"user","api","rpc","files.metadata.read")},_.filesGetPreview=function(e){return this.request("files/get_preview",e,"user","content","download","files.content.read")},_.filesGetTemporaryLink=function(e){return this.request("files/get_temporary_link",e,"user","api","rpc","files.content.read")},_.filesGetTemporaryUploadLink=function(e){return this.request("files/get_temporary_upload_link",e,"user","api","rpc","files.content.write")},_.filesGetThumbnail=function(e){return this.request("files/get_thumbnail",e,"user","content","download","files.content.read")},_.filesGetThumbnailV2=function(e){return this.request("files/get_thumbnail_v2",e,"app, user","content","download","files.content.read")},_.filesGetThumbnailBatch=function(e){return this.request("files/get_thumbnail_batch",e,"user","content","rpc","files.content.read")},_.filesListFolder=function(e){return this.request("files/list_folder",e,"app, user","api","rpc","files.metadata.read")},_.filesListFolderContinue=function(e){return this.request("files/list_folder/continue",e,"app, user","api","rpc","files.metadata.read")},_.filesListFolderGetLatestCursor=function(e){return this.request("files/list_folder/get_latest_cursor",e,"user","api","rpc","files.metadata.read")},_.filesListFolderLongpoll=function(e){return this.request("files/list_folder/longpoll",e,"noauth","notify","rpc","files.metadata.read")},_.filesListRevisions=function(e){return this.request("files/list_revisions",e,"user","api","rpc","files.metadata.read")},_.filesLockFileBatch=function(e){return this.request("files/lock_file_batch",e,"user","api","rpc","files.content.write")},_.filesMoveV2=function(e){return this.request("files/move_v2",e,"user","api","rpc","files.content.write")},_.filesMove=function(e){return this.request("files/move",e,"user","api","rpc","files.content.write")},_.filesMoveBatchV2=function(e){return this.request("files/move_batch_v2",e,"user","api","rpc","files.content.write")},_.filesMoveBatch=function(e){return this.request("files/move_batch",e,"user","api","rpc","files.content.write")},_.filesMoveBatchCheckV2=function(e){return this.request("files/move_batch/check_v2",e,"user","api","rpc","files.content.write")},_.filesMoveBatchCheck=function(e){return this.request("files/move_batch/check",e,"user","api","rpc","files.content.write")},_.filesPaperCreate=function(e){return this.request("files/paper/create",e,"user","api","upload","files.content.write")},_.filesPaperUpdate=function(e){return this.request("files/paper/update",e,"user","api","upload","files.content.write")},_.filesPermanentlyDelete=function(e){return this.request("files/permanently_delete",e,"user","api","rpc","files.permanent_delete")},_.filesPropertiesAdd=function(e){return this.request("files/properties/add",e,"user","api","rpc","files.metadata.write")},_.filesPropertiesOverwrite=function(e){return this.request("files/properties/overwrite",e,"user","api","rpc","files.metadata.write")},_.filesPropertiesRemove=function(e){return this.request("files/properties/remove",e,"user","api","rpc","files.metadata.write")},_.filesPropertiesTemplateGet=function(e){return this.request("files/properties/template/get",e,"user","api","rpc","files.metadata.read")},_.filesPropertiesTemplateList=function(){return this.request("files/properties/template/list",null,"user","api","rpc","files.metadata.read")},_.filesPropertiesUpdate=function(e){return this.request("files/properties/update",e,"user","api","rpc","files.metadata.write")},_.filesRestore=function(e){return this.request("files/restore",e,"user","api","rpc","files.content.write")},_.filesSaveUrl=function(e){return this.request("files/save_url",e,"user","api","rpc","files.content.write")},_.filesSaveUrlCheckJobStatus=function(e){return this.request("files/save_url/check_job_status",e,"user","api","rpc","files.content.write")},_.filesSearch=function(e){return this.request("files/search",e,"user","api","rpc","files.metadata.read")},_.filesSearchV2=function(e){return this.request("files/search_v2",e,"user","api","rpc","files.metadata.read")},_.filesSearchContinueV2=function(e){return this.request("files/search/continue_v2",e,"user","api","rpc","files.metadata.read")},_.filesTagsAdd=function(e){return this.request("files/tags/add",e,"user","api","rpc","files.metadata.write")},_.filesTagsGet=function(e){return this.request("files/tags/get",e,"user","api","rpc","files.metadata.read")},_.filesTagsRemove=function(e){return this.request("files/tags/remove",e,"user","api","rpc","files.metadata.write")},_.filesUnlockFileBatch=function(e){return this.request("files/unlock_file_batch",e,"user","api","rpc","files.content.write")},_.filesUpload=function(e){return this.request("files/upload",e,"user","content","upload","files.content.write")},_.filesUploadSessionAppendV2=function(e){return this.request("files/upload_session/append_v2",e,"user","content","upload","files.content.write")},_.filesUploadSessionAppend=function(e){return this.request("files/upload_session/append",e,"user","content","upload","files.content.write")},_.filesUploadSessionFinish=function(e){return this.request("files/upload_session/finish",e,"user","content","upload","files.content.write")},_.filesUploadSessionFinishBatch=function(e){return this.request("files/upload_session/finish_batch",e,"user","api","rpc","files.content.write")},_.filesUploadSessionFinishBatchV2=function(e){return this.request("files/upload_session/finish_batch_v2",e,"user","api","rpc","files.content.write")},_.filesUploadSessionFinishBatchCheck=function(e){return this.request("files/upload_session/finish_batch/check",e,"user","api","rpc","files.content.write")},_.filesUploadSessionStart=function(e){return this.request("files/upload_session/start",e,"user","content","upload","files.content.write")},_.filesUploadSessionStartBatch=function(e){return this.request("files/upload_session/start_batch",e,"user","api","rpc","files.content.write")},_.openidUserinfo=function(e){return this.request("openid/userinfo",e,"user","api","rpc","openid")},_.paperDocsArchive=function(e){return this.request("paper/docs/archive",e,"user","api","rpc","files.content.write")},_.paperDocsCreate=function(e){return this.request("paper/docs/create",e,"user","api","upload","files.content.write")},_.paperDocsDownload=function(e){return this.request("paper/docs/download",e,"user","api","download","files.content.read")},_.paperDocsFolderUsersList=function(e){return this.request("paper/docs/folder_users/list",e,"user","api","rpc","sharing.read")},_.paperDocsFolderUsersListContinue=function(e){return this.request("paper/docs/folder_users/list/continue",e,"user","api","rpc","sharing.read")},_.paperDocsGetFolderInfo=function(e){return this.request("paper/docs/get_folder_info",e,"user","api","rpc","sharing.read")},_.paperDocsList=function(e){return this.request("paper/docs/list",e,"user","api","rpc","files.metadata.read")},_.paperDocsListContinue=function(e){return this.request("paper/docs/list/continue",e,"user","api","rpc","files.metadata.read")},_.paperDocsPermanentlyDelete=function(e){return this.request("paper/docs/permanently_delete",e,"user","api","rpc","files.permanent_delete")},_.paperDocsSharingPolicyGet=function(e){return this.request("paper/docs/sharing_policy/get",e,"user","api","rpc","sharing.read")},_.paperDocsSharingPolicySet=function(e){return this.request("paper/docs/sharing_policy/set",e,"user","api","rpc","sharing.write")},_.paperDocsUpdate=function(e){return this.request("paper/docs/update",e,"user","api","upload","files.content.write")},_.paperDocsUsersAdd=function(e){return this.request("paper/docs/users/add",e,"user","api","rpc","sharing.write")},_.paperDocsUsersList=function(e){return this.request("paper/docs/users/list",e,"user","api","rpc","sharing.read")},_.paperDocsUsersListContinue=function(e){return this.request("paper/docs/users/list/continue",e,"user","api","rpc","sharing.read")},_.paperDocsUsersRemove=function(e){return this.request("paper/docs/users/remove",e,"user","api","rpc","sharing.write")},_.paperFoldersCreate=function(e){return this.request("paper/folders/create",e,"user","api","rpc","files.content.write")},_.sharingAddFileMember=function(e){return this.request("sharing/add_file_member",e,"user","api","rpc","sharing.write")},_.sharingAddFolderMember=function(e){return this.request("sharing/add_folder_member",e,"user","api","rpc","sharing.write")},_.sharingCheckJobStatus=function(e){return this.request("sharing/check_job_status",e,"user","api","rpc","sharing.write")},_.sharingCheckRemoveMemberJobStatus=function(e){return this.request("sharing/check_remove_member_job_status",e,"user","api","rpc","sharing.write")},_.sharingCheckShareJobStatus=function(e){return this.request("sharing/check_share_job_status",e,"user","api","rpc","sharing.write")},_.sharingCreateSharedLink=function(e){return this.request("sharing/create_shared_link",e,"user","api","rpc","sharing.write")},_.sharingCreateSharedLinkWithSettings=function(e){return this.request("sharing/create_shared_link_with_settings",e,"user","api","rpc","sharing.write")},_.sharingGetFileMetadata=function(e){return this.request("sharing/get_file_metadata",e,"user","api","rpc","sharing.read")},_.sharingGetFileMetadataBatch=function(e){return this.request("sharing/get_file_metadata/batch",e,"user","api","rpc","sharing.read")},_.sharingGetFolderMetadata=function(e){return this.request("sharing/get_folder_metadata",e,"user","api","rpc","sharing.read")},_.sharingGetSharedLinkFile=function(e){return this.request("sharing/get_shared_link_file",e,"user","content","download","sharing.read")},_.sharingGetSharedLinkMetadata=function(e){return this.request("sharing/get_shared_link_metadata",e,"app, user","api","rpc","sharing.read")},_.sharingGetSharedLinks=function(e){return this.request("sharing/get_shared_links",e,"user","api","rpc","sharing.read")},_.sharingListFileMembers=function(e){return this.request("sharing/list_file_members",e,"user","api","rpc","sharing.read")},_.sharingListFileMembersBatch=function(e){return this.request("sharing/list_file_members/batch",e,"user","api","rpc","sharing.read")},_.sharingListFileMembersContinue=function(e){return this.request("sharing/list_file_members/continue",e,"user","api","rpc","sharing.read")},_.sharingListFolderMembers=function(e){return this.request("sharing/list_folder_members",e,"user","api","rpc","sharing.read")},_.sharingListFolderMembersContinue=function(e){return this.request("sharing/list_folder_members/continue",e,"user","api","rpc","sharing.read")},_.sharingListFolders=function(e){return this.request("sharing/list_folders",e,"user","api","rpc","sharing.read")},_.sharingListFoldersContinue=function(e){return this.request("sharing/list_folders/continue",e,"user","api","rpc","sharing.read")},_.sharingListMountableFolders=function(e){return this.request("sharing/list_mountable_folders",e,"user","api","rpc","sharing.read")},_.sharingListMountableFoldersContinue=function(e){return this.request("sharing/list_mountable_folders/continue",e,"user","api","rpc","sharing.read")},_.sharingListReceivedFiles=function(e){return this.request("sharing/list_received_files",e,"user","api","rpc","sharing.read")},_.sharingListReceivedFilesContinue=function(e){return this.request("sharing/list_received_files/continue",e,"user","api","rpc","sharing.read")},_.sharingListSharedLinks=function(e){return this.request("sharing/list_shared_links",e,"user","api","rpc","sharing.read")},_.sharingModifySharedLinkSettings=function(e){return this.request("sharing/modify_shared_link_settings",e,"user","api","rpc","sharing.write")},_.sharingMountFolder=function(e){return this.request("sharing/mount_folder",e,"user","api","rpc","sharing.write")},_.sharingRelinquishFileMembership=function(e){return this.request("sharing/relinquish_file_membership",e,"user","api","rpc","sharing.write")},_.sharingRelinquishFolderMembership=function(e){return this.request("sharing/relinquish_folder_membership",e,"user","api","rpc","sharing.write")},_.sharingRemoveFileMember=function(e){return this.request("sharing/remove_file_member",e,"user","api","rpc","sharing.write")},_.sharingRemoveFileMember2=function(e){return this.request("sharing/remove_file_member_2",e,"user","api","rpc","sharing.write")},_.sharingRemoveFolderMember=function(e){return this.request("sharing/remove_folder_member",e,"user","api","rpc","sharing.write")},_.sharingRevokeSharedLink=function(e){return this.request("sharing/revoke_shared_link",e,"user","api","rpc","sharing.write")},_.sharingSetAccessInheritance=function(e){return this.request("sharing/set_access_inheritance",e,"user","api","rpc","sharing.write")},_.sharingShareFolder=function(e){return this.request("sharing/share_folder",e,"user","api","rpc","sharing.write")},_.sharingTransferFolder=function(e){return this.request("sharing/transfer_folder",e,"user","api","rpc","sharing.write")},_.sharingUnmountFolder=function(e){return this.request("sharing/unmount_folder",e,"user","api","rpc","sharing.write")},_.sharingUnshareFile=function(e){return this.request("sharing/unshare_file",e,"user","api","rpc","sharing.write")},_.sharingUnshareFolder=function(e){return this.request("sharing/unshare_folder",e,"user","api","rpc","sharing.write")},_.sharingUpdateFileMember=function(e){return this.request("sharing/update_file_member",e,"user","api","rpc","sharing.write")},_.sharingUpdateFolderMember=function(e){return this.request("sharing/update_folder_member",e,"user","api","rpc","sharing.write")},_.sharingUpdateFolderPolicy=function(e){return this.request("sharing/update_folder_policy",e,"user","api","rpc","sharing.write")},_.teamDevicesListMemberDevices=function(e){return this.request("team/devices/list_member_devices",e,"team","api","rpc","sessions.list")},_.teamDevicesListMembersDevices=function(e){return this.request("team/devices/list_members_devices",e,"team","api","rpc","sessions.list")},_.teamDevicesListTeamDevices=function(e){return this.request("team/devices/list_team_devices",e,"team","api","rpc","sessions.list")},_.teamDevicesRevokeDeviceSession=function(e){return this.request("team/devices/revoke_device_session",e,"team","api","rpc","sessions.modify")},_.teamDevicesRevokeDeviceSessionBatch=function(e){return this.request("team/devices/revoke_device_session_batch",e,"team","api","rpc","sessions.modify")},_.teamFeaturesGetValues=function(e){return this.request("team/features/get_values",e,"team","api","rpc","team_info.read")},_.teamGetInfo=function(){return this.request("team/get_info",null,"team","api","rpc","team_info.read")},_.teamGroupsCreate=function(e){return this.request("team/groups/create",e,"team","api","rpc","groups.write")},_.teamGroupsDelete=function(e){return this.request("team/groups/delete",e,"team","api","rpc","groups.write")},_.teamGroupsGetInfo=function(e){return this.request("team/groups/get_info",e,"team","api","rpc","groups.read")},_.teamGroupsJobStatusGet=function(e){return this.request("team/groups/job_status/get",e,"team","api","rpc","groups.write")},_.teamGroupsList=function(e){return this.request("team/groups/list",e,"team","api","rpc","groups.read")},_.teamGroupsListContinue=function(e){return this.request("team/groups/list/continue",e,"team","api","rpc","groups.read")},_.teamGroupsMembersAdd=function(e){return this.request("team/groups/members/add",e,"team","api","rpc","groups.write")},_.teamGroupsMembersList=function(e){return this.request("team/groups/members/list",e,"team","api","rpc","groups.read")},_.teamGroupsMembersListContinue=function(e){return this.request("team/groups/members/list/continue",e,"team","api","rpc","groups.read")},_.teamGroupsMembersRemove=function(e){return this.request("team/groups/members/remove",e,"team","api","rpc","groups.write")},_.teamGroupsMembersSetAccessType=function(e){return this.request("team/groups/members/set_access_type",e,"team","api","rpc","groups.write")},_.teamGroupsUpdate=function(e){return this.request("team/groups/update",e,"team","api","rpc","groups.write")},_.teamLegalHoldsCreatePolicy=function(e){return this.request("team/legal_holds/create_policy",e,"team","api","rpc","team_data.governance.write")},_.teamLegalHoldsGetPolicy=function(e){return this.request("team/legal_holds/get_policy",e,"team","api","rpc","team_data.governance.write")},_.teamLegalHoldsListHeldRevisions=function(e){return this.request("team/legal_holds/list_held_revisions",e,"team","api","rpc","team_data.governance.write")},_.teamLegalHoldsListHeldRevisionsContinue=function(e){return this.request("team/legal_holds/list_held_revisions_continue",e,"team","api","rpc","team_data.governance.write")},_.teamLegalHoldsListPolicies=function(e){return this.request("team/legal_holds/list_policies",e,"team","api","rpc","team_data.governance.write")},_.teamLegalHoldsReleasePolicy=function(e){return this.request("team/legal_holds/release_policy",e,"team","api","rpc","team_data.governance.write")},_.teamLegalHoldsUpdatePolicy=function(e){return this.request("team/legal_holds/update_policy",e,"team","api","rpc","team_data.governance.write")},_.teamLinkedAppsListMemberLinkedApps=function(e){return this.request("team/linked_apps/list_member_linked_apps",e,"team","api","rpc","sessions.list")},_.teamLinkedAppsListMembersLinkedApps=function(e){return this.request("team/linked_apps/list_members_linked_apps",e,"team","api","rpc","sessions.list")},_.teamLinkedAppsListTeamLinkedApps=function(e){return this.request("team/linked_apps/list_team_linked_apps",e,"team","api","rpc","sessions.list")},_.teamLinkedAppsRevokeLinkedApp=function(e){return this.request("team/linked_apps/revoke_linked_app",e,"team","api","rpc","sessions.modify")},_.teamLinkedAppsRevokeLinkedAppBatch=function(e){return this.request("team/linked_apps/revoke_linked_app_batch",e,"team","api","rpc","sessions.modify")},_.teamMemberSpaceLimitsExcludedUsersAdd=function(e){return this.request("team/member_space_limits/excluded_users/add",e,"team","api","rpc","members.write")},_.teamMemberSpaceLimitsExcludedUsersList=function(e){return this.request("team/member_space_limits/excluded_users/list",e,"team","api","rpc","members.read")},_.teamMemberSpaceLimitsExcludedUsersListContinue=function(e){return this.request("team/member_space_limits/excluded_users/list/continue",e,"team","api","rpc","members.read")},_.teamMemberSpaceLimitsExcludedUsersRemove=function(e){return this.request("team/member_space_limits/excluded_users/remove",e,"team","api","rpc","members.write")},_.teamMemberSpaceLimitsGetCustomQuota=function(e){return this.request("team/member_space_limits/get_custom_quota",e,"team","api","rpc","members.read")},_.teamMemberSpaceLimitsRemoveCustomQuota=function(e){return this.request("team/member_space_limits/remove_custom_quota",e,"team","api","rpc","members.write")},_.teamMemberSpaceLimitsSetCustomQuota=function(e){return this.request("team/member_space_limits/set_custom_quota",e,"team","api","rpc","members.read")},_.teamMembersAddV2=function(e){return this.request("team/members/add_v2",e,"team","api","rpc","members.write")},_.teamMembersAdd=function(e){return this.request("team/members/add",e,"team","api","rpc","members.write")},_.teamMembersAddJobStatusGetV2=function(e){return this.request("team/members/add/job_status/get_v2",e,"team","api","rpc","members.write")},_.teamMembersAddJobStatusGet=function(e){return this.request("team/members/add/job_status/get",e,"team","api","rpc","members.write")},_.teamMembersDeleteProfilePhotoV2=function(e){return this.request("team/members/delete_profile_photo_v2",e,"team","api","rpc","members.write")},_.teamMembersDeleteProfilePhoto=function(e){return this.request("team/members/delete_profile_photo",e,"team","api","rpc","members.write")},_.teamMembersGetAvailableTeamMemberRoles=function(){return this.request("team/members/get_available_team_member_roles",null,"team","api","rpc","members.read")},_.teamMembersGetInfoV2=function(e){return this.request("team/members/get_info_v2",e,"team","api","rpc","members.read")},_.teamMembersGetInfo=function(e){return this.request("team/members/get_info",e,"team","api","rpc","members.read")},_.teamMembersListV2=function(e){return this.request("team/members/list_v2",e,"team","api","rpc","members.read")},_.teamMembersList=function(e){return this.request("team/members/list",e,"team","api","rpc","members.read")},_.teamMembersListContinueV2=function(e){return this.request("team/members/list/continue_v2",e,"team","api","rpc","members.read")},_.teamMembersListContinue=function(e){return this.request("team/members/list/continue",e,"team","api","rpc","members.read")},_.teamMembersMoveFormerMemberFiles=function(e){return this.request("team/members/move_former_member_files",e,"team","api","rpc","members.write")},_.teamMembersMoveFormerMemberFilesJobStatusCheck=function(e){return this.request("team/members/move_former_member_files/job_status/check",e,"team","api","rpc","members.write")},_.teamMembersRecover=function(e){return this.request("team/members/recover",e,"team","api","rpc","members.delete")},_.teamMembersRemove=function(e){return this.request("team/members/remove",e,"team","api","rpc","members.delete")},_.teamMembersRemoveJobStatusGet=function(e){return this.request("team/members/remove/job_status/get",e,"team","api","rpc","members.delete")},_.teamMembersSecondaryEmailsAdd=function(e){return this.request("team/members/secondary_emails/add",e,"team","api","rpc","members.write")},_.teamMembersSecondaryEmailsDelete=function(e){return this.request("team/members/secondary_emails/delete",e,"team","api","rpc","members.write")},_.teamMembersSecondaryEmailsResendVerificationEmails=function(e){return this.request("team/members/secondary_emails/resend_verification_emails",e,"team","api","rpc","members.write")},_.teamMembersSendWelcomeEmail=function(e){return this.request("team/members/send_welcome_email",e,"team","api","rpc","members.write")},_.teamMembersSetAdminPermissionsV2=function(e){return this.request("team/members/set_admin_permissions_v2",e,"team","api","rpc","members.write")},_.teamMembersSetAdminPermissions=function(e){return this.request("team/members/set_admin_permissions",e,"team","api","rpc","members.write")},_.teamMembersSetProfileV2=function(e){return this.request("team/members/set_profile_v2",e,"team","api","rpc","members.write")},_.teamMembersSetProfile=function(e){return this.request("team/members/set_profile",e,"team","api","rpc","members.write")},_.teamMembersSetProfilePhotoV2=function(e){return this.request("team/members/set_profile_photo_v2",e,"team","api","rpc","members.write")},_.teamMembersSetProfilePhoto=function(e){return this.request("team/members/set_profile_photo",e,"team","api","rpc","members.write")},_.teamMembersSuspend=function(e){return this.request("team/members/suspend",e,"team","api","rpc","members.write")},_.teamMembersUnsuspend=function(e){return this.request("team/members/unsuspend",e,"team","api","rpc","members.write")},_.teamNamespacesList=function(e){return this.request("team/namespaces/list",e,"team","api","rpc","team_data.member")},_.teamNamespacesListContinue=function(e){return this.request("team/namespaces/list/continue",e,"team","api","rpc","team_data.member")},_.teamPropertiesTemplateAdd=function(e){return this.request("team/properties/template/add",e,"team","api","rpc","files.team_metadata.write")},_.teamPropertiesTemplateGet=function(e){return this.request("team/properties/template/get",e,"team","api","rpc","files.team_metadata.write")},_.teamPropertiesTemplateList=function(){return this.request("team/properties/template/list",null,"team","api","rpc","files.team_metadata.write")},_.teamPropertiesTemplateUpdate=function(e){return this.request("team/properties/template/update",e,"team","api","rpc","files.team_metadata.write")},_.teamReportsGetActivity=function(e){return this.request("team/reports/get_activity",e,"team","api","rpc","team_info.read")},_.teamReportsGetDevices=function(e){return this.request("team/reports/get_devices",e,"team","api","rpc","team_info.read")},_.teamReportsGetMembership=function(e){return this.request("team/reports/get_membership",e,"team","api","rpc","team_info.read")},_.teamReportsGetStorage=function(e){return this.request("team/reports/get_storage",e,"team","api","rpc","team_info.read")},_.teamSharingAllowlistAdd=function(e){return this.request("team/sharing_allowlist/add",e,"team","api","rpc","team_info.write")},_.teamSharingAllowlistList=function(e){return this.request("team/sharing_allowlist/list",e,"team","api","rpc","team_info.read")},_.teamSharingAllowlistListContinue=function(e){return this.request("team/sharing_allowlist/list/continue",e,"team","api","rpc","team_info.read")},_.teamSharingAllowlistRemove=function(e){return this.request("team/sharing_allowlist/remove",e,"team","api","rpc","team_info.write")},_.teamTeamFolderActivate=function(e){return this.request("team/team_folder/activate",e,"team","api","rpc","team_data.content.write")},_.teamTeamFolderArchive=function(e){return this.request("team/team_folder/archive",e,"team","api","rpc","team_data.content.write")},_.teamTeamFolderArchiveCheck=function(e){return this.request("team/team_folder/archive/check",e,"team","api","rpc","team_data.content.write")},_.teamTeamFolderCreate=function(e){return this.request("team/team_folder/create",e,"team","api","rpc","team_data.content.write")},_.teamTeamFolderGetInfo=function(e){return this.request("team/team_folder/get_info",e,"team","api","rpc","team_data.content.read")},_.teamTeamFolderList=function(e){return this.request("team/team_folder/list",e,"team","api","rpc","team_data.content.read")},_.teamTeamFolderListContinue=function(e){return this.request("team/team_folder/list/continue",e,"team","api","rpc","team_data.content.read")},_.teamTeamFolderPermanentlyDelete=function(e){return this.request("team/team_folder/permanently_delete",e,"team","api","rpc","team_data.content.write")},_.teamTeamFolderRename=function(e){return this.request("team/team_folder/rename",e,"team","api","rpc","team_data.content.write")},_.teamTeamFolderUpdateSyncSettings=function(e){return this.request("team/team_folder/update_sync_settings",e,"team","api","rpc","team_data.content.write")},_.teamTokenGetAuthenticatedAdmin=function(){return this.request("team/token/get_authenticated_admin",null,"team","api","rpc","team_info.read")},_.teamLogGetEvents=function(e){return this.request("team_log/get_events",e,"team","api","rpc","events.read")},_.teamLogGetEventsContinue=function(e){return this.request("team_log/get_events/continue",e,"team","api","rpc","events.read")},_.usersFeaturesGetValues=function(e){return this.request("users/features/get_values",e,"user","api","rpc","account_info.read")},_.usersGetAccount=function(e){return this.request("users/get_account",e,"user","api","rpc","sharing.read")},_.usersGetAccountBatch=function(e){return this.request("users/get_account_batch",e,"user","api","rpc","sharing.read")},_.usersGetCurrentAccount=function(){return this.request("users/get_current_account",null,"user","api","rpc","account_info.read")},_.usersGetSpaceUsage=function(){return this.request("users/get_space_usage",null,"user","api","rpc","account_info.read")};var q=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:m,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";return r?(t!==m&&void 0!==d[e]&&(e=d[e],r="-"),"https://".concat(e).concat(r).concat(t,"/2/")):"https://".concat(t,"/2/")},b=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h;return e!==h&&(e="meta-".concat(e)),"https://".concat(e,"/oauth2/authorize")},v=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:".",r="api";return e!==m&&(r=d[r],t="-"),"https://".concat(r).concat(t).concat(e,"/oauth2/token")};function w(e){return JSON.stringify(e).replace(/[\u007f-\uffff]/g,g)}function k(e){return new Date(Date.now()+1e3*e)}function y(){return"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope||"undefined"==typeof module||"undefined"!=typeof window}function A(){return"undefined"!=typeof window}function S(){return"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope}function C(e){return e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}var T,L,M,P=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&n(e,t)}(u,e);var r,i,o=(r=u,i=a(),function(){var e,t=s(r);if(i){var n=s(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return c(this,e)});function u(e,r,i){var s;return t(this,u),(s=o.call(this,"Response failed with a ".concat(e," code"))).name="DropboxResponseError",s.status=e,s.headers=r,s.error=i,s}return u}(u(Error)),R=function e(r,i,s){t(this,e),this.status=r,this.headers=i,this.result=s};function F(e){return e.text().then((function(t){var r;try{r=JSON.parse(t)}catch(e){r=t}throw new P(e.status,e.headers,r)}))}function D(e){return e.ok?e.text().then((function(t){var r;try{r=JSON.parse(t)}catch(e){r=t}return new R(e.status,e.headers,r)})):F(e)}var G=["legacy","offline","online"],U=["code","token"],x=["none","user","team"],E=function(){function e(r){t(this,e),r=r||{},A()?(T=window.fetch.bind(window),L=window.crypto||window.msCrypto):S()?(T=self.fetch.bind(self),L=self.crypto):(T=require("node-fetch"),L=require("crypto")),M="undefined"==typeof TextEncoder?require("util").TextEncoder:TextEncoder,this.fetch=r.fetch||T,this.accessToken=r.accessToken,this.accessTokenExpiresAt=r.accessTokenExpiresAt,this.refreshToken=r.refreshToken,this.clientId=r.clientId,this.clientSecret=r.clientSecret,this.domain=r.domain,this.domainDelimiter=r.domainDelimiter,this.customHeaders=r.customHeaders,this.dataOnBody=r.dataOnBody}return i(e,[{key:"setAccessToken",value:function(e){this.accessToken=e}},{key:"getAccessToken",value:function(){return this.accessToken}},{key:"setClientId",value:function(e){this.clientId=e}},{key:"getClientId",value:function(){return this.clientId}},{key:"setClientSecret",value:function(e){this.clientSecret=e}},{key:"getClientSecret",value:function(){return this.clientSecret}},{key:"getRefreshToken",value:function(){return this.refreshToken}},{key:"setRefreshToken",value:function(e){this.refreshToken=e}},{key:"getAccessTokenExpiresAt",value:function(){return this.accessTokenExpiresAt}},{key:"setAccessTokenExpiresAt",value:function(e){this.accessTokenExpiresAt=e}},{key:"setCodeVerifier",value:function(e){this.codeVerifier=e}},{key:"getCodeVerifier",value:function(){return this.codeVerifier}},{key:"generateCodeChallenge",value:function(){var e,t=this,r=(new M).encode(this.codeVerifier);if(A()||S())return L.subtle.digest("SHA-256",r).then((function(r){var i=btoa(String.fromCharCode.apply(null,new Uint8Array(r)));e=C(i).substr(0,128),t.codeChallenge=e}));var i=L.createHash("sha256").update(r).digest();return e=C(i),this.codeChallenge=e,Promise.resolve()}},{key:"generatePKCECodes",value:function(){var e;if(A()||S()){var t=new Uint8Array(128),r=L.getRandomValues(t);e=C(btoa(r)).substr(0,128)}else{e=C(L.randomBytes(128)).substr(0,128)}return this.codeVerifier=e,this.generateCodeChallenge()}},{key:"getAuthenticationUrl",value:function(e,t){var r,i=this,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"token",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"none",u=arguments.length>6&&void 0!==arguments[6]&&arguments[6],c=this.getClientId(),p=b(this.domain);if(!c)throw Error("A client id is required. You can set the client id using .setClientId().");if("code"!==s&&!e)throw Error("A redirect uri is required.");if(!U.includes(s))throw Error("Authorization type must be code or token");if(n&&!G.includes(n))throw Error("Token Access Type must be legacy, offline, or online");if(a&&!(a instanceof Array))throw Error("Scope must be an array of strings");if(!x.includes(o))throw Error("includeGrantedScopes must be none, user, or team");return r="code"===s?"".concat(p,"?response_type=code&client_id=").concat(c):"".concat(p,"?response_type=token&client_id=").concat(c),e&&(r+="&redirect_uri=".concat(e)),t&&(r+="&state=".concat(t)),n&&(r+="&token_access_type=".concat(n)),a&&(r+="&scope=".concat(a.join(" "))),"none"!==o&&(r+="&include_granted_scopes=".concat(o)),u?this.generatePKCECodes().then((function(){return r+="&code_challenge_method=S256",r+="&code_challenge=".concat(i.codeChallenge)})):Promise.resolve(r)}},{key:"getAccessTokenFromCode",value:function(e,t){var r=this.getClientId(),i=this.getClientSecret();if(!r)throw Error("A client id is required. You can set the client id using .setClientId().");var s=v(this.domain,this.domainDelimiter);if(s+="?grant_type=authorization_code",s+="&code=".concat(t),s+="&client_id=".concat(r),i)s+="&client_secret=".concat(i);else{if(!this.codeVerifier)throw Error("You must use PKCE when generating the authorization URL to not include a client secret");s+="&code_verifier=".concat(this.codeVerifier)}e&&(s+="&redirect_uri=".concat(e));return this.fetch(s,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"}}).then((function(e){return D(e)}))}},{key:"checkAndRefreshAccessToken",value:function(){var e=this.getRefreshToken()&&this.getClientId(),t=!this.getAccessTokenExpiresAt()||new Date(Date.now()+3e5)>=this.getAccessTokenExpiresAt(),r=!this.getAccessToken();return(t||r)&&e?this.refreshAccessToken():Promise.resolve()}},{key:"refreshAccessToken",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=this.getClientId(),i=this.getClientSecret();if(!r)throw Error("A client id is required. You can set the client id using .setClientId().");if(t&&!(t instanceof Array))throw Error("Scope must be an array of strings");var s=v(this.domain,this.domainDelimiter),n={headers:{"Content-Type":"application/json"},method:"POST"};if(this.dataOnBody){var a={grant_type:"refresh_token",client_id:r,refresh_token:this.getRefreshToken()};i&&(a.client_secret=i),t&&(a.scope=t.join(" ")),n.body=a}else s+="?grant_type=refresh_token&refresh_token=".concat(this.getRefreshToken()),s+="&client_id=".concat(r),i&&(s+="&client_secret=".concat(i)),t&&(s+="&scope=".concat(t.join(" ")));return this.fetch(s,n).then((function(e){return D(e)})).then((function(t){e.setAccessToken(t.result.access_token),e.setAccessTokenExpiresAt(k(t.result.expires_in))}))}}]),e}(),B="undefined"==typeof btoa?function(e){return Buffer.from(e).toString("base64")}:btoa;e.Dropbox=function(){function e(r){t(this,e),this.auth=(r=r||{}).auth?r.auth:new E(r),this.fetch=r.fetch||this.auth.fetch,this.selectUser=r.selectUser,this.selectAdmin=r.selectAdmin,this.pathRoot=r.pathRoot,this.domain=r.domain||this.auth.domain,this.domainDelimiter=r.domainDelimiter||this.auth.domainDelimiter,this.customHeaders=r.customHeaders||this.auth.customHeaders,Object.assign(this,_)}return i(e,[{key:"request",value:function(e,t,r,i,s){switch(s){case"rpc":return this.rpcRequest(e,t,r,i);case"download":return this.downloadRequest(e,t,r,i);case"upload":return this.uploadRequest(e,t,r,i);default:throw Error("Invalid request style: ".concat(s))}}},{key:"rpcRequest",value:function(e,t,r,i){var s=this;return this.auth.checkAndRefreshAccessToken().then((function(){var e={method:"POST",body:t?JSON.stringify(t):null,headers:{}};return t&&(e.headers["Content-Type"]="application/json"),s.setAuthHeaders(r,e),s.setCommonHeaders(e),e})).then((function(t){return s.fetch(q(i,s.domain,s.domainDelimiter)+e,t)})).then((function(e){return D(e)}))}},{key:"downloadRequest",value:function(e,t,r,i){var s=this;return this.auth.checkAndRefreshAccessToken().then((function(){var e={method:"POST",headers:{"Dropbox-API-Arg":w(t)}};return s.setAuthHeaders(r,e),s.setCommonHeaders(e),e})).then((function(t){return s.fetch(q(i,s.domain,s.domainDelimiter)+e,t)})).then((function(e){return function(e){return e.ok?new Promise((function(t){y()?e.blob().then((function(e){return t(e)})):e.buffer().then((function(e){return t(e)}))})).then((function(t){var r=JSON.parse(e.headers.get("dropbox-api-result"));return y()?r.fileBlob=t:r.fileBinary=t,new R(e.status,e.headers,r)})):F(e)}(e)}))}},{key:"uploadRequest",value:function(e,t,r,i){var s=this;return this.auth.checkAndRefreshAccessToken().then((function(){var e=t.contents;delete t.contents;var i={body:e,method:"POST",headers:{"Content-Type":"application/octet-stream","Dropbox-API-Arg":w(t)}};return s.setAuthHeaders(r,i),s.setCommonHeaders(i),i})).then((function(t){return s.fetch(q(i,s.domain,s.domainDelimiter)+e,t)})).then((function(e){return D(e)}))}},{key:"setAuthHeaders",value:function(e,t){if(e.split(",").length>1){var r=e.replace(" ","").split(",");r.includes(l)&&this.auth.getAccessToken()?e=l:r.includes(f)&&this.auth.getAccessToken()?e=f:r.includes(p)&&(e=p)}switch(e){case p:if(this.auth.clientId&&this.auth.clientSecret){var i=B("".concat(this.auth.clientId,":").concat(this.auth.clientSecret));t.headers.Authorization="Basic ".concat(i)}break;case f:case l:this.auth.getAccessToken()&&(t.headers.Authorization="Bearer ".concat(this.auth.getAccessToken()));break;case"noauth":case"cookie":break;default:throw Error("Unhandled auth type: ".concat(e))}}},{key:"setCommonHeaders",value:function(e){var t=this;(this.selectUser&&(e.headers["Dropbox-API-Select-User"]=this.selectUser),this.selectAdmin&&(e.headers["Dropbox-API-Select-Admin"]=this.selectAdmin),this.pathRoot&&(e.headers["Dropbox-API-Path-Root"]=this.pathRoot),this.customHeaders)&&Object.keys(this.customHeaders).forEach((function(r){e.headers[r]=t.customHeaders[r]}))}}]),e}(),e.DropboxAuth=E,e.DropboxResponse=R,e.DropboxResponseError=P,Object.defineProperty(e,"__esModule",{value:!0})})); diff --git a/node_modules/tr46/dropbox/es/index.js b/node_modules/tr46/dropbox/es/index.js new file mode 100644 index 0000000000000000000000000000000000000000..e55fb8a891d57a6ad96499b2805921db111bd982 --- /dev/null +++ b/node_modules/tr46/dropbox/es/index.js @@ -0,0 +1,4 @@ +export { default as Dropbox } from './src/dropbox.js'; +export { default as DropboxAuth } from './src/auth.js'; +export { DropboxResponse } from './src/response.js'; +export { DropboxResponseError } from './src/error.js'; \ No newline at end of file diff --git a/node_modules/tr46/dropbox/es/lib/routes.js b/node_modules/tr46/dropbox/es/lib/routes.js new file mode 100644 index 0000000000000000000000000000000000000000..fa719db82bbcceba966fb37aec0169b298a6a716 --- /dev/null +++ b/node_modules/tr46/dropbox/es/lib/routes.js @@ -0,0 +1,4043 @@ +// Auto-generated by Stone, do not modify. +var routes = {}; +/** + * Sets a user's profile photo. + * Route attributes: + * scope: account_info.write + * @function Dropbox#accountSetProfilePhoto + * @arg {AccountSetProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + +routes.accountSetProfilePhoto = function (arg) { + return this.request('account/set_profile_photo', arg, 'user', 'api', 'rpc', 'account_info.write'); +}; +/** + * Creates an OAuth 2.0 access token from the supplied OAuth 1.0 access token. + * @function Dropbox#authTokenFromOauth1 + * @arg {AuthTokenFromOAuth1Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.authTokenFromOauth1 = function (arg) { + return this.request('auth/token/from_oauth1', arg, 'app', 'api', 'rpc', null); +}; +/** + * Disables the access token used to authenticate the call. If there is a + * corresponding refresh token for the access token, this disables that refresh + * token, as well as any other access tokens for that refresh token. + * @function Dropbox#authTokenRevoke + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.authTokenRevoke = function () { + return this.request('auth/token/revoke', null, 'user', 'api', 'rpc', null); +}; +/** + * This endpoint performs App Authentication, validating the supplied app key + * and secret, and returns the supplied string, to allow you to test your code + * and connection to the Dropbox API. It has no other effect. If you receive an + * HTTP 200 response with the supplied query, it indicates at least part of the + * Dropbox API infrastructure is working and that the app key and secret valid. + * @function Dropbox#checkApp + * @arg {CheckEchoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.checkApp = function (arg) { + return this.request('check/app', arg, 'app', 'api', 'rpc', null); +}; +/** + * This endpoint performs User Authentication, validating the supplied access + * token, and returns the supplied string, to allow you to test your code and + * connection to the Dropbox API. It has no other effect. If you receive an HTTP + * 200 response with the supplied query, it indicates at least part of the + * Dropbox API infrastructure is working and that the access token is valid. + * Route attributes: + * scope: account_info.read + * @function Dropbox#checkUser + * @arg {CheckEchoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.checkUser = function (arg) { + return this.request('check/user', arg, 'user', 'api', 'rpc', 'account_info.read'); +}; +/** + * Removes all manually added contacts. You'll still keep contacts who are on + * your team or who you imported. New contacts will be added when you share. + * Route attributes: + * scope: contacts.write + * @function Dropbox#contactsDeleteManualContacts + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.contactsDeleteManualContacts = function () { + return this.request('contacts/delete_manual_contacts', null, 'user', 'api', 'rpc', 'contacts.write'); +}; +/** + * Removes manually added contacts from the given list. + * Route attributes: + * scope: contacts.write + * @function Dropbox#contactsDeleteManualContactsBatch + * @arg {ContactsDeleteManualContactsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.contactsDeleteManualContactsBatch = function (arg) { + return this.request('contacts/delete_manual_contacts_batch', arg, 'user', 'api', 'rpc', 'contacts.write'); +}; +/** + * Add property groups to a Dropbox file. See templates/add_for_user or + * templates/add_for_team to create new templates. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesPropertiesAdd + * @arg {FilePropertiesAddPropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesPropertiesAdd = function (arg) { + return this.request('file_properties/properties/add', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Overwrite property groups associated with a file. This endpoint should be + * used instead of properties/update when property groups are being updated via + * a "snapshot" instead of via a "delta". In other words, this endpoint will + * delete all omitted fields from a property group, whereas properties/update + * will only delete fields that are explicitly marked for deletion. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesPropertiesOverwrite + * @arg {FilePropertiesOverwritePropertyGroupArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesPropertiesOverwrite = function (arg) { + return this.request('file_properties/properties/overwrite', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Permanently removes the specified property group from the file. To remove + * specific property field key value pairs, see properties/update. To update a + * template, see templates/update_for_user or templates/update_for_team. To + * remove a template, see templates/remove_for_user or + * templates/remove_for_team. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesPropertiesRemove + * @arg {FilePropertiesRemovePropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesPropertiesRemove = function (arg) { + return this.request('file_properties/properties/remove', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Search across property templates for particular property field values. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filePropertiesPropertiesSearch + * @arg {FilePropertiesPropertiesSearchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesPropertiesSearch = function (arg) { + return this.request('file_properties/properties/search', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Once a cursor has been retrieved from properties/search, use this to paginate + * through all search results. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filePropertiesPropertiesSearchContinue + * @arg {FilePropertiesPropertiesSearchContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesPropertiesSearchContinue = function (arg) { + return this.request('file_properties/properties/search/continue', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Add, update or remove properties associated with the supplied file and + * templates. This endpoint should be used instead of properties/overwrite when + * property groups are being updated via a "delta" instead of via a "snapshot" . + * In other words, this endpoint will not delete any omitted fields from a + * property group, whereas properties/overwrite will delete any fields that are + * omitted from a property group. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesPropertiesUpdate + * @arg {FilePropertiesUpdatePropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesPropertiesUpdate = function (arg) { + return this.request('file_properties/properties/update', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Add a template associated with a team. See properties/add to add properties + * to a file or folder. Note: this endpoint will create team-owned templates. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesAddForTeam + * @arg {FilePropertiesAddTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesAddForTeam = function (arg) { + return this.request('file_properties/templates/add_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; +/** + * Add a template associated with a user. See properties/add to add properties + * to a file. This endpoint can't be called on a team member or admin's behalf. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesTemplatesAddForUser + * @arg {FilePropertiesAddTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesAddForUser = function (arg) { + return this.request('file_properties/templates/add_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Get the schema for a specified template. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesGetForTeam + * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesGetForTeam = function (arg) { + return this.request('file_properties/templates/get_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; +/** + * Get the schema for a specified template. This endpoint can't be called on a + * team member or admin's behalf. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filePropertiesTemplatesGetForUser + * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesGetForUser = function (arg) { + return this.request('file_properties/templates/get_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Get the template identifiers for a team. To get the schema of each template + * use templates/get_for_team. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesListForTeam + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesListForTeam = function () { + return this.request('file_properties/templates/list_for_team', null, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; +/** + * Get the template identifiers for a team. To get the schema of each template + * use templates/get_for_user. This endpoint can't be called on a team member or + * admin's behalf. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filePropertiesTemplatesListForUser + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesListForUser = function () { + return this.request('file_properties/templates/list_for_user', null, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Permanently removes the specified template created from + * templates/add_for_user. All properties associated with the template will also + * be removed. This action cannot be undone. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesRemoveForTeam + * @arg {FilePropertiesRemoveTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesRemoveForTeam = function (arg) { + return this.request('file_properties/templates/remove_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; +/** + * Permanently removes the specified template created from + * templates/add_for_user. All properties associated with the template will also + * be removed. This action cannot be undone. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesTemplatesRemoveForUser + * @arg {FilePropertiesRemoveTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesRemoveForUser = function (arg) { + return this.request('file_properties/templates/remove_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Update a template associated with a team. This route can update the template + * name, the template description and add optional properties to templates. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesUpdateForTeam + * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesUpdateForTeam = function (arg) { + return this.request('file_properties/templates/update_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; +/** + * Update a template associated with a user. This route can update the template + * name, the template description and add optional properties to templates. This + * endpoint can't be called on a team member or admin's behalf. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesTemplatesUpdateForUser + * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filePropertiesTemplatesUpdateForUser = function (arg) { + return this.request('file_properties/templates/update_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Returns the total number of file requests owned by this user. Includes both + * open and closed file requests. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsCount + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.fileRequestsCount = function () { + return this.request('file_requests/count', null, 'user', 'api', 'rpc', 'file_requests.read'); +}; +/** + * Creates a file request for this user. + * Route attributes: + * scope: file_requests.write + * @function Dropbox#fileRequestsCreate + * @arg {FileRequestsCreateFileRequestArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.fileRequestsCreate = function (arg) { + return this.request('file_requests/create', arg, 'user', 'api', 'rpc', 'file_requests.write'); +}; +/** + * Delete a batch of closed file requests. + * Route attributes: + * scope: file_requests.write + * @function Dropbox#fileRequestsDelete + * @arg {FileRequestsDeleteFileRequestArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.fileRequestsDelete = function (arg) { + return this.request('file_requests/delete', arg, 'user', 'api', 'rpc', 'file_requests.write'); +}; +/** + * Delete all closed file requests owned by this user. + * Route attributes: + * scope: file_requests.write + * @function Dropbox#fileRequestsDeleteAllClosed + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.fileRequestsDeleteAllClosed = function () { + return this.request('file_requests/delete_all_closed', null, 'user', 'api', 'rpc', 'file_requests.write'); +}; +/** + * Returns the specified file request. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsGet + * @arg {FileRequestsGetFileRequestArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.fileRequestsGet = function (arg) { + return this.request('file_requests/get', arg, 'user', 'api', 'rpc', 'file_requests.read'); +}; +/** + * Returns a list of file requests owned by this user. For apps with the app + * folder permission, this will only return file requests with destinations in + * the app folder. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsListV2 + * @arg {FileRequestsListFileRequestsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.fileRequestsListV2 = function (arg) { + return this.request('file_requests/list_v2', arg, 'user', 'api', 'rpc', 'file_requests.read'); +}; +/** + * Returns a list of file requests owned by this user. For apps with the app + * folder permission, this will only return file requests with destinations in + * the app folder. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsList + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.fileRequestsList = function () { + return this.request('file_requests/list', null, 'user', 'api', 'rpc', 'file_requests.read'); +}; +/** + * Once a cursor has been retrieved from list_v2, use this to paginate through + * all file requests. The cursor must come from a previous call to list_v2 or + * list/continue. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsListContinue + * @arg {FileRequestsListFileRequestsContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.fileRequestsListContinue = function (arg) { + return this.request('file_requests/list/continue', arg, 'user', 'api', 'rpc', 'file_requests.read'); +}; +/** + * Update a file request. + * Route attributes: + * scope: file_requests.write + * @function Dropbox#fileRequestsUpdate + * @arg {FileRequestsUpdateFileRequestArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.fileRequestsUpdate = function (arg) { + return this.request('file_requests/update', arg, 'user', 'api', 'rpc', 'file_requests.write'); +}; +/** + * Returns the metadata for a file or folder. This is an alpha endpoint + * compatible with the properties API. Note: Metadata for the root folder is + * unsupported. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesAlphaGetMetadata + * @deprecated + * @arg {FilesAlphaGetMetadataArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesAlphaGetMetadata = function (arg) { + return this.request('files/alpha/get_metadata', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Create a new file with the contents provided in the request. Note that the + * behavior of this alpha endpoint is unstable and subject to change. Do not use + * this to upload a file larger than 150 MB. Instead, create an upload session + * with upload_session/start. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesAlphaUpload + * @deprecated + * @arg {FilesUploadArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesAlphaUpload = function (arg) { + return this.request('files/alpha/upload', arg, 'user', 'content', 'upload', 'files.content.write'); +}; +/** + * Copy a file or folder to a different location in the user's Dropbox. If the + * source path is a folder all its contents will be copied. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyV2 + * @arg {FilesRelocationArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCopyV2 = function (arg) { + return this.request('files/copy_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Copy a file or folder to a different location in the user's Dropbox. If the + * source path is a folder all its contents will be copied. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopy + * @deprecated + * @arg {FilesRelocationArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCopy = function (arg) { + return this.request('files/copy', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Copy multiple files or folders to different locations at once in the user's + * Dropbox. This route will replace copy_batch. The main difference is this + * route will return status for each entry, while copy_batch raises failure if + * any entry fails. This route will either finish synchronously, or return a job + * ID and do the async copy job in background. Please use copy_batch/check_v2 to + * check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyBatchV2 + * @arg {Object} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCopyBatchV2 = function (arg) { + return this.request('files/copy_batch_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Copy multiple files or folders to different locations at once in the user's + * Dropbox. This route will return job ID immediately and do the async copy job + * in background. Please use copy_batch/check to check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyBatch + * @deprecated + * @arg {FilesRelocationBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCopyBatch = function (arg) { + return this.request('files/copy_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Returns the status of an asynchronous job for copy_batch_v2. It returns list + * of results for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyBatchCheckV2 + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCopyBatchCheckV2 = function (arg) { + return this.request('files/copy_batch/check_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Returns the status of an asynchronous job for copy_batch. If success, it + * returns list of results for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyBatchCheck + * @deprecated + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCopyBatchCheck = function (arg) { + return this.request('files/copy_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Get a copy reference to a file or folder. This reference string can be used + * to save that file or folder to another user's Dropbox by passing it to + * copy_reference/save. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyReferenceGet + * @arg {FilesGetCopyReferenceArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCopyReferenceGet = function (arg) { + return this.request('files/copy_reference/get', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Save a copy reference returned by copy_reference/get to the user's Dropbox. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyReferenceSave + * @arg {FilesSaveCopyReferenceArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCopyReferenceSave = function (arg) { + return this.request('files/copy_reference/save', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Create a folder at a given path. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCreateFolderV2 + * @arg {FilesCreateFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCreateFolderV2 = function (arg) { + return this.request('files/create_folder_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Create a folder at a given path. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCreateFolder + * @deprecated + * @arg {FilesCreateFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCreateFolder = function (arg) { + return this.request('files/create_folder', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Create multiple folders at once. This route is asynchronous for large + * batches, which returns a job ID immediately and runs the create folder batch + * asynchronously. Otherwise, creates the folders and returns the result + * synchronously for smaller inputs. You can force asynchronous behaviour by + * using the CreateFolderBatchArg.force_async flag. Use + * create_folder_batch/check to check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCreateFolderBatch + * @arg {FilesCreateFolderBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCreateFolderBatch = function (arg) { + return this.request('files/create_folder_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Returns the status of an asynchronous job for create_folder_batch. If + * success, it returns list of result for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCreateFolderBatchCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesCreateFolderBatchCheck = function (arg) { + return this.request('files/create_folder_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Delete the file or folder at a given path. If the path is a folder, all its + * contents will be deleted too. A successful response indicates that the file + * or folder was deleted. The returned metadata will be the corresponding + * FileMetadata or FolderMetadata for the item at time of deletion, and not a + * DeletedMetadata object. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesDeleteV2 + * @arg {FilesDeleteArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesDeleteV2 = function (arg) { + return this.request('files/delete_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Delete the file or folder at a given path. If the path is a folder, all its + * contents will be deleted too. A successful response indicates that the file + * or folder was deleted. The returned metadata will be the corresponding + * FileMetadata or FolderMetadata for the item at time of deletion, and not a + * DeletedMetadata object. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesDelete + * @deprecated + * @arg {FilesDeleteArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesDelete = function (arg) { + return this.request('files/delete', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Delete multiple files/folders at once. This route is asynchronous, which + * returns a job ID immediately and runs the delete batch asynchronously. Use + * delete_batch/check to check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesDeleteBatch + * @arg {FilesDeleteBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesDeleteBatch = function (arg) { + return this.request('files/delete_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Returns the status of an asynchronous job for delete_batch. If success, it + * returns list of result for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesDeleteBatchCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesDeleteBatchCheck = function (arg) { + return this.request('files/delete_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Download a file from a user's Dropbox. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesDownload + * @arg {FilesDownloadArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesDownload = function (arg) { + return this.request('files/download', arg, 'user', 'content', 'download', 'files.content.read'); +}; +/** + * Download a folder from the user's Dropbox, as a zip file. The folder must be + * less than 20 GB in size and any single file within must be less than 4 GB in + * size. The resulting zip must have fewer than 10,000 total file and folder + * entries, including the top level folder. The input cannot be a single file. + * Note: this endpoint does not support HTTP range requests. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesDownloadZip + * @arg {FilesDownloadZipArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesDownloadZip = function (arg) { + return this.request('files/download_zip', arg, 'user', 'content', 'download', 'files.content.read'); +}; +/** + * Export a file from a user's Dropbox. This route only supports exporting files + * that cannot be downloaded directly and whose ExportResult.file_metadata has + * ExportInfo.export_as populated. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesExport + * @arg {FilesExportArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesExport = function (arg) { + return this.request('files/export', arg, 'user', 'content', 'download', 'files.content.read'); +}; +/** + * Return the lock metadata for the given list of paths. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetFileLockBatch + * @arg {FilesLockFileBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesGetFileLockBatch = function (arg) { + return this.request('files/get_file_lock_batch', arg, 'user', 'api', 'rpc', 'files.content.read'); +}; +/** + * Returns the metadata for a file or folder. Note: Metadata for the root folder + * is unsupported. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesGetMetadata + * @arg {FilesGetMetadataArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesGetMetadata = function (arg) { + return this.request('files/get_metadata', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Get a preview for a file. Currently, PDF previews are generated for files + * with the following extensions: .ai, .doc, .docm, .docx, .eps, .gdoc, + * .gslides, .odp, .odt, .pps, .ppsm, .ppsx, .ppt, .pptm, .pptx, .rtf. HTML + * previews are generated for files with the following extensions: .csv, .ods, + * .xls, .xlsm, .gsheet, .xlsx. Other formats will return an unsupported + * extension error. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetPreview + * @arg {FilesPreviewArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesGetPreview = function (arg) { + return this.request('files/get_preview', arg, 'user', 'content', 'download', 'files.content.read'); +}; +/** + * Get a temporary link to stream content of a file. This link will expire in + * four hours and afterwards you will get 410 Gone. This URL should not be used + * to display content directly in the browser. The Content-Type of the link is + * determined automatically by the file's mime type. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetTemporaryLink + * @arg {FilesGetTemporaryLinkArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesGetTemporaryLink = function (arg) { + return this.request('files/get_temporary_link', arg, 'user', 'api', 'rpc', 'files.content.read'); +}; +/** + * Get a one-time use temporary upload link to upload a file to a Dropbox + * location. This endpoint acts as a delayed upload. The returned temporary + * upload link may be used to make a POST request with the data to be uploaded. + * The upload will then be perfomed with the CommitInfo previously provided to + * get_temporary_upload_link but evaluated only upon consumption. Hence, errors + * stemming from invalid CommitInfo with respect to the state of the user's + * Dropbox will only be communicated at consumption time. Additionally, these + * errors are surfaced as generic HTTP 409 Conflict responses, potentially + * hiding issue details. The maximum temporary upload link duration is 4 hours. + * Upon consumption or expiration, a new link will have to be generated. + * Multiple links may exist for a specific upload path at any given time. The + * POST request on the temporary upload link must have its Content-Type set to + * "application/octet-stream". Example temporary upload link consumption + * request: curl -X POST + * https://content.dropboxapi.com/apitul/1/bNi2uIYF51cVBND --header + * "Content-Type: application/octet-stream" --data-binary @local_file.txt A + * successful temporary upload link consumption request returns the content hash + * of the uploaded data in JSON format. Example successful temporary upload + * link consumption response: {"content-hash": + * "599d71033d700ac892a0e48fa61b125d2f5994"} An unsuccessful temporary upload + * link consumption request returns any of the following status codes: HTTP 400 + * Bad Request: Content-Type is not one of application/octet-stream and + * text/plain or request is invalid. HTTP 409 Conflict: The temporary upload + * link does not exist or is currently unavailable, the upload failed, or + * another error happened. HTTP 410 Gone: The temporary upload link is expired + * or consumed. Example unsuccessful temporary upload link consumption + * response: Temporary upload link has been recently consumed. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesGetTemporaryUploadLink + * @arg {FilesGetTemporaryUploadLinkArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesGetTemporaryUploadLink = function (arg) { + return this.request('files/get_temporary_upload_link', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Get a thumbnail for an image. This method currently supports files with the + * following file extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp. + * Photos that are larger than 20MB in size won't be converted to a thumbnail. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetThumbnail + * @arg {FilesThumbnailArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesGetThumbnail = function (arg) { + return this.request('files/get_thumbnail', arg, 'user', 'content', 'download', 'files.content.read'); +}; +/** + * Get a thumbnail for an image. This method currently supports files with the + * following file extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp. + * Photos that are larger than 20MB in size won't be converted to a thumbnail. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetThumbnailV2 + * @arg {FilesThumbnailV2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesGetThumbnailV2 = function (arg) { + return this.request('files/get_thumbnail_v2', arg, 'app, user', 'content', 'download', 'files.content.read'); +}; +/** + * Get thumbnails for a list of images. We allow up to 25 thumbnails in a single + * batch. This method currently supports files with the following file + * extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp. Photos that + * are larger than 20MB in size won't be converted to a thumbnail. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetThumbnailBatch + * @arg {FilesGetThumbnailBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesGetThumbnailBatch = function (arg) { + return this.request('files/get_thumbnail_batch', arg, 'user', 'content', 'rpc', 'files.content.read'); +}; +/** + * Starts returning the contents of a folder. If the result's + * ListFolderResult.has_more field is true, call list_folder/continue with the + * returned ListFolderResult.cursor to retrieve more entries. If you're using + * ListFolderArg.recursive set to true to keep a local cache of the contents of + * a Dropbox account, iterate through each entry in order and process them as + * follows to keep your local state in sync: For each FileMetadata, store the + * new entry at the given path in your local state. If the required parent + * folders don't exist yet, create them. If there's already something else at + * the given path, replace it and remove all its children. For each + * FolderMetadata, store the new entry at the given path in your local state. If + * the required parent folders don't exist yet, create them. If there's already + * something else at the given path, replace it but leave the children as they + * are. Check the new entry's FolderSharingInfo.read_only and set all its + * children's read-only statuses to match. For each DeletedMetadata, if your + * local state has something at the given path, remove it and all its children. + * If there's nothing at the given path, ignore this entry. Note: + * auth.RateLimitError may be returned if multiple list_folder or + * list_folder/continue calls with same parameters are made simultaneously by + * same API app for same user. If your app implements retry logic, please hold + * off the retry until the previous request finishes. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListFolder + * @arg {FilesListFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesListFolder = function (arg) { + return this.request('files/list_folder', arg, 'app, user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Once a cursor has been retrieved from list_folder, use this to paginate + * through all files and retrieve updates to the folder, following the same + * rules as documented for list_folder. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListFolderContinue + * @arg {FilesListFolderContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesListFolderContinue = function (arg) { + return this.request('files/list_folder/continue', arg, 'app, user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * A way to quickly get a cursor for the folder's state. Unlike list_folder, + * list_folder/get_latest_cursor doesn't return any entries. This endpoint is + * for app which only needs to know about new files and modifications and + * doesn't need to know about files that already exist in Dropbox. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListFolderGetLatestCursor + * @arg {FilesListFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesListFolderGetLatestCursor = function (arg) { + return this.request('files/list_folder/get_latest_cursor', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * A longpoll endpoint to wait for changes on an account. In conjunction with + * list_folder/continue, this call gives you a low-latency way to monitor an + * account for file changes. The connection will block until there are changes + * available or a timeout occurs. This endpoint is useful mostly for client-side + * apps. If you're looking for server-side notifications, check out our webhooks + * documentation https://www.dropbox.com/developers/reference/webhooks. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListFolderLongpoll + * @arg {FilesListFolderLongpollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesListFolderLongpoll = function (arg) { + return this.request('files/list_folder/longpoll', arg, 'noauth', 'notify', 'rpc', 'files.metadata.read'); +}; +/** + * Returns revisions for files based on a file path or a file id. The file path + * or file id is identified from the latest file entry at the given file path or + * id. This end point allows your app to query either by file path or file id by + * setting the mode parameter appropriately. In the ListRevisionsMode.path + * (default) mode, all revisions at the same file path as the latest file entry + * are returned. If revisions with the same file id are desired, then mode must + * be set to ListRevisionsMode.id. The ListRevisionsMode.id mode is useful to + * retrieve revisions for a given file across moves or renames. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListRevisions + * @arg {FilesListRevisionsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesListRevisions = function (arg) { + return this.request('files/list_revisions', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Lock the files at the given paths. A locked file will be writable only by the + * lock holder. A successful response indicates that the file has been locked. + * Returns a list of the locked file paths and their metadata after this + * operation. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesLockFileBatch + * @arg {FilesLockFileBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesLockFileBatch = function (arg) { + return this.request('files/lock_file_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Move a file or folder to a different location in the user's Dropbox. If the + * source path is a folder all its contents will be moved. Note that we do not + * currently support case-only renaming. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveV2 + * @arg {FilesRelocationArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesMoveV2 = function (arg) { + return this.request('files/move_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Move a file or folder to a different location in the user's Dropbox. If the + * source path is a folder all its contents will be moved. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMove + * @deprecated + * @arg {FilesRelocationArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesMove = function (arg) { + return this.request('files/move', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Move multiple files or folders to different locations at once in the user's + * Dropbox. Note that we do not currently support case-only renaming. This route + * will replace move_batch. The main difference is this route will return status + * for each entry, while move_batch raises failure if any entry fails. This + * route will either finish synchronously, or return a job ID and do the async + * move job in background. Please use move_batch/check_v2 to check the job + * status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveBatchV2 + * @arg {FilesMoveBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesMoveBatchV2 = function (arg) { + return this.request('files/move_batch_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Move multiple files or folders to different locations at once in the user's + * Dropbox. This route will return job ID immediately and do the async moving + * job in background. Please use move_batch/check to check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveBatch + * @deprecated + * @arg {FilesRelocationBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesMoveBatch = function (arg) { + return this.request('files/move_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Returns the status of an asynchronous job for move_batch_v2. It returns list + * of results for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveBatchCheckV2 + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesMoveBatchCheckV2 = function (arg) { + return this.request('files/move_batch/check_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Returns the status of an asynchronous job for move_batch. If success, it + * returns list of results for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveBatchCheck + * @deprecated + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesMoveBatchCheck = function (arg) { + return this.request('files/move_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Creates a new Paper doc with the provided content. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesPaperCreate + * @arg {FilesPaperCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesPaperCreate = function (arg) { + return this.request('files/paper/create', arg, 'user', 'api', 'upload', 'files.content.write'); +}; +/** + * Updates an existing Paper doc with the provided content. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesPaperUpdate + * @arg {FilesPaperUpdateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesPaperUpdate = function (arg) { + return this.request('files/paper/update', arg, 'user', 'api', 'upload', 'files.content.write'); +}; +/** + * Permanently delete the file or folder at a given path (see + * https://www.dropbox.com/en/help/40). If the given file or folder is not yet + * deleted, this route will first delete it. It is possible for this route to + * successfully delete, then fail to permanently delete. Note: This endpoint is + * only available for Dropbox Business apps. + * Route attributes: + * scope: files.permanent_delete + * @function Dropbox#filesPermanentlyDelete + * @arg {FilesDeleteArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesPermanentlyDelete = function (arg) { + return this.request('files/permanently_delete', arg, 'user', 'api', 'rpc', 'files.permanent_delete'); +}; +/** + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesPropertiesAdd + * @deprecated + * @arg {FilePropertiesAddPropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesPropertiesAdd = function (arg) { + return this.request('files/properties/add', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesPropertiesOverwrite + * @deprecated + * @arg {FilePropertiesOverwritePropertyGroupArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesPropertiesOverwrite = function (arg) { + return this.request('files/properties/overwrite', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesPropertiesRemove + * @deprecated + * @arg {FilePropertiesRemovePropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesPropertiesRemove = function (arg) { + return this.request('files/properties/remove', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesPropertiesTemplateGet + * @deprecated + * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesPropertiesTemplateGet = function (arg) { + return this.request('files/properties/template/get', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesPropertiesTemplateList + * @deprecated + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesPropertiesTemplateList = function () { + return this.request('files/properties/template/list', null, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesPropertiesUpdate + * @deprecated + * @arg {FilePropertiesUpdatePropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesPropertiesUpdate = function (arg) { + return this.request('files/properties/update', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Restore a specific revision of a file to the given path. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesRestore + * @arg {FilesRestoreArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesRestore = function (arg) { + return this.request('files/restore', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Save the data from a specified URL into a file in user's Dropbox. Note that + * the transfer from the URL must complete within 5 minutes, or the operation + * will time out and the job will fail. If the given path already exists, the + * file will be renamed to avoid the conflict (e.g. myfile (1).txt). + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesSaveUrl + * @arg {FilesSaveUrlArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesSaveUrl = function (arg) { + return this.request('files/save_url', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Check the status of a save_url job. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesSaveUrlCheckJobStatus + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesSaveUrlCheckJobStatus = function (arg) { + return this.request('files/save_url/check_job_status', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Searches for files and folders. Note: Recent changes will be reflected in + * search results within a few seconds and older revisions of existing files may + * still match your query for up to a few days. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesSearch + * @deprecated + * @arg {FilesSearchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesSearch = function (arg) { + return this.request('files/search', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Searches for files and folders. Note: search_v2 along with search/continue_v2 + * can only be used to retrieve a maximum of 10,000 matches. Recent changes may + * not immediately be reflected in search results due to a short delay in + * indexing. Duplicate results may be returned across pages. Some results may + * not be returned. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesSearchV2 + * @arg {FilesSearchV2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesSearchV2 = function (arg) { + return this.request('files/search_v2', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Fetches the next page of search results returned from search_v2. Note: + * search_v2 along with search/continue_v2 can only be used to retrieve a + * maximum of 10,000 matches. Recent changes may not immediately be reflected in + * search results due to a short delay in indexing. Duplicate results may be + * returned across pages. Some results may not be returned. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesSearchContinueV2 + * @arg {FilesSearchV2ContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesSearchContinueV2 = function (arg) { + return this.request('files/search/continue_v2', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Add a tag to an item. A tag is a string. The strings are automatically + * converted to lowercase letters. No more than 20 tags can be added to a given + * item. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesTagsAdd + * @arg {FilesAddTagArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesTagsAdd = function (arg) { + return this.request('files/tags/add', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Get list of tags assigned to items. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesTagsGet + * @arg {FilesGetTagsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesTagsGet = function (arg) { + return this.request('files/tags/get', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Remove a tag from an item. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesTagsRemove + * @arg {FilesRemoveTagArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesTagsRemove = function (arg) { + return this.request('files/tags/remove', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; +/** + * Unlock the files at the given paths. A locked file can only be unlocked by + * the lock holder or, if a business account, a team admin. A successful + * response indicates that the file has been unlocked. Returns a list of the + * unlocked file paths and their metadata after this operation. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUnlockFileBatch + * @arg {FilesUnlockFileBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUnlockFileBatch = function (arg) { + return this.request('files/unlock_file_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Create a new file with the contents provided in the request. Do not use this + * to upload a file larger than 150 MB. Instead, create an upload session with + * upload_session/start. Calls to this endpoint will count as data transport + * calls for any Dropbox Business teams with a limit on the number of data + * transport calls allowed per month. For more information, see the Data + * transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUpload + * @arg {FilesUploadArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUpload = function (arg) { + return this.request('files/upload', arg, 'user', 'content', 'upload', 'files.content.write'); +}; +/** + * Append more data to an upload session. When the parameter close is set, this + * call will close the session. A single request should not upload more than 150 + * MB. The maximum size of a file one can upload to an upload session is 350 GB. + * Calls to this endpoint will count as data transport calls for any Dropbox + * Business teams with a limit on the number of data transport calls allowed per + * month. For more information, see the Data transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionAppendV2 + * @arg {FilesUploadSessionAppendArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUploadSessionAppendV2 = function (arg) { + return this.request('files/upload_session/append_v2', arg, 'user', 'content', 'upload', 'files.content.write'); +}; +/** + * Append more data to an upload session. A single request should not upload + * more than 150 MB. The maximum size of a file one can upload to an upload + * session is 350 GB. Calls to this endpoint will count as data transport calls + * for any Dropbox Business teams with a limit on the number of data transport + * calls allowed per month. For more information, see the Data transport limit + * page https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionAppend + * @deprecated + * @arg {FilesUploadSessionCursor} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUploadSessionAppend = function (arg) { + return this.request('files/upload_session/append', arg, 'user', 'content', 'upload', 'files.content.write'); +}; +/** + * Finish an upload session and save the uploaded data to the given file path. A + * single request should not upload more than 150 MB. The maximum size of a file + * one can upload to an upload session is 350 GB. Calls to this endpoint will + * count as data transport calls for any Dropbox Business teams with a limit on + * the number of data transport calls allowed per month. For more information, + * see the Data transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionFinish + * @arg {FilesUploadSessionFinishArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUploadSessionFinish = function (arg) { + return this.request('files/upload_session/finish', arg, 'user', 'content', 'upload', 'files.content.write'); +}; +/** + * This route helps you commit many files at once into a user's Dropbox. Use + * upload_session/start and upload_session/append_v2 to upload file contents. We + * recommend uploading many files in parallel to increase throughput. Once the + * file contents have been uploaded, rather than calling upload_session/finish, + * use this route to finish all your upload sessions in a single request. + * UploadSessionStartArg.close or UploadSessionAppendArg.close needs to be true + * for the last upload_session/start or upload_session/append_v2 call. The + * maximum size of a file one can upload to an upload session is 350 GB. This + * route will return a job_id immediately and do the async commit job in + * background. Use upload_session/finish_batch/check to check the job status. + * For the same account, this route should be executed serially. That means you + * should not start the next job before current job finishes. We allow up to + * 1000 entries in a single request. Calls to this endpoint will count as data + * transport calls for any Dropbox Business teams with a limit on the number of + * data transport calls allowed per month. For more information, see the Data + * transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionFinishBatch + * @deprecated + * @arg {FilesUploadSessionFinishBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUploadSessionFinishBatch = function (arg) { + return this.request('files/upload_session/finish_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * This route helps you commit many files at once into a user's Dropbox. Use + * upload_session/start and upload_session/append_v2 to upload file contents. We + * recommend uploading many files in parallel to increase throughput. Once the + * file contents have been uploaded, rather than calling upload_session/finish, + * use this route to finish all your upload sessions in a single request. + * UploadSessionStartArg.close or UploadSessionAppendArg.close needs to be true + * for the last upload_session/start or upload_session/append_v2 call of each + * upload session. The maximum size of a file one can upload to an upload + * session is 350 GB. We allow up to 1000 entries in a single request. Calls to + * this endpoint will count as data transport calls for any Dropbox Business + * teams with a limit on the number of data transport calls allowed per month. + * For more information, see the Data transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionFinishBatchV2 + * @arg {FilesUploadSessionFinishBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUploadSessionFinishBatchV2 = function (arg) { + return this.request('files/upload_session/finish_batch_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Returns the status of an asynchronous job for upload_session/finish_batch. If + * success, it returns list of result for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionFinishBatchCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUploadSessionFinishBatchCheck = function (arg) { + return this.request('files/upload_session/finish_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Upload sessions allow you to upload a single file in one or more requests, + * for example where the size of the file is greater than 150 MB. This call + * starts a new upload session with the given data. You can then use + * upload_session/append_v2 to add more data and upload_session/finish to save + * all the data to a file in Dropbox. A single request should not upload more + * than 150 MB. The maximum size of a file one can upload to an upload session + * is 350 GB. An upload session can be used for a maximum of 7 days. Attempting + * to use an UploadSessionStartResult.session_id with upload_session/append_v2 + * or upload_session/finish more than 7 days after its creation will return a + * UploadSessionLookupError.not_found. Calls to this endpoint will count as data + * transport calls for any Dropbox Business teams with a limit on the number of + * data transport calls allowed per month. For more information, see the Data + * transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. By + * default, upload sessions require you to send content of the file in + * sequential order via consecutive upload_session/start, + * upload_session/append_v2, upload_session/finish calls. For better + * performance, you can instead optionally use a UploadSessionType.concurrent + * upload session. To start a new concurrent session, set + * UploadSessionStartArg.session_type to UploadSessionType.concurrent. After + * that, you can send file data in concurrent upload_session/append_v2 requests. + * Finally finish the session with upload_session/finish. There are couple of + * constraints with concurrent sessions to make them work. You can not send data + * with upload_session/start or upload_session/finish call, only with + * upload_session/append_v2 call. Also data uploaded in upload_session/append_v2 + * call must be multiple of 4194304 bytes (except for last + * upload_session/append_v2 with UploadSessionStartArg.close to true, that may + * contain any remaining data). + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionStart + * @arg {FilesUploadSessionStartArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUploadSessionStart = function (arg) { + return this.request('files/upload_session/start', arg, 'user', 'content', 'upload', 'files.content.write'); +}; +/** + * This route starts batch of upload_sessions. Please refer to + * `upload_session/start` usage. Calls to this endpoint will count as data + * transport calls for any Dropbox Business teams with a limit on the number of + * data transport calls allowed per month. For more information, see the Data + * transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionStartBatch + * @arg {FilesUploadSessionStartBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.filesUploadSessionStartBatch = function (arg) { + return this.request('files/upload_session/start_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * This route is used for refreshing the info that is found in the id_token + * during the OIDC flow. This route doesn't require any arguments and will use + * the scopes approved for the given access token. + * Route attributes: + * scope: openid + * @function Dropbox#openidUserinfo + * @arg {OpenidUserInfoArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.openidUserinfo = function (arg) { + return this.request('openid/userinfo', arg, 'user', 'api', 'rpc', 'openid'); +}; +/** + * Marks the given Paper doc as archived. This action can be performed or undone + * by anyone with edit permissions to the doc. Note that this endpoint will + * continue to work for content created by users on the older version of Paper. + * To check which version of Paper a user is on, use /users/features/get_values. + * If the paper_as_files feature is enabled, then the user is running the new + * version of Paper. This endpoint will be retired in September 2020. Refer to + * the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * more information. + * Route attributes: + * scope: files.content.write + * @function Dropbox#paperDocsArchive + * @deprecated + * @arg {PaperRefPaperDoc} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsArchive = function (arg) { + return this.request('paper/docs/archive', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Creates a new Paper doc with the provided content. Note that this endpoint + * will continue to work for content created by users on the older version of + * Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. This endpoint will be retired + * in September 2020. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * more information. + * Route attributes: + * scope: files.content.write + * @function Dropbox#paperDocsCreate + * @deprecated + * @arg {PaperPaperDocCreateArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsCreate = function (arg) { + return this.request('paper/docs/create', arg, 'user', 'api', 'upload', 'files.content.write'); +}; +/** + * Exports and downloads Paper doc either as HTML or markdown. Note that this + * endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: files.content.read + * @function Dropbox#paperDocsDownload + * @deprecated + * @arg {PaperPaperDocExport} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsDownload = function (arg) { + return this.request('paper/docs/download', arg, 'user', 'api', 'download', 'files.content.read'); +}; +/** + * Lists the users who are explicitly invited to the Paper folder in which the + * Paper doc is contained. For private folders all users (including owner) + * shared on the folder are listed and for team folders all non-team users + * shared on the folder are returned. Note that this endpoint will continue to + * work for content created by users on the older version of Paper. To check + * which version of Paper a user is on, use /users/features/get_values. If the + * paper_as_files feature is enabled, then the user is running the new version + * of Paper. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsFolderUsersList + * @deprecated + * @arg {PaperListUsersOnFolderArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsFolderUsersList = function (arg) { + return this.request('paper/docs/folder_users/list', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Once a cursor has been retrieved from docs/folder_users/list, use this to + * paginate through all users on the Paper folder. Note that this endpoint will + * continue to work for content created by users on the older version of Paper. + * To check which version of Paper a user is on, use /users/features/get_values. + * If the paper_as_files feature is enabled, then the user is running the new + * version of Paper. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsFolderUsersListContinue + * @deprecated + * @arg {PaperListUsersOnFolderContinueArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsFolderUsersListContinue = function (arg) { + return this.request('paper/docs/folder_users/list/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Retrieves folder information for the given Paper doc. This includes: - + * folder sharing policy; permissions for subfolders are set by the top-level + * folder. - full 'filepath', i.e. the list of folders (both folderId and + * folderName) from the root folder to the folder directly containing the + * Paper doc. If the Paper doc is not in any folder (aka unfiled) the response + * will be empty. Note that this endpoint will continue to work for content + * created by users on the older version of Paper. To check which version of + * Paper a user is on, use /users/features/get_values. If the paper_as_files + * feature is enabled, then the user is running the new version of Paper. Refer + * to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsGetFolderInfo + * @deprecated + * @arg {PaperRefPaperDoc} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsGetFolderInfo = function (arg) { + return this.request('paper/docs/get_folder_info', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Return the list of all Paper docs according to the argument specifications. + * To iterate over through the full pagination, pass the cursor to + * docs/list/continue. Note that this endpoint will continue to work for content + * created by users on the older version of Paper. To check which version of + * Paper a user is on, use /users/features/get_values. If the paper_as_files + * feature is enabled, then the user is running the new version of Paper. Refer + * to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#paperDocsList + * @deprecated + * @arg {PaperListPaperDocsArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsList = function (arg) { + return this.request('paper/docs/list', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Once a cursor has been retrieved from docs/list, use this to paginate through + * all Paper doc. Note that this endpoint will continue to work for content + * created by users on the older version of Paper. To check which version of + * Paper a user is on, use /users/features/get_values. If the paper_as_files + * feature is enabled, then the user is running the new version of Paper. Refer + * to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#paperDocsListContinue + * @deprecated + * @arg {PaperListPaperDocsContinueArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsListContinue = function (arg) { + return this.request('paper/docs/list/continue', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; +/** + * Permanently deletes the given Paper doc. This operation is final as the doc + * cannot be recovered. This action can be performed only by the doc owner. Note + * that this endpoint will continue to work for content created by users on the + * older version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: files.permanent_delete + * @function Dropbox#paperDocsPermanentlyDelete + * @deprecated + * @arg {PaperRefPaperDoc} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsPermanentlyDelete = function (arg) { + return this.request('paper/docs/permanently_delete', arg, 'user', 'api', 'rpc', 'files.permanent_delete'); +}; +/** + * Gets the default sharing policy for the given Paper doc. Note that this + * endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsSharingPolicyGet + * @deprecated + * @arg {PaperRefPaperDoc} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsSharingPolicyGet = function (arg) { + return this.request('paper/docs/sharing_policy/get', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Sets the default sharing policy for the given Paper doc. The default + * 'team_sharing_policy' can be changed only by teams, omit this field for + * personal accounts. The 'public_sharing_policy' policy can't be set to the + * value 'disabled' because this setting can be changed only via the team admin + * console. Note that this endpoint will continue to work for content created by + * users on the older version of Paper. To check which version of Paper a user + * is on, use /users/features/get_values. If the paper_as_files feature is + * enabled, then the user is running the new version of Paper. Refer to the + * Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.write + * @function Dropbox#paperDocsSharingPolicySet + * @deprecated + * @arg {PaperPaperDocSharingPolicy} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsSharingPolicySet = function (arg) { + return this.request('paper/docs/sharing_policy/set', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Updates an existing Paper doc with the provided content. Note that this + * endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. This endpoint will be retired + * in September 2020. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * more information. + * Route attributes: + * scope: files.content.write + * @function Dropbox#paperDocsUpdate + * @deprecated + * @arg {PaperPaperDocUpdateArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsUpdate = function (arg) { + return this.request('paper/docs/update', arg, 'user', 'api', 'upload', 'files.content.write'); +}; +/** + * Allows an owner or editor to add users to a Paper doc or change their + * permissions using their email address or Dropbox account ID. The doc owner's + * permissions cannot be changed. Note that this endpoint will continue to work + * for content created by users on the older version of Paper. To check which + * version of Paper a user is on, use /users/features/get_values. If the + * paper_as_files feature is enabled, then the user is running the new version + * of Paper. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.write + * @function Dropbox#paperDocsUsersAdd + * @deprecated + * @arg {PaperAddPaperDocUser} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + +routes.paperDocsUsersAdd = function (arg) { + return this.request('paper/docs/users/add', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Lists all users who visited the Paper doc or users with explicit access. This + * call excludes users who have been removed. The list is sorted by the date of + * the visit or the share date. The list will include both users, the explicitly + * shared ones as well as those who came in using the Paper url link. Note that + * this endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsUsersList + * @deprecated + * @arg {PaperListUsersOnPaperDocArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsUsersList = function (arg) { + return this.request('paper/docs/users/list', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Once a cursor has been retrieved from docs/users/list, use this to paginate + * through all users on the Paper doc. Note that this endpoint will continue to + * work for content created by users on the older version of Paper. To check + * which version of Paper a user is on, use /users/features/get_values. If the + * paper_as_files feature is enabled, then the user is running the new version + * of Paper. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsUsersListContinue + * @deprecated + * @arg {PaperListUsersOnPaperDocContinueArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsUsersListContinue = function (arg) { + return this.request('paper/docs/users/list/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Allows an owner or editor to remove users from a Paper doc using their email + * address or Dropbox account ID. The doc owner cannot be removed. Note that + * this endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: sharing.write + * @function Dropbox#paperDocsUsersRemove + * @deprecated + * @arg {PaperRemovePaperDocUser} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperDocsUsersRemove = function (arg) { + return this.request('paper/docs/users/remove', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Create a new Paper folder with the provided info. Note that this endpoint + * will continue to work for content created by users on the older version of + * Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: files.content.write + * @function Dropbox#paperFoldersCreate + * @deprecated + * @arg {PaperPaperFolderCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.paperFoldersCreate = function (arg) { + return this.request('paper/folders/create', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; +/** + * Adds specified members to a file. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingAddFileMember + * @arg {SharingAddFileMemberArgs} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + +routes.sharingAddFileMember = function (arg) { + return this.request('sharing/add_file_member', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Allows an owner or editor (if the ACL update policy allows) of a shared + * folder to add another member. For the new member to get access to all the + * functionality for this folder, you will need to call mount_folder on their + * behalf. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingAddFolderMember + * @arg {SharingAddFolderMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingAddFolderMember = function (arg) { + return this.request('sharing/add_folder_member', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Returns the status of an asynchronous job. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCheckJobStatus + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingCheckJobStatus = function (arg) { + return this.request('sharing/check_job_status', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Returns the status of an asynchronous job for sharing a folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCheckRemoveMemberJobStatus + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingCheckRemoveMemberJobStatus = function (arg) { + return this.request('sharing/check_remove_member_job_status', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Returns the status of an asynchronous job for sharing a folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCheckShareJobStatus + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingCheckShareJobStatus = function (arg) { + return this.request('sharing/check_share_job_status', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Create a shared link. If a shared link already exists for the given path, + * that link is returned. Previously, it was technically possible to break a + * shared link by moving or renaming the corresponding file or folder. In the + * future, this will no longer be the case, so your app shouldn't rely on this + * behavior. Instead, if your app needs to revoke a shared link, use + * revoke_shared_link. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCreateSharedLink + * @deprecated + * @arg {SharingCreateSharedLinkArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingCreateSharedLink = function (arg) { + return this.request('sharing/create_shared_link', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Create a shared link with custom settings. If no settings are given then the + * default visibility is RequestedVisibility.public (The resolved visibility, + * though, may depend on other aspects such as team and shared folder settings). + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCreateSharedLinkWithSettings + * @arg {SharingCreateSharedLinkWithSettingsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingCreateSharedLinkWithSettings = function (arg) { + return this.request('sharing/create_shared_link_with_settings', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Returns shared file metadata. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetFileMetadata + * @arg {SharingGetFileMetadataArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingGetFileMetadata = function (arg) { + return this.request('sharing/get_file_metadata', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Returns shared file metadata. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetFileMetadataBatch + * @arg {SharingGetFileMetadataBatchArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + +routes.sharingGetFileMetadataBatch = function (arg) { + return this.request('sharing/get_file_metadata/batch', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Returns shared folder metadata by its folder ID. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetFolderMetadata + * @arg {SharingGetMetadataArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingGetFolderMetadata = function (arg) { + return this.request('sharing/get_folder_metadata', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Download the shared link's file from a user's Dropbox. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetSharedLinkFile + * @arg {Object} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingGetSharedLinkFile = function (arg) { + return this.request('sharing/get_shared_link_file', arg, 'user', 'content', 'download', 'sharing.read'); +}; +/** + * Get the shared link's metadata. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetSharedLinkMetadata + * @arg {SharingGetSharedLinkMetadataArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingGetSharedLinkMetadata = function (arg) { + return this.request('sharing/get_shared_link_metadata', arg, 'app, user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Returns a list of LinkMetadata objects for this user, including collection + * links. If no path is given, returns a list of all shared links for the + * current user, including collection links, up to a maximum of 1000 links. If a + * non-empty path is given, returns a list of all shared links that allow access + * to the given path. Collection links are never returned in this case. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetSharedLinks + * @deprecated + * @arg {SharingGetSharedLinksArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingGetSharedLinks = function (arg) { + return this.request('sharing/get_shared_links', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Use to obtain the members who have been invited to a file, both inherited and + * uninherited members. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFileMembers + * @arg {SharingListFileMembersArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListFileMembers = function (arg) { + return this.request('sharing/list_file_members', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Get members of multiple files at once. The arguments to this route are more + * limited, and the limit on query result size per file is more strict. To + * customize the results more, use the individual file endpoint. Inherited users + * and groups are not included in the result, and permissions are not returned + * for this endpoint. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFileMembersBatch + * @arg {SharingListFileMembersBatchArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + +routes.sharingListFileMembersBatch = function (arg) { + return this.request('sharing/list_file_members/batch', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Once a cursor has been retrieved from list_file_members or + * list_file_members/batch, use this to paginate through all shared file + * members. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFileMembersContinue + * @arg {SharingListFileMembersContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListFileMembersContinue = function (arg) { + return this.request('sharing/list_file_members/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Returns shared folder membership by its folder ID. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFolderMembers + * @arg {SharingListFolderMembersArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListFolderMembers = function (arg) { + return this.request('sharing/list_folder_members', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Once a cursor has been retrieved from list_folder_members, use this to + * paginate through all shared folder members. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFolderMembersContinue + * @arg {SharingListFolderMembersContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListFolderMembersContinue = function (arg) { + return this.request('sharing/list_folder_members/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Return the list of all shared folders the current user has access to. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFolders + * @arg {SharingListFoldersArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListFolders = function (arg) { + return this.request('sharing/list_folders', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Once a cursor has been retrieved from list_folders, use this to paginate + * through all shared folders. The cursor must come from a previous call to + * list_folders or list_folders/continue. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFoldersContinue + * @arg {SharingListFoldersContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListFoldersContinue = function (arg) { + return this.request('sharing/list_folders/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Return the list of all shared folders the current user can mount or unmount. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListMountableFolders + * @arg {SharingListFoldersArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListMountableFolders = function (arg) { + return this.request('sharing/list_mountable_folders', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Once a cursor has been retrieved from list_mountable_folders, use this to + * paginate through all mountable shared folders. The cursor must come from a + * previous call to list_mountable_folders or list_mountable_folders/continue. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListMountableFoldersContinue + * @arg {SharingListFoldersContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListMountableFoldersContinue = function (arg) { + return this.request('sharing/list_mountable_folders/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Returns a list of all files shared with current user. Does not include files + * the user has received via shared folders, and does not include unclaimed + * invitations. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListReceivedFiles + * @arg {SharingListFilesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListReceivedFiles = function (arg) { + return this.request('sharing/list_received_files', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Get more results with a cursor from list_received_files. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListReceivedFilesContinue + * @arg {SharingListFilesContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListReceivedFilesContinue = function (arg) { + return this.request('sharing/list_received_files/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * List shared links of this user. If no path is given, returns a list of all + * shared links for the current user. For members of business teams using team + * space and member folders, returns all shared links in the team member's home + * folder unless the team space ID is specified in the request header. For more + * information, refer to the Namespace Guide + * https://www.dropbox.com/developers/reference/namespace-guide. If a non-empty + * path is given, returns a list of all shared links that allow access to the + * given path - direct links to the given path and links to parent folders of + * the given path. Links to parent folders can be suppressed by setting + * direct_only to true. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListSharedLinks + * @arg {SharingListSharedLinksArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingListSharedLinks = function (arg) { + return this.request('sharing/list_shared_links', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Modify the shared link's settings. If the requested visibility conflict with + * the shared links policy of the team or the shared folder (in case the linked + * file is part of a shared folder) then the LinkPermissions.resolved_visibility + * of the returned SharedLinkMetadata will reflect the actual visibility of the + * shared link and the LinkPermissions.requested_visibility will reflect the + * requested visibility. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingModifySharedLinkSettings + * @arg {SharingModifySharedLinkSettingsArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingModifySharedLinkSettings = function (arg) { + return this.request('sharing/modify_shared_link_settings', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * The current user mounts the designated folder. Mount a shared folder for a + * user after they have been added as a member. Once mounted, the shared folder + * will appear in their Dropbox. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingMountFolder + * @arg {SharingMountFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingMountFolder = function (arg) { + return this.request('sharing/mount_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * The current user relinquishes their membership in the designated file. Note + * that the current user may still have inherited access to this file through + * the parent folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRelinquishFileMembership + * @arg {SharingRelinquishFileMembershipArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingRelinquishFileMembership = function (arg) { + return this.request('sharing/relinquish_file_membership', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * The current user relinquishes their membership in the designated shared + * folder and will no longer have access to the folder. A folder owner cannot + * relinquish membership in their own folder. This will run synchronously if + * leave_a_copy is false, and asynchronously if leave_a_copy is true. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRelinquishFolderMembership + * @arg {SharingRelinquishFolderMembershipArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingRelinquishFolderMembership = function (arg) { + return this.request('sharing/relinquish_folder_membership', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Identical to remove_file_member_2 but with less information returned. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRemoveFileMember + * @deprecated + * @arg {SharingRemoveFileMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingRemoveFileMember = function (arg) { + return this.request('sharing/remove_file_member', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Removes a specified member from the file. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRemoveFileMember2 + * @arg {SharingRemoveFileMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingRemoveFileMember2 = function (arg) { + return this.request('sharing/remove_file_member_2', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Allows an owner or editor (if the ACL update policy allows) of a shared + * folder to remove another member. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRemoveFolderMember + * @arg {SharingRemoveFolderMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingRemoveFolderMember = function (arg) { + return this.request('sharing/remove_folder_member', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Revoke a shared link. Note that even after revoking a shared link to a file, + * the file may be accessible if there are shared links leading to any of the + * file parent folders. To list all shared links that enable access to a + * specific file, you can use the list_shared_links with the file as the + * ListSharedLinksArg.path argument. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRevokeSharedLink + * @arg {SharingRevokeSharedLinkArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingRevokeSharedLink = function (arg) { + return this.request('sharing/revoke_shared_link', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Change the inheritance policy of an existing Shared Folder. Only permitted + * for shared folders in a shared team root. If a ShareFolderLaunch.async_job_id + * is returned, you'll need to call check_share_job_status until the action + * completes to get the metadata for the folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingSetAccessInheritance + * @arg {SharingSetAccessInheritanceArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingSetAccessInheritance = function (arg) { + return this.request('sharing/set_access_inheritance', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Share a folder with collaborators. Most sharing will be completed + * synchronously. Large folders will be completed asynchronously. To make + * testing the async case repeatable, set `ShareFolderArg.force_async`. If a + * ShareFolderLaunch.async_job_id is returned, you'll need to call + * check_share_job_status until the action completes to get the metadata for the + * folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingShareFolder + * @arg {SharingShareFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingShareFolder = function (arg) { + return this.request('sharing/share_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Transfer ownership of a shared folder to a member of the shared folder. User + * must have AccessLevel.owner access to the shared folder to perform a + * transfer. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingTransferFolder + * @arg {SharingTransferFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingTransferFolder = function (arg) { + return this.request('sharing/transfer_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * The current user unmounts the designated folder. They can re-mount the folder + * at a later time using mount_folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUnmountFolder + * @arg {SharingUnmountFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingUnmountFolder = function (arg) { + return this.request('sharing/unmount_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Remove all members from this file. Does not remove inherited members. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUnshareFile + * @arg {SharingUnshareFileArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingUnshareFile = function (arg) { + return this.request('sharing/unshare_file', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Allows a shared folder owner to unshare the folder. You'll need to call + * check_job_status to determine if the action has completed successfully. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUnshareFolder + * @arg {SharingUnshareFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingUnshareFolder = function (arg) { + return this.request('sharing/unshare_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Changes a member's access on a shared file. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUpdateFileMember + * @arg {SharingUpdateFileMemberArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingUpdateFileMember = function (arg) { + return this.request('sharing/update_file_member', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Allows an owner or editor of a shared folder to update another member's + * permissions. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUpdateFolderMember + * @arg {SharingUpdateFolderMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingUpdateFolderMember = function (arg) { + return this.request('sharing/update_folder_member', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * Update the sharing policies for a shared folder. User must have + * AccessLevel.owner access to the shared folder to update its policies. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUpdateFolderPolicy + * @arg {SharingUpdateFolderPolicyArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.sharingUpdateFolderPolicy = function (arg) { + return this.request('sharing/update_folder_policy', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; +/** + * List all device sessions of a team's member. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamDevicesListMemberDevices + * @arg {TeamListMemberDevicesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamDevicesListMemberDevices = function (arg) { + return this.request('team/devices/list_member_devices', arg, 'team', 'api', 'rpc', 'sessions.list'); +}; +/** + * List all device sessions of a team. Permission : Team member file access. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamDevicesListMembersDevices + * @arg {TeamListMembersDevicesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamDevicesListMembersDevices = function (arg) { + return this.request('team/devices/list_members_devices', arg, 'team', 'api', 'rpc', 'sessions.list'); +}; +/** + * List all device sessions of a team. Permission : Team member file access. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamDevicesListTeamDevices + * @deprecated + * @arg {TeamListTeamDevicesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamDevicesListTeamDevices = function (arg) { + return this.request('team/devices/list_team_devices', arg, 'team', 'api', 'rpc', 'sessions.list'); +}; +/** + * Revoke a device session of a team's member. + * Route attributes: + * scope: sessions.modify + * @function Dropbox#teamDevicesRevokeDeviceSession + * @arg {TeamRevokeDeviceSessionArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamDevicesRevokeDeviceSession = function (arg) { + return this.request('team/devices/revoke_device_session', arg, 'team', 'api', 'rpc', 'sessions.modify'); +}; +/** + * Revoke a list of device sessions of team members. + * Route attributes: + * scope: sessions.modify + * @function Dropbox#teamDevicesRevokeDeviceSessionBatch + * @arg {TeamRevokeDeviceSessionBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamDevicesRevokeDeviceSessionBatch = function (arg) { + return this.request('team/devices/revoke_device_session_batch', arg, 'team', 'api', 'rpc', 'sessions.modify'); +}; +/** + * Get the values for one or more featues. This route allows you to check your + * account's capability for what feature you can access or what value you have + * for certain features. Permission : Team information. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamFeaturesGetValues + * @arg {TeamFeaturesGetValuesBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamFeaturesGetValues = function (arg) { + return this.request('team/features/get_values', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; +/** + * Retrieves information about a team. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamGetInfo + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGetInfo = function () { + return this.request('team/get_info', null, 'team', 'api', 'rpc', 'team_info.read'); +}; +/** + * Creates a new, empty group, with a requested name. Permission : Team member + * management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsCreate + * @arg {TeamGroupCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsCreate = function (arg) { + return this.request('team/groups/create', arg, 'team', 'api', 'rpc', 'groups.write'); +}; +/** + * Deletes a group. The group is deleted immediately. However the revoking of + * group-owned resources may take additional time. Use the groups/job_status/get + * to determine whether this process has completed. Permission : Team member + * management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsDelete + * @arg {TeamGroupSelector} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsDelete = function (arg) { + return this.request('team/groups/delete', arg, 'team', 'api', 'rpc', 'groups.write'); +}; +/** + * Retrieves information about one or more groups. Note that the optional field + * GroupFullInfo.members is not returned for system-managed groups. Permission : + * Team Information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsGetInfo + * @arg {TeamGroupsSelector} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsGetInfo = function (arg) { + return this.request('team/groups/get_info', arg, 'team', 'api', 'rpc', 'groups.read'); +}; +/** + * Once an async_job_id is returned from groups/delete, groups/members/add , or + * groups/members/remove use this method to poll the status of granting/revoking + * group members' access to group-owned resources. Permission : Team member + * management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsJobStatusGet + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsJobStatusGet = function (arg) { + return this.request('team/groups/job_status/get', arg, 'team', 'api', 'rpc', 'groups.write'); +}; +/** + * Lists groups on a team. Permission : Team Information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsList + * @arg {TeamGroupsListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsList = function (arg) { + return this.request('team/groups/list', arg, 'team', 'api', 'rpc', 'groups.read'); +}; +/** + * Once a cursor has been retrieved from groups/list, use this to paginate + * through all groups. Permission : Team Information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsListContinue + * @arg {TeamGroupsListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsListContinue = function (arg) { + return this.request('team/groups/list/continue', arg, 'team', 'api', 'rpc', 'groups.read'); +}; +/** + * Adds members to a group. The members are added immediately. However the + * granting of group-owned resources may take additional time. Use the + * groups/job_status/get to determine whether this process has completed. + * Permission : Team member management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsMembersAdd + * @arg {TeamGroupMembersAddArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsMembersAdd = function (arg) { + return this.request('team/groups/members/add', arg, 'team', 'api', 'rpc', 'groups.write'); +}; +/** + * Lists members of a group. Permission : Team Information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsMembersList + * @arg {TeamGroupsMembersListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsMembersList = function (arg) { + return this.request('team/groups/members/list', arg, 'team', 'api', 'rpc', 'groups.read'); +}; +/** + * Once a cursor has been retrieved from groups/members/list, use this to + * paginate through all members of the group. Permission : Team information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsMembersListContinue + * @arg {TeamGroupsMembersListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsMembersListContinue = function (arg) { + return this.request('team/groups/members/list/continue', arg, 'team', 'api', 'rpc', 'groups.read'); +}; +/** + * Removes members from a group. The members are removed immediately. However + * the revoking of group-owned resources may take additional time. Use the + * groups/job_status/get to determine whether this process has completed. This + * method permits removing the only owner of a group, even in cases where this + * is not possible via the web client. Permission : Team member management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsMembersRemove + * @arg {TeamGroupMembersRemoveArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsMembersRemove = function (arg) { + return this.request('team/groups/members/remove', arg, 'team', 'api', 'rpc', 'groups.write'); +}; +/** + * Sets a member's access type in a group. Permission : Team member management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsMembersSetAccessType + * @arg {TeamGroupMembersSetAccessTypeArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsMembersSetAccessType = function (arg) { + return this.request('team/groups/members/set_access_type', arg, 'team', 'api', 'rpc', 'groups.write'); +}; +/** + * Updates a group's name and/or external ID. Permission : Team member + * management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsUpdate + * @arg {TeamGroupUpdateArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamGroupsUpdate = function (arg) { + return this.request('team/groups/update', arg, 'team', 'api', 'rpc', 'groups.write'); +}; +/** + * Creates new legal hold policy. Note: Legal Holds is a paid add-on. Not all + * teams have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsCreatePolicy + * @arg {TeamLegalHoldsPolicyCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLegalHoldsCreatePolicy = function (arg) { + return this.request('team/legal_holds/create_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; +/** + * Gets a legal hold by Id. Note: Legal Holds is a paid add-on. Not all teams + * have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsGetPolicy + * @arg {TeamLegalHoldsGetPolicyArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLegalHoldsGetPolicy = function (arg) { + return this.request('team/legal_holds/get_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; +/** + * List the file metadata that's under the hold. Note: Legal Holds is a paid + * add-on. Not all teams have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsListHeldRevisions + * @arg {TeamLegalHoldsListHeldRevisionsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLegalHoldsListHeldRevisions = function (arg) { + return this.request('team/legal_holds/list_held_revisions', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; +/** + * Continue listing the file metadata that's under the hold. Note: Legal Holds + * is a paid add-on. Not all teams have the feature. Permission : Team member + * file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsListHeldRevisionsContinue + * @arg {TeamLegalHoldsListHeldRevisionsContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLegalHoldsListHeldRevisionsContinue = function (arg) { + return this.request('team/legal_holds/list_held_revisions_continue', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; +/** + * Lists legal holds on a team. Note: Legal Holds is a paid add-on. Not all + * teams have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsListPolicies + * @arg {TeamLegalHoldsListPoliciesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLegalHoldsListPolicies = function (arg) { + return this.request('team/legal_holds/list_policies', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; +/** + * Releases a legal hold by Id. Note: Legal Holds is a paid add-on. Not all + * teams have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsReleasePolicy + * @arg {TeamLegalHoldsPolicyReleaseArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLegalHoldsReleasePolicy = function (arg) { + return this.request('team/legal_holds/release_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; +/** + * Updates a legal hold. Note: Legal Holds is a paid add-on. Not all teams have + * the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsUpdatePolicy + * @arg {TeamLegalHoldsPolicyUpdateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLegalHoldsUpdatePolicy = function (arg) { + return this.request('team/legal_holds/update_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; +/** + * List all linked applications of the team member. Note, this endpoint does not + * list any team-linked applications. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamLinkedAppsListMemberLinkedApps + * @arg {TeamListMemberAppsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLinkedAppsListMemberLinkedApps = function (arg) { + return this.request('team/linked_apps/list_member_linked_apps', arg, 'team', 'api', 'rpc', 'sessions.list'); +}; +/** + * List all applications linked to the team members' accounts. Note, this + * endpoint does not list any team-linked applications. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamLinkedAppsListMembersLinkedApps + * @arg {TeamListMembersAppsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLinkedAppsListMembersLinkedApps = function (arg) { + return this.request('team/linked_apps/list_members_linked_apps', arg, 'team', 'api', 'rpc', 'sessions.list'); +}; +/** + * List all applications linked to the team members' accounts. Note, this + * endpoint doesn't list any team-linked applications. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamLinkedAppsListTeamLinkedApps + * @deprecated + * @arg {TeamListTeamAppsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLinkedAppsListTeamLinkedApps = function (arg) { + return this.request('team/linked_apps/list_team_linked_apps', arg, 'team', 'api', 'rpc', 'sessions.list'); +}; +/** + * Revoke a linked application of the team member. + * Route attributes: + * scope: sessions.modify + * @function Dropbox#teamLinkedAppsRevokeLinkedApp + * @arg {TeamRevokeLinkedApiAppArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLinkedAppsRevokeLinkedApp = function (arg) { + return this.request('team/linked_apps/revoke_linked_app', arg, 'team', 'api', 'rpc', 'sessions.modify'); +}; +/** + * Revoke a list of linked applications of the team members. + * Route attributes: + * scope: sessions.modify + * @function Dropbox#teamLinkedAppsRevokeLinkedAppBatch + * @arg {TeamRevokeLinkedApiAppBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLinkedAppsRevokeLinkedAppBatch = function (arg) { + return this.request('team/linked_apps/revoke_linked_app_batch', arg, 'team', 'api', 'rpc', 'sessions.modify'); +}; +/** + * Add users to member space limits excluded users list. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMemberSpaceLimitsExcludedUsersAdd + * @arg {TeamExcludedUsersUpdateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMemberSpaceLimitsExcludedUsersAdd = function (arg) { + return this.request('team/member_space_limits/excluded_users/add', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * List member space limits excluded users. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMemberSpaceLimitsExcludedUsersList + * @arg {TeamExcludedUsersListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMemberSpaceLimitsExcludedUsersList = function (arg) { + return this.request('team/member_space_limits/excluded_users/list', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Continue listing member space limits excluded users. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMemberSpaceLimitsExcludedUsersListContinue + * @arg {TeamExcludedUsersListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMemberSpaceLimitsExcludedUsersListContinue = function (arg) { + return this.request('team/member_space_limits/excluded_users/list/continue', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Remove users from member space limits excluded users list. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMemberSpaceLimitsExcludedUsersRemove + * @arg {TeamExcludedUsersUpdateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMemberSpaceLimitsExcludedUsersRemove = function (arg) { + return this.request('team/member_space_limits/excluded_users/remove', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Get users custom quota. Returns none as the custom quota if none was set. A + * maximum of 1000 members can be specified in a single call. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMemberSpaceLimitsGetCustomQuota + * @arg {TeamCustomQuotaUsersArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + +routes.teamMemberSpaceLimitsGetCustomQuota = function (arg) { + return this.request('team/member_space_limits/get_custom_quota', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Remove users custom quota. A maximum of 1000 members can be specified in a + * single call. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMemberSpaceLimitsRemoveCustomQuota + * @arg {TeamCustomQuotaUsersArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + +routes.teamMemberSpaceLimitsRemoveCustomQuota = function (arg) { + return this.request('team/member_space_limits/remove_custom_quota', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Set users custom quota. Custom quota has to be at least 15GB. A maximum of + * 1000 members can be specified in a single call. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMemberSpaceLimitsSetCustomQuota + * @arg {TeamSetCustomQuotaArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + +routes.teamMemberSpaceLimitsSetCustomQuota = function (arg) { + return this.request('team/member_space_limits/set_custom_quota', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Adds members to a team. Permission : Team member management A maximum of 20 + * members can be specified in a single call. If no Dropbox account exists with + * the email address specified, a new Dropbox account will be created with the + * given email address, and that account will be invited to the team. If a + * personal Dropbox account exists with the email address specified in the call, + * this call will create a placeholder Dropbox account for the user on the team + * and send an email inviting the user to migrate their existing personal + * account onto the team. Team member management apps are required to set an + * initial given_name and surname for a user to use in the team invitation and + * for 'Perform as team member' actions taken on the user before they become + * 'active'. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersAddV2 + * @arg {TeamMembersAddV2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersAddV2 = function (arg) { + return this.request('team/members/add_v2', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Adds members to a team. Permission : Team member management A maximum of 20 + * members can be specified in a single call. If no Dropbox account exists with + * the email address specified, a new Dropbox account will be created with the + * given email address, and that account will be invited to the team. If a + * personal Dropbox account exists with the email address specified in the call, + * this call will create a placeholder Dropbox account for the user on the team + * and send an email inviting the user to migrate their existing personal + * account onto the team. Team member management apps are required to set an + * initial given_name and surname for a user to use in the team invitation and + * for 'Perform as team member' actions taken on the user before they become + * 'active'. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersAdd + * @arg {TeamMembersAddArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersAdd = function (arg) { + return this.request('team/members/add', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Once an async_job_id is returned from members/add_v2 , use this to poll the + * status of the asynchronous request. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersAddJobStatusGetV2 + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersAddJobStatusGetV2 = function (arg) { + return this.request('team/members/add/job_status/get_v2', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Once an async_job_id is returned from members/add , use this to poll the + * status of the asynchronous request. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersAddJobStatusGet + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersAddJobStatusGet = function (arg) { + return this.request('team/members/add/job_status/get', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Deletes a team member's profile photo. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersDeleteProfilePhotoV2 + * @arg {TeamMembersDeleteProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersDeleteProfilePhotoV2 = function (arg) { + return this.request('team/members/delete_profile_photo_v2', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Deletes a team member's profile photo. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersDeleteProfilePhoto + * @arg {TeamMembersDeleteProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersDeleteProfilePhoto = function (arg) { + return this.request('team/members/delete_profile_photo', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Get available TeamMemberRoles for the connected team. To be used with + * members/set_admin_permissions_v2. Permission : Team member management. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersGetAvailableTeamMemberRoles + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersGetAvailableTeamMemberRoles = function () { + return this.request('team/members/get_available_team_member_roles', null, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Returns information about multiple team members. Permission : Team + * information This endpoint will return MembersGetInfoItem.id_not_found, for + * IDs (or emails) that cannot be matched to a valid team member. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersGetInfoV2 + * @arg {TeamMembersGetInfoV2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersGetInfoV2 = function (arg) { + return this.request('team/members/get_info_v2', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Returns information about multiple team members. Permission : Team + * information This endpoint will return MembersGetInfoItem.id_not_found, for + * IDs (or emails) that cannot be matched to a valid team member. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersGetInfo + * @arg {TeamMembersGetInfoArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersGetInfo = function (arg) { + return this.request('team/members/get_info', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Lists members of a team. Permission : Team information. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersListV2 + * @arg {TeamMembersListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersListV2 = function (arg) { + return this.request('team/members/list_v2', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Lists members of a team. Permission : Team information. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersList + * @arg {TeamMembersListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersList = function (arg) { + return this.request('team/members/list', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Once a cursor has been retrieved from members/list_v2, use this to paginate + * through all team members. Permission : Team information. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersListContinueV2 + * @arg {TeamMembersListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersListContinueV2 = function (arg) { + return this.request('team/members/list/continue_v2', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Once a cursor has been retrieved from members/list, use this to paginate + * through all team members. Permission : Team information. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersListContinue + * @arg {TeamMembersListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersListContinue = function (arg) { + return this.request('team/members/list/continue', arg, 'team', 'api', 'rpc', 'members.read'); +}; +/** + * Moves removed member's files to a different member. This endpoint initiates + * an asynchronous job. To obtain the final result of the job, the client should + * periodically poll members/move_former_member_files/job_status/check. + * Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersMoveFormerMemberFiles + * @arg {TeamMembersDataTransferArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersMoveFormerMemberFiles = function (arg) { + return this.request('team/members/move_former_member_files', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Once an async_job_id is returned from members/move_former_member_files , use + * this to poll the status of the asynchronous request. Permission : Team member + * management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersMoveFormerMemberFilesJobStatusCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersMoveFormerMemberFilesJobStatusCheck = function (arg) { + return this.request('team/members/move_former_member_files/job_status/check', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Recover a deleted member. Permission : Team member management Exactly one of + * team_member_id, email, or external_id must be provided to identify the user + * account. + * Route attributes: + * scope: members.delete + * @function Dropbox#teamMembersRecover + * @arg {TeamMembersRecoverArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersRecover = function (arg) { + return this.request('team/members/recover', arg, 'team', 'api', 'rpc', 'members.delete'); +}; +/** + * Removes a member from a team. Permission : Team member management Exactly one + * of team_member_id, email, or external_id must be provided to identify the + * user account. Accounts can be recovered via members/recover for a 7 day + * period or until the account has been permanently deleted or transferred to + * another account (whichever comes first). Calling members/add while a user is + * still recoverable on your team will return with + * MemberAddResult.user_already_on_team. Accounts can have their files + * transferred via the admin console for a limited time, based on the version + * history length associated with the team (180 days for most teams). This + * endpoint may initiate an asynchronous job. To obtain the final result of the + * job, the client should periodically poll members/remove/job_status/get. + * Route attributes: + * scope: members.delete + * @function Dropbox#teamMembersRemove + * @arg {TeamMembersRemoveArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersRemove = function (arg) { + return this.request('team/members/remove', arg, 'team', 'api', 'rpc', 'members.delete'); +}; +/** + * Once an async_job_id is returned from members/remove , use this to poll the + * status of the asynchronous request. Permission : Team member management. + * Route attributes: + * scope: members.delete + * @function Dropbox#teamMembersRemoveJobStatusGet + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersRemoveJobStatusGet = function (arg) { + return this.request('team/members/remove/job_status/get', arg, 'team', 'api', 'rpc', 'members.delete'); +}; +/** + * Add secondary emails to users. Permission : Team member management. Emails + * that are on verified domains will be verified automatically. For each email + * address not on a verified domain a verification email will be sent. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSecondaryEmailsAdd + * @arg {TeamAddSecondaryEmailsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSecondaryEmailsAdd = function (arg) { + return this.request('team/members/secondary_emails/add', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Delete secondary emails from users Permission : Team member management. Users + * will be notified of deletions of verified secondary emails at both the + * secondary email and their primary email. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSecondaryEmailsDelete + * @arg {TeamDeleteSecondaryEmailsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSecondaryEmailsDelete = function (arg) { + return this.request('team/members/secondary_emails/delete', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Resend secondary email verification emails. Permission : Team member + * management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSecondaryEmailsResendVerificationEmails + * @arg {TeamResendVerificationEmailArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSecondaryEmailsResendVerificationEmails = function (arg) { + return this.request('team/members/secondary_emails/resend_verification_emails', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Sends welcome email to pending team member. Permission : Team member + * management Exactly one of team_member_id, email, or external_id must be + * provided to identify the user account. No-op if team member is not pending. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSendWelcomeEmail + * @arg {TeamUserSelectorArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSendWelcomeEmail = function (arg) { + return this.request('team/members/send_welcome_email', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Updates a team member's permissions. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetAdminPermissionsV2 + * @arg {TeamMembersSetPermissions2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSetAdminPermissionsV2 = function (arg) { + return this.request('team/members/set_admin_permissions_v2', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Updates a team member's permissions. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetAdminPermissions + * @arg {TeamMembersSetPermissionsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSetAdminPermissions = function (arg) { + return this.request('team/members/set_admin_permissions', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Updates a team member's profile. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetProfileV2 + * @arg {TeamMembersSetProfileArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSetProfileV2 = function (arg) { + return this.request('team/members/set_profile_v2', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Updates a team member's profile. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetProfile + * @arg {TeamMembersSetProfileArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSetProfile = function (arg) { + return this.request('team/members/set_profile', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Updates a team member's profile photo. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetProfilePhotoV2 + * @arg {TeamMembersSetProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSetProfilePhotoV2 = function (arg) { + return this.request('team/members/set_profile_photo_v2', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Updates a team member's profile photo. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetProfilePhoto + * @arg {TeamMembersSetProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSetProfilePhoto = function (arg) { + return this.request('team/members/set_profile_photo', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Suspend a member from a team. Permission : Team member management Exactly one + * of team_member_id, email, or external_id must be provided to identify the + * user account. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSuspend + * @arg {TeamMembersDeactivateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersSuspend = function (arg) { + return this.request('team/members/suspend', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Unsuspend a member from a team. Permission : Team member management Exactly + * one of team_member_id, email, or external_id must be provided to identify the + * user account. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersUnsuspend + * @arg {TeamMembersUnsuspendArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamMembersUnsuspend = function (arg) { + return this.request('team/members/unsuspend', arg, 'team', 'api', 'rpc', 'members.write'); +}; +/** + * Returns a list of all team-accessible namespaces. This list includes team + * folders, shared folders containing team members, team members' home + * namespaces, and team members' app folders. Home namespaces and app folders + * are always owned by this team or members of the team, but shared folders may + * be owned by other users or other teams. Duplicates may occur in the list. + * Route attributes: + * scope: team_data.member + * @function Dropbox#teamNamespacesList + * @arg {TeamTeamNamespacesListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamNamespacesList = function (arg) { + return this.request('team/namespaces/list', arg, 'team', 'api', 'rpc', 'team_data.member'); +}; +/** + * Once a cursor has been retrieved from namespaces/list, use this to paginate + * through all team-accessible namespaces. Duplicates may occur in the list. + * Route attributes: + * scope: team_data.member + * @function Dropbox#teamNamespacesListContinue + * @arg {TeamTeamNamespacesListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamNamespacesListContinue = function (arg) { + return this.request('team/namespaces/list/continue', arg, 'team', 'api', 'rpc', 'team_data.member'); +}; +/** + * Permission : Team member file access. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#teamPropertiesTemplateAdd + * @deprecated + * @arg {FilePropertiesAddTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamPropertiesTemplateAdd = function (arg) { + return this.request('team/properties/template/add', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; +/** + * Permission : Team member file access. The scope for the route is + * files.team_metadata.write. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#teamPropertiesTemplateGet + * @deprecated + * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamPropertiesTemplateGet = function (arg) { + return this.request('team/properties/template/get', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; +/** + * Permission : Team member file access. The scope for the route is + * files.team_metadata.write. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#teamPropertiesTemplateList + * @deprecated + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamPropertiesTemplateList = function () { + return this.request('team/properties/template/list', null, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; +/** + * Permission : Team member file access. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#teamPropertiesTemplateUpdate + * @deprecated + * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamPropertiesTemplateUpdate = function (arg) { + return this.request('team/properties/template/update', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; +/** + * Retrieves reporting data about a team's user activity. Deprecated: Will be + * removed on July 1st 2021. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamReportsGetActivity + * @deprecated + * @arg {TeamDateRange} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamReportsGetActivity = function (arg) { + return this.request('team/reports/get_activity', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; +/** + * Retrieves reporting data about a team's linked devices. Deprecated: Will be + * removed on July 1st 2021. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamReportsGetDevices + * @deprecated + * @arg {TeamDateRange} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamReportsGetDevices = function (arg) { + return this.request('team/reports/get_devices', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; +/** + * Retrieves reporting data about a team's membership. Deprecated: Will be + * removed on July 1st 2021. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamReportsGetMembership + * @deprecated + * @arg {TeamDateRange} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamReportsGetMembership = function (arg) { + return this.request('team/reports/get_membership', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; +/** + * Retrieves reporting data about a team's storage usage. Deprecated: Will be + * removed on July 1st 2021. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamReportsGetStorage + * @deprecated + * @arg {TeamDateRange} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamReportsGetStorage = function (arg) { + return this.request('team/reports/get_storage', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; +/** + * Endpoint adds Approve List entries. Changes are effective immediately. + * Changes are committed in transaction. In case of single validation error - + * all entries are rejected. Valid domains (RFC-1034/5) and emails + * (RFC-5322/822) are accepted. Added entries cannot overflow limit of 10000 + * entries per team. Maximum 100 entries per call is allowed. + * Route attributes: + * scope: team_info.write + * @function Dropbox#teamSharingAllowlistAdd + * @arg {TeamSharingAllowlistAddArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamSharingAllowlistAdd = function (arg) { + return this.request('team/sharing_allowlist/add', arg, 'team', 'api', 'rpc', 'team_info.write'); +}; +/** + * Lists Approve List entries for given team, from newest to oldest, returning + * up to `limit` entries at a time. If there are more than `limit` entries + * associated with the current team, more can be fetched by passing the returned + * `cursor` to sharing_allowlist/list/continue. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamSharingAllowlistList + * @arg {TeamSharingAllowlistListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamSharingAllowlistList = function (arg) { + return this.request('team/sharing_allowlist/list', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; +/** + * Lists entries associated with given team, starting from a the cursor. See + * sharing_allowlist/list. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamSharingAllowlistListContinue + * @arg {TeamSharingAllowlistListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamSharingAllowlistListContinue = function (arg) { + return this.request('team/sharing_allowlist/list/continue', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; +/** + * Endpoint removes Approve List entries. Changes are effective immediately. + * Changes are committed in transaction. In case of single validation error - + * all entries are rejected. Valid domains (RFC-1034/5) and emails + * (RFC-5322/822) are accepted. Entries being removed have to be present on the + * list. Maximum 1000 entries per call is allowed. + * Route attributes: + * scope: team_info.write + * @function Dropbox#teamSharingAllowlistRemove + * @arg {TeamSharingAllowlistRemoveArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamSharingAllowlistRemove = function (arg) { + return this.request('team/sharing_allowlist/remove', arg, 'team', 'api', 'rpc', 'team_info.write'); +}; +/** + * Sets an archived team folder's status to active. Permission : Team member + * file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderActivate + * @arg {TeamTeamFolderIdArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTeamFolderActivate = function (arg) { + return this.request('team/team_folder/activate', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; +/** + * Sets an active team folder's status to archived and removes all folder and + * file members. This endpoint cannot be used for teams that have a shared team + * space. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderArchive + * @arg {TeamTeamFolderArchiveArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTeamFolderArchive = function (arg) { + return this.request('team/team_folder/archive', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; +/** + * Returns the status of an asynchronous job for archiving a team folder. + * Permission : Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderArchiveCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTeamFolderArchiveCheck = function (arg) { + return this.request('team/team_folder/archive/check', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; +/** + * Creates a new, active, team folder with no members. This endpoint can only be + * used for teams that do not already have a shared team space. Permission : + * Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderCreate + * @arg {TeamTeamFolderCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTeamFolderCreate = function (arg) { + return this.request('team/team_folder/create', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; +/** + * Retrieves metadata for team folders. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.read + * @function Dropbox#teamTeamFolderGetInfo + * @arg {TeamTeamFolderIdListArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ + + +routes.teamTeamFolderGetInfo = function (arg) { + return this.request('team/team_folder/get_info', arg, 'team', 'api', 'rpc', 'team_data.content.read'); +}; +/** + * Lists all team folders. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.read + * @function Dropbox#teamTeamFolderList + * @arg {TeamTeamFolderListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTeamFolderList = function (arg) { + return this.request('team/team_folder/list', arg, 'team', 'api', 'rpc', 'team_data.content.read'); +}; +/** + * Once a cursor has been retrieved from team_folder/list, use this to paginate + * through all team folders. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.read + * @function Dropbox#teamTeamFolderListContinue + * @arg {TeamTeamFolderListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTeamFolderListContinue = function (arg) { + return this.request('team/team_folder/list/continue', arg, 'team', 'api', 'rpc', 'team_data.content.read'); +}; +/** + * Permanently deletes an archived team folder. This endpoint cannot be used for + * teams that have a shared team space. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderPermanentlyDelete + * @arg {TeamTeamFolderIdArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTeamFolderPermanentlyDelete = function (arg) { + return this.request('team/team_folder/permanently_delete', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; +/** + * Changes an active team folder's name. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderRename + * @arg {TeamTeamFolderRenameArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTeamFolderRename = function (arg) { + return this.request('team/team_folder/rename', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; +/** + * Updates the sync settings on a team folder or its contents. Use of this + * endpoint requires that the team has team selective sync enabled. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderUpdateSyncSettings + * @arg {TeamTeamFolderUpdateSyncSettingsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTeamFolderUpdateSyncSettings = function (arg) { + return this.request('team/team_folder/update_sync_settings', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; +/** + * Returns the member profile of the admin who generated the team access token + * used to make the call. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamTokenGetAuthenticatedAdmin + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamTokenGetAuthenticatedAdmin = function () { + return this.request('team/token/get_authenticated_admin', null, 'team', 'api', 'rpc', 'team_info.read'); +}; +/** + * Retrieves team events. If the result's GetTeamEventsResult.has_more field is + * true, call get_events/continue with the returned cursor to retrieve more + * entries. If end_time is not specified in your request, you may use the + * returned cursor to poll get_events/continue for new events. Many attributes + * note 'may be missing due to historical data gap'. Note that the + * file_operations category and & analogous paper events are not available on + * all Dropbox Business plans /business/plans-comparison. Use + * features/get_values + * /developers/documentation/http/teams#team-features-get_values to check for + * this feature. Permission : Team Auditing. + * Route attributes: + * scope: events.read + * @function Dropbox#teamLogGetEvents + * @arg {TeamLogGetTeamEventsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLogGetEvents = function (arg) { + return this.request('team_log/get_events', arg, 'team', 'api', 'rpc', 'events.read'); +}; +/** + * Once a cursor has been retrieved from get_events, use this to paginate + * through all events. Permission : Team Auditing. + * Route attributes: + * scope: events.read + * @function Dropbox#teamLogGetEventsContinue + * @arg {TeamLogGetTeamEventsContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.teamLogGetEventsContinue = function (arg) { + return this.request('team_log/get_events/continue', arg, 'team', 'api', 'rpc', 'events.read'); +}; +/** + * Get a list of feature values that may be configured for the current account. + * Route attributes: + * scope: account_info.read + * @function Dropbox#usersFeaturesGetValues + * @arg {UsersUserFeaturesGetValuesBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.usersFeaturesGetValues = function (arg) { + return this.request('users/features/get_values', arg, 'user', 'api', 'rpc', 'account_info.read'); +}; +/** + * Get information about a user's account. + * Route attributes: + * scope: sharing.read + * @function Dropbox#usersGetAccount + * @arg {UsersGetAccountArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.usersGetAccount = function (arg) { + return this.request('users/get_account', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Get information about multiple user accounts. At most 300 accounts may be + * queried per request. + * Route attributes: + * scope: sharing.read + * @function Dropbox#usersGetAccountBatch + * @arg {UsersGetAccountBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.usersGetAccountBatch = function (arg) { + return this.request('users/get_account_batch', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; +/** + * Get information about the current user's account. + * Route attributes: + * scope: account_info.read + * @function Dropbox#usersGetCurrentAccount + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.usersGetCurrentAccount = function () { + return this.request('users/get_current_account', null, 'user', 'api', 'rpc', 'account_info.read'); +}; +/** + * Get the space usage information for the current user's account. + * Route attributes: + * scope: account_info.read + * @function Dropbox#usersGetSpaceUsage + * @returns {Promise., DropboxResponseError.>} + */ + + +routes.usersGetSpaceUsage = function () { + return this.request('users/get_space_usage', null, 'user', 'api', 'rpc', 'account_info.read'); +}; + +export { routes }; \ No newline at end of file diff --git a/node_modules/tr46/dropbox/es/lib/types.js b/node_modules/tr46/dropbox/es/lib/types.js new file mode 100644 index 0000000000000000000000000000000000000000..cc2c9cda87d9cbd8d73f82107eb4ead9998da1cc --- /dev/null +++ b/node_modules/tr46/dropbox/es/lib/types.js @@ -0,0 +1,13807 @@ +// Auto-generated by Stone, do not modify. +/** + * An Error object returned from a route. + * @typedef {Object} Error + * @property {string} error_summary - Text summary of the error. + * @property {T} error - The error object. + * @property {UserMessage} user_message - An optional field. If present, it includes a + message that can be shown directly to the end user of your app. You should show this message + if your app is unprepared to programmatically handle the error returned by an endpoint. + * @template T + */ /** + * User-friendly error message. + * @typedef {Object} UserMessage + * @property {string} text - The message. + * @property {string} locale + */ /** + * @typedef {string} Timestamp + */ /** + * @typedef {Object} AccountPhotoSourceArg + * @property {string} [base64_data] - Available if .tag is base64_data. Image + * data in base64-encoded bytes. + * @property {('base64_data'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} AccountSetProfilePhotoArg + * @property {AccountPhotoSourceArg} photo - Image to set as the user's new + * profile photo. + */ /** + * @typedef {Object} AccountSetProfilePhotoError + * @property {('file_type_error'|'file_size_error'|'dimension_error'|'thumbnail_error'|'transient_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} AccountSetProfilePhotoResult + * @property {string} profile_photo_url - URL for the photo representing the + * user, if one is set. + */ /** + * Result returned by methods that may either launch an asynchronous job or + * complete synchronously. Upon synchronous completion of the job, no additional + * information is returned. + * @typedef {Object} AsyncLaunchEmptyResult + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {('async_job_id'|'complete')} .tag - Tag identifying the union variant. + */ /** + * Result returned by methods that launch an asynchronous job. A method who may + * either launch an asynchronous job, or complete the request synchronously, can + * use this union by extending it, and adding a 'complete' field with the type + * of the synchronous response. See LaunchEmptyResult for an example. + * @typedef {Object} AsyncLaunchResultBase + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {'async_job_id'} .tag - Tag identifying the union variant. + */ /** + * Arguments for methods that poll the status of an asynchronous job. + * @typedef {Object} AsyncPollArg + * @property {string} async_job_id - Id of the asynchronous job. This is the + * value of a response returned from the method that launched the job. + */ /** + * Result returned by methods that poll for the status of an asynchronous job. + * Upon completion of the job, no additional information is returned. + * @typedef {Object} AsyncPollEmptyResult + * @property {('in_progress'|'complete')} .tag - Tag identifying the union variant. + */ /** + * Error returned by methods for polling the status of asynchronous job. + * @typedef {Object} AsyncPollError + * @property {('invalid_async_job_id'|'internal_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * Result returned by methods that poll for the status of an asynchronous job. + * Unions that extend this union should add a 'complete' field with a type of + * the information returned upon job completion. See PollEmptyResult for an + * example. + * @typedef {Object} AsyncPollResultBase + * @property {'in_progress'} .tag - Tag identifying the union variant. + */ /** + * Error occurred because the account doesn't have permission to access the + * resource. + * @typedef {Object} AuthAccessError + * @property {AuthInvalidAccountTypeError} [invalid_account_type] - Available if + * .tag is invalid_account_type. Current account type cannot access the + * resource. + * @property {AuthPaperAccessError} [paper_access_denied] - Available if .tag is + * paper_access_denied. Current account cannot access Paper. + * @property {('invalid_account_type'|'paper_access_denied'|'other')} .tag - Tag identifying the union variant. + */ /** + * Errors occurred during authentication. + * @typedef {Object} AuthAuthError + * @property {AuthTokenScopeError} [missing_scope] - Available if .tag is + * missing_scope. The access token does not have the required scope to access + * the route. + * @property {('invalid_access_token'|'invalid_select_user'|'invalid_select_admin'|'user_suspended'|'expired_access_token'|'missing_scope'|'route_access_denied'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} AuthInvalidAccountTypeError + * @property {('endpoint'|'feature'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} AuthPaperAccessError + * @property {('paper_disabled'|'not_paper_user'|'other')} .tag - Tag identifying the union variant. + */ /** + * Error occurred because the app is being rate limited. + * @typedef {Object} AuthRateLimitError + * @property {AuthRateLimitReason} reason - The reason why the app is being rate + * limited. + * @property {number} retry_after - The number of seconds that the app should + * wait before making another request. + */ /** + * @typedef {Object} AuthRateLimitReason + * @property {('too_many_requests'|'too_many_write_operations'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} AuthTokenFromOAuth1Arg + * @property {string} oauth1_token - The supplied OAuth 1.0 access token. + * @property {string} oauth1_token_secret - The token secret associated with the + * supplied access token. + */ /** + * @typedef {Object} AuthTokenFromOAuth1Error + * @property {('invalid_oauth1_token_info'|'app_id_mismatch'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} AuthTokenFromOAuth1Result + * @property {string} oauth2_token - The OAuth 2.0 token generated from the + * supplied OAuth 1.0 token. + */ /** + * @typedef {Object} AuthTokenScopeError + * @property {string} required_scope - The required scope to access the route. + */ /** + * EchoArg contains the arguments to be sent to the Dropbox servers. + * @typedef {Object} CheckEchoArg + * @property {string} query - The string that you'd like to be echoed back to + * you. + */ /** + * EchoResult contains the result returned from the Dropbox servers. + * @typedef {Object} CheckEchoResult + * @property {string} result - If everything worked correctly, this would be the + * same as query. + */ /** + * @typedef {Object} CommonPathRoot + * @property {string} [root] - Available if .tag is root. Paths are relative to + * the authenticating user's root namespace (This results in + * :field:`PathRootError.invalid_root` if the user's root namespace has + * changed.). + * @property {string} [namespace_id] - Available if .tag is namespace_id. Paths + * are relative to given namespace id (This results in + * :field:`PathRootError.no_permission` if you don't have access to this + * namespace.). + * @property {('home'|'root'|'namespace_id'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} CommonPathRootError + * @property {(CommonTeamRootInfo|CommonUserRootInfo|CommonRootInfo)} + * [invalid_root] - Available if .tag is invalid_root. The root namespace id in + * Dropbox-API-Path-Root header is not valid. The value of this error is the + * user's latest root info. + * @property {('invalid_root'|'no_permission'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information about current user's root. + * @typedef {Object} CommonRootInfo +@property {("team"|"user")} .tag - Tag identifying the subtype variant. + * @property {string} root_namespace_id - The namespace ID for user's root + * namespace. It will be the namespace ID of the shared team root if the user is + * member of a team with a separate team root. Otherwise it will be same as + * RootInfo.home_namespace_id. + * @property {string} home_namespace_id - The namespace ID for user's home + * namespace. + */ /** + * Root info when user is member of a team with a separate root namespace ID. + * @typedef {Object} CommonTeamRootInfo +@property {'team'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {string} root_namespace_id - The namespace ID for user's root + * namespace. It will be the namespace ID of the shared team root if the user is + * member of a team with a separate team root. Otherwise it will be same as + * RootInfo.home_namespace_id. + * @property {string} home_namespace_id - The namespace ID for user's home + * namespace. + * @property {string} home_path - The path for user's home directory under the + * shared team root. + */ /** + * Root info when user is not member of a team or the user is a member of a team + * and the team does not have a separate root namespace. + * @typedef {Object} CommonUserRootInfo +@property {'user'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {string} root_namespace_id - The namespace ID for user's root + * namespace. It will be the namespace ID of the shared team root if the user is + * member of a team with a separate team root. Otherwise it will be same as + * RootInfo.home_namespace_id. + * @property {string} home_namespace_id - The namespace ID for user's home + * namespace. + */ /** + * @typedef {Object} ContactsDeleteManualContactsArg + * @property {Array.} email_addresses - List of manually added contacts + * to be deleted. + */ /** + * @typedef {Object} ContactsDeleteManualContactsError + * @property {Array.} [contacts_not_found] - Available if .tag is + * contacts_not_found. Can't delete contacts from this list. Make sure the list + * only has manually added contacts. The deletion was cancelled. + * @property {('contacts_not_found'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesAddPropertiesArg + * @property {string} path - A unique identifier for the file or folder. + * @property {Array.} property_groups - The + * property groups which are to be added to a Dropbox file. No two groups in the + * input should refer to the same template. + */ /** + * @typedef {Object} FilePropertiesAddPropertiesError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {FilePropertiesLookupError} [path] - Available if .tag is path. + * @property {('template_not_found'|'restricted_content'|'other'|'path'|'unsupported_folder'|'property_field_too_large'|'does_not_fit_template'|'duplicate_property_groups'|'property_group_already_exists')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesAddTemplateArg + * @property {string} name - Display name for the template. Template names can + * be up to 256 bytes. + * @property {string} description - Description for the template. Template + * descriptions can be up to 1024 bytes. + * @property {Array.} fields - Definitions + * of the property fields associated with this template. There can be up to 32 + * properties in a single template. + */ /** + * @typedef {Object} FilePropertiesAddTemplateResult + * @property {string} template_id - An identifier for template added by See + * templates/add_for_user or templates/add_for_team. + */ /** + * @typedef {Object} FilePropertiesGetTemplateArg + * @property {string} template_id - An identifier for template added by route + * See templates/add_for_user or templates/add_for_team. + */ /** + * @typedef {Object} FilePropertiesGetTemplateResult + * @property {string} name - Display name for the template. Template names can + * be up to 256 bytes. + * @property {string} description - Description for the template. Template + * descriptions can be up to 1024 bytes. + * @property {Array.} fields - Definitions + * of the property fields associated with this template. There can be up to 32 + * properties in a single template. + */ /** + * @typedef {Object} FilePropertiesInvalidPropertyGroupError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {FilePropertiesLookupError} [path] - Available if .tag is path. + * @property {('template_not_found'|'restricted_content'|'other'|'path'|'unsupported_folder'|'property_field_too_large'|'does_not_fit_template'|'duplicate_property_groups')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesListTemplateResult + * @property {Array.} template_ids - List of identifiers for templates + * added by See templates/add_for_user or templates/add_for_team. + */ /** + * Logical operator to join search queries together. + * @typedef {Object} FilePropertiesLogicalOperator + * @property {('or_operator'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesLookUpPropertiesError + * @property {('property_group_not_found'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesLookupError + * @property {string} [malformed_path] - Available if .tag is malformed_path. + * @property {('malformed_path'|'not_found'|'not_file'|'not_folder'|'restricted_content'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesModifyTemplateError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {('template_not_found'|'restricted_content'|'other'|'conflicting_property_names'|'too_many_properties'|'too_many_templates'|'template_attribute_too_large')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesOverwritePropertyGroupArg + * @property {string} path - A unique identifier for the file or folder. + * @property {Array.} property_groups - The + * property groups "snapshot" updates to force apply. No two groups in the input + * should refer to the same template. + */ /** + * @typedef {Object} FilePropertiesPropertiesError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {FilePropertiesLookupError} [path] - Available if .tag is path. + * @property {('template_not_found'|'restricted_content'|'other'|'path'|'unsupported_folder')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesPropertiesSearchArg + * @property {Array.} queries - Queries to + * search. + * @property {FilePropertiesTemplateFilter} template_filter - Filter results to + * contain only properties associated with these template IDs. + */ /** + * @typedef {Object} FilePropertiesPropertiesSearchContinueArg + * @property {string} cursor - The cursor returned by your last call to + * properties/search or properties/search/continue. + */ /** + * @typedef {Object} FilePropertiesPropertiesSearchContinueError + * @property {('reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesPropertiesSearchError + * @property {FilePropertiesLookUpPropertiesError} [property_group_lookup] - + * Available if .tag is property_group_lookup. + * @property {('property_group_lookup'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesPropertiesSearchMatch + * @property {string} id - The ID for the matched file or folder. + * @property {string} path - The path for the matched file or folder. + * @property {boolean} is_deleted - Whether the file or folder is deleted. + * @property {Array.} property_groups - List of + * custom property groups associated with the file. + */ /** + * @typedef {Object} FilePropertiesPropertiesSearchMode + * @property {string} [field_name] - Available if .tag is field_name. Search for + * a value associated with this field name. + * @property {('field_name'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesPropertiesSearchQuery + * @property {string} query - The property field value for which to search + * across templates. + * @property {FilePropertiesPropertiesSearchMode} mode - The mode with which to + * perform the search. + * @property {FilePropertiesLogicalOperator} logical_operator - The logical + * operator with which to append the query. + */ /** + * @typedef {Object} FilePropertiesPropertiesSearchResult + * @property {Array.} matches - A list + * (possibly empty) of matches for the query. + * @property {string} [cursor] - Pass the cursor into properties/search/continue + * to continue to receive search results. Cursor will be null when there are no + * more results. + */ /** + * Raw key/value data to be associated with a Dropbox file. Property fields are + * added to Dropbox files as a PropertyGroup. + * @typedef {Object} FilePropertiesPropertyField + * @property {string} name - Key of the property field associated with a file + * and template. Keys can be up to 256 bytes. + * @property {string} value - Value of the property field associated with a file + * and template. Values can be up to 1024 bytes. + */ /** + * Defines how a single property field may be structured. Used exclusively by + * PropertyGroupTemplate. + * @typedef {Object} FilePropertiesPropertyFieldTemplate + * @property {string} name - Key of the property field being described. Property + * field keys can be up to 256 bytes. + * @property {string} description - Description of the property field. Property + * field descriptions can be up to 1024 bytes. + * @property {FilePropertiesPropertyType} type - Data type of the value of this + * property field. This type will be enforced upon property creation and + * modifications. + */ /** + * A subset of the property fields described by the corresponding + * PropertyGroupTemplate. Properties are always added to a Dropbox file as a + * PropertyGroup. The possible key names and value types in this group are + * defined by the corresponding PropertyGroupTemplate. + * @typedef {Object} FilePropertiesPropertyGroup + * @property {string} template_id - A unique identifier for the associated + * template. + * @property {Array.} fields - The actual + * properties associated with the template. There can be up to 32 property types + * per template. + */ /** + * Defines how a property group may be structured. + * @typedef {Object} FilePropertiesPropertyGroupTemplate + * @property {string} name - Display name for the template. Template names can + * be up to 256 bytes. + * @property {string} description - Description for the template. Template + * descriptions can be up to 1024 bytes. + * @property {Array.} fields - Definitions + * of the property fields associated with this template. There can be up to 32 + * properties in a single template. + */ /** + * @typedef {Object} FilePropertiesPropertyGroupUpdate + * @property {string} template_id - A unique identifier for a property template. + * @property {Array.} [add_or_update_fields] - + * Property fields to update. If the property field already exists, it is + * updated. If the property field doesn't exist, the property group is added. + * @property {Array.} [remove_fields] - Property fields to remove (by + * name), provided they exist. + */ /** + * Data type of the given property field added. + * @typedef {Object} FilePropertiesPropertyType + * @property {('string'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesRemovePropertiesArg + * @property {string} path - A unique identifier for the file or folder. + * @property {Array.} property_template_ids - A list of identifiers for + * a template created by templates/add_for_user or templates/add_for_team. + */ /** + * @typedef {Object} FilePropertiesRemovePropertiesError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {FilePropertiesLookupError} [path] - Available if .tag is path. + * @property {FilePropertiesLookUpPropertiesError} [property_group_lookup] - + * Available if .tag is property_group_lookup. + * @property {('template_not_found'|'restricted_content'|'other'|'path'|'unsupported_folder'|'property_group_lookup')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesRemoveTemplateArg + * @property {string} template_id - An identifier for a template created by + * templates/add_for_user or templates/add_for_team. + */ /** + * @typedef {Object} FilePropertiesTemplateError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {('template_not_found'|'restricted_content'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesTemplateFilter + * @property {Array.} [filter_some] - Available if .tag is filter_some. + * Only templates with an ID in the supplied list will be returned (a subset of + * templates will be returned). + * @property {('filter_some'|'other'|'filter_none')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesTemplateFilterBase + * @property {Array.} [filter_some] - Available if .tag is filter_some. + * Only templates with an ID in the supplied list will be returned (a subset of + * templates will be returned). + * @property {('filter_some'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesTemplateOwnerType + * @property {('user'|'team'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesUpdatePropertiesArg + * @property {string} path - A unique identifier for the file or folder. + * @property {Array.} update_property_groups + * - The property groups "delta" updates to apply. + */ /** + * @typedef {Object} FilePropertiesUpdatePropertiesError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {FilePropertiesLookupError} [path] - Available if .tag is path. + * @property {FilePropertiesLookUpPropertiesError} [property_group_lookup] - + * Available if .tag is property_group_lookup. + * @property {('template_not_found'|'restricted_content'|'other'|'path'|'unsupported_folder'|'property_field_too_large'|'does_not_fit_template'|'duplicate_property_groups'|'property_group_lookup')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilePropertiesUpdateTemplateArg + * @property {string} template_id - An identifier for template added by See + * templates/add_for_user or templates/add_for_team. + * @property {string} [name] - A display name for the template. template names + * can be up to 256 bytes. + * @property {string} [description] - Description for the new template. Template + * descriptions can be up to 1024 bytes. + * @property {Array.} [add_fields] - + * Property field templates to be added to the group template. There can be up + * to 32 properties in a single template. + */ /** + * @typedef {Object} FilePropertiesUpdateTemplateResult + * @property {string} template_id - An identifier for template added by route + * See templates/add_for_user or templates/add_for_team. + */ /** + * There was an error counting the file requests. + * @typedef {Object} FileRequestsCountFileRequestsError + * @property {('disabled_for_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Result for count. + * @typedef {Object} FileRequestsCountFileRequestsResult + * @property {number} file_request_count - The number file requests owner by + * this user. + */ /** + * Arguments for create. + * @typedef {Object} FileRequestsCreateFileRequestArgs + * @property {string} title - The title of the file request. Must not be empty. + * @property {string} destination - The path of the folder in the Dropbox where + * uploaded files will be sent. For apps with the app folder permission, this + * will be relative to the app folder. + * @property {FileRequestsFileRequestDeadline} [deadline] - The deadline for the + * file request. Deadlines can only be set by Professional and Business + * accounts. + * @property {boolean} open - Whether or not the file request should be open. If + * the file request is closed, it will not accept any file submissions, but it + * can be opened later. + * @property {string} [description] - A description of the file request. + */ /** + * There was an error creating the file request. + * @typedef {Object} FileRequestsCreateFileRequestError + * @property {('disabled_for_team'|'other'|'not_found'|'not_a_folder'|'app_lacks_access'|'no_permission'|'email_unverified'|'validation_error'|'invalid_location'|'rate_limit')} .tag - Tag identifying the union variant. + */ /** + * There was an error deleting all closed file requests. + * @typedef {Object} FileRequestsDeleteAllClosedFileRequestsError + * @property {('disabled_for_team'|'other'|'not_found'|'not_a_folder'|'app_lacks_access'|'no_permission'|'email_unverified'|'validation_error')} .tag - Tag identifying the union variant. + */ /** + * Result for delete_all_closed. + * @typedef {Object} FileRequestsDeleteAllClosedFileRequestsResult + * @property {Array.} file_requests - The file requests + * deleted for this user. + */ /** + * Arguments for delete. + * @typedef {Object} FileRequestsDeleteFileRequestArgs + * @property {Array.} ids - List IDs of the file requests to delete. + */ /** + * There was an error deleting these file requests. + * @typedef {Object} FileRequestsDeleteFileRequestError + * @property {('disabled_for_team'|'other'|'not_found'|'not_a_folder'|'app_lacks_access'|'no_permission'|'email_unverified'|'validation_error'|'file_request_open')} .tag - Tag identifying the union variant. + */ /** + * Result for delete. + * @typedef {Object} FileRequestsDeleteFileRequestsResult + * @property {Array.} file_requests - The file requests + * deleted by the request. + */ /** + * A file request https://www.dropbox.com/help/9090 for receiving files into the + * user's Dropbox account. + * @typedef {Object} FileRequestsFileRequest + * @property {string} id - The ID of the file request. + * @property {string} url - The URL of the file request. + * @property {string} title - The title of the file request. + * @property {Timestamp} created - When this file request was created. + * @property {boolean} is_open - Whether or not the file request is open. If the + * file request is closed, it will not accept any more file submissions. + * @property {number} file_count - The number of files this file request has + * received. + * @property {string} [destination] - The path of the folder in the Dropbox + * where uploaded files will be sent. This can be null if the destination was + * removed. For apps with the app folder permission, this will be relative to + * the app folder. + * @property {FileRequestsFileRequestDeadline} [deadline] - The deadline for + * this file request. Only set if the request has a deadline. + * @property {string} [description] - A description of the file request. + */ /** + * @typedef {Object} FileRequestsFileRequestDeadline + * @property {Timestamp} deadline - The deadline for this file request. + * @property {FileRequestsGracePeriod} [allow_late_uploads] - If set, allow + * uploads after the deadline has passed. These uploads will be marked + * overdue. + */ /** + * There is an error with the file request. + * @typedef {Object} FileRequestsFileRequestError + * @property {('disabled_for_team'|'other'|'not_found'|'not_a_folder'|'app_lacks_access'|'no_permission'|'email_unverified'|'validation_error')} .tag - Tag identifying the union variant. + */ /** + * There is an error accessing the file requests functionality. + * @typedef {Object} FileRequestsGeneralFileRequestsError + * @property {('disabled_for_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Arguments for get. + * @typedef {Object} FileRequestsGetFileRequestArgs + * @property {string} id - The ID of the file request to retrieve. + */ /** + * There was an error retrieving the specified file request. + * @typedef {Object} FileRequestsGetFileRequestError + * @property {('disabled_for_team'|'other'|'not_found'|'not_a_folder'|'app_lacks_access'|'no_permission'|'email_unverified'|'validation_error')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FileRequestsGracePeriod + * @property {('one_day'|'two_days'|'seven_days'|'thirty_days'|'always'|'other')} .tag - Tag identifying the union variant. + */ /** + * Arguments for list:2. + * @typedef {Object} FileRequestsListFileRequestsArg + * @property {number} limit - The maximum number of file requests that should be + * returned per request. + */ /** + * @typedef {Object} FileRequestsListFileRequestsContinueArg + * @property {string} cursor - The cursor returned by the previous API call + * specified in the endpoint description. + */ /** + * There was an error retrieving the file requests. + * @typedef {Object} FileRequestsListFileRequestsContinueError + * @property {('disabled_for_team'|'other'|'invalid_cursor')} .tag - Tag identifying the union variant. + */ /** + * There was an error retrieving the file requests. + * @typedef {Object} FileRequestsListFileRequestsError + * @property {('disabled_for_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Result for list. + * @typedef {Object} FileRequestsListFileRequestsResult + * @property {Array.} file_requests - The file requests + * owned by this user. Apps with the app folder permission will only see file + * requests in their app folder. + */ /** + * Result for list:2 and list/continue. + * @typedef {Object} FileRequestsListFileRequestsV2Result + * @property {Array.} file_requests - The file requests + * owned by this user. Apps with the app folder permission will only see file + * requests in their app folder. + * @property {string} cursor - Pass the cursor into list/continue to obtain + * additional file requests. + * @property {boolean} has_more - Is true if there are additional file requests + * that have not been returned yet. An additional call to :route:list/continue` + * can retrieve them. + */ /** + * Arguments for update. + * @typedef {Object} FileRequestsUpdateFileRequestArgs + * @property {string} id - The ID of the file request to update. + * @property {string} [title] - The new title of the file request. Must not be + * empty. + * @property {string} [destination] - The new path of the folder in the Dropbox + * where uploaded files will be sent. For apps with the app folder permission, + * this will be relative to the app folder. + * @property {FileRequestsUpdateFileRequestDeadline} deadline - The new deadline + * for the file request. Deadlines can only be set by Professional and Business + * accounts. + * @property {boolean} [open] - Whether to set this file request as open or + * closed. + * @property {string} [description] - The description of the file request. + */ /** + * @typedef {Object} FileRequestsUpdateFileRequestDeadline + * @property {FileRequestsFileRequestDeadline} [update] - Available if .tag is + * update. If :val:`null`, the file request's deadline is cleared. + * @property {('no_update'|'update'|'other')} .tag - Tag identifying the union variant. + */ /** + * There is an error updating the file request. + * @typedef {Object} FileRequestsUpdateFileRequestError + * @property {('disabled_for_team'|'other'|'not_found'|'not_a_folder'|'app_lacks_access'|'no_permission'|'email_unverified'|'validation_error')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesAddTagArg + * @property {string} path - Path to the item to be tagged. + * @property {string} tag_text - The value of the tag to add. Will be + * automatically converted to lowercase letters. + */ /** + * @typedef {Object} FilesAddTagError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'other'|'too_many_tags')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesAlphaGetMetadataArg + * @property {string} path - The path of a file or folder on Dropbox. + * @property {boolean} include_media_info - If true, FileMetadata.media_info is + * set for photo and video. + * @property {boolean} include_deleted - If true, DeletedMetadata will be + * returned for deleted file or folder, otherwise LookupError.not_found will be + * returned. + * @property {boolean} include_has_explicit_shared_members - If true, the + * results will include a flag for each file indicating whether or not that + * file has any explicit members. + * @property {FilePropertiesTemplateFilterBase} [include_property_groups] - If + * set to a valid list of template IDs, FileMetadata.property_groups is set if + * there exists property data associated with the file and each of the listed + * templates. + * @property {Array.} [include_property_templates] - If set to a valid + * list of template IDs, FileMetadata.property_groups is set for files with + * custom properties. + */ /** + * @typedef {Object} FilesAlphaGetMetadataError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {FilePropertiesLookUpPropertiesError} [properties_error] - + * Available if .tag is properties_error. + * @property {('path'|'properties_error')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesBaseTagError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesCommitInfo + * @property {string} path - Path in the user's Dropbox to save the file. + * @property {FilesWriteMode} mode - Selects what to do if the file already + * exists. + * @property {boolean} autorename - If there's a conflict, as determined by + * mode, have the Dropbox server try to autorename the file to avoid conflict. + * @property {Timestamp} [client_modified] - The value to store as the + * client_modified timestamp. Dropbox automatically records the time at which + * the file was written to the Dropbox servers. It can also record an additional + * timestamp, provided by Dropbox desktop clients, mobile clients, and API apps + * of when the file was actually created or modified. + * @property {boolean} mute - Normally, users are made aware of any file + * modifications in their Dropbox account via notifications in the client + * software. If true, this tells the clients that this modification shouldn't + * result in a user notification. + * @property {Array.} [property_groups] - List of + * custom properties to add to file. + * @property {boolean} strict_conflict - Be more strict about how each WriteMode + * detects conflict. For example, always return a conflict error when mode = + * WriteMode.update and the given "rev" doesn't match the existing file's "rev", + * even if the existing file has been deleted. This also forces a conflict even + * when the target path refers to a file with identical contents. + */ /** + * @typedef {Object} FilesContentSyncSetting + * @property {string} id - Id of the item this setting is applied to. + * @property {FilesSyncSetting} sync_setting - Setting for this item. + */ /** + * @typedef {Object} FilesContentSyncSettingArg + * @property {string} id - Id of the item this setting is applied to. + * @property {FilesSyncSettingArg} sync_setting - Setting for this item. + */ /** + * @typedef {Object} FilesCreateFolderArg + * @property {string} path - Path in the user's Dropbox to create. + * @property {boolean} autorename - If there's a conflict, have the Dropbox + * server try to autorename the folder to avoid the conflict. + */ /** + * @typedef {Object} FilesCreateFolderBatchArg + * @property {Array.} paths - List of paths to be created in the user's + * Dropbox. Duplicate path arguments in the batch are considered only once. + * @property {boolean} autorename - If there's a conflict, have the Dropbox + * server try to autorename the folder to avoid the conflict. + * @property {boolean} force_async - Whether to force the create to happen + * asynchronously. + */ /** + * @typedef {Object} FilesCreateFolderBatchError + * @property {('too_many_files'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesCreateFolderBatchJobStatus + * @property {FilesCreateFolderBatchResult} [complete] - Available if .tag is + * complete. The batch create folder has finished. + * @property {FilesCreateFolderBatchError} [failed] - Available if .tag is + * failed. The batch create folder has failed. + * @property {('in_progress'|'complete'|'failed'|'other')} .tag - Tag identifying the union variant. + */ /** + * Result returned by create_folder_batch that may either launch an asynchronous + * job or complete synchronously. + * @typedef {Object} FilesCreateFolderBatchLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {FilesCreateFolderBatchResult} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesCreateFolderBatchResult + * @property {Array.} entries - Each entry in + * CreateFolderBatchArg.paths will appear at the same position inside + * CreateFolderBatchResult.entries. + */ /** + * @typedef {Object} FilesCreateFolderBatchResultEntry + * @property {FilesCreateFolderEntryResult} [success] - Available if .tag is + * success. + * @property {FilesCreateFolderEntryError} [failure] - Available if .tag is + * failure. + * @property {('success'|'failure')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesCreateFolderEntryError + * @property {FilesWriteError} [path] - Available if .tag is path. + * @property {('path'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesCreateFolderEntryResult + * @property {FilesFolderMetadata} metadata - Metadata of the created folder. + */ /** + * @typedef {Object} FilesCreateFolderError + * @property {FilesWriteError} [path] - Available if .tag is path. + * @property {'path'} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesCreateFolderResult + * @property {FilesFolderMetadata} metadata - Metadata of the created folder. + */ /** + * @typedef {Object} FilesDeleteArg + * @property {string} path - Path in the user's Dropbox to delete. + * @property {string} [parent_rev] - Perform delete if given "rev" matches the + * existing file's latest "rev". This field does not support deleting a folder. + */ /** + * @typedef {Object} FilesDeleteBatchArg + * @property {Array.} entries + */ /** + * @typedef {Object} FilesDeleteBatchError + * @property {('too_many_write_operations'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesDeleteBatchJobStatus + * @property {FilesDeleteBatchResult} [complete] - Available if .tag is + * complete. The batch delete has finished. + * @property {FilesDeleteBatchError} [failed] - Available if .tag is failed. The + * batch delete has failed. + * @property {('in_progress'|'complete'|'failed'|'other')} .tag - Tag identifying the union variant. + */ /** + * Result returned by delete_batch that may either launch an asynchronous job or + * complete synchronously. + * @typedef {Object} FilesDeleteBatchLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {FilesDeleteBatchResult} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesDeleteBatchResult + * @property {Array.} entries - Each entry in + * DeleteBatchArg.entries will appear at the same position inside + * DeleteBatchResult.entries. + */ /** + * @typedef {Object} FilesDeleteBatchResultData + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - Metadata of the deleted object. + */ /** + * @typedef {Object} FilesDeleteBatchResultEntry + * @property {FilesDeleteBatchResultData} [success] - Available if .tag is + * success. + * @property {FilesDeleteError} [failure] - Available if .tag is failure. + * @property {('success'|'failure')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesDeleteError + * @property {FilesLookupError} [path_lookup] - Available if .tag is + * path_lookup. + * @property {FilesWriteError} [path_write] - Available if .tag is path_write. + * @property {('path_lookup'|'path_write'|'too_many_write_operations'|'too_many_files'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesDeleteResult + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - Metadata of the deleted object. + */ /** + * Indicates that there used to be a file or folder at this path, but it no + * longer exists. + * @typedef {Object} FilesDeletedMetadata +@property {'deleted'} [.tag] - Tag identifying this subtype variant. This field +is only present when needed to discriminate between multiple possible subtypes. + * @property {string} name - The last component of the path (including + * extension). This never contains a slash. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will be null if the file + * or folder is not mounted. + * @property {string} [path_display] - The cased path to be used for display + * purposes only. In rare instances the casing will not correctly match the + * user's filesystem, but this behavior will match the path provided in the Core + * API v1, and at least the last path component will have the correct casing. + * Changes to only the casing of paths won't be returned by + * list_folder/continue. This field will be null if the file or folder is not + * mounted. + * @property {string} [parent_shared_folder_id] - Please use + * FileSharingInfo.parent_shared_folder_id or + * FolderSharingInfo.parent_shared_folder_id instead. + * @property {string} [preview_url] - The preview URL of the file. + */ /** + * Dimensions for a photo or video. + * @typedef {Object} FilesDimensions + * @property {number} height - Height of the photo/video. + * @property {number} width - Width of the photo/video. + */ /** + * @typedef {Object} FilesDownloadArg + * @property {string} path - The path of the file to download. + * @property {string} [rev] - Please specify revision in path instead. + */ /** + * @typedef {Object} FilesDownloadError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'unsupported_file'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesDownloadZipArg + * @property {string} path - The path of the folder to download. + */ /** + * @typedef {Object} FilesDownloadZipError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'too_large'|'too_many_files'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesDownloadZipResult + * @property {FilesFolderMetadata} metadata + */ /** + * @typedef {Object} FilesExportArg + * @property {string} path - The path of the file to be exported. + * @property {string} [export_format] - The file format to which the file should + * be exported. This must be one of the formats listed in the file's + * export_options returned by get_metadata. If none is specified, the default + * format (specified in export_as in file metadata) will be used. + */ /** + * @typedef {Object} FilesExportError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'non_exportable'|'invalid_export_format'|'retry_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * Export information for a file. + * @typedef {Object} FilesExportInfo + * @property {string} [export_as] - Format to which the file can be exported to. + * @property {Array.} [export_options] - Additional formats to which the + * file can be exported. These values can be specified as the export_format in + * /files/export. + */ /** + * @typedef {Object} FilesExportMetadata + * @property {string} name - The last component of the path (including + * extension). This never contains a slash. + * @property {number} size - The file size in bytes. + * @property {string} [export_hash] - A hash based on the exported file content. + * This field can be used to verify data integrity. Similar to content hash. For + * more information see our Content hash + * https://www.dropbox.com/developers/reference/content-hash page. + * @property {number} [paper_revision] - If the file is a Paper doc, this gives + * the latest doc revision which can be used in paper/update. + */ /** + * @typedef {Object} FilesExportResult + * @property {FilesExportMetadata} export_metadata - Metadata for the exported + * version of the file. + * @property {FilesFileMetadata} file_metadata - Metadata for the original file. + */ /** + * @typedef {Object} FilesFileCategory + * @property {('image'|'document'|'pdf'|'spreadsheet'|'presentation'|'audio'|'video'|'folder'|'paper'|'others'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesFileLock + * @property {FilesFileLockContent} content - The lock description. + */ /** + * @typedef {Object} FilesFileLockContent + * @property {FilesSingleUserLock} [single_user] - Available if .tag is + * single_user. A lock held by a single user. + * @property {('unlocked'|'single_user'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesFileLockMetadata + * @property {boolean} [is_lockholder] - True if caller holds the file lock. + * @property {string} [lockholder_name] - The display name of the lock holder. + * @property {string} [lockholder_account_id] - The account ID of the lock + * holder if known. + * @property {Timestamp} [created] - The timestamp of the lock was created. + */ /** + * @typedef {Object} FilesFileMetadata +@property {'file'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {string} name - The last component of the path (including + * extension). This never contains a slash. + * @property {string} id - A unique identifier for the file. + * @property {Timestamp} client_modified - For files, this is the modification + * time set by the desktop client when the file was added to Dropbox. Since this + * time is not verified (the Dropbox server stores whatever the desktop client + * sends up), this should only be used for display purposes (such as sorting) + * and not, for example, to determine if a file has changed or not. + * @property {Timestamp} server_modified - The last time the file was modified + * on Dropbox. + * @property {string} rev - A unique identifier for the current revision of a + * file. This field is the same rev as elsewhere in the API and can be used to + * detect changes and avoid conflicts. + * @property {number} size - The file size in bytes. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will be null if the file + * or folder is not mounted. + * @property {string} [path_display] - The cased path to be used for display + * purposes only. In rare instances the casing will not correctly match the + * user's filesystem, but this behavior will match the path provided in the Core + * API v1, and at least the last path component will have the correct casing. + * Changes to only the casing of paths won't be returned by + * list_folder/continue. This field will be null if the file or folder is not + * mounted. + * @property {string} [parent_shared_folder_id] - Please use + * FileSharingInfo.parent_shared_folder_id or + * FolderSharingInfo.parent_shared_folder_id instead. + * @property {string} [preview_url] - The preview URL of the file. + * @property {FilesMediaInfo} [media_info] - Additional information if the file + * is a photo or video. This field will not be set on entries returned by + * list_folder, list_folder/continue, or get_thumbnail_batch, starting December + * 2, 2019. + * @property {FilesSymlinkInfo} [symlink_info] - Set if this file is a symlink. + * @property {FilesFileSharingInfo} [sharing_info] - Set if this file is + * contained in a shared folder. + * @property {boolean} is_downloadable - If true, file can be downloaded + * directly; else the file must be exported. + * @property {FilesExportInfo} [export_info] - Information about format this + * file can be exported to. This filed must be set if is_downloadable is set to + * false. + * @property {Array.} [property_groups] - + * Additional information if the file has custom properties with the property + * template specified. + * @property {boolean} [has_explicit_shared_members] - This flag will only be + * present if include_has_explicit_shared_members is true in list_folder or + * get_metadata. If this flag is present, it will be true if this file has any + * explicit shared members. This is different from sharing_info in that this + * could be true in the case where a file has explicit members but is not + * contained within a shared folder. + * @property {string} [content_hash] - A hash of the file content. This field + * can be used to verify data integrity. For more information see our Content + * hash https://www.dropbox.com/developers/reference/content-hash page. + * @property {FilesFileLockMetadata} [file_lock_info] - If present, the metadata + * associated with the file's current lock. + */ /** + * @typedef {Object} FilesFileOpsResult + */ /** + * Sharing info for a file which is contained by a shared folder. + * @typedef {Object} FilesFileSharingInfo + * @property {boolean} read_only - True if the file or folder is inside a + * read-only shared folder. + * @property {string} parent_shared_folder_id - ID of shared folder that holds + * this file. + * @property {string} [modified_by] - The last user who modified the file. This + * field will be null if the user's account has been deleted. + */ /** + * @typedef {Object} FilesFileStatus + * @property {('active'|'deleted'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesFolderMetadata +@property {'folder'} [.tag] - Tag identifying this subtype variant. This field +is only present when needed to discriminate between multiple possible subtypes. + * @property {string} name - The last component of the path (including + * extension). This never contains a slash. + * @property {string} id - A unique identifier for the folder. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will be null if the file + * or folder is not mounted. + * @property {string} [path_display] - The cased path to be used for display + * purposes only. In rare instances the casing will not correctly match the + * user's filesystem, but this behavior will match the path provided in the Core + * API v1, and at least the last path component will have the correct casing. + * Changes to only the casing of paths won't be returned by + * list_folder/continue. This field will be null if the file or folder is not + * mounted. + * @property {string} [parent_shared_folder_id] - Please use + * FileSharingInfo.parent_shared_folder_id or + * FolderSharingInfo.parent_shared_folder_id instead. + * @property {string} [preview_url] - The preview URL of the file. + * @property {string} [shared_folder_id] - Please use sharing_info instead. + * @property {FilesFolderSharingInfo} [sharing_info] - Set if the folder is + * contained in a shared folder or is a shared folder mount point. + * @property {Array.} [property_groups] - + * Additional information if the file has custom properties with the property + * template specified. Note that only properties associated with user-owned + * templates, not team-owned templates, can be attached to folders. + */ /** + * Sharing info for a folder which is contained in a shared folder or is a + * shared folder mount point. + * @typedef {Object} FilesFolderSharingInfo + * @property {boolean} read_only - True if the file or folder is inside a + * read-only shared folder. + * @property {string} [parent_shared_folder_id] - Set if the folder is contained + * by a shared folder. + * @property {string} [shared_folder_id] - If this folder is a shared folder + * mount point, the ID of the shared folder mounted at this location. + * @property {boolean} traverse_only - Specifies that the folder can only be + * traversed and the user can only see a limited subset of the contents of this + * folder because they don't have read access to this folder. They do, however, + * have access to some sub folder. + * @property {boolean} no_access - Specifies that the folder cannot be accessed + * by the user. + */ /** + * @typedef {Object} FilesGetCopyReferenceArg + * @property {string} path - The path to the file or folder you want to get a + * copy reference to. + */ /** + * @typedef {Object} FilesGetCopyReferenceError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesGetCopyReferenceResult + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - Metadata of the file or folder. + * @property {string} copy_reference - A copy reference to the file or folder. + * @property {Timestamp} expires - The expiration date of the copy reference. + * This value is currently set to be far enough in the future so that expiration + * is effectively not an issue. + */ /** + * @typedef {Object} FilesGetMetadataArg + * @property {string} path - The path of a file or folder on Dropbox. + * @property {boolean} include_media_info - If true, FileMetadata.media_info is + * set for photo and video. + * @property {boolean} include_deleted - If true, DeletedMetadata will be + * returned for deleted file or folder, otherwise LookupError.not_found will be + * returned. + * @property {boolean} include_has_explicit_shared_members - If true, the + * results will include a flag for each file indicating whether or not that + * file has any explicit members. + * @property {FilePropertiesTemplateFilterBase} [include_property_groups] - If + * set to a valid list of template IDs, FileMetadata.property_groups is set if + * there exists property data associated with the file and each of the listed + * templates. + */ /** + * @typedef {Object} FilesGetMetadataError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {'path'} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesGetTagsArg + * @property {Array.} paths - Path to the items. + */ /** + * @typedef {Object} FilesGetTagsResult + * @property {Array.} paths_to_tags - List of paths and their + * corresponding tags. + */ /** + * @typedef {Object} FilesGetTemporaryLinkArg + * @property {string} path - The path to the file you want a temporary link to. + */ /** + * @typedef {Object} FilesGetTemporaryLinkError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'email_not_verified'|'unsupported_file'|'not_allowed'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesGetTemporaryLinkResult + * @property {FilesFileMetadata} metadata - Metadata of the file. + * @property {string} link - The temporary link which can be used to stream + * content the file. + */ /** + * @typedef {Object} FilesGetTemporaryUploadLinkArg + * @property {FilesCommitInfo} commit_info - Contains the path and other + * optional modifiers for the future upload commit. Equivalent to the parameters + * provided to upload. + * @property {number} duration - How long before this link expires, in seconds. + * Attempting to start an upload with this link longer than this period of time + * after link creation will result in an error. + */ /** + * @typedef {Object} FilesGetTemporaryUploadLinkResult + * @property {string} link - The temporary link which can be used to stream a + * file to a Dropbox location. + */ /** + * Arguments for get_thumbnail_batch. + * @typedef {Object} FilesGetThumbnailBatchArg + * @property {Array.} entries - List of files to get + * thumbnails. + */ /** + * @typedef {Object} FilesGetThumbnailBatchError + * @property {('too_many_files'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesGetThumbnailBatchResult + * @property {Array.} entries - List of files + * and their thumbnails. + */ /** + * @typedef {Object} FilesGetThumbnailBatchResultData + * @property {FilesFileMetadata} metadata + * @property {string} thumbnail - A string containing the base64-encoded + * thumbnail data for this file. + */ /** + * @typedef {Object} FilesGetThumbnailBatchResultEntry + * @property {FilesGetThumbnailBatchResultData} [success] - Available if .tag is + * success. + * @property {FilesThumbnailError} [failure] - Available if .tag is failure. The + * result for this file if it was an error. + * @property {('success'|'failure'|'other')} .tag - Tag identifying the union variant. + */ /** + * GPS coordinates for a photo or video. + * @typedef {Object} FilesGpsCoordinates + * @property {number} latitude - Latitude of the GPS coordinates. + * @property {number} longitude - Longitude of the GPS coordinates. + */ /** + * @typedef {Object} FilesHighlightSpan + * @property {string} highlight_str - String to be determined whether it should + * be highlighted or not. + * @property {boolean} is_highlighted - The string should be highlighted or not. + */ /** + * The import format of the incoming Paper doc content. + * @typedef {Object} FilesImportFormat + * @property {('html'|'markdown'|'plain_text'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesListFolderArg + * @property {string} path - A unique identifier for the file. + * @property {boolean} recursive - If true, the list folder operation will be + * applied recursively to all subfolders and the response will contain contents + * of all subfolders. + * @property {boolean} include_media_info - If true, FileMetadata.media_info is + * set for photo and video. This parameter will no longer have an effect + * starting December 2, 2019. + * @property {boolean} include_deleted - If true, the results will include + * entries for files and folders that used to exist but were deleted. + * @property {boolean} include_has_explicit_shared_members - If true, the + * results will include a flag for each file indicating whether or not that + * file has any explicit members. + * @property {boolean} include_mounted_folders - If true, the results will + * include entries under mounted folders which includes app folder, shared + * folder and team folder. + * @property {number} [limit] - The maximum number of results to return per + * request. Note: This is an approximate number and there can be slightly more + * entries returned in some cases. + * @property {FilesSharedLink} [shared_link] - A shared link to list the + * contents of. If the link is password-protected, the password must be + * provided. If this field is present, ListFolderArg.path will be relative to + * root of the shared link. Only non-recursive mode is supported for shared + * link. + * @property {FilePropertiesTemplateFilterBase} [include_property_groups] - If + * set to a valid list of template IDs, FileMetadata.property_groups is set if + * there exists property data associated with the file and each of the listed + * templates. + * @property {boolean} include_non_downloadable_files - If true, include files + * that are not downloadable, i.e. Google Docs. + */ /** + * @typedef {Object} FilesListFolderContinueArg + * @property {string} cursor - The cursor returned by your last call to + * list_folder or list_folder/continue. + */ /** + * @typedef {Object} FilesListFolderContinueError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesListFolderError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {FilePropertiesTemplateError} [template_error] - Available if .tag + * is template_error. + * @property {('path'|'template_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesListFolderGetLatestCursorResult + * @property {string} cursor - Pass the cursor into list_folder/continue to see + * what's changed in the folder since your previous query. + */ /** + * @typedef {Object} FilesListFolderLongpollArg + * @property {string} cursor - A cursor as returned by list_folder or + * list_folder/continue. Cursors retrieved by setting + * ListFolderArg.include_media_info to true are not supported. + * @property {number} timeout - A timeout in seconds. The request will block for + * at most this length of time, plus up to 90 seconds of random jitter added to + * avoid the thundering herd problem. Care should be taken when using this + * parameter, as some network infrastructure does not support long timeouts. + */ /** + * @typedef {Object} FilesListFolderLongpollError + * @property {('reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesListFolderLongpollResult + * @property {boolean} changes - Indicates whether new changes are available. If + * true, call list_folder/continue to retrieve the changes. + * @property {number} [backoff] - If present, backoff for at least this many + * seconds before calling list_folder/longpoll again. + */ /** + * @typedef {Object} FilesListFolderResult + * @property + * {Array.<(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)>} + * entries - The files and (direct) subfolders in the folder. + * @property {string} cursor - Pass the cursor into list_folder/continue to see + * what's changed in the folder since your previous query. + * @property {boolean} has_more - If true, then there are more entries + * available. Pass the cursor to list_folder/continue to retrieve the rest. + */ /** + * @typedef {Object} FilesListRevisionsArg + * @property {string} path - The path to the file you want to see the revisions + * of. + * @property {FilesListRevisionsMode} mode - Determines the behavior of the API + * in listing the revisions for a given file path or id. + * @property {number} limit - The maximum number of revision entries returned. + */ /** + * @typedef {Object} FilesListRevisionsError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesListRevisionsMode + * @property {('path'|'id'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesListRevisionsResult + * @property {boolean} is_deleted - If the file identified by the latest + * revision in the response is either deleted or moved. + * @property {Array.} entries - The revisions for the file. + * Only revisions that are not deleted will show up here. + * @property {Timestamp} [server_deleted] - The time of deletion if the file was + * deleted. + */ /** + * @typedef {Object} FilesLockConflictError + * @property {FilesFileLock} lock - The lock that caused the conflict. + */ /** + * @typedef {Object} FilesLockFileArg + * @property {string} path - Path in the user's Dropbox to a file. + */ /** + * @typedef {Object} FilesLockFileBatchArg + * @property {Array.} entries - List of 'entries'. Each + * 'entry' contains a path of the file which will be locked or queried. + * Duplicate path arguments in the batch are considered only once. + */ /** + * @typedef {Object} FilesLockFileBatchResult + * @property {Array.} entries - Each Entry in the + * 'entries' will have '.tag' with the operation status (e.g. success), the + * metadata for the file and the lock state after the operation. + */ /** + * @typedef {Object} FilesLockFileError + * @property {FilesLookupError} [path_lookup] - Available if .tag is + * path_lookup. Could not find the specified resource. + * @property {FilesLockConflictError} [lock_conflict] - Available if .tag is + * lock_conflict. The user action conflicts with an existing lock on the file. + * @property {('path_lookup'|'too_many_write_operations'|'too_many_files'|'no_write_permission'|'cannot_be_locked'|'file_not_shared'|'lock_conflict'|'internal_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesLockFileResult + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - Metadata of the file. + * @property {FilesFileLock} lock - The file lock state after the operation. + */ /** + * @typedef {Object} FilesLockFileResultEntry + * @property {FilesLockFileResult} [success] - Available if .tag is success. + * @property {FilesLockFileError} [failure] - Available if .tag is failure. + * @property {('success'|'failure')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesLookupError + * @property {string} [malformed_path] - Available if .tag is malformed_path. + * The given path does not satisfy the required path format. Please refer to the + * :link:`Path formats documentation + * https://www.dropbox.com/developers/documentation/http/documentation#path-formats` + * for more information. + * @property {('malformed_path'|'not_found'|'not_file'|'not_folder'|'restricted_content'|'unsupported_content_type'|'locked'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesMediaInfo + * @property {(FilesPhotoMetadata|FilesVideoMetadata)} [metadata] - Available if + * .tag is metadata. The metadata for the photo/video. + * @property {('pending'|'metadata')} .tag - Tag identifying the union variant. + */ /** + * Metadata for a photo or video. + * @typedef {Object} FilesMediaMetadata +@property {("photo"|"video")} .tag - Tag identifying the subtype variant. + * @property {FilesDimensions} [dimensions] - Dimension of the photo/video. + * @property {FilesGpsCoordinates} [location] - The GPS coordinate of the + * photo/video. + * @property {Timestamp} [time_taken] - The timestamp when the photo/video is + * taken. + */ /** + * Metadata for a file or folder. + * @typedef {Object} FilesMetadata +@property {("file"|"folder"|"deleted")} .tag - Tag identifying the subtype +variant. + * @property {string} name - The last component of the path (including + * extension). This never contains a slash. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will be null if the file + * or folder is not mounted. + * @property {string} [path_display] - The cased path to be used for display + * purposes only. In rare instances the casing will not correctly match the + * user's filesystem, but this behavior will match the path provided in the Core + * API v1, and at least the last path component will have the correct casing. + * Changes to only the casing of paths won't be returned by + * list_folder/continue. This field will be null if the file or folder is not + * mounted. + * @property {string} [parent_shared_folder_id] - Please use + * FileSharingInfo.parent_shared_folder_id or + * FolderSharingInfo.parent_shared_folder_id instead. + * @property {string} [preview_url] - The preview URL of the file. + */ /** + * Metadata for a file, folder or other resource types. + * @typedef {Object} FilesMetadataV2 + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * [metadata] - Available if .tag is metadata. + * @property {('metadata'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesMinimalFileLinkMetadata + * @property {string} url - URL of the shared link. + * @property {string} rev - A unique identifier for the current revision of a + * file. This field is the same rev as elsewhere in the API and can be used to + * detect changes and avoid conflicts. + * @property {string} [id] - Unique identifier for the linked file. + * @property {string} [path] - Full path in the user's Dropbox. This always + * starts with a slash. This field will only be present only if the linked file + * is in the authenticated user's Dropbox. + */ /** + * @typedef {Object} FilesMoveBatchArg + * @property {Array.} entries - List of entries to be moved + * or copied. Each entry is RelocationPath. + * @property {boolean} autorename - If there's a conflict with any file, have + * the Dropbox server try to autorename that file to avoid the conflict. + * @property {boolean} allow_ownership_transfer - Allow moves by owner even if + * it would result in an ownership transfer for the content being moved. This + * does not apply to copies. + */ /** + * @typedef {Object} FilesMoveIntoFamilyError + * @property {('is_shared_folder'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesMoveIntoVaultError + * @property {('is_shared_folder'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesPaperContentError + * @property {('insufficient_permissions'|'content_malformed'|'doc_length_exceeded'|'image_size_exceeded'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesPaperCreateArg + * @property {Object} [contents] - The file contents to be uploaded. + * @property {string} path - The fully qualified path to the location in the + * user's Dropbox where the Paper Doc should be created. This should include the + * document's title and end with .paper. + * @property {FilesImportFormat} import_format - The format of the provided + * data. + */ /** + * @typedef {Object} FilesPaperCreateError + * @property {('insufficient_permissions'|'content_malformed'|'doc_length_exceeded'|'image_size_exceeded'|'other'|'invalid_path'|'email_unverified'|'invalid_file_extension'|'paper_disabled')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesPaperCreateResult + * @property {string} url - URL to open the Paper Doc. + * @property {string} result_path - The fully qualified path the Paper Doc was + * actually created at. + * @property {string} file_id - The id to use in Dropbox APIs when referencing + * the Paper Doc. + * @property {number} paper_revision - The current doc revision. + */ /** + * @typedef {Object} FilesPaperDocUpdatePolicy + * @property {('update'|'overwrite'|'prepend'|'append'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesPaperUpdateArg + * @property {Object} [contents] - The file contents to be uploaded. + * @property {string} path - Path in the user's Dropbox to update. The path must + * correspond to a Paper doc or an error will be returned. + * @property {FilesImportFormat} import_format - The format of the provided + * data. + * @property {FilesPaperDocUpdatePolicy} doc_update_policy - How the provided + * content should be applied to the doc. + * @property {number} [paper_revision] - The latest doc revision. Required when + * doc_update_policy is update. This value must match the current revision of + * the doc or error revision_mismatch will be returned. + */ /** + * @typedef {Object} FilesPaperUpdateError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('insufficient_permissions'|'content_malformed'|'doc_length_exceeded'|'image_size_exceeded'|'other'|'path'|'revision_mismatch'|'doc_archived'|'doc_deleted')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesPaperUpdateResult + * @property {number} paper_revision - The current doc revision. + */ /** + * @typedef {Object} FilesPathOrLink + * @property {string} [path] - Available if .tag is path. + * @property {FilesSharedLinkFileInfo} [link] - Available if .tag is link. + * @property {('path'|'link'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesPathToTags + * @property {string} path - Path of the item. + * @property {Array.} tags - Tags assigned to this item. + */ /** + * Metadata for a photo. + * @typedef {Object} FilesPhotoMetadata +@property {'photo'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {FilesDimensions} [dimensions] - Dimension of the photo/video. + * @property {FilesGpsCoordinates} [location] - The GPS coordinate of the + * photo/video. + * @property {Timestamp} [time_taken] - The timestamp when the photo/video is + * taken. + */ /** + * @typedef {Object} FilesPreviewArg + * @property {string} path - The path of the file to preview. + * @property {string} [rev] - Please specify revision in path instead. + */ /** + * @typedef {Object} FilesPreviewError + * @property {FilesLookupError} [path] - Available if .tag is path. An error + * occurs when downloading metadata for the file. + * @property {('path'|'in_progress'|'unsupported_extension'|'unsupported_content')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesPreviewResult + * @property {FilesFileMetadata} [file_metadata] - Metadata corresponding to the + * file received as an argument. Will be populated if the endpoint is called + * with a path (ReadPath). + * @property {FilesMinimalFileLinkMetadata} [link_metadata] - Minimal metadata + * corresponding to the file received as an argument. Will be populated if the + * endpoint is called using a shared link (SharedLinkFileInfo). + */ /** + * @typedef {Object} FilesRelocationArg + * @property {string} from_path - Path in the user's Dropbox to be copied or + * moved. + * @property {string} to_path - Path in the user's Dropbox that is the + * destination. + * @property {boolean} allow_shared_folder - This flag has no effect. + * @property {boolean} autorename - If there's a conflict, have the Dropbox + * server try to autorename the file to avoid the conflict. + * @property {boolean} allow_ownership_transfer - Allow moves by owner even if + * it would result in an ownership transfer for the content being moved. This + * does not apply to copies. + */ /** + * @typedef {Object} FilesRelocationBatchArg + * @property {Array.} entries - List of entries to be moved + * or copied. Each entry is RelocationPath. + * @property {boolean} autorename - If there's a conflict with any file, have + * the Dropbox server try to autorename that file to avoid the conflict. + * @property {boolean} allow_shared_folder - This flag has no effect. + * @property {boolean} allow_ownership_transfer - Allow moves by owner even if + * it would result in an ownership transfer for the content being moved. This + * does not apply to copies. + */ /** + * @typedef {Object} FilesRelocationBatchArgBase + * @property {Array.} entries - List of entries to be moved + * or copied. Each entry is RelocationPath. + * @property {boolean} autorename - If there's a conflict with any file, have + * the Dropbox server try to autorename that file to avoid the conflict. + */ /** + * @typedef {Object} FilesRelocationBatchError + * @property {FilesLookupError} [from_lookup] - Available if .tag is + * from_lookup. + * @property {FilesWriteError} [from_write] - Available if .tag is from_write. + * @property {FilesWriteError} [to] - Available if .tag is to. + * @property {FilesMoveIntoVaultError} [cant_move_into_vault] - Available if + * .tag is cant_move_into_vault. Some content cannot be moved into Vault under + * certain circumstances, see detailed error. + * @property {FilesMoveIntoFamilyError} [cant_move_into_family] - Available if + * .tag is cant_move_into_family. Some content cannot be moved into the Family + * Room folder under certain circumstances, see detailed error. + * @property {('from_lookup'|'from_write'|'to'|'cant_copy_shared_folder'|'cant_nest_shared_folder'|'cant_move_folder_into_itself'|'too_many_files'|'duplicated_or_nested_paths'|'cant_transfer_ownership'|'insufficient_quota'|'internal_error'|'cant_move_shared_folder'|'cant_move_into_vault'|'cant_move_into_family'|'other'|'too_many_write_operations')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesRelocationBatchErrorEntry + * @property {FilesRelocationError} [relocation_error] - Available if .tag is + * relocation_error. User errors that retry won't help. + * @property {('relocation_error'|'internal_error'|'too_many_write_operations'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesRelocationBatchJobStatus + * @property {FilesRelocationBatchResult} [complete] - Available if .tag is + * complete. The copy or move batch job has finished. + * @property {FilesRelocationBatchError} [failed] - Available if .tag is failed. + * The copy or move batch job has failed with exception. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ /** + * Result returned by copy_batch or move_batch that may either launch an + * asynchronous job or complete synchronously. + * @typedef {Object} FilesRelocationBatchLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {FilesRelocationBatchResult} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesRelocationBatchResult + * @property {Array.} entries + */ /** + * @typedef {Object} FilesRelocationBatchResultData + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - Metadata of the relocated object. + */ /** + * @typedef {Object} FilesRelocationBatchResultEntry + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * [success] - Available if .tag is success. + * @property {FilesRelocationBatchErrorEntry} [failure] - Available if .tag is + * failure. + * @property {('success'|'failure'|'other')} .tag - Tag identifying the union variant. + */ /** + * Result returned by copy_batch/check:2 or move_batch/check:2 that may either + * be in progress or completed with result for each entry. + * @typedef {Object} FilesRelocationBatchV2JobStatus + * @property {FilesRelocationBatchV2Result} [complete] - Available if .tag is + * complete. The copy or move batch job has finished. + * @property {('in_progress'|'complete')} .tag - Tag identifying the union variant. + */ /** + * Result returned by copy_batch:2 or move_batch:2 that may either launch an + * asynchronous job or complete synchronously. + * @typedef {Object} FilesRelocationBatchV2Launch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {FilesRelocationBatchV2Result} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesRelocationBatchV2Result + * @property {Array.} entries - Each entry in + * CopyBatchArg.entries or MoveBatchArg.entries will appear at the same position + * inside RelocationBatchV2Result.entries. + */ /** + * @typedef {Object} FilesRelocationError + * @property {FilesLookupError} [from_lookup] - Available if .tag is + * from_lookup. + * @property {FilesWriteError} [from_write] - Available if .tag is from_write. + * @property {FilesWriteError} [to] - Available if .tag is to. + * @property {FilesMoveIntoVaultError} [cant_move_into_vault] - Available if + * .tag is cant_move_into_vault. Some content cannot be moved into Vault under + * certain circumstances, see detailed error. + * @property {FilesMoveIntoFamilyError} [cant_move_into_family] - Available if + * .tag is cant_move_into_family. Some content cannot be moved into the Family + * Room folder under certain circumstances, see detailed error. + * @property {('from_lookup'|'from_write'|'to'|'cant_copy_shared_folder'|'cant_nest_shared_folder'|'cant_move_folder_into_itself'|'too_many_files'|'duplicated_or_nested_paths'|'cant_transfer_ownership'|'insufficient_quota'|'internal_error'|'cant_move_shared_folder'|'cant_move_into_vault'|'cant_move_into_family'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesRelocationPath + * @property {string} from_path - Path in the user's Dropbox to be copied or + * moved. + * @property {string} to_path - Path in the user's Dropbox that is the + * destination. + */ /** + * @typedef {Object} FilesRelocationResult + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - Metadata of the relocated object. + */ /** + * @typedef {Object} FilesRemoveTagArg + * @property {string} path - Path to the item to tag. + * @property {string} tag_text - The tag to remove. Will be automatically + * converted to lowercase letters. + */ /** + * @typedef {Object} FilesRemoveTagError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'other'|'tag_not_present')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesRestoreArg + * @property {string} path - The path to save the restored file. + * @property {string} rev - The revision to restore. + */ /** + * @typedef {Object} FilesRestoreError + * @property {FilesLookupError} [path_lookup] - Available if .tag is + * path_lookup. An error occurs when downloading metadata for the file. + * @property {FilesWriteError} [path_write] - Available if .tag is path_write. + * An error occurs when trying to restore the file to that path. + * @property {('path_lookup'|'path_write'|'invalid_revision'|'in_progress'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSaveCopyReferenceArg + * @property {string} copy_reference - A copy reference returned by + * copy_reference/get. + * @property {string} path - Path in the user's Dropbox that is the destination. + */ /** + * @typedef {Object} FilesSaveCopyReferenceError + * @property {FilesWriteError} [path] - Available if .tag is path. + * @property {('path'|'invalid_copy_reference'|'no_permission'|'not_found'|'too_many_files'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSaveCopyReferenceResult + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - The metadata of the saved file or folder in the user's Dropbox. + */ /** + * @typedef {Object} FilesSaveUrlArg + * @property {string} path - The path in Dropbox where the URL will be saved to. + * @property {string} url - The URL to be saved. + */ /** + * @typedef {Object} FilesSaveUrlError + * @property {FilesWriteError} [path] - Available if .tag is path. + * @property {('path'|'download_failed'|'invalid_url'|'not_found'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSaveUrlJobStatus + * @property {FilesFileMetadata} [complete] - Available if .tag is complete. + * Metadata of the file where the URL is saved to. + * @property {FilesSaveUrlError} [failed] - Available if .tag is failed. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSaveUrlResult + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {FilesFileMetadata} [complete] - Available if .tag is complete. + * Metadata of the file where the URL is saved to. + * @property {('async_job_id'|'complete')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSearchArg + * @property {string} path - The path in the user's Dropbox to search. Should + * probably be a folder. + * @property {string} query - The string to search for. Query string may be + * rewritten to improve relevance of results. The string is split on spaces into + * multiple tokens. For file name searching, the last token is used for prefix + * matching (i.e. "bat c" matches "bat cave" but not "batman car"). + * @property {number} start - The starting index within the search results (used + * for paging). + * @property {number} max_results - The maximum number of search results to + * return. + * @property {FilesSearchMode} mode - The search mode (filename, + * filename_and_content, or deleted_filename). Note that searching file content + * is only available for Dropbox Business accounts. + */ /** + * @typedef {Object} FilesSearchError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {string} [invalid_argument] - Available if .tag is + * invalid_argument. + * @property {('path'|'invalid_argument'|'internal_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSearchMatch + * @property {FilesSearchMatchType} match_type - The type of the match. + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - The metadata for the matched file or folder. + */ /** + * @typedef {Object} FilesSearchMatchFieldOptions + * @property {boolean} include_highlights - Whether to include highlight span + * from file title. + */ /** + * Indicates what type of match was found for a given item. + * @typedef {Object} FilesSearchMatchType + * @property {('filename'|'content'|'both')} .tag - Tag identifying the union variant. + */ /** + * Indicates what type of match was found for a given item. + * @typedef {Object} FilesSearchMatchTypeV2 + * @property {('filename'|'file_content'|'filename_and_content'|'image_content'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSearchMatchV2 + * @property {FilesMetadataV2} metadata - The metadata for the matched file or + * folder. + * @property {FilesSearchMatchTypeV2} [match_type] - The type of the match. + * @property {Array.} [highlight_spans] - The list of + * HighlightSpan determines which parts of the file title should be highlighted. + */ /** + * @typedef {Object} FilesSearchMode + * @property {('filename'|'filename_and_content'|'deleted_filename')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSearchOptions + * @property {string} [path] - Scopes the search to a path in the user's + * Dropbox. Searches the entire Dropbox if not specified. + * @property {number} max_results - The maximum number of search results to + * return. + * @property {FilesSearchOrderBy} [order_by] - Specified property of the order + * of search results. By default, results are sorted by relevance. + * @property {FilesFileStatus} file_status - Restricts search to the given file + * status. + * @property {boolean} filename_only - Restricts search to only match on + * filenames. + * @property {Array.} [file_extensions] - Restricts search to only the + * extensions specified. Only supported for active file search. + * @property {Array.} [file_categories] - Restricts search to + * only the file categories specified. Only supported for active file search. + * @property {string} [account_id] - Restricts results to the given account id. + */ /** + * @typedef {Object} FilesSearchOrderBy + * @property {('relevance'|'last_modified_time'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSearchResult + * @property {Array.} matches - A list (possibly empty) of + * matches for the query. + * @property {boolean} more - Used for paging. If true, indicates there is + * another page of results available that can be fetched by calling search + * again. + * @property {number} start - Used for paging. Value to set the start argument + * to when calling search to fetch the next page of results. + */ /** + * @typedef {Object} FilesSearchV2Arg + * @property {string} query - The string to search for. May match across + * multiple fields based on the request arguments. + * @property {FilesSearchOptions} [options] - Options for more targeted search + * results. + * @property {FilesSearchMatchFieldOptions} [match_field_options] - Options for + * search results match fields. + * @property {boolean} [include_highlights] - Deprecated and moved this option + * to SearchMatchFieldOptions. + */ /** + * @typedef {Object} FilesSearchV2ContinueArg + * @property {string} cursor - The cursor returned by your last call to + * search:2. Used to fetch the next page of results. + */ /** + * @typedef {Object} FilesSearchV2Result + * @property {Array.} matches - A list (possibly empty) of + * matches for the query. + * @property {boolean} has_more - Used for paging. If true, indicates there is + * another page of results available that can be fetched by calling + * search/continue:2 with the cursor. + * @property {string} [cursor] - Pass the cursor into search/continue:2 to fetch + * the next page of results. + */ /** + * @typedef {Object} FilesSharedLink + * @property {string} url - Shared link url. + * @property {string} [password] - Password for the shared link. + */ /** + * @typedef {Object} FilesSharedLinkFileInfo + * @property {string} url - The shared link corresponding to either a file or + * shared link to a folder. If it is for a folder shared link, we use the path + * param to determine for which file in the folder the view is for. + * @property {string} [path] - The path corresponding to a file in a shared link + * to a folder. Required for shared links to folders. + * @property {string} [password] - Password for the shared link. Required for + * password-protected shared links to files unless it can be read from a + * cookie. + */ /** + * Sharing info for a file or folder. + * @typedef {Object} FilesSharingInfo + * @property {boolean} read_only - True if the file or folder is inside a + * read-only shared folder. + */ /** + * @typedef {Object} FilesSingleUserLock + * @property {Timestamp} created - The time the lock was created. + * @property {string} lock_holder_account_id - The account ID of the lock holder + * if known. + * @property {string} [lock_holder_team_id] - The id of the team of the account + * holder if it exists. + */ /** + * @typedef {Object} FilesSymlinkInfo + * @property {string} target - The target this symlink points to. + */ /** + * @typedef {Object} FilesSyncSetting + * @property {('default'|'not_synced'|'not_synced_inactive'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSyncSettingArg + * @property {('default'|'not_synced'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesSyncSettingsError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'unsupported_combination'|'unsupported_configuration'|'other')} .tag - Tag identifying the union variant. + */ /** + * Tag that can be added in multiple ways. + * @typedef {Object} FilesTag + * @property {FilesUserGeneratedTag} [user_generated_tag] - Available if .tag is + * user_generated_tag. Tag generated by the user. + * @property {('user_generated_tag'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesThumbnailArg + * @property {string} path - The path to the image file you want to thumbnail. + * @property {FilesThumbnailFormat} format - The format for the thumbnail image, + * jpeg (default) or png. For images that are photos, jpeg should be preferred, + * while png is better for screenshots and digital arts. + * @property {FilesThumbnailSize} size - The size for the thumbnail image. + * @property {FilesThumbnailMode} mode - How to resize and crop the image to + * achieve the desired size. + */ /** + * @typedef {Object} FilesThumbnailError + * @property {FilesLookupError} [path] - Available if .tag is path. An error + * occurs when downloading metadata for the image. + * @property {('path'|'unsupported_extension'|'unsupported_image'|'conversion_error')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesThumbnailFormat + * @property {('jpeg'|'png')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesThumbnailMode + * @property {('strict'|'bestfit'|'fitone_bestfit')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesThumbnailSize + * @property {('w32h32'|'w64h64'|'w128h128'|'w256h256'|'w480h320'|'w640h480'|'w960h640'|'w1024h768'|'w2048h1536')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesThumbnailV2Arg + * @property {FilesPathOrLink} resource - Information specifying which file to + * preview. This could be a path to a file, a shared link pointing to a file, or + * a shared link pointing to a folder, with a relative path. + * @property {FilesThumbnailFormat} format - The format for the thumbnail image, + * jpeg (default) or png. For images that are photos, jpeg should be preferred, + * while png is better for screenshots and digital arts. + * @property {FilesThumbnailSize} size - The size for the thumbnail image. + * @property {FilesThumbnailMode} mode - How to resize and crop the image to + * achieve the desired size. + */ /** + * @typedef {Object} FilesThumbnailV2Error + * @property {FilesLookupError} [path] - Available if .tag is path. An error + * occurred when downloading metadata for the image. + * @property {('path'|'unsupported_extension'|'unsupported_image'|'conversion_error'|'access_denied'|'not_found'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesUnlockFileArg + * @property {string} path - Path in the user's Dropbox to a file. + */ /** + * @typedef {Object} FilesUnlockFileBatchArg + * @property {Array.} entries - List of 'entries'. Each + * 'entry' contains a path of the file which will be unlocked. Duplicate path + * arguments in the batch are considered only once. + */ /** + * @typedef {Object} FilesUploadArg + * @property {Object} [contents] - The file contents to be uploaded. + * @property {string} path - Path in the user's Dropbox to save the file. + * @property {FilesWriteMode} mode - Selects what to do if the file already + * exists. + * @property {boolean} autorename - If there's a conflict, as determined by + * mode, have the Dropbox server try to autorename the file to avoid conflict. + * @property {Timestamp} [client_modified] - The value to store as the + * client_modified timestamp. Dropbox automatically records the time at which + * the file was written to the Dropbox servers. It can also record an additional + * timestamp, provided by Dropbox desktop clients, mobile clients, and API apps + * of when the file was actually created or modified. + * @property {boolean} mute - Normally, users are made aware of any file + * modifications in their Dropbox account via notifications in the client + * software. If true, this tells the clients that this modification shouldn't + * result in a user notification. + * @property {Array.} [property_groups] - List of + * custom properties to add to file. + * @property {boolean} strict_conflict - Be more strict about how each WriteMode + * detects conflict. For example, always return a conflict error when mode = + * WriteMode.update and the given "rev" doesn't match the existing file's "rev", + * even if the existing file has been deleted. This also forces a conflict even + * when the target path refers to a file with identical contents. + * @property {string} [content_hash] - A hash of the file content uploaded in + * this call. If provided and the uploaded content does not match this hash, an + * error will be returned. For more information see our Content hash + * https://www.dropbox.com/developers/reference/content-hash page. + */ /** + * @typedef {Object} FilesUploadError + * @property {FilesUploadWriteFailed} [path] - Available if .tag is path. Unable + * to save the uploaded contents to a file. + * @property {FilePropertiesInvalidPropertyGroupError} [properties_error] - + * Available if .tag is properties_error. The supplied property group is + * invalid. The file has uploaded without property groups. + * @property {('path'|'properties_error'|'payload_too_large'|'content_hash_mismatch'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesUploadSessionAppendArg + * @property {Object} [contents] - The file contents to be uploaded. + * @property {FilesUploadSessionCursor} cursor - Contains the upload session ID + * and the offset. + * @property {boolean} close - If true, the current session will be closed, at + * which point you won't be able to call upload_session/append:2 anymore with + * the current session. + * @property {string} [content_hash] - A hash of the file content uploaded in + * this call. If provided and the uploaded content does not match this hash, an + * error will be returned. For more information see our Content hash + * https://www.dropbox.com/developers/reference/content-hash page. + */ /** + * @typedef {Object} FilesUploadSessionAppendError + * @property {FilesUploadSessionOffsetError} [incorrect_offset] - Available if + * .tag is incorrect_offset. The specified offset was incorrect. See the value + * for the correct offset. This error may occur when a previous request was + * received and processed successfully but the client did not receive the + * response, e.g. due to a network error. + * @property {('not_found'|'incorrect_offset'|'closed'|'not_closed'|'too_large'|'concurrent_session_invalid_offset'|'concurrent_session_invalid_data_size'|'payload_too_large'|'other'|'content_hash_mismatch')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesUploadSessionCursor + * @property {Object} [contents] - The file contents to be uploaded. + * @property {string} session_id - The upload session ID (returned by + * upload_session/start). + * @property {number} offset - Offset in bytes at which data should be appended. + * We use this to make sure upload data isn't lost or duplicated in the event of + * a network error. + */ /** + * @typedef {Object} FilesUploadSessionFinishArg + * @property {Object} [contents] - The file contents to be uploaded. + * @property {FilesUploadSessionCursor} cursor - Contains the upload session ID + * and the offset. + * @property {FilesCommitInfo} commit - Contains the path and other optional + * modifiers for the commit. + * @property {string} [content_hash] - A hash of the file content uploaded in + * this call. If provided and the uploaded content does not match this hash, an + * error will be returned. For more information see our Content hash + * https://www.dropbox.com/developers/reference/content-hash page. + */ /** + * @typedef {Object} FilesUploadSessionFinishBatchArg + * @property {Array.} entries - Commit information + * for each file in the batch. + */ /** + * @typedef {Object} FilesUploadSessionFinishBatchJobStatus + * @property {FilesUploadSessionFinishBatchResult} [complete] - Available if + * .tag is complete. The :route:`upload_session/finish_batch` has finished. + * @property {('in_progress'|'complete')} .tag - Tag identifying the union variant. + */ /** + * Result returned by upload_session/finish_batch that may either launch an + * asynchronous job or complete synchronously. + * @typedef {Object} FilesUploadSessionFinishBatchLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {FilesUploadSessionFinishBatchResult} [complete] - Available if + * .tag is complete. + * @property {('async_job_id'|'complete'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesUploadSessionFinishBatchResult + * @property {Array.} entries - Each + * entry in UploadSessionFinishBatchArg.entries will appear at the same position + * inside UploadSessionFinishBatchResult.entries. + */ /** + * @typedef {Object} FilesUploadSessionFinishBatchResultEntry + * @property {FilesFileMetadata} [success] - Available if .tag is success. + * @property {FilesUploadSessionFinishError} [failure] - Available if .tag is + * failure. + * @property {('success'|'failure')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesUploadSessionFinishError + * @property {FilesUploadSessionLookupError} [lookup_failed] - Available if .tag + * is lookup_failed. The session arguments are incorrect; the value explains the + * reason. + * @property {FilesWriteError} [path] - Available if .tag is path. Unable to + * save the uploaded contents to a file. Data has already been appended to the + * upload session. Please retry with empty data body and updated offset. + * @property {FilePropertiesInvalidPropertyGroupError} [properties_error] - + * Available if .tag is properties_error. The supplied property group is + * invalid. The file has uploaded without property groups. + * @property {('lookup_failed'|'path'|'properties_error'|'too_many_shared_folder_targets'|'too_many_write_operations'|'concurrent_session_data_not_allowed'|'concurrent_session_not_closed'|'concurrent_session_missing_data'|'payload_too_large'|'content_hash_mismatch'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesUploadSessionLookupError + * @property {FilesUploadSessionOffsetError} [incorrect_offset] - Available if + * .tag is incorrect_offset. The specified offset was incorrect. See the value + * for the correct offset. This error may occur when a previous request was + * received and processed successfully but the client did not receive the + * response, e.g. due to a network error. + * @property {('not_found'|'incorrect_offset'|'closed'|'not_closed'|'too_large'|'concurrent_session_invalid_offset'|'concurrent_session_invalid_data_size'|'payload_too_large'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesUploadSessionOffsetError + * @property {number} correct_offset - The offset up to which data has been + * collected. + */ /** + * @typedef {Object} FilesUploadSessionStartArg + * @property {Object} [contents] - The file contents to be uploaded. + * @property {boolean} close - If true, the current session will be closed, at + * which point you won't be able to call upload_session/append:2 anymore with + * the current session. + * @property {FilesUploadSessionType} [session_type] - Type of upload session + * you want to start. If not specified, default is UploadSessionType.sequential. + * @property {string} [content_hash] - A hash of the file content uploaded in + * this call. If provided and the uploaded content does not match this hash, an + * error will be returned. For more information see our Content hash + * https://www.dropbox.com/developers/reference/content-hash page. + */ /** + * @typedef {Object} FilesUploadSessionStartBatchArg + * @property {number} num_sessions - The number of upload sessions to start. + * @property {FilesUploadSessionType} [session_type] - Type of upload session + * you want to start. If not specified, default is UploadSessionType.sequential. + */ /** + * @typedef {Object} FilesUploadSessionStartBatchResult + * @property {Array.} session_ids - A List of unique identifiers for the + * upload session. Pass each session_id to upload_session/append:2 and + * upload_session/finish. + */ /** + * @typedef {Object} FilesUploadSessionStartError + * @property {('concurrent_session_data_not_allowed'|'concurrent_session_close_not_allowed'|'payload_too_large'|'content_hash_mismatch'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesUploadSessionStartResult + * @property {string} session_id - A unique identifier for the upload session. + * Pass this to upload_session/append:2 and upload_session/finish. + */ /** + * @typedef {Object} FilesUploadSessionType + * @property {('sequential'|'concurrent'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesUploadWriteFailed + * @property {FilesWriteError} reason - The reason why the file couldn't be + * saved. + * @property {string} upload_session_id - The upload session ID; data has + * already been uploaded to the corresponding upload session and this ID may be + * used to retry the commit with upload_session/finish. + */ /** + * @typedef {Object} FilesUserGeneratedTag + * @property {string} tag_text + */ /** + * Metadata for a video. + * @typedef {Object} FilesVideoMetadata +@property {'video'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {FilesDimensions} [dimensions] - Dimension of the photo/video. + * @property {FilesGpsCoordinates} [location] - The GPS coordinate of the + * photo/video. + * @property {Timestamp} [time_taken] - The timestamp when the photo/video is + * taken. + * @property {number} [duration] - The duration of the video in milliseconds. + */ /** + * @typedef {Object} FilesWriteConflictError + * @property {('file'|'folder'|'file_ancestor'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} FilesWriteError + * @property {string} [malformed_path] - Available if .tag is malformed_path. + * The given path does not satisfy the required path format. Please refer to the + * :link:`Path formats documentation + * https://www.dropbox.com/developers/documentation/http/documentation#path-formats` + * for more information. + * @property {FilesWriteConflictError} [conflict] - Available if .tag is + * conflict. Couldn't write to the target path because there was something in + * the way. + * @property {('malformed_path'|'conflict'|'no_write_permission'|'insufficient_space'|'disallowed_name'|'team_folder'|'operation_suppressed'|'too_many_write_operations'|'other')} .tag - Tag identifying the union variant. + */ /** + * Your intent when writing a file to some path. This is used to determine what + * constitutes a conflict and what the autorename strategy is. In some + * situations, the conflict behavior is identical: (a) If the target path + * doesn't refer to anything, the file is always written; no conflict. (b) If + * the target path refers to a folder, it's always a conflict. (c) If the target + * path refers to a file with identical contents, nothing gets written; no + * conflict. The conflict checking differs in the case where there's a file at + * the target path with contents different from the contents you're trying to + * write. + * @typedef {Object} FilesWriteMode + * @property {string} [update] - Available if .tag is update. Overwrite if the + * given "rev" matches the existing file's "rev". The supplied value should be + * the latest known "rev" of the file, for example, from :type:`FileMetadata`, + * from when the file was last downloaded by the app. This will cause the file + * on the Dropbox servers to be overwritten if the given "rev" matches the + * existing file's current "rev" on the Dropbox servers. The autorename strategy + * is to append the string "conflicted copy" to the file name. For example, + * "document.txt" might become "document (conflicted copy).txt" or "document + * (Panda's conflicted copy).txt". + * @property {('add'|'overwrite'|'update')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} OpenidOpenIdError + * @property {('incorrect_openid_scopes'|'other')} .tag - Tag identifying the union variant. + */ /** + * No Parameters + * @typedef {Object} OpenidUserInfoArgs + */ /** + * @typedef {Object} OpenidUserInfoError + * @property {OpenidOpenIdError} [openid_error] - Available if .tag is + * openid_error. + * @property {('openid_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} OpenidUserInfoResult + * @property {string} [family_name] - Last name of user. + * @property {string} [given_name] - First name of user. + * @property {string} [email] - Email address of user. + * @property {boolean} [email_verified] - If user is email verified. + * @property {string} iss - Issuer of token (in this case Dropbox). + * @property {string} sub - An identifier for the user. This is the Dropbox + * account_id, a string value such as dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc. + */ /** + * @typedef {Object} PaperAddMember + * @property {SharingMemberSelector} member - User which should be added to the + * Paper doc. Specify only email address or Dropbox account ID. + * @property {PaperPaperDocPermissionLevel} permission_level - Permission for + * the user. + */ /** + * @typedef {Object} PaperAddPaperDocUser + * @property {string} doc_id - The Paper doc ID. + * @property {Array.} members - User which should be added to + * the Paper doc. Specify only email address or Dropbox account ID. + * @property {string} [custom_message] - A personal message that will be emailed + * to each successfully added member. + * @property {boolean} quiet - Clients should set this to true if no email + * message shall be sent to added users. + */ /** + * Per-member result for docs/users/add. + * @typedef {Object} PaperAddPaperDocUserMemberResult + * @property {SharingMemberSelector} member - One of specified input members. + * @property {PaperAddPaperDocUserResult} result - The outcome of the action on + * this member. + */ /** + * @typedef {Object} PaperAddPaperDocUserResult + * @property {('success'|'unknown_error'|'sharing_outside_team_disabled'|'daily_limit_reached'|'user_is_owner'|'failed_user_data_retrieval'|'permission_already_granted'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperCursor + * @property {string} value - The actual cursor value. + * @property {Timestamp} [expiration] - Expiration time of value. Some cursors + * might have expiration time assigned. This is a UTC value after which the + * cursor is no longer valid and the API starts returning an error. If cursor + * expires a new one needs to be obtained and pagination needs to be restarted. + * Some cursors might be short-lived some cursors might be long-lived. This + * really depends on the sorting type and order, e.g.: 1. on one hand, listing + * docs created by the user, sorted by the created time ascending will have + * undefinite expiration because the results cannot change while the iteration + * is happening. This cursor would be suitable for long term polling. 2. on the + * other hand, listing docs sorted by the last modified time will have a very + * short expiration as docs do get modified very often and the modified time can + * be changed while the iteration is happening thus altering the results. + */ /** + * @typedef {Object} PaperDocLookupError + * @property {('insufficient_permissions'|'other'|'doc_not_found')} .tag - Tag identifying the union variant. + */ /** + * The subscription level of a Paper doc. + * @typedef {Object} PaperDocSubscriptionLevel + * @property {('default'|'ignore'|'every'|'no_email')} .tag - Tag identifying the union variant. + */ /** + * The desired export format of the Paper doc. + * @typedef {Object} PaperExportFormat + * @property {('html'|'markdown'|'other')} .tag - Tag identifying the union variant. + */ /** + * Data structure representing a Paper folder. + * @typedef {Object} PaperFolder + * @property {string} id - Paper folder ID. This ID uniquely identifies the + * folder. + * @property {string} name - Paper folder name. + */ /** + * The sharing policy of a Paper folder. The sharing policy of subfolders is + * inherited from the root folder. + * @typedef {Object} PaperFolderSharingPolicyType + * @property {('team'|'invite_only')} .tag - Tag identifying the union variant. + */ /** + * The subscription level of a Paper folder. + * @typedef {Object} PaperFolderSubscriptionLevel + * @property {('none'|'activity_only'|'daily_emails'|'weekly_emails')} .tag - Tag identifying the union variant. + */ /** + * Metadata about Paper folders containing the specififed Paper doc. + * @typedef {Object} PaperFoldersContainingPaperDoc + * @property {PaperFolderSharingPolicyType} [folder_sharing_policy_type] - The + * sharing policy of the folder containing the Paper doc. + * @property {Array.} [folders] - The folder path. If present the + * first folder is the root folder. + */ /** + * The import format of the incoming data. + * @typedef {Object} PaperImportFormat + * @property {('html'|'markdown'|'plain_text'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperInviteeInfoWithPermissionLevel + * @property {SharingInviteeInfo} invitee - Email address invited to the Paper + * doc. + * @property {PaperPaperDocPermissionLevel} permission_level - Permission level + * for the invitee. + */ /** + * @typedef {Object} PaperListDocsCursorError + * @property {PaperPaperApiCursorError} [cursor_error] - Available if .tag is + * cursor_error. + * @property {('cursor_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperListPaperDocsArgs + * @property {PaperListPaperDocsFilterBy} filter_by - Allows user to specify how + * the Paper docs should be filtered. + * @property {PaperListPaperDocsSortBy} sort_by - Allows user to specify how the + * Paper docs should be sorted. + * @property {PaperListPaperDocsSortOrder} sort_order - Allows user to specify + * the sort order of the result. + * @property {number} limit - Size limit per batch. The maximum number of docs + * that can be retrieved per batch is 1000. Higher value results in invalid + * arguments error. + */ /** + * @typedef {Object} PaperListPaperDocsContinueArgs + * @property {string} cursor - The cursor obtained from docs/list or + * docs/list/continue. Allows for pagination. + */ /** + * @typedef {Object} PaperListPaperDocsFilterBy + * @property {('docs_accessed'|'docs_created'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperListPaperDocsResponse + * @property {Array.} doc_ids - The list of Paper doc IDs that can be + * used to access the given Paper docs or supplied to other API methods. The + * list is sorted in the order specified by the initial call to docs/list. + * @property {PaperCursor} cursor - Pass the cursor into docs/list/continue to + * paginate through all files. The cursor preserves all properties as specified + * in the original call to docs/list. + * @property {boolean} has_more - Will be set to True if a subsequent call with + * the provided cursor to docs/list/continue returns immediately with some + * results. If set to False please allow some delay before making another call + * to docs/list/continue. + */ /** + * @typedef {Object} PaperListPaperDocsSortBy + * @property {('accessed'|'modified'|'created'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperListPaperDocsSortOrder + * @property {('ascending'|'descending'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperListUsersCursorError + * @property {PaperPaperApiCursorError} [cursor_error] - Available if .tag is + * cursor_error. + * @property {('insufficient_permissions'|'other'|'doc_not_found'|'cursor_error')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperListUsersOnFolderArgs + * @property {string} doc_id - The Paper doc ID. + * @property {number} limit - Size limit per batch. The maximum number of users + * that can be retrieved per batch is 1000. Higher value results in invalid + * arguments error. + */ /** + * @typedef {Object} PaperListUsersOnFolderContinueArgs + * @property {string} doc_id - The Paper doc ID. + * @property {string} cursor - The cursor obtained from docs/folder_users/list + * or docs/folder_users/list/continue. Allows for pagination. + */ /** + * @typedef {Object} PaperListUsersOnFolderResponse + * @property {Array.} invitees - List of email addresses + * that are invited on the Paper folder. + * @property {Array.} users - List of users that are invited on + * the Paper folder. + * @property {PaperCursor} cursor - Pass the cursor into + * docs/folder_users/list/continue to paginate through all users. The cursor + * preserves all properties as specified in the original call to + * docs/folder_users/list. + * @property {boolean} has_more - Will be set to True if a subsequent call with + * the provided cursor to docs/folder_users/list/continue returns immediately + * with some results. If set to False please allow some delay before making + * another call to docs/folder_users/list/continue. + */ /** + * @typedef {Object} PaperListUsersOnPaperDocArgs + * @property {string} doc_id - The Paper doc ID. + * @property {number} limit - Size limit per batch. The maximum number of users + * that can be retrieved per batch is 1000. Higher value results in invalid + * arguments error. + * @property {PaperUserOnPaperDocFilter} filter_by - Specify this attribute if + * you want to obtain users that have already accessed the Paper doc. + */ /** + * @typedef {Object} PaperListUsersOnPaperDocContinueArgs + * @property {string} doc_id - The Paper doc ID. + * @property {string} cursor - The cursor obtained from docs/users/list or + * docs/users/list/continue. Allows for pagination. + */ /** + * @typedef {Object} PaperListUsersOnPaperDocResponse + * @property {Array.} invitees - List of + * email addresses with their respective permission levels that are invited on + * the Paper doc. + * @property {Array.} users - List of users + * with their respective permission levels that are invited on the Paper folder. + * @property {SharingUserInfo} doc_owner - The Paper doc owner. This field is + * populated on every single response. + * @property {PaperCursor} cursor - Pass the cursor into + * docs/users/list/continue to paginate through all users. The cursor preserves + * all properties as specified in the original call to docs/users/list. + * @property {boolean} has_more - Will be set to True if a subsequent call with + * the provided cursor to docs/users/list/continue returns immediately with some + * results. If set to False please allow some delay before making another call + * to docs/users/list/continue. + */ /** + * @typedef {Object} PaperPaperApiBaseError + * @property {('insufficient_permissions'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperPaperApiCursorError + * @property {('expired_cursor'|'invalid_cursor'|'wrong_user_in_cursor'|'reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperPaperDocCreateArgs + * @property {Object} [contents] - The file contents to be uploaded. + * @property {PaperImportFormat} import_format - The format of provided data. + * @property {string} [parent_folder_id] - The Paper folder ID where the Paper + * document should be created. The API user has to have write access to this + * folder or error is thrown. + */ /** + * @typedef {Object} PaperPaperDocCreateError + * @property {('insufficient_permissions'|'other'|'content_malformed'|'folder_not_found'|'doc_length_exceeded'|'image_size_exceeded')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperPaperDocCreateUpdateResult + * @property {string} doc_id - Doc ID of the newly created doc. + * @property {number} revision - The Paper doc revision. Simply an ever + * increasing number. + * @property {string} title - The Paper doc title. + */ /** + * @typedef {Object} PaperPaperDocExport + * @property {string} doc_id - The Paper doc ID. + * @property {PaperExportFormat} export_format + */ /** + * @typedef {Object} PaperPaperDocExportResult + * @property {string} owner - The Paper doc owner's email address. + * @property {string} title - The Paper doc title. + * @property {number} revision - The Paper doc revision. Simply an ever + * increasing number. + * @property {string} mime_type - MIME type of the export. This corresponds to + * ExportFormat specified in the request. + */ /** + * @typedef {Object} PaperPaperDocPermissionLevel + * @property {('edit'|'view_and_comment'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperPaperDocSharingPolicy + * @property {string} doc_id - The Paper doc ID. + * @property {PaperSharingPolicy} sharing_policy - The default sharing policy to + * be set for the Paper doc. + */ /** + * @typedef {Object} PaperPaperDocUpdateArgs + * @property {Object} [contents] - The file contents to be uploaded. + * @property {string} doc_id - The Paper doc ID. + * @property {PaperPaperDocUpdatePolicy} doc_update_policy - The policy used for + * the current update call. + * @property {number} revision - The latest doc revision. This value must match + * the head revision or an error code will be returned. This is to prevent + * colliding writes. + * @property {PaperImportFormat} import_format - The format of provided data. + */ /** + * @typedef {Object} PaperPaperDocUpdateError + * @property {('insufficient_permissions'|'other'|'doc_not_found'|'content_malformed'|'revision_mismatch'|'doc_length_exceeded'|'image_size_exceeded'|'doc_archived'|'doc_deleted')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperPaperDocUpdatePolicy + * @property {('append'|'prepend'|'overwrite_all'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperPaperFolderCreateArg + * @property {string} name - The name of the new Paper folder. + * @property {string} [parent_folder_id] - The encrypted Paper folder Id where + * the new Paper folder should be created. The API user has to have write access + * to this folder or error is thrown. If not supplied, the new folder will be + * created at top level. + * @property {boolean} [is_team_folder] - Whether the folder to be created + * should be a team folder. This value will be ignored if parent_folder_id is + * supplied, as the new folder will inherit the type (private or team folder) + * from its parent. We will by default create a top-level private folder if both + * parent_folder_id and is_team_folder are not supplied. + */ /** + * @typedef {Object} PaperPaperFolderCreateError + * @property {('insufficient_permissions'|'other'|'folder_not_found'|'invalid_folder_id')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperPaperFolderCreateResult + * @property {string} folder_id - Folder ID of the newly created folder. + */ /** + * @typedef {Object} PaperRefPaperDoc + * @property {string} doc_id - The Paper doc ID. + */ /** + * @typedef {Object} PaperRemovePaperDocUser + * @property {string} doc_id - The Paper doc ID. + * @property {SharingMemberSelector} member - User which should be removed from + * the Paper doc. Specify only email address or Dropbox account ID. + */ /** + * Sharing policy of Paper doc. + * @typedef {Object} PaperSharingPolicy + * @property {PaperSharingPublicPolicyType} [public_sharing_policy] - This value + * applies to the non-team members. + * @property {PaperSharingTeamPolicyType} [team_sharing_policy] - This value + * applies to the team members only. The value is null for all personal + * accounts. + */ /** + * @typedef {Object} PaperSharingPublicPolicyType + * @property {('people_with_link_can_edit'|'people_with_link_can_view_and_comment'|'invite_only'|'disabled')} .tag - Tag identifying the union variant. + */ /** + * The sharing policy type of the Paper doc. + * @typedef {Object} PaperSharingTeamPolicyType + * @property {('people_with_link_can_edit'|'people_with_link_can_view_and_comment'|'invite_only')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} PaperUserInfoWithPermissionLevel + * @property {SharingUserInfo} user - User shared on the Paper doc. + * @property {PaperPaperDocPermissionLevel} permission_level - Permission level + * for the user. + */ /** + * @typedef {Object} PaperUserOnPaperDocFilter + * @property {('visited'|'shared'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SecondaryEmailsSecondaryEmail + * @property {string} email - Secondary email address. + * @property {boolean} is_verified - Whether or not the secondary email address + * is verified to be owned by a user. + */ /** + * Possible platforms on which a user may view content. + * @typedef {Object} SeenStatePlatformType + * @property {('web'|'desktop'|'mobile_ios'|'mobile_android'|'api'|'unknown'|'mobile'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information about the inheritance policy of a shared folder. + * @typedef {Object} SharingAccessInheritance + * @property {('inherit'|'no_inherit'|'other')} .tag - Tag identifying the union variant. + */ /** + * Defines the access levels for collaborators. + * @typedef {Object} SharingAccessLevel + * @property {('owner'|'editor'|'viewer'|'viewer_no_comment'|'traverse'|'other')} .tag - Tag identifying the union variant. + */ /** + * Who can change a shared folder's access control list (ACL). In other words, + * who can add, remove, or change the privileges of members. + * @typedef {Object} SharingAclUpdatePolicy + * @property {('owner'|'editors'|'other')} .tag - Tag identifying the union variant. + */ /** + * Arguments for add_file_member. + * @typedef {Object} SharingAddFileMemberArgs + * @property {string} file - File to which to add members. + * @property {Array.} members - Members to add. Note that + * even an email address is given, this may result in a user being directly + * added to the membership if that email is the user's main account email. + * @property {string} [custom_message] - Message to send to added members in + * their invitation. + * @property {boolean} quiet - Whether added members should be notified via + * email and device notifications of their invitation. + * @property {SharingAccessLevel} access_level - AccessLevel union object, + * describing what access level we want to give new members. + * @property {boolean} add_message_as_comment - If the custom message should be + * added as a comment on the file. + */ /** + * Errors for add_file_member. + * @typedef {Object} SharingAddFileMemberError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('user_error'|'access_error'|'rate_limit'|'invalid_comment'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingAddFolderMemberArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {Array.} members - The intended list of members + * to add. Added members will receive invites to join the shared folder. + * @property {boolean} quiet - Whether added members should be notified via + * email and device notifications of their invite. + * @property {string} [custom_message] - Optional message to display to added + * members in their invitation. + */ /** + * @typedef {Object} SharingAddFolderMemberError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. Unable to access shared folder. + * @property {SharingAddMemberSelectorError} [bad_member] - Available if .tag is + * bad_member. :field:`AddFolderMemberArg.members` contains a bad invitation + * recipient. + * @property {number} [too_many_members] - Available if .tag is + * too_many_members. The value is the member limit that was reached. + * @property {number} [too_many_pending_invites] - Available if .tag is + * too_many_pending_invites. The value is the pending invite limit that was + * reached. + * @property {('access_error'|'email_unverified'|'banned_member'|'bad_member'|'cant_share_outside_team'|'too_many_members'|'too_many_pending_invites'|'rate_limit'|'too_many_invitees'|'insufficient_plan'|'team_folder'|'no_permission'|'invalid_shared_folder'|'other')} .tag - Tag identifying the union variant. + */ /** + * The member and type of access the member should have when added to a shared + * folder. + * @typedef {Object} SharingAddMember + * @property {SharingMemberSelector} member - The member to add to the shared + * folder. + * @property {SharingAccessLevel} access_level - The access level to grant + * member to the shared folder. AccessLevel.owner is disallowed. + */ /** + * @typedef {Object} SharingAddMemberSelectorError + * @property {string} [invalid_dropbox_id] - Available if .tag is + * invalid_dropbox_id. The value is the ID that could not be identified. + * @property {string} [invalid_email] - Available if .tag is invalid_email. The + * value is the e-email address that is malformed. + * @property {string} [unverified_dropbox_id] - Available if .tag is + * unverified_dropbox_id. The value is the ID of the Dropbox user with an + * unverified email address. Invite unverified users by email address instead of + * by their Dropbox ID. + * @property {('automatic_group'|'invalid_dropbox_id'|'invalid_email'|'unverified_dropbox_id'|'group_deleted'|'group_not_on_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * check documentation for ResolvedVisibility. + * @typedef {Object} SharingAlphaResolvedVisibility + * @property {('public'|'team_only'|'password'|'team_and_password'|'shared_folder_only'|'no_one'|'only_you'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information about the content that has a link audience different than that of + * this folder. + * @typedef {Object} SharingAudienceExceptionContentInfo + * @property {string} name - The name of the content, which is either a file or + * a folder. + */ /** + * The total count and truncated list of information of content inside this + * folder that has a different audience than the link on this folder. This is + * only returned for folders. + * @typedef {Object} SharingAudienceExceptions + * @property {number} count + * @property {Array.} exceptions - A + * truncated list of some of the content that is an exception. The length of + * this list could be smaller than the count since it is only a sample but will + * not be empty as long as count is not 0. + */ /** + * Information about the shared folder that prevents the link audience for this + * link from being more restrictive. + * @typedef {Object} SharingAudienceRestrictingSharedFolder + * @property {string} shared_folder_id - The ID of the shared folder. + * @property {string} name - The name of the shared folder. + * @property {SharingLinkAudience} audience - The link audience of the shared + * folder. + */ /** + * Metadata for a collection-based shared link. + * @typedef {Object} SharingCollectionLinkMetadata +@property {'collection'} [.tag] - Tag identifying this subtype variant. This +field is only present when needed to discriminate between multiple possible +subtypes. + * @property {string} url - URL of the shared link. + * @property {SharingVisibility} visibility - Who can access the link. + * @property {Timestamp} [expires] - Expiration time, if set. By default the + * link won't expire. + */ /** + * @typedef {Object} SharingCreateSharedLinkArg + * @property {string} path - The path to share. + * @property {boolean} short_url + * @property {SharingPendingUploadMode} [pending_upload] - If it's okay to share + * a path that does not yet exist, set this to either PendingUploadMode.file or + * PendingUploadMode.folder to indicate whether to assume it's a file or folder. + */ /** + * @typedef {Object} SharingCreateSharedLinkError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingCreateSharedLinkWithSettingsArg + * @property {string} path - The path to be shared by the shared link. + * @property {SharingSharedLinkSettings} [settings] - The requested settings for + * the newly created shared link. + */ /** + * @typedef {Object} SharingCreateSharedLinkWithSettingsError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {SharingSharedLinkAlreadyExistsMetadata} + * [shared_link_already_exists] - Available if .tag is + * shared_link_already_exists. The shared link already exists. You can call + * :route:`list_shared_links` to get the existing link, or use the provided + * metadata if it is returned. + * @property {SharingSharedLinkSettingsError} [settings_error] - Available if + * .tag is settings_error. There is an error with the given settings. + * @property {('path'|'email_not_verified'|'shared_link_already_exists'|'settings_error'|'access_denied')} .tag - Tag identifying the union variant. + */ /** + * The expected metadata of a shared link for a file or folder when a link is + * first created for the content. Absent if the link already exists. + * @typedef {Object} SharingExpectedSharedContentLinkMetadata + * @property {Array.} audience_options - The audience + * options that are available for the content. Some audience options may be + * unavailable. For example, team_only may be unavailable if the content is not + * owned by a user on a team. The 'default' audience option is always available + * if the user can modify link settings. + * @property {SharingLinkAudience} current_audience - The current audience of + * the link. + * @property {Array.} link_permissions - A list of + * permissions for actions you can perform on the link. + * @property {boolean} password_protected - Whether the link is protected by a + * password. + * @property {SharingAccessLevel} [access_level] - The access level on the link + * for this file. + * @property {SharingAudienceRestrictingSharedFolder} + * [audience_restricting_shared_folder] - The shared folder that prevents the + * link audience for this link from being more restrictive. + * @property {Timestamp} [expiry] - Whether the link has an expiry set on it. A + * link with an expiry will have its audience changed to members when the + * expiry is reached. + */ /** + * Sharing actions that may be taken on files. + * @typedef {Object} SharingFileAction + * @property {('disable_viewer_info'|'edit_contents'|'enable_viewer_info'|'invite_viewer'|'invite_viewer_no_comment'|'invite_editor'|'unshare'|'relinquish_membership'|'share_link'|'create_link'|'create_view_link'|'create_edit_link'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingFileErrorResult + * @property {string} [file_not_found_error] - Available if .tag is + * file_not_found_error. File specified by id was not found. + * @property {string} [invalid_file_action_error] - Available if .tag is + * invalid_file_action_error. User does not have permission to take the + * specified action on the file. + * @property {string} [permission_denied_error] - Available if .tag is + * permission_denied_error. User does not have permission to access file + * specified by file.Id. + * @property {('file_not_found_error'|'invalid_file_action_error'|'permission_denied_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * The metadata of a file shared link. + * @typedef {Object} SharingFileLinkMetadata +@property {'file'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {string} url - URL of the shared link. + * @property {string} name - The linked file name (including extension). This + * never contains a slash. + * @property {SharingLinkPermissions} link_permissions - The link's access + * permissions. + * @property {Timestamp} client_modified - The modification time set by the + * desktop client when the file was added to Dropbox. Since this time is not + * verified (the Dropbox server stores whatever the desktop client sends up), + * this should only be used for display purposes (such as sorting) and not, for + * example, to determine if a file has changed or not. + * @property {Timestamp} server_modified - The last time the file was modified + * on Dropbox. + * @property {string} rev - A unique identifier for the current revision of a + * file. This field is the same rev as elsewhere in the API and can be used to + * detect changes and avoid conflicts. + * @property {number} size - The file size in bytes. + * @property {string} [id] - A unique identifier for the linked file. + * @property {Timestamp} [expires] - Expiration time, if set. By default the + * link won't expire. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will only be present + * only if the linked file is in the authenticated user's dropbox. + * @property {SharingTeamMemberInfo} [team_member_info] - The team membership + * information of the link's owner. This field will only be present if the + * link's owner is a team member. + * @property {UsersTeam} [content_owner_team_info] - The team information of the + * content's owner. This field will only be present if the content's owner is a + * team member and the content's owner team is different from the link's owner + * team. + */ /** + * @typedef {Object} SharingFileMemberActionError + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. Specified file was invalid or user does not have access. + * @property {SharingMemberAccessLevelResult} [no_explicit_access] - Available + * if .tag is no_explicit_access. The action cannot be completed because the + * target member does not have explicit access to the file. The return value is + * the access that the member has to the file from a parent folder. + * @property {('invalid_member'|'no_permission'|'access_error'|'no_explicit_access'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingFileMemberActionIndividualResult + * @property {SharingAccessLevel} [success] - Available if .tag is success. Part + * of the response for both add_file_member and remove_file_member_v1 + * (deprecated). For add_file_member, indicates giving access was successful and + * at what AccessLevel. For remove_file_member_v1, indicates member was + * successfully removed from the file. If AccessLevel is given, the member still + * has access via a parent shared folder. + * @property {SharingFileMemberActionError} [member_error] - Available if .tag + * is member_error. User was not able to perform this action. + * @property {('success'|'member_error')} .tag - Tag identifying the union variant. + */ /** + * Per-member result for add_file_member. + * @typedef {Object} SharingFileMemberActionResult + * @property {SharingMemberSelector} member - One of specified input members. + * @property {SharingFileMemberActionIndividualResult} result - The outcome of + * the action on this member. + * @property {string} [sckey_sha1] - The SHA-1 encrypted shared content key. + * @property {Array.} [invitation_signature] - The sharing + * sender-recipient invitation signatures for the input member_id. A member_id + * can be a group and thus have multiple users and multiple invitation + * signatures. + */ /** + * @typedef {Object} SharingFileMemberRemoveActionResult + * @property {SharingMemberAccessLevelResult} [success] - Available if .tag is + * success. Member was successfully removed from this file. + * @property {SharingFileMemberActionError} [member_error] - Available if .tag + * is member_error. User was not able to remove this member. + * @property {('success'|'member_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * Whether the user is allowed to take the sharing action on the file. + * @typedef {Object} SharingFilePermission + * @property {SharingFileAction} action - The action that the user may wish to + * take on the file. + * @property {boolean} allow - True if the user is allowed to take the action. + * @property {SharingPermissionDeniedReason} [reason] - The reason why the user + * is denied the permission. Not present if the action is allowed. + */ /** + * Actions that may be taken on shared folders. + * @typedef {Object} SharingFolderAction + * @property {('change_options'|'disable_viewer_info'|'edit_contents'|'enable_viewer_info'|'invite_editor'|'invite_viewer'|'invite_viewer_no_comment'|'relinquish_membership'|'unmount'|'unshare'|'leave_a_copy'|'share_link'|'create_link'|'set_access_inheritance'|'other')} .tag - Tag identifying the union variant. + */ /** + * The metadata of a folder shared link. + * @typedef {Object} SharingFolderLinkMetadata +@property {'folder'} [.tag] - Tag identifying this subtype variant. This field +is only present when needed to discriminate between multiple possible subtypes. + * @property {string} url - URL of the shared link. + * @property {string} name - The linked file name (including extension). This + * never contains a slash. + * @property {SharingLinkPermissions} link_permissions - The link's access + * permissions. + * @property {string} [id] - A unique identifier for the linked file. + * @property {Timestamp} [expires] - Expiration time, if set. By default the + * link won't expire. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will only be present + * only if the linked file is in the authenticated user's dropbox. + * @property {SharingTeamMemberInfo} [team_member_info] - The team membership + * information of the link's owner. This field will only be present if the + * link's owner is a team member. + * @property {UsersTeam} [content_owner_team_info] - The team information of the + * content's owner. This field will only be present if the content's owner is a + * team member and the content's owner team is different from the link's owner + * team. + */ /** + * Whether the user is allowed to take the action on the shared folder. + * @typedef {Object} SharingFolderPermission + * @property {SharingFolderAction} action - The action that the user may wish to + * take on the folder. + * @property {boolean} allow - True if the user is allowed to take the action. + * @property {SharingPermissionDeniedReason} [reason] - The reason why the user + * is denied the permission. Not present if the action is allowed, or if no + * reason is available. + */ /** + * A set of policies governing membership and privileges for a shared folder. + * @typedef {Object} SharingFolderPolicy + * @property {SharingAclUpdatePolicy} acl_update_policy - Who can add and remove + * members from this shared folder. + * @property {SharingSharedLinkPolicy} shared_link_policy - Who links can be + * shared with. + * @property {SharingMemberPolicy} [member_policy] - Who can be a member of this + * shared folder, as set on the folder itself. The effective policy may differ + * from this value if the team-wide policy is more restrictive. Present only if + * the folder is owned by a team. + * @property {SharingMemberPolicy} [resolved_member_policy] - Who can be a + * member of this shared folder, taking into account both the folder and the + * team-wide policy. This value may differ from that of member_policy if the + * team-wide policy is more restrictive than the folder policy. Present only if + * the folder is owned by a team. + * @property {SharingViewerInfoPolicy} [viewer_info_policy] - Who can + * enable/disable viewer info for this shared folder. + */ /** + * Arguments of get_file_metadata. + * @typedef {Object} SharingGetFileMetadataArg + * @property {string} file - The file to query. + * @property {Array.} [actions] - A list of `FileAction`s + * corresponding to `FilePermission`s that should appear in the response's + * SharedFileMetadata.permissions field describing the actions the + * authenticated user can perform on the file. + */ /** + * Arguments of get_file_metadata/batch. + * @typedef {Object} SharingGetFileMetadataBatchArg + * @property {Array.} files - The files to query. + * @property {Array.} [actions] - A list of `FileAction`s + * corresponding to `FilePermission`s that should appear in the response's + * SharedFileMetadata.permissions field describing the actions the + * authenticated user can perform on the file. + */ /** + * Per file results of get_file_metadata/batch. + * @typedef {Object} SharingGetFileMetadataBatchResult + * @property {string} file - This is the input file identifier corresponding to + * one of GetFileMetadataBatchArg.files. + * @property {SharingGetFileMetadataIndividualResult} result - The result for + * this particular file. + */ /** + * Error result for get_file_metadata. + * @typedef {Object} SharingGetFileMetadataError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('user_error'|'access_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingGetFileMetadataIndividualResult + * @property {SharingSharedFileMetadata} [metadata] - Available if .tag is + * metadata. The result for this file if it was successful. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. The result for this file if it was an error. + * @property {('metadata'|'access_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingGetMetadataArgs + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {Array.} [actions] - A list of `FolderAction`s + * corresponding to `FolderPermission`s that should appear in the response's + * SharedFolderMetadata.permissions field describing the actions the + * authenticated user can perform on the folder. + */ /** + * @typedef {Object} SharingGetSharedLinkFileError + * @property {('shared_link_not_found'|'shared_link_access_denied'|'unsupported_link_type'|'other'|'shared_link_is_directory')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingGetSharedLinkMetadataArg + * @property {string} url - URL of the shared link. + * @property {string} [path] - If the shared link is to a folder, this parameter + * can be used to retrieve the metadata for a specific file or sub-folder in + * this folder. A relative path should be used. + * @property {string} [link_password] - If the shared link has a password, this + * parameter can be used. + */ /** + * @typedef {Object} SharingGetSharedLinksArg + * @property {string} [path] - See get_shared_links description. + */ /** + * @typedef {Object} SharingGetSharedLinksError + * @property {string} [path] - Available if .tag is path. + * @property {('path'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingGetSharedLinksResult + * @property + * {Array.<(SharingPathLinkMetadata|SharingCollectionLinkMetadata|SharingLinkMetadata)>} + * links - Shared links applicable to the path argument. + */ /** + * The information about a group. Groups is a way to manage a list of users who + * need same access permission to the shared folder. + * @typedef {Object} SharingGroupInfo + * @property {string} group_name + * @property {string} group_id + * @property {TeamCommonGroupManagementType} group_management_type - Who is + * allowed to manage the group. + * @property {TeamCommonGroupType} group_type - The type of group. + * @property {boolean} is_member - If the current user is a member of the group. + * @property {boolean} is_owner - If the current user is an owner of the group. + * @property {boolean} same_team - If the group is owned by the current user's + * team. + * @property {string} [group_external_id] - External ID of group. This is an + * arbitrary ID that an admin can attach to a group. + * @property {number} [member_count] - The number of members in the group. + */ /** + * The information about a group member of the shared content. + * @typedef {Object} SharingGroupMembershipInfo + * @property {SharingAccessLevel} access_type - The access type for this member. + * It contains inherited access type from parent folder, and acquired access + * type from this folder. + * @property {SharingGroupInfo} group - The information about the membership + * group. + * @property {Array.} [permissions] - The permissions + * that requesting user has on this member. The set of permissions corresponds + * to the MemberActions in the request. + * @property {string} [initials] - Never set. + * @property {boolean} is_inherited - True if the member has access from a + * parent folder. + */ /** + * @typedef {Object} SharingInsufficientPlan + * @property {string} message - A message to tell the user to upgrade in order + * to support expected action. + * @property {string} [upsell_url] - A URL to send the user to in order to + * obtain the account type they need, e.g. upgrading. Absent if there is no + * action the user can take to upgrade. + */ /** + * @typedef {Object} SharingInsufficientQuotaAmounts + * @property {number} space_needed - The amount of space needed to add the item + * (the size of the item). + * @property {number} space_shortage - The amount of extra space needed to add + * the item. + * @property {number} space_left - The amount of space left in the user's + * Dropbox, less than space_needed. + */ /** + * Information about the recipient of a shared content invitation. + * @typedef {Object} SharingInviteeInfo + * @property {string} [email] - Available if .tag is email. Email address of + * invited user. + * @property {('email'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information about an invited member of a shared content. + * @typedef {Object} SharingInviteeMembershipInfo + * @property {SharingAccessLevel} access_type - The access type for this member. + * It contains inherited access type from parent folder, and acquired access + * type from this folder. + * @property {SharingInviteeInfo} invitee - Recipient of the invitation. + * @property {Array.} [permissions] - The permissions + * that requesting user has on this member. The set of permissions corresponds + * to the MemberActions in the request. + * @property {string} [initials] - Never set. + * @property {boolean} is_inherited - True if the member has access from a + * parent folder. + * @property {SharingUserInfo} [user] - The user this invitation is tied to, if + * available. + */ /** + * Error occurred while performing an asynchronous job from unshare_folder or + * remove_folder_member. + * @typedef {Object} SharingJobError + * @property {SharingUnshareFolderError} [unshare_folder_error] - Available if + * .tag is unshare_folder_error. Error occurred while performing + * :route:`unshare_folder` action. + * @property {SharingRemoveFolderMemberError} [remove_folder_member_error] - + * Available if .tag is remove_folder_member_error. Error occurred while + * performing :route:`remove_folder_member` action. + * @property {SharingRelinquishFolderMembershipError} + * [relinquish_folder_membership_error] - Available if .tag is + * relinquish_folder_membership_error. Error occurred while performing + * :route:`relinquish_folder_membership` action. + * @property {('unshare_folder_error'|'remove_folder_member_error'|'relinquish_folder_membership_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingJobStatus + * @property {SharingJobError} [failed] - Available if .tag is failed. The + * asynchronous job returned an error. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingLinkAccessLevel + * @property {('viewer'|'editor'|'other')} .tag - Tag identifying the union variant. + */ /** + * Actions that can be performed on a link. + * @typedef {Object} SharingLinkAction + * @property {('change_access_level'|'change_audience'|'remove_expiry'|'remove_password'|'set_expiry'|'set_password'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingLinkAudience + * @property {('public'|'team'|'no_one'|'password'|'members'|'other')} .tag - Tag identifying the union variant. + */ /** + * check documentation for VisibilityPolicyDisallowedReason. + * @typedef {Object} SharingLinkAudienceDisallowedReason + * @property {('delete_and_recreate'|'restricted_by_shared_folder'|'restricted_by_team'|'user_not_on_team'|'user_account_type'|'permission_denied'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingLinkAudienceOption + * @property {SharingLinkAudience} audience - Specifies who can access the link. + * @property {boolean} allowed - Whether the user calling this API can select + * this audience option. + * @property {SharingLinkAudienceDisallowedReason} [disallowed_reason] - If + * allowed is false, this will provide the reason that the user is not permitted + * to set the visibility to this policy. + */ /** + * @typedef {Object} SharingLinkExpiry + * @property {Timestamp} [set_expiry] - Available if .tag is set_expiry. Set a + * new expiry or change an existing expiry. + * @property {('remove_expiry'|'set_expiry'|'other')} .tag - Tag identifying the union variant. + */ /** + * Metadata for a shared link. This can be either a PathLinkMetadata or + * CollectionLinkMetadata. + * @typedef {Object} SharingLinkMetadata +@property {("path"|"collection")} .tag - Tag identifying the subtype variant. + * @property {string} url - URL of the shared link. + * @property {SharingVisibility} visibility - Who can access the link. + * @property {Timestamp} [expires] - Expiration time, if set. By default the + * link won't expire. + */ /** + * @typedef {Object} SharingLinkPassword + * @property {string} [set_password] - Available if .tag is set_password. Set a + * new password or change an existing password. + * @property {('remove_password'|'set_password'|'other')} .tag - Tag identifying the union variant. + */ /** + * Permissions for actions that can be performed on a link. + * @typedef {Object} SharingLinkPermission + * @property {SharingLinkAction} action + * @property {boolean} allow + * @property {SharingPermissionDeniedReason} [reason] + */ /** + * @typedef {Object} SharingLinkPermissions + * @property {boolean} can_revoke - Whether the caller can revoke the shared + * link. + * @property {Array.} visibility_policies - A list of + * policies that the user might be able to set for the visibility. + * @property {boolean} can_set_expiry - Whether the user can set the expiry + * settings of the link. This refers to the ability to create a new expiry and + * modify an existing expiry. + * @property {boolean} can_remove_expiry - Whether the user can remove the + * expiry of the link. + * @property {boolean} allow_download - Whether the link can be downloaded or + * not. + * @property {boolean} can_allow_download - Whether the user can allow downloads + * via the link. This refers to the ability to remove a no-download restriction + * on the link. + * @property {boolean} can_disallow_download - Whether the user can disallow + * downloads via the link. This refers to the ability to impose a no-download + * restriction on the link. + * @property {boolean} allow_comments - Whether comments are enabled for the + * linked file. This takes the team commenting policy into account. + * @property {boolean} team_restricts_comments - Whether the team has disabled + * commenting globally. + * @property {SharingResolvedVisibility} [resolved_visibility] - The current + * visibility of the link after considering the shared links policies of the the + * team (in case the link's owner is part of a team) and the shared folder (in + * case the linked file is part of a shared folder). This field is shown only if + * the caller has access to this info (the link's owner always has access to + * this data). For some links, an effective_audience value is returned instead. + * @property {SharingRequestedVisibility} [requested_visibility] - The shared + * link's requested visibility. This can be overridden by the team and shared + * folder policies. The final visibility, after considering these policies, can + * be found in resolved_visibility. This is shown only if the caller is the + * link's owner and resolved_visibility is returned instead of + * effective_audience. + * @property {SharingSharedLinkAccessFailureReason} [revoke_failure_reason] - + * The failure reason for revoking the link. This field will only be present if + * the can_revoke is false. + * @property {SharingLinkAudience} [effective_audience] - The type of audience + * who can benefit from the access level specified by the `link_access_level` + * field. + * @property {SharingLinkAccessLevel} [link_access_level] - The access level + * that the link will grant to its users. A link can grant additional rights to + * a user beyond their current access level. For example, if a user was invited + * as a viewer to a file, and then opens a link with `link_access_level` set to + * `editor`, then they will gain editor privileges. The `link_access_level` is a + * property of the link, and does not depend on who is calling this API. In + * particular, `link_access_level` does not take into account the API caller's + * current permissions to the content. + * @property {Array.} [audience_options] - A list of + * link audience options the user might be able to set as the new audience. + * @property {boolean} [can_set_password] - Whether the user can set a password + * for the link. + * @property {boolean} [can_remove_password] - Whether the user can remove the + * password of the link. + * @property {boolean} [require_password] - Whether the user is required to + * provide a password to view the link. + * @property {boolean} [can_use_extended_sharing_controls] - Whether the user + * can use extended sharing controls, based on their account type. + */ /** + * Settings that apply to a link. + * @typedef {Object} SharingLinkSettings + * @property {SharingAccessLevel} [access_level] - The access level on the link + * for this file. Currently, it only accepts 'viewer' and 'viewer_no_comment'. + * @property {SharingLinkAudience} [audience] - The type of audience on the link + * for this file. + * @property {SharingLinkExpiry} [expiry] - An expiry timestamp to set on a + * link. + * @property {SharingLinkPassword} [password] - The password for the link. + */ /** + * Arguments for list_file_members. + * @typedef {Object} SharingListFileMembersArg + * @property {string} file - The file for which you want to see members. + * @property {Array.} [actions] - The actions for which to + * return permissions on a member. + * @property {boolean} include_inherited - Whether to include members who only + * have access from a parent shared folder. + * @property {number} limit - Number of members to return max per query. + * Defaults to 100 if no limit is specified. + */ /** + * Arguments for list_file_members/batch. + * @typedef {Object} SharingListFileMembersBatchArg + * @property {Array.} files - Files for which to return members. + * @property {number} limit - Number of members to return max per query. + * Defaults to 10 if no limit is specified. + */ /** + * Per-file result for list_file_members/batch. + * @typedef {Object} SharingListFileMembersBatchResult + * @property {string} file - This is the input file identifier, whether an ID or + * a path. + * @property {SharingListFileMembersIndividualResult} result - The result for + * this particular file. + */ /** + * Arguments for list_file_members/continue. + * @typedef {Object} SharingListFileMembersContinueArg + * @property {string} cursor - The cursor returned by your last call to + * list_file_members, list_file_members/continue, or list_file_members/batch. + */ /** + * Error for list_file_members/continue. + * @typedef {Object} SharingListFileMembersContinueError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('user_error'|'access_error'|'invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingListFileMembersCountResult + * @property {SharingSharedFileMembers} members - A list of members on this + * file. + * @property {number} member_count - The number of members on this file. This + * does not include inherited members. + */ /** + * Error for list_file_members. + * @typedef {Object} SharingListFileMembersError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('user_error'|'access_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingListFileMembersIndividualResult + * @property {SharingListFileMembersCountResult} [result] - Available if .tag is + * result. The results of the query for this file if it was successful. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. The result of the query for this file if it was an error. + * @property {('result'|'access_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * Arguments for list_received_files. + * @typedef {Object} SharingListFilesArg + * @property {number} limit - Number of files to return max per query. Defaults + * to 100 if no limit is specified. + * @property {Array.} [actions] - A list of `FileAction`s + * corresponding to `FilePermission`s that should appear in the response's + * SharedFileMetadata.permissions field describing the actions the + * authenticated user can perform on the file. + */ /** + * Arguments for list_received_files/continue. + * @typedef {Object} SharingListFilesContinueArg + * @property {string} cursor - Cursor in ListFilesResult.cursor. + */ /** + * Error results for list_received_files/continue. + * @typedef {Object} SharingListFilesContinueError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. User account had a problem. + * @property {('user_error'|'invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * Success results for list_received_files. + * @typedef {Object} SharingListFilesResult + * @property {Array.} entries - Information about the + * files shared with current user. + * @property {string} [cursor] - Cursor used to obtain additional shared files. + */ /** + * @typedef {Object} SharingListFolderMembersArgs + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {Array.} [actions] - This is a list indicating + * whether each returned member will include a boolean value + * MemberPermission.allow that describes whether the current user can perform + * the MemberAction on the member. + * @property {number} limit - The maximum number of results that include + * members, groups and invitees to return per request. + */ /** + * @typedef {Object} SharingListFolderMembersContinueArg + * @property {string} cursor - The cursor returned by your last call to + * list_folder_members or list_folder_members/continue. + */ /** + * @typedef {Object} SharingListFolderMembersContinueError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingListFolderMembersCursorArg + * @property {Array.} [actions] - This is a list indicating + * whether each returned member will include a boolean value + * MemberPermission.allow that describes whether the current user can perform + * the MemberAction on the member. + * @property {number} limit - The maximum number of results that include + * members, groups and invitees to return per request. + */ /** + * @typedef {Object} SharingListFoldersArgs + * @property {number} limit - The maximum number of results to return per + * request. + * @property {Array.} [actions] - A list of `FolderAction`s + * corresponding to `FolderPermission`s that should appear in the response's + * SharedFolderMetadata.permissions field describing the actions the + * authenticated user can perform on the folder. + */ /** + * @typedef {Object} SharingListFoldersContinueArg + * @property {string} cursor - The cursor returned by the previous API call + * specified in the endpoint description. + */ /** + * @typedef {Object} SharingListFoldersContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * Result for list_folders or list_mountable_folders, depending on which + * endpoint was requested. Unmounted shared folders can be identified by the + * absence of SharedFolderMetadata.path_lower. + * @typedef {Object} SharingListFoldersResult + * @property {Array.} entries - List of all shared + * folders the authenticated user has access to. + * @property {string} [cursor] - Present if there are additional shared folders + * that have not been returned yet. Pass the cursor into the corresponding + * continue endpoint (either list_folders/continue or + * list_mountable_folders/continue) to list additional folders. + */ /** + * @typedef {Object} SharingListSharedLinksArg + * @property {string} [path] - See list_shared_links description. + * @property {string} [cursor] - The cursor returned by your last call to + * list_shared_links. + * @property {boolean} [direct_only] - See list_shared_links description. + */ /** + * @typedef {Object} SharingListSharedLinksError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingListSharedLinksResult + * @property + * {Array.<(SharingFileLinkMetadata|SharingFolderLinkMetadata|SharingSharedLinkMetadata)>} + * links - Shared links applicable to the path argument. + * @property {boolean} has_more - Is true if there are additional shared links + * that have not been returned yet. Pass the cursor into list_shared_links to + * retrieve them. + * @property {string} [cursor] - Pass the cursor into list_shared_links to + * obtain the additional links. Cursor is returned only if no path is given. + */ /** + * Contains information about a member's access level to content after an + * operation. + * @typedef {Object} SharingMemberAccessLevelResult + * @property {SharingAccessLevel} [access_level] - The member still has this + * level of access to the content through a parent folder. + * @property {string} [warning] - A localized string with additional information + * about why the user has this access level to the content. + * @property {Array.} [access_details] - The + * parent folders that a member has access to. The field is present if the user + * has access to the first parent folder where the member gains access. + */ /** + * Actions that may be taken on members of a shared folder. + * @typedef {Object} SharingMemberAction + * @property {('leave_a_copy'|'make_editor'|'make_owner'|'make_viewer'|'make_viewer_no_comment'|'remove'|'other')} .tag - Tag identifying the union variant. + */ /** + * Whether the user is allowed to take the action on the associated member. + * @typedef {Object} SharingMemberPermission + * @property {SharingMemberAction} action - The action that the user may wish to + * take on the member. + * @property {boolean} allow - True if the user is allowed to take the action. + * @property {SharingPermissionDeniedReason} [reason] - The reason why the user + * is denied the permission. Not present if the action is allowed. + */ /** + * Policy governing who can be a member of a shared folder. Only applicable to + * folders owned by a user on a team. + * @typedef {Object} SharingMemberPolicy + * @property {('team'|'anyone'|'other')} .tag - Tag identifying the union variant. + */ /** + * Includes different ways to identify a member of a shared folder. + * @typedef {Object} SharingMemberSelector + * @property {string} [dropbox_id] - Available if .tag is dropbox_id. Dropbox + * account, team member, or group ID of member. + * @property {string} [email] - Available if .tag is email. Email address of + * member. + * @property {('dropbox_id'|'email'|'other')} .tag - Tag identifying the union variant. + */ /** + * The information about a member of the shared content. + * @typedef {Object} SharingMembershipInfo + * @property {SharingAccessLevel} access_type - The access type for this member. + * It contains inherited access type from parent folder, and acquired access + * type from this folder. + * @property {Array.} [permissions] - The permissions + * that requesting user has on this member. The set of permissions corresponds + * to the MemberActions in the request. + * @property {string} [initials] - Never set. + * @property {boolean} is_inherited - True if the member has access from a + * parent folder. + */ /** + * @typedef {Object} SharingModifySharedLinkSettingsArgs + * @property {string} url - URL of the shared link to change its settings. + * @property {SharingSharedLinkSettings} settings - Set of settings for the + * shared link. + * @property {boolean} remove_expiration - If set to true, removes the + * expiration of the shared link. + */ /** + * @typedef {Object} SharingModifySharedLinkSettingsError + * @property {SharingSharedLinkSettingsError} [settings_error] - Available if + * .tag is settings_error. There is an error with the given settings. + * @property {('shared_link_not_found'|'shared_link_access_denied'|'unsupported_link_type'|'other'|'settings_error'|'email_not_verified')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingMountFolderArg + * @property {string} shared_folder_id - The ID of the shared folder to mount. + */ /** + * @typedef {Object} SharingMountFolderError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {SharingInsufficientQuotaAmounts} [insufficient_quota] - Available + * if .tag is insufficient_quota. The current user does not have enough space to + * mount the shared folder. + * @property {('access_error'|'inside_shared_folder'|'insufficient_quota'|'already_mounted'|'no_permission'|'not_mountable'|'other')} .tag - Tag identifying the union variant. + */ /** + * Contains information about a parent folder that a member has access to. + * @typedef {Object} SharingParentFolderAccessInfo + * @property {string} folder_name - Display name for the folder. + * @property {string} shared_folder_id - The identifier of the parent shared + * folder. + * @property {Array.} permissions - The user's + * permissions for the parent shared folder. + * @property {string} path - The full path to the parent shared folder relative + * to the acting user's root. + */ /** + * Metadata for a path-based shared link. + * @typedef {Object} SharingPathLinkMetadata +@property {'path'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {string} url - URL of the shared link. + * @property {SharingVisibility} visibility - Who can access the link. + * @property {string} path - Path in user's Dropbox. + * @property {Timestamp} [expires] - Expiration time, if set. By default the + * link won't expire. + */ /** + * Flag to indicate pending upload default (for linking to not-yet-existing + * paths). + * @typedef {Object} SharingPendingUploadMode + * @property {('file'|'folder')} .tag - Tag identifying the union variant. + */ /** + * Possible reasons the user is denied a permission. + * @typedef {Object} SharingPermissionDeniedReason + * @property {SharingInsufficientPlan} [insufficient_plan] - Available if .tag + * is insufficient_plan. + * @property {('user_not_same_team_as_owner'|'user_not_allowed_by_owner'|'target_is_indirect_member'|'target_is_owner'|'target_is_self'|'target_not_active'|'folder_is_limited_team_folder'|'owner_not_on_team'|'permission_denied'|'restricted_by_team'|'user_account_type'|'user_not_on_team'|'folder_is_inside_shared_folder'|'restricted_by_parent_folder'|'insufficient_plan'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingRelinquishFileMembershipArg + * @property {string} file - The path or id for the file. + */ /** + * @typedef {Object} SharingRelinquishFileMembershipError + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'group_access'|'no_permission'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingRelinquishFolderMembershipArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {boolean} leave_a_copy - Keep a copy of the folder's contents upon + * relinquishing membership. This must be set to false when the folder is within + * a team folder or another shared folder. + */ /** + * @typedef {Object} SharingRelinquishFolderMembershipError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'folder_owner'|'mounted'|'group_access'|'team_folder'|'no_permission'|'no_explicit_access'|'other')} .tag - Tag identifying the union variant. + */ /** + * Arguments for remove_file_member_2. + * @typedef {Object} SharingRemoveFileMemberArg + * @property {string} file - File from which to remove members. + * @property {SharingMemberSelector} member - Member to remove from this file. + * Note that even if an email is specified, it may result in the removal of a + * user (not an invitee) if the user's main account corresponds to that email + * address. + */ /** + * Errors for remove_file_member_2. + * @typedef {Object} SharingRemoveFileMemberError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {SharingMemberAccessLevelResult} [no_explicit_access] - Available + * if .tag is no_explicit_access. This member does not have explicit access to + * the file and therefore cannot be removed. The return value is the access that + * a user might have to the file from a parent folder. + * @property {('user_error'|'access_error'|'no_explicit_access'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingRemoveFolderMemberArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {SharingMemberSelector} member - The member to remove from the + * folder. + * @property {boolean} leave_a_copy - If true, the removed user will keep their + * copy of the folder after it's unshared, assuming it was mounted. Otherwise, + * it will be removed from their Dropbox. This must be set to false when + * removing a group, or when the folder is within a team folder or another + * shared folder. + */ /** + * @typedef {Object} SharingRemoveFolderMemberError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {SharingSharedFolderMemberError} [member_error] - Available if .tag + * is member_error. + * @property {('access_error'|'member_error'|'folder_owner'|'group_access'|'team_folder'|'no_permission'|'too_many_files'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingRemoveMemberJobStatus + * @property {SharingMemberAccessLevelResult} [complete] - Available if .tag is + * complete. Removing the folder member has finished. The value is information + * about whether the member has another form of access. + * @property {SharingRemoveFolderMemberError} [failed] - Available if .tag is + * failed. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingRequestedLinkAccessLevel + * @property {('viewer'|'editor'|'max'|'default'|'other')} .tag - Tag identifying the union variant. + */ /** + * The access permission that can be requested by the caller for the shared + * link. Note that the final resolved visibility of the shared link takes into + * account other aspects, such as team and shared folder settings. Check the + * ResolvedVisibility for more info on the possible resolved visibility values + * of shared links. + * @typedef {Object} SharingRequestedVisibility + * @property {('public'|'team_only'|'password')} .tag - Tag identifying the union variant. + */ /** + * The actual access permissions values of shared links after taking into + * account user preferences and the team and shared folder settings. Check the + * RequestedVisibility for more info on the possible visibility values that can + * be set by the shared link's owner. + * @typedef {Object} SharingResolvedVisibility + * @property {('public'|'team_only'|'password'|'team_and_password'|'shared_folder_only'|'no_one'|'only_you'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingRevokeSharedLinkArg + * @property {string} url - URL of the shared link. + */ /** + * @typedef {Object} SharingRevokeSharedLinkError + * @property {('shared_link_not_found'|'shared_link_access_denied'|'unsupported_link_type'|'other'|'shared_link_malformed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingSetAccessInheritanceArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {SharingAccessInheritance} access_inheritance - The access + * inheritance settings for the folder. + */ /** + * @typedef {Object} SharingSetAccessInheritanceError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. Unable to access shared folder. + * @property {('access_error'|'no_permission'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingShareFolderArg + * @property {string} path - The path to the folder to share. If it does not + * exist, then a new one is created. + * @property {SharingAclUpdatePolicy} [acl_update_policy] - Who can add and + * remove members of this shared folder. + * @property {boolean} force_async - Whether to force the share to happen + * asynchronously. + * @property {SharingMemberPolicy} [member_policy] - Who can be a member of this + * shared folder. Only applicable if the current user is on a team. + * @property {SharingSharedLinkPolicy} [shared_link_policy] - The policy to + * apply to shared links created for content inside this shared folder. The + * current user must be on a team to set this policy to + * SharedLinkPolicy.members. + * @property {SharingViewerInfoPolicy} [viewer_info_policy] - Who can + * enable/disable viewer info for this shared folder. + * @property {SharingAccessInheritance} access_inheritance - The access + * inheritance settings for the folder. + * @property {Array.} [actions] - A list of `FolderAction`s + * corresponding to `FolderPermission`s that should appear in the response's + * SharedFolderMetadata.permissions field describing the actions the + * authenticated user can perform on the folder. + * @property {SharingLinkSettings} [link_settings] - Settings on the link for + * this folder. + */ /** + * @typedef {Object} SharingShareFolderArgBase + * @property {string} path - The path to the folder to share. If it does not + * exist, then a new one is created. + * @property {SharingAclUpdatePolicy} [acl_update_policy] - Who can add and + * remove members of this shared folder. + * @property {boolean} force_async - Whether to force the share to happen + * asynchronously. + * @property {SharingMemberPolicy} [member_policy] - Who can be a member of this + * shared folder. Only applicable if the current user is on a team. + * @property {SharingSharedLinkPolicy} [shared_link_policy] - The policy to + * apply to shared links created for content inside this shared folder. The + * current user must be on a team to set this policy to + * SharedLinkPolicy.members. + * @property {SharingViewerInfoPolicy} [viewer_info_policy] - Who can + * enable/disable viewer info for this shared folder. + * @property {SharingAccessInheritance} access_inheritance - The access + * inheritance settings for the folder. + */ /** + * @typedef {Object} SharingShareFolderError + * @property {SharingSharePathError} [bad_path] - Available if .tag is bad_path. + * :field:`ShareFolderArg.path` is invalid. + * @property {('email_unverified'|'bad_path'|'team_policy_disallows_member_policy'|'disallowed_shared_link_policy'|'other'|'no_permission')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingShareFolderErrorBase + * @property {SharingSharePathError} [bad_path] - Available if .tag is bad_path. + * :field:`ShareFolderArg.path` is invalid. + * @property {('email_unverified'|'bad_path'|'team_policy_disallows_member_policy'|'disallowed_shared_link_policy'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingShareFolderJobStatus + * @property {SharingSharedFolderMetadata} [complete] - Available if .tag is + * complete. The share job has finished. The value is the metadata for the + * folder. + * @property {SharingShareFolderError} [failed] - Available if .tag is failed. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingShareFolderLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {SharingSharedFolderMetadata} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingSharePathError + * @property {SharingSharedFolderMetadata} [already_shared] - Available if .tag + * is already_shared. Folder is already shared. Contains metadata about the + * existing shared folder. + * @property {('is_file'|'inside_shared_folder'|'contains_shared_folder'|'contains_app_folder'|'contains_team_folder'|'is_app_folder'|'inside_app_folder'|'is_public_folder'|'inside_public_folder'|'already_shared'|'invalid_path'|'is_osx_package'|'inside_osx_package'|'is_vault'|'is_vault_locked'|'is_family'|'other')} .tag - Tag identifying the union variant. + */ /** + * Metadata of a shared link for a file or folder. + * @typedef {Object} SharingSharedContentLinkMetadata + * @property {Array.} audience_options - The audience + * options that are available for the content. Some audience options may be + * unavailable. For example, team_only may be unavailable if the content is not + * owned by a user on a team. The 'default' audience option is always available + * if the user can modify link settings. + * @property {SharingLinkAudience} current_audience - The current audience of + * the link. + * @property {Array.} link_permissions - A list of + * permissions for actions you can perform on the link. + * @property {boolean} password_protected - Whether the link is protected by a + * password. + * @property {string} url - The URL of the link. + * @property {SharingAccessLevel} [access_level] - The access level on the link + * for this file. + * @property {SharingAudienceRestrictingSharedFolder} + * [audience_restricting_shared_folder] - The shared folder that prevents the + * link audience for this link from being more restrictive. + * @property {Timestamp} [expiry] - Whether the link has an expiry set on it. A + * link with an expiry will have its audience changed to members when the + * expiry is reached. + * @property {SharingAudienceExceptions} [audience_exceptions] - The content + * inside this folder with link audience different than this folder's. This is + * only returned when an endpoint that returns metadata for a single shared + * folder is called, e.g. /get_folder_metadata. + */ /** + * @typedef {Object} SharingSharedContentLinkMetadataBase + * @property {Array.} audience_options - The audience + * options that are available for the content. Some audience options may be + * unavailable. For example, team_only may be unavailable if the content is not + * owned by a user on a team. The 'default' audience option is always available + * if the user can modify link settings. + * @property {SharingLinkAudience} current_audience - The current audience of + * the link. + * @property {Array.} link_permissions - A list of + * permissions for actions you can perform on the link. + * @property {boolean} password_protected - Whether the link is protected by a + * password. + * @property {SharingAccessLevel} [access_level] - The access level on the link + * for this file. + * @property {SharingAudienceRestrictingSharedFolder} + * [audience_restricting_shared_folder] - The shared folder that prevents the + * link audience for this link from being more restrictive. + * @property {Timestamp} [expiry] - Whether the link has an expiry set on it. A + * link with an expiry will have its audience changed to members when the + * expiry is reached. + */ /** + * Shared file user, group, and invitee membership. Used for the results of + * list_file_members and list_file_members/continue, and used as part of the + * results for list_file_members/batch. + * @typedef {Object} SharingSharedFileMembers + * @property {Array.} users - The list of user + * members of the shared file. + * @property {Array.} groups - The list of group + * members of the shared file. + * @property {Array.} invitees - The list of + * invited members of a file, but have not logged in and claimed this. + * @property {string} [cursor] - Present if there are additional shared file + * members that have not been returned yet. Pass the cursor into + * list_file_members/continue to list additional members. + */ /** + * Properties of the shared file. + * @typedef {Object} SharingSharedFileMetadata + * @property {string} id - The ID of the file. + * @property {string} name - The name of this file. + * @property {SharingFolderPolicy} policy - Policies governing this shared file. + * @property {string} preview_url - URL for displaying a web preview of the + * shared file. + * @property {SharingAccessLevel} [access_type] - The current user's access + * level for this shared file. + * @property {SharingExpectedSharedContentLinkMetadata} [expected_link_metadata] + * - The expected metadata of the link associated for the file when it is first + * shared. Absent if the link already exists. This is for an unreleased feature + * so it may not be returned yet. + * @property {SharingSharedContentLinkMetadata} [link_metadata] - The metadata + * of the link associated for the file. This is for an unreleased feature so it + * may not be returned yet. + * @property {Array.} [owner_display_names] - The display names of the + * users that own the file. If the file is part of a team folder, the display + * names of the team admins are also included. Absent if the owner display names + * cannot be fetched. + * @property {UsersTeam} [owner_team] - The team that owns the file. This field + * is not present if the file is not owned by a team. + * @property {string} [parent_shared_folder_id] - The ID of the parent shared + * folder. This field is present only if the file is contained within a shared + * folder. + * @property {string} [path_display] - The cased path to be used for display + * purposes only. In rare instances the casing will not correctly match the + * user's filesystem, but this behavior will match the path provided in the Core + * API v1. Absent for unmounted files. + * @property {string} [path_lower] - The lower-case full path of this file. + * Absent for unmounted files. + * @property {Array.} [permissions] - The sharing + * permissions that requesting user has on this file. This corresponds to the + * entries given in GetFileMetadataBatchArg.actions or + * GetFileMetadataArg.actions. + * @property {Timestamp} [time_invited] - Timestamp indicating when the current + * user was invited to this shared file. If the user was not invited to the + * shared file, the timestamp will indicate when the user was invited to the + * parent shared folder. This value may be absent. + */ /** + * There is an error accessing the shared folder. + * @typedef {Object} SharingSharedFolderAccessError + * @property {('invalid_id'|'not_a_member'|'email_unverified'|'unmounted'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingSharedFolderMemberError + * @property {SharingMemberAccessLevelResult} [no_explicit_access] - Available + * if .tag is no_explicit_access. The target member only has inherited access to + * the shared folder. + * @property {('invalid_dropbox_id'|'not_a_member'|'no_explicit_access'|'other')} .tag - Tag identifying the union variant. + */ /** + * Shared folder user and group membership. + * @typedef {Object} SharingSharedFolderMembers + * @property {Array.} users - The list of user + * members of the shared folder. + * @property {Array.} groups - The list of group + * members of the shared folder. + * @property {Array.} invitees - The list of + * invitees to the shared folder. + * @property {string} [cursor] - Present if there are additional shared folder + * members that have not been returned yet. Pass the cursor into + * list_folder_members/continue to list additional members. + */ /** + * The metadata which includes basic information about the shared folder. + * @typedef {Object} SharingSharedFolderMetadata + * @property {SharingAccessLevel} access_type - The current user's access level + * for this shared folder. + * @property {boolean} is_inside_team_folder - Whether this folder is inside of + * a team folder. + * @property {boolean} is_team_folder - Whether this folder is a team folder + * https://www.dropbox.com/en/help/986. + * @property {string} name - The name of the this shared folder. + * @property {SharingFolderPolicy} policy - Policies governing this shared + * folder. + * @property {string} preview_url - URL for displaying a web preview of the + * shared folder. + * @property {string} shared_folder_id - The ID of the shared folder. + * @property {Timestamp} time_invited - Timestamp indicating when the current + * user was invited to this shared folder. + * @property {Array.} [owner_display_names] - The display names of the + * users that own the folder. If the folder is part of a team folder, the + * display names of the team admins are also included. Absent if the owner + * display names cannot be fetched. + * @property {UsersTeam} [owner_team] - The team that owns the folder. This + * field is not present if the folder is not owned by a team. + * @property {string} [parent_shared_folder_id] - The ID of the parent shared + * folder. This field is present only if the folder is contained within another + * shared folder. + * @property {string} [path_lower] - The lower-cased full path of this shared + * folder. Absent for unmounted folders. + * @property {string} [parent_folder_name] - Display name for the parent folder. + * @property {SharingSharedContentLinkMetadata} [link_metadata] - The metadata + * of the shared content link to this shared folder. Absent if there is no link + * on the folder. This is for an unreleased feature so it may not be returned + * yet. + * @property {Array.} [permissions] - Actions the + * current user may perform on the folder and its contents. The set of + * permissions corresponds to the FolderActions in the request. + * @property {SharingAccessInheritance} access_inheritance - Whether the folder + * inherits its members from its parent. + */ /** + * Properties of the shared folder. + * @typedef {Object} SharingSharedFolderMetadataBase + * @property {SharingAccessLevel} access_type - The current user's access level + * for this shared folder. + * @property {boolean} is_inside_team_folder - Whether this folder is inside of + * a team folder. + * @property {boolean} is_team_folder - Whether this folder is a team folder + * https://www.dropbox.com/en/help/986. + * @property {Array.} [owner_display_names] - The display names of the + * users that own the folder. If the folder is part of a team folder, the + * display names of the team admins are also included. Absent if the owner + * display names cannot be fetched. + * @property {UsersTeam} [owner_team] - The team that owns the folder. This + * field is not present if the folder is not owned by a team. + * @property {string} [parent_shared_folder_id] - The ID of the parent shared + * folder. This field is present only if the folder is contained within another + * shared folder. + * @property {string} [path_lower] - The lower-cased full path of this shared + * folder. Absent for unmounted folders. + * @property {string} [parent_folder_name] - Display name for the parent folder. + */ /** + * @typedef {Object} SharingSharedLinkAccessFailureReason + * @property {('login_required'|'email_verify_required'|'password_required'|'team_only'|'owner_only'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingSharedLinkAlreadyExistsMetadata + * @property + * {(SharingFileLinkMetadata|SharingFolderLinkMetadata|SharingSharedLinkMetadata)} + * [metadata] - Available if .tag is metadata. Metadata of the shared link that + * already exists. + * @property {('metadata'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingSharedLinkError + * @property {('shared_link_not_found'|'shared_link_access_denied'|'unsupported_link_type'|'other')} .tag - Tag identifying the union variant. + */ /** + * The metadata of a shared link. + * @typedef {Object} SharingSharedLinkMetadata +@property {("file"|"folder")} .tag - Tag identifying the subtype variant. + * @property {string} url - URL of the shared link. + * @property {string} name - The linked file name (including extension). This + * never contains a slash. + * @property {SharingLinkPermissions} link_permissions - The link's access + * permissions. + * @property {string} [id] - A unique identifier for the linked file. + * @property {Timestamp} [expires] - Expiration time, if set. By default the + * link won't expire. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will only be present + * only if the linked file is in the authenticated user's dropbox. + * @property {SharingTeamMemberInfo} [team_member_info] - The team membership + * information of the link's owner. This field will only be present if the + * link's owner is a team member. + * @property {UsersTeam} [content_owner_team_info] - The team information of the + * content's owner. This field will only be present if the content's owner is a + * team member and the content's owner team is different from the link's owner + * team. + */ /** + * Who can view shared links in this folder. + * @typedef {Object} SharingSharedLinkPolicy + * @property {('anyone'|'team'|'members'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingSharedLinkSettings + * @property {boolean} [require_password] - Boolean flag to enable or disable + * password protection. + * @property {string} [link_password] - If require_password is true, this is + * needed to specify the password to access the link. + * @property {Timestamp} [expires] - Expiration time of the shared link. By + * default the link won't expire. + * @property {SharingLinkAudience} [audience] - The new audience who can benefit + * from the access level specified by the link's access level specified in the + * `link_access_level` field of `LinkPermissions`. This is used in conjunction + * with team policies and shared folder policies to determine the final + * effective audience type in the `effective_audience` field of + * `LinkPermissions. + * @property {SharingRequestedLinkAccessLevel} [access] - Requested access level + * you want the audience to gain from this link. Note, modifying access level + * for an existing link is not supported. + * @property {SharingRequestedVisibility} [requested_visibility] - Use audience + * instead. The requested access for this shared link. + * @property {boolean} [allow_download] - Boolean flag to allow or not download + * capabilities for shared links. + */ /** + * @typedef {Object} SharingSharedLinkSettingsError + * @property {('invalid_settings'|'not_authorized')} .tag - Tag identifying the union variant. + */ /** + * User could not access this file. + * @typedef {Object} SharingSharingFileAccessError + * @property {('no_permission'|'invalid_file'|'is_folder'|'inside_public_folder'|'inside_osx_package'|'other')} .tag - Tag identifying the union variant. + */ /** + * User account had a problem preventing this action. + * @typedef {Object} SharingSharingUserError + * @property {('email_unverified'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information about a team member. + * @typedef {Object} SharingTeamMemberInfo + * @property {UsersTeam} team_info - Information about the member's team. + * @property {string} display_name - The display name of the user. + * @property {string} [member_id] - ID of user as a member of a team. This field + * will only be present if the member is in the same team as current user. + */ /** + * @typedef {Object} SharingTransferFolderArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {string} to_dropbox_id - A account or team member ID to transfer + * ownership to. + */ /** + * @typedef {Object} SharingTransferFolderError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'invalid_dropbox_id'|'new_owner_not_a_member'|'new_owner_unmounted'|'new_owner_email_unverified'|'team_folder'|'no_permission'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingUnmountFolderArg + * @property {string} shared_folder_id - The ID for the shared folder. + */ /** + * @typedef {Object} SharingUnmountFolderError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'no_permission'|'not_unmountable'|'other')} .tag - Tag identifying the union variant. + */ /** + * Arguments for unshare_file. + * @typedef {Object} SharingUnshareFileArg + * @property {string} file - The file to unshare. + */ /** + * Error result for unshare_file. + * @typedef {Object} SharingUnshareFileError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('user_error'|'access_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingUnshareFolderArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {boolean} leave_a_copy - If true, members of this shared folder + * will get a copy of this folder after it's unshared. Otherwise, it will be + * removed from their Dropbox. The current user, who is an owner, will always + * retain their copy. + */ /** + * @typedef {Object} SharingUnshareFolderError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'team_folder'|'no_permission'|'too_many_files'|'other')} .tag - Tag identifying the union variant. + */ /** + * Arguments for update_file_member. + * @typedef {Object} SharingUpdateFileMemberArgs + * @property {string} file - File for which we are changing a member's access. + * @property {SharingMemberSelector} member - The member whose access we are + * changing. + * @property {SharingAccessLevel} access_level - The new access level for the + * member. + */ /** + * @typedef {Object} SharingUpdateFolderMemberArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {SharingMemberSelector} member - The member of the shared folder to + * update. Only the MemberSelector.dropbox_id may be set at this time. + * @property {SharingAccessLevel} access_level - The new access level for + * member. AccessLevel.owner is disallowed. + */ /** + * @typedef {Object} SharingUpdateFolderMemberError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {SharingSharedFolderMemberError} [member_error] - Available if .tag + * is member_error. + * @property {SharingAddFolderMemberError} [no_explicit_access] - Available if + * .tag is no_explicit_access. If updating the access type required the member + * to be added to the shared folder and there was an error when adding the + * member. + * @property {('access_error'|'member_error'|'no_explicit_access'|'insufficient_plan'|'no_permission'|'other')} .tag - Tag identifying the union variant. + */ /** + * If any of the policies are unset, then they retain their current setting. + * @typedef {Object} SharingUpdateFolderPolicyArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {SharingMemberPolicy} [member_policy] - Who can be a member of this + * shared folder. Only applicable if the current user is on a team. + * @property {SharingAclUpdatePolicy} [acl_update_policy] - Who can add and + * remove members of this shared folder. + * @property {SharingViewerInfoPolicy} [viewer_info_policy] - Who can + * enable/disable viewer info for this shared folder. + * @property {SharingSharedLinkPolicy} [shared_link_policy] - The policy to + * apply to shared links created for content inside this shared folder. The + * current user must be on a team to set this policy to + * SharedLinkPolicy.members. + * @property {SharingLinkSettings} [link_settings] - Settings on the link for + * this folder. + * @property {Array.} [actions] - A list of `FolderAction`s + * corresponding to `FolderPermission`s that should appear in the response's + * SharedFolderMetadata.permissions field describing the actions the + * authenticated user can perform on the folder. + */ /** + * @typedef {Object} SharingUpdateFolderPolicyError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'not_on_team'|'team_policy_disallows_member_policy'|'disallowed_shared_link_policy'|'no_permission'|'team_folder'|'other')} .tag - Tag identifying the union variant. + */ /** + * The information about a user member of the shared content with an appended + * last seen timestamp. + * @typedef {Object} SharingUserFileMembershipInfo + * @property {SharingAccessLevel} access_type - The access type for this member. + * It contains inherited access type from parent folder, and acquired access + * type from this folder. + * @property {SharingUserInfo} user - The account information for the membership + * user. + * @property {Array.} [permissions] - The permissions + * that requesting user has on this member. The set of permissions corresponds + * to the MemberActions in the request. + * @property {string} [initials] - Never set. + * @property {boolean} is_inherited - True if the member has access from a + * parent folder. + * @property {Timestamp} [time_last_seen] - The UTC timestamp of when the user + * has last seen the content. Only populated if the user has seen the content + * and the caller has a plan that includes viewer history. + * @property {SeenStatePlatformType} [platform_type] - The platform on which the + * user has last seen the content, or unknown. + */ /** + * Basic information about a user. Use users.get_account and + * users.get_account_batch to obtain more detailed information. + * @typedef {Object} SharingUserInfo + * @property {string} account_id - The account ID of the user. + * @property {string} email - Email address of user. + * @property {string} display_name - The display name of the user. + * @property {boolean} same_team - If the user is in the same team as current + * user. + * @property {string} [team_member_id] - The team member ID of the shared folder + * member. Only present if same_team is true. + */ /** + * The information about a user member of the shared content. + * @typedef {Object} SharingUserMembershipInfo + * @property {SharingAccessLevel} access_type - The access type for this member. + * It contains inherited access type from parent folder, and acquired access + * type from this folder. + * @property {SharingUserInfo} user - The account information for the membership + * user. + * @property {Array.} [permissions] - The permissions + * that requesting user has on this member. The set of permissions corresponds + * to the MemberActions in the request. + * @property {string} [initials] - Never set. + * @property {boolean} is_inherited - True if the member has access from a + * parent folder. + */ /** + * @typedef {Object} SharingViewerInfoPolicy + * @property {('enabled'|'disabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Who can access a shared link. The most open visibility is public. The default + * depends on many aspects, such as team and user preferences and shared folder + * settings. + * @typedef {Object} SharingVisibility + * @property {('public'|'team_only'|'password'|'team_and_password'|'shared_folder_only'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} SharingVisibilityPolicy + * @property {SharingRequestedVisibility} policy - This is the value to submit + * when saving the visibility setting. + * @property {SharingAlphaResolvedVisibility} resolved_policy - This is what the + * effective policy would be, if you selected this option. The resolved policy + * is obtained after considering external effects such as shared folder settings + * and team policy. This value is guaranteed to be provided. + * @property {boolean} allowed - Whether the user is permitted to set the + * visibility to this policy. + * @property {SharingVisibilityPolicyDisallowedReason} [disallowed_reason] - If + * allowed is false, this will provide the reason that the user is not permitted + * to set the visibility to this policy. + */ /** + * @typedef {Object} SharingVisibilityPolicyDisallowedReason + * @property {('delete_and_recreate'|'restricted_by_shared_folder'|'restricted_by_team'|'user_not_on_team'|'user_account_type'|'permission_denied'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information on active web sessions. + * @typedef {Object} TeamActiveWebSession + * @property {string} session_id - The session id. + * @property {string} user_agent - Information on the hosting device. + * @property {string} os - Information on the hosting operating system. + * @property {string} browser - Information on the browser used for this web + * session. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {string} [country] - The country from which the last activity from + * this session was made. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + * @property {Timestamp} [expires] - The time this session expires. + */ /** + * Result of trying to add a secondary email to a user. 'success' is the only + * value indicating that a secondary email was successfully added to a user. The + * other values explain the type of error that occurred, and include the email + * for which the error occurred. + * @typedef {Object} TeamAddSecondaryEmailResult + * @property {SecondaryEmailsSecondaryEmail} [success] - Available if .tag is + * success. Describes a secondary email that was successfully added to a user. + * @property {string} [unavailable] - Available if .tag is unavailable. + * Secondary email is not available to be claimed by the user. + * @property {string} [already_pending] - Available if .tag is already_pending. + * Secondary email is already a pending email for the user. + * @property {string} [already_owned_by_user] - Available if .tag is + * already_owned_by_user. Secondary email is already a verified email for the + * user. + * @property {string} [reached_limit] - Available if .tag is reached_limit. User + * already has the maximum number of secondary emails allowed. + * @property {string} [transient_error] - Available if .tag is transient_error. + * A transient error occurred. Please try again later. + * @property {string} [too_many_updates] - Available if .tag is + * too_many_updates. An error occurred due to conflicting updates. Please try + * again later. + * @property {string} [unknown_error] - Available if .tag is unknown_error. An + * unknown error occurred. + * @property {string} [rate_limited] - Available if .tag is rate_limited. Too + * many emails are being sent to this email address. Please try again later. + * @property {('success'|'unavailable'|'already_pending'|'already_owned_by_user'|'reached_limit'|'transient_error'|'too_many_updates'|'unknown_error'|'rate_limited'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamAddSecondaryEmailsArg + * @property {Array.} new_secondary_emails - List of + * users and secondary emails to add. + */ /** + * Error returned when adding secondary emails fails. + * @typedef {Object} TeamAddSecondaryEmailsError + * @property {('secondary_emails_disabled'|'too_many_emails'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamAddSecondaryEmailsResult + * @property {Array.} results - List of users and secondary + * email results. + */ /** + * Describes which team-related admin permissions a user has. + * @typedef {Object} TeamAdminTier + * @property {('team_admin'|'user_management_admin'|'support_admin'|'member_only')} .tag - Tag identifying the union variant. + */ /** + * Information on linked third party applications. + * @typedef {Object} TeamApiApp + * @property {string} app_id - The application unique id. + * @property {string} app_name - The application name. + * @property {boolean} is_app_folder - Whether the linked application uses a + * dedicated folder. + * @property {string} [publisher] - The application publisher name. + * @property {string} [publisher_url] - The publisher's URL. + * @property {Timestamp} [linked] - The time this application was linked. + */ /** + * Base report structure. + * @typedef {Object} TeamBaseDfbReport + * @property {string} start_date - First date present in the results as + * 'YYYY-MM-DD' or None. + */ /** + * Base error that all errors for existing team folders should extend. + * @typedef {Object} TeamBaseTeamFolderError + * @property {TeamTeamFolderAccessError} [access_error] - Available if .tag is + * access_error. + * @property {TeamTeamFolderInvalidStatusError} [status_error] - Available if + * .tag is status_error. + * @property {TeamTeamFolderTeamSharedDropboxError} [team_shared_dropbox_error] + * - Available if .tag is team_shared_dropbox_error. + * @property {('access_error'|'status_error'|'team_shared_dropbox_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * Error returned when getting member custom quota. + * @typedef {Object} TeamCustomQuotaError + * @property {('too_many_users'|'other')} .tag - Tag identifying the union variant. + */ /** + * User custom quota. + * @typedef {Object} TeamCustomQuotaResult + * @property {TeamUserCustomQuotaResult} [success] - Available if .tag is + * success. User's custom quota. + * @property {TeamUserSelectorArg} [invalid_user] - Available if .tag is + * invalid_user. Invalid user (not in team). + * @property {('success'|'invalid_user'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamCustomQuotaUsersArg + * @property {Array.} users - List of users. + */ /** + * Input arguments that can be provided for most reports. + * @typedef {Object} TeamDateRange + * @property {Timestamp} [start_date] - Optional starting date (inclusive). If + * start_date is None or too long ago, this field will be set to 6 months ago. + * @property {Timestamp} [end_date] - Optional ending date (exclusive). + */ /** + * Errors that can originate from problems in input arguments to reports. + * @typedef {Object} TeamDateRangeError + * @property {'other'} .tag - Tag identifying the union variant. + */ /** + * Result of trying to delete a secondary email address. 'success' is the only + * value indicating that a secondary email was successfully deleted. The other + * values explain the type of error that occurred, and include the email for + * which the error occurred. + * @typedef {Object} TeamDeleteSecondaryEmailResult + * @property {string} [success] - Available if .tag is success. The secondary + * email was successfully deleted. + * @property {string} [not_found] - Available if .tag is not_found. The email + * address was not found for the user. + * @property {string} [cannot_remove_primary] - Available if .tag is + * cannot_remove_primary. The email address is the primary email address of the + * user, and cannot be removed. + * @property {('success'|'not_found'|'cannot_remove_primary'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamDeleteSecondaryEmailsArg + * @property {Array.} emails_to_delete - List of + * users and their secondary emails to delete. + */ /** + * @typedef {Object} TeamDeleteSecondaryEmailsResult + * @property {Array.} results + */ /** + * Information about linked Dropbox desktop client sessions. + * @typedef {Object} TeamDesktopClientSession + * @property {string} session_id - The session id. + * @property {string} host_name - Name of the hosting desktop. + * @property {TeamDesktopPlatform} client_type - The Dropbox desktop client + * type. + * @property {string} client_version - The Dropbox client version. + * @property {string} platform - Information on the hosting platform. + * @property {boolean} is_delete_on_unlink_supported - Whether it's possible to + * delete all of the account files upon unlinking. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {string} [country] - The country from which the last activity from + * this session was made. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + */ /** + * @typedef {Object} TeamDesktopPlatform + * @property {('windows'|'mac'|'linux'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamDeviceSession + * @property {string} session_id - The session id. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {string} [country] - The country from which the last activity from + * this session was made. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + */ /** + * @typedef {Object} TeamDeviceSessionArg + * @property {string} session_id - The session id. + * @property {string} team_member_id - The unique id of the member owning the + * device. + */ /** + * Each of the items is an array of values, one value per day. The value is the + * number of devices active within a time window, ending with that day. If there + * is no data for a day, then the value will be None. + * @typedef {Object} TeamDevicesActive + * @property {Array.} windows - Array of number of linked windows + * (desktop) clients with activity. + * @property {Array.} macos - Array of number of linked mac (desktop) + * clients with activity. + * @property {Array.} linux - Array of number of linked linus (desktop) + * clients with activity. + * @property {Array.} ios - Array of number of linked ios devices with + * activity. + * @property {Array.} android - Array of number of linked android + * devices with activity. + * @property {Array.} other - Array of number of other linked devices + * (blackberry, windows phone, etc) with activity. + * @property {Array.} total - Array of total number of linked clients + * with activity. + */ /** + * Excluded users list argument. + * @typedef {Object} TeamExcludedUsersListArg + * @property {number} limit - Number of results to return per call. + */ /** + * Excluded users list continue argument. + * @typedef {Object} TeamExcludedUsersListContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * users. + */ /** + * Excluded users list continue error. + * @typedef {Object} TeamExcludedUsersListContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * Excluded users list error. + * @typedef {Object} TeamExcludedUsersListError + * @property {('list_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * Excluded users list result. + * @typedef {Object} TeamExcludedUsersListResult + * @property {Array.} users + * @property {boolean} has_more - Is true if there are additional excluded users + * that have not been returned yet. An additional call to + * member_space_limits/excluded_users/list/continue can retrieve them. + * @property {string} [cursor] - Pass the cursor into + * member_space_limits/excluded_users/list/continue to obtain additional + * excluded users. + */ /** + * Argument of excluded users update operation. Should include a list of users + * to add/remove (according to endpoint), Maximum size of the list is 1000 + * users. + * @typedef {Object} TeamExcludedUsersUpdateArg + * @property {Array.} [users] - List of users to be + * added/removed. + */ /** + * Excluded users update error. + * @typedef {Object} TeamExcludedUsersUpdateError + * @property {('users_not_in_team'|'too_many_users'|'other')} .tag - Tag identifying the union variant. + */ /** + * Excluded users update result. + * @typedef {Object} TeamExcludedUsersUpdateResult + * @property {TeamExcludedUsersUpdateStatus} status - Update status. + */ /** + * Excluded users update operation status. + * @typedef {Object} TeamExcludedUsersUpdateStatus + * @property {('success'|'other')} .tag - Tag identifying the union variant. + */ /** + * A set of features that a Dropbox Business account may support. + * @typedef {Object} TeamFeature + * @property {('upload_api_rate_limit'|'has_team_shared_dropbox'|'has_team_file_events'|'has_team_selective_sync'|'other')} .tag - Tag identifying the union variant. + */ /** + * The values correspond to entries in Feature. You may get different value + * according to your Dropbox Business plan. + * @typedef {Object} TeamFeatureValue + * @property {TeamUploadApiRateLimitValue} [upload_api_rate_limit] - Available + * if .tag is upload_api_rate_limit. + * @property {TeamHasTeamSharedDropboxValue} [has_team_shared_dropbox] - + * Available if .tag is has_team_shared_dropbox. + * @property {TeamHasTeamFileEventsValue} [has_team_file_events] - Available if + * .tag is has_team_file_events. + * @property {TeamHasTeamSelectiveSyncValue} [has_team_selective_sync] - + * Available if .tag is has_team_selective_sync. + * @property {('upload_api_rate_limit'|'has_team_shared_dropbox'|'has_team_file_events'|'has_team_selective_sync'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamFeaturesGetValuesBatchArg + * @property {Array.} features - A list of features in Feature. If + * the list is empty, this route will return FeaturesGetValuesBatchError. + */ /** + * @typedef {Object} TeamFeaturesGetValuesBatchError + * @property {('empty_features_list'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamFeaturesGetValuesBatchResult + * @property {Array.} values + */ /** + * Activity Report Result. Each of the items in the storage report is an array + * of values, one value per day. If there is no data for a day, then the value + * will be None. + * @typedef {Object} TeamGetActivityReport + * @property {string} start_date - First date present in the results as + * 'YYYY-MM-DD' or None. + * @property {Array.} adds - Array of total number of adds by team + * members. + * @property {Array.} edits - Array of number of edits by team members. + * If the same user edits the same file multiple times this is counted as a + * single edit. + * @property {Array.} deletes - Array of total number of deletes by team + * members. + * @property {Array.} active_users_28_day - Array of the number of users + * who have been active in the last 28 days. + * @property {Array.} active_users_7_day - Array of the number of users + * who have been active in the last week. + * @property {Array.} active_users_1_day - Array of the number of users + * who have been active in the last day. + * @property {Array.} active_shared_folders_28_day - Array of the number + * of shared folders with some activity in the last 28 days. + * @property {Array.} active_shared_folders_7_day - Array of the number + * of shared folders with some activity in the last week. + * @property {Array.} active_shared_folders_1_day - Array of the number + * of shared folders with some activity in the last day. + * @property {Array.} shared_links_created - Array of the number of + * shared links created. + * @property {Array.} shared_links_viewed_by_team - Array of the number + * of views by team users to shared links created by the team. + * @property {Array.} shared_links_viewed_by_outside_user - Array of the + * number of views by users outside of the team to shared links created by the + * team. + * @property {Array.} shared_links_viewed_by_not_logged_in - Array of + * the number of views by non-logged-in users to shared links created by the + * team. + * @property {Array.} shared_links_viewed_total - Array of the total + * number of views to shared links created by the team. + */ /** + * Devices Report Result. Contains subsections for different time ranges of + * activity. Each of the items in each subsection of the storage report is an + * array of values, one value per day. If there is no data for a day, then the + * value will be None. + * @typedef {Object} TeamGetDevicesReport + * @property {string} start_date - First date present in the results as + * 'YYYY-MM-DD' or None. + * @property {TeamDevicesActive} active_1_day - Report of the number of devices + * active in the last day. + * @property {TeamDevicesActive} active_7_day - Report of the number of devices + * active in the last 7 days. + * @property {TeamDevicesActive} active_28_day - Report of the number of devices + * active in the last 28 days. + */ /** + * Membership Report Result. Each of the items in the storage report is an array + * of values, one value per day. If there is no data for a day, then the value + * will be None. + * @typedef {Object} TeamGetMembershipReport + * @property {string} start_date - First date present in the results as + * 'YYYY-MM-DD' or None. + * @property {Array.} team_size - Team size, for each day. + * @property {Array.} pending_invites - The number of pending invites to + * the team, for each day. + * @property {Array.} members_joined - The number of members that joined + * the team, for each day. + * @property {Array.} suspended_members - The number of suspended team + * members, for each day. + * @property {Array.} licenses - The total number of licenses the team + * has, for each day. + */ /** + * Storage Report Result. Each of the items in the storage report is an array of + * values, one value per day. If there is no data for a day, then the value will + * be None. + * @typedef {Object} TeamGetStorageReport + * @property {string} start_date - First date present in the results as + * 'YYYY-MM-DD' or None. + * @property {Array.} total_usage - Sum of the shared, unshared, and + * datastore usages, for each day. + * @property {Array.} shared_usage - Array of the combined size (bytes) + * of team members' shared folders, for each day. + * @property {Array.} unshared_usage - Array of the combined size + * (bytes) of team members' root namespaces, for each day. + * @property {Array.} shared_folders - Array of the number of shared + * folders owned by team members, for each day. + * @property {Array.>} member_storage_map - Array of + * storage summaries of team members' account sizes. Each storage summary is an + * array of key, value pairs, where each pair describes a storage bucket. The + * key indicates the upper bound of the bucket and the value is the number of + * users in that bucket. There is one such summary per day. If there is no data + * for a day, the storage summary will be empty. + */ /** + * Role of a user in group. + * @typedef {Object} TeamGroupAccessType + * @property {('member'|'owner')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupCreateArg + * @property {string} group_name - Group name. + * @property {boolean} add_creator_as_owner - Automatically add the creator of + * the group. + * @property {string} [group_external_id] - The creator of a team can associate + * an arbitrary external ID to the group. + * @property {TeamCommonGroupManagementType} [group_management_type] - Whether + * the team can be managed by selected users, or only by team admins. + */ /** + * @typedef {Object} TeamGroupCreateError + * @property {('group_name_already_used'|'group_name_invalid'|'external_id_already_in_use'|'system_managed_group_disallowed'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupDeleteError + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'group_already_deleted')} .tag - Tag identifying the union variant. + */ /** + * Full description of a group. + * @typedef {Object} TeamGroupFullInfo + * @property {string} group_name + * @property {string} group_id + * @property {TeamCommonGroupManagementType} group_management_type - Who is + * allowed to manage the group. + * @property {number} created - The group creation time as a UTC timestamp in + * milliseconds since the Unix epoch. + * @property {string} [group_external_id] - External ID of group. This is an + * arbitrary ID that an admin can attach to a group. + * @property {number} [member_count] - The number of members in the group. + * @property {Array.} [members] - List of group members. + */ /** + * Profile of group member, and role in group. + * @typedef {Object} TeamGroupMemberInfo + * @property {TeamMemberProfile} profile - Profile of group member. + * @property {TeamGroupAccessType} access_type - The role that the user has in + * the group. + */ /** + * Argument for selecting a group and a single user. + * @typedef {Object} TeamGroupMemberSelector + * @property {TeamGroupSelector} group - Specify a group. + * @property {TeamUserSelectorArg} user - Identity of a user that is a member of + * group. + */ /** + * Error that can be raised when GroupMemberSelector is used, and the user is + * required to be a member of the specified group. + * @typedef {Object} TeamGroupMemberSelectorError + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'member_not_in_group')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupMemberSetAccessTypeError + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'member_not_in_group'|'user_cannot_be_manager_of_company_managed_group')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupMembersAddArg + * @property {TeamGroupSelector} group - Group to which users will be added. + * @property {Array.} members - List of users to be added to + * the group. + * @property {boolean} return_members - Whether to return the list of members in + * the group. Note that the default value will cause all the group members to + * be returned in the response. This may take a long time for large groups. + */ /** + * @typedef {Object} TeamGroupMembersAddError + * @property {Array.} [members_not_in_team] - Available if .tag is + * members_not_in_team. These members are not part of your team. Currently, you + * cannot add members to a group if they are not part of your team, though this + * may change in a subsequent version. To add new members to your Dropbox + * Business team, use the :route:`members/add` endpoint. + * @property {Array.} [users_not_found] - Available if .tag is + * users_not_found. These users were not found in Dropbox. + * @property {Array.} [user_cannot_be_manager_of_company_managed_group] + * - Available if .tag is user_cannot_be_manager_of_company_managed_group. A + * company-managed group cannot be managed by a user. + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'duplicate_user'|'group_not_in_team'|'members_not_in_team'|'users_not_found'|'user_must_be_active_to_be_owner'|'user_cannot_be_manager_of_company_managed_group')} .tag - Tag identifying the union variant. + */ /** + * Result returned by groups/members/add and groups/members/remove. + * @typedef {Object} TeamGroupMembersChangeResult + * @property {TeamGroupFullInfo} group_info - The group info after member change + * operation has been performed. + * @property {string} async_job_id - For legacy purposes async_job_id will + * always return one space ' '. Formerly, it was an ID that was used to obtain + * the status of granting/revoking group-owned resources. It's no longer + * necessary because the async processing now happens automatically. + */ /** + * @typedef {Object} TeamGroupMembersRemoveArg + * @property {TeamGroupSelector} group - Group from which users will be removed. + * @property {Array.} users - List of users to be removed + * from the group. + * @property {boolean} return_members - Whether to return the list of members in + * the group. Note that the default value will cause all the group members to + * be returned in the response. This may take a long time for large groups. + */ /** + * @typedef {Object} TeamGroupMembersRemoveError + * @property {Array.} [members_not_in_team] - Available if .tag is + * members_not_in_team. These members are not part of your team. + * @property {Array.} [users_not_found] - Available if .tag is + * users_not_found. These users were not found in Dropbox. + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'member_not_in_group'|'group_not_in_team'|'members_not_in_team'|'users_not_found')} .tag - Tag identifying the union variant. + */ /** + * Argument for selecting a group and a list of users. + * @typedef {Object} TeamGroupMembersSelector + * @property {TeamGroupSelector} group - Specify a group. + * @property {TeamUsersSelectorArg} users - A list of users that are members of + * group. + */ /** + * Error that can be raised when GroupMembersSelector is used, and the users are + * required to be members of the specified group. + * @typedef {Object} TeamGroupMembersSelectorError + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'member_not_in_group')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupMembersSetAccessTypeArg + * @property {TeamGroupSelector} group - Specify a group. + * @property {TeamUserSelectorArg} user - Identity of a user that is a member of + * group. + * @property {TeamGroupAccessType} access_type - New group access type the user + * will have. + * @property {boolean} return_members - Whether to return the list of members in + * the group. Note that the default value will cause all the group members to + * be returned in the response. This may take a long time for large groups. + */ /** + * Argument for selecting a single group, either by group_id or by external + * group ID. + * @typedef {Object} TeamGroupSelector + * @property {string} [group_id] - Available if .tag is group_id. Group ID. + * @property {string} [group_external_id] - Available if .tag is + * group_external_id. External ID of the group. + * @property {('group_id'|'group_external_id')} .tag - Tag identifying the union variant. + */ /** + * Error that can be raised when GroupSelector is used. + * @typedef {Object} TeamGroupSelectorError + * @property {('group_not_found'|'other')} .tag - Tag identifying the union variant. + */ /** + * Error that can be raised when GroupSelector is used and team groups are + * disallowed from being used. + * @typedef {Object} TeamGroupSelectorWithTeamGroupError + * @property {('group_not_found'|'other'|'system_managed_group_disallowed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupUpdateArgs + * @property {TeamGroupSelector} group - Specify a group. + * @property {boolean} return_members - Whether to return the list of members in + * the group. Note that the default value will cause all the group members to + * be returned in the response. This may take a long time for large groups. + * @property {string} [new_group_name] - Optional argument. Set group name to + * this if provided. + * @property {string} [new_group_external_id] - Optional argument. New group + * external ID. If the argument is None, the group's external_id won't be + * updated. If the argument is empty string, the group's external id will be + * cleared. + * @property {TeamCommonGroupManagementType} [new_group_management_type] - Set + * new group management type, if provided. + */ /** + * @typedef {Object} TeamGroupUpdateError + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'group_name_already_used'|'group_name_invalid'|'external_id_already_in_use')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupsGetInfoError + * @property {('group_not_on_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupsGetInfoItem + * @property {string} [id_not_found] - Available if .tag is id_not_found. An ID + * that was provided as a parameter to :route:`groups/get_info`, and did not + * match a corresponding group. The ID can be a group ID, or an external ID, + * depending on how the method was called. + * @property {TeamGroupFullInfo} [group_info] - Available if .tag is group_info. + * Info about a group. + * @property {('id_not_found'|'group_info')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupsListArg + * @property {number} limit - Number of results to return per call. + */ /** + * @typedef {Object} TeamGroupsListContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * groups. + */ /** + * @typedef {Object} TeamGroupsListContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupsListResult + * @property {Array.} groups + * @property {string} cursor - Pass the cursor into groups/list/continue to + * obtain the additional groups. + * @property {boolean} has_more - Is true if there are additional groups that + * have not been returned yet. An additional call to groups/list/continue can + * retrieve them. + */ /** + * @typedef {Object} TeamGroupsMembersListArg + * @property {TeamGroupSelector} group - The group whose members are to be + * listed. + * @property {number} limit - Number of results to return per call. + */ /** + * @typedef {Object} TeamGroupsMembersListContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * groups. + */ /** + * @typedef {Object} TeamGroupsMembersListContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamGroupsMembersListResult + * @property {Array.} members + * @property {string} cursor - Pass the cursor into groups/members/list/continue + * to obtain additional group members. + * @property {boolean} has_more - Is true if there are additional group members + * that have not been returned yet. An additional call to + * groups/members/list/continue can retrieve them. + */ /** + * @typedef {Object} TeamGroupsPollError + * @property {('invalid_async_job_id'|'internal_error'|'other'|'access_denied')} .tag - Tag identifying the union variant. + */ /** + * Argument for selecting a list of groups, either by group_ids, or external + * group IDs. + * @typedef {Object} TeamGroupsSelector + * @property {Array.} [group_ids] - Available if .tag is group_ids. List + * of group IDs. + * @property {Array.} [group_external_ids] - Available if .tag is + * group_external_ids. List of external IDs of groups. + * @property {('group_ids'|'group_external_ids')} .tag - Tag identifying the union variant. + */ /** + * The value for Feature.has_team_file_events. + * @typedef {Object} TeamHasTeamFileEventsValue + * @property {boolean} [enabled] - Available if .tag is enabled. Does this team + * have file events. + * @property {('enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * The value for Feature.has_team_selective_sync. + * @typedef {Object} TeamHasTeamSelectiveSyncValue + * @property {boolean} [has_team_selective_sync] - Available if .tag is + * has_team_selective_sync. Does this team have team selective sync enabled. + * @property {('has_team_selective_sync'|'other')} .tag - Tag identifying the union variant. + */ /** + * The value for Feature.has_team_shared_dropbox. + * @typedef {Object} TeamHasTeamSharedDropboxValue + * @property {boolean} [has_team_shared_dropbox] - Available if .tag is + * has_team_shared_dropbox. Does this team have a shared team root. + * @property {('has_team_shared_dropbox'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamIncludeMembersArg + * @property {boolean} return_members - Whether to return the list of members in + * the group. Note that the default value will cause all the group members to + * be returned in the response. This may take a long time for large groups. + */ /** + * @typedef {Object} TeamLegalHoldHeldRevisionMetadata + * @property {string} new_filename - The held revision filename. + * @property {string} original_revision_id - The id of the held revision. + * @property {string} original_file_path - The original path of the held + * revision. + * @property {Timestamp} server_modified - The last time the file was modified + * on Dropbox. + * @property {string} author_member_id - The member id of the revision's author. + * @property {TeamTeamMemberStatus} author_member_status - The member status of + * the revision's author. + * @property {string} author_email - The email address of the held revision + * author. + * @property {string} file_type - The type of the held revision's file. + * @property {number} size - The file size in bytes. + * @property {string} content_hash - A hash of the file content. This field can + * be used to verify data integrity. For more information see our Content hash + * https://www.dropbox.com/developers/reference/content-hash page. + */ /** + * @typedef {Object} TeamLegalHoldPolicy + * @property {string} id - The legal hold id. + * @property {string} name - Policy name. + * @property {TeamMembersInfo} members - Team members IDs and number of + * permanently deleted members under hold. + * @property {TeamLegalHoldStatus} status - The current state of the hold. + * @property {Timestamp} start_date - Start date of the legal hold policy. + * @property {string} [description] - A description of the legal hold policy. + * @property {Timestamp} [activation_time] - The time at which the legal hold + * was activated. + * @property {Timestamp} [end_date] - End date of the legal hold policy. + */ /** + * @typedef {Object} TeamLegalHoldStatus + * @property {('active'|'released'|'activating'|'updating'|'exporting'|'releasing'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLegalHoldsError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLegalHoldsGetPolicyArg + * @property {string} id - The legal hold Id. + */ /** + * @typedef {Object} TeamLegalHoldsGetPolicyError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other'|'legal_hold_policy_not_found')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLegalHoldsListHeldRevisionResult + * @property {Array.} entries - List of file + * entries that under the hold. + * @property {boolean} has_more - True if there are more file entries that + * haven't been returned. You can retrieve them with a call to + * /legal_holds/list_held_revisions_continue. + * @property {string} [cursor] - The cursor idicates where to continue reading + * file metadata entries for the next API call. When there are no more entries, + * the cursor will return none. Pass the cursor into + * /2/team/legal_holds/list_held_revisions/continue. + */ /** + * @typedef {Object} TeamLegalHoldsListHeldRevisionsArg + * @property {string} id - The legal hold Id. + */ /** + * @typedef {Object} TeamLegalHoldsListHeldRevisionsContinueArg + * @property {string} id - The legal hold Id. + * @property {string} [cursor] - The cursor idicates where to continue reading + * file metadata entries for the next API call. When there are no more entries, + * the cursor will return none. + */ /** + * @typedef {Object} TeamLegalHoldsListHeldRevisionsContinueError + * @property {('unknown_legal_hold_error'|'transient_error'|'reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLegalHoldsListHeldRevisionsError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other'|'transient_error'|'legal_hold_still_empty'|'inactive_legal_hold')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLegalHoldsListPoliciesArg + * @property {boolean} include_released - Whether to return holds that were + * released. + */ /** + * @typedef {Object} TeamLegalHoldsListPoliciesError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other'|'transient_error')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLegalHoldsListPoliciesResult + * @property {Array.} policies + */ /** + * @typedef {Object} TeamLegalHoldsPolicyCreateArg + * @property {string} name - Policy name. + * @property {Array.} members - List of team member IDs added to the + * hold. + * @property {string} [description] - A description of the legal hold policy. + * @property {Timestamp} [start_date] - start date of the legal hold policy. + * @property {Timestamp} [end_date] - end date of the legal hold policy. + */ /** + * @typedef {Object} TeamLegalHoldsPolicyCreateError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other'|'start_date_is_later_than_end_date'|'empty_members_list'|'invalid_members'|'number_of_users_on_hold_is_greater_than_hold_limitation'|'transient_error'|'name_must_be_unique'|'team_exceeded_legal_hold_quota'|'invalid_date')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLegalHoldsPolicyReleaseArg + * @property {string} id - The legal hold Id. + */ /** + * @typedef {Object} TeamLegalHoldsPolicyReleaseError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other'|'legal_hold_performing_another_operation'|'legal_hold_already_releasing'|'legal_hold_policy_not_found')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLegalHoldsPolicyUpdateArg + * @property {string} id - The legal hold Id. + * @property {string} [name] - Policy new name. + * @property {string} [description] - Policy new description. + * @property {Array.} [members] - List of team member IDs to apply the + * policy on. + */ /** + * @typedef {Object} TeamLegalHoldsPolicyUpdateError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other'|'transient_error'|'inactive_legal_hold'|'legal_hold_performing_another_operation'|'invalid_members'|'number_of_users_on_hold_is_greater_than_hold_limitation'|'empty_members_list'|'name_must_be_unique'|'legal_hold_policy_not_found')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamListMemberAppsArg + * @property {string} team_member_id - The team member id. + */ /** + * Error returned by linked_apps/list_member_linked_apps. + * @typedef {Object} TeamListMemberAppsError + * @property {('member_not_found'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamListMemberAppsResult + * @property {Array.} linked_api_apps - List of third party + * applications linked by this team member. + */ /** + * @typedef {Object} TeamListMemberDevicesArg + * @property {string} team_member_id - The team's member id. + * @property {boolean} include_web_sessions - Whether to list web sessions of + * the team's member. + * @property {boolean} include_desktop_clients - Whether to list linked desktop + * devices of the team's member. + * @property {boolean} include_mobile_clients - Whether to list linked mobile + * devices of the team's member. + */ /** + * @typedef {Object} TeamListMemberDevicesError + * @property {('member_not_found'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamListMemberDevicesResult + * @property {Array.} [active_web_sessions] - List of web + * sessions made by this team member. + * @property {Array.} [desktop_client_sessions] - List + * of desktop clients used by this team member. + * @property {Array.} [mobile_client_sessions] - List + * of mobile client used by this team member. + */ /** + * Arguments for linked_apps/list_members_linked_apps. + * @typedef {Object} TeamListMembersAppsArg + * @property {string} [cursor] - At the first call to the + * linked_apps/list_members_linked_apps the cursor shouldn't be passed. Then, if + * the result of the call includes a cursor, the following requests should + * include the received cursors in order to receive the next sub list of the + * team applications. + */ /** + * Error returned by linked_apps/list_members_linked_apps. + * @typedef {Object} TeamListMembersAppsError + * @property {('reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information returned by linked_apps/list_members_linked_apps. + * @typedef {Object} TeamListMembersAppsResult + * @property {Array.} apps - The linked applications of + * each member of the team. + * @property {boolean} has_more - If true, then there are more apps available. + * Pass the cursor to linked_apps/list_members_linked_apps to retrieve the rest. + * @property {string} [cursor] - Pass the cursor into + * linked_apps/list_members_linked_apps to receive the next sub list of team's + * applications. + */ /** + * @typedef {Object} TeamListMembersDevicesArg + * @property {string} [cursor] - At the first call to the + * devices/list_members_devices the cursor shouldn't be passed. Then, if the + * result of the call includes a cursor, the following requests should include + * the received cursors in order to receive the next sub list of team devices. + * @property {boolean} include_web_sessions - Whether to list web sessions of + * the team members. + * @property {boolean} include_desktop_clients - Whether to list desktop clients + * of the team members. + * @property {boolean} include_mobile_clients - Whether to list mobile clients + * of the team members. + */ /** + * @typedef {Object} TeamListMembersDevicesError + * @property {('reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamListMembersDevicesResult + * @property {Array.} devices - The devices of each member of + * the team. + * @property {boolean} has_more - If true, then there are more devices + * available. Pass the cursor to devices/list_members_devices to retrieve the + * rest. + * @property {string} [cursor] - Pass the cursor into + * devices/list_members_devices to receive the next sub list of team's devices. + */ /** + * Arguments for linked_apps/list_team_linked_apps. + * @typedef {Object} TeamListTeamAppsArg + * @property {string} [cursor] - At the first call to the + * linked_apps/list_team_linked_apps the cursor shouldn't be passed. Then, if + * the result of the call includes a cursor, the following requests should + * include the received cursors in order to receive the next sub list of the + * team applications. + */ /** + * Error returned by linked_apps/list_team_linked_apps. + * @typedef {Object} TeamListTeamAppsError + * @property {('reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information returned by linked_apps/list_team_linked_apps. + * @typedef {Object} TeamListTeamAppsResult + * @property {Array.} apps - The linked applications of + * each member of the team. + * @property {boolean} has_more - If true, then there are more apps available. + * Pass the cursor to linked_apps/list_team_linked_apps to retrieve the rest. + * @property {string} [cursor] - Pass the cursor into + * linked_apps/list_team_linked_apps to receive the next sub list of team's + * applications. + */ /** + * @typedef {Object} TeamListTeamDevicesArg + * @property {string} [cursor] - At the first call to the + * devices/list_team_devices the cursor shouldn't be passed. Then, if the result + * of the call includes a cursor, the following requests should include the + * received cursors in order to receive the next sub list of team devices. + * @property {boolean} include_web_sessions - Whether to list web sessions of + * the team members. + * @property {boolean} include_desktop_clients - Whether to list desktop clients + * of the team members. + * @property {boolean} include_mobile_clients - Whether to list mobile clients + * of the team members. + */ /** + * @typedef {Object} TeamListTeamDevicesError + * @property {('reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamListTeamDevicesResult + * @property {Array.} devices - The devices of each member of + * the team. + * @property {boolean} has_more - If true, then there are more devices + * available. Pass the cursor to devices/list_team_devices to retrieve the rest. + * @property {string} [cursor] - Pass the cursor into devices/list_team_devices + * to receive the next sub list of team's devices. + */ /** + * Specify access type a member should have when joined to a group. + * @typedef {Object} TeamMemberAccess + * @property {TeamUserSelectorArg} user - Identity of a user. + * @property {TeamGroupAccessType} access_type - Access type. + */ /** + * @typedef {Object} TeamMemberAddArg + * @property {string} member_email + * @property {string} [member_given_name] - Member's first name. + * @property {string} [member_surname] - Member's last name. + * @property {string} [member_external_id] - External ID for member. + * @property {string} [member_persistent_id] - Persistent ID for member. This + * field is only available to teams using persistent ID SAML configuration. + * @property {boolean} send_welcome_email - Whether to send a welcome email to + * the member. If send_welcome_email is false, no email invitation will be sent + * to the user. This may be useful for apps using single sign-on (SSO) flows for + * onboarding that want to handle announcements themselves. + * @property {boolean} [is_directory_restricted] - Whether a user is directory + * restricted. + * @property {TeamAdminTier} role + */ /** + * @typedef {Object} TeamMemberAddArgBase + * @property {string} member_email + * @property {string} [member_given_name] - Member's first name. + * @property {string} [member_surname] - Member's last name. + * @property {string} [member_external_id] - External ID for member. + * @property {string} [member_persistent_id] - Persistent ID for member. This + * field is only available to teams using persistent ID SAML configuration. + * @property {boolean} send_welcome_email - Whether to send a welcome email to + * the member. If send_welcome_email is false, no email invitation will be sent + * to the user. This may be useful for apps using single sign-on (SSO) flows for + * onboarding that want to handle announcements themselves. + * @property {boolean} [is_directory_restricted] - Whether a user is directory + * restricted. + */ /** + * Describes the result of attempting to add a single user to the team. + * 'success' is the only value indicating that a user was indeed added to the + * team - the other values explain the type of failure that occurred, and + * include the email of the user for which the operation has failed. + * @typedef {Object} TeamMemberAddResult + * @property {string} [team_license_limit] - Available if .tag is + * team_license_limit. Team is already full. The organization has no available + * licenses. + * @property {string} [free_team_member_limit_reached] - Available if .tag is + * free_team_member_limit_reached. Team is already full. The free team member + * limit has been reached. + * @property {string} [user_already_on_team] - Available if .tag is + * user_already_on_team. User is already on this team. The provided email + * address is associated with a user who is already a member of (including in + * recoverable state) or invited to the team. + * @property {string} [user_on_another_team] - Available if .tag is + * user_on_another_team. User is already on another team. The provided email + * address is associated with a user that is already a member or invited to + * another team. + * @property {string} [user_already_paired] - Available if .tag is + * user_already_paired. User is already paired. + * @property {string} [user_migration_failed] - Available if .tag is + * user_migration_failed. User migration has failed. + * @property {string} [duplicate_external_member_id] - Available if .tag is + * duplicate_external_member_id. A user with the given external member ID + * already exists on the team (including in recoverable state). + * @property {string} [duplicate_member_persistent_id] - Available if .tag is + * duplicate_member_persistent_id. A user with the given persistent ID already + * exists on the team (including in recoverable state). + * @property {string} [persistent_id_disabled] - Available if .tag is + * persistent_id_disabled. Persistent ID is only available to teams with + * persistent ID SAML configuration. Please contact Dropbox for more + * information. + * @property {string} [user_creation_failed] - Available if .tag is + * user_creation_failed. User creation has failed. + * @property {TeamTeamMemberInfo} [success] - Available if .tag is success. + * Describes a user that was successfully added to the team. + * @property {('team_license_limit'|'free_team_member_limit_reached'|'user_already_on_team'|'user_on_another_team'|'user_already_paired'|'user_migration_failed'|'duplicate_external_member_id'|'duplicate_member_persistent_id'|'persistent_id_disabled'|'user_creation_failed'|'success')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMemberAddResultBase + * @property {string} [team_license_limit] - Available if .tag is + * team_license_limit. Team is already full. The organization has no available + * licenses. + * @property {string} [free_team_member_limit_reached] - Available if .tag is + * free_team_member_limit_reached. Team is already full. The free team member + * limit has been reached. + * @property {string} [user_already_on_team] - Available if .tag is + * user_already_on_team. User is already on this team. The provided email + * address is associated with a user who is already a member of (including in + * recoverable state) or invited to the team. + * @property {string} [user_on_another_team] - Available if .tag is + * user_on_another_team. User is already on another team. The provided email + * address is associated with a user that is already a member or invited to + * another team. + * @property {string} [user_already_paired] - Available if .tag is + * user_already_paired. User is already paired. + * @property {string} [user_migration_failed] - Available if .tag is + * user_migration_failed. User migration has failed. + * @property {string} [duplicate_external_member_id] - Available if .tag is + * duplicate_external_member_id. A user with the given external member ID + * already exists on the team (including in recoverable state). + * @property {string} [duplicate_member_persistent_id] - Available if .tag is + * duplicate_member_persistent_id. A user with the given persistent ID already + * exists on the team (including in recoverable state). + * @property {string} [persistent_id_disabled] - Available if .tag is + * persistent_id_disabled. Persistent ID is only available to teams with + * persistent ID SAML configuration. Please contact Dropbox for more + * information. + * @property {string} [user_creation_failed] - Available if .tag is + * user_creation_failed. User creation has failed. + * @property {('team_license_limit'|'free_team_member_limit_reached'|'user_already_on_team'|'user_on_another_team'|'user_already_paired'|'user_migration_failed'|'duplicate_external_member_id'|'duplicate_member_persistent_id'|'persistent_id_disabled'|'user_creation_failed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMemberAddV2Arg + * @property {string} member_email + * @property {string} [member_given_name] - Member's first name. + * @property {string} [member_surname] - Member's last name. + * @property {string} [member_external_id] - External ID for member. + * @property {string} [member_persistent_id] - Persistent ID for member. This + * field is only available to teams using persistent ID SAML configuration. + * @property {boolean} send_welcome_email - Whether to send a welcome email to + * the member. If send_welcome_email is false, no email invitation will be sent + * to the user. This may be useful for apps using single sign-on (SSO) flows for + * onboarding that want to handle announcements themselves. + * @property {boolean} [is_directory_restricted] - Whether a user is directory + * restricted. + * @property {Array.} [role_ids] + */ /** + * Describes the result of attempting to add a single user to the team. + * 'success' is the only value indicating that a user was indeed added to the + * team - the other values explain the type of failure that occurred, and + * include the email of the user for which the operation has failed. + * @typedef {Object} TeamMemberAddV2Result + * @property {string} [team_license_limit] - Available if .tag is + * team_license_limit. Team is already full. The organization has no available + * licenses. + * @property {string} [free_team_member_limit_reached] - Available if .tag is + * free_team_member_limit_reached. Team is already full. The free team member + * limit has been reached. + * @property {string} [user_already_on_team] - Available if .tag is + * user_already_on_team. User is already on this team. The provided email + * address is associated with a user who is already a member of (including in + * recoverable state) or invited to the team. + * @property {string} [user_on_another_team] - Available if .tag is + * user_on_another_team. User is already on another team. The provided email + * address is associated with a user that is already a member or invited to + * another team. + * @property {string} [user_already_paired] - Available if .tag is + * user_already_paired. User is already paired. + * @property {string} [user_migration_failed] - Available if .tag is + * user_migration_failed. User migration has failed. + * @property {string} [duplicate_external_member_id] - Available if .tag is + * duplicate_external_member_id. A user with the given external member ID + * already exists on the team (including in recoverable state). + * @property {string} [duplicate_member_persistent_id] - Available if .tag is + * duplicate_member_persistent_id. A user with the given persistent ID already + * exists on the team (including in recoverable state). + * @property {string} [persistent_id_disabled] - Available if .tag is + * persistent_id_disabled. Persistent ID is only available to teams with + * persistent ID SAML configuration. Please contact Dropbox for more + * information. + * @property {string} [user_creation_failed] - Available if .tag is + * user_creation_failed. User creation has failed. + * @property {TeamTeamMemberInfoV2} [success] - Available if .tag is success. + * Describes a user that was successfully added to the team. + * @property {('team_license_limit'|'free_team_member_limit_reached'|'user_already_on_team'|'user_on_another_team'|'user_already_paired'|'user_migration_failed'|'duplicate_external_member_id'|'duplicate_member_persistent_id'|'persistent_id_disabled'|'user_creation_failed'|'success'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information on devices of a team's member. + * @typedef {Object} TeamMemberDevices + * @property {string} team_member_id - The member unique Id. + * @property {Array.} [web_sessions] - List of web + * sessions made by this team member. + * @property {Array.} [desktop_clients] - List of + * desktop clients by this team member. + * @property {Array.} [mobile_clients] - List of mobile + * clients by this team member. + */ /** + * Information on linked applications of a team member. + * @typedef {Object} TeamMemberLinkedApps + * @property {string} team_member_id - The member unique Id. + * @property {Array.} linked_api_apps - List of third party + * applications linked by this team member. + */ /** + * Basic member profile. + * @typedef {Object} TeamMemberProfile + * @property {string} team_member_id - ID of user as a member of a team. + * @property {string} email - Email address of user. + * @property {boolean} email_verified - Is true if the user's email is verified + * to be owned by the user. + * @property {TeamTeamMemberStatus} status - The user's status as a member of a + * specific team. + * @property {UsersName} name - Representations for a person's name. + * @property {TeamTeamMembershipType} membership_type - The user's membership + * type: full (normal team member) vs limited (does not use a license; no access + * to the team's shared quota). + * @property {string} [external_id] - External ID that a team can attach to the + * user. An application using the API may find it easier to use their own IDs + * instead of Dropbox IDs like account_id or team_member_id. + * @property {string} [account_id] - A user's account identifier. + * @property {Array.} [secondary_emails] - + * Secondary emails of a user. + * @property {Timestamp} [invited_on] - The date and time the user was invited + * to the team (contains value only when the member's status matches + * TeamMemberStatus.invited). + * @property {Timestamp} [joined_on] - The date and time the user joined as a + * member of a specific team. + * @property {Timestamp} [suspended_on] - The date and time the user was + * suspended from the team (contains value only when the member's status matches + * TeamMemberStatus.suspended). + * @property {string} [persistent_id] - Persistent ID that a team can attach to + * the user. The persistent ID is unique ID to be used for SAML authentication. + * @property {boolean} [is_directory_restricted] - Whether the user is a + * directory restricted user. + * @property {string} [profile_photo_url] - URL for the photo representing the + * user, if one is set. + */ /** + * @typedef {Object} TeamMemberSelectorError + * @property {('user_not_found'|'user_not_in_team')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersAddArg + * @property {Array.} new_members - Details of new members to + * be added to the team. + * @property {boolean} force_async - Whether to force the add to happen + * asynchronously. + */ /** + * @typedef {Object} TeamMembersAddArgBase + * @property {boolean} force_async - Whether to force the add to happen + * asynchronously. + */ /** + * @typedef {Object} TeamMembersAddJobStatus + * @property {Array.} [complete] - Available if .tag is + * complete. The asynchronous job has finished. For each member that was + * specified in the parameter :type:`MembersAddArg` that was provided to + * :route:`members/add`, a corresponding item is returned in this list. + * @property {string} [failed] - Available if .tag is failed. The asynchronous + * job returned an error. The string contains an error message. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersAddJobStatusV2Result + * @property {Array.} [complete] - Available if .tag is + * complete. The asynchronous job has finished. For each member that was + * specified in the parameter :type:`MembersAddArg` that was provided to + * :route:`members/add:2`, a corresponding item is returned in this list. + * @property {string} [failed] - Available if .tag is failed. The asynchronous + * job returned an error. The string contains an error message. + * @property {('in_progress'|'complete'|'failed'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersAddLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {Array.} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersAddLaunchV2Result + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {Array.} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersAddV2Arg + * @property {Array.} new_members - Details of new members + * to be added to the team. + * @property {boolean} force_async - Whether to force the add to happen + * asynchronously. + */ /** + * @typedef {Object} TeamMembersDataTransferArg + * @property {TeamUserSelectorArg} user - Identity of user to + * remove/suspend/have their files moved. + * @property {TeamUserSelectorArg} transfer_dest_id - Files from the deleted + * member account will be transferred to this user. + * @property {TeamUserSelectorArg} transfer_admin_id - Errors during the + * transfer process will be sent via email to this user. + */ /** + * @typedef {Object} TeamMembersDeactivateArg + * @property {TeamUserSelectorArg} user - Identity of user to + * remove/suspend/have their files moved. + * @property {boolean} wipe_data - If provided, controls if the user's data will + * be deleted on their linked devices. + */ /** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + * @typedef {Object} TeamMembersDeactivateBaseArg + * @property {TeamUserSelectorArg} user - Identity of user to + * remove/suspend/have their files moved. + */ /** + * @typedef {Object} TeamMembersDeactivateError + * @property {('user_not_found'|'user_not_in_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersDeleteProfilePhotoArg + * @property {TeamUserSelectorArg} user - Identity of the user whose profile + * photo will be deleted. + */ /** + * @typedef {Object} TeamMembersDeleteProfilePhotoError + * @property {('user_not_found'|'user_not_in_team'|'set_profile_disallowed'|'other')} .tag - Tag identifying the union variant. + */ /** + * Available TeamMemberRole for the connected team. To be used with + * members/set_admin_permissions:2. + * @typedef {Object} TeamMembersGetAvailableTeamMemberRolesResult + * @property {Array.} roles - Available roles. + */ /** + * @typedef {Object} TeamMembersGetInfoArgs + * @property {Array.} members - List of team members. + */ /** + * @typedef {Object} TeamMembersGetInfoError + * @property {'other'} .tag - Tag identifying the union variant. + */ /** + * Describes a result obtained for a single user whose id was specified in the + * parameter of members/get_info. + * @typedef {Object} TeamMembersGetInfoItem + * @property {string} [id_not_found] - Available if .tag is id_not_found. An ID + * that was provided as a parameter to :route:`members/get_info` or + * :route:`members/get_info:2`, and did not match a corresponding user. This + * might be a team_member_id, an email, or an external ID, depending on how the + * method was called. + * @property {TeamTeamMemberInfo} [member_info] - Available if .tag is + * member_info. Info about a team member. + * @property {('id_not_found'|'member_info')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersGetInfoItemBase + * @property {string} [id_not_found] - Available if .tag is id_not_found. An ID + * that was provided as a parameter to :route:`members/get_info` or + * :route:`members/get_info:2`, and did not match a corresponding user. This + * might be a team_member_id, an email, or an external ID, depending on how the + * method was called. + * @property {'id_not_found'} .tag - Tag identifying the union variant. + */ /** + * Describes a result obtained for a single user whose id was specified in the + * parameter of members/get_info:2. + * @typedef {Object} TeamMembersGetInfoItemV2 + * @property {string} [id_not_found] - Available if .tag is id_not_found. An ID + * that was provided as a parameter to :route:`members/get_info` or + * :route:`members/get_info:2`, and did not match a corresponding user. This + * might be a team_member_id, an email, or an external ID, depending on how the + * method was called. + * @property {TeamTeamMemberInfoV2} [member_info] - Available if .tag is + * member_info. Info about a team member. + * @property {('id_not_found'|'member_info'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersGetInfoV2Arg + * @property {Array.} members - List of team members. + */ /** + * @typedef {Object} TeamMembersGetInfoV2Result + * @property {Array.} members_info - List of team + * members info. + */ /** + * @typedef {Object} TeamMembersInfo + * @property {Array.} team_member_ids - Team member IDs of the users + * under this hold. + * @property {number} permanently_deleted_users - The number of permanently + * deleted users that were under this hold. + */ /** + * @typedef {Object} TeamMembersListArg + * @property {number} limit - Number of results to return per call. + * @property {boolean} include_removed - Whether to return removed members. + */ /** + * @typedef {Object} TeamMembersListContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * members. + */ /** + * @typedef {Object} TeamMembersListContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersListError + * @property {'other'} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersListResult + * @property {Array.} members - List of team members. + * @property {string} cursor - Pass the cursor into members/list/continue to + * obtain the additional members. + * @property {boolean} has_more - Is true if there are additional team members + * that have not been returned yet. An additional call to members/list/continue + * can retrieve them. + */ /** + * @typedef {Object} TeamMembersListV2Result + * @property {Array.} members - List of team members. + * @property {string} cursor - Pass the cursor into members/list/continue:2 to + * obtain the additional members. + * @property {boolean} has_more - Is true if there are additional team members + * that have not been returned yet. An additional call to + * members/list/continue:2 can retrieve them. + */ /** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + * @typedef {Object} TeamMembersRecoverArg + * @property {TeamUserSelectorArg} user - Identity of user to recover. + */ /** + * @typedef {Object} TeamMembersRecoverError + * @property {('user_not_found'|'user_unrecoverable'|'user_not_in_team'|'team_license_limit'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersRemoveArg + * @property {TeamUserSelectorArg} user - Identity of user to + * remove/suspend/have their files moved. + * @property {boolean} wipe_data - If provided, controls if the user's data will + * be deleted on their linked devices. + * @property {TeamUserSelectorArg} [transfer_dest_id] - If provided, files from + * the deleted member account will be transferred to this user. + * @property {TeamUserSelectorArg} [transfer_admin_id] - If provided, errors + * during the transfer process will be sent via email to this user. If the + * transfer_dest_id argument was provided, then this argument must be provided + * as well. + * @property {boolean} keep_account - Downgrade the member to a Basic account. + * The user will retain the email address associated with their Dropbox account + * and data in their account that is not restricted to team members. In order to + * keep the account the argument wipe_data should be set to false. + * @property {boolean} retain_team_shares - If provided, allows removed users to + * keep access to Dropbox folders (not Dropbox Paper folders) already explicitly + * shared with them (not via a group) when they are downgraded to a Basic + * account. Users will not retain access to folders that do not allow external + * sharing. In order to keep the sharing relationships, the arguments wipe_data + * should be set to false and keep_account should be set to true. + */ /** + * @typedef {Object} TeamMembersRemoveError + * @property {('user_not_found'|'user_not_in_team'|'other'|'removed_and_transfer_dest_should_differ'|'removed_and_transfer_admin_should_differ'|'transfer_dest_user_not_found'|'transfer_dest_user_not_in_team'|'transfer_admin_user_not_in_team'|'transfer_admin_user_not_found'|'unspecified_transfer_admin_id'|'transfer_admin_is_not_admin'|'recipient_not_verified'|'remove_last_admin'|'cannot_keep_account_and_transfer'|'cannot_keep_account_and_delete_data'|'email_address_too_long_to_be_disabled'|'cannot_keep_invited_user_account'|'cannot_retain_shares_when_data_wiped'|'cannot_retain_shares_when_no_account_kept'|'cannot_retain_shares_when_team_external_sharing_off'|'cannot_keep_account'|'cannot_keep_account_under_legal_hold'|'cannot_keep_account_required_to_sign_tos')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersSendWelcomeError + * @property {('user_not_found'|'user_not_in_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + * @typedef {Object} TeamMembersSetPermissions2Arg + * @property {TeamUserSelectorArg} user - Identity of user whose role will be + * set. + * @property {Array.} [new_roles] - The new roles for the member. Send + * empty list to make user member only. For now, only up to one role is allowed. + */ /** + * @typedef {Object} TeamMembersSetPermissions2Error + * @property {('user_not_found'|'last_admin'|'user_not_in_team'|'cannot_set_permissions'|'role_not_found'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersSetPermissions2Result + * @property {string} team_member_id - The member ID of the user to which the + * change was applied. + * @property {Array.} [roles] - The roles after the change. + * Empty in case the user become a non-admin. + */ /** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + * @typedef {Object} TeamMembersSetPermissionsArg + * @property {TeamUserSelectorArg} user - Identity of user whose role will be + * set. + * @property {TeamAdminTier} new_role - The new role of the member. + */ /** + * @typedef {Object} TeamMembersSetPermissionsError + * @property {('user_not_found'|'last_admin'|'user_not_in_team'|'cannot_set_permissions'|'team_license_limit'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersSetPermissionsResult + * @property {string} team_member_id - The member ID of the user to which the + * change was applied. + * @property {TeamAdminTier} role - The role after the change. + */ /** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. At least one of new_email, new_external_id, + * new_given_name, and/or new_surname must be provided. + * @typedef {Object} TeamMembersSetProfileArg + * @property {TeamUserSelectorArg} user - Identity of user whose profile will be + * set. + * @property {string} [new_email] - New email for member. + * @property {string} [new_external_id] - New external ID for member. + * @property {string} [new_given_name] - New given name for member. + * @property {string} [new_surname] - New surname for member. + * @property {string} [new_persistent_id] - New persistent ID. This field only + * available to teams using persistent ID SAML configuration. + * @property {boolean} [new_is_directory_restricted] - New value for whether the + * user is a directory restricted user. + */ /** + * @typedef {Object} TeamMembersSetProfileError + * @property {('user_not_found'|'user_not_in_team'|'external_id_and_new_external_id_unsafe'|'no_new_data_specified'|'email_reserved_for_other_user'|'external_id_used_by_other_user'|'set_profile_disallowed'|'param_cannot_be_empty'|'persistent_id_disabled'|'persistent_id_used_by_other_user'|'directory_restricted_off'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersSetProfilePhotoArg + * @property {TeamUserSelectorArg} user - Identity of the user whose profile + * photo will be set. + * @property {AccountPhotoSourceArg} photo - Image to set as the member's new + * profile photo. + */ /** + * @typedef {Object} TeamMembersSetProfilePhotoError + * @property {AccountSetProfilePhotoError} [photo_error] - Available if .tag is + * photo_error. + * @property {('user_not_found'|'user_not_in_team'|'set_profile_disallowed'|'photo_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersSuspendError + * @property {('user_not_found'|'user_not_in_team'|'other'|'suspend_inactive_user'|'suspend_last_admin'|'team_license_limit')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersTransferFilesError + * @property {('user_not_found'|'user_not_in_team'|'other'|'removed_and_transfer_dest_should_differ'|'removed_and_transfer_admin_should_differ'|'transfer_dest_user_not_found'|'transfer_dest_user_not_in_team'|'transfer_admin_user_not_in_team'|'transfer_admin_user_not_found'|'unspecified_transfer_admin_id'|'transfer_admin_is_not_admin'|'recipient_not_verified')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMembersTransferFormerMembersFilesError + * @property {('user_not_found'|'user_not_in_team'|'other'|'removed_and_transfer_dest_should_differ'|'removed_and_transfer_admin_should_differ'|'transfer_dest_user_not_found'|'transfer_dest_user_not_in_team'|'transfer_admin_user_not_in_team'|'transfer_admin_user_not_found'|'unspecified_transfer_admin_id'|'transfer_admin_is_not_admin'|'recipient_not_verified'|'user_data_is_being_transferred'|'user_not_removed'|'user_data_cannot_be_transferred'|'user_data_already_transferred')} .tag - Tag identifying the union variant. + */ /** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + * @typedef {Object} TeamMembersUnsuspendArg + * @property {TeamUserSelectorArg} user - Identity of user to unsuspend. + */ /** + * @typedef {Object} TeamMembersUnsuspendError + * @property {('user_not_found'|'user_not_in_team'|'other'|'unsuspend_non_suspended_member'|'team_license_limit')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamMobileClientPlatform + * @property {('iphone'|'ipad'|'android'|'windows_phone'|'blackberry'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information about linked Dropbox mobile client sessions. + * @typedef {Object} TeamMobileClientSession + * @property {string} session_id - The session id. + * @property {string} device_name - The device name. + * @property {TeamMobileClientPlatform} client_type - The mobile application + * type. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {string} [country] - The country from which the last activity from + * this session was made. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + * @property {string} [client_version] - The dropbox client version. + * @property {string} [os_version] - The hosting OS version. + * @property {string} [last_carrier] - last carrier used by the device. + */ /** + * Properties of a namespace. + * @typedef {Object} TeamNamespaceMetadata + * @property {string} name - The name of this namespace. + * @property {string} namespace_id - The ID of this namespace. + * @property {TeamNamespaceType} namespace_type - The type of this namespace. + * @property {string} [team_member_id] - If this is a team member or app folder, + * the ID of the owning team member. Otherwise, this field is not present. + */ /** + * @typedef {Object} TeamNamespaceType + * @property {('app_folder'|'shared_folder'|'team_folder'|'team_member_folder'|'other')} .tag - Tag identifying the union variant. + */ /** + * User result for setting member custom quota. + * @typedef {Object} TeamRemoveCustomQuotaResult + * @property {TeamUserSelectorArg} [success] - Available if .tag is success. + * Successfully removed user. + * @property {TeamUserSelectorArg} [invalid_user] - Available if .tag is + * invalid_user. Invalid user (not in team). + * @property {('success'|'invalid_user'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamRemovedStatus + * @property {boolean} is_recoverable - True if the removed team member is + * recoverable. + * @property {boolean} is_disconnected - True if the team member's account was + * converted to individual account. + */ /** + * Result of trying to resend verification email to a secondary email address. + * 'success' is the only value indicating that a verification email was + * successfully sent. The other values explain the type of error that occurred, + * and include the email for which the error occurred. + * @typedef {Object} TeamResendSecondaryEmailResult + * @property {string} [success] - Available if .tag is success. A verification + * email was successfully sent to the secondary email address. + * @property {string} [not_pending] - Available if .tag is not_pending. This + * secondary email address is not pending for the user. + * @property {string} [rate_limited] - Available if .tag is rate_limited. Too + * many emails are being sent to this email address. Please try again later. + * @property {('success'|'not_pending'|'rate_limited'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamResendVerificationEmailArg + * @property {Array.} emails_to_resend - List of + * users and secondary emails to resend verification emails to. + */ /** + * List of users and resend results. + * @typedef {Object} TeamResendVerificationEmailResult + * @property {Array.} results + */ /** + * @typedef {Object} TeamRevokeDesktopClientArg + * @property {string} session_id - The session id. + * @property {string} team_member_id - The unique id of the member owning the + * device. + * @property {boolean} delete_on_unlink - Whether to delete all files of the + * account (this is possible only if supported by the desktop client and will + * be made the next time the client access the account). + */ /** + * @typedef {Object} TeamRevokeDeviceSessionArg + * @property {TeamDeviceSessionArg} [web_session] - Available if .tag is + * web_session. End an active session. + * @property {TeamRevokeDesktopClientArg} [desktop_client] - Available if .tag + * is desktop_client. Unlink a linked desktop device. + * @property {TeamDeviceSessionArg} [mobile_client] - Available if .tag is + * mobile_client. Unlink a linked mobile device. + * @property {('web_session'|'desktop_client'|'mobile_client')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamRevokeDeviceSessionBatchArg + * @property {Array.} revoke_devices + */ /** + * @typedef {Object} TeamRevokeDeviceSessionBatchError + * @property {'other'} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamRevokeDeviceSessionBatchResult + * @property {Array.} revoke_devices_status + */ /** + * @typedef {Object} TeamRevokeDeviceSessionError + * @property {('device_session_not_found'|'member_not_found'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamRevokeDeviceSessionStatus + * @property {boolean} success - Result of the revoking request. + * @property {TeamRevokeDeviceSessionError} [error_type] - The error cause in + * case of a failure. + */ /** + * @typedef {Object} TeamRevokeLinkedApiAppArg + * @property {string} app_id - The application's unique id. + * @property {string} team_member_id - The unique id of the member owning the + * device. + * @property {boolean} keep_app_folder - This flag is not longer supported, the + * application dedicated folder (in case the application uses one) will be + * kept. + */ /** + * @typedef {Object} TeamRevokeLinkedApiAppBatchArg + * @property {Array.} revoke_linked_app + */ /** + * Error returned by linked_apps/revoke_linked_app_batch. + * @typedef {Object} TeamRevokeLinkedAppBatchError + * @property {'other'} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamRevokeLinkedAppBatchResult + * @property {Array.} revoke_linked_app_status + */ /** + * Error returned by linked_apps/revoke_linked_app. + * @typedef {Object} TeamRevokeLinkedAppError + * @property {('app_not_found'|'member_not_found'|'app_folder_removal_not_supported'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamRevokeLinkedAppStatus + * @property {boolean} success - Result of the revoking request. + * @property {TeamRevokeLinkedAppError} [error_type] - The error cause in case + * of a failure. + */ /** + * @typedef {Object} TeamSetCustomQuotaArg + * @property {Array.} users_and_quotas - List of users + * and their custom quotas. + */ /** + * Error returned when setting member custom quota. + * @typedef {Object} TeamSetCustomQuotaError + * @property {('too_many_users'|'other'|'some_users_are_excluded')} .tag - Tag identifying the union variant. + */ /** + * Structure representing Approve List entries. Domain and emails are supported. + * At least one entry of any supported type is required. + * @typedef {Object} TeamSharingAllowlistAddArgs + * @property {Array.} [domains] - List of domains represented by valid + * string representation (RFC-1034/5). + * @property {Array.} [emails] - List of emails represented by valid + * string representation (RFC-5322/822). + */ /** + * @typedef {Object} TeamSharingAllowlistAddError + * @property {string} [malformed_entry] - Available if .tag is malformed_entry. + * One of provided values is not valid. + * @property {string} [entries_already_exist] - Available if .tag is + * entries_already_exist. Entries already exists. + * @property {('malformed_entry'|'no_entries_provided'|'too_many_entries_provided'|'team_limit_reached'|'unknown_error'|'entries_already_exist'|'other')} .tag - Tag identifying the union variant. + */ /** + * This struct is empty. The comment here is intentionally emitted to avoid + * indentation issues with Stone. + * @typedef {Object} TeamSharingAllowlistAddResponse + */ /** + * @typedef {Object} TeamSharingAllowlistListArg + * @property {number} limit - The number of entries to fetch at one time. + */ /** + * @typedef {Object} TeamSharingAllowlistListContinueArg + * @property {string} cursor - The cursor returned from a previous call to + * sharing_allowlist/list or sharing_allowlist/list/continue. + */ /** + * @typedef {Object} TeamSharingAllowlistListContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * This struct is empty. The comment here is intentionally emitted to avoid + * indentation issues with Stone. + * @typedef {Object} TeamSharingAllowlistListError + */ /** + * @typedef {Object} TeamSharingAllowlistListResponse + * @property {Array.} domains - List of domains represented by valid + * string representation (RFC-1034/5). + * @property {Array.} emails - List of emails represented by valid + * string representation (RFC-5322/822). + * @property {string} cursor - If this is nonempty, there are more entries that + * can be fetched with sharing_allowlist/list/continue. + * @property {boolean} has_more - if true indicates that more entries can be + * fetched with sharing_allowlist/list/continue. + */ /** + * @typedef {Object} TeamSharingAllowlistRemoveArgs + * @property {Array.} [domains] - List of domains represented by valid + * string representation (RFC-1034/5). + * @property {Array.} [emails] - List of emails represented by valid + * string representation (RFC-5322/822). + */ /** + * @typedef {Object} TeamSharingAllowlistRemoveError + * @property {string} [malformed_entry] - Available if .tag is malformed_entry. + * One of provided values is not valid. + * @property {string} [entries_do_not_exist] - Available if .tag is + * entries_do_not_exist. One or more provided values do not exist. + * @property {('malformed_entry'|'entries_do_not_exist'|'no_entries_provided'|'too_many_entries_provided'|'unknown_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * This struct is empty. The comment here is intentionally emitted to avoid + * indentation issues with Stone. + * @typedef {Object} TeamSharingAllowlistRemoveResponse + */ /** + * Describes the number of users in a specific storage bucket. + * @typedef {Object} TeamStorageBucket + * @property {string} bucket - The name of the storage bucket. For example, '1G' + * is a bucket of users with storage size up to 1 Giga. + * @property {number} users - The number of people whose storage is in the range + * of this storage bucket. + */ /** + * @typedef {Object} TeamTeamFolderAccessError + * @property {('invalid_team_folder_id'|'no_access'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderActivateError + * @property {TeamTeamFolderAccessError} [access_error] - Available if .tag is + * access_error. + * @property {TeamTeamFolderInvalidStatusError} [status_error] - Available if + * .tag is status_error. + * @property {TeamTeamFolderTeamSharedDropboxError} [team_shared_dropbox_error] + * - Available if .tag is team_shared_dropbox_error. + * @property {('access_error'|'status_error'|'team_shared_dropbox_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderArchiveArg + * @property {string} team_folder_id - The ID of the team folder. + * @property {boolean} force_async_off - Whether to force the archive to happen + * synchronously. + */ /** + * @typedef {Object} TeamTeamFolderArchiveError + * @property {TeamTeamFolderAccessError} [access_error] - Available if .tag is + * access_error. + * @property {TeamTeamFolderInvalidStatusError} [status_error] - Available if + * .tag is status_error. + * @property {TeamTeamFolderTeamSharedDropboxError} [team_shared_dropbox_error] + * - Available if .tag is team_shared_dropbox_error. + * @property {('access_error'|'status_error'|'team_shared_dropbox_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderArchiveJobStatus + * @property {TeamTeamFolderMetadata} [complete] - Available if .tag is + * complete. The archive job has finished. The value is the metadata for the + * resulting team folder. + * @property {TeamTeamFolderArchiveError} [failed] - Available if .tag is + * failed. Error occurred while performing an asynchronous job from + * :route:`team_folder/archive`. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderArchiveLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {TeamTeamFolderMetadata} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderCreateArg + * @property {string} name - Name for the new team folder. + * @property {FilesSyncSettingArg} [sync_setting] - The sync setting to apply to + * this team folder. Only permitted if the team has team selective sync enabled. + */ /** + * @typedef {Object} TeamTeamFolderCreateError + * @property {FilesSyncSettingsError} [sync_settings_error] - Available if .tag + * is sync_settings_error. An error occurred setting the sync settings. + * @property {('invalid_folder_name'|'folder_name_already_used'|'folder_name_reserved'|'sync_settings_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderGetInfoItem + * @property {string} [id_not_found] - Available if .tag is id_not_found. An ID + * that was provided as a parameter to :route:`team_folder/get_info` did not + * match any of the team's team folders. + * @property {TeamTeamFolderMetadata} [team_folder_metadata] - Available if .tag + * is team_folder_metadata. Properties of a team folder. + * @property {('id_not_found'|'team_folder_metadata')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderIdArg + * @property {string} team_folder_id - The ID of the team folder. + */ /** + * @typedef {Object} TeamTeamFolderIdListArg + * @property {Array.} team_folder_ids - The list of team folder IDs. + */ /** + * @typedef {Object} TeamTeamFolderInvalidStatusError + * @property {('active'|'archived'|'archive_in_progress'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderListArg + * @property {number} limit - The maximum number of results to return per + * request. + */ /** + * @typedef {Object} TeamTeamFolderListContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * team folders. + */ /** + * @typedef {Object} TeamTeamFolderListContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderListError + * @property {TeamTeamFolderAccessError} access_error + */ /** + * Result for team_folder/list and team_folder/list/continue. + * @typedef {Object} TeamTeamFolderListResult + * @property {Array.} team_folders - List of all team + * folders in the authenticated team. + * @property {string} cursor - Pass the cursor into team_folder/list/continue to + * obtain additional team folders. + * @property {boolean} has_more - Is true if there are additional team folders + * that have not been returned yet. An additional call to + * team_folder/list/continue can retrieve them. + */ /** + * Properties of a team folder. + * @typedef {Object} TeamTeamFolderMetadata + * @property {string} team_folder_id - The ID of the team folder. + * @property {string} name - The name of the team folder. + * @property {TeamTeamFolderStatus} status - The status of the team folder. + * @property {boolean} is_team_shared_dropbox - True if this team folder is a + * shared team root. + * @property {FilesSyncSetting} sync_setting - The sync setting applied to this + * team folder. + * @property {Array.} content_sync_settings - Sync + * settings applied to contents of this team folder. + */ /** + * @typedef {Object} TeamTeamFolderPermanentlyDeleteError + * @property {TeamTeamFolderAccessError} [access_error] - Available if .tag is + * access_error. + * @property {TeamTeamFolderInvalidStatusError} [status_error] - Available if + * .tag is status_error. + * @property {TeamTeamFolderTeamSharedDropboxError} [team_shared_dropbox_error] + * - Available if .tag is team_shared_dropbox_error. + * @property {('access_error'|'status_error'|'team_shared_dropbox_error'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderRenameArg + * @property {string} team_folder_id - The ID of the team folder. + * @property {string} name - New team folder name. + */ /** + * @typedef {Object} TeamTeamFolderRenameError + * @property {TeamTeamFolderAccessError} [access_error] - Available if .tag is + * access_error. + * @property {TeamTeamFolderInvalidStatusError} [status_error] - Available if + * .tag is status_error. + * @property {TeamTeamFolderTeamSharedDropboxError} [team_shared_dropbox_error] + * - Available if .tag is team_shared_dropbox_error. + * @property {('access_error'|'status_error'|'team_shared_dropbox_error'|'other'|'invalid_folder_name'|'folder_name_already_used'|'folder_name_reserved')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderStatus + * @property {('active'|'archived'|'archive_in_progress'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderTeamSharedDropboxError + * @property {('disallowed'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamFolderUpdateSyncSettingsArg + * @property {string} team_folder_id - The ID of the team folder. + * @property {FilesSyncSettingArg} [sync_setting] - Sync setting to apply to the + * team folder itself. Only meaningful if the team folder is not a shared team + * root. + * @property {Array.} [content_sync_settings] - Sync + * settings to apply to contents of this team folder. + */ /** + * @typedef {Object} TeamTeamFolderUpdateSyncSettingsError + * @property {TeamTeamFolderAccessError} [access_error] - Available if .tag is + * access_error. + * @property {TeamTeamFolderInvalidStatusError} [status_error] - Available if + * .tag is status_error. + * @property {TeamTeamFolderTeamSharedDropboxError} [team_shared_dropbox_error] + * - Available if .tag is team_shared_dropbox_error. + * @property {FilesSyncSettingsError} [sync_settings_error] - Available if .tag + * is sync_settings_error. An error occurred setting the sync settings. + * @property {('access_error'|'status_error'|'team_shared_dropbox_error'|'other'|'sync_settings_error')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamGetInfoResult + * @property {string} name - The name of the team. + * @property {string} team_id - The ID of the team. + * @property {number} num_licensed_users - The number of licenses available to + * the team. + * @property {number} num_provisioned_users - The number of accounts that have + * been invited or are already active members of the team. + * @property {number} num_used_licenses - The number of licenses used on the + * team. + * @property {TeamPoliciesTeamMemberPolicies} policies + */ /** + * Information about a team member. + * @typedef {Object} TeamTeamMemberInfo + * @property {TeamTeamMemberProfile} profile - Profile of a user as a member of + * a team. + * @property {TeamAdminTier} role - The user's role in the team. + */ /** + * Information about a team member. + * @typedef {Object} TeamTeamMemberInfoV2 + * @property {TeamTeamMemberProfile} profile - Profile of a user as a member of + * a team. + * @property {Array.} [roles] - The user's roles in the + * team. + */ /** + * Information about a team member, after the change, like at + * members/set_profile:2. + * @typedef {Object} TeamTeamMemberInfoV2Result + * @property {TeamTeamMemberInfoV2} member_info - Member info, after the change. + */ /** + * Profile of a user as a member of a team. + * @typedef {Object} TeamTeamMemberProfile + * @property {string} team_member_id - ID of user as a member of a team. + * @property {string} email - Email address of user. + * @property {boolean} email_verified - Is true if the user's email is verified + * to be owned by the user. + * @property {TeamTeamMemberStatus} status - The user's status as a member of a + * specific team. + * @property {UsersName} name - Representations for a person's name. + * @property {TeamTeamMembershipType} membership_type - The user's membership + * type: full (normal team member) vs limited (does not use a license; no access + * to the team's shared quota). + * @property {Array.} groups - List of group IDs of groups that the user + * belongs to. + * @property {string} member_folder_id - The namespace id of the user's root + * folder. + * @property {string} [external_id] - External ID that a team can attach to the + * user. An application using the API may find it easier to use their own IDs + * instead of Dropbox IDs like account_id or team_member_id. + * @property {string} [account_id] - A user's account identifier. + * @property {Array.} [secondary_emails] - + * Secondary emails of a user. + * @property {Timestamp} [invited_on] - The date and time the user was invited + * to the team (contains value only when the member's status matches + * TeamMemberStatus.invited). + * @property {Timestamp} [joined_on] - The date and time the user joined as a + * member of a specific team. + * @property {Timestamp} [suspended_on] - The date and time the user was + * suspended from the team (contains value only when the member's status matches + * TeamMemberStatus.suspended). + * @property {string} [persistent_id] - Persistent ID that a team can attach to + * the user. The persistent ID is unique ID to be used for SAML authentication. + * @property {boolean} [is_directory_restricted] - Whether the user is a + * directory restricted user. + * @property {string} [profile_photo_url] - URL for the photo representing the + * user, if one is set. + */ /** + * A role which can be attached to a team member. This replaces AdminTier; each + * AdminTier corresponds to a new TeamMemberRole with a matching name. + * @typedef {Object} TeamTeamMemberRole + * @property {string} role_id - A string containing encoded role ID. For roles + * defined by Dropbox, this is the same across all teams. + * @property {string} name - The role display name. + * @property {string} description - Role description. Describes which + * permissions come with this role. + */ /** + * The user's status as a member of a specific team. + * @typedef {Object} TeamTeamMemberStatus + * @property {TeamRemovedStatus} [removed] - Available if .tag is removed. User + * is no longer a member of the team. Removed users are only listed when + * include_removed is true in members/list. + * @property {('active'|'invited'|'suspended'|'removed')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamMembershipType + * @property {('full'|'limited')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamNamespacesListArg + * @property {number} limit - Specifying a value here has no effect. + */ /** + * @typedef {Object} TeamTeamNamespacesListContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * team-accessible namespaces. + */ /** + * @typedef {Object} TeamTeamNamespacesListContinueError + * @property {('invalid_arg'|'other'|'invalid_cursor')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamTeamNamespacesListError + * @property {('invalid_arg'|'other')} .tag - Tag identifying the union variant. + */ /** + * Result for namespaces/list. + * @typedef {Object} TeamTeamNamespacesListResult + * @property {Array.} namespaces - List of all namespaces + * the team can access. + * @property {string} cursor - Pass the cursor into namespaces/list/continue to + * obtain additional namespaces. Note that duplicate namespaces may be returned. + * @property {boolean} has_more - Is true if there are additional namespaces + * that have not been returned yet. + */ /** + * @typedef {Object} TeamTeamReportFailureReason + * @property {('temporary_error'|'many_reports_at_once'|'too_much_data'|'other')} .tag - Tag identifying the union variant. + */ /** + * Error returned by token/get_authenticated_admin. + * @typedef {Object} TeamTokenGetAuthenticatedAdminError + * @property {('mapping_not_found'|'admin_not_active'|'other')} .tag - Tag identifying the union variant. + */ /** + * Results for token/get_authenticated_admin. + * @typedef {Object} TeamTokenGetAuthenticatedAdminResult + * @property {TeamTeamMemberProfile} admin_profile - The admin who authorized + * the token. + */ /** + * The value for Feature.upload_api_rate_limit. + * @typedef {Object} TeamUploadApiRateLimitValue + * @property {number} [limit] - Available if .tag is limit. The number of upload + * API calls allowed per month. + * @property {('unlimited'|'limit'|'other')} .tag - Tag identifying the union variant. + */ /** + * Result of trying to add secondary emails to a user. 'success' is the only + * value indicating that a user was successfully retrieved for adding secondary + * emails. The other values explain the type of error that occurred, and include + * the user for which the error occurred. + * @typedef {Object} TeamUserAddResult + * @property {TeamUserSecondaryEmailsResult} [success] - Available if .tag is + * success. Describes a user and the results for each attempt to add a secondary + * email. + * @property {TeamUserSelectorArg} [invalid_user] - Available if .tag is + * invalid_user. Specified user is not a valid target for adding secondary + * emails. + * @property {TeamUserSelectorArg} [unverified] - Available if .tag is + * unverified. Secondary emails can only be added to verified users. + * @property {TeamUserSelectorArg} [placeholder_user] - Available if .tag is + * placeholder_user. Secondary emails cannot be added to placeholder users. + * @property {('success'|'invalid_user'|'unverified'|'placeholder_user'|'other')} .tag - Tag identifying the union variant. + */ /** + * User and their required custom quota in GB (1 TB = 1024 GB). + * @typedef {Object} TeamUserCustomQuotaArg + * @property {TeamUserSelectorArg} user + * @property {number} quota_gb + */ /** + * User and their custom quota in GB (1 TB = 1024 GB). No quota returns if the + * user has no custom quota set. + * @typedef {Object} TeamUserCustomQuotaResult + * @property {TeamUserSelectorArg} user + * @property {number} [quota_gb] + */ /** + * @typedef {Object} TeamUserDeleteEmailsResult + * @property {TeamUserSelectorArg} user + * @property {Array.} results + */ /** + * Result of trying to delete a user's secondary emails. 'success' is the only + * value indicating that a user was successfully retrieved for deleting + * secondary emails. The other values explain the type of error that occurred, + * and include the user for which the error occurred. + * @typedef {Object} TeamUserDeleteResult + * @property {TeamUserDeleteEmailsResult} [success] - Available if .tag is + * success. Describes a user and the results for each attempt to delete a + * secondary email. + * @property {TeamUserSelectorArg} [invalid_user] - Available if .tag is + * invalid_user. Specified user is not a valid target for deleting secondary + * emails. + * @property {('success'|'invalid_user'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamUserResendEmailsResult + * @property {TeamUserSelectorArg} user + * @property {Array.} results + */ /** + * Result of trying to resend verification emails to a user. 'success' is the + * only value indicating that a user was successfully retrieved for sending + * verification emails. The other values explain the type of error that + * occurred, and include the user for which the error occurred. + * @typedef {Object} TeamUserResendResult + * @property {TeamUserResendEmailsResult} [success] - Available if .tag is + * success. Describes a user and the results for each attempt to resend + * verification emails. + * @property {TeamUserSelectorArg} [invalid_user] - Available if .tag is + * invalid_user. Specified user is not a valid target for resending verification + * emails. + * @property {('success'|'invalid_user'|'other')} .tag - Tag identifying the union variant. + */ /** + * User and a list of secondary emails. + * @typedef {Object} TeamUserSecondaryEmailsArg + * @property {TeamUserSelectorArg} user + * @property {Array.} secondary_emails + */ /** + * @typedef {Object} TeamUserSecondaryEmailsResult + * @property {TeamUserSelectorArg} user + * @property {Array.} results + */ /** + * Argument for selecting a single user, either by team_member_id, external_id + * or email. + * @typedef {Object} TeamUserSelectorArg + * @property {string} [team_member_id] - Available if .tag is team_member_id. + * @property {string} [external_id] - Available if .tag is external_id. + * @property {string} [email] - Available if .tag is email. + * @property {('team_member_id'|'external_id'|'email')} .tag - Tag identifying the union variant. + */ /** + * Error that can be returned whenever a struct derived from UserSelectorArg is + * used. + * @typedef {Object} TeamUserSelectorError + * @property {'user_not_found'} .tag - Tag identifying the union variant. + */ /** + * Argument for selecting a list of users, either by team_member_ids, + * external_ids or emails. + * @typedef {Object} TeamUsersSelectorArg + * @property {Array.} [team_member_ids] - Available if .tag is + * team_member_ids. List of member IDs. + * @property {Array.} [external_ids] - Available if .tag is + * external_ids. List of external user IDs. + * @property {Array.} [emails] - Available if .tag is emails. List of + * email addresses. + * @property {('team_member_ids'|'external_ids'|'emails')} .tag - Tag identifying the union variant. + */ /** + * The group type determines how a group is managed. + * @typedef {Object} TeamCommonGroupManagementType + * @property {('user_managed'|'company_managed'|'system_managed'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information about a group. + * @typedef {Object} TeamCommonGroupSummary + * @property {string} group_name + * @property {string} group_id + * @property {TeamCommonGroupManagementType} group_management_type - Who is + * allowed to manage the group. + * @property {string} [group_external_id] - External ID of group. This is an + * arbitrary ID that an admin can attach to a group. + * @property {number} [member_count] - The number of members in the group. + */ /** + * The group type determines how a group is created and managed. + * @typedef {Object} TeamCommonGroupType + * @property {('team'|'user_managed'|'other')} .tag - Tag identifying the union variant. + */ /** + * The type of the space limit imposed on a team member. + * @typedef {Object} TeamCommonMemberSpaceLimitType + * @property {('off'|'alert_only'|'stop_sync'|'other')} .tag - Tag identifying the union variant. + */ /** + * Time range. + * @typedef {Object} TeamCommonTimeRange + * @property {Timestamp} [start_time] - Optional starting time (inclusive). + * @property {Timestamp} [end_time] - Optional ending time (exclusive). + */ /** + * Indicates the method in which the action was performed. + * @typedef {Object} TeamLogAccessMethodLogInfo + * @property {TeamLogWebSessionLogInfo} [admin_console] - Available if .tag is + * admin_console. Admin console session details. + * @property {TeamLogApiSessionLogInfo} [api] - Available if .tag is api. Api + * session details. + * @property {TeamLogWebSessionLogInfo} [content_manager] - Available if .tag is + * content_manager. Content manager session details. + * @property + * {(TeamLogWebSessionLogInfo|TeamLogDesktopSessionLogInfo|TeamLogMobileSessionLogInfo|TeamLogSessionLogInfo)} + * [end_user] - Available if .tag is end_user. End user session details. + * @property {TeamLogWebSessionLogInfo} [enterprise_console] - Available if .tag + * is enterprise_console. Enterprise console session details. + * @property {TeamLogWebSessionLogInfo} [sign_in_as] - Available if .tag is + * sign_in_as. Sign in as session details. + * @property {('admin_console'|'api'|'content_manager'|'end_user'|'enterprise_console'|'sign_in_as'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogAccountCaptureAvailability + * @property {('available'|'unavailable'|'other')} .tag - Tag identifying the union variant. + */ /** + * Granted/revoked option to enable account capture on team domains. + * @typedef {Object} TeamLogAccountCaptureChangeAvailabilityDetails + * @property {TeamLogAccountCaptureAvailability} new_value - New account capture + * availabilty value. + * @property {TeamLogAccountCaptureAvailability} [previous_value] - Previous + * account capture availabilty value. Might be missing due to historical data + * gap. + */ /** + * @typedef {Object} TeamLogAccountCaptureChangeAvailabilityType + * @property {string} description + */ /** + * Changed account capture setting on team domain. + * @typedef {Object} TeamLogAccountCaptureChangePolicyDetails + * @property {TeamLogAccountCapturePolicy} new_value - New account capture + * policy. + * @property {TeamLogAccountCapturePolicy} [previous_value] - Previous account + * capture policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogAccountCaptureChangePolicyType + * @property {string} description + */ /** + * Account-captured user migrated account to team. + * @typedef {Object} TeamLogAccountCaptureMigrateAccountDetails + * @property {string} domain_name - Domain name. + */ /** + * @typedef {Object} TeamLogAccountCaptureMigrateAccountType + * @property {string} description + */ /** + * Sent account capture email to all unmanaged members. + * @typedef {Object} TeamLogAccountCaptureNotificationEmailsSentDetails + * @property {string} domain_name - Domain name. + * @property {TeamLogAccountCaptureNotificationType} [notification_type] - + * Account-capture email notification type. + */ /** + * @typedef {Object} TeamLogAccountCaptureNotificationEmailsSentType + * @property {string} description + */ /** + * @typedef {Object} TeamLogAccountCaptureNotificationType + * @property {('actionable_notification'|'proactive_warning_notification'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogAccountCapturePolicy + * @property {('all_users'|'disabled'|'invited_users'|'other')} .tag - Tag identifying the union variant. + */ /** + * Account-captured user changed account email to personal email. + * @typedef {Object} TeamLogAccountCaptureRelinquishAccountDetails + * @property {string} domain_name - Domain name. + */ /** + * @typedef {Object} TeamLogAccountCaptureRelinquishAccountType + * @property {string} description + */ /** + * Unlocked/locked account after failed sign in attempts. + * @typedef {Object} TeamLogAccountLockOrUnlockedDetails + * @property {TeamLogAccountState} previous_value - The previous account status. + * @property {TeamLogAccountState} new_value - The new account status. + */ /** + * @typedef {Object} TeamLogAccountLockOrUnlockedType + * @property {string} description + */ /** + * @typedef {Object} TeamLogAccountState + * @property {('locked'|'unlocked'|'other')} .tag - Tag identifying the union variant. + */ /** + * Additional information indicating the action taken that caused status change. + * @typedef {Object} TeamLogActionDetails + * @property {TeamLogMemberRemoveActionType} [remove_action] - Available if .tag + * is remove_action. Define how the user was removed from the team. + * @property {TeamLogTeamInviteDetails} [team_invite_details] - Available if + * .tag is team_invite_details. Additional information relevant when someone is + * invited to the team. + * @property {TeamLogJoinTeamDetails} [team_join_details] - Available if .tag is + * team_join_details. Additional information relevant when a new member joins + * the team. + * @property {('remove_action'|'team_invite_details'|'team_join_details'|'other')} .tag - Tag identifying the union variant. + */ /** + * The entity who performed the action. + * @typedef {Object} TeamLogActorLogInfo + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [admin] - Available if .tag is admin. The admin who did the action. + * @property + * {(TeamLogUserOrTeamLinkedAppLogInfo|TeamLogUserLinkedAppLogInfo|TeamLogTeamLinkedAppLogInfo|TeamLogAppLogInfo)} + * [app] - Available if .tag is app. The application who did the action. + * @property {TeamLogResellerLogInfo} [reseller] - Available if .tag is + * reseller. Action done by reseller. + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [user] - Available if .tag is user. The user who did the action. + * @property {('admin'|'anonymous'|'app'|'dropbox'|'reseller'|'user'|'other')} .tag - Tag identifying the union variant. + */ /** + * Alert category + * @typedef {Object} TeamLogAdminAlertCategoryEnum + * @property {('account_takeover'|'data_loss_protection'|'information_governance'|'malware_sharing'|'massive_file_operation'|'na'|'threat_management'|'other')} .tag - Tag identifying the union variant. + */ /** + * Alert state + * @typedef {Object} TeamLogAdminAlertGeneralStateEnum + * @property {('active'|'dismissed'|'in_progress'|'na'|'resolved'|'other')} .tag - Tag identifying the union variant. + */ /** + * Alert severity + * @typedef {Object} TeamLogAdminAlertSeverityEnum + * @property {('high'|'info'|'low'|'medium'|'na'|'other')} .tag - Tag identifying the union variant. + */ /** + * Alert configurations + * @typedef {Object} TeamLogAdminAlertingAlertConfiguration + * @property {TeamLogAdminAlertingAlertStatePolicy} [alert_state] - Alert state. + * @property {TeamLogAdminAlertingAlertSensitivity} [sensitivity_level] - + * Sensitivity level. + * @property {TeamLogRecipientsConfiguration} [recipients_settings] - Recipient + * settings. + * @property {string} [text] - Text. + * @property {string} [excluded_file_extensions] - Excluded file extensions. + */ /** + * Alert sensitivity + * @typedef {Object} TeamLogAdminAlertingAlertSensitivity + * @property {('high'|'highest'|'invalid'|'low'|'lowest'|'medium'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed an alert state. + * @typedef {Object} TeamLogAdminAlertingAlertStateChangedDetails + * @property {string} alert_name - Alert name. + * @property {TeamLogAdminAlertSeverityEnum} alert_severity - Alert severity. + * @property {TeamLogAdminAlertCategoryEnum} alert_category - Alert category. + * @property {string} alert_instance_id - Alert ID. + * @property {TeamLogAdminAlertGeneralStateEnum} previous_value - Alert state + * before the change. + * @property {TeamLogAdminAlertGeneralStateEnum} new_value - Alert state after + * the change. + */ /** + * @typedef {Object} TeamLogAdminAlertingAlertStateChangedType + * @property {string} description + */ /** + * Policy for controlling whether an alert can be triggered or not + * @typedef {Object} TeamLogAdminAlertingAlertStatePolicy + * @property {('off'|'on'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed an alert setting. + * @typedef {Object} TeamLogAdminAlertingChangedAlertConfigDetails + * @property {string} alert_name - Alert Name. + * @property {TeamLogAdminAlertingAlertConfiguration} previous_alert_config - + * Previous alert configuration. + * @property {TeamLogAdminAlertingAlertConfiguration} new_alert_config - New + * alert configuration. + */ /** + * @typedef {Object} TeamLogAdminAlertingChangedAlertConfigType + * @property {string} description + */ /** + * Triggered security alert. + * @typedef {Object} TeamLogAdminAlertingTriggeredAlertDetails + * @property {string} alert_name - Alert name. + * @property {TeamLogAdminAlertSeverityEnum} alert_severity - Alert severity. + * @property {TeamLogAdminAlertCategoryEnum} alert_category - Alert category. + * @property {string} alert_instance_id - Alert ID. + */ /** + * @typedef {Object} TeamLogAdminAlertingTriggeredAlertType + * @property {string} description + */ /** + * @typedef {Object} TeamLogAdminConsoleAppPermission + * @property {('default_for_listed_apps'|'default_for_unlisted_apps'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogAdminConsoleAppPolicy + * @property {('allow'|'block'|'default'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed admin reminder settings for requests to join the team. + * @typedef {Object} TeamLogAdminEmailRemindersChangedDetails + * @property {TeamLogAdminEmailRemindersPolicy} new_value - To. + * @property {TeamLogAdminEmailRemindersPolicy} previous_value - From. + */ /** + * @typedef {Object} TeamLogAdminEmailRemindersChangedType + * @property {string} description + */ /** + * Policy for deciding whether team admins receive reminder emails for requests + * to join the team + * @typedef {Object} TeamLogAdminEmailRemindersPolicy + * @property {('default'|'disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogAdminRole + * @property {('billing_admin'|'compliance_admin'|'content_admin'|'limited_admin'|'member_only'|'reporting_admin'|'security_admin'|'support_admin'|'team_admin'|'user_management_admin'|'other')} .tag - Tag identifying the union variant. + */ /** + * Alert recipients setting type + * @typedef {Object} TeamLogAlertRecipientsSettingType + * @property {('custom_list'|'invalid'|'none'|'team_admins'|'other')} .tag - Tag identifying the union variant. + */ /** + * Disabled downloads. + * @typedef {Object} TeamLogAllowDownloadDisabledDetails + */ /** + * @typedef {Object} TeamLogAllowDownloadDisabledType + * @property {string} description + */ /** + * Enabled downloads. + * @typedef {Object} TeamLogAllowDownloadEnabledDetails + */ /** + * @typedef {Object} TeamLogAllowDownloadEnabledType + * @property {string} description + */ /** + * Api session. + * @typedef {Object} TeamLogApiSessionLogInfo + * @property {string} request_id - Api request ID. + */ /** + * Failed to connect app for member. + * @typedef {Object} TeamLogAppBlockedByPermissionsDetails + * @property + * {(TeamLogUserOrTeamLinkedAppLogInfo|TeamLogUserLinkedAppLogInfo|TeamLogTeamLinkedAppLogInfo|TeamLogAppLogInfo)} + * app_info - Relevant application details. + */ /** + * @typedef {Object} TeamLogAppBlockedByPermissionsType + * @property {string} description + */ /** + * Linked app for team. + * @typedef {Object} TeamLogAppLinkTeamDetails + * @property + * {(TeamLogUserOrTeamLinkedAppLogInfo|TeamLogUserLinkedAppLogInfo|TeamLogTeamLinkedAppLogInfo|TeamLogAppLogInfo)} + * app_info - Relevant application details. + */ /** + * @typedef {Object} TeamLogAppLinkTeamType + * @property {string} description + */ /** + * Linked app for member. + * @typedef {Object} TeamLogAppLinkUserDetails + * @property + * {(TeamLogUserOrTeamLinkedAppLogInfo|TeamLogUserLinkedAppLogInfo|TeamLogTeamLinkedAppLogInfo|TeamLogAppLogInfo)} + * app_info - Relevant application details. + */ /** + * @typedef {Object} TeamLogAppLinkUserType + * @property {string} description + */ /** + * App's logged information. + * @typedef {Object} TeamLogAppLogInfo +@property {("user_or_team_linked_app"|"user_linked_app"|"team_linked_app")} .tag +- Tag identifying the subtype variant. + * @property {string} [app_id] - App unique ID. + * @property {string} [display_name] - App display name. + */ /** + * Changed app permissions. + * @typedef {Object} TeamLogAppPermissionsChangedDetails + * @property {TeamLogAdminConsoleAppPolicy} previous_value - Previous policy. + * @property {TeamLogAdminConsoleAppPolicy} new_value - New policy. + * @property {string} [app_name] - Name of the app. + * @property {TeamLogAdminConsoleAppPermission} [permission] - Permission that + * was changed. + */ /** + * @typedef {Object} TeamLogAppPermissionsChangedType + * @property {string} description + */ /** + * Unlinked app for team. + * @typedef {Object} TeamLogAppUnlinkTeamDetails + * @property + * {(TeamLogUserOrTeamLinkedAppLogInfo|TeamLogUserLinkedAppLogInfo|TeamLogTeamLinkedAppLogInfo|TeamLogAppLogInfo)} + * app_info - Relevant application details. + */ /** + * @typedef {Object} TeamLogAppUnlinkTeamType + * @property {string} description + */ /** + * Unlinked app for member. + * @typedef {Object} TeamLogAppUnlinkUserDetails + * @property + * {(TeamLogUserOrTeamLinkedAppLogInfo|TeamLogUserLinkedAppLogInfo|TeamLogTeamLinkedAppLogInfo|TeamLogAppLogInfo)} + * app_info - Relevant application details. + */ /** + * @typedef {Object} TeamLogAppUnlinkUserType + * @property {string} description + */ /** + * Applied naming convention. + * @typedef {Object} TeamLogApplyNamingConventionDetails + */ /** + * @typedef {Object} TeamLogApplyNamingConventionType + * @property {string} description + */ /** + * Asset details. + * @typedef {Object} TeamLogAssetLogInfo + * @property {TeamLogFileLogInfo} [file] - Available if .tag is file. File's + * details. + * @property {TeamLogFolderLogInfo} [folder] - Available if .tag is folder. + * Folder's details. + * @property {TeamLogPaperDocumentLogInfo} [paper_document] - Available if .tag + * is paper_document. Paper document's details. + * @property {TeamLogPaperFolderLogInfo} [paper_folder] - Available if .tag is + * paper_folder. Paper folder's details. + * @property {TeamLogShowcaseDocumentLogInfo} [showcase_document] - Available if + * .tag is showcase_document. Showcase document's details. + * @property {('file'|'folder'|'paper_document'|'paper_folder'|'showcase_document'|'other')} .tag - Tag identifying the union variant. + */ /** + * Backup status + * @typedef {Object} TeamLogBackupStatus + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Added Binder page. + * @typedef {Object} TeamLogBinderAddPageDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + */ /** + * @typedef {Object} TeamLogBinderAddPageType + * @property {string} description + */ /** + * Added Binder section. + * @typedef {Object} TeamLogBinderAddSectionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + */ /** + * @typedef {Object} TeamLogBinderAddSectionType + * @property {string} description + */ /** + * Removed Binder page. + * @typedef {Object} TeamLogBinderRemovePageDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + */ /** + * @typedef {Object} TeamLogBinderRemovePageType + * @property {string} description + */ /** + * Removed Binder section. + * @typedef {Object} TeamLogBinderRemoveSectionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + */ /** + * @typedef {Object} TeamLogBinderRemoveSectionType + * @property {string} description + */ /** + * Renamed Binder page. + * @typedef {Object} TeamLogBinderRenamePageDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + * @property {string} [previous_binder_item_name] - Previous name of the Binder + * page/section. + */ /** + * @typedef {Object} TeamLogBinderRenamePageType + * @property {string} description + */ /** + * Renamed Binder section. + * @typedef {Object} TeamLogBinderRenameSectionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + * @property {string} [previous_binder_item_name] - Previous name of the Binder + * page/section. + */ /** + * @typedef {Object} TeamLogBinderRenameSectionType + * @property {string} description + */ /** + * Reordered Binder page. + * @typedef {Object} TeamLogBinderReorderPageDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + */ /** + * @typedef {Object} TeamLogBinderReorderPageType + * @property {string} description + */ /** + * Reordered Binder section. + * @typedef {Object} TeamLogBinderReorderSectionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + */ /** + * @typedef {Object} TeamLogBinderReorderSectionType + * @property {string} description + */ /** + * Policy for controlling if team members can activate camera uploads + * @typedef {Object} TeamLogCameraUploadsPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed camera uploads setting for team. + * @typedef {Object} TeamLogCameraUploadsPolicyChangedDetails + * @property {TeamLogCameraUploadsPolicy} new_value - New camera uploads + * setting. + * @property {TeamLogCameraUploadsPolicy} previous_value - Previous camera + * uploads setting. + */ /** + * @typedef {Object} TeamLogCameraUploadsPolicyChangedType + * @property {string} description + */ /** + * Policy for deciding whether team users can transcription in Capture + * @typedef {Object} TeamLogCaptureTranscriptPolicy + * @property {('default'|'disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed Capture transcription policy for team. + * @typedef {Object} TeamLogCaptureTranscriptPolicyChangedDetails + * @property {TeamLogCaptureTranscriptPolicy} new_value - To. + * @property {TeamLogCaptureTranscriptPolicy} previous_value - From. + */ /** + * @typedef {Object} TeamLogCaptureTranscriptPolicyChangedType + * @property {string} description + */ /** + * Certificate details. + * @typedef {Object} TeamLogCertificate + * @property {string} subject - Certificate subject. + * @property {string} issuer - Certificate issuer. + * @property {string} issue_date - Certificate issue date. + * @property {string} expiration_date - Certificate expiration date. + * @property {string} serial_number - Certificate serial number. + * @property {string} sha1_fingerprint - Certificate sha1 fingerprint. + * @property {string} [common_name] - Certificate common name. + */ /** + * Policy for deciding whether the team's default expiration days policy must be + * enforced when an externally shared link is updated + * @typedef {Object} TeamLogChangeLinkExpirationPolicy + * @property {('allowed'|'not_allowed'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed enterprise admin role. + * @typedef {Object} TeamLogChangedEnterpriseAdminRoleDetails + * @property {TeamLogFedAdminRole} previous_value - The member’s previous + * enterprise admin role. + * @property {TeamLogFedAdminRole} new_value - The member’s new enterprise + * admin role. + * @property {string} team_name - The name of the member’s team. + */ /** + * @typedef {Object} TeamLogChangedEnterpriseAdminRoleType + * @property {string} description + */ /** + * Changed enterprise-connected team status. + * @typedef {Object} TeamLogChangedEnterpriseConnectedTeamStatusDetails + * @property {TeamLogFedHandshakeAction} action - The preformed change in the + * team’s connection status. + * @property {TeamLogFederationStatusChangeAdditionalInfo} additional_info - + * Additional information about the organization or team. + * @property {TeamLogTrustedTeamsRequestState} previous_value - Previous request + * state. + * @property {TeamLogTrustedTeamsRequestState} new_value - New request state. + */ /** + * @typedef {Object} TeamLogChangedEnterpriseConnectedTeamStatusType + * @property {string} description + */ /** + * Changed classification policy for team. + * @typedef {Object} TeamLogClassificationChangePolicyDetails + * @property {TeamLogClassificationPolicyEnumWrapper} previous_value - Previous + * classification policy. + * @property {TeamLogClassificationPolicyEnumWrapper} new_value - New + * classification policy. + * @property {TeamLogClassificationType} classification_type - Policy type. + */ /** + * @typedef {Object} TeamLogClassificationChangePolicyType + * @property {string} description + */ /** + * Created Classification report. + * @typedef {Object} TeamLogClassificationCreateReportDetails + */ /** + * Couldn't create Classification report. + * @typedef {Object} TeamLogClassificationCreateReportFailDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ /** + * @typedef {Object} TeamLogClassificationCreateReportFailType + * @property {string} description + */ /** + * @typedef {Object} TeamLogClassificationCreateReportType + * @property {string} description + */ /** + * Policy for controlling team access to the classification feature + * @typedef {Object} TeamLogClassificationPolicyEnumWrapper + * @property {('disabled'|'enabled'|'member_and_team_folders'|'team_folders'|'other')} .tag - Tag identifying the union variant. + */ /** + * The type of classification (currently only personal information) + * @typedef {Object} TeamLogClassificationType + * @property {('personal_information'|'pii'|'other')} .tag - Tag identifying the union variant. + */ /** + * Shared album. + * @typedef {Object} TeamLogCollectionShareDetails + * @property {string} album_name - Album name. + */ /** + * @typedef {Object} TeamLogCollectionShareType + * @property {string} description + */ /** + * Policy for controlling team access to computer backup feature + * @typedef {Object} TeamLogComputerBackupPolicy + * @property {('default'|'disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed computer backup policy for team. + * @typedef {Object} TeamLogComputerBackupPolicyChangedDetails + * @property {TeamLogComputerBackupPolicy} new_value - New computer backup + * policy. + * @property {TeamLogComputerBackupPolicy} previous_value - Previous computer + * backup policy. + */ /** + * @typedef {Object} TeamLogComputerBackupPolicyChangedType + * @property {string} description + */ /** + * The name of the team + * @typedef {Object} TeamLogConnectedTeamName + * @property {string} team - The name of the team. + */ /** + * Changed content management setting. + * @typedef {Object} TeamLogContentAdministrationPolicyChangedDetails + * @property {string} new_value - New content administration policy. + * @property {string} previous_value - Previous content administration policy. + */ /** + * @typedef {Object} TeamLogContentAdministrationPolicyChangedType + * @property {string} description + */ /** + * Policy for pemanent content deletion + * @typedef {Object} TeamLogContentPermanentDeletePolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * The primary entity on which the action was done. + * @typedef {Object} TeamLogContextLogInfo + * @property {TeamLogNonTeamMemberLogInfo} [non_team_member] - Available if .tag + * is non_team_member. Action was done on behalf of a non team member. + * @property {TeamLogTeamLogInfo} [organization_team] - Available if .tag is + * organization_team. Action was done on behalf of a team that's part of an + * organization. + * @property {TeamLogTeamMemberLogInfo} [team_member] - Available if .tag is + * team_member. Action was done on behalf of a team member. + * @property {TeamLogTrustedNonTeamMemberLogInfo} [trusted_non_team_member] - + * Available if .tag is trusted_non_team_member. Action was done on behalf of a + * trusted non team member. + * @property {('anonymous'|'non_team_member'|'organization_team'|'team'|'team_member'|'trusted_non_team_member'|'other')} .tag - Tag identifying the union variant. + */ /** + * Created folders. + * @typedef {Object} TeamLogCreateFolderDetails + */ /** + * @typedef {Object} TeamLogCreateFolderType + * @property {string} description + */ /** + * Created team invite link. + * @typedef {Object} TeamLogCreateTeamInviteLinkDetails + * @property {string} link_url - The invite link url that was created. + * @property {string} expiry_date - The expiration date of the invite link. + */ /** + * @typedef {Object} TeamLogCreateTeamInviteLinkType + * @property {string} description + */ /** + * Set restrictions on data center locations where team data resides. + * @typedef {Object} TeamLogDataPlacementRestrictionChangePolicyDetails + * @property {TeamLogPlacementRestriction} previous_value - Previous placement + * restriction. + * @property {TeamLogPlacementRestriction} new_value - New placement + * restriction. + */ /** + * @typedef {Object} TeamLogDataPlacementRestrictionChangePolicyType + * @property {string} description + */ /** + * Completed restrictions on data center locations where team data resides. + * @typedef {Object} TeamLogDataPlacementRestrictionSatisfyPolicyDetails + * @property {TeamLogPlacementRestriction} placement_restriction - Placement + * restriction. + */ /** + * @typedef {Object} TeamLogDataPlacementRestrictionSatisfyPolicyType + * @property {string} description + */ /** + * Requested data residency migration for team data. + * @typedef {Object} TeamLogDataResidencyMigrationRequestSuccessfulDetails + */ /** + * @typedef {Object} TeamLogDataResidencyMigrationRequestSuccessfulType + * @property {string} description + */ /** + * Request for data residency migration for team data has failed. + * @typedef {Object} TeamLogDataResidencyMigrationRequestUnsuccessfulDetails + */ /** + * @typedef {Object} TeamLogDataResidencyMigrationRequestUnsuccessfulType + * @property {string} description + */ /** + * Policy for the default number of days until an externally shared link expires + * @typedef {Object} TeamLogDefaultLinkExpirationDaysPolicy + * @property {('day_1'|'day_180'|'day_3'|'day_30'|'day_7'|'day_90'|'none'|'year_1'|'other')} .tag - Tag identifying the union variant. + */ /** + * Deleted team invite link. + * @typedef {Object} TeamLogDeleteTeamInviteLinkDetails + * @property {string} link_url - The invite link url that was deleted. + */ /** + * @typedef {Object} TeamLogDeleteTeamInviteLinkType + * @property {string} description + */ /** + * Information about linked Dropbox desktop client sessions + * @typedef {Object} TeamLogDesktopDeviceSessionLogInfo +@property {'desktop_device_session'} [.tag] - Tag identifying this subtype +variant. This field is only present when needed to discriminate between multiple +possible subtypes. + * @property {string} host_name - Name of the hosting desktop. + * @property {TeamDesktopPlatform} client_type - The Dropbox desktop client + * type. + * @property {string} platform - Information on the hosting platform. + * @property {boolean} is_delete_on_unlink_supported - Whether itu2019s possible + * to delete all of the account files upon unlinking. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + * @property {TeamLogDesktopSessionLogInfo} [session_info] - Desktop session + * unique id. + * @property {string} [client_version] - The Dropbox client version. + */ /** + * Desktop session. + * @typedef {Object} TeamLogDesktopSessionLogInfo +@property {'desktop'} [.tag] - Tag identifying this subtype variant. This field +is only present when needed to discriminate between multiple possible subtypes. + * @property {string} [session_id] - Session ID. + */ /** + * Added members to device approvals exception list. + * @typedef {Object} TeamLogDeviceApprovalsAddExceptionDetails + */ /** + * @typedef {Object} TeamLogDeviceApprovalsAddExceptionType + * @property {string} description + */ /** + * Set/removed limit on number of computers member can link to team Dropbox + * account. + * @typedef {Object} TeamLogDeviceApprovalsChangeDesktopPolicyDetails + * @property {TeamLogDeviceApprovalsPolicy} [new_value] - New desktop device + * approvals policy. Might be missing due to historical data gap. + * @property {TeamLogDeviceApprovalsPolicy} [previous_value] - Previous desktop + * device approvals policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogDeviceApprovalsChangeDesktopPolicyType + * @property {string} description + */ /** + * Set/removed limit on number of mobile devices member can link to team Dropbox + * account. + * @typedef {Object} TeamLogDeviceApprovalsChangeMobilePolicyDetails + * @property {TeamLogDeviceApprovalsPolicy} [new_value] - New mobile device + * approvals policy. Might be missing due to historical data gap. + * @property {TeamLogDeviceApprovalsPolicy} [previous_value] - Previous mobile + * device approvals policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogDeviceApprovalsChangeMobilePolicyType + * @property {string} description + */ /** + * Changed device approvals setting when member is over limit. + * @typedef {Object} TeamLogDeviceApprovalsChangeOverageActionDetails + * @property {TeamPoliciesRolloutMethod} [new_value] - New over the limits + * policy. Might be missing due to historical data gap. + * @property {TeamPoliciesRolloutMethod} [previous_value] - Previous over the + * limit policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogDeviceApprovalsChangeOverageActionType + * @property {string} description + */ /** + * Changed device approvals setting when member unlinks approved device. + * @typedef {Object} TeamLogDeviceApprovalsChangeUnlinkActionDetails + * @property {TeamLogDeviceUnlinkPolicy} [new_value] - New device unlink policy. + * Might be missing due to historical data gap. + * @property {TeamLogDeviceUnlinkPolicy} [previous_value] - Previous device + * unlink policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogDeviceApprovalsChangeUnlinkActionType + * @property {string} description + */ /** + * @typedef {Object} TeamLogDeviceApprovalsPolicy + * @property {('limited'|'unlimited'|'other')} .tag - Tag identifying the union variant. + */ /** + * Removed members from device approvals exception list. + * @typedef {Object} TeamLogDeviceApprovalsRemoveExceptionDetails + */ /** + * @typedef {Object} TeamLogDeviceApprovalsRemoveExceptionType + * @property {string} description + */ /** + * Changed IP address associated with active desktop session. + * @typedef {Object} TeamLogDeviceChangeIpDesktopDetails + * @property + * {(TeamLogDesktopDeviceSessionLogInfo|TeamLogMobileDeviceSessionLogInfo|TeamLogWebDeviceSessionLogInfo|TeamLogLegacyDeviceSessionLogInfo|TeamLogDeviceSessionLogInfo)} + * device_session_info - Device's session logged information. + */ /** + * @typedef {Object} TeamLogDeviceChangeIpDesktopType + * @property {string} description + */ /** + * Changed IP address associated with active mobile session. + * @typedef {Object} TeamLogDeviceChangeIpMobileDetails + * @property + * {(TeamLogDesktopDeviceSessionLogInfo|TeamLogMobileDeviceSessionLogInfo|TeamLogWebDeviceSessionLogInfo|TeamLogLegacyDeviceSessionLogInfo|TeamLogDeviceSessionLogInfo)} + * [device_session_info] - Device's session logged information. + */ /** + * @typedef {Object} TeamLogDeviceChangeIpMobileType + * @property {string} description + */ /** + * Changed IP address associated with active web session. + * @typedef {Object} TeamLogDeviceChangeIpWebDetails + * @property {string} user_agent - Web browser name. + */ /** + * @typedef {Object} TeamLogDeviceChangeIpWebType + * @property {string} description + */ /** + * Failed to delete all files from unlinked device. + * @typedef {Object} TeamLogDeviceDeleteOnUnlinkFailDetails + * @property {number} num_failures - The number of times that remote file + * deletion failed. + * @property + * {(TeamLogWebSessionLogInfo|TeamLogDesktopSessionLogInfo|TeamLogMobileSessionLogInfo|TeamLogSessionLogInfo)} + * [session_info] - Session unique id. + * @property {string} [display_name] - The device name. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogDeviceDeleteOnUnlinkFailType + * @property {string} description + */ /** + * Deleted all files from unlinked device. + * @typedef {Object} TeamLogDeviceDeleteOnUnlinkSuccessDetails + * @property + * {(TeamLogWebSessionLogInfo|TeamLogDesktopSessionLogInfo|TeamLogMobileSessionLogInfo|TeamLogSessionLogInfo)} + * [session_info] - Session unique id. + * @property {string} [display_name] - The device name. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogDeviceDeleteOnUnlinkSuccessType + * @property {string} description + */ /** + * Failed to link device. + * @typedef {Object} TeamLogDeviceLinkFailDetails + * @property {TeamLogDeviceType} device_type - A description of the device used + * while user approval blocked. + * @property {string} [ip_address] - IP address. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogDeviceLinkFailType + * @property {string} description + */ /** + * Linked device. + * @typedef {Object} TeamLogDeviceLinkSuccessDetails + * @property + * {(TeamLogDesktopDeviceSessionLogInfo|TeamLogMobileDeviceSessionLogInfo|TeamLogWebDeviceSessionLogInfo|TeamLogLegacyDeviceSessionLogInfo|TeamLogDeviceSessionLogInfo)} + * [device_session_info] - Device's session logged information. + */ /** + * @typedef {Object} TeamLogDeviceLinkSuccessType + * @property {string} description + */ /** + * Disabled device management. + * @typedef {Object} TeamLogDeviceManagementDisabledDetails + */ /** + * @typedef {Object} TeamLogDeviceManagementDisabledType + * @property {string} description + */ /** + * Enabled device management. + * @typedef {Object} TeamLogDeviceManagementEnabledDetails + */ /** + * @typedef {Object} TeamLogDeviceManagementEnabledType + * @property {string} description + */ /** + * Device's session logged information. + * @typedef {Object} TeamLogDeviceSessionLogInfo +@property +{("desktop_device_session"|"mobile_device_session"|"web_device_session"|"legacy_device_session")} +.tag - Tag identifying the subtype variant. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + */ /** + * Enabled/disabled backup for computer. + * @typedef {Object} TeamLogDeviceSyncBackupStatusChangedDetails + * @property {TeamLogDesktopDeviceSessionLogInfo} desktop_device_session_info - + * Device's session logged information. + * @property {TeamLogBackupStatus} previous_value - Previous status of computer + * backup on the device. + * @property {TeamLogBackupStatus} new_value - Next status of computer backup on + * the device. + */ /** + * @typedef {Object} TeamLogDeviceSyncBackupStatusChangedType + * @property {string} description + */ /** + * @typedef {Object} TeamLogDeviceType + * @property {('desktop'|'mobile'|'other')} .tag - Tag identifying the union variant. + */ /** + * Disconnected device. + * @typedef {Object} TeamLogDeviceUnlinkDetails + * @property {boolean} delete_data - True if the user requested to delete data + * after device unlink, false otherwise. + * @property + * {(TeamLogWebSessionLogInfo|TeamLogDesktopSessionLogInfo|TeamLogMobileSessionLogInfo|TeamLogSessionLogInfo)} + * [session_info] - Session unique id. + * @property {string} [display_name] - The device name. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogDeviceUnlinkPolicy + * @property {('keep'|'remove'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogDeviceUnlinkType + * @property {string} description + */ /** + * Added members to directory restrictions list. + * @typedef {Object} TeamLogDirectoryRestrictionsAddMembersDetails + */ /** + * @typedef {Object} TeamLogDirectoryRestrictionsAddMembersType + * @property {string} description + */ /** + * Removed members from directory restrictions list. + * @typedef {Object} TeamLogDirectoryRestrictionsRemoveMembersDetails + */ /** + * @typedef {Object} TeamLogDirectoryRestrictionsRemoveMembersType + * @property {string} description + */ /** + * Disabled domain invites. + * @typedef {Object} TeamLogDisabledDomainInvitesDetails + */ /** + * @typedef {Object} TeamLogDisabledDomainInvitesType + * @property {string} description + */ /** + * @typedef {Object} TeamLogDispositionActionType + * @property {('automatic_delete'|'automatic_permanently_delete'|'other')} .tag - Tag identifying the union variant. + */ /** + * Approved user's request to join team. + * @typedef {Object} TeamLogDomainInvitesApproveRequestToJoinTeamDetails + */ /** + * @typedef {Object} TeamLogDomainInvitesApproveRequestToJoinTeamType + * @property {string} description + */ /** + * Declined user's request to join team. + * @typedef {Object} TeamLogDomainInvitesDeclineRequestToJoinTeamDetails + */ /** + * @typedef {Object} TeamLogDomainInvitesDeclineRequestToJoinTeamType + * @property {string} description + */ /** + * Sent domain invites to existing domain accounts. + * @typedef {Object} TeamLogDomainInvitesEmailExistingUsersDetails + * @property {string} domain_name - Domain names. + * @property {number} num_recipients - Number of recipients. + */ /** + * @typedef {Object} TeamLogDomainInvitesEmailExistingUsersType + * @property {string} description + */ /** + * Requested to join team. + * @typedef {Object} TeamLogDomainInvitesRequestToJoinTeamDetails + */ /** + * @typedef {Object} TeamLogDomainInvitesRequestToJoinTeamType + * @property {string} description + */ /** + * Disabled "Automatically invite new users". + * @typedef {Object} TeamLogDomainInvitesSetInviteNewUserPrefToNoDetails + */ /** + * @typedef {Object} TeamLogDomainInvitesSetInviteNewUserPrefToNoType + * @property {string} description + */ /** + * Enabled "Automatically invite new users". + * @typedef {Object} TeamLogDomainInvitesSetInviteNewUserPrefToYesDetails + */ /** + * @typedef {Object} TeamLogDomainInvitesSetInviteNewUserPrefToYesType + * @property {string} description + */ /** + * Failed to verify team domain. + * @typedef {Object} TeamLogDomainVerificationAddDomainFailDetails + * @property {string} domain_name - Domain name. + * @property {string} [verification_method] - Domain name verification method. + * Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogDomainVerificationAddDomainFailType + * @property {string} description + */ /** + * Verified team domain. + * @typedef {Object} TeamLogDomainVerificationAddDomainSuccessDetails + * @property {Array.} domain_names - Domain names. + * @property {string} [verification_method] - Domain name verification method. + * Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogDomainVerificationAddDomainSuccessType + * @property {string} description + */ /** + * Removed domain from list of verified team domains. + * @typedef {Object} TeamLogDomainVerificationRemoveDomainDetails + * @property {Array.} domain_names - Domain names. + */ /** + * @typedef {Object} TeamLogDomainVerificationRemoveDomainType + * @property {string} description + */ /** + * Shared content downloads policy + * @typedef {Object} TeamLogDownloadPolicyType + * @property {('allow'|'disallow'|'other')} .tag - Tag identifying the union variant. + */ /** + * Exported passwords. + * @typedef {Object} TeamLogDropboxPasswordsExportedDetails + * @property {string} platform - The platform the device runs export. + */ /** + * @typedef {Object} TeamLogDropboxPasswordsExportedType + * @property {string} description + */ /** + * Enrolled new Dropbox Passwords device. + * @typedef {Object} TeamLogDropboxPasswordsNewDeviceEnrolledDetails + * @property {boolean} is_first_device - Whether it's a first device enrolled. + * @property {string} platform - The platform the device is enrolled. + */ /** + * @typedef {Object} TeamLogDropboxPasswordsNewDeviceEnrolledType + * @property {string} description + */ /** + * Policy for deciding whether team users can use Dropbox Passwords + * @typedef {Object} TeamLogDropboxPasswordsPolicy + * @property {('default'|'disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed Dropbox Passwords policy for team. + * @typedef {Object} TeamLogDropboxPasswordsPolicyChangedDetails + * @property {TeamLogDropboxPasswordsPolicy} new_value - To. + * @property {TeamLogDropboxPasswordsPolicy} previous_value - From. + */ /** + * @typedef {Object} TeamLogDropboxPasswordsPolicyChangedType + * @property {string} description + */ /** + * Represents a time duration: unit and amount + * @typedef {Object} TeamLogDurationLogInfo + * @property {TeamLogTimeUnit} unit - Time unit. + * @property {number} amount - Amount of time. + */ /** + * Policy for deciding whether a team can use Email to Dropbox feature + * @typedef {Object} TeamLogEmailIngestPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed email to Dropbox policy for team. + * @typedef {Object} TeamLogEmailIngestPolicyChangedDetails + * @property {TeamLogEmailIngestPolicy} new_value - To. + * @property {TeamLogEmailIngestPolicy} previous_value - From. + */ /** + * @typedef {Object} TeamLogEmailIngestPolicyChangedType + * @property {string} description + */ /** + * Received files via Email to Dropbox. + * @typedef {Object} TeamLogEmailIngestReceiveFileDetails + * @property {string} inbox_name - Inbox name. + * @property {Array.} attachment_names - Submitted file names. + * @property {string} [subject] - Subject of the email. + * @property {string} [from_name] - The name as provided by the submitter. + * @property {string} [from_email] - The email as provided by the submitter. + */ /** + * @typedef {Object} TeamLogEmailIngestReceiveFileType + * @property {string} description + */ /** + * Added members to EMM exception list. + * @typedef {Object} TeamLogEmmAddExceptionDetails + */ /** + * @typedef {Object} TeamLogEmmAddExceptionType + * @property {string} description + */ /** + * Enabled/disabled enterprise mobility management for members. + * @typedef {Object} TeamLogEmmChangePolicyDetails + * @property {TeamPoliciesEmmState} new_value - New enterprise mobility + * management policy. + * @property {TeamPoliciesEmmState} [previous_value] - Previous enterprise + * mobility management policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogEmmChangePolicyType + * @property {string} description + */ /** + * Created EMM-excluded users report. + * @typedef {Object} TeamLogEmmCreateExceptionsReportDetails + */ /** + * @typedef {Object} TeamLogEmmCreateExceptionsReportType + * @property {string} description + */ /** + * Created EMM mobile app usage report. + * @typedef {Object} TeamLogEmmCreateUsageReportDetails + */ /** + * @typedef {Object} TeamLogEmmCreateUsageReportType + * @property {string} description + */ /** + * Failed to sign in via EMM. + * @typedef {Object} TeamLogEmmErrorDetails + * @property {TeamLogFailureDetailsLogInfo} error_details - Error details. + */ /** + * @typedef {Object} TeamLogEmmErrorType + * @property {string} description + */ /** + * Refreshed auth token used for setting up EMM. + * @typedef {Object} TeamLogEmmRefreshAuthTokenDetails + */ /** + * @typedef {Object} TeamLogEmmRefreshAuthTokenType + * @property {string} description + */ /** + * Removed members from EMM exception list. + * @typedef {Object} TeamLogEmmRemoveExceptionDetails + */ /** + * @typedef {Object} TeamLogEmmRemoveExceptionType + * @property {string} description + */ /** + * Enabled domain invites. + * @typedef {Object} TeamLogEnabledDomainInvitesDetails + */ /** + * @typedef {Object} TeamLogEnabledDomainInvitesType + * @property {string} description + */ /** + * Ended enterprise admin session. + * @typedef {Object} TeamLogEndedEnterpriseAdminSessionDeprecatedDetails + * @property {TeamLogFedExtraDetails} federation_extra_details - More + * information about the organization or team. + */ /** + * @typedef {Object} TeamLogEndedEnterpriseAdminSessionDeprecatedType + * @property {string} description + */ /** + * Ended enterprise admin session. + * @typedef {Object} TeamLogEndedEnterpriseAdminSessionDetails + */ /** + * @typedef {Object} TeamLogEndedEnterpriseAdminSessionType + * @property {string} description + */ /** + * Policy for deciding whether password must be enforced when an externally + * shared link is updated + * @typedef {Object} TeamLogEnforceLinkPasswordPolicy + * @property {('optional'|'required'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed who can update a setting. + * @typedef {Object} TeamLogEnterpriseSettingsLockingDetails + * @property {string} team_name - The secondary team name. + * @property {string} settings_page_name - Settings page name. + * @property {string} previous_settings_page_locking_state - Previous locked + * settings page state. + * @property {string} new_settings_page_locking_state - New locked settings page + * state. + */ /** + * @typedef {Object} TeamLogEnterpriseSettingsLockingType + * @property {string} description + */ /** + * Category of events in event audit log. + * @typedef {Object} TeamLogEventCategory + * @property {('admin_alerting'|'apps'|'comments'|'data_governance'|'devices'|'domains'|'file_operations'|'file_requests'|'groups'|'logins'|'members'|'paper'|'passwords'|'reports'|'sharing'|'showcase'|'sso'|'team_folders'|'team_policies'|'team_profile'|'tfa'|'trusted_teams'|'other')} .tag - Tag identifying the union variant. + */ /** + * Additional fields depending on the event type. + * @typedef {Object} TeamLogEventDetails + * @property {TeamLogAdminAlertingAlertStateChangedDetails} + * [admin_alerting_alert_state_changed_details] - Available if .tag is + * admin_alerting_alert_state_changed_details. + * @property {TeamLogAdminAlertingChangedAlertConfigDetails} + * [admin_alerting_changed_alert_config_details] - Available if .tag is + * admin_alerting_changed_alert_config_details. + * @property {TeamLogAdminAlertingTriggeredAlertDetails} + * [admin_alerting_triggered_alert_details] - Available if .tag is + * admin_alerting_triggered_alert_details. + * @property {TeamLogAppBlockedByPermissionsDetails} + * [app_blocked_by_permissions_details] - Available if .tag is + * app_blocked_by_permissions_details. + * @property {TeamLogAppLinkTeamDetails} [app_link_team_details] - Available if + * .tag is app_link_team_details. + * @property {TeamLogAppLinkUserDetails} [app_link_user_details] - Available if + * .tag is app_link_user_details. + * @property {TeamLogAppUnlinkTeamDetails} [app_unlink_team_details] - Available + * if .tag is app_unlink_team_details. + * @property {TeamLogAppUnlinkUserDetails} [app_unlink_user_details] - Available + * if .tag is app_unlink_user_details. + * @property {TeamLogIntegrationConnectedDetails} + * [integration_connected_details] - Available if .tag is + * integration_connected_details. + * @property {TeamLogIntegrationDisconnectedDetails} + * [integration_disconnected_details] - Available if .tag is + * integration_disconnected_details. + * @property {TeamLogFileAddCommentDetails} [file_add_comment_details] - + * Available if .tag is file_add_comment_details. + * @property {TeamLogFileChangeCommentSubscriptionDetails} + * [file_change_comment_subscription_details] - Available if .tag is + * file_change_comment_subscription_details. + * @property {TeamLogFileDeleteCommentDetails} [file_delete_comment_details] - + * Available if .tag is file_delete_comment_details. + * @property {TeamLogFileEditCommentDetails} [file_edit_comment_details] - + * Available if .tag is file_edit_comment_details. + * @property {TeamLogFileLikeCommentDetails} [file_like_comment_details] - + * Available if .tag is file_like_comment_details. + * @property {TeamLogFileResolveCommentDetails} [file_resolve_comment_details] - + * Available if .tag is file_resolve_comment_details. + * @property {TeamLogFileUnlikeCommentDetails} [file_unlike_comment_details] - + * Available if .tag is file_unlike_comment_details. + * @property {TeamLogFileUnresolveCommentDetails} + * [file_unresolve_comment_details] - Available if .tag is + * file_unresolve_comment_details. + * @property {TeamLogGovernancePolicyAddFoldersDetails} + * [governance_policy_add_folders_details] - Available if .tag is + * governance_policy_add_folders_details. + * @property {TeamLogGovernancePolicyAddFolderFailedDetails} + * [governance_policy_add_folder_failed_details] - Available if .tag is + * governance_policy_add_folder_failed_details. + * @property {TeamLogGovernancePolicyContentDisposedDetails} + * [governance_policy_content_disposed_details] - Available if .tag is + * governance_policy_content_disposed_details. + * @property {TeamLogGovernancePolicyCreateDetails} + * [governance_policy_create_details] - Available if .tag is + * governance_policy_create_details. + * @property {TeamLogGovernancePolicyDeleteDetails} + * [governance_policy_delete_details] - Available if .tag is + * governance_policy_delete_details. + * @property {TeamLogGovernancePolicyEditDetailsDetails} + * [governance_policy_edit_details_details] - Available if .tag is + * governance_policy_edit_details_details. + * @property {TeamLogGovernancePolicyEditDurationDetails} + * [governance_policy_edit_duration_details] - Available if .tag is + * governance_policy_edit_duration_details. + * @property {TeamLogGovernancePolicyExportCreatedDetails} + * [governance_policy_export_created_details] - Available if .tag is + * governance_policy_export_created_details. + * @property {TeamLogGovernancePolicyExportRemovedDetails} + * [governance_policy_export_removed_details] - Available if .tag is + * governance_policy_export_removed_details. + * @property {TeamLogGovernancePolicyRemoveFoldersDetails} + * [governance_policy_remove_folders_details] - Available if .tag is + * governance_policy_remove_folders_details. + * @property {TeamLogGovernancePolicyReportCreatedDetails} + * [governance_policy_report_created_details] - Available if .tag is + * governance_policy_report_created_details. + * @property {TeamLogGovernancePolicyZipPartDownloadedDetails} + * [governance_policy_zip_part_downloaded_details] - Available if .tag is + * governance_policy_zip_part_downloaded_details. + * @property {TeamLogLegalHoldsActivateAHoldDetails} + * [legal_holds_activate_a_hold_details] - Available if .tag is + * legal_holds_activate_a_hold_details. + * @property {TeamLogLegalHoldsAddMembersDetails} + * [legal_holds_add_members_details] - Available if .tag is + * legal_holds_add_members_details. + * @property {TeamLogLegalHoldsChangeHoldDetailsDetails} + * [legal_holds_change_hold_details_details] - Available if .tag is + * legal_holds_change_hold_details_details. + * @property {TeamLogLegalHoldsChangeHoldNameDetails} + * [legal_holds_change_hold_name_details] - Available if .tag is + * legal_holds_change_hold_name_details. + * @property {TeamLogLegalHoldsExportAHoldDetails} + * [legal_holds_export_a_hold_details] - Available if .tag is + * legal_holds_export_a_hold_details. + * @property {TeamLogLegalHoldsExportCancelledDetails} + * [legal_holds_export_cancelled_details] - Available if .tag is + * legal_holds_export_cancelled_details. + * @property {TeamLogLegalHoldsExportDownloadedDetails} + * [legal_holds_export_downloaded_details] - Available if .tag is + * legal_holds_export_downloaded_details. + * @property {TeamLogLegalHoldsExportRemovedDetails} + * [legal_holds_export_removed_details] - Available if .tag is + * legal_holds_export_removed_details. + * @property {TeamLogLegalHoldsReleaseAHoldDetails} + * [legal_holds_release_a_hold_details] - Available if .tag is + * legal_holds_release_a_hold_details. + * @property {TeamLogLegalHoldsRemoveMembersDetails} + * [legal_holds_remove_members_details] - Available if .tag is + * legal_holds_remove_members_details. + * @property {TeamLogLegalHoldsReportAHoldDetails} + * [legal_holds_report_a_hold_details] - Available if .tag is + * legal_holds_report_a_hold_details. + * @property {TeamLogDeviceChangeIpDesktopDetails} + * [device_change_ip_desktop_details] - Available if .tag is + * device_change_ip_desktop_details. + * @property {TeamLogDeviceChangeIpMobileDetails} + * [device_change_ip_mobile_details] - Available if .tag is + * device_change_ip_mobile_details. + * @property {TeamLogDeviceChangeIpWebDetails} [device_change_ip_web_details] - + * Available if .tag is device_change_ip_web_details. + * @property {TeamLogDeviceDeleteOnUnlinkFailDetails} + * [device_delete_on_unlink_fail_details] - Available if .tag is + * device_delete_on_unlink_fail_details. + * @property {TeamLogDeviceDeleteOnUnlinkSuccessDetails} + * [device_delete_on_unlink_success_details] - Available if .tag is + * device_delete_on_unlink_success_details. + * @property {TeamLogDeviceLinkFailDetails} [device_link_fail_details] - + * Available if .tag is device_link_fail_details. + * @property {TeamLogDeviceLinkSuccessDetails} [device_link_success_details] - + * Available if .tag is device_link_success_details. + * @property {TeamLogDeviceManagementDisabledDetails} + * [device_management_disabled_details] - Available if .tag is + * device_management_disabled_details. + * @property {TeamLogDeviceManagementEnabledDetails} + * [device_management_enabled_details] - Available if .tag is + * device_management_enabled_details. + * @property {TeamLogDeviceSyncBackupStatusChangedDetails} + * [device_sync_backup_status_changed_details] - Available if .tag is + * device_sync_backup_status_changed_details. + * @property {TeamLogDeviceUnlinkDetails} [device_unlink_details] - Available if + * .tag is device_unlink_details. + * @property {TeamLogDropboxPasswordsExportedDetails} + * [dropbox_passwords_exported_details] - Available if .tag is + * dropbox_passwords_exported_details. + * @property {TeamLogDropboxPasswordsNewDeviceEnrolledDetails} + * [dropbox_passwords_new_device_enrolled_details] - Available if .tag is + * dropbox_passwords_new_device_enrolled_details. + * @property {TeamLogEmmRefreshAuthTokenDetails} + * [emm_refresh_auth_token_details] - Available if .tag is + * emm_refresh_auth_token_details. + * @property {TeamLogExternalDriveBackupEligibilityStatusCheckedDetails} + * [external_drive_backup_eligibility_status_checked_details] - Available if + * .tag is external_drive_backup_eligibility_status_checked_details. + * @property {TeamLogExternalDriveBackupStatusChangedDetails} + * [external_drive_backup_status_changed_details] - Available if .tag is + * external_drive_backup_status_changed_details. + * @property {TeamLogAccountCaptureChangeAvailabilityDetails} + * [account_capture_change_availability_details] - Available if .tag is + * account_capture_change_availability_details. + * @property {TeamLogAccountCaptureMigrateAccountDetails} + * [account_capture_migrate_account_details] - Available if .tag is + * account_capture_migrate_account_details. + * @property {TeamLogAccountCaptureNotificationEmailsSentDetails} + * [account_capture_notification_emails_sent_details] - Available if .tag is + * account_capture_notification_emails_sent_details. + * @property {TeamLogAccountCaptureRelinquishAccountDetails} + * [account_capture_relinquish_account_details] - Available if .tag is + * account_capture_relinquish_account_details. + * @property {TeamLogDisabledDomainInvitesDetails} + * [disabled_domain_invites_details] - Available if .tag is + * disabled_domain_invites_details. + * @property {TeamLogDomainInvitesApproveRequestToJoinTeamDetails} + * [domain_invites_approve_request_to_join_team_details] - Available if .tag is + * domain_invites_approve_request_to_join_team_details. + * @property {TeamLogDomainInvitesDeclineRequestToJoinTeamDetails} + * [domain_invites_decline_request_to_join_team_details] - Available if .tag is + * domain_invites_decline_request_to_join_team_details. + * @property {TeamLogDomainInvitesEmailExistingUsersDetails} + * [domain_invites_email_existing_users_details] - Available if .tag is + * domain_invites_email_existing_users_details. + * @property {TeamLogDomainInvitesRequestToJoinTeamDetails} + * [domain_invites_request_to_join_team_details] - Available if .tag is + * domain_invites_request_to_join_team_details. + * @property {TeamLogDomainInvitesSetInviteNewUserPrefToNoDetails} + * [domain_invites_set_invite_new_user_pref_to_no_details] - Available if .tag + * is domain_invites_set_invite_new_user_pref_to_no_details. + * @property {TeamLogDomainInvitesSetInviteNewUserPrefToYesDetails} + * [domain_invites_set_invite_new_user_pref_to_yes_details] - Available if .tag + * is domain_invites_set_invite_new_user_pref_to_yes_details. + * @property {TeamLogDomainVerificationAddDomainFailDetails} + * [domain_verification_add_domain_fail_details] - Available if .tag is + * domain_verification_add_domain_fail_details. + * @property {TeamLogDomainVerificationAddDomainSuccessDetails} + * [domain_verification_add_domain_success_details] - Available if .tag is + * domain_verification_add_domain_success_details. + * @property {TeamLogDomainVerificationRemoveDomainDetails} + * [domain_verification_remove_domain_details] - Available if .tag is + * domain_verification_remove_domain_details. + * @property {TeamLogEnabledDomainInvitesDetails} + * [enabled_domain_invites_details] - Available if .tag is + * enabled_domain_invites_details. + * @property {TeamLogApplyNamingConventionDetails} + * [apply_naming_convention_details] - Available if .tag is + * apply_naming_convention_details. + * @property {TeamLogCreateFolderDetails} [create_folder_details] - Available if + * .tag is create_folder_details. + * @property {TeamLogFileAddDetails} [file_add_details] - Available if .tag is + * file_add_details. + * @property {TeamLogFileCopyDetails} [file_copy_details] - Available if .tag is + * file_copy_details. + * @property {TeamLogFileDeleteDetails} [file_delete_details] - Available if + * .tag is file_delete_details. + * @property {TeamLogFileDownloadDetails} [file_download_details] - Available if + * .tag is file_download_details. + * @property {TeamLogFileEditDetails} [file_edit_details] - Available if .tag is + * file_edit_details. + * @property {TeamLogFileGetCopyReferenceDetails} + * [file_get_copy_reference_details] - Available if .tag is + * file_get_copy_reference_details. + * @property {TeamLogFileLockingLockStatusChangedDetails} + * [file_locking_lock_status_changed_details] - Available if .tag is + * file_locking_lock_status_changed_details. + * @property {TeamLogFileMoveDetails} [file_move_details] - Available if .tag is + * file_move_details. + * @property {TeamLogFilePermanentlyDeleteDetails} + * [file_permanently_delete_details] - Available if .tag is + * file_permanently_delete_details. + * @property {TeamLogFilePreviewDetails} [file_preview_details] - Available if + * .tag is file_preview_details. + * @property {TeamLogFileRenameDetails} [file_rename_details] - Available if + * .tag is file_rename_details. + * @property {TeamLogFileRestoreDetails} [file_restore_details] - Available if + * .tag is file_restore_details. + * @property {TeamLogFileRevertDetails} [file_revert_details] - Available if + * .tag is file_revert_details. + * @property {TeamLogFileRollbackChangesDetails} [file_rollback_changes_details] + * - Available if .tag is file_rollback_changes_details. + * @property {TeamLogFileSaveCopyReferenceDetails} + * [file_save_copy_reference_details] - Available if .tag is + * file_save_copy_reference_details. + * @property {TeamLogFolderOverviewDescriptionChangedDetails} + * [folder_overview_description_changed_details] - Available if .tag is + * folder_overview_description_changed_details. + * @property {TeamLogFolderOverviewItemPinnedDetails} + * [folder_overview_item_pinned_details] - Available if .tag is + * folder_overview_item_pinned_details. + * @property {TeamLogFolderOverviewItemUnpinnedDetails} + * [folder_overview_item_unpinned_details] - Available if .tag is + * folder_overview_item_unpinned_details. + * @property {TeamLogObjectLabelAddedDetails} [object_label_added_details] - + * Available if .tag is object_label_added_details. + * @property {TeamLogObjectLabelRemovedDetails} [object_label_removed_details] - + * Available if .tag is object_label_removed_details. + * @property {TeamLogObjectLabelUpdatedValueDetails} + * [object_label_updated_value_details] - Available if .tag is + * object_label_updated_value_details. + * @property {TeamLogOrganizeFolderWithTidyDetails} + * [organize_folder_with_tidy_details] - Available if .tag is + * organize_folder_with_tidy_details. + * @property {TeamLogRewindFolderDetails} [rewind_folder_details] - Available if + * .tag is rewind_folder_details. + * @property {TeamLogUndoNamingConventionDetails} + * [undo_naming_convention_details] - Available if .tag is + * undo_naming_convention_details. + * @property {TeamLogUndoOrganizeFolderWithTidyDetails} + * [undo_organize_folder_with_tidy_details] - Available if .tag is + * undo_organize_folder_with_tidy_details. + * @property {TeamLogUserTagsAddedDetails} [user_tags_added_details] - Available + * if .tag is user_tags_added_details. + * @property {TeamLogUserTagsRemovedDetails} [user_tags_removed_details] - + * Available if .tag is user_tags_removed_details. + * @property {TeamLogEmailIngestReceiveFileDetails} + * [email_ingest_receive_file_details] - Available if .tag is + * email_ingest_receive_file_details. + * @property {TeamLogFileRequestChangeDetails} [file_request_change_details] - + * Available if .tag is file_request_change_details. + * @property {TeamLogFileRequestCloseDetails} [file_request_close_details] - + * Available if .tag is file_request_close_details. + * @property {TeamLogFileRequestCreateDetails} [file_request_create_details] - + * Available if .tag is file_request_create_details. + * @property {TeamLogFileRequestDeleteDetails} [file_request_delete_details] - + * Available if .tag is file_request_delete_details. + * @property {TeamLogFileRequestReceiveFileDetails} + * [file_request_receive_file_details] - Available if .tag is + * file_request_receive_file_details. + * @property {TeamLogGroupAddExternalIdDetails} [group_add_external_id_details] + * - Available if .tag is group_add_external_id_details. + * @property {TeamLogGroupAddMemberDetails} [group_add_member_details] - + * Available if .tag is group_add_member_details. + * @property {TeamLogGroupChangeExternalIdDetails} + * [group_change_external_id_details] - Available if .tag is + * group_change_external_id_details. + * @property {TeamLogGroupChangeManagementTypeDetails} + * [group_change_management_type_details] - Available if .tag is + * group_change_management_type_details. + * @property {TeamLogGroupChangeMemberRoleDetails} + * [group_change_member_role_details] - Available if .tag is + * group_change_member_role_details. + * @property {TeamLogGroupCreateDetails} [group_create_details] - Available if + * .tag is group_create_details. + * @property {TeamLogGroupDeleteDetails} [group_delete_details] - Available if + * .tag is group_delete_details. + * @property {TeamLogGroupDescriptionUpdatedDetails} + * [group_description_updated_details] - Available if .tag is + * group_description_updated_details. + * @property {TeamLogGroupJoinPolicyUpdatedDetails} + * [group_join_policy_updated_details] - Available if .tag is + * group_join_policy_updated_details. + * @property {TeamLogGroupMovedDetails} [group_moved_details] - Available if + * .tag is group_moved_details. + * @property {TeamLogGroupRemoveExternalIdDetails} + * [group_remove_external_id_details] - Available if .tag is + * group_remove_external_id_details. + * @property {TeamLogGroupRemoveMemberDetails} [group_remove_member_details] - + * Available if .tag is group_remove_member_details. + * @property {TeamLogGroupRenameDetails} [group_rename_details] - Available if + * .tag is group_rename_details. + * @property {TeamLogAccountLockOrUnlockedDetails} + * [account_lock_or_unlocked_details] - Available if .tag is + * account_lock_or_unlocked_details. + * @property {TeamLogEmmErrorDetails} [emm_error_details] - Available if .tag is + * emm_error_details. + * @property {TeamLogGuestAdminSignedInViaTrustedTeamsDetails} + * [guest_admin_signed_in_via_trusted_teams_details] - Available if .tag is + * guest_admin_signed_in_via_trusted_teams_details. + * @property {TeamLogGuestAdminSignedOutViaTrustedTeamsDetails} + * [guest_admin_signed_out_via_trusted_teams_details] - Available if .tag is + * guest_admin_signed_out_via_trusted_teams_details. + * @property {TeamLogLoginFailDetails} [login_fail_details] - Available if .tag + * is login_fail_details. + * @property {TeamLogLoginSuccessDetails} [login_success_details] - Available if + * .tag is login_success_details. + * @property {TeamLogLogoutDetails} [logout_details] - Available if .tag is + * logout_details. + * @property {TeamLogResellerSupportSessionEndDetails} + * [reseller_support_session_end_details] - Available if .tag is + * reseller_support_session_end_details. + * @property {TeamLogResellerSupportSessionStartDetails} + * [reseller_support_session_start_details] - Available if .tag is + * reseller_support_session_start_details. + * @property {TeamLogSignInAsSessionEndDetails} [sign_in_as_session_end_details] + * - Available if .tag is sign_in_as_session_end_details. + * @property {TeamLogSignInAsSessionStartDetails} + * [sign_in_as_session_start_details] - Available if .tag is + * sign_in_as_session_start_details. + * @property {TeamLogSsoErrorDetails} [sso_error_details] - Available if .tag is + * sso_error_details. + * @property {TeamLogCreateTeamInviteLinkDetails} + * [create_team_invite_link_details] - Available if .tag is + * create_team_invite_link_details. + * @property {TeamLogDeleteTeamInviteLinkDetails} + * [delete_team_invite_link_details] - Available if .tag is + * delete_team_invite_link_details. + * @property {TeamLogMemberAddExternalIdDetails} + * [member_add_external_id_details] - Available if .tag is + * member_add_external_id_details. + * @property {TeamLogMemberAddNameDetails} [member_add_name_details] - Available + * if .tag is member_add_name_details. + * @property {TeamLogMemberChangeAdminRoleDetails} + * [member_change_admin_role_details] - Available if .tag is + * member_change_admin_role_details. + * @property {TeamLogMemberChangeEmailDetails} [member_change_email_details] - + * Available if .tag is member_change_email_details. + * @property {TeamLogMemberChangeExternalIdDetails} + * [member_change_external_id_details] - Available if .tag is + * member_change_external_id_details. + * @property {TeamLogMemberChangeMembershipTypeDetails} + * [member_change_membership_type_details] - Available if .tag is + * member_change_membership_type_details. + * @property {TeamLogMemberChangeNameDetails} [member_change_name_details] - + * Available if .tag is member_change_name_details. + * @property {TeamLogMemberChangeResellerRoleDetails} + * [member_change_reseller_role_details] - Available if .tag is + * member_change_reseller_role_details. + * @property {TeamLogMemberChangeStatusDetails} [member_change_status_details] - + * Available if .tag is member_change_status_details. + * @property {TeamLogMemberDeleteManualContactsDetails} + * [member_delete_manual_contacts_details] - Available if .tag is + * member_delete_manual_contacts_details. + * @property {TeamLogMemberDeleteProfilePhotoDetails} + * [member_delete_profile_photo_details] - Available if .tag is + * member_delete_profile_photo_details. + * @property {TeamLogMemberPermanentlyDeleteAccountContentsDetails} + * [member_permanently_delete_account_contents_details] - Available if .tag is + * member_permanently_delete_account_contents_details. + * @property {TeamLogMemberRemoveExternalIdDetails} + * [member_remove_external_id_details] - Available if .tag is + * member_remove_external_id_details. + * @property {TeamLogMemberSetProfilePhotoDetails} + * [member_set_profile_photo_details] - Available if .tag is + * member_set_profile_photo_details. + * @property {TeamLogMemberSpaceLimitsAddCustomQuotaDetails} + * [member_space_limits_add_custom_quota_details] - Available if .tag is + * member_space_limits_add_custom_quota_details. + * @property {TeamLogMemberSpaceLimitsChangeCustomQuotaDetails} + * [member_space_limits_change_custom_quota_details] - Available if .tag is + * member_space_limits_change_custom_quota_details. + * @property {TeamLogMemberSpaceLimitsChangeStatusDetails} + * [member_space_limits_change_status_details] - Available if .tag is + * member_space_limits_change_status_details. + * @property {TeamLogMemberSpaceLimitsRemoveCustomQuotaDetails} + * [member_space_limits_remove_custom_quota_details] - Available if .tag is + * member_space_limits_remove_custom_quota_details. + * @property {TeamLogMemberSuggestDetails} [member_suggest_details] - Available + * if .tag is member_suggest_details. + * @property {TeamLogMemberTransferAccountContentsDetails} + * [member_transfer_account_contents_details] - Available if .tag is + * member_transfer_account_contents_details. + * @property {TeamLogPendingSecondaryEmailAddedDetails} + * [pending_secondary_email_added_details] - Available if .tag is + * pending_secondary_email_added_details. + * @property {TeamLogSecondaryEmailDeletedDetails} + * [secondary_email_deleted_details] - Available if .tag is + * secondary_email_deleted_details. + * @property {TeamLogSecondaryEmailVerifiedDetails} + * [secondary_email_verified_details] - Available if .tag is + * secondary_email_verified_details. + * @property {TeamLogSecondaryMailsPolicyChangedDetails} + * [secondary_mails_policy_changed_details] - Available if .tag is + * secondary_mails_policy_changed_details. + * @property {TeamLogBinderAddPageDetails} [binder_add_page_details] - Available + * if .tag is binder_add_page_details. + * @property {TeamLogBinderAddSectionDetails} [binder_add_section_details] - + * Available if .tag is binder_add_section_details. + * @property {TeamLogBinderRemovePageDetails} [binder_remove_page_details] - + * Available if .tag is binder_remove_page_details. + * @property {TeamLogBinderRemoveSectionDetails} [binder_remove_section_details] + * - Available if .tag is binder_remove_section_details. + * @property {TeamLogBinderRenamePageDetails} [binder_rename_page_details] - + * Available if .tag is binder_rename_page_details. + * @property {TeamLogBinderRenameSectionDetails} [binder_rename_section_details] + * - Available if .tag is binder_rename_section_details. + * @property {TeamLogBinderReorderPageDetails} [binder_reorder_page_details] - + * Available if .tag is binder_reorder_page_details. + * @property {TeamLogBinderReorderSectionDetails} + * [binder_reorder_section_details] - Available if .tag is + * binder_reorder_section_details. + * @property {TeamLogPaperContentAddMemberDetails} + * [paper_content_add_member_details] - Available if .tag is + * paper_content_add_member_details. + * @property {TeamLogPaperContentAddToFolderDetails} + * [paper_content_add_to_folder_details] - Available if .tag is + * paper_content_add_to_folder_details. + * @property {TeamLogPaperContentArchiveDetails} [paper_content_archive_details] + * - Available if .tag is paper_content_archive_details. + * @property {TeamLogPaperContentCreateDetails} [paper_content_create_details] - + * Available if .tag is paper_content_create_details. + * @property {TeamLogPaperContentPermanentlyDeleteDetails} + * [paper_content_permanently_delete_details] - Available if .tag is + * paper_content_permanently_delete_details. + * @property {TeamLogPaperContentRemoveFromFolderDetails} + * [paper_content_remove_from_folder_details] - Available if .tag is + * paper_content_remove_from_folder_details. + * @property {TeamLogPaperContentRemoveMemberDetails} + * [paper_content_remove_member_details] - Available if .tag is + * paper_content_remove_member_details. + * @property {TeamLogPaperContentRenameDetails} [paper_content_rename_details] - + * Available if .tag is paper_content_rename_details. + * @property {TeamLogPaperContentRestoreDetails} [paper_content_restore_details] + * - Available if .tag is paper_content_restore_details. + * @property {TeamLogPaperDocAddCommentDetails} [paper_doc_add_comment_details] + * - Available if .tag is paper_doc_add_comment_details. + * @property {TeamLogPaperDocChangeMemberRoleDetails} + * [paper_doc_change_member_role_details] - Available if .tag is + * paper_doc_change_member_role_details. + * @property {TeamLogPaperDocChangeSharingPolicyDetails} + * [paper_doc_change_sharing_policy_details] - Available if .tag is + * paper_doc_change_sharing_policy_details. + * @property {TeamLogPaperDocChangeSubscriptionDetails} + * [paper_doc_change_subscription_details] - Available if .tag is + * paper_doc_change_subscription_details. + * @property {TeamLogPaperDocDeletedDetails} [paper_doc_deleted_details] - + * Available if .tag is paper_doc_deleted_details. + * @property {TeamLogPaperDocDeleteCommentDetails} + * [paper_doc_delete_comment_details] - Available if .tag is + * paper_doc_delete_comment_details. + * @property {TeamLogPaperDocDownloadDetails} [paper_doc_download_details] - + * Available if .tag is paper_doc_download_details. + * @property {TeamLogPaperDocEditDetails} [paper_doc_edit_details] - Available + * if .tag is paper_doc_edit_details. + * @property {TeamLogPaperDocEditCommentDetails} + * [paper_doc_edit_comment_details] - Available if .tag is + * paper_doc_edit_comment_details. + * @property {TeamLogPaperDocFollowedDetails} [paper_doc_followed_details] - + * Available if .tag is paper_doc_followed_details. + * @property {TeamLogPaperDocMentionDetails} [paper_doc_mention_details] - + * Available if .tag is paper_doc_mention_details. + * @property {TeamLogPaperDocOwnershipChangedDetails} + * [paper_doc_ownership_changed_details] - Available if .tag is + * paper_doc_ownership_changed_details. + * @property {TeamLogPaperDocRequestAccessDetails} + * [paper_doc_request_access_details] - Available if .tag is + * paper_doc_request_access_details. + * @property {TeamLogPaperDocResolveCommentDetails} + * [paper_doc_resolve_comment_details] - Available if .tag is + * paper_doc_resolve_comment_details. + * @property {TeamLogPaperDocRevertDetails} [paper_doc_revert_details] - + * Available if .tag is paper_doc_revert_details. + * @property {TeamLogPaperDocSlackShareDetails} [paper_doc_slack_share_details] + * - Available if .tag is paper_doc_slack_share_details. + * @property {TeamLogPaperDocTeamInviteDetails} [paper_doc_team_invite_details] + * - Available if .tag is paper_doc_team_invite_details. + * @property {TeamLogPaperDocTrashedDetails} [paper_doc_trashed_details] - + * Available if .tag is paper_doc_trashed_details. + * @property {TeamLogPaperDocUnresolveCommentDetails} + * [paper_doc_unresolve_comment_details] - Available if .tag is + * paper_doc_unresolve_comment_details. + * @property {TeamLogPaperDocUntrashedDetails} [paper_doc_untrashed_details] - + * Available if .tag is paper_doc_untrashed_details. + * @property {TeamLogPaperDocViewDetails} [paper_doc_view_details] - Available + * if .tag is paper_doc_view_details. + * @property {TeamLogPaperExternalViewAllowDetails} + * [paper_external_view_allow_details] - Available if .tag is + * paper_external_view_allow_details. + * @property {TeamLogPaperExternalViewDefaultTeamDetails} + * [paper_external_view_default_team_details] - Available if .tag is + * paper_external_view_default_team_details. + * @property {TeamLogPaperExternalViewForbidDetails} + * [paper_external_view_forbid_details] - Available if .tag is + * paper_external_view_forbid_details. + * @property {TeamLogPaperFolderChangeSubscriptionDetails} + * [paper_folder_change_subscription_details] - Available if .tag is + * paper_folder_change_subscription_details. + * @property {TeamLogPaperFolderDeletedDetails} [paper_folder_deleted_details] - + * Available if .tag is paper_folder_deleted_details. + * @property {TeamLogPaperFolderFollowedDetails} [paper_folder_followed_details] + * - Available if .tag is paper_folder_followed_details. + * @property {TeamLogPaperFolderTeamInviteDetails} + * [paper_folder_team_invite_details] - Available if .tag is + * paper_folder_team_invite_details. + * @property {TeamLogPaperPublishedLinkChangePermissionDetails} + * [paper_published_link_change_permission_details] - Available if .tag is + * paper_published_link_change_permission_details. + * @property {TeamLogPaperPublishedLinkCreateDetails} + * [paper_published_link_create_details] - Available if .tag is + * paper_published_link_create_details. + * @property {TeamLogPaperPublishedLinkDisabledDetails} + * [paper_published_link_disabled_details] - Available if .tag is + * paper_published_link_disabled_details. + * @property {TeamLogPaperPublishedLinkViewDetails} + * [paper_published_link_view_details] - Available if .tag is + * paper_published_link_view_details. + * @property {TeamLogPasswordChangeDetails} [password_change_details] - + * Available if .tag is password_change_details. + * @property {TeamLogPasswordResetDetails} [password_reset_details] - Available + * if .tag is password_reset_details. + * @property {TeamLogPasswordResetAllDetails} [password_reset_all_details] - + * Available if .tag is password_reset_all_details. + * @property {TeamLogClassificationCreateReportDetails} + * [classification_create_report_details] - Available if .tag is + * classification_create_report_details. + * @property {TeamLogClassificationCreateReportFailDetails} + * [classification_create_report_fail_details] - Available if .tag is + * classification_create_report_fail_details. + * @property {TeamLogEmmCreateExceptionsReportDetails} + * [emm_create_exceptions_report_details] - Available if .tag is + * emm_create_exceptions_report_details. + * @property {TeamLogEmmCreateUsageReportDetails} + * [emm_create_usage_report_details] - Available if .tag is + * emm_create_usage_report_details. + * @property {TeamLogExportMembersReportDetails} [export_members_report_details] + * - Available if .tag is export_members_report_details. + * @property {TeamLogExportMembersReportFailDetails} + * [export_members_report_fail_details] - Available if .tag is + * export_members_report_fail_details. + * @property {TeamLogExternalSharingCreateReportDetails} + * [external_sharing_create_report_details] - Available if .tag is + * external_sharing_create_report_details. + * @property {TeamLogExternalSharingReportFailedDetails} + * [external_sharing_report_failed_details] - Available if .tag is + * external_sharing_report_failed_details. + * @property {TeamLogNoExpirationLinkGenCreateReportDetails} + * [no_expiration_link_gen_create_report_details] - Available if .tag is + * no_expiration_link_gen_create_report_details. + * @property {TeamLogNoExpirationLinkGenReportFailedDetails} + * [no_expiration_link_gen_report_failed_details] - Available if .tag is + * no_expiration_link_gen_report_failed_details. + * @property {TeamLogNoPasswordLinkGenCreateReportDetails} + * [no_password_link_gen_create_report_details] - Available if .tag is + * no_password_link_gen_create_report_details. + * @property {TeamLogNoPasswordLinkGenReportFailedDetails} + * [no_password_link_gen_report_failed_details] - Available if .tag is + * no_password_link_gen_report_failed_details. + * @property {TeamLogNoPasswordLinkViewCreateReportDetails} + * [no_password_link_view_create_report_details] - Available if .tag is + * no_password_link_view_create_report_details. + * @property {TeamLogNoPasswordLinkViewReportFailedDetails} + * [no_password_link_view_report_failed_details] - Available if .tag is + * no_password_link_view_report_failed_details. + * @property {TeamLogOutdatedLinkViewCreateReportDetails} + * [outdated_link_view_create_report_details] - Available if .tag is + * outdated_link_view_create_report_details. + * @property {TeamLogOutdatedLinkViewReportFailedDetails} + * [outdated_link_view_report_failed_details] - Available if .tag is + * outdated_link_view_report_failed_details. + * @property {TeamLogPaperAdminExportStartDetails} + * [paper_admin_export_start_details] - Available if .tag is + * paper_admin_export_start_details. + * @property {TeamLogSmartSyncCreateAdminPrivilegeReportDetails} + * [smart_sync_create_admin_privilege_report_details] - Available if .tag is + * smart_sync_create_admin_privilege_report_details. + * @property {TeamLogTeamActivityCreateReportDetails} + * [team_activity_create_report_details] - Available if .tag is + * team_activity_create_report_details. + * @property {TeamLogTeamActivityCreateReportFailDetails} + * [team_activity_create_report_fail_details] - Available if .tag is + * team_activity_create_report_fail_details. + * @property {TeamLogCollectionShareDetails} [collection_share_details] - + * Available if .tag is collection_share_details. + * @property {TeamLogFileTransfersFileAddDetails} + * [file_transfers_file_add_details] - Available if .tag is + * file_transfers_file_add_details. + * @property {TeamLogFileTransfersTransferDeleteDetails} + * [file_transfers_transfer_delete_details] - Available if .tag is + * file_transfers_transfer_delete_details. + * @property {TeamLogFileTransfersTransferDownloadDetails} + * [file_transfers_transfer_download_details] - Available if .tag is + * file_transfers_transfer_download_details. + * @property {TeamLogFileTransfersTransferSendDetails} + * [file_transfers_transfer_send_details] - Available if .tag is + * file_transfers_transfer_send_details. + * @property {TeamLogFileTransfersTransferViewDetails} + * [file_transfers_transfer_view_details] - Available if .tag is + * file_transfers_transfer_view_details. + * @property {TeamLogNoteAclInviteOnlyDetails} [note_acl_invite_only_details] - + * Available if .tag is note_acl_invite_only_details. + * @property {TeamLogNoteAclLinkDetails} [note_acl_link_details] - Available if + * .tag is note_acl_link_details. + * @property {TeamLogNoteAclTeamLinkDetails} [note_acl_team_link_details] - + * Available if .tag is note_acl_team_link_details. + * @property {TeamLogNoteSharedDetails} [note_shared_details] - Available if + * .tag is note_shared_details. + * @property {TeamLogNoteShareReceiveDetails} [note_share_receive_details] - + * Available if .tag is note_share_receive_details. + * @property {TeamLogOpenNoteSharedDetails} [open_note_shared_details] - + * Available if .tag is open_note_shared_details. + * @property {TeamLogSfAddGroupDetails} [sf_add_group_details] - Available if + * .tag is sf_add_group_details. + * @property {TeamLogSfAllowNonMembersToViewSharedLinksDetails} + * [sf_allow_non_members_to_view_shared_links_details] - Available if .tag is + * sf_allow_non_members_to_view_shared_links_details. + * @property {TeamLogSfExternalInviteWarnDetails} + * [sf_external_invite_warn_details] - Available if .tag is + * sf_external_invite_warn_details. + * @property {TeamLogSfFbInviteDetails} [sf_fb_invite_details] - Available if + * .tag is sf_fb_invite_details. + * @property {TeamLogSfFbInviteChangeRoleDetails} + * [sf_fb_invite_change_role_details] - Available if .tag is + * sf_fb_invite_change_role_details. + * @property {TeamLogSfFbUninviteDetails} [sf_fb_uninvite_details] - Available + * if .tag is sf_fb_uninvite_details. + * @property {TeamLogSfInviteGroupDetails} [sf_invite_group_details] - Available + * if .tag is sf_invite_group_details. + * @property {TeamLogSfTeamGrantAccessDetails} [sf_team_grant_access_details] - + * Available if .tag is sf_team_grant_access_details. + * @property {TeamLogSfTeamInviteDetails} [sf_team_invite_details] - Available + * if .tag is sf_team_invite_details. + * @property {TeamLogSfTeamInviteChangeRoleDetails} + * [sf_team_invite_change_role_details] - Available if .tag is + * sf_team_invite_change_role_details. + * @property {TeamLogSfTeamJoinDetails} [sf_team_join_details] - Available if + * .tag is sf_team_join_details. + * @property {TeamLogSfTeamJoinFromOobLinkDetails} + * [sf_team_join_from_oob_link_details] - Available if .tag is + * sf_team_join_from_oob_link_details. + * @property {TeamLogSfTeamUninviteDetails} [sf_team_uninvite_details] - + * Available if .tag is sf_team_uninvite_details. + * @property {TeamLogSharedContentAddInviteesDetails} + * [shared_content_add_invitees_details] - Available if .tag is + * shared_content_add_invitees_details. + * @property {TeamLogSharedContentAddLinkExpiryDetails} + * [shared_content_add_link_expiry_details] - Available if .tag is + * shared_content_add_link_expiry_details. + * @property {TeamLogSharedContentAddLinkPasswordDetails} + * [shared_content_add_link_password_details] - Available if .tag is + * shared_content_add_link_password_details. + * @property {TeamLogSharedContentAddMemberDetails} + * [shared_content_add_member_details] - Available if .tag is + * shared_content_add_member_details. + * @property {TeamLogSharedContentChangeDownloadsPolicyDetails} + * [shared_content_change_downloads_policy_details] - Available if .tag is + * shared_content_change_downloads_policy_details. + * @property {TeamLogSharedContentChangeInviteeRoleDetails} + * [shared_content_change_invitee_role_details] - Available if .tag is + * shared_content_change_invitee_role_details. + * @property {TeamLogSharedContentChangeLinkAudienceDetails} + * [shared_content_change_link_audience_details] - Available if .tag is + * shared_content_change_link_audience_details. + * @property {TeamLogSharedContentChangeLinkExpiryDetails} + * [shared_content_change_link_expiry_details] - Available if .tag is + * shared_content_change_link_expiry_details. + * @property {TeamLogSharedContentChangeLinkPasswordDetails} + * [shared_content_change_link_password_details] - Available if .tag is + * shared_content_change_link_password_details. + * @property {TeamLogSharedContentChangeMemberRoleDetails} + * [shared_content_change_member_role_details] - Available if .tag is + * shared_content_change_member_role_details. + * @property {TeamLogSharedContentChangeViewerInfoPolicyDetails} + * [shared_content_change_viewer_info_policy_details] - Available if .tag is + * shared_content_change_viewer_info_policy_details. + * @property {TeamLogSharedContentClaimInvitationDetails} + * [shared_content_claim_invitation_details] - Available if .tag is + * shared_content_claim_invitation_details. + * @property {TeamLogSharedContentCopyDetails} [shared_content_copy_details] - + * Available if .tag is shared_content_copy_details. + * @property {TeamLogSharedContentDownloadDetails} + * [shared_content_download_details] - Available if .tag is + * shared_content_download_details. + * @property {TeamLogSharedContentRelinquishMembershipDetails} + * [shared_content_relinquish_membership_details] - Available if .tag is + * shared_content_relinquish_membership_details. + * @property {TeamLogSharedContentRemoveInviteesDetails} + * [shared_content_remove_invitees_details] - Available if .tag is + * shared_content_remove_invitees_details. + * @property {TeamLogSharedContentRemoveLinkExpiryDetails} + * [shared_content_remove_link_expiry_details] - Available if .tag is + * shared_content_remove_link_expiry_details. + * @property {TeamLogSharedContentRemoveLinkPasswordDetails} + * [shared_content_remove_link_password_details] - Available if .tag is + * shared_content_remove_link_password_details. + * @property {TeamLogSharedContentRemoveMemberDetails} + * [shared_content_remove_member_details] - Available if .tag is + * shared_content_remove_member_details. + * @property {TeamLogSharedContentRequestAccessDetails} + * [shared_content_request_access_details] - Available if .tag is + * shared_content_request_access_details. + * @property {TeamLogSharedContentRestoreInviteesDetails} + * [shared_content_restore_invitees_details] - Available if .tag is + * shared_content_restore_invitees_details. + * @property {TeamLogSharedContentRestoreMemberDetails} + * [shared_content_restore_member_details] - Available if .tag is + * shared_content_restore_member_details. + * @property {TeamLogSharedContentUnshareDetails} + * [shared_content_unshare_details] - Available if .tag is + * shared_content_unshare_details. + * @property {TeamLogSharedContentViewDetails} [shared_content_view_details] - + * Available if .tag is shared_content_view_details. + * @property {TeamLogSharedFolderChangeLinkPolicyDetails} + * [shared_folder_change_link_policy_details] - Available if .tag is + * shared_folder_change_link_policy_details. + * @property {TeamLogSharedFolderChangeMembersInheritancePolicyDetails} + * [shared_folder_change_members_inheritance_policy_details] - Available if .tag + * is shared_folder_change_members_inheritance_policy_details. + * @property {TeamLogSharedFolderChangeMembersManagementPolicyDetails} + * [shared_folder_change_members_management_policy_details] - Available if .tag + * is shared_folder_change_members_management_policy_details. + * @property {TeamLogSharedFolderChangeMembersPolicyDetails} + * [shared_folder_change_members_policy_details] - Available if .tag is + * shared_folder_change_members_policy_details. + * @property {TeamLogSharedFolderCreateDetails} [shared_folder_create_details] - + * Available if .tag is shared_folder_create_details. + * @property {TeamLogSharedFolderDeclineInvitationDetails} + * [shared_folder_decline_invitation_details] - Available if .tag is + * shared_folder_decline_invitation_details. + * @property {TeamLogSharedFolderMountDetails} [shared_folder_mount_details] - + * Available if .tag is shared_folder_mount_details. + * @property {TeamLogSharedFolderNestDetails} [shared_folder_nest_details] - + * Available if .tag is shared_folder_nest_details. + * @property {TeamLogSharedFolderTransferOwnershipDetails} + * [shared_folder_transfer_ownership_details] - Available if .tag is + * shared_folder_transfer_ownership_details. + * @property {TeamLogSharedFolderUnmountDetails} [shared_folder_unmount_details] + * - Available if .tag is shared_folder_unmount_details. + * @property {TeamLogSharedLinkAddExpiryDetails} + * [shared_link_add_expiry_details] - Available if .tag is + * shared_link_add_expiry_details. + * @property {TeamLogSharedLinkChangeExpiryDetails} + * [shared_link_change_expiry_details] - Available if .tag is + * shared_link_change_expiry_details. + * @property {TeamLogSharedLinkChangeVisibilityDetails} + * [shared_link_change_visibility_details] - Available if .tag is + * shared_link_change_visibility_details. + * @property {TeamLogSharedLinkCopyDetails} [shared_link_copy_details] - + * Available if .tag is shared_link_copy_details. + * @property {TeamLogSharedLinkCreateDetails} [shared_link_create_details] - + * Available if .tag is shared_link_create_details. + * @property {TeamLogSharedLinkDisableDetails} [shared_link_disable_details] - + * Available if .tag is shared_link_disable_details. + * @property {TeamLogSharedLinkDownloadDetails} [shared_link_download_details] - + * Available if .tag is shared_link_download_details. + * @property {TeamLogSharedLinkRemoveExpiryDetails} + * [shared_link_remove_expiry_details] - Available if .tag is + * shared_link_remove_expiry_details. + * @property {TeamLogSharedLinkSettingsAddExpirationDetails} + * [shared_link_settings_add_expiration_details] - Available if .tag is + * shared_link_settings_add_expiration_details. + * @property {TeamLogSharedLinkSettingsAddPasswordDetails} + * [shared_link_settings_add_password_details] - Available if .tag is + * shared_link_settings_add_password_details. + * @property {TeamLogSharedLinkSettingsAllowDownloadDisabledDetails} + * [shared_link_settings_allow_download_disabled_details] - Available if .tag is + * shared_link_settings_allow_download_disabled_details. + * @property {TeamLogSharedLinkSettingsAllowDownloadEnabledDetails} + * [shared_link_settings_allow_download_enabled_details] - Available if .tag is + * shared_link_settings_allow_download_enabled_details. + * @property {TeamLogSharedLinkSettingsChangeAudienceDetails} + * [shared_link_settings_change_audience_details] - Available if .tag is + * shared_link_settings_change_audience_details. + * @property {TeamLogSharedLinkSettingsChangeExpirationDetails} + * [shared_link_settings_change_expiration_details] - Available if .tag is + * shared_link_settings_change_expiration_details. + * @property {TeamLogSharedLinkSettingsChangePasswordDetails} + * [shared_link_settings_change_password_details] - Available if .tag is + * shared_link_settings_change_password_details. + * @property {TeamLogSharedLinkSettingsRemoveExpirationDetails} + * [shared_link_settings_remove_expiration_details] - Available if .tag is + * shared_link_settings_remove_expiration_details. + * @property {TeamLogSharedLinkSettingsRemovePasswordDetails} + * [shared_link_settings_remove_password_details] - Available if .tag is + * shared_link_settings_remove_password_details. + * @property {TeamLogSharedLinkShareDetails} [shared_link_share_details] - + * Available if .tag is shared_link_share_details. + * @property {TeamLogSharedLinkViewDetails} [shared_link_view_details] - + * Available if .tag is shared_link_view_details. + * @property {TeamLogSharedNoteOpenedDetails} [shared_note_opened_details] - + * Available if .tag is shared_note_opened_details. + * @property {TeamLogShmodelDisableDownloadsDetails} + * [shmodel_disable_downloads_details] - Available if .tag is + * shmodel_disable_downloads_details. + * @property {TeamLogShmodelEnableDownloadsDetails} + * [shmodel_enable_downloads_details] - Available if .tag is + * shmodel_enable_downloads_details. + * @property {TeamLogShmodelGroupShareDetails} [shmodel_group_share_details] - + * Available if .tag is shmodel_group_share_details. + * @property {TeamLogShowcaseAccessGrantedDetails} + * [showcase_access_granted_details] - Available if .tag is + * showcase_access_granted_details. + * @property {TeamLogShowcaseAddMemberDetails} [showcase_add_member_details] - + * Available if .tag is showcase_add_member_details. + * @property {TeamLogShowcaseArchivedDetails} [showcase_archived_details] - + * Available if .tag is showcase_archived_details. + * @property {TeamLogShowcaseCreatedDetails} [showcase_created_details] - + * Available if .tag is showcase_created_details. + * @property {TeamLogShowcaseDeleteCommentDetails} + * [showcase_delete_comment_details] - Available if .tag is + * showcase_delete_comment_details. + * @property {TeamLogShowcaseEditedDetails} [showcase_edited_details] - + * Available if .tag is showcase_edited_details. + * @property {TeamLogShowcaseEditCommentDetails} [showcase_edit_comment_details] + * - Available if .tag is showcase_edit_comment_details. + * @property {TeamLogShowcaseFileAddedDetails} [showcase_file_added_details] - + * Available if .tag is showcase_file_added_details. + * @property {TeamLogShowcaseFileDownloadDetails} + * [showcase_file_download_details] - Available if .tag is + * showcase_file_download_details. + * @property {TeamLogShowcaseFileRemovedDetails} [showcase_file_removed_details] + * - Available if .tag is showcase_file_removed_details. + * @property {TeamLogShowcaseFileViewDetails} [showcase_file_view_details] - + * Available if .tag is showcase_file_view_details. + * @property {TeamLogShowcasePermanentlyDeletedDetails} + * [showcase_permanently_deleted_details] - Available if .tag is + * showcase_permanently_deleted_details. + * @property {TeamLogShowcasePostCommentDetails} [showcase_post_comment_details] + * - Available if .tag is showcase_post_comment_details. + * @property {TeamLogShowcaseRemoveMemberDetails} + * [showcase_remove_member_details] - Available if .tag is + * showcase_remove_member_details. + * @property {TeamLogShowcaseRenamedDetails} [showcase_renamed_details] - + * Available if .tag is showcase_renamed_details. + * @property {TeamLogShowcaseRequestAccessDetails} + * [showcase_request_access_details] - Available if .tag is + * showcase_request_access_details. + * @property {TeamLogShowcaseResolveCommentDetails} + * [showcase_resolve_comment_details] - Available if .tag is + * showcase_resolve_comment_details. + * @property {TeamLogShowcaseRestoredDetails} [showcase_restored_details] - + * Available if .tag is showcase_restored_details. + * @property {TeamLogShowcaseTrashedDetails} [showcase_trashed_details] - + * Available if .tag is showcase_trashed_details. + * @property {TeamLogShowcaseTrashedDeprecatedDetails} + * [showcase_trashed_deprecated_details] - Available if .tag is + * showcase_trashed_deprecated_details. + * @property {TeamLogShowcaseUnresolveCommentDetails} + * [showcase_unresolve_comment_details] - Available if .tag is + * showcase_unresolve_comment_details. + * @property {TeamLogShowcaseUntrashedDetails} [showcase_untrashed_details] - + * Available if .tag is showcase_untrashed_details. + * @property {TeamLogShowcaseUntrashedDeprecatedDetails} + * [showcase_untrashed_deprecated_details] - Available if .tag is + * showcase_untrashed_deprecated_details. + * @property {TeamLogShowcaseViewDetails} [showcase_view_details] - Available if + * .tag is showcase_view_details. + * @property {TeamLogSsoAddCertDetails} [sso_add_cert_details] - Available if + * .tag is sso_add_cert_details. + * @property {TeamLogSsoAddLoginUrlDetails} [sso_add_login_url_details] - + * Available if .tag is sso_add_login_url_details. + * @property {TeamLogSsoAddLogoutUrlDetails} [sso_add_logout_url_details] - + * Available if .tag is sso_add_logout_url_details. + * @property {TeamLogSsoChangeCertDetails} [sso_change_cert_details] - Available + * if .tag is sso_change_cert_details. + * @property {TeamLogSsoChangeLoginUrlDetails} [sso_change_login_url_details] - + * Available if .tag is sso_change_login_url_details. + * @property {TeamLogSsoChangeLogoutUrlDetails} [sso_change_logout_url_details] + * - Available if .tag is sso_change_logout_url_details. + * @property {TeamLogSsoChangeSamlIdentityModeDetails} + * [sso_change_saml_identity_mode_details] - Available if .tag is + * sso_change_saml_identity_mode_details. + * @property {TeamLogSsoRemoveCertDetails} [sso_remove_cert_details] - Available + * if .tag is sso_remove_cert_details. + * @property {TeamLogSsoRemoveLoginUrlDetails} [sso_remove_login_url_details] - + * Available if .tag is sso_remove_login_url_details. + * @property {TeamLogSsoRemoveLogoutUrlDetails} [sso_remove_logout_url_details] + * - Available if .tag is sso_remove_logout_url_details. + * @property {TeamLogTeamFolderChangeStatusDetails} + * [team_folder_change_status_details] - Available if .tag is + * team_folder_change_status_details. + * @property {TeamLogTeamFolderCreateDetails} [team_folder_create_details] - + * Available if .tag is team_folder_create_details. + * @property {TeamLogTeamFolderDowngradeDetails} [team_folder_downgrade_details] + * - Available if .tag is team_folder_downgrade_details. + * @property {TeamLogTeamFolderPermanentlyDeleteDetails} + * [team_folder_permanently_delete_details] - Available if .tag is + * team_folder_permanently_delete_details. + * @property {TeamLogTeamFolderRenameDetails} [team_folder_rename_details] - + * Available if .tag is team_folder_rename_details. + * @property {TeamLogTeamSelectiveSyncSettingsChangedDetails} + * [team_selective_sync_settings_changed_details] - Available if .tag is + * team_selective_sync_settings_changed_details. + * @property {TeamLogAccountCaptureChangePolicyDetails} + * [account_capture_change_policy_details] - Available if .tag is + * account_capture_change_policy_details. + * @property {TeamLogAdminEmailRemindersChangedDetails} + * [admin_email_reminders_changed_details] - Available if .tag is + * admin_email_reminders_changed_details. + * @property {TeamLogAllowDownloadDisabledDetails} + * [allow_download_disabled_details] - Available if .tag is + * allow_download_disabled_details. + * @property {TeamLogAllowDownloadEnabledDetails} + * [allow_download_enabled_details] - Available if .tag is + * allow_download_enabled_details. + * @property {TeamLogAppPermissionsChangedDetails} + * [app_permissions_changed_details] - Available if .tag is + * app_permissions_changed_details. + * @property {TeamLogCameraUploadsPolicyChangedDetails} + * [camera_uploads_policy_changed_details] - Available if .tag is + * camera_uploads_policy_changed_details. + * @property {TeamLogCaptureTranscriptPolicyChangedDetails} + * [capture_transcript_policy_changed_details] - Available if .tag is + * capture_transcript_policy_changed_details. + * @property {TeamLogClassificationChangePolicyDetails} + * [classification_change_policy_details] - Available if .tag is + * classification_change_policy_details. + * @property {TeamLogComputerBackupPolicyChangedDetails} + * [computer_backup_policy_changed_details] - Available if .tag is + * computer_backup_policy_changed_details. + * @property {TeamLogContentAdministrationPolicyChangedDetails} + * [content_administration_policy_changed_details] - Available if .tag is + * content_administration_policy_changed_details. + * @property {TeamLogDataPlacementRestrictionChangePolicyDetails} + * [data_placement_restriction_change_policy_details] - Available if .tag is + * data_placement_restriction_change_policy_details. + * @property {TeamLogDataPlacementRestrictionSatisfyPolicyDetails} + * [data_placement_restriction_satisfy_policy_details] - Available if .tag is + * data_placement_restriction_satisfy_policy_details. + * @property {TeamLogDeviceApprovalsAddExceptionDetails} + * [device_approvals_add_exception_details] - Available if .tag is + * device_approvals_add_exception_details. + * @property {TeamLogDeviceApprovalsChangeDesktopPolicyDetails} + * [device_approvals_change_desktop_policy_details] - Available if .tag is + * device_approvals_change_desktop_policy_details. + * @property {TeamLogDeviceApprovalsChangeMobilePolicyDetails} + * [device_approvals_change_mobile_policy_details] - Available if .tag is + * device_approvals_change_mobile_policy_details. + * @property {TeamLogDeviceApprovalsChangeOverageActionDetails} + * [device_approvals_change_overage_action_details] - Available if .tag is + * device_approvals_change_overage_action_details. + * @property {TeamLogDeviceApprovalsChangeUnlinkActionDetails} + * [device_approvals_change_unlink_action_details] - Available if .tag is + * device_approvals_change_unlink_action_details. + * @property {TeamLogDeviceApprovalsRemoveExceptionDetails} + * [device_approvals_remove_exception_details] - Available if .tag is + * device_approvals_remove_exception_details. + * @property {TeamLogDirectoryRestrictionsAddMembersDetails} + * [directory_restrictions_add_members_details] - Available if .tag is + * directory_restrictions_add_members_details. + * @property {TeamLogDirectoryRestrictionsRemoveMembersDetails} + * [directory_restrictions_remove_members_details] - Available if .tag is + * directory_restrictions_remove_members_details. + * @property {TeamLogDropboxPasswordsPolicyChangedDetails} + * [dropbox_passwords_policy_changed_details] - Available if .tag is + * dropbox_passwords_policy_changed_details. + * @property {TeamLogEmailIngestPolicyChangedDetails} + * [email_ingest_policy_changed_details] - Available if .tag is + * email_ingest_policy_changed_details. + * @property {TeamLogEmmAddExceptionDetails} [emm_add_exception_details] - + * Available if .tag is emm_add_exception_details. + * @property {TeamLogEmmChangePolicyDetails} [emm_change_policy_details] - + * Available if .tag is emm_change_policy_details. + * @property {TeamLogEmmRemoveExceptionDetails} [emm_remove_exception_details] - + * Available if .tag is emm_remove_exception_details. + * @property {TeamLogExtendedVersionHistoryChangePolicyDetails} + * [extended_version_history_change_policy_details] - Available if .tag is + * extended_version_history_change_policy_details. + * @property {TeamLogExternalDriveBackupPolicyChangedDetails} + * [external_drive_backup_policy_changed_details] - Available if .tag is + * external_drive_backup_policy_changed_details. + * @property {TeamLogFileCommentsChangePolicyDetails} + * [file_comments_change_policy_details] - Available if .tag is + * file_comments_change_policy_details. + * @property {TeamLogFileLockingPolicyChangedDetails} + * [file_locking_policy_changed_details] - Available if .tag is + * file_locking_policy_changed_details. + * @property {TeamLogFileProviderMigrationPolicyChangedDetails} + * [file_provider_migration_policy_changed_details] - Available if .tag is + * file_provider_migration_policy_changed_details. + * @property {TeamLogFileRequestsChangePolicyDetails} + * [file_requests_change_policy_details] - Available if .tag is + * file_requests_change_policy_details. + * @property {TeamLogFileRequestsEmailsEnabledDetails} + * [file_requests_emails_enabled_details] - Available if .tag is + * file_requests_emails_enabled_details. + * @property {TeamLogFileRequestsEmailsRestrictedToTeamOnlyDetails} + * [file_requests_emails_restricted_to_team_only_details] - Available if .tag is + * file_requests_emails_restricted_to_team_only_details. + * @property {TeamLogFileTransfersPolicyChangedDetails} + * [file_transfers_policy_changed_details] - Available if .tag is + * file_transfers_policy_changed_details. + * @property {TeamLogFolderLinkRestrictionPolicyChangedDetails} + * [folder_link_restriction_policy_changed_details] - Available if .tag is + * folder_link_restriction_policy_changed_details. + * @property {TeamLogGoogleSsoChangePolicyDetails} + * [google_sso_change_policy_details] - Available if .tag is + * google_sso_change_policy_details. + * @property {TeamLogGroupUserManagementChangePolicyDetails} + * [group_user_management_change_policy_details] - Available if .tag is + * group_user_management_change_policy_details. + * @property {TeamLogIntegrationPolicyChangedDetails} + * [integration_policy_changed_details] - Available if .tag is + * integration_policy_changed_details. + * @property {TeamLogInviteAcceptanceEmailPolicyChangedDetails} + * [invite_acceptance_email_policy_changed_details] - Available if .tag is + * invite_acceptance_email_policy_changed_details. + * @property {TeamLogMemberRequestsChangePolicyDetails} + * [member_requests_change_policy_details] - Available if .tag is + * member_requests_change_policy_details. + * @property {TeamLogMemberSendInvitePolicyChangedDetails} + * [member_send_invite_policy_changed_details] - Available if .tag is + * member_send_invite_policy_changed_details. + * @property {TeamLogMemberSpaceLimitsAddExceptionDetails} + * [member_space_limits_add_exception_details] - Available if .tag is + * member_space_limits_add_exception_details. + * @property {TeamLogMemberSpaceLimitsChangeCapsTypePolicyDetails} + * [member_space_limits_change_caps_type_policy_details] - Available if .tag is + * member_space_limits_change_caps_type_policy_details. + * @property {TeamLogMemberSpaceLimitsChangePolicyDetails} + * [member_space_limits_change_policy_details] - Available if .tag is + * member_space_limits_change_policy_details. + * @property {TeamLogMemberSpaceLimitsRemoveExceptionDetails} + * [member_space_limits_remove_exception_details] - Available if .tag is + * member_space_limits_remove_exception_details. + * @property {TeamLogMemberSuggestionsChangePolicyDetails} + * [member_suggestions_change_policy_details] - Available if .tag is + * member_suggestions_change_policy_details. + * @property {TeamLogMicrosoftOfficeAddinChangePolicyDetails} + * [microsoft_office_addin_change_policy_details] - Available if .tag is + * microsoft_office_addin_change_policy_details. + * @property {TeamLogNetworkControlChangePolicyDetails} + * [network_control_change_policy_details] - Available if .tag is + * network_control_change_policy_details. + * @property {TeamLogPaperChangeDeploymentPolicyDetails} + * [paper_change_deployment_policy_details] - Available if .tag is + * paper_change_deployment_policy_details. + * @property {TeamLogPaperChangeMemberLinkPolicyDetails} + * [paper_change_member_link_policy_details] - Available if .tag is + * paper_change_member_link_policy_details. + * @property {TeamLogPaperChangeMemberPolicyDetails} + * [paper_change_member_policy_details] - Available if .tag is + * paper_change_member_policy_details. + * @property {TeamLogPaperChangePolicyDetails} [paper_change_policy_details] - + * Available if .tag is paper_change_policy_details. + * @property {TeamLogPaperDefaultFolderPolicyChangedDetails} + * [paper_default_folder_policy_changed_details] - Available if .tag is + * paper_default_folder_policy_changed_details. + * @property {TeamLogPaperDesktopPolicyChangedDetails} + * [paper_desktop_policy_changed_details] - Available if .tag is + * paper_desktop_policy_changed_details. + * @property {TeamLogPaperEnabledUsersGroupAdditionDetails} + * [paper_enabled_users_group_addition_details] - Available if .tag is + * paper_enabled_users_group_addition_details. + * @property {TeamLogPaperEnabledUsersGroupRemovalDetails} + * [paper_enabled_users_group_removal_details] - Available if .tag is + * paper_enabled_users_group_removal_details. + * @property {TeamLogPasswordStrengthRequirementsChangePolicyDetails} + * [password_strength_requirements_change_policy_details] - Available if .tag is + * password_strength_requirements_change_policy_details. + * @property {TeamLogPermanentDeleteChangePolicyDetails} + * [permanent_delete_change_policy_details] - Available if .tag is + * permanent_delete_change_policy_details. + * @property {TeamLogResellerSupportChangePolicyDetails} + * [reseller_support_change_policy_details] - Available if .tag is + * reseller_support_change_policy_details. + * @property {TeamLogRewindPolicyChangedDetails} [rewind_policy_changed_details] + * - Available if .tag is rewind_policy_changed_details. + * @property {TeamLogSendForSignaturePolicyChangedDetails} + * [send_for_signature_policy_changed_details] - Available if .tag is + * send_for_signature_policy_changed_details. + * @property {TeamLogSharingChangeFolderJoinPolicyDetails} + * [sharing_change_folder_join_policy_details] - Available if .tag is + * sharing_change_folder_join_policy_details. + * @property {TeamLogSharingChangeLinkAllowChangeExpirationPolicyDetails} + * [sharing_change_link_allow_change_expiration_policy_details] - Available if + * .tag is sharing_change_link_allow_change_expiration_policy_details. + * @property {TeamLogSharingChangeLinkDefaultExpirationPolicyDetails} + * [sharing_change_link_default_expiration_policy_details] - Available if .tag + * is sharing_change_link_default_expiration_policy_details. + * @property {TeamLogSharingChangeLinkEnforcePasswordPolicyDetails} + * [sharing_change_link_enforce_password_policy_details] - Available if .tag is + * sharing_change_link_enforce_password_policy_details. + * @property {TeamLogSharingChangeLinkPolicyDetails} + * [sharing_change_link_policy_details] - Available if .tag is + * sharing_change_link_policy_details. + * @property {TeamLogSharingChangeMemberPolicyDetails} + * [sharing_change_member_policy_details] - Available if .tag is + * sharing_change_member_policy_details. + * @property {TeamLogShowcaseChangeDownloadPolicyDetails} + * [showcase_change_download_policy_details] - Available if .tag is + * showcase_change_download_policy_details. + * @property {TeamLogShowcaseChangeEnabledPolicyDetails} + * [showcase_change_enabled_policy_details] - Available if .tag is + * showcase_change_enabled_policy_details. + * @property {TeamLogShowcaseChangeExternalSharingPolicyDetails} + * [showcase_change_external_sharing_policy_details] - Available if .tag is + * showcase_change_external_sharing_policy_details. + * @property {TeamLogSmarterSmartSyncPolicyChangedDetails} + * [smarter_smart_sync_policy_changed_details] - Available if .tag is + * smarter_smart_sync_policy_changed_details. + * @property {TeamLogSmartSyncChangePolicyDetails} + * [smart_sync_change_policy_details] - Available if .tag is + * smart_sync_change_policy_details. + * @property {TeamLogSmartSyncNotOptOutDetails} [smart_sync_not_opt_out_details] + * - Available if .tag is smart_sync_not_opt_out_details. + * @property {TeamLogSmartSyncOptOutDetails} [smart_sync_opt_out_details] - + * Available if .tag is smart_sync_opt_out_details. + * @property {TeamLogSsoChangePolicyDetails} [sso_change_policy_details] - + * Available if .tag is sso_change_policy_details. + * @property {TeamLogTeamBrandingPolicyChangedDetails} + * [team_branding_policy_changed_details] - Available if .tag is + * team_branding_policy_changed_details. + * @property {TeamLogTeamExtensionsPolicyChangedDetails} + * [team_extensions_policy_changed_details] - Available if .tag is + * team_extensions_policy_changed_details. + * @property {TeamLogTeamSelectiveSyncPolicyChangedDetails} + * [team_selective_sync_policy_changed_details] - Available if .tag is + * team_selective_sync_policy_changed_details. + * @property {TeamLogTeamSharingWhitelistSubjectsChangedDetails} + * [team_sharing_whitelist_subjects_changed_details] - Available if .tag is + * team_sharing_whitelist_subjects_changed_details. + * @property {TeamLogTfaAddExceptionDetails} [tfa_add_exception_details] - + * Available if .tag is tfa_add_exception_details. + * @property {TeamLogTfaChangePolicyDetails} [tfa_change_policy_details] - + * Available if .tag is tfa_change_policy_details. + * @property {TeamLogTfaRemoveExceptionDetails} [tfa_remove_exception_details] - + * Available if .tag is tfa_remove_exception_details. + * @property {TeamLogTwoAccountChangePolicyDetails} + * [two_account_change_policy_details] - Available if .tag is + * two_account_change_policy_details. + * @property {TeamLogViewerInfoPolicyChangedDetails} + * [viewer_info_policy_changed_details] - Available if .tag is + * viewer_info_policy_changed_details. + * @property {TeamLogWatermarkingPolicyChangedDetails} + * [watermarking_policy_changed_details] - Available if .tag is + * watermarking_policy_changed_details. + * @property {TeamLogWebSessionsChangeActiveSessionLimitDetails} + * [web_sessions_change_active_session_limit_details] - Available if .tag is + * web_sessions_change_active_session_limit_details. + * @property {TeamLogWebSessionsChangeFixedLengthPolicyDetails} + * [web_sessions_change_fixed_length_policy_details] - Available if .tag is + * web_sessions_change_fixed_length_policy_details. + * @property {TeamLogWebSessionsChangeIdleLengthPolicyDetails} + * [web_sessions_change_idle_length_policy_details] - Available if .tag is + * web_sessions_change_idle_length_policy_details. + * @property {TeamLogDataResidencyMigrationRequestSuccessfulDetails} + * [data_residency_migration_request_successful_details] - Available if .tag is + * data_residency_migration_request_successful_details. + * @property {TeamLogDataResidencyMigrationRequestUnsuccessfulDetails} + * [data_residency_migration_request_unsuccessful_details] - Available if .tag + * is data_residency_migration_request_unsuccessful_details. + * @property {TeamLogTeamMergeFromDetails} [team_merge_from_details] - Available + * if .tag is team_merge_from_details. + * @property {TeamLogTeamMergeToDetails} [team_merge_to_details] - Available if + * .tag is team_merge_to_details. + * @property {TeamLogTeamProfileAddBackgroundDetails} + * [team_profile_add_background_details] - Available if .tag is + * team_profile_add_background_details. + * @property {TeamLogTeamProfileAddLogoDetails} [team_profile_add_logo_details] + * - Available if .tag is team_profile_add_logo_details. + * @property {TeamLogTeamProfileChangeBackgroundDetails} + * [team_profile_change_background_details] - Available if .tag is + * team_profile_change_background_details. + * @property {TeamLogTeamProfileChangeDefaultLanguageDetails} + * [team_profile_change_default_language_details] - Available if .tag is + * team_profile_change_default_language_details. + * @property {TeamLogTeamProfileChangeLogoDetails} + * [team_profile_change_logo_details] - Available if .tag is + * team_profile_change_logo_details. + * @property {TeamLogTeamProfileChangeNameDetails} + * [team_profile_change_name_details] - Available if .tag is + * team_profile_change_name_details. + * @property {TeamLogTeamProfileRemoveBackgroundDetails} + * [team_profile_remove_background_details] - Available if .tag is + * team_profile_remove_background_details. + * @property {TeamLogTeamProfileRemoveLogoDetails} + * [team_profile_remove_logo_details] - Available if .tag is + * team_profile_remove_logo_details. + * @property {TeamLogTfaAddBackupPhoneDetails} [tfa_add_backup_phone_details] - + * Available if .tag is tfa_add_backup_phone_details. + * @property {TeamLogTfaAddSecurityKeyDetails} [tfa_add_security_key_details] - + * Available if .tag is tfa_add_security_key_details. + * @property {TeamLogTfaChangeBackupPhoneDetails} + * [tfa_change_backup_phone_details] - Available if .tag is + * tfa_change_backup_phone_details. + * @property {TeamLogTfaChangeStatusDetails} [tfa_change_status_details] - + * Available if .tag is tfa_change_status_details. + * @property {TeamLogTfaRemoveBackupPhoneDetails} + * [tfa_remove_backup_phone_details] - Available if .tag is + * tfa_remove_backup_phone_details. + * @property {TeamLogTfaRemoveSecurityKeyDetails} + * [tfa_remove_security_key_details] - Available if .tag is + * tfa_remove_security_key_details. + * @property {TeamLogTfaResetDetails} [tfa_reset_details] - Available if .tag is + * tfa_reset_details. + * @property {TeamLogChangedEnterpriseAdminRoleDetails} + * [changed_enterprise_admin_role_details] - Available if .tag is + * changed_enterprise_admin_role_details. + * @property {TeamLogChangedEnterpriseConnectedTeamStatusDetails} + * [changed_enterprise_connected_team_status_details] - Available if .tag is + * changed_enterprise_connected_team_status_details. + * @property {TeamLogEndedEnterpriseAdminSessionDetails} + * [ended_enterprise_admin_session_details] - Available if .tag is + * ended_enterprise_admin_session_details. + * @property {TeamLogEndedEnterpriseAdminSessionDeprecatedDetails} + * [ended_enterprise_admin_session_deprecated_details] - Available if .tag is + * ended_enterprise_admin_session_deprecated_details. + * @property {TeamLogEnterpriseSettingsLockingDetails} + * [enterprise_settings_locking_details] - Available if .tag is + * enterprise_settings_locking_details. + * @property {TeamLogGuestAdminChangeStatusDetails} + * [guest_admin_change_status_details] - Available if .tag is + * guest_admin_change_status_details. + * @property {TeamLogStartedEnterpriseAdminSessionDetails} + * [started_enterprise_admin_session_details] - Available if .tag is + * started_enterprise_admin_session_details. + * @property {TeamLogTeamMergeRequestAcceptedDetails} + * [team_merge_request_accepted_details] - Available if .tag is + * team_merge_request_accepted_details. + * @property {TeamLogTeamMergeRequestAcceptedShownToPrimaryTeamDetails} + * [team_merge_request_accepted_shown_to_primary_team_details] - Available if + * .tag is team_merge_request_accepted_shown_to_primary_team_details. + * @property {TeamLogTeamMergeRequestAcceptedShownToSecondaryTeamDetails} + * [team_merge_request_accepted_shown_to_secondary_team_details] - Available if + * .tag is team_merge_request_accepted_shown_to_secondary_team_details. + * @property {TeamLogTeamMergeRequestAutoCanceledDetails} + * [team_merge_request_auto_canceled_details] - Available if .tag is + * team_merge_request_auto_canceled_details. + * @property {TeamLogTeamMergeRequestCanceledDetails} + * [team_merge_request_canceled_details] - Available if .tag is + * team_merge_request_canceled_details. + * @property {TeamLogTeamMergeRequestCanceledShownToPrimaryTeamDetails} + * [team_merge_request_canceled_shown_to_primary_team_details] - Available if + * .tag is team_merge_request_canceled_shown_to_primary_team_details. + * @property {TeamLogTeamMergeRequestCanceledShownToSecondaryTeamDetails} + * [team_merge_request_canceled_shown_to_secondary_team_details] - Available if + * .tag is team_merge_request_canceled_shown_to_secondary_team_details. + * @property {TeamLogTeamMergeRequestExpiredDetails} + * [team_merge_request_expired_details] - Available if .tag is + * team_merge_request_expired_details. + * @property {TeamLogTeamMergeRequestExpiredShownToPrimaryTeamDetails} + * [team_merge_request_expired_shown_to_primary_team_details] - Available if + * .tag is team_merge_request_expired_shown_to_primary_team_details. + * @property {TeamLogTeamMergeRequestExpiredShownToSecondaryTeamDetails} + * [team_merge_request_expired_shown_to_secondary_team_details] - Available if + * .tag is team_merge_request_expired_shown_to_secondary_team_details. + * @property {TeamLogTeamMergeRequestRejectedShownToPrimaryTeamDetails} + * [team_merge_request_rejected_shown_to_primary_team_details] - Available if + * .tag is team_merge_request_rejected_shown_to_primary_team_details. + * @property {TeamLogTeamMergeRequestRejectedShownToSecondaryTeamDetails} + * [team_merge_request_rejected_shown_to_secondary_team_details] - Available if + * .tag is team_merge_request_rejected_shown_to_secondary_team_details. + * @property {TeamLogTeamMergeRequestReminderDetails} + * [team_merge_request_reminder_details] - Available if .tag is + * team_merge_request_reminder_details. + * @property {TeamLogTeamMergeRequestReminderShownToPrimaryTeamDetails} + * [team_merge_request_reminder_shown_to_primary_team_details] - Available if + * .tag is team_merge_request_reminder_shown_to_primary_team_details. + * @property {TeamLogTeamMergeRequestReminderShownToSecondaryTeamDetails} + * [team_merge_request_reminder_shown_to_secondary_team_details] - Available if + * .tag is team_merge_request_reminder_shown_to_secondary_team_details. + * @property {TeamLogTeamMergeRequestRevokedDetails} + * [team_merge_request_revoked_details] - Available if .tag is + * team_merge_request_revoked_details. + * @property {TeamLogTeamMergeRequestSentShownToPrimaryTeamDetails} + * [team_merge_request_sent_shown_to_primary_team_details] - Available if .tag + * is team_merge_request_sent_shown_to_primary_team_details. + * @property {TeamLogTeamMergeRequestSentShownToSecondaryTeamDetails} + * [team_merge_request_sent_shown_to_secondary_team_details] - Available if .tag + * is team_merge_request_sent_shown_to_secondary_team_details. + * @property {TeamLogMissingDetails} [missing_details] - Available if .tag is + * missing_details. Hints that this event was returned with missing details due + * to an internal error. + * @property {('admin_alerting_alert_state_changed_details'|'admin_alerting_changed_alert_config_details'|'admin_alerting_triggered_alert_details'|'app_blocked_by_permissions_details'|'app_link_team_details'|'app_link_user_details'|'app_unlink_team_details'|'app_unlink_user_details'|'integration_connected_details'|'integration_disconnected_details'|'file_add_comment_details'|'file_change_comment_subscription_details'|'file_delete_comment_details'|'file_edit_comment_details'|'file_like_comment_details'|'file_resolve_comment_details'|'file_unlike_comment_details'|'file_unresolve_comment_details'|'governance_policy_add_folders_details'|'governance_policy_add_folder_failed_details'|'governance_policy_content_disposed_details'|'governance_policy_create_details'|'governance_policy_delete_details'|'governance_policy_edit_details_details'|'governance_policy_edit_duration_details'|'governance_policy_export_created_details'|'governance_policy_export_removed_details'|'governance_policy_remove_folders_details'|'governance_policy_report_created_details'|'governance_policy_zip_part_downloaded_details'|'legal_holds_activate_a_hold_details'|'legal_holds_add_members_details'|'legal_holds_change_hold_details_details'|'legal_holds_change_hold_name_details'|'legal_holds_export_a_hold_details'|'legal_holds_export_cancelled_details'|'legal_holds_export_downloaded_details'|'legal_holds_export_removed_details'|'legal_holds_release_a_hold_details'|'legal_holds_remove_members_details'|'legal_holds_report_a_hold_details'|'device_change_ip_desktop_details'|'device_change_ip_mobile_details'|'device_change_ip_web_details'|'device_delete_on_unlink_fail_details'|'device_delete_on_unlink_success_details'|'device_link_fail_details'|'device_link_success_details'|'device_management_disabled_details'|'device_management_enabled_details'|'device_sync_backup_status_changed_details'|'device_unlink_details'|'dropbox_passwords_exported_details'|'dropbox_passwords_new_device_enrolled_details'|'emm_refresh_auth_token_details'|'external_drive_backup_eligibility_status_checked_details'|'external_drive_backup_status_changed_details'|'account_capture_change_availability_details'|'account_capture_migrate_account_details'|'account_capture_notification_emails_sent_details'|'account_capture_relinquish_account_details'|'disabled_domain_invites_details'|'domain_invites_approve_request_to_join_team_details'|'domain_invites_decline_request_to_join_team_details'|'domain_invites_email_existing_users_details'|'domain_invites_request_to_join_team_details'|'domain_invites_set_invite_new_user_pref_to_no_details'|'domain_invites_set_invite_new_user_pref_to_yes_details'|'domain_verification_add_domain_fail_details'|'domain_verification_add_domain_success_details'|'domain_verification_remove_domain_details'|'enabled_domain_invites_details'|'apply_naming_convention_details'|'create_folder_details'|'file_add_details'|'file_copy_details'|'file_delete_details'|'file_download_details'|'file_edit_details'|'file_get_copy_reference_details'|'file_locking_lock_status_changed_details'|'file_move_details'|'file_permanently_delete_details'|'file_preview_details'|'file_rename_details'|'file_restore_details'|'file_revert_details'|'file_rollback_changes_details'|'file_save_copy_reference_details'|'folder_overview_description_changed_details'|'folder_overview_item_pinned_details'|'folder_overview_item_unpinned_details'|'object_label_added_details'|'object_label_removed_details'|'object_label_updated_value_details'|'organize_folder_with_tidy_details'|'rewind_folder_details'|'undo_naming_convention_details'|'undo_organize_folder_with_tidy_details'|'user_tags_added_details'|'user_tags_removed_details'|'email_ingest_receive_file_details'|'file_request_change_details'|'file_request_close_details'|'file_request_create_details'|'file_request_delete_details'|'file_request_receive_file_details'|'group_add_external_id_details'|'group_add_member_details'|'group_change_external_id_details'|'group_change_management_type_details'|'group_change_member_role_details'|'group_create_details'|'group_delete_details'|'group_description_updated_details'|'group_join_policy_updated_details'|'group_moved_details'|'group_remove_external_id_details'|'group_remove_member_details'|'group_rename_details'|'account_lock_or_unlocked_details'|'emm_error_details'|'guest_admin_signed_in_via_trusted_teams_details'|'guest_admin_signed_out_via_trusted_teams_details'|'login_fail_details'|'login_success_details'|'logout_details'|'reseller_support_session_end_details'|'reseller_support_session_start_details'|'sign_in_as_session_end_details'|'sign_in_as_session_start_details'|'sso_error_details'|'create_team_invite_link_details'|'delete_team_invite_link_details'|'member_add_external_id_details'|'member_add_name_details'|'member_change_admin_role_details'|'member_change_email_details'|'member_change_external_id_details'|'member_change_membership_type_details'|'member_change_name_details'|'member_change_reseller_role_details'|'member_change_status_details'|'member_delete_manual_contacts_details'|'member_delete_profile_photo_details'|'member_permanently_delete_account_contents_details'|'member_remove_external_id_details'|'member_set_profile_photo_details'|'member_space_limits_add_custom_quota_details'|'member_space_limits_change_custom_quota_details'|'member_space_limits_change_status_details'|'member_space_limits_remove_custom_quota_details'|'member_suggest_details'|'member_transfer_account_contents_details'|'pending_secondary_email_added_details'|'secondary_email_deleted_details'|'secondary_email_verified_details'|'secondary_mails_policy_changed_details'|'binder_add_page_details'|'binder_add_section_details'|'binder_remove_page_details'|'binder_remove_section_details'|'binder_rename_page_details'|'binder_rename_section_details'|'binder_reorder_page_details'|'binder_reorder_section_details'|'paper_content_add_member_details'|'paper_content_add_to_folder_details'|'paper_content_archive_details'|'paper_content_create_details'|'paper_content_permanently_delete_details'|'paper_content_remove_from_folder_details'|'paper_content_remove_member_details'|'paper_content_rename_details'|'paper_content_restore_details'|'paper_doc_add_comment_details'|'paper_doc_change_member_role_details'|'paper_doc_change_sharing_policy_details'|'paper_doc_change_subscription_details'|'paper_doc_deleted_details'|'paper_doc_delete_comment_details'|'paper_doc_download_details'|'paper_doc_edit_details'|'paper_doc_edit_comment_details'|'paper_doc_followed_details'|'paper_doc_mention_details'|'paper_doc_ownership_changed_details'|'paper_doc_request_access_details'|'paper_doc_resolve_comment_details'|'paper_doc_revert_details'|'paper_doc_slack_share_details'|'paper_doc_team_invite_details'|'paper_doc_trashed_details'|'paper_doc_unresolve_comment_details'|'paper_doc_untrashed_details'|'paper_doc_view_details'|'paper_external_view_allow_details'|'paper_external_view_default_team_details'|'paper_external_view_forbid_details'|'paper_folder_change_subscription_details'|'paper_folder_deleted_details'|'paper_folder_followed_details'|'paper_folder_team_invite_details'|'paper_published_link_change_permission_details'|'paper_published_link_create_details'|'paper_published_link_disabled_details'|'paper_published_link_view_details'|'password_change_details'|'password_reset_details'|'password_reset_all_details'|'classification_create_report_details'|'classification_create_report_fail_details'|'emm_create_exceptions_report_details'|'emm_create_usage_report_details'|'export_members_report_details'|'export_members_report_fail_details'|'external_sharing_create_report_details'|'external_sharing_report_failed_details'|'no_expiration_link_gen_create_report_details'|'no_expiration_link_gen_report_failed_details'|'no_password_link_gen_create_report_details'|'no_password_link_gen_report_failed_details'|'no_password_link_view_create_report_details'|'no_password_link_view_report_failed_details'|'outdated_link_view_create_report_details'|'outdated_link_view_report_failed_details'|'paper_admin_export_start_details'|'smart_sync_create_admin_privilege_report_details'|'team_activity_create_report_details'|'team_activity_create_report_fail_details'|'collection_share_details'|'file_transfers_file_add_details'|'file_transfers_transfer_delete_details'|'file_transfers_transfer_download_details'|'file_transfers_transfer_send_details'|'file_transfers_transfer_view_details'|'note_acl_invite_only_details'|'note_acl_link_details'|'note_acl_team_link_details'|'note_shared_details'|'note_share_receive_details'|'open_note_shared_details'|'sf_add_group_details'|'sf_allow_non_members_to_view_shared_links_details'|'sf_external_invite_warn_details'|'sf_fb_invite_details'|'sf_fb_invite_change_role_details'|'sf_fb_uninvite_details'|'sf_invite_group_details'|'sf_team_grant_access_details'|'sf_team_invite_details'|'sf_team_invite_change_role_details'|'sf_team_join_details'|'sf_team_join_from_oob_link_details'|'sf_team_uninvite_details'|'shared_content_add_invitees_details'|'shared_content_add_link_expiry_details'|'shared_content_add_link_password_details'|'shared_content_add_member_details'|'shared_content_change_downloads_policy_details'|'shared_content_change_invitee_role_details'|'shared_content_change_link_audience_details'|'shared_content_change_link_expiry_details'|'shared_content_change_link_password_details'|'shared_content_change_member_role_details'|'shared_content_change_viewer_info_policy_details'|'shared_content_claim_invitation_details'|'shared_content_copy_details'|'shared_content_download_details'|'shared_content_relinquish_membership_details'|'shared_content_remove_invitees_details'|'shared_content_remove_link_expiry_details'|'shared_content_remove_link_password_details'|'shared_content_remove_member_details'|'shared_content_request_access_details'|'shared_content_restore_invitees_details'|'shared_content_restore_member_details'|'shared_content_unshare_details'|'shared_content_view_details'|'shared_folder_change_link_policy_details'|'shared_folder_change_members_inheritance_policy_details'|'shared_folder_change_members_management_policy_details'|'shared_folder_change_members_policy_details'|'shared_folder_create_details'|'shared_folder_decline_invitation_details'|'shared_folder_mount_details'|'shared_folder_nest_details'|'shared_folder_transfer_ownership_details'|'shared_folder_unmount_details'|'shared_link_add_expiry_details'|'shared_link_change_expiry_details'|'shared_link_change_visibility_details'|'shared_link_copy_details'|'shared_link_create_details'|'shared_link_disable_details'|'shared_link_download_details'|'shared_link_remove_expiry_details'|'shared_link_settings_add_expiration_details'|'shared_link_settings_add_password_details'|'shared_link_settings_allow_download_disabled_details'|'shared_link_settings_allow_download_enabled_details'|'shared_link_settings_change_audience_details'|'shared_link_settings_change_expiration_details'|'shared_link_settings_change_password_details'|'shared_link_settings_remove_expiration_details'|'shared_link_settings_remove_password_details'|'shared_link_share_details'|'shared_link_view_details'|'shared_note_opened_details'|'shmodel_disable_downloads_details'|'shmodel_enable_downloads_details'|'shmodel_group_share_details'|'showcase_access_granted_details'|'showcase_add_member_details'|'showcase_archived_details'|'showcase_created_details'|'showcase_delete_comment_details'|'showcase_edited_details'|'showcase_edit_comment_details'|'showcase_file_added_details'|'showcase_file_download_details'|'showcase_file_removed_details'|'showcase_file_view_details'|'showcase_permanently_deleted_details'|'showcase_post_comment_details'|'showcase_remove_member_details'|'showcase_renamed_details'|'showcase_request_access_details'|'showcase_resolve_comment_details'|'showcase_restored_details'|'showcase_trashed_details'|'showcase_trashed_deprecated_details'|'showcase_unresolve_comment_details'|'showcase_untrashed_details'|'showcase_untrashed_deprecated_details'|'showcase_view_details'|'sso_add_cert_details'|'sso_add_login_url_details'|'sso_add_logout_url_details'|'sso_change_cert_details'|'sso_change_login_url_details'|'sso_change_logout_url_details'|'sso_change_saml_identity_mode_details'|'sso_remove_cert_details'|'sso_remove_login_url_details'|'sso_remove_logout_url_details'|'team_folder_change_status_details'|'team_folder_create_details'|'team_folder_downgrade_details'|'team_folder_permanently_delete_details'|'team_folder_rename_details'|'team_selective_sync_settings_changed_details'|'account_capture_change_policy_details'|'admin_email_reminders_changed_details'|'allow_download_disabled_details'|'allow_download_enabled_details'|'app_permissions_changed_details'|'camera_uploads_policy_changed_details'|'capture_transcript_policy_changed_details'|'classification_change_policy_details'|'computer_backup_policy_changed_details'|'content_administration_policy_changed_details'|'data_placement_restriction_change_policy_details'|'data_placement_restriction_satisfy_policy_details'|'device_approvals_add_exception_details'|'device_approvals_change_desktop_policy_details'|'device_approvals_change_mobile_policy_details'|'device_approvals_change_overage_action_details'|'device_approvals_change_unlink_action_details'|'device_approvals_remove_exception_details'|'directory_restrictions_add_members_details'|'directory_restrictions_remove_members_details'|'dropbox_passwords_policy_changed_details'|'email_ingest_policy_changed_details'|'emm_add_exception_details'|'emm_change_policy_details'|'emm_remove_exception_details'|'extended_version_history_change_policy_details'|'external_drive_backup_policy_changed_details'|'file_comments_change_policy_details'|'file_locking_policy_changed_details'|'file_provider_migration_policy_changed_details'|'file_requests_change_policy_details'|'file_requests_emails_enabled_details'|'file_requests_emails_restricted_to_team_only_details'|'file_transfers_policy_changed_details'|'folder_link_restriction_policy_changed_details'|'google_sso_change_policy_details'|'group_user_management_change_policy_details'|'integration_policy_changed_details'|'invite_acceptance_email_policy_changed_details'|'member_requests_change_policy_details'|'member_send_invite_policy_changed_details'|'member_space_limits_add_exception_details'|'member_space_limits_change_caps_type_policy_details'|'member_space_limits_change_policy_details'|'member_space_limits_remove_exception_details'|'member_suggestions_change_policy_details'|'microsoft_office_addin_change_policy_details'|'network_control_change_policy_details'|'paper_change_deployment_policy_details'|'paper_change_member_link_policy_details'|'paper_change_member_policy_details'|'paper_change_policy_details'|'paper_default_folder_policy_changed_details'|'paper_desktop_policy_changed_details'|'paper_enabled_users_group_addition_details'|'paper_enabled_users_group_removal_details'|'password_strength_requirements_change_policy_details'|'permanent_delete_change_policy_details'|'reseller_support_change_policy_details'|'rewind_policy_changed_details'|'send_for_signature_policy_changed_details'|'sharing_change_folder_join_policy_details'|'sharing_change_link_allow_change_expiration_policy_details'|'sharing_change_link_default_expiration_policy_details'|'sharing_change_link_enforce_password_policy_details'|'sharing_change_link_policy_details'|'sharing_change_member_policy_details'|'showcase_change_download_policy_details'|'showcase_change_enabled_policy_details'|'showcase_change_external_sharing_policy_details'|'smarter_smart_sync_policy_changed_details'|'smart_sync_change_policy_details'|'smart_sync_not_opt_out_details'|'smart_sync_opt_out_details'|'sso_change_policy_details'|'team_branding_policy_changed_details'|'team_extensions_policy_changed_details'|'team_selective_sync_policy_changed_details'|'team_sharing_whitelist_subjects_changed_details'|'tfa_add_exception_details'|'tfa_change_policy_details'|'tfa_remove_exception_details'|'two_account_change_policy_details'|'viewer_info_policy_changed_details'|'watermarking_policy_changed_details'|'web_sessions_change_active_session_limit_details'|'web_sessions_change_fixed_length_policy_details'|'web_sessions_change_idle_length_policy_details'|'data_residency_migration_request_successful_details'|'data_residency_migration_request_unsuccessful_details'|'team_merge_from_details'|'team_merge_to_details'|'team_profile_add_background_details'|'team_profile_add_logo_details'|'team_profile_change_background_details'|'team_profile_change_default_language_details'|'team_profile_change_logo_details'|'team_profile_change_name_details'|'team_profile_remove_background_details'|'team_profile_remove_logo_details'|'tfa_add_backup_phone_details'|'tfa_add_security_key_details'|'tfa_change_backup_phone_details'|'tfa_change_status_details'|'tfa_remove_backup_phone_details'|'tfa_remove_security_key_details'|'tfa_reset_details'|'changed_enterprise_admin_role_details'|'changed_enterprise_connected_team_status_details'|'ended_enterprise_admin_session_details'|'ended_enterprise_admin_session_deprecated_details'|'enterprise_settings_locking_details'|'guest_admin_change_status_details'|'started_enterprise_admin_session_details'|'team_merge_request_accepted_details'|'team_merge_request_accepted_shown_to_primary_team_details'|'team_merge_request_accepted_shown_to_secondary_team_details'|'team_merge_request_auto_canceled_details'|'team_merge_request_canceled_details'|'team_merge_request_canceled_shown_to_primary_team_details'|'team_merge_request_canceled_shown_to_secondary_team_details'|'team_merge_request_expired_details'|'team_merge_request_expired_shown_to_primary_team_details'|'team_merge_request_expired_shown_to_secondary_team_details'|'team_merge_request_rejected_shown_to_primary_team_details'|'team_merge_request_rejected_shown_to_secondary_team_details'|'team_merge_request_reminder_details'|'team_merge_request_reminder_shown_to_primary_team_details'|'team_merge_request_reminder_shown_to_secondary_team_details'|'team_merge_request_revoked_details'|'team_merge_request_sent_shown_to_primary_team_details'|'team_merge_request_sent_shown_to_secondary_team_details'|'missing_details'|'other')} .tag - Tag identifying the union variant. + */ /** + * The type of the event with description. + * @typedef {Object} TeamLogEventType + * @property {TeamLogAdminAlertingAlertStateChangedType} + * [admin_alerting_alert_state_changed] - Available if .tag is + * admin_alerting_alert_state_changed. (admin_alerting) Changed an alert state + * @property {TeamLogAdminAlertingChangedAlertConfigType} + * [admin_alerting_changed_alert_config] - Available if .tag is + * admin_alerting_changed_alert_config. (admin_alerting) Changed an alert + * setting + * @property {TeamLogAdminAlertingTriggeredAlertType} + * [admin_alerting_triggered_alert] - Available if .tag is + * admin_alerting_triggered_alert. (admin_alerting) Triggered security alert + * @property {TeamLogAppBlockedByPermissionsType} [app_blocked_by_permissions] - + * Available if .tag is app_blocked_by_permissions. (apps) Failed to connect app + * for member + * @property {TeamLogAppLinkTeamType} [app_link_team] - Available if .tag is + * app_link_team. (apps) Linked app for team + * @property {TeamLogAppLinkUserType} [app_link_user] - Available if .tag is + * app_link_user. (apps) Linked app for member + * @property {TeamLogAppUnlinkTeamType} [app_unlink_team] - Available if .tag is + * app_unlink_team. (apps) Unlinked app for team + * @property {TeamLogAppUnlinkUserType} [app_unlink_user] - Available if .tag is + * app_unlink_user. (apps) Unlinked app for member + * @property {TeamLogIntegrationConnectedType} [integration_connected] - + * Available if .tag is integration_connected. (apps) Connected integration for + * member + * @property {TeamLogIntegrationDisconnectedType} [integration_disconnected] - + * Available if .tag is integration_disconnected. (apps) Disconnected + * integration for member + * @property {TeamLogFileAddCommentType} [file_add_comment] - Available if .tag + * is file_add_comment. (comments) Added file comment + * @property {TeamLogFileChangeCommentSubscriptionType} + * [file_change_comment_subscription] - Available if .tag is + * file_change_comment_subscription. (comments) Subscribed to or unsubscribed + * from comment notifications for file + * @property {TeamLogFileDeleteCommentType} [file_delete_comment] - Available if + * .tag is file_delete_comment. (comments) Deleted file comment + * @property {TeamLogFileEditCommentType} [file_edit_comment] - Available if + * .tag is file_edit_comment. (comments) Edited file comment + * @property {TeamLogFileLikeCommentType} [file_like_comment] - Available if + * .tag is file_like_comment. (comments) Liked file comment (deprecated, no + * longer logged) + * @property {TeamLogFileResolveCommentType} [file_resolve_comment] - Available + * if .tag is file_resolve_comment. (comments) Resolved file comment + * @property {TeamLogFileUnlikeCommentType} [file_unlike_comment] - Available if + * .tag is file_unlike_comment. (comments) Unliked file comment (deprecated, no + * longer logged) + * @property {TeamLogFileUnresolveCommentType} [file_unresolve_comment] - + * Available if .tag is file_unresolve_comment. (comments) Unresolved file + * comment + * @property {TeamLogGovernancePolicyAddFoldersType} + * [governance_policy_add_folders] - Available if .tag is + * governance_policy_add_folders. (data_governance) Added folders to policy + * @property {TeamLogGovernancePolicyAddFolderFailedType} + * [governance_policy_add_folder_failed] - Available if .tag is + * governance_policy_add_folder_failed. (data_governance) Couldn't add a folder + * to a policy + * @property {TeamLogGovernancePolicyContentDisposedType} + * [governance_policy_content_disposed] - Available if .tag is + * governance_policy_content_disposed. (data_governance) Content disposed + * @property {TeamLogGovernancePolicyCreateType} [governance_policy_create] - + * Available if .tag is governance_policy_create. (data_governance) Activated a + * new policy + * @property {TeamLogGovernancePolicyDeleteType} [governance_policy_delete] - + * Available if .tag is governance_policy_delete. (data_governance) Deleted a + * policy + * @property {TeamLogGovernancePolicyEditDetailsType} + * [governance_policy_edit_details] - Available if .tag is + * governance_policy_edit_details. (data_governance) Edited policy + * @property {TeamLogGovernancePolicyEditDurationType} + * [governance_policy_edit_duration] - Available if .tag is + * governance_policy_edit_duration. (data_governance) Changed policy duration + * @property {TeamLogGovernancePolicyExportCreatedType} + * [governance_policy_export_created] - Available if .tag is + * governance_policy_export_created. (data_governance) Created a policy download + * @property {TeamLogGovernancePolicyExportRemovedType} + * [governance_policy_export_removed] - Available if .tag is + * governance_policy_export_removed. (data_governance) Removed a policy download + * @property {TeamLogGovernancePolicyRemoveFoldersType} + * [governance_policy_remove_folders] - Available if .tag is + * governance_policy_remove_folders. (data_governance) Removed folders from + * policy + * @property {TeamLogGovernancePolicyReportCreatedType} + * [governance_policy_report_created] - Available if .tag is + * governance_policy_report_created. (data_governance) Created a summary report + * for a policy + * @property {TeamLogGovernancePolicyZipPartDownloadedType} + * [governance_policy_zip_part_downloaded] - Available if .tag is + * governance_policy_zip_part_downloaded. (data_governance) Downloaded content + * from a policy + * @property {TeamLogLegalHoldsActivateAHoldType} [legal_holds_activate_a_hold] + * - Available if .tag is legal_holds_activate_a_hold. (data_governance) + * Activated a hold + * @property {TeamLogLegalHoldsAddMembersType} [legal_holds_add_members] - + * Available if .tag is legal_holds_add_members. (data_governance) Added members + * to a hold + * @property {TeamLogLegalHoldsChangeHoldDetailsType} + * [legal_holds_change_hold_details] - Available if .tag is + * legal_holds_change_hold_details. (data_governance) Edited details for a hold + * @property {TeamLogLegalHoldsChangeHoldNameType} + * [legal_holds_change_hold_name] - Available if .tag is + * legal_holds_change_hold_name. (data_governance) Renamed a hold + * @property {TeamLogLegalHoldsExportAHoldType} [legal_holds_export_a_hold] - + * Available if .tag is legal_holds_export_a_hold. (data_governance) Exported + * hold + * @property {TeamLogLegalHoldsExportCancelledType} + * [legal_holds_export_cancelled] - Available if .tag is + * legal_holds_export_cancelled. (data_governance) Canceled export for a hold + * @property {TeamLogLegalHoldsExportDownloadedType} + * [legal_holds_export_downloaded] - Available if .tag is + * legal_holds_export_downloaded. (data_governance) Downloaded export for a hold + * @property {TeamLogLegalHoldsExportRemovedType} [legal_holds_export_removed] - + * Available if .tag is legal_holds_export_removed. (data_governance) Removed + * export for a hold + * @property {TeamLogLegalHoldsReleaseAHoldType} [legal_holds_release_a_hold] - + * Available if .tag is legal_holds_release_a_hold. (data_governance) Released a + * hold + * @property {TeamLogLegalHoldsRemoveMembersType} [legal_holds_remove_members] - + * Available if .tag is legal_holds_remove_members. (data_governance) Removed + * members from a hold + * @property {TeamLogLegalHoldsReportAHoldType} [legal_holds_report_a_hold] - + * Available if .tag is legal_holds_report_a_hold. (data_governance) Created a + * summary report for a hold + * @property {TeamLogDeviceChangeIpDesktopType} [device_change_ip_desktop] - + * Available if .tag is device_change_ip_desktop. (devices) Changed IP address + * associated with active desktop session + * @property {TeamLogDeviceChangeIpMobileType} [device_change_ip_mobile] - + * Available if .tag is device_change_ip_mobile. (devices) Changed IP address + * associated with active mobile session + * @property {TeamLogDeviceChangeIpWebType} [device_change_ip_web] - Available + * if .tag is device_change_ip_web. (devices) Changed IP address associated with + * active web session + * @property {TeamLogDeviceDeleteOnUnlinkFailType} + * [device_delete_on_unlink_fail] - Available if .tag is + * device_delete_on_unlink_fail. (devices) Failed to delete all files from + * unlinked device + * @property {TeamLogDeviceDeleteOnUnlinkSuccessType} + * [device_delete_on_unlink_success] - Available if .tag is + * device_delete_on_unlink_success. (devices) Deleted all files from unlinked + * device + * @property {TeamLogDeviceLinkFailType} [device_link_fail] - Available if .tag + * is device_link_fail. (devices) Failed to link device + * @property {TeamLogDeviceLinkSuccessType} [device_link_success] - Available if + * .tag is device_link_success. (devices) Linked device + * @property {TeamLogDeviceManagementDisabledType} [device_management_disabled] + * - Available if .tag is device_management_disabled. (devices) Disabled device + * management (deprecated, no longer logged) + * @property {TeamLogDeviceManagementEnabledType} [device_management_enabled] - + * Available if .tag is device_management_enabled. (devices) Enabled device + * management (deprecated, no longer logged) + * @property {TeamLogDeviceSyncBackupStatusChangedType} + * [device_sync_backup_status_changed] - Available if .tag is + * device_sync_backup_status_changed. (devices) Enabled/disabled backup for + * computer + * @property {TeamLogDeviceUnlinkType} [device_unlink] - Available if .tag is + * device_unlink. (devices) Disconnected device + * @property {TeamLogDropboxPasswordsExportedType} [dropbox_passwords_exported] + * - Available if .tag is dropbox_passwords_exported. (devices) Exported + * passwords + * @property {TeamLogDropboxPasswordsNewDeviceEnrolledType} + * [dropbox_passwords_new_device_enrolled] - Available if .tag is + * dropbox_passwords_new_device_enrolled. (devices) Enrolled new Dropbox + * Passwords device + * @property {TeamLogEmmRefreshAuthTokenType} [emm_refresh_auth_token] - + * Available if .tag is emm_refresh_auth_token. (devices) Refreshed auth token + * used for setting up EMM + * @property {TeamLogExternalDriveBackupEligibilityStatusCheckedType} + * [external_drive_backup_eligibility_status_checked] - Available if .tag is + * external_drive_backup_eligibility_status_checked. (devices) Checked external + * drive backup eligibility status + * @property {TeamLogExternalDriveBackupStatusChangedType} + * [external_drive_backup_status_changed] - Available if .tag is + * external_drive_backup_status_changed. (devices) Modified external drive + * backup + * @property {TeamLogAccountCaptureChangeAvailabilityType} + * [account_capture_change_availability] - Available if .tag is + * account_capture_change_availability. (domains) Granted/revoked option to + * enable account capture on team domains + * @property {TeamLogAccountCaptureMigrateAccountType} + * [account_capture_migrate_account] - Available if .tag is + * account_capture_migrate_account. (domains) Account-captured user migrated + * account to team + * @property {TeamLogAccountCaptureNotificationEmailsSentType} + * [account_capture_notification_emails_sent] - Available if .tag is + * account_capture_notification_emails_sent. (domains) Sent account capture + * email to all unmanaged members + * @property {TeamLogAccountCaptureRelinquishAccountType} + * [account_capture_relinquish_account] - Available if .tag is + * account_capture_relinquish_account. (domains) Account-captured user changed + * account email to personal email + * @property {TeamLogDisabledDomainInvitesType} [disabled_domain_invites] - + * Available if .tag is disabled_domain_invites. (domains) Disabled domain + * invites (deprecated, no longer logged) + * @property {TeamLogDomainInvitesApproveRequestToJoinTeamType} + * [domain_invites_approve_request_to_join_team] - Available if .tag is + * domain_invites_approve_request_to_join_team. (domains) Approved user's + * request to join team + * @property {TeamLogDomainInvitesDeclineRequestToJoinTeamType} + * [domain_invites_decline_request_to_join_team] - Available if .tag is + * domain_invites_decline_request_to_join_team. (domains) Declined user's + * request to join team + * @property {TeamLogDomainInvitesEmailExistingUsersType} + * [domain_invites_email_existing_users] - Available if .tag is + * domain_invites_email_existing_users. (domains) Sent domain invites to + * existing domain accounts (deprecated, no longer logged) + * @property {TeamLogDomainInvitesRequestToJoinTeamType} + * [domain_invites_request_to_join_team] - Available if .tag is + * domain_invites_request_to_join_team. (domains) Requested to join team + * @property {TeamLogDomainInvitesSetInviteNewUserPrefToNoType} + * [domain_invites_set_invite_new_user_pref_to_no] - Available if .tag is + * domain_invites_set_invite_new_user_pref_to_no. (domains) Disabled + * "Automatically invite new users" (deprecated, no longer logged) + * @property {TeamLogDomainInvitesSetInviteNewUserPrefToYesType} + * [domain_invites_set_invite_new_user_pref_to_yes] - Available if .tag is + * domain_invites_set_invite_new_user_pref_to_yes. (domains) Enabled + * "Automatically invite new users" (deprecated, no longer logged) + * @property {TeamLogDomainVerificationAddDomainFailType} + * [domain_verification_add_domain_fail] - Available if .tag is + * domain_verification_add_domain_fail. (domains) Failed to verify team domain + * @property {TeamLogDomainVerificationAddDomainSuccessType} + * [domain_verification_add_domain_success] - Available if .tag is + * domain_verification_add_domain_success. (domains) Verified team domain + * @property {TeamLogDomainVerificationRemoveDomainType} + * [domain_verification_remove_domain] - Available if .tag is + * domain_verification_remove_domain. (domains) Removed domain from list of + * verified team domains + * @property {TeamLogEnabledDomainInvitesType} [enabled_domain_invites] - + * Available if .tag is enabled_domain_invites. (domains) Enabled domain invites + * (deprecated, no longer logged) + * @property {TeamLogApplyNamingConventionType} [apply_naming_convention] - + * Available if .tag is apply_naming_convention. (file_operations) Applied + * naming convention + * @property {TeamLogCreateFolderType} [create_folder] - Available if .tag is + * create_folder. (file_operations) Created folders (deprecated, no longer + * logged) + * @property {TeamLogFileAddType} [file_add] - Available if .tag is file_add. + * (file_operations) Added files and/or folders + * @property {TeamLogFileCopyType} [file_copy] - Available if .tag is file_copy. + * (file_operations) Copied files and/or folders + * @property {TeamLogFileDeleteType} [file_delete] - Available if .tag is + * file_delete. (file_operations) Deleted files and/or folders + * @property {TeamLogFileDownloadType} [file_download] - Available if .tag is + * file_download. (file_operations) Downloaded files and/or folders + * @property {TeamLogFileEditType} [file_edit] - Available if .tag is file_edit. + * (file_operations) Edited files + * @property {TeamLogFileGetCopyReferenceType} [file_get_copy_reference] - + * Available if .tag is file_get_copy_reference. (file_operations) Created copy + * reference to file/folder + * @property {TeamLogFileLockingLockStatusChangedType} + * [file_locking_lock_status_changed] - Available if .tag is + * file_locking_lock_status_changed. (file_operations) Locked/unlocked editing + * for a file + * @property {TeamLogFileMoveType} [file_move] - Available if .tag is file_move. + * (file_operations) Moved files and/or folders + * @property {TeamLogFilePermanentlyDeleteType} [file_permanently_delete] - + * Available if .tag is file_permanently_delete. (file_operations) Permanently + * deleted files and/or folders + * @property {TeamLogFilePreviewType} [file_preview] - Available if .tag is + * file_preview. (file_operations) Previewed files and/or folders + * @property {TeamLogFileRenameType} [file_rename] - Available if .tag is + * file_rename. (file_operations) Renamed files and/or folders + * @property {TeamLogFileRestoreType} [file_restore] - Available if .tag is + * file_restore. (file_operations) Restored deleted files and/or folders + * @property {TeamLogFileRevertType} [file_revert] - Available if .tag is + * file_revert. (file_operations) Reverted files to previous version + * @property {TeamLogFileRollbackChangesType} [file_rollback_changes] - + * Available if .tag is file_rollback_changes. (file_operations) Rolled back + * file actions + * @property {TeamLogFileSaveCopyReferenceType} [file_save_copy_reference] - + * Available if .tag is file_save_copy_reference. (file_operations) Saved + * file/folder using copy reference + * @property {TeamLogFolderOverviewDescriptionChangedType} + * [folder_overview_description_changed] - Available if .tag is + * folder_overview_description_changed. (file_operations) Updated folder + * overview + * @property {TeamLogFolderOverviewItemPinnedType} [folder_overview_item_pinned] + * - Available if .tag is folder_overview_item_pinned. (file_operations) Pinned + * item to folder overview + * @property {TeamLogFolderOverviewItemUnpinnedType} + * [folder_overview_item_unpinned] - Available if .tag is + * folder_overview_item_unpinned. (file_operations) Unpinned item from folder + * overview + * @property {TeamLogObjectLabelAddedType} [object_label_added] - Available if + * .tag is object_label_added. (file_operations) Added a label + * @property {TeamLogObjectLabelRemovedType} [object_label_removed] - Available + * if .tag is object_label_removed. (file_operations) Removed a label + * @property {TeamLogObjectLabelUpdatedValueType} [object_label_updated_value] - + * Available if .tag is object_label_updated_value. (file_operations) Updated a + * label's value + * @property {TeamLogOrganizeFolderWithTidyType} [organize_folder_with_tidy] - + * Available if .tag is organize_folder_with_tidy. (file_operations) Organized a + * folder with multi-file organize + * @property {TeamLogRewindFolderType} [rewind_folder] - Available if .tag is + * rewind_folder. (file_operations) Rewound a folder + * @property {TeamLogUndoNamingConventionType} [undo_naming_convention] - + * Available if .tag is undo_naming_convention. (file_operations) Reverted + * naming convention + * @property {TeamLogUndoOrganizeFolderWithTidyType} + * [undo_organize_folder_with_tidy] - Available if .tag is + * undo_organize_folder_with_tidy. (file_operations) Removed multi-file organize + * @property {TeamLogUserTagsAddedType} [user_tags_added] - Available if .tag is + * user_tags_added. (file_operations) Tagged a file + * @property {TeamLogUserTagsRemovedType} [user_tags_removed] - Available if + * .tag is user_tags_removed. (file_operations) Removed tags + * @property {TeamLogEmailIngestReceiveFileType} [email_ingest_receive_file] - + * Available if .tag is email_ingest_receive_file. (file_requests) Received + * files via Email to Dropbox + * @property {TeamLogFileRequestChangeType} [file_request_change] - Available if + * .tag is file_request_change. (file_requests) Changed file request + * @property {TeamLogFileRequestCloseType} [file_request_close] - Available if + * .tag is file_request_close. (file_requests) Closed file request + * @property {TeamLogFileRequestCreateType} [file_request_create] - Available if + * .tag is file_request_create. (file_requests) Created file request + * @property {TeamLogFileRequestDeleteType} [file_request_delete] - Available if + * .tag is file_request_delete. (file_requests) Delete file request + * @property {TeamLogFileRequestReceiveFileType} [file_request_receive_file] - + * Available if .tag is file_request_receive_file. (file_requests) Received + * files for file request + * @property {TeamLogGroupAddExternalIdType} [group_add_external_id] - Available + * if .tag is group_add_external_id. (groups) Added external ID for group + * @property {TeamLogGroupAddMemberType} [group_add_member] - Available if .tag + * is group_add_member. (groups) Added team members to group + * @property {TeamLogGroupChangeExternalIdType} [group_change_external_id] - + * Available if .tag is group_change_external_id. (groups) Changed external ID + * for group + * @property {TeamLogGroupChangeManagementTypeType} + * [group_change_management_type] - Available if .tag is + * group_change_management_type. (groups) Changed group management type + * @property {TeamLogGroupChangeMemberRoleType} [group_change_member_role] - + * Available if .tag is group_change_member_role. (groups) Changed manager + * permissions of group member + * @property {TeamLogGroupCreateType} [group_create] - Available if .tag is + * group_create. (groups) Created group + * @property {TeamLogGroupDeleteType} [group_delete] - Available if .tag is + * group_delete. (groups) Deleted group + * @property {TeamLogGroupDescriptionUpdatedType} [group_description_updated] - + * Available if .tag is group_description_updated. (groups) Updated group + * (deprecated, no longer logged) + * @property {TeamLogGroupJoinPolicyUpdatedType} [group_join_policy_updated] - + * Available if .tag is group_join_policy_updated. (groups) Updated group join + * policy (deprecated, no longer logged) + * @property {TeamLogGroupMovedType} [group_moved] - Available if .tag is + * group_moved. (groups) Moved group (deprecated, no longer logged) + * @property {TeamLogGroupRemoveExternalIdType} [group_remove_external_id] - + * Available if .tag is group_remove_external_id. (groups) Removed external ID + * for group + * @property {TeamLogGroupRemoveMemberType} [group_remove_member] - Available if + * .tag is group_remove_member. (groups) Removed team members from group + * @property {TeamLogGroupRenameType} [group_rename] - Available if .tag is + * group_rename. (groups) Renamed group + * @property {TeamLogAccountLockOrUnlockedType} [account_lock_or_unlocked] - + * Available if .tag is account_lock_or_unlocked. (logins) Unlocked/locked + * account after failed sign in attempts + * @property {TeamLogEmmErrorType} [emm_error] - Available if .tag is emm_error. + * (logins) Failed to sign in via EMM (deprecated, replaced by 'Failed to sign + * in') + * @property {TeamLogGuestAdminSignedInViaTrustedTeamsType} + * [guest_admin_signed_in_via_trusted_teams] - Available if .tag is + * guest_admin_signed_in_via_trusted_teams. (logins) Started trusted team admin + * session + * @property {TeamLogGuestAdminSignedOutViaTrustedTeamsType} + * [guest_admin_signed_out_via_trusted_teams] - Available if .tag is + * guest_admin_signed_out_via_trusted_teams. (logins) Ended trusted team admin + * session + * @property {TeamLogLoginFailType} [login_fail] - Available if .tag is + * login_fail. (logins) Failed to sign in + * @property {TeamLogLoginSuccessType} [login_success] - Available if .tag is + * login_success. (logins) Signed in + * @property {TeamLogLogoutType} [logout] - Available if .tag is logout. + * (logins) Signed out + * @property {TeamLogResellerSupportSessionEndType} + * [reseller_support_session_end] - Available if .tag is + * reseller_support_session_end. (logins) Ended reseller support session + * @property {TeamLogResellerSupportSessionStartType} + * [reseller_support_session_start] - Available if .tag is + * reseller_support_session_start. (logins) Started reseller support session + * @property {TeamLogSignInAsSessionEndType} [sign_in_as_session_end] - + * Available if .tag is sign_in_as_session_end. (logins) Ended admin sign-in-as + * session + * @property {TeamLogSignInAsSessionStartType} [sign_in_as_session_start] - + * Available if .tag is sign_in_as_session_start. (logins) Started admin + * sign-in-as session + * @property {TeamLogSsoErrorType} [sso_error] - Available if .tag is sso_error. + * (logins) Failed to sign in via SSO (deprecated, replaced by 'Failed to sign + * in') + * @property {TeamLogCreateTeamInviteLinkType} [create_team_invite_link] - + * Available if .tag is create_team_invite_link. (members) Created team invite + * link + * @property {TeamLogDeleteTeamInviteLinkType} [delete_team_invite_link] - + * Available if .tag is delete_team_invite_link. (members) Deleted team invite + * link + * @property {TeamLogMemberAddExternalIdType} [member_add_external_id] - + * Available if .tag is member_add_external_id. (members) Added an external ID + * for team member + * @property {TeamLogMemberAddNameType} [member_add_name] - Available if .tag is + * member_add_name. (members) Added team member name + * @property {TeamLogMemberChangeAdminRoleType} [member_change_admin_role] - + * Available if .tag is member_change_admin_role. (members) Changed team member + * admin role + * @property {TeamLogMemberChangeEmailType} [member_change_email] - Available if + * .tag is member_change_email. (members) Changed team member email + * @property {TeamLogMemberChangeExternalIdType} [member_change_external_id] - + * Available if .tag is member_change_external_id. (members) Changed the + * external ID for team member + * @property {TeamLogMemberChangeMembershipTypeType} + * [member_change_membership_type] - Available if .tag is + * member_change_membership_type. (members) Changed membership type + * (limited/full) of member (deprecated, no longer logged) + * @property {TeamLogMemberChangeNameType} [member_change_name] - Available if + * .tag is member_change_name. (members) Changed team member name + * @property {TeamLogMemberChangeResellerRoleType} [member_change_reseller_role] + * - Available if .tag is member_change_reseller_role. (members) Changed team + * member reseller role + * @property {TeamLogMemberChangeStatusType} [member_change_status] - Available + * if .tag is member_change_status. (members) Changed member status (invited, + * joined, suspended, etc.) + * @property {TeamLogMemberDeleteManualContactsType} + * [member_delete_manual_contacts] - Available if .tag is + * member_delete_manual_contacts. (members) Cleared manually added contacts + * @property {TeamLogMemberDeleteProfilePhotoType} [member_delete_profile_photo] + * - Available if .tag is member_delete_profile_photo. (members) Deleted team + * member profile photo + * @property {TeamLogMemberPermanentlyDeleteAccountContentsType} + * [member_permanently_delete_account_contents] - Available if .tag is + * member_permanently_delete_account_contents. (members) Permanently deleted + * contents of deleted team member account + * @property {TeamLogMemberRemoveExternalIdType} [member_remove_external_id] - + * Available if .tag is member_remove_external_id. (members) Removed the + * external ID for team member + * @property {TeamLogMemberSetProfilePhotoType} [member_set_profile_photo] - + * Available if .tag is member_set_profile_photo. (members) Set team member + * profile photo + * @property {TeamLogMemberSpaceLimitsAddCustomQuotaType} + * [member_space_limits_add_custom_quota] - Available if .tag is + * member_space_limits_add_custom_quota. (members) Set custom member space limit + * @property {TeamLogMemberSpaceLimitsChangeCustomQuotaType} + * [member_space_limits_change_custom_quota] - Available if .tag is + * member_space_limits_change_custom_quota. (members) Changed custom member + * space limit + * @property {TeamLogMemberSpaceLimitsChangeStatusType} + * [member_space_limits_change_status] - Available if .tag is + * member_space_limits_change_status. (members) Changed space limit status + * @property {TeamLogMemberSpaceLimitsRemoveCustomQuotaType} + * [member_space_limits_remove_custom_quota] - Available if .tag is + * member_space_limits_remove_custom_quota. (members) Removed custom member + * space limit + * @property {TeamLogMemberSuggestType} [member_suggest] - Available if .tag is + * member_suggest. (members) Suggested person to add to team + * @property {TeamLogMemberTransferAccountContentsType} + * [member_transfer_account_contents] - Available if .tag is + * member_transfer_account_contents. (members) Transferred contents of deleted + * member account to another member + * @property {TeamLogPendingSecondaryEmailAddedType} + * [pending_secondary_email_added] - Available if .tag is + * pending_secondary_email_added. (members) Added pending secondary email + * @property {TeamLogSecondaryEmailDeletedType} [secondary_email_deleted] - + * Available if .tag is secondary_email_deleted. (members) Deleted secondary + * email + * @property {TeamLogSecondaryEmailVerifiedType} [secondary_email_verified] - + * Available if .tag is secondary_email_verified. (members) Verified secondary + * email + * @property {TeamLogSecondaryMailsPolicyChangedType} + * [secondary_mails_policy_changed] - Available if .tag is + * secondary_mails_policy_changed. (members) Secondary mails policy changed + * @property {TeamLogBinderAddPageType} [binder_add_page] - Available if .tag is + * binder_add_page. (paper) Added Binder page (deprecated, replaced by 'Edited + * files') + * @property {TeamLogBinderAddSectionType} [binder_add_section] - Available if + * .tag is binder_add_section. (paper) Added Binder section (deprecated, + * replaced by 'Edited files') + * @property {TeamLogBinderRemovePageType} [binder_remove_page] - Available if + * .tag is binder_remove_page. (paper) Removed Binder page (deprecated, replaced + * by 'Edited files') + * @property {TeamLogBinderRemoveSectionType} [binder_remove_section] - + * Available if .tag is binder_remove_section. (paper) Removed Binder section + * (deprecated, replaced by 'Edited files') + * @property {TeamLogBinderRenamePageType} [binder_rename_page] - Available if + * .tag is binder_rename_page. (paper) Renamed Binder page (deprecated, replaced + * by 'Edited files') + * @property {TeamLogBinderRenameSectionType} [binder_rename_section] - + * Available if .tag is binder_rename_section. (paper) Renamed Binder section + * (deprecated, replaced by 'Edited files') + * @property {TeamLogBinderReorderPageType} [binder_reorder_page] - Available if + * .tag is binder_reorder_page. (paper) Reordered Binder page (deprecated, + * replaced by 'Edited files') + * @property {TeamLogBinderReorderSectionType} [binder_reorder_section] - + * Available if .tag is binder_reorder_section. (paper) Reordered Binder section + * (deprecated, replaced by 'Edited files') + * @property {TeamLogPaperContentAddMemberType} [paper_content_add_member] - + * Available if .tag is paper_content_add_member. (paper) Added users and/or + * groups to Paper doc/folder + * @property {TeamLogPaperContentAddToFolderType} [paper_content_add_to_folder] + * - Available if .tag is paper_content_add_to_folder. (paper) Added Paper + * doc/folder to folder + * @property {TeamLogPaperContentArchiveType} [paper_content_archive] - + * Available if .tag is paper_content_archive. (paper) Archived Paper doc/folder + * @property {TeamLogPaperContentCreateType} [paper_content_create] - Available + * if .tag is paper_content_create. (paper) Created Paper doc/folder + * @property {TeamLogPaperContentPermanentlyDeleteType} + * [paper_content_permanently_delete] - Available if .tag is + * paper_content_permanently_delete. (paper) Permanently deleted Paper + * doc/folder + * @property {TeamLogPaperContentRemoveFromFolderType} + * [paper_content_remove_from_folder] - Available if .tag is + * paper_content_remove_from_folder. (paper) Removed Paper doc/folder from + * folder + * @property {TeamLogPaperContentRemoveMemberType} [paper_content_remove_member] + * - Available if .tag is paper_content_remove_member. (paper) Removed users + * and/or groups from Paper doc/folder + * @property {TeamLogPaperContentRenameType} [paper_content_rename] - Available + * if .tag is paper_content_rename. (paper) Renamed Paper doc/folder + * @property {TeamLogPaperContentRestoreType} [paper_content_restore] - + * Available if .tag is paper_content_restore. (paper) Restored archived Paper + * doc/folder + * @property {TeamLogPaperDocAddCommentType} [paper_doc_add_comment] - Available + * if .tag is paper_doc_add_comment. (paper) Added Paper doc comment + * @property {TeamLogPaperDocChangeMemberRoleType} + * [paper_doc_change_member_role] - Available if .tag is + * paper_doc_change_member_role. (paper) Changed member permissions for Paper + * doc + * @property {TeamLogPaperDocChangeSharingPolicyType} + * [paper_doc_change_sharing_policy] - Available if .tag is + * paper_doc_change_sharing_policy. (paper) Changed sharing setting for Paper + * doc + * @property {TeamLogPaperDocChangeSubscriptionType} + * [paper_doc_change_subscription] - Available if .tag is + * paper_doc_change_subscription. (paper) Followed/unfollowed Paper doc + * @property {TeamLogPaperDocDeletedType} [paper_doc_deleted] - Available if + * .tag is paper_doc_deleted. (paper) Archived Paper doc (deprecated, no longer + * logged) + * @property {TeamLogPaperDocDeleteCommentType} [paper_doc_delete_comment] - + * Available if .tag is paper_doc_delete_comment. (paper) Deleted Paper doc + * comment + * @property {TeamLogPaperDocDownloadType} [paper_doc_download] - Available if + * .tag is paper_doc_download. (paper) Downloaded Paper doc in specific format + * @property {TeamLogPaperDocEditType} [paper_doc_edit] - Available if .tag is + * paper_doc_edit. (paper) Edited Paper doc + * @property {TeamLogPaperDocEditCommentType} [paper_doc_edit_comment] - + * Available if .tag is paper_doc_edit_comment. (paper) Edited Paper doc comment + * @property {TeamLogPaperDocFollowedType} [paper_doc_followed] - Available if + * .tag is paper_doc_followed. (paper) Followed Paper doc (deprecated, replaced + * by 'Followed/unfollowed Paper doc') + * @property {TeamLogPaperDocMentionType} [paper_doc_mention] - Available if + * .tag is paper_doc_mention. (paper) Mentioned user in Paper doc + * @property {TeamLogPaperDocOwnershipChangedType} [paper_doc_ownership_changed] + * - Available if .tag is paper_doc_ownership_changed. (paper) Transferred + * ownership of Paper doc + * @property {TeamLogPaperDocRequestAccessType} [paper_doc_request_access] - + * Available if .tag is paper_doc_request_access. (paper) Requested access to + * Paper doc + * @property {TeamLogPaperDocResolveCommentType} [paper_doc_resolve_comment] - + * Available if .tag is paper_doc_resolve_comment. (paper) Resolved Paper doc + * comment + * @property {TeamLogPaperDocRevertType} [paper_doc_revert] - Available if .tag + * is paper_doc_revert. (paper) Restored Paper doc to previous version + * @property {TeamLogPaperDocSlackShareType} [paper_doc_slack_share] - Available + * if .tag is paper_doc_slack_share. (paper) Shared Paper doc via Slack + * @property {TeamLogPaperDocTeamInviteType} [paper_doc_team_invite] - Available + * if .tag is paper_doc_team_invite. (paper) Shared Paper doc with users and/or + * groups (deprecated, no longer logged) + * @property {TeamLogPaperDocTrashedType} [paper_doc_trashed] - Available if + * .tag is paper_doc_trashed. (paper) Deleted Paper doc + * @property {TeamLogPaperDocUnresolveCommentType} [paper_doc_unresolve_comment] + * - Available if .tag is paper_doc_unresolve_comment. (paper) Unresolved Paper + * doc comment + * @property {TeamLogPaperDocUntrashedType} [paper_doc_untrashed] - Available if + * .tag is paper_doc_untrashed. (paper) Restored Paper doc + * @property {TeamLogPaperDocViewType} [paper_doc_view] - Available if .tag is + * paper_doc_view. (paper) Viewed Paper doc + * @property {TeamLogPaperExternalViewAllowType} [paper_external_view_allow] - + * Available if .tag is paper_external_view_allow. (paper) Changed Paper + * external sharing setting to anyone (deprecated, no longer logged) + * @property {TeamLogPaperExternalViewDefaultTeamType} + * [paper_external_view_default_team] - Available if .tag is + * paper_external_view_default_team. (paper) Changed Paper external sharing + * setting to default team (deprecated, no longer logged) + * @property {TeamLogPaperExternalViewForbidType} [paper_external_view_forbid] - + * Available if .tag is paper_external_view_forbid. (paper) Changed Paper + * external sharing setting to team-only (deprecated, no longer logged) + * @property {TeamLogPaperFolderChangeSubscriptionType} + * [paper_folder_change_subscription] - Available if .tag is + * paper_folder_change_subscription. (paper) Followed/unfollowed Paper folder + * @property {TeamLogPaperFolderDeletedType} [paper_folder_deleted] - Available + * if .tag is paper_folder_deleted. (paper) Archived Paper folder (deprecated, + * no longer logged) + * @property {TeamLogPaperFolderFollowedType} [paper_folder_followed] - + * Available if .tag is paper_folder_followed. (paper) Followed Paper folder + * (deprecated, replaced by 'Followed/unfollowed Paper folder') + * @property {TeamLogPaperFolderTeamInviteType} [paper_folder_team_invite] - + * Available if .tag is paper_folder_team_invite. (paper) Shared Paper folder + * with users and/or groups (deprecated, no longer logged) + * @property {TeamLogPaperPublishedLinkChangePermissionType} + * [paper_published_link_change_permission] - Available if .tag is + * paper_published_link_change_permission. (paper) Changed permissions for + * published doc + * @property {TeamLogPaperPublishedLinkCreateType} [paper_published_link_create] + * - Available if .tag is paper_published_link_create. (paper) Published doc + * @property {TeamLogPaperPublishedLinkDisabledType} + * [paper_published_link_disabled] - Available if .tag is + * paper_published_link_disabled. (paper) Unpublished doc + * @property {TeamLogPaperPublishedLinkViewType} [paper_published_link_view] - + * Available if .tag is paper_published_link_view. (paper) Viewed published doc + * @property {TeamLogPasswordChangeType} [password_change] - Available if .tag + * is password_change. (passwords) Changed password + * @property {TeamLogPasswordResetType} [password_reset] - Available if .tag is + * password_reset. (passwords) Reset password + * @property {TeamLogPasswordResetAllType} [password_reset_all] - Available if + * .tag is password_reset_all. (passwords) Reset all team member passwords + * @property {TeamLogClassificationCreateReportType} + * [classification_create_report] - Available if .tag is + * classification_create_report. (reports) Created Classification report + * @property {TeamLogClassificationCreateReportFailType} + * [classification_create_report_fail] - Available if .tag is + * classification_create_report_fail. (reports) Couldn't create Classification + * report + * @property {TeamLogEmmCreateExceptionsReportType} + * [emm_create_exceptions_report] - Available if .tag is + * emm_create_exceptions_report. (reports) Created EMM-excluded users report + * @property {TeamLogEmmCreateUsageReportType} [emm_create_usage_report] - + * Available if .tag is emm_create_usage_report. (reports) Created EMM mobile + * app usage report + * @property {TeamLogExportMembersReportType} [export_members_report] - + * Available if .tag is export_members_report. (reports) Created member data + * report + * @property {TeamLogExportMembersReportFailType} [export_members_report_fail] - + * Available if .tag is export_members_report_fail. (reports) Failed to create + * members data report + * @property {TeamLogExternalSharingCreateReportType} + * [external_sharing_create_report] - Available if .tag is + * external_sharing_create_report. (reports) Created External sharing report + * @property {TeamLogExternalSharingReportFailedType} + * [external_sharing_report_failed] - Available if .tag is + * external_sharing_report_failed. (reports) Couldn't create External sharing + * report + * @property {TeamLogNoExpirationLinkGenCreateReportType} + * [no_expiration_link_gen_create_report] - Available if .tag is + * no_expiration_link_gen_create_report. (reports) Report created: Links created + * with no expiration + * @property {TeamLogNoExpirationLinkGenReportFailedType} + * [no_expiration_link_gen_report_failed] - Available if .tag is + * no_expiration_link_gen_report_failed. (reports) Couldn't create report: Links + * created with no expiration + * @property {TeamLogNoPasswordLinkGenCreateReportType} + * [no_password_link_gen_create_report] - Available if .tag is + * no_password_link_gen_create_report. (reports) Report created: Links created + * without passwords + * @property {TeamLogNoPasswordLinkGenReportFailedType} + * [no_password_link_gen_report_failed] - Available if .tag is + * no_password_link_gen_report_failed. (reports) Couldn't create report: Links + * created without passwords + * @property {TeamLogNoPasswordLinkViewCreateReportType} + * [no_password_link_view_create_report] - Available if .tag is + * no_password_link_view_create_report. (reports) Report created: Views of links + * without passwords + * @property {TeamLogNoPasswordLinkViewReportFailedType} + * [no_password_link_view_report_failed] - Available if .tag is + * no_password_link_view_report_failed. (reports) Couldn't create report: Views + * of links without passwords + * @property {TeamLogOutdatedLinkViewCreateReportType} + * [outdated_link_view_create_report] - Available if .tag is + * outdated_link_view_create_report. (reports) Report created: Views of old + * links + * @property {TeamLogOutdatedLinkViewReportFailedType} + * [outdated_link_view_report_failed] - Available if .tag is + * outdated_link_view_report_failed. (reports) Couldn't create report: Views of + * old links + * @property {TeamLogPaperAdminExportStartType} [paper_admin_export_start] - + * Available if .tag is paper_admin_export_start. (reports) Exported all team + * Paper docs + * @property {TeamLogSmartSyncCreateAdminPrivilegeReportType} + * [smart_sync_create_admin_privilege_report] - Available if .tag is + * smart_sync_create_admin_privilege_report. (reports) Created Smart Sync + * non-admin devices report + * @property {TeamLogTeamActivityCreateReportType} [team_activity_create_report] + * - Available if .tag is team_activity_create_report. (reports) Created team + * activity report + * @property {TeamLogTeamActivityCreateReportFailType} + * [team_activity_create_report_fail] - Available if .tag is + * team_activity_create_report_fail. (reports) Couldn't generate team activity + * report + * @property {TeamLogCollectionShareType} [collection_share] - Available if .tag + * is collection_share. (sharing) Shared album + * @property {TeamLogFileTransfersFileAddType} [file_transfers_file_add] - + * Available if .tag is file_transfers_file_add. (sharing) Transfer files added + * @property {TeamLogFileTransfersTransferDeleteType} + * [file_transfers_transfer_delete] - Available if .tag is + * file_transfers_transfer_delete. (sharing) Deleted transfer + * @property {TeamLogFileTransfersTransferDownloadType} + * [file_transfers_transfer_download] - Available if .tag is + * file_transfers_transfer_download. (sharing) Transfer downloaded + * @property {TeamLogFileTransfersTransferSendType} + * [file_transfers_transfer_send] - Available if .tag is + * file_transfers_transfer_send. (sharing) Sent transfer + * @property {TeamLogFileTransfersTransferViewType} + * [file_transfers_transfer_view] - Available if .tag is + * file_transfers_transfer_view. (sharing) Viewed transfer + * @property {TeamLogNoteAclInviteOnlyType} [note_acl_invite_only] - Available + * if .tag is note_acl_invite_only. (sharing) Changed Paper doc to invite-only + * (deprecated, no longer logged) + * @property {TeamLogNoteAclLinkType} [note_acl_link] - Available if .tag is + * note_acl_link. (sharing) Changed Paper doc to link-accessible (deprecated, no + * longer logged) + * @property {TeamLogNoteAclTeamLinkType} [note_acl_team_link] - Available if + * .tag is note_acl_team_link. (sharing) Changed Paper doc to link-accessible + * for team (deprecated, no longer logged) + * @property {TeamLogNoteSharedType} [note_shared] - Available if .tag is + * note_shared. (sharing) Shared Paper doc (deprecated, no longer logged) + * @property {TeamLogNoteShareReceiveType} [note_share_receive] - Available if + * .tag is note_share_receive. (sharing) Shared received Paper doc (deprecated, + * no longer logged) + * @property {TeamLogOpenNoteSharedType} [open_note_shared] - Available if .tag + * is open_note_shared. (sharing) Opened shared Paper doc (deprecated, no longer + * logged) + * @property {TeamLogSfAddGroupType} [sf_add_group] - Available if .tag is + * sf_add_group. (sharing) Added team to shared folder (deprecated, no longer + * logged) + * @property {TeamLogSfAllowNonMembersToViewSharedLinksType} + * [sf_allow_non_members_to_view_shared_links] - Available if .tag is + * sf_allow_non_members_to_view_shared_links. (sharing) Allowed + * non-collaborators to view links to files in shared folder (deprecated, no + * longer logged) + * @property {TeamLogSfExternalInviteWarnType} [sf_external_invite_warn] - + * Available if .tag is sf_external_invite_warn. (sharing) Set team members to + * see warning before sharing folders outside team (deprecated, no longer + * logged) + * @property {TeamLogSfFbInviteType} [sf_fb_invite] - Available if .tag is + * sf_fb_invite. (sharing) Invited Facebook users to shared folder (deprecated, + * no longer logged) + * @property {TeamLogSfFbInviteChangeRoleType} [sf_fb_invite_change_role] - + * Available if .tag is sf_fb_invite_change_role. (sharing) Changed Facebook + * user's role in shared folder (deprecated, no longer logged) + * @property {TeamLogSfFbUninviteType} [sf_fb_uninvite] - Available if .tag is + * sf_fb_uninvite. (sharing) Uninvited Facebook user from shared folder + * (deprecated, no longer logged) + * @property {TeamLogSfInviteGroupType} [sf_invite_group] - Available if .tag is + * sf_invite_group. (sharing) Invited group to shared folder (deprecated, no + * longer logged) + * @property {TeamLogSfTeamGrantAccessType} [sf_team_grant_access] - Available + * if .tag is sf_team_grant_access. (sharing) Granted access to shared folder + * (deprecated, no longer logged) + * @property {TeamLogSfTeamInviteType} [sf_team_invite] - Available if .tag is + * sf_team_invite. (sharing) Invited team members to shared folder (deprecated, + * replaced by 'Invited user to Dropbox and added them to shared file/folder') + * @property {TeamLogSfTeamInviteChangeRoleType} [sf_team_invite_change_role] - + * Available if .tag is sf_team_invite_change_role. (sharing) Changed team + * member's role in shared folder (deprecated, no longer logged) + * @property {TeamLogSfTeamJoinType} [sf_team_join] - Available if .tag is + * sf_team_join. (sharing) Joined team member's shared folder (deprecated, no + * longer logged) + * @property {TeamLogSfTeamJoinFromOobLinkType} [sf_team_join_from_oob_link] - + * Available if .tag is sf_team_join_from_oob_link. (sharing) Joined team + * member's shared folder from link (deprecated, no longer logged) + * @property {TeamLogSfTeamUninviteType} [sf_team_uninvite] - Available if .tag + * is sf_team_uninvite. (sharing) Unshared folder with team member (deprecated, + * replaced by 'Removed invitee from shared file/folder before invite was + * accepted') + * @property {TeamLogSharedContentAddInviteesType} [shared_content_add_invitees] + * - Available if .tag is shared_content_add_invitees. (sharing) Invited user to + * Dropbox and added them to shared file/folder + * @property {TeamLogSharedContentAddLinkExpiryType} + * [shared_content_add_link_expiry] - Available if .tag is + * shared_content_add_link_expiry. (sharing) Added expiration date to link for + * shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentAddLinkPasswordType} + * [shared_content_add_link_password] - Available if .tag is + * shared_content_add_link_password. (sharing) Added password to link for shared + * file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentAddMemberType} [shared_content_add_member] - + * Available if .tag is shared_content_add_member. (sharing) Added users and/or + * groups to shared file/folder + * @property {TeamLogSharedContentChangeDownloadsPolicyType} + * [shared_content_change_downloads_policy] - Available if .tag is + * shared_content_change_downloads_policy. (sharing) Changed whether members can + * download shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentChangeInviteeRoleType} + * [shared_content_change_invitee_role] - Available if .tag is + * shared_content_change_invitee_role. (sharing) Changed access type of invitee + * to shared file/folder before invite was accepted + * @property {TeamLogSharedContentChangeLinkAudienceType} + * [shared_content_change_link_audience] - Available if .tag is + * shared_content_change_link_audience. (sharing) Changed link audience of + * shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentChangeLinkExpiryType} + * [shared_content_change_link_expiry] - Available if .tag is + * shared_content_change_link_expiry. (sharing) Changed link expiration of + * shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentChangeLinkPasswordType} + * [shared_content_change_link_password] - Available if .tag is + * shared_content_change_link_password. (sharing) Changed link password of + * shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentChangeMemberRoleType} + * [shared_content_change_member_role] - Available if .tag is + * shared_content_change_member_role. (sharing) Changed access type of shared + * file/folder member + * @property {TeamLogSharedContentChangeViewerInfoPolicyType} + * [shared_content_change_viewer_info_policy] - Available if .tag is + * shared_content_change_viewer_info_policy. (sharing) Changed whether members + * can see who viewed shared file/folder + * @property {TeamLogSharedContentClaimInvitationType} + * [shared_content_claim_invitation] - Available if .tag is + * shared_content_claim_invitation. (sharing) Acquired membership of shared + * file/folder by accepting invite + * @property {TeamLogSharedContentCopyType} [shared_content_copy] - Available if + * .tag is shared_content_copy. (sharing) Copied shared file/folder to own + * Dropbox + * @property {TeamLogSharedContentDownloadType} [shared_content_download] - + * Available if .tag is shared_content_download. (sharing) Downloaded shared + * file/folder + * @property {TeamLogSharedContentRelinquishMembershipType} + * [shared_content_relinquish_membership] - Available if .tag is + * shared_content_relinquish_membership. (sharing) Left shared file/folder + * @property {TeamLogSharedContentRemoveInviteesType} + * [shared_content_remove_invitees] - Available if .tag is + * shared_content_remove_invitees. (sharing) Removed invitee from shared + * file/folder before invite was accepted + * @property {TeamLogSharedContentRemoveLinkExpiryType} + * [shared_content_remove_link_expiry] - Available if .tag is + * shared_content_remove_link_expiry. (sharing) Removed link expiration date of + * shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentRemoveLinkPasswordType} + * [shared_content_remove_link_password] - Available if .tag is + * shared_content_remove_link_password. (sharing) Removed link password of + * shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentRemoveMemberType} + * [shared_content_remove_member] - Available if .tag is + * shared_content_remove_member. (sharing) Removed user/group from shared + * file/folder + * @property {TeamLogSharedContentRequestAccessType} + * [shared_content_request_access] - Available if .tag is + * shared_content_request_access. (sharing) Requested access to shared + * file/folder + * @property {TeamLogSharedContentRestoreInviteesType} + * [shared_content_restore_invitees] - Available if .tag is + * shared_content_restore_invitees. (sharing) Restored shared file/folder + * invitees + * @property {TeamLogSharedContentRestoreMemberType} + * [shared_content_restore_member] - Available if .tag is + * shared_content_restore_member. (sharing) Restored users and/or groups to + * membership of shared file/folder + * @property {TeamLogSharedContentUnshareType} [shared_content_unshare] - + * Available if .tag is shared_content_unshare. (sharing) Unshared file/folder + * by clearing membership + * @property {TeamLogSharedContentViewType} [shared_content_view] - Available if + * .tag is shared_content_view. (sharing) Previewed shared file/folder + * @property {TeamLogSharedFolderChangeLinkPolicyType} + * [shared_folder_change_link_policy] - Available if .tag is + * shared_folder_change_link_policy. (sharing) Changed who can access shared + * folder via link + * @property {TeamLogSharedFolderChangeMembersInheritancePolicyType} + * [shared_folder_change_members_inheritance_policy] - Available if .tag is + * shared_folder_change_members_inheritance_policy. (sharing) Changed whether + * shared folder inherits members from parent folder + * @property {TeamLogSharedFolderChangeMembersManagementPolicyType} + * [shared_folder_change_members_management_policy] - Available if .tag is + * shared_folder_change_members_management_policy. (sharing) Changed who can + * add/remove members of shared folder + * @property {TeamLogSharedFolderChangeMembersPolicyType} + * [shared_folder_change_members_policy] - Available if .tag is + * shared_folder_change_members_policy. (sharing) Changed who can become member + * of shared folder + * @property {TeamLogSharedFolderCreateType} [shared_folder_create] - Available + * if .tag is shared_folder_create. (sharing) Created shared folder + * @property {TeamLogSharedFolderDeclineInvitationType} + * [shared_folder_decline_invitation] - Available if .tag is + * shared_folder_decline_invitation. (sharing) Declined team member's invite to + * shared folder + * @property {TeamLogSharedFolderMountType} [shared_folder_mount] - Available if + * .tag is shared_folder_mount. (sharing) Added shared folder to own Dropbox + * @property {TeamLogSharedFolderNestType} [shared_folder_nest] - Available if + * .tag is shared_folder_nest. (sharing) Changed parent of shared folder + * @property {TeamLogSharedFolderTransferOwnershipType} + * [shared_folder_transfer_ownership] - Available if .tag is + * shared_folder_transfer_ownership. (sharing) Transferred ownership of shared + * folder to another member + * @property {TeamLogSharedFolderUnmountType} [shared_folder_unmount] - + * Available if .tag is shared_folder_unmount. (sharing) Deleted shared folder + * from Dropbox + * @property {TeamLogSharedLinkAddExpiryType} [shared_link_add_expiry] - + * Available if .tag is shared_link_add_expiry. (sharing) Added shared link + * expiration date + * @property {TeamLogSharedLinkChangeExpiryType} [shared_link_change_expiry] - + * Available if .tag is shared_link_change_expiry. (sharing) Changed shared link + * expiration date + * @property {TeamLogSharedLinkChangeVisibilityType} + * [shared_link_change_visibility] - Available if .tag is + * shared_link_change_visibility. (sharing) Changed visibility of shared link + * @property {TeamLogSharedLinkCopyType} [shared_link_copy] - Available if .tag + * is shared_link_copy. (sharing) Added file/folder to Dropbox from shared link + * @property {TeamLogSharedLinkCreateType} [shared_link_create] - Available if + * .tag is shared_link_create. (sharing) Created shared link + * @property {TeamLogSharedLinkDisableType} [shared_link_disable] - Available if + * .tag is shared_link_disable. (sharing) Removed shared link + * @property {TeamLogSharedLinkDownloadType} [shared_link_download] - Available + * if .tag is shared_link_download. (sharing) Downloaded file/folder from shared + * link + * @property {TeamLogSharedLinkRemoveExpiryType} [shared_link_remove_expiry] - + * Available if .tag is shared_link_remove_expiry. (sharing) Removed shared link + * expiration date + * @property {TeamLogSharedLinkSettingsAddExpirationType} + * [shared_link_settings_add_expiration] - Available if .tag is + * shared_link_settings_add_expiration. (sharing) Added an expiration date to + * the shared link + * @property {TeamLogSharedLinkSettingsAddPasswordType} + * [shared_link_settings_add_password] - Available if .tag is + * shared_link_settings_add_password. (sharing) Added a password to the shared + * link + * @property {TeamLogSharedLinkSettingsAllowDownloadDisabledType} + * [shared_link_settings_allow_download_disabled] - Available if .tag is + * shared_link_settings_allow_download_disabled. (sharing) Disabled downloads + * @property {TeamLogSharedLinkSettingsAllowDownloadEnabledType} + * [shared_link_settings_allow_download_enabled] - Available if .tag is + * shared_link_settings_allow_download_enabled. (sharing) Enabled downloads + * @property {TeamLogSharedLinkSettingsChangeAudienceType} + * [shared_link_settings_change_audience] - Available if .tag is + * shared_link_settings_change_audience. (sharing) Changed the audience of the + * shared link + * @property {TeamLogSharedLinkSettingsChangeExpirationType} + * [shared_link_settings_change_expiration] - Available if .tag is + * shared_link_settings_change_expiration. (sharing) Changed the expiration date + * of the shared link + * @property {TeamLogSharedLinkSettingsChangePasswordType} + * [shared_link_settings_change_password] - Available if .tag is + * shared_link_settings_change_password. (sharing) Changed the password of the + * shared link + * @property {TeamLogSharedLinkSettingsRemoveExpirationType} + * [shared_link_settings_remove_expiration] - Available if .tag is + * shared_link_settings_remove_expiration. (sharing) Removed the expiration date + * from the shared link + * @property {TeamLogSharedLinkSettingsRemovePasswordType} + * [shared_link_settings_remove_password] - Available if .tag is + * shared_link_settings_remove_password. (sharing) Removed the password from the + * shared link + * @property {TeamLogSharedLinkShareType} [shared_link_share] - Available if + * .tag is shared_link_share. (sharing) Added members as audience of shared link + * @property {TeamLogSharedLinkViewType} [shared_link_view] - Available if .tag + * is shared_link_view. (sharing) Opened shared link + * @property {TeamLogSharedNoteOpenedType} [shared_note_opened] - Available if + * .tag is shared_note_opened. (sharing) Opened shared Paper doc (deprecated, no + * longer logged) + * @property {TeamLogShmodelDisableDownloadsType} [shmodel_disable_downloads] - + * Available if .tag is shmodel_disable_downloads. (sharing) Disabled downloads + * for link (deprecated, no longer logged) + * @property {TeamLogShmodelEnableDownloadsType} [shmodel_enable_downloads] - + * Available if .tag is shmodel_enable_downloads. (sharing) Enabled downloads + * for link (deprecated, no longer logged) + * @property {TeamLogShmodelGroupShareType} [shmodel_group_share] - Available if + * .tag is shmodel_group_share. (sharing) Shared link with group (deprecated, no + * longer logged) + * @property {TeamLogShowcaseAccessGrantedType} [showcase_access_granted] - + * Available if .tag is showcase_access_granted. (showcase) Granted access to + * showcase + * @property {TeamLogShowcaseAddMemberType} [showcase_add_member] - Available if + * .tag is showcase_add_member. (showcase) Added member to showcase + * @property {TeamLogShowcaseArchivedType} [showcase_archived] - Available if + * .tag is showcase_archived. (showcase) Archived showcase + * @property {TeamLogShowcaseCreatedType} [showcase_created] - Available if .tag + * is showcase_created. (showcase) Created showcase + * @property {TeamLogShowcaseDeleteCommentType} [showcase_delete_comment] - + * Available if .tag is showcase_delete_comment. (showcase) Deleted showcase + * comment + * @property {TeamLogShowcaseEditedType} [showcase_edited] - Available if .tag + * is showcase_edited. (showcase) Edited showcase + * @property {TeamLogShowcaseEditCommentType} [showcase_edit_comment] - + * Available if .tag is showcase_edit_comment. (showcase) Edited showcase + * comment + * @property {TeamLogShowcaseFileAddedType} [showcase_file_added] - Available if + * .tag is showcase_file_added. (showcase) Added file to showcase + * @property {TeamLogShowcaseFileDownloadType} [showcase_file_download] - + * Available if .tag is showcase_file_download. (showcase) Downloaded file from + * showcase + * @property {TeamLogShowcaseFileRemovedType} [showcase_file_removed] - + * Available if .tag is showcase_file_removed. (showcase) Removed file from + * showcase + * @property {TeamLogShowcaseFileViewType} [showcase_file_view] - Available if + * .tag is showcase_file_view. (showcase) Viewed file in showcase + * @property {TeamLogShowcasePermanentlyDeletedType} + * [showcase_permanently_deleted] - Available if .tag is + * showcase_permanently_deleted. (showcase) Permanently deleted showcase + * @property {TeamLogShowcasePostCommentType} [showcase_post_comment] - + * Available if .tag is showcase_post_comment. (showcase) Added showcase comment + * @property {TeamLogShowcaseRemoveMemberType} [showcase_remove_member] - + * Available if .tag is showcase_remove_member. (showcase) Removed member from + * showcase + * @property {TeamLogShowcaseRenamedType} [showcase_renamed] - Available if .tag + * is showcase_renamed. (showcase) Renamed showcase + * @property {TeamLogShowcaseRequestAccessType} [showcase_request_access] - + * Available if .tag is showcase_request_access. (showcase) Requested access to + * showcase + * @property {TeamLogShowcaseResolveCommentType} [showcase_resolve_comment] - + * Available if .tag is showcase_resolve_comment. (showcase) Resolved showcase + * comment + * @property {TeamLogShowcaseRestoredType} [showcase_restored] - Available if + * .tag is showcase_restored. (showcase) Unarchived showcase + * @property {TeamLogShowcaseTrashedType} [showcase_trashed] - Available if .tag + * is showcase_trashed. (showcase) Deleted showcase + * @property {TeamLogShowcaseTrashedDeprecatedType} + * [showcase_trashed_deprecated] - Available if .tag is + * showcase_trashed_deprecated. (showcase) Deleted showcase (old version) + * (deprecated, replaced by 'Deleted showcase') + * @property {TeamLogShowcaseUnresolveCommentType} [showcase_unresolve_comment] + * - Available if .tag is showcase_unresolve_comment. (showcase) Unresolved + * showcase comment + * @property {TeamLogShowcaseUntrashedType} [showcase_untrashed] - Available if + * .tag is showcase_untrashed. (showcase) Restored showcase + * @property {TeamLogShowcaseUntrashedDeprecatedType} + * [showcase_untrashed_deprecated] - Available if .tag is + * showcase_untrashed_deprecated. (showcase) Restored showcase (old version) + * (deprecated, replaced by 'Restored showcase') + * @property {TeamLogShowcaseViewType} [showcase_view] - Available if .tag is + * showcase_view. (showcase) Viewed showcase + * @property {TeamLogSsoAddCertType} [sso_add_cert] - Available if .tag is + * sso_add_cert. (sso) Added X.509 certificate for SSO + * @property {TeamLogSsoAddLoginUrlType} [sso_add_login_url] - Available if .tag + * is sso_add_login_url. (sso) Added sign-in URL for SSO + * @property {TeamLogSsoAddLogoutUrlType} [sso_add_logout_url] - Available if + * .tag is sso_add_logout_url. (sso) Added sign-out URL for SSO + * @property {TeamLogSsoChangeCertType} [sso_change_cert] - Available if .tag is + * sso_change_cert. (sso) Changed X.509 certificate for SSO + * @property {TeamLogSsoChangeLoginUrlType} [sso_change_login_url] - Available + * if .tag is sso_change_login_url. (sso) Changed sign-in URL for SSO + * @property {TeamLogSsoChangeLogoutUrlType} [sso_change_logout_url] - Available + * if .tag is sso_change_logout_url. (sso) Changed sign-out URL for SSO + * @property {TeamLogSsoChangeSamlIdentityModeType} + * [sso_change_saml_identity_mode] - Available if .tag is + * sso_change_saml_identity_mode. (sso) Changed SAML identity mode for SSO + * @property {TeamLogSsoRemoveCertType} [sso_remove_cert] - Available if .tag is + * sso_remove_cert. (sso) Removed X.509 certificate for SSO + * @property {TeamLogSsoRemoveLoginUrlType} [sso_remove_login_url] - Available + * if .tag is sso_remove_login_url. (sso) Removed sign-in URL for SSO + * @property {TeamLogSsoRemoveLogoutUrlType} [sso_remove_logout_url] - Available + * if .tag is sso_remove_logout_url. (sso) Removed sign-out URL for SSO + * @property {TeamLogTeamFolderChangeStatusType} [team_folder_change_status] - + * Available if .tag is team_folder_change_status. (team_folders) Changed + * archival status of team folder + * @property {TeamLogTeamFolderCreateType} [team_folder_create] - Available if + * .tag is team_folder_create. (team_folders) Created team folder in active + * status + * @property {TeamLogTeamFolderDowngradeType} [team_folder_downgrade] - + * Available if .tag is team_folder_downgrade. (team_folders) Downgraded team + * folder to regular shared folder + * @property {TeamLogTeamFolderPermanentlyDeleteType} + * [team_folder_permanently_delete] - Available if .tag is + * team_folder_permanently_delete. (team_folders) Permanently deleted archived + * team folder + * @property {TeamLogTeamFolderRenameType} [team_folder_rename] - Available if + * .tag is team_folder_rename. (team_folders) Renamed active/archived team + * folder + * @property {TeamLogTeamSelectiveSyncSettingsChangedType} + * [team_selective_sync_settings_changed] - Available if .tag is + * team_selective_sync_settings_changed. (team_folders) Changed sync default + * @property {TeamLogAccountCaptureChangePolicyType} + * [account_capture_change_policy] - Available if .tag is + * account_capture_change_policy. (team_policies) Changed account capture + * setting on team domain + * @property {TeamLogAdminEmailRemindersChangedType} + * [admin_email_reminders_changed] - Available if .tag is + * admin_email_reminders_changed. (team_policies) Changed admin reminder + * settings for requests to join the team + * @property {TeamLogAllowDownloadDisabledType} [allow_download_disabled] - + * Available if .tag is allow_download_disabled. (team_policies) Disabled + * downloads (deprecated, no longer logged) + * @property {TeamLogAllowDownloadEnabledType} [allow_download_enabled] - + * Available if .tag is allow_download_enabled. (team_policies) Enabled + * downloads (deprecated, no longer logged) + * @property {TeamLogAppPermissionsChangedType} [app_permissions_changed] - + * Available if .tag is app_permissions_changed. (team_policies) Changed app + * permissions + * @property {TeamLogCameraUploadsPolicyChangedType} + * [camera_uploads_policy_changed] - Available if .tag is + * camera_uploads_policy_changed. (team_policies) Changed camera uploads setting + * for team + * @property {TeamLogCaptureTranscriptPolicyChangedType} + * [capture_transcript_policy_changed] - Available if .tag is + * capture_transcript_policy_changed. (team_policies) Changed Capture + * transcription policy for team + * @property {TeamLogClassificationChangePolicyType} + * [classification_change_policy] - Available if .tag is + * classification_change_policy. (team_policies) Changed classification policy + * for team + * @property {TeamLogComputerBackupPolicyChangedType} + * [computer_backup_policy_changed] - Available if .tag is + * computer_backup_policy_changed. (team_policies) Changed computer backup + * policy for team + * @property {TeamLogContentAdministrationPolicyChangedType} + * [content_administration_policy_changed] - Available if .tag is + * content_administration_policy_changed. (team_policies) Changed content + * management setting + * @property {TeamLogDataPlacementRestrictionChangePolicyType} + * [data_placement_restriction_change_policy] - Available if .tag is + * data_placement_restriction_change_policy. (team_policies) Set restrictions on + * data center locations where team data resides + * @property {TeamLogDataPlacementRestrictionSatisfyPolicyType} + * [data_placement_restriction_satisfy_policy] - Available if .tag is + * data_placement_restriction_satisfy_policy. (team_policies) Completed + * restrictions on data center locations where team data resides + * @property {TeamLogDeviceApprovalsAddExceptionType} + * [device_approvals_add_exception] - Available if .tag is + * device_approvals_add_exception. (team_policies) Added members to device + * approvals exception list + * @property {TeamLogDeviceApprovalsChangeDesktopPolicyType} + * [device_approvals_change_desktop_policy] - Available if .tag is + * device_approvals_change_desktop_policy. (team_policies) Set/removed limit on + * number of computers member can link to team Dropbox account + * @property {TeamLogDeviceApprovalsChangeMobilePolicyType} + * [device_approvals_change_mobile_policy] - Available if .tag is + * device_approvals_change_mobile_policy. (team_policies) Set/removed limit on + * number of mobile devices member can link to team Dropbox account + * @property {TeamLogDeviceApprovalsChangeOverageActionType} + * [device_approvals_change_overage_action] - Available if .tag is + * device_approvals_change_overage_action. (team_policies) Changed device + * approvals setting when member is over limit + * @property {TeamLogDeviceApprovalsChangeUnlinkActionType} + * [device_approvals_change_unlink_action] - Available if .tag is + * device_approvals_change_unlink_action. (team_policies) Changed device + * approvals setting when member unlinks approved device + * @property {TeamLogDeviceApprovalsRemoveExceptionType} + * [device_approvals_remove_exception] - Available if .tag is + * device_approvals_remove_exception. (team_policies) Removed members from + * device approvals exception list + * @property {TeamLogDirectoryRestrictionsAddMembersType} + * [directory_restrictions_add_members] - Available if .tag is + * directory_restrictions_add_members. (team_policies) Added members to + * directory restrictions list + * @property {TeamLogDirectoryRestrictionsRemoveMembersType} + * [directory_restrictions_remove_members] - Available if .tag is + * directory_restrictions_remove_members. (team_policies) Removed members from + * directory restrictions list + * @property {TeamLogDropboxPasswordsPolicyChangedType} + * [dropbox_passwords_policy_changed] - Available if .tag is + * dropbox_passwords_policy_changed. (team_policies) Changed Dropbox Passwords + * policy for team + * @property {TeamLogEmailIngestPolicyChangedType} [email_ingest_policy_changed] + * - Available if .tag is email_ingest_policy_changed. (team_policies) Changed + * email to Dropbox policy for team + * @property {TeamLogEmmAddExceptionType} [emm_add_exception] - Available if + * .tag is emm_add_exception. (team_policies) Added members to EMM exception + * list + * @property {TeamLogEmmChangePolicyType} [emm_change_policy] - Available if + * .tag is emm_change_policy. (team_policies) Enabled/disabled enterprise + * mobility management for members + * @property {TeamLogEmmRemoveExceptionType} [emm_remove_exception] - Available + * if .tag is emm_remove_exception. (team_policies) Removed members from EMM + * exception list + * @property {TeamLogExtendedVersionHistoryChangePolicyType} + * [extended_version_history_change_policy] - Available if .tag is + * extended_version_history_change_policy. (team_policies) Accepted/opted out of + * extended version history + * @property {TeamLogExternalDriveBackupPolicyChangedType} + * [external_drive_backup_policy_changed] - Available if .tag is + * external_drive_backup_policy_changed. (team_policies) Changed external drive + * backup policy for team + * @property {TeamLogFileCommentsChangePolicyType} [file_comments_change_policy] + * - Available if .tag is file_comments_change_policy. (team_policies) + * Enabled/disabled commenting on team files + * @property {TeamLogFileLockingPolicyChangedType} [file_locking_policy_changed] + * - Available if .tag is file_locking_policy_changed. (team_policies) Changed + * file locking policy for team + * @property {TeamLogFileProviderMigrationPolicyChangedType} + * [file_provider_migration_policy_changed] - Available if .tag is + * file_provider_migration_policy_changed. (team_policies) Changed File Provider + * Migration policy for team + * @property {TeamLogFileRequestsChangePolicyType} [file_requests_change_policy] + * - Available if .tag is file_requests_change_policy. (team_policies) + * Enabled/disabled file requests + * @property {TeamLogFileRequestsEmailsEnabledType} + * [file_requests_emails_enabled] - Available if .tag is + * file_requests_emails_enabled. (team_policies) Enabled file request emails for + * everyone (deprecated, no longer logged) + * @property {TeamLogFileRequestsEmailsRestrictedToTeamOnlyType} + * [file_requests_emails_restricted_to_team_only] - Available if .tag is + * file_requests_emails_restricted_to_team_only. (team_policies) Enabled file + * request emails for team (deprecated, no longer logged) + * @property {TeamLogFileTransfersPolicyChangedType} + * [file_transfers_policy_changed] - Available if .tag is + * file_transfers_policy_changed. (team_policies) Changed file transfers policy + * for team + * @property {TeamLogFolderLinkRestrictionPolicyChangedType} + * [folder_link_restriction_policy_changed] - Available if .tag is + * folder_link_restriction_policy_changed. (team_policies) Changed folder link + * restrictions policy for team + * @property {TeamLogGoogleSsoChangePolicyType} [google_sso_change_policy] - + * Available if .tag is google_sso_change_policy. (team_policies) + * Enabled/disabled Google single sign-on for team + * @property {TeamLogGroupUserManagementChangePolicyType} + * [group_user_management_change_policy] - Available if .tag is + * group_user_management_change_policy. (team_policies) Changed who can create + * groups + * @property {TeamLogIntegrationPolicyChangedType} [integration_policy_changed] + * - Available if .tag is integration_policy_changed. (team_policies) Changed + * integration policy for team + * @property {TeamLogInviteAcceptanceEmailPolicyChangedType} + * [invite_acceptance_email_policy_changed] - Available if .tag is + * invite_acceptance_email_policy_changed. (team_policies) Changed invite accept + * email policy for team + * @property {TeamLogMemberRequestsChangePolicyType} + * [member_requests_change_policy] - Available if .tag is + * member_requests_change_policy. (team_policies) Changed whether users can find + * team when not invited + * @property {TeamLogMemberSendInvitePolicyChangedType} + * [member_send_invite_policy_changed] - Available if .tag is + * member_send_invite_policy_changed. (team_policies) Changed member send invite + * policy for team + * @property {TeamLogMemberSpaceLimitsAddExceptionType} + * [member_space_limits_add_exception] - Available if .tag is + * member_space_limits_add_exception. (team_policies) Added members to member + * space limit exception list + * @property {TeamLogMemberSpaceLimitsChangeCapsTypePolicyType} + * [member_space_limits_change_caps_type_policy] - Available if .tag is + * member_space_limits_change_caps_type_policy. (team_policies) Changed member + * space limit type for team + * @property {TeamLogMemberSpaceLimitsChangePolicyType} + * [member_space_limits_change_policy] - Available if .tag is + * member_space_limits_change_policy. (team_policies) Changed team default + * member space limit + * @property {TeamLogMemberSpaceLimitsRemoveExceptionType} + * [member_space_limits_remove_exception] - Available if .tag is + * member_space_limits_remove_exception. (team_policies) Removed members from + * member space limit exception list + * @property {TeamLogMemberSuggestionsChangePolicyType} + * [member_suggestions_change_policy] - Available if .tag is + * member_suggestions_change_policy. (team_policies) Enabled/disabled option for + * team members to suggest people to add to team + * @property {TeamLogMicrosoftOfficeAddinChangePolicyType} + * [microsoft_office_addin_change_policy] - Available if .tag is + * microsoft_office_addin_change_policy. (team_policies) Enabled/disabled + * Microsoft Office add-in + * @property {TeamLogNetworkControlChangePolicyType} + * [network_control_change_policy] - Available if .tag is + * network_control_change_policy. (team_policies) Enabled/disabled network + * control + * @property {TeamLogPaperChangeDeploymentPolicyType} + * [paper_change_deployment_policy] - Available if .tag is + * paper_change_deployment_policy. (team_policies) Changed whether Dropbox + * Paper, when enabled, is deployed to all members or to specific members + * @property {TeamLogPaperChangeMemberLinkPolicyType} + * [paper_change_member_link_policy] - Available if .tag is + * paper_change_member_link_policy. (team_policies) Changed whether non-members + * can view Paper docs with link (deprecated, no longer logged) + * @property {TeamLogPaperChangeMemberPolicyType} [paper_change_member_policy] - + * Available if .tag is paper_change_member_policy. (team_policies) Changed + * whether members can share Paper docs outside team, and if docs are accessible + * only by team members or anyone by default + * @property {TeamLogPaperChangePolicyType} [paper_change_policy] - Available if + * .tag is paper_change_policy. (team_policies) Enabled/disabled Dropbox Paper + * for team + * @property {TeamLogPaperDefaultFolderPolicyChangedType} + * [paper_default_folder_policy_changed] - Available if .tag is + * paper_default_folder_policy_changed. (team_policies) Changed Paper Default + * Folder Policy setting for team + * @property {TeamLogPaperDesktopPolicyChangedType} + * [paper_desktop_policy_changed] - Available if .tag is + * paper_desktop_policy_changed. (team_policies) Enabled/disabled Paper Desktop + * for team + * @property {TeamLogPaperEnabledUsersGroupAdditionType} + * [paper_enabled_users_group_addition] - Available if .tag is + * paper_enabled_users_group_addition. (team_policies) Added users to + * Paper-enabled users list + * @property {TeamLogPaperEnabledUsersGroupRemovalType} + * [paper_enabled_users_group_removal] - Available if .tag is + * paper_enabled_users_group_removal. (team_policies) Removed users from + * Paper-enabled users list + * @property {TeamLogPasswordStrengthRequirementsChangePolicyType} + * [password_strength_requirements_change_policy] - Available if .tag is + * password_strength_requirements_change_policy. (team_policies) Changed team + * password strength requirements + * @property {TeamLogPermanentDeleteChangePolicyType} + * [permanent_delete_change_policy] - Available if .tag is + * permanent_delete_change_policy. (team_policies) Enabled/disabled ability of + * team members to permanently delete content + * @property {TeamLogResellerSupportChangePolicyType} + * [reseller_support_change_policy] - Available if .tag is + * reseller_support_change_policy. (team_policies) Enabled/disabled reseller + * support + * @property {TeamLogRewindPolicyChangedType} [rewind_policy_changed] - + * Available if .tag is rewind_policy_changed. (team_policies) Changed Rewind + * policy for team + * @property {TeamLogSendForSignaturePolicyChangedType} + * [send_for_signature_policy_changed] - Available if .tag is + * send_for_signature_policy_changed. (team_policies) Changed send for signature + * policy for team + * @property {TeamLogSharingChangeFolderJoinPolicyType} + * [sharing_change_folder_join_policy] - Available if .tag is + * sharing_change_folder_join_policy. (team_policies) Changed whether team + * members can join shared folders owned outside team + * @property {TeamLogSharingChangeLinkAllowChangeExpirationPolicyType} + * [sharing_change_link_allow_change_expiration_policy] - Available if .tag is + * sharing_change_link_allow_change_expiration_policy. (team_policies) Changed + * the allow remove or change expiration policy for the links shared outside of + * the team + * @property {TeamLogSharingChangeLinkDefaultExpirationPolicyType} + * [sharing_change_link_default_expiration_policy] - Available if .tag is + * sharing_change_link_default_expiration_policy. (team_policies) Changed the + * default expiration for the links shared outside of the team + * @property {TeamLogSharingChangeLinkEnforcePasswordPolicyType} + * [sharing_change_link_enforce_password_policy] - Available if .tag is + * sharing_change_link_enforce_password_policy. (team_policies) Changed the + * password requirement for the links shared outside of the team + * @property {TeamLogSharingChangeLinkPolicyType} [sharing_change_link_policy] - + * Available if .tag is sharing_change_link_policy. (team_policies) Changed + * whether members can share links outside team, and if links are accessible + * only by team members or anyone by default + * @property {TeamLogSharingChangeMemberPolicyType} + * [sharing_change_member_policy] - Available if .tag is + * sharing_change_member_policy. (team_policies) Changed whether members can + * share files/folders outside team + * @property {TeamLogShowcaseChangeDownloadPolicyType} + * [showcase_change_download_policy] - Available if .tag is + * showcase_change_download_policy. (team_policies) Enabled/disabled downloading + * files from Dropbox Showcase for team + * @property {TeamLogShowcaseChangeEnabledPolicyType} + * [showcase_change_enabled_policy] - Available if .tag is + * showcase_change_enabled_policy. (team_policies) Enabled/disabled Dropbox + * Showcase for team + * @property {TeamLogShowcaseChangeExternalSharingPolicyType} + * [showcase_change_external_sharing_policy] - Available if .tag is + * showcase_change_external_sharing_policy. (team_policies) Enabled/disabled + * sharing Dropbox Showcase externally for team + * @property {TeamLogSmarterSmartSyncPolicyChangedType} + * [smarter_smart_sync_policy_changed] - Available if .tag is + * smarter_smart_sync_policy_changed. (team_policies) Changed automatic Smart + * Sync setting for team + * @property {TeamLogSmartSyncChangePolicyType} [smart_sync_change_policy] - + * Available if .tag is smart_sync_change_policy. (team_policies) Changed + * default Smart Sync setting for team members + * @property {TeamLogSmartSyncNotOptOutType} [smart_sync_not_opt_out] - + * Available if .tag is smart_sync_not_opt_out. (team_policies) Opted team into + * Smart Sync + * @property {TeamLogSmartSyncOptOutType} [smart_sync_opt_out] - Available if + * .tag is smart_sync_opt_out. (team_policies) Opted team out of Smart Sync + * @property {TeamLogSsoChangePolicyType} [sso_change_policy] - Available if + * .tag is sso_change_policy. (team_policies) Changed single sign-on setting for + * team + * @property {TeamLogTeamBrandingPolicyChangedType} + * [team_branding_policy_changed] - Available if .tag is + * team_branding_policy_changed. (team_policies) Changed team branding policy + * for team + * @property {TeamLogTeamExtensionsPolicyChangedType} + * [team_extensions_policy_changed] - Available if .tag is + * team_extensions_policy_changed. (team_policies) Changed App Integrations + * setting for team + * @property {TeamLogTeamSelectiveSyncPolicyChangedType} + * [team_selective_sync_policy_changed] - Available if .tag is + * team_selective_sync_policy_changed. (team_policies) Enabled/disabled Team + * Selective Sync for team + * @property {TeamLogTeamSharingWhitelistSubjectsChangedType} + * [team_sharing_whitelist_subjects_changed] - Available if .tag is + * team_sharing_whitelist_subjects_changed. (team_policies) Edited the approved + * list for sharing externally + * @property {TeamLogTfaAddExceptionType} [tfa_add_exception] - Available if + * .tag is tfa_add_exception. (team_policies) Added members to two factor + * authentication exception list + * @property {TeamLogTfaChangePolicyType} [tfa_change_policy] - Available if + * .tag is tfa_change_policy. (team_policies) Changed two-step verification + * setting for team + * @property {TeamLogTfaRemoveExceptionType} [tfa_remove_exception] - Available + * if .tag is tfa_remove_exception. (team_policies) Removed members from two + * factor authentication exception list + * @property {TeamLogTwoAccountChangePolicyType} [two_account_change_policy] - + * Available if .tag is two_account_change_policy. (team_policies) + * Enabled/disabled option for members to link personal Dropbox account and team + * account to same computer + * @property {TeamLogViewerInfoPolicyChangedType} [viewer_info_policy_changed] - + * Available if .tag is viewer_info_policy_changed. (team_policies) Changed team + * policy for viewer info + * @property {TeamLogWatermarkingPolicyChangedType} + * [watermarking_policy_changed] - Available if .tag is + * watermarking_policy_changed. (team_policies) Changed watermarking policy for + * team + * @property {TeamLogWebSessionsChangeActiveSessionLimitType} + * [web_sessions_change_active_session_limit] - Available if .tag is + * web_sessions_change_active_session_limit. (team_policies) Changed limit on + * active sessions per member + * @property {TeamLogWebSessionsChangeFixedLengthPolicyType} + * [web_sessions_change_fixed_length_policy] - Available if .tag is + * web_sessions_change_fixed_length_policy. (team_policies) Changed how long + * members can stay signed in to Dropbox.com + * @property {TeamLogWebSessionsChangeIdleLengthPolicyType} + * [web_sessions_change_idle_length_policy] - Available if .tag is + * web_sessions_change_idle_length_policy. (team_policies) Changed how long team + * members can be idle while signed in to Dropbox.com + * @property {TeamLogDataResidencyMigrationRequestSuccessfulType} + * [data_residency_migration_request_successful] - Available if .tag is + * data_residency_migration_request_successful. (team_profile) Requested data + * residency migration for team data + * @property {TeamLogDataResidencyMigrationRequestUnsuccessfulType} + * [data_residency_migration_request_unsuccessful] - Available if .tag is + * data_residency_migration_request_unsuccessful. (team_profile) Request for + * data residency migration for team data has failed + * @property {TeamLogTeamMergeFromType} [team_merge_from] - Available if .tag is + * team_merge_from. (team_profile) Merged another team into this team + * @property {TeamLogTeamMergeToType} [team_merge_to] - Available if .tag is + * team_merge_to. (team_profile) Merged this team into another team + * @property {TeamLogTeamProfileAddBackgroundType} [team_profile_add_background] + * - Available if .tag is team_profile_add_background. (team_profile) Added team + * background to display on shared link headers + * @property {TeamLogTeamProfileAddLogoType} [team_profile_add_logo] - Available + * if .tag is team_profile_add_logo. (team_profile) Added team logo to display + * on shared link headers + * @property {TeamLogTeamProfileChangeBackgroundType} + * [team_profile_change_background] - Available if .tag is + * team_profile_change_background. (team_profile) Changed team background + * displayed on shared link headers + * @property {TeamLogTeamProfileChangeDefaultLanguageType} + * [team_profile_change_default_language] - Available if .tag is + * team_profile_change_default_language. (team_profile) Changed default language + * for team + * @property {TeamLogTeamProfileChangeLogoType} [team_profile_change_logo] - + * Available if .tag is team_profile_change_logo. (team_profile) Changed team + * logo displayed on shared link headers + * @property {TeamLogTeamProfileChangeNameType} [team_profile_change_name] - + * Available if .tag is team_profile_change_name. (team_profile) Changed team + * name + * @property {TeamLogTeamProfileRemoveBackgroundType} + * [team_profile_remove_background] - Available if .tag is + * team_profile_remove_background. (team_profile) Removed team background + * displayed on shared link headers + * @property {TeamLogTeamProfileRemoveLogoType} [team_profile_remove_logo] - + * Available if .tag is team_profile_remove_logo. (team_profile) Removed team + * logo displayed on shared link headers + * @property {TeamLogTfaAddBackupPhoneType} [tfa_add_backup_phone] - Available + * if .tag is tfa_add_backup_phone. (tfa) Added backup phone for two-step + * verification + * @property {TeamLogTfaAddSecurityKeyType} [tfa_add_security_key] - Available + * if .tag is tfa_add_security_key. (tfa) Added security key for two-step + * verification + * @property {TeamLogTfaChangeBackupPhoneType} [tfa_change_backup_phone] - + * Available if .tag is tfa_change_backup_phone. (tfa) Changed backup phone for + * two-step verification + * @property {TeamLogTfaChangeStatusType} [tfa_change_status] - Available if + * .tag is tfa_change_status. (tfa) Enabled/disabled/changed two-step + * verification setting + * @property {TeamLogTfaRemoveBackupPhoneType} [tfa_remove_backup_phone] - + * Available if .tag is tfa_remove_backup_phone. (tfa) Removed backup phone for + * two-step verification + * @property {TeamLogTfaRemoveSecurityKeyType} [tfa_remove_security_key] - + * Available if .tag is tfa_remove_security_key. (tfa) Removed security key for + * two-step verification + * @property {TeamLogTfaResetType} [tfa_reset] - Available if .tag is tfa_reset. + * (tfa) Reset two-step verification for team member + * @property {TeamLogChangedEnterpriseAdminRoleType} + * [changed_enterprise_admin_role] - Available if .tag is + * changed_enterprise_admin_role. (trusted_teams) Changed enterprise admin role + * @property {TeamLogChangedEnterpriseConnectedTeamStatusType} + * [changed_enterprise_connected_team_status] - Available if .tag is + * changed_enterprise_connected_team_status. (trusted_teams) Changed + * enterprise-connected team status + * @property {TeamLogEndedEnterpriseAdminSessionType} + * [ended_enterprise_admin_session] - Available if .tag is + * ended_enterprise_admin_session. (trusted_teams) Ended enterprise admin + * session + * @property {TeamLogEndedEnterpriseAdminSessionDeprecatedType} + * [ended_enterprise_admin_session_deprecated] - Available if .tag is + * ended_enterprise_admin_session_deprecated. (trusted_teams) Ended enterprise + * admin session (deprecated, replaced by 'Ended enterprise admin session') + * @property {TeamLogEnterpriseSettingsLockingType} + * [enterprise_settings_locking] - Available if .tag is + * enterprise_settings_locking. (trusted_teams) Changed who can update a setting + * @property {TeamLogGuestAdminChangeStatusType} [guest_admin_change_status] - + * Available if .tag is guest_admin_change_status. (trusted_teams) Changed guest + * team admin status + * @property {TeamLogStartedEnterpriseAdminSessionType} + * [started_enterprise_admin_session] - Available if .tag is + * started_enterprise_admin_session. (trusted_teams) Started enterprise admin + * session + * @property {TeamLogTeamMergeRequestAcceptedType} [team_merge_request_accepted] + * - Available if .tag is team_merge_request_accepted. (trusted_teams) Accepted + * a team merge request + * @property {TeamLogTeamMergeRequestAcceptedShownToPrimaryTeamType} + * [team_merge_request_accepted_shown_to_primary_team] - Available if .tag is + * team_merge_request_accepted_shown_to_primary_team. (trusted_teams) Accepted a + * team merge request (deprecated, replaced by 'Accepted a team merge request') + * @property {TeamLogTeamMergeRequestAcceptedShownToSecondaryTeamType} + * [team_merge_request_accepted_shown_to_secondary_team] - Available if .tag is + * team_merge_request_accepted_shown_to_secondary_team. (trusted_teams) Accepted + * a team merge request (deprecated, replaced by 'Accepted a team merge + * request') + * @property {TeamLogTeamMergeRequestAutoCanceledType} + * [team_merge_request_auto_canceled] - Available if .tag is + * team_merge_request_auto_canceled. (trusted_teams) Automatically canceled team + * merge request + * @property {TeamLogTeamMergeRequestCanceledType} [team_merge_request_canceled] + * - Available if .tag is team_merge_request_canceled. (trusted_teams) Canceled + * a team merge request + * @property {TeamLogTeamMergeRequestCanceledShownToPrimaryTeamType} + * [team_merge_request_canceled_shown_to_primary_team] - Available if .tag is + * team_merge_request_canceled_shown_to_primary_team. (trusted_teams) Canceled a + * team merge request (deprecated, replaced by 'Canceled a team merge request') + * @property {TeamLogTeamMergeRequestCanceledShownToSecondaryTeamType} + * [team_merge_request_canceled_shown_to_secondary_team] - Available if .tag is + * team_merge_request_canceled_shown_to_secondary_team. (trusted_teams) Canceled + * a team merge request (deprecated, replaced by 'Canceled a team merge + * request') + * @property {TeamLogTeamMergeRequestExpiredType} [team_merge_request_expired] - + * Available if .tag is team_merge_request_expired. (trusted_teams) Team merge + * request expired + * @property {TeamLogTeamMergeRequestExpiredShownToPrimaryTeamType} + * [team_merge_request_expired_shown_to_primary_team] - Available if .tag is + * team_merge_request_expired_shown_to_primary_team. (trusted_teams) Team merge + * request expired (deprecated, replaced by 'Team merge request expired') + * @property {TeamLogTeamMergeRequestExpiredShownToSecondaryTeamType} + * [team_merge_request_expired_shown_to_secondary_team] - Available if .tag is + * team_merge_request_expired_shown_to_secondary_team. (trusted_teams) Team + * merge request expired (deprecated, replaced by 'Team merge request expired') + * @property {TeamLogTeamMergeRequestRejectedShownToPrimaryTeamType} + * [team_merge_request_rejected_shown_to_primary_team] - Available if .tag is + * team_merge_request_rejected_shown_to_primary_team. (trusted_teams) Rejected a + * team merge request (deprecated, no longer logged) + * @property {TeamLogTeamMergeRequestRejectedShownToSecondaryTeamType} + * [team_merge_request_rejected_shown_to_secondary_team] - Available if .tag is + * team_merge_request_rejected_shown_to_secondary_team. (trusted_teams) Rejected + * a team merge request (deprecated, no longer logged) + * @property {TeamLogTeamMergeRequestReminderType} [team_merge_request_reminder] + * - Available if .tag is team_merge_request_reminder. (trusted_teams) Sent a + * team merge request reminder + * @property {TeamLogTeamMergeRequestReminderShownToPrimaryTeamType} + * [team_merge_request_reminder_shown_to_primary_team] - Available if .tag is + * team_merge_request_reminder_shown_to_primary_team. (trusted_teams) Sent a + * team merge request reminder (deprecated, replaced by 'Sent a team merge + * request reminder') + * @property {TeamLogTeamMergeRequestReminderShownToSecondaryTeamType} + * [team_merge_request_reminder_shown_to_secondary_team] - Available if .tag is + * team_merge_request_reminder_shown_to_secondary_team. (trusted_teams) Sent a + * team merge request reminder (deprecated, replaced by 'Sent a team merge + * request reminder') + * @property {TeamLogTeamMergeRequestRevokedType} [team_merge_request_revoked] - + * Available if .tag is team_merge_request_revoked. (trusted_teams) Canceled the + * team merge + * @property {TeamLogTeamMergeRequestSentShownToPrimaryTeamType} + * [team_merge_request_sent_shown_to_primary_team] - Available if .tag is + * team_merge_request_sent_shown_to_primary_team. (trusted_teams) Requested to + * merge their Dropbox team into yours + * @property {TeamLogTeamMergeRequestSentShownToSecondaryTeamType} + * [team_merge_request_sent_shown_to_secondary_team] - Available if .tag is + * team_merge_request_sent_shown_to_secondary_team. (trusted_teams) Requested to + * merge your team into another Dropbox team + * @property {('admin_alerting_alert_state_changed'|'admin_alerting_changed_alert_config'|'admin_alerting_triggered_alert'|'app_blocked_by_permissions'|'app_link_team'|'app_link_user'|'app_unlink_team'|'app_unlink_user'|'integration_connected'|'integration_disconnected'|'file_add_comment'|'file_change_comment_subscription'|'file_delete_comment'|'file_edit_comment'|'file_like_comment'|'file_resolve_comment'|'file_unlike_comment'|'file_unresolve_comment'|'governance_policy_add_folders'|'governance_policy_add_folder_failed'|'governance_policy_content_disposed'|'governance_policy_create'|'governance_policy_delete'|'governance_policy_edit_details'|'governance_policy_edit_duration'|'governance_policy_export_created'|'governance_policy_export_removed'|'governance_policy_remove_folders'|'governance_policy_report_created'|'governance_policy_zip_part_downloaded'|'legal_holds_activate_a_hold'|'legal_holds_add_members'|'legal_holds_change_hold_details'|'legal_holds_change_hold_name'|'legal_holds_export_a_hold'|'legal_holds_export_cancelled'|'legal_holds_export_downloaded'|'legal_holds_export_removed'|'legal_holds_release_a_hold'|'legal_holds_remove_members'|'legal_holds_report_a_hold'|'device_change_ip_desktop'|'device_change_ip_mobile'|'device_change_ip_web'|'device_delete_on_unlink_fail'|'device_delete_on_unlink_success'|'device_link_fail'|'device_link_success'|'device_management_disabled'|'device_management_enabled'|'device_sync_backup_status_changed'|'device_unlink'|'dropbox_passwords_exported'|'dropbox_passwords_new_device_enrolled'|'emm_refresh_auth_token'|'external_drive_backup_eligibility_status_checked'|'external_drive_backup_status_changed'|'account_capture_change_availability'|'account_capture_migrate_account'|'account_capture_notification_emails_sent'|'account_capture_relinquish_account'|'disabled_domain_invites'|'domain_invites_approve_request_to_join_team'|'domain_invites_decline_request_to_join_team'|'domain_invites_email_existing_users'|'domain_invites_request_to_join_team'|'domain_invites_set_invite_new_user_pref_to_no'|'domain_invites_set_invite_new_user_pref_to_yes'|'domain_verification_add_domain_fail'|'domain_verification_add_domain_success'|'domain_verification_remove_domain'|'enabled_domain_invites'|'apply_naming_convention'|'create_folder'|'file_add'|'file_copy'|'file_delete'|'file_download'|'file_edit'|'file_get_copy_reference'|'file_locking_lock_status_changed'|'file_move'|'file_permanently_delete'|'file_preview'|'file_rename'|'file_restore'|'file_revert'|'file_rollback_changes'|'file_save_copy_reference'|'folder_overview_description_changed'|'folder_overview_item_pinned'|'folder_overview_item_unpinned'|'object_label_added'|'object_label_removed'|'object_label_updated_value'|'organize_folder_with_tidy'|'rewind_folder'|'undo_naming_convention'|'undo_organize_folder_with_tidy'|'user_tags_added'|'user_tags_removed'|'email_ingest_receive_file'|'file_request_change'|'file_request_close'|'file_request_create'|'file_request_delete'|'file_request_receive_file'|'group_add_external_id'|'group_add_member'|'group_change_external_id'|'group_change_management_type'|'group_change_member_role'|'group_create'|'group_delete'|'group_description_updated'|'group_join_policy_updated'|'group_moved'|'group_remove_external_id'|'group_remove_member'|'group_rename'|'account_lock_or_unlocked'|'emm_error'|'guest_admin_signed_in_via_trusted_teams'|'guest_admin_signed_out_via_trusted_teams'|'login_fail'|'login_success'|'logout'|'reseller_support_session_end'|'reseller_support_session_start'|'sign_in_as_session_end'|'sign_in_as_session_start'|'sso_error'|'create_team_invite_link'|'delete_team_invite_link'|'member_add_external_id'|'member_add_name'|'member_change_admin_role'|'member_change_email'|'member_change_external_id'|'member_change_membership_type'|'member_change_name'|'member_change_reseller_role'|'member_change_status'|'member_delete_manual_contacts'|'member_delete_profile_photo'|'member_permanently_delete_account_contents'|'member_remove_external_id'|'member_set_profile_photo'|'member_space_limits_add_custom_quota'|'member_space_limits_change_custom_quota'|'member_space_limits_change_status'|'member_space_limits_remove_custom_quota'|'member_suggest'|'member_transfer_account_contents'|'pending_secondary_email_added'|'secondary_email_deleted'|'secondary_email_verified'|'secondary_mails_policy_changed'|'binder_add_page'|'binder_add_section'|'binder_remove_page'|'binder_remove_section'|'binder_rename_page'|'binder_rename_section'|'binder_reorder_page'|'binder_reorder_section'|'paper_content_add_member'|'paper_content_add_to_folder'|'paper_content_archive'|'paper_content_create'|'paper_content_permanently_delete'|'paper_content_remove_from_folder'|'paper_content_remove_member'|'paper_content_rename'|'paper_content_restore'|'paper_doc_add_comment'|'paper_doc_change_member_role'|'paper_doc_change_sharing_policy'|'paper_doc_change_subscription'|'paper_doc_deleted'|'paper_doc_delete_comment'|'paper_doc_download'|'paper_doc_edit'|'paper_doc_edit_comment'|'paper_doc_followed'|'paper_doc_mention'|'paper_doc_ownership_changed'|'paper_doc_request_access'|'paper_doc_resolve_comment'|'paper_doc_revert'|'paper_doc_slack_share'|'paper_doc_team_invite'|'paper_doc_trashed'|'paper_doc_unresolve_comment'|'paper_doc_untrashed'|'paper_doc_view'|'paper_external_view_allow'|'paper_external_view_default_team'|'paper_external_view_forbid'|'paper_folder_change_subscription'|'paper_folder_deleted'|'paper_folder_followed'|'paper_folder_team_invite'|'paper_published_link_change_permission'|'paper_published_link_create'|'paper_published_link_disabled'|'paper_published_link_view'|'password_change'|'password_reset'|'password_reset_all'|'classification_create_report'|'classification_create_report_fail'|'emm_create_exceptions_report'|'emm_create_usage_report'|'export_members_report'|'export_members_report_fail'|'external_sharing_create_report'|'external_sharing_report_failed'|'no_expiration_link_gen_create_report'|'no_expiration_link_gen_report_failed'|'no_password_link_gen_create_report'|'no_password_link_gen_report_failed'|'no_password_link_view_create_report'|'no_password_link_view_report_failed'|'outdated_link_view_create_report'|'outdated_link_view_report_failed'|'paper_admin_export_start'|'smart_sync_create_admin_privilege_report'|'team_activity_create_report'|'team_activity_create_report_fail'|'collection_share'|'file_transfers_file_add'|'file_transfers_transfer_delete'|'file_transfers_transfer_download'|'file_transfers_transfer_send'|'file_transfers_transfer_view'|'note_acl_invite_only'|'note_acl_link'|'note_acl_team_link'|'note_shared'|'note_share_receive'|'open_note_shared'|'sf_add_group'|'sf_allow_non_members_to_view_shared_links'|'sf_external_invite_warn'|'sf_fb_invite'|'sf_fb_invite_change_role'|'sf_fb_uninvite'|'sf_invite_group'|'sf_team_grant_access'|'sf_team_invite'|'sf_team_invite_change_role'|'sf_team_join'|'sf_team_join_from_oob_link'|'sf_team_uninvite'|'shared_content_add_invitees'|'shared_content_add_link_expiry'|'shared_content_add_link_password'|'shared_content_add_member'|'shared_content_change_downloads_policy'|'shared_content_change_invitee_role'|'shared_content_change_link_audience'|'shared_content_change_link_expiry'|'shared_content_change_link_password'|'shared_content_change_member_role'|'shared_content_change_viewer_info_policy'|'shared_content_claim_invitation'|'shared_content_copy'|'shared_content_download'|'shared_content_relinquish_membership'|'shared_content_remove_invitees'|'shared_content_remove_link_expiry'|'shared_content_remove_link_password'|'shared_content_remove_member'|'shared_content_request_access'|'shared_content_restore_invitees'|'shared_content_restore_member'|'shared_content_unshare'|'shared_content_view'|'shared_folder_change_link_policy'|'shared_folder_change_members_inheritance_policy'|'shared_folder_change_members_management_policy'|'shared_folder_change_members_policy'|'shared_folder_create'|'shared_folder_decline_invitation'|'shared_folder_mount'|'shared_folder_nest'|'shared_folder_transfer_ownership'|'shared_folder_unmount'|'shared_link_add_expiry'|'shared_link_change_expiry'|'shared_link_change_visibility'|'shared_link_copy'|'shared_link_create'|'shared_link_disable'|'shared_link_download'|'shared_link_remove_expiry'|'shared_link_settings_add_expiration'|'shared_link_settings_add_password'|'shared_link_settings_allow_download_disabled'|'shared_link_settings_allow_download_enabled'|'shared_link_settings_change_audience'|'shared_link_settings_change_expiration'|'shared_link_settings_change_password'|'shared_link_settings_remove_expiration'|'shared_link_settings_remove_password'|'shared_link_share'|'shared_link_view'|'shared_note_opened'|'shmodel_disable_downloads'|'shmodel_enable_downloads'|'shmodel_group_share'|'showcase_access_granted'|'showcase_add_member'|'showcase_archived'|'showcase_created'|'showcase_delete_comment'|'showcase_edited'|'showcase_edit_comment'|'showcase_file_added'|'showcase_file_download'|'showcase_file_removed'|'showcase_file_view'|'showcase_permanently_deleted'|'showcase_post_comment'|'showcase_remove_member'|'showcase_renamed'|'showcase_request_access'|'showcase_resolve_comment'|'showcase_restored'|'showcase_trashed'|'showcase_trashed_deprecated'|'showcase_unresolve_comment'|'showcase_untrashed'|'showcase_untrashed_deprecated'|'showcase_view'|'sso_add_cert'|'sso_add_login_url'|'sso_add_logout_url'|'sso_change_cert'|'sso_change_login_url'|'sso_change_logout_url'|'sso_change_saml_identity_mode'|'sso_remove_cert'|'sso_remove_login_url'|'sso_remove_logout_url'|'team_folder_change_status'|'team_folder_create'|'team_folder_downgrade'|'team_folder_permanently_delete'|'team_folder_rename'|'team_selective_sync_settings_changed'|'account_capture_change_policy'|'admin_email_reminders_changed'|'allow_download_disabled'|'allow_download_enabled'|'app_permissions_changed'|'camera_uploads_policy_changed'|'capture_transcript_policy_changed'|'classification_change_policy'|'computer_backup_policy_changed'|'content_administration_policy_changed'|'data_placement_restriction_change_policy'|'data_placement_restriction_satisfy_policy'|'device_approvals_add_exception'|'device_approvals_change_desktop_policy'|'device_approvals_change_mobile_policy'|'device_approvals_change_overage_action'|'device_approvals_change_unlink_action'|'device_approvals_remove_exception'|'directory_restrictions_add_members'|'directory_restrictions_remove_members'|'dropbox_passwords_policy_changed'|'email_ingest_policy_changed'|'emm_add_exception'|'emm_change_policy'|'emm_remove_exception'|'extended_version_history_change_policy'|'external_drive_backup_policy_changed'|'file_comments_change_policy'|'file_locking_policy_changed'|'file_provider_migration_policy_changed'|'file_requests_change_policy'|'file_requests_emails_enabled'|'file_requests_emails_restricted_to_team_only'|'file_transfers_policy_changed'|'folder_link_restriction_policy_changed'|'google_sso_change_policy'|'group_user_management_change_policy'|'integration_policy_changed'|'invite_acceptance_email_policy_changed'|'member_requests_change_policy'|'member_send_invite_policy_changed'|'member_space_limits_add_exception'|'member_space_limits_change_caps_type_policy'|'member_space_limits_change_policy'|'member_space_limits_remove_exception'|'member_suggestions_change_policy'|'microsoft_office_addin_change_policy'|'network_control_change_policy'|'paper_change_deployment_policy'|'paper_change_member_link_policy'|'paper_change_member_policy'|'paper_change_policy'|'paper_default_folder_policy_changed'|'paper_desktop_policy_changed'|'paper_enabled_users_group_addition'|'paper_enabled_users_group_removal'|'password_strength_requirements_change_policy'|'permanent_delete_change_policy'|'reseller_support_change_policy'|'rewind_policy_changed'|'send_for_signature_policy_changed'|'sharing_change_folder_join_policy'|'sharing_change_link_allow_change_expiration_policy'|'sharing_change_link_default_expiration_policy'|'sharing_change_link_enforce_password_policy'|'sharing_change_link_policy'|'sharing_change_member_policy'|'showcase_change_download_policy'|'showcase_change_enabled_policy'|'showcase_change_external_sharing_policy'|'smarter_smart_sync_policy_changed'|'smart_sync_change_policy'|'smart_sync_not_opt_out'|'smart_sync_opt_out'|'sso_change_policy'|'team_branding_policy_changed'|'team_extensions_policy_changed'|'team_selective_sync_policy_changed'|'team_sharing_whitelist_subjects_changed'|'tfa_add_exception'|'tfa_change_policy'|'tfa_remove_exception'|'two_account_change_policy'|'viewer_info_policy_changed'|'watermarking_policy_changed'|'web_sessions_change_active_session_limit'|'web_sessions_change_fixed_length_policy'|'web_sessions_change_idle_length_policy'|'data_residency_migration_request_successful'|'data_residency_migration_request_unsuccessful'|'team_merge_from'|'team_merge_to'|'team_profile_add_background'|'team_profile_add_logo'|'team_profile_change_background'|'team_profile_change_default_language'|'team_profile_change_logo'|'team_profile_change_name'|'team_profile_remove_background'|'team_profile_remove_logo'|'tfa_add_backup_phone'|'tfa_add_security_key'|'tfa_change_backup_phone'|'tfa_change_status'|'tfa_remove_backup_phone'|'tfa_remove_security_key'|'tfa_reset'|'changed_enterprise_admin_role'|'changed_enterprise_connected_team_status'|'ended_enterprise_admin_session'|'ended_enterprise_admin_session_deprecated'|'enterprise_settings_locking'|'guest_admin_change_status'|'started_enterprise_admin_session'|'team_merge_request_accepted'|'team_merge_request_accepted_shown_to_primary_team'|'team_merge_request_accepted_shown_to_secondary_team'|'team_merge_request_auto_canceled'|'team_merge_request_canceled'|'team_merge_request_canceled_shown_to_primary_team'|'team_merge_request_canceled_shown_to_secondary_team'|'team_merge_request_expired'|'team_merge_request_expired_shown_to_primary_team'|'team_merge_request_expired_shown_to_secondary_team'|'team_merge_request_rejected_shown_to_primary_team'|'team_merge_request_rejected_shown_to_secondary_team'|'team_merge_request_reminder'|'team_merge_request_reminder_shown_to_primary_team'|'team_merge_request_reminder_shown_to_secondary_team'|'team_merge_request_revoked'|'team_merge_request_sent_shown_to_primary_team'|'team_merge_request_sent_shown_to_secondary_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * The type of the event. + * @typedef {Object} TeamLogEventTypeArg + * @property {('admin_alerting_alert_state_changed'|'admin_alerting_changed_alert_config'|'admin_alerting_triggered_alert'|'app_blocked_by_permissions'|'app_link_team'|'app_link_user'|'app_unlink_team'|'app_unlink_user'|'integration_connected'|'integration_disconnected'|'file_add_comment'|'file_change_comment_subscription'|'file_delete_comment'|'file_edit_comment'|'file_like_comment'|'file_resolve_comment'|'file_unlike_comment'|'file_unresolve_comment'|'governance_policy_add_folders'|'governance_policy_add_folder_failed'|'governance_policy_content_disposed'|'governance_policy_create'|'governance_policy_delete'|'governance_policy_edit_details'|'governance_policy_edit_duration'|'governance_policy_export_created'|'governance_policy_export_removed'|'governance_policy_remove_folders'|'governance_policy_report_created'|'governance_policy_zip_part_downloaded'|'legal_holds_activate_a_hold'|'legal_holds_add_members'|'legal_holds_change_hold_details'|'legal_holds_change_hold_name'|'legal_holds_export_a_hold'|'legal_holds_export_cancelled'|'legal_holds_export_downloaded'|'legal_holds_export_removed'|'legal_holds_release_a_hold'|'legal_holds_remove_members'|'legal_holds_report_a_hold'|'device_change_ip_desktop'|'device_change_ip_mobile'|'device_change_ip_web'|'device_delete_on_unlink_fail'|'device_delete_on_unlink_success'|'device_link_fail'|'device_link_success'|'device_management_disabled'|'device_management_enabled'|'device_sync_backup_status_changed'|'device_unlink'|'dropbox_passwords_exported'|'dropbox_passwords_new_device_enrolled'|'emm_refresh_auth_token'|'external_drive_backup_eligibility_status_checked'|'external_drive_backup_status_changed'|'account_capture_change_availability'|'account_capture_migrate_account'|'account_capture_notification_emails_sent'|'account_capture_relinquish_account'|'disabled_domain_invites'|'domain_invites_approve_request_to_join_team'|'domain_invites_decline_request_to_join_team'|'domain_invites_email_existing_users'|'domain_invites_request_to_join_team'|'domain_invites_set_invite_new_user_pref_to_no'|'domain_invites_set_invite_new_user_pref_to_yes'|'domain_verification_add_domain_fail'|'domain_verification_add_domain_success'|'domain_verification_remove_domain'|'enabled_domain_invites'|'apply_naming_convention'|'create_folder'|'file_add'|'file_copy'|'file_delete'|'file_download'|'file_edit'|'file_get_copy_reference'|'file_locking_lock_status_changed'|'file_move'|'file_permanently_delete'|'file_preview'|'file_rename'|'file_restore'|'file_revert'|'file_rollback_changes'|'file_save_copy_reference'|'folder_overview_description_changed'|'folder_overview_item_pinned'|'folder_overview_item_unpinned'|'object_label_added'|'object_label_removed'|'object_label_updated_value'|'organize_folder_with_tidy'|'rewind_folder'|'undo_naming_convention'|'undo_organize_folder_with_tidy'|'user_tags_added'|'user_tags_removed'|'email_ingest_receive_file'|'file_request_change'|'file_request_close'|'file_request_create'|'file_request_delete'|'file_request_receive_file'|'group_add_external_id'|'group_add_member'|'group_change_external_id'|'group_change_management_type'|'group_change_member_role'|'group_create'|'group_delete'|'group_description_updated'|'group_join_policy_updated'|'group_moved'|'group_remove_external_id'|'group_remove_member'|'group_rename'|'account_lock_or_unlocked'|'emm_error'|'guest_admin_signed_in_via_trusted_teams'|'guest_admin_signed_out_via_trusted_teams'|'login_fail'|'login_success'|'logout'|'reseller_support_session_end'|'reseller_support_session_start'|'sign_in_as_session_end'|'sign_in_as_session_start'|'sso_error'|'create_team_invite_link'|'delete_team_invite_link'|'member_add_external_id'|'member_add_name'|'member_change_admin_role'|'member_change_email'|'member_change_external_id'|'member_change_membership_type'|'member_change_name'|'member_change_reseller_role'|'member_change_status'|'member_delete_manual_contacts'|'member_delete_profile_photo'|'member_permanently_delete_account_contents'|'member_remove_external_id'|'member_set_profile_photo'|'member_space_limits_add_custom_quota'|'member_space_limits_change_custom_quota'|'member_space_limits_change_status'|'member_space_limits_remove_custom_quota'|'member_suggest'|'member_transfer_account_contents'|'pending_secondary_email_added'|'secondary_email_deleted'|'secondary_email_verified'|'secondary_mails_policy_changed'|'binder_add_page'|'binder_add_section'|'binder_remove_page'|'binder_remove_section'|'binder_rename_page'|'binder_rename_section'|'binder_reorder_page'|'binder_reorder_section'|'paper_content_add_member'|'paper_content_add_to_folder'|'paper_content_archive'|'paper_content_create'|'paper_content_permanently_delete'|'paper_content_remove_from_folder'|'paper_content_remove_member'|'paper_content_rename'|'paper_content_restore'|'paper_doc_add_comment'|'paper_doc_change_member_role'|'paper_doc_change_sharing_policy'|'paper_doc_change_subscription'|'paper_doc_deleted'|'paper_doc_delete_comment'|'paper_doc_download'|'paper_doc_edit'|'paper_doc_edit_comment'|'paper_doc_followed'|'paper_doc_mention'|'paper_doc_ownership_changed'|'paper_doc_request_access'|'paper_doc_resolve_comment'|'paper_doc_revert'|'paper_doc_slack_share'|'paper_doc_team_invite'|'paper_doc_trashed'|'paper_doc_unresolve_comment'|'paper_doc_untrashed'|'paper_doc_view'|'paper_external_view_allow'|'paper_external_view_default_team'|'paper_external_view_forbid'|'paper_folder_change_subscription'|'paper_folder_deleted'|'paper_folder_followed'|'paper_folder_team_invite'|'paper_published_link_change_permission'|'paper_published_link_create'|'paper_published_link_disabled'|'paper_published_link_view'|'password_change'|'password_reset'|'password_reset_all'|'classification_create_report'|'classification_create_report_fail'|'emm_create_exceptions_report'|'emm_create_usage_report'|'export_members_report'|'export_members_report_fail'|'external_sharing_create_report'|'external_sharing_report_failed'|'no_expiration_link_gen_create_report'|'no_expiration_link_gen_report_failed'|'no_password_link_gen_create_report'|'no_password_link_gen_report_failed'|'no_password_link_view_create_report'|'no_password_link_view_report_failed'|'outdated_link_view_create_report'|'outdated_link_view_report_failed'|'paper_admin_export_start'|'smart_sync_create_admin_privilege_report'|'team_activity_create_report'|'team_activity_create_report_fail'|'collection_share'|'file_transfers_file_add'|'file_transfers_transfer_delete'|'file_transfers_transfer_download'|'file_transfers_transfer_send'|'file_transfers_transfer_view'|'note_acl_invite_only'|'note_acl_link'|'note_acl_team_link'|'note_shared'|'note_share_receive'|'open_note_shared'|'sf_add_group'|'sf_allow_non_members_to_view_shared_links'|'sf_external_invite_warn'|'sf_fb_invite'|'sf_fb_invite_change_role'|'sf_fb_uninvite'|'sf_invite_group'|'sf_team_grant_access'|'sf_team_invite'|'sf_team_invite_change_role'|'sf_team_join'|'sf_team_join_from_oob_link'|'sf_team_uninvite'|'shared_content_add_invitees'|'shared_content_add_link_expiry'|'shared_content_add_link_password'|'shared_content_add_member'|'shared_content_change_downloads_policy'|'shared_content_change_invitee_role'|'shared_content_change_link_audience'|'shared_content_change_link_expiry'|'shared_content_change_link_password'|'shared_content_change_member_role'|'shared_content_change_viewer_info_policy'|'shared_content_claim_invitation'|'shared_content_copy'|'shared_content_download'|'shared_content_relinquish_membership'|'shared_content_remove_invitees'|'shared_content_remove_link_expiry'|'shared_content_remove_link_password'|'shared_content_remove_member'|'shared_content_request_access'|'shared_content_restore_invitees'|'shared_content_restore_member'|'shared_content_unshare'|'shared_content_view'|'shared_folder_change_link_policy'|'shared_folder_change_members_inheritance_policy'|'shared_folder_change_members_management_policy'|'shared_folder_change_members_policy'|'shared_folder_create'|'shared_folder_decline_invitation'|'shared_folder_mount'|'shared_folder_nest'|'shared_folder_transfer_ownership'|'shared_folder_unmount'|'shared_link_add_expiry'|'shared_link_change_expiry'|'shared_link_change_visibility'|'shared_link_copy'|'shared_link_create'|'shared_link_disable'|'shared_link_download'|'shared_link_remove_expiry'|'shared_link_settings_add_expiration'|'shared_link_settings_add_password'|'shared_link_settings_allow_download_disabled'|'shared_link_settings_allow_download_enabled'|'shared_link_settings_change_audience'|'shared_link_settings_change_expiration'|'shared_link_settings_change_password'|'shared_link_settings_remove_expiration'|'shared_link_settings_remove_password'|'shared_link_share'|'shared_link_view'|'shared_note_opened'|'shmodel_disable_downloads'|'shmodel_enable_downloads'|'shmodel_group_share'|'showcase_access_granted'|'showcase_add_member'|'showcase_archived'|'showcase_created'|'showcase_delete_comment'|'showcase_edited'|'showcase_edit_comment'|'showcase_file_added'|'showcase_file_download'|'showcase_file_removed'|'showcase_file_view'|'showcase_permanently_deleted'|'showcase_post_comment'|'showcase_remove_member'|'showcase_renamed'|'showcase_request_access'|'showcase_resolve_comment'|'showcase_restored'|'showcase_trashed'|'showcase_trashed_deprecated'|'showcase_unresolve_comment'|'showcase_untrashed'|'showcase_untrashed_deprecated'|'showcase_view'|'sso_add_cert'|'sso_add_login_url'|'sso_add_logout_url'|'sso_change_cert'|'sso_change_login_url'|'sso_change_logout_url'|'sso_change_saml_identity_mode'|'sso_remove_cert'|'sso_remove_login_url'|'sso_remove_logout_url'|'team_folder_change_status'|'team_folder_create'|'team_folder_downgrade'|'team_folder_permanently_delete'|'team_folder_rename'|'team_selective_sync_settings_changed'|'account_capture_change_policy'|'admin_email_reminders_changed'|'allow_download_disabled'|'allow_download_enabled'|'app_permissions_changed'|'camera_uploads_policy_changed'|'capture_transcript_policy_changed'|'classification_change_policy'|'computer_backup_policy_changed'|'content_administration_policy_changed'|'data_placement_restriction_change_policy'|'data_placement_restriction_satisfy_policy'|'device_approvals_add_exception'|'device_approvals_change_desktop_policy'|'device_approvals_change_mobile_policy'|'device_approvals_change_overage_action'|'device_approvals_change_unlink_action'|'device_approvals_remove_exception'|'directory_restrictions_add_members'|'directory_restrictions_remove_members'|'dropbox_passwords_policy_changed'|'email_ingest_policy_changed'|'emm_add_exception'|'emm_change_policy'|'emm_remove_exception'|'extended_version_history_change_policy'|'external_drive_backup_policy_changed'|'file_comments_change_policy'|'file_locking_policy_changed'|'file_provider_migration_policy_changed'|'file_requests_change_policy'|'file_requests_emails_enabled'|'file_requests_emails_restricted_to_team_only'|'file_transfers_policy_changed'|'folder_link_restriction_policy_changed'|'google_sso_change_policy'|'group_user_management_change_policy'|'integration_policy_changed'|'invite_acceptance_email_policy_changed'|'member_requests_change_policy'|'member_send_invite_policy_changed'|'member_space_limits_add_exception'|'member_space_limits_change_caps_type_policy'|'member_space_limits_change_policy'|'member_space_limits_remove_exception'|'member_suggestions_change_policy'|'microsoft_office_addin_change_policy'|'network_control_change_policy'|'paper_change_deployment_policy'|'paper_change_member_link_policy'|'paper_change_member_policy'|'paper_change_policy'|'paper_default_folder_policy_changed'|'paper_desktop_policy_changed'|'paper_enabled_users_group_addition'|'paper_enabled_users_group_removal'|'password_strength_requirements_change_policy'|'permanent_delete_change_policy'|'reseller_support_change_policy'|'rewind_policy_changed'|'send_for_signature_policy_changed'|'sharing_change_folder_join_policy'|'sharing_change_link_allow_change_expiration_policy'|'sharing_change_link_default_expiration_policy'|'sharing_change_link_enforce_password_policy'|'sharing_change_link_policy'|'sharing_change_member_policy'|'showcase_change_download_policy'|'showcase_change_enabled_policy'|'showcase_change_external_sharing_policy'|'smarter_smart_sync_policy_changed'|'smart_sync_change_policy'|'smart_sync_not_opt_out'|'smart_sync_opt_out'|'sso_change_policy'|'team_branding_policy_changed'|'team_extensions_policy_changed'|'team_selective_sync_policy_changed'|'team_sharing_whitelist_subjects_changed'|'tfa_add_exception'|'tfa_change_policy'|'tfa_remove_exception'|'two_account_change_policy'|'viewer_info_policy_changed'|'watermarking_policy_changed'|'web_sessions_change_active_session_limit'|'web_sessions_change_fixed_length_policy'|'web_sessions_change_idle_length_policy'|'data_residency_migration_request_successful'|'data_residency_migration_request_unsuccessful'|'team_merge_from'|'team_merge_to'|'team_profile_add_background'|'team_profile_add_logo'|'team_profile_change_background'|'team_profile_change_default_language'|'team_profile_change_logo'|'team_profile_change_name'|'team_profile_remove_background'|'team_profile_remove_logo'|'tfa_add_backup_phone'|'tfa_add_security_key'|'tfa_change_backup_phone'|'tfa_change_status'|'tfa_remove_backup_phone'|'tfa_remove_security_key'|'tfa_reset'|'changed_enterprise_admin_role'|'changed_enterprise_connected_team_status'|'ended_enterprise_admin_session'|'ended_enterprise_admin_session_deprecated'|'enterprise_settings_locking'|'guest_admin_change_status'|'started_enterprise_admin_session'|'team_merge_request_accepted'|'team_merge_request_accepted_shown_to_primary_team'|'team_merge_request_accepted_shown_to_secondary_team'|'team_merge_request_auto_canceled'|'team_merge_request_canceled'|'team_merge_request_canceled_shown_to_primary_team'|'team_merge_request_canceled_shown_to_secondary_team'|'team_merge_request_expired'|'team_merge_request_expired_shown_to_primary_team'|'team_merge_request_expired_shown_to_secondary_team'|'team_merge_request_rejected_shown_to_primary_team'|'team_merge_request_rejected_shown_to_secondary_team'|'team_merge_request_reminder'|'team_merge_request_reminder_shown_to_primary_team'|'team_merge_request_reminder_shown_to_secondary_team'|'team_merge_request_revoked'|'team_merge_request_sent_shown_to_primary_team'|'team_merge_request_sent_shown_to_secondary_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Created member data report. + * @typedef {Object} TeamLogExportMembersReportDetails + */ /** + * Failed to create members data report. + * @typedef {Object} TeamLogExportMembersReportFailDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ /** + * @typedef {Object} TeamLogExportMembersReportFailType + * @property {string} description + */ /** + * @typedef {Object} TeamLogExportMembersReportType + * @property {string} description + */ /** + * Accepted/opted out of extended version history. + * @typedef {Object} TeamLogExtendedVersionHistoryChangePolicyDetails + * @property {TeamLogExtendedVersionHistoryPolicy} new_value - New extended + * version history policy. + * @property {TeamLogExtendedVersionHistoryPolicy} [previous_value] - Previous + * extended version history policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogExtendedVersionHistoryChangePolicyType + * @property {string} description + */ /** + * @typedef {Object} TeamLogExtendedVersionHistoryPolicy + * @property {('explicitly_limited'|'explicitly_unlimited'|'implicitly_limited'|'implicitly_unlimited'|'other')} .tag - Tag identifying the union variant. + */ /** + * External Drive Backup eligibility status + * @typedef {Object} TeamLogExternalDriveBackupEligibilityStatus + * @property {('exceed_license_cap'|'success'|'other')} .tag - Tag identifying the union variant. + */ /** + * Checked external drive backup eligibility status. + * @typedef {Object} TeamLogExternalDriveBackupEligibilityStatusCheckedDetails + * @property {TeamLogDesktopDeviceSessionLogInfo} desktop_device_session_info - + * Device's session logged information. + * @property {TeamLogExternalDriveBackupEligibilityStatus} status - Current + * eligibility status of external drive backup. + * @property {number} number_of_external_drive_backup - Total number of valid + * external drive backup for all the team members. + */ /** + * @typedef {Object} TeamLogExternalDriveBackupEligibilityStatusCheckedType + * @property {string} description + */ /** + * Policy for controlling team access to external drive backup feature + * @typedef {Object} TeamLogExternalDriveBackupPolicy + * @property {('default'|'disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed external drive backup policy for team. + * @typedef {Object} TeamLogExternalDriveBackupPolicyChangedDetails + * @property {TeamLogExternalDriveBackupPolicy} new_value - New external drive + * backup policy. + * @property {TeamLogExternalDriveBackupPolicy} previous_value - Previous + * external drive backup policy. + */ /** + * @typedef {Object} TeamLogExternalDriveBackupPolicyChangedType + * @property {string} description + */ /** + * External Drive Backup status + * @typedef {Object} TeamLogExternalDriveBackupStatus + * @property {('broken'|'created'|'created_or_broken'|'deleted'|'empty'|'unknown'|'other')} .tag - Tag identifying the union variant. + */ /** + * Modified external drive backup. + * @typedef {Object} TeamLogExternalDriveBackupStatusChangedDetails + * @property {TeamLogDesktopDeviceSessionLogInfo} desktop_device_session_info - + * Device's session logged information. + * @property {TeamLogExternalDriveBackupStatus} previous_value - Previous status + * of this external drive backup. + * @property {TeamLogExternalDriveBackupStatus} new_value - Next status of this + * external drive backup. + */ /** + * @typedef {Object} TeamLogExternalDriveBackupStatusChangedType + * @property {string} description + */ /** + * Created External sharing report. + * @typedef {Object} TeamLogExternalSharingCreateReportDetails + */ /** + * @typedef {Object} TeamLogExternalSharingCreateReportType + * @property {string} description + */ /** + * Couldn't create External sharing report. + * @typedef {Object} TeamLogExternalSharingReportFailedDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ /** + * @typedef {Object} TeamLogExternalSharingReportFailedType + * @property {string} description + */ /** + * A user without a Dropbox account. + * @typedef {Object} TeamLogExternalUserLogInfo + * @property {string} user_identifier - An external user identifier. + * @property {TeamLogIdentifierType} identifier_type - Identifier type. + */ /** + * Provides details about a failure + * @typedef {Object} TeamLogFailureDetailsLogInfo + * @property {string} [user_friendly_message] - A user friendly explanation of + * the error. + * @property {string} [technical_error_message] - A technical explanation of the + * error. This is relevant for some errors. + */ /** + * @typedef {Object} TeamLogFedAdminRole + * @property {('enterprise_admin'|'not_enterprise_admin'|'other')} .tag - Tag identifying the union variant. + */ /** + * More details about the organization or team. + * @typedef {Object} TeamLogFedExtraDetails + * @property {TeamLogOrganizationDetails} [organization] - Available if .tag is + * organization. More details about the organization. + * @property {TeamLogTeamDetails} [team] - Available if .tag is team. More + * details about the team. + * @property {('organization'|'team'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogFedHandshakeAction + * @property {('accepted_invite'|'canceled_invite'|'invite_expired'|'invited'|'rejected_invite'|'removed_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Additional information about the organization or connected team + * @typedef {Object} TeamLogFederationStatusChangeAdditionalInfo + * @property {TeamLogConnectedTeamName} [connected_team_name] - Available if + * .tag is connected_team_name. The name of the team. + * @property {TeamLogNonTrustedTeamDetails} [non_trusted_team_details] - + * Available if .tag is non_trusted_team_details. The email to which the request + * was sent. + * @property {TeamLogOrganizationName} [organization_name] - Available if .tag + * is organization_name. The name of the organization. + * @property {('connected_team_name'|'non_trusted_team_details'|'organization_name'|'other')} .tag - Tag identifying the union variant. + */ /** + * Added file comment. + * @typedef {Object} TeamLogFileAddCommentDetails + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogFileAddCommentType + * @property {string} description + */ /** + * Added files and/or folders. + * @typedef {Object} TeamLogFileAddDetails + */ /** + * @typedef {Object} TeamLogFileAddType + * @property {string} description + */ /** + * Subscribed to or unsubscribed from comment notifications for file. + * @typedef {Object} TeamLogFileChangeCommentSubscriptionDetails + * @property {TeamLogFileCommentNotificationPolicy} new_value - New file comment + * subscription. + * @property {TeamLogFileCommentNotificationPolicy} [previous_value] - Previous + * file comment subscription. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogFileChangeCommentSubscriptionType + * @property {string} description + */ /** + * Enable or disable file comments notifications + * @typedef {Object} TeamLogFileCommentNotificationPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Enabled/disabled commenting on team files. + * @typedef {Object} TeamLogFileCommentsChangePolicyDetails + * @property {TeamLogFileCommentsPolicy} new_value - New commenting on team + * files policy. + * @property {TeamLogFileCommentsPolicy} [previous_value] - Previous commenting + * on team files policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogFileCommentsChangePolicyType + * @property {string} description + */ /** + * File comments policy + * @typedef {Object} TeamLogFileCommentsPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Copied files and/or folders. + * @typedef {Object} TeamLogFileCopyDetails + * @property {Array.} + * relocate_action_details - Relocate action details. + */ /** + * @typedef {Object} TeamLogFileCopyType + * @property {string} description + */ /** + * Deleted file comment. + * @typedef {Object} TeamLogFileDeleteCommentDetails + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogFileDeleteCommentType + * @property {string} description + */ /** + * Deleted files and/or folders. + * @typedef {Object} TeamLogFileDeleteDetails + */ /** + * @typedef {Object} TeamLogFileDeleteType + * @property {string} description + */ /** + * Downloaded files and/or folders. + * @typedef {Object} TeamLogFileDownloadDetails + */ /** + * @typedef {Object} TeamLogFileDownloadType + * @property {string} description + */ /** + * Edited file comment. + * @typedef {Object} TeamLogFileEditCommentDetails + * @property {string} previous_comment_text - Previous comment text. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogFileEditCommentType + * @property {string} description + */ /** + * Edited files. + * @typedef {Object} TeamLogFileEditDetails + */ /** + * @typedef {Object} TeamLogFileEditType + * @property {string} description + */ /** + * Created copy reference to file/folder. + * @typedef {Object} TeamLogFileGetCopyReferenceDetails + */ /** + * @typedef {Object} TeamLogFileGetCopyReferenceType + * @property {string} description + */ /** + * Liked file comment. + * @typedef {Object} TeamLogFileLikeCommentDetails + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogFileLikeCommentType + * @property {string} description + */ /** + * Locked/unlocked editing for a file. + * @typedef {Object} TeamLogFileLockingLockStatusChangedDetails + * @property {TeamLogLockStatus} previous_value - Previous lock status of the + * file. + * @property {TeamLogLockStatus} new_value - New lock status of the file. + */ /** + * @typedef {Object} TeamLogFileLockingLockStatusChangedType + * @property {string} description + */ /** + * Changed file locking policy for team. + * @typedef {Object} TeamLogFileLockingPolicyChangedDetails + * @property {TeamPoliciesFileLockingPolicyState} new_value - New file locking + * policy. + * @property {TeamPoliciesFileLockingPolicyState} previous_value - Previous file + * locking policy. + */ /** + * @typedef {Object} TeamLogFileLockingPolicyChangedType + * @property {string} description + */ /** + * File's logged information. + * @typedef {Object} TeamLogFileLogInfo + * @property {TeamLogPathLogInfo} path - Path relative to event context. + * @property {string} [display_name] - Display name. + * @property {string} [file_id] - Unique ID. + * @property {number} [file_size] - File or folder size in bytes. + */ /** + * Moved files and/or folders. + * @typedef {Object} TeamLogFileMoveDetails + * @property {Array.} + * relocate_action_details - Relocate action details. + */ /** + * @typedef {Object} TeamLogFileMoveType + * @property {string} description + */ /** + * Generic information relevant both for files and folders + * @typedef {Object} TeamLogFileOrFolderLogInfo + * @property {TeamLogPathLogInfo} path - Path relative to event context. + * @property {string} [display_name] - Display name. + * @property {string} [file_id] - Unique ID. + * @property {number} [file_size] - File or folder size in bytes. + */ /** + * Permanently deleted files and/or folders. + * @typedef {Object} TeamLogFilePermanentlyDeleteDetails + */ /** + * @typedef {Object} TeamLogFilePermanentlyDeleteType + * @property {string} description + */ /** + * Previewed files and/or folders. + * @typedef {Object} TeamLogFilePreviewDetails + */ /** + * @typedef {Object} TeamLogFilePreviewType + * @property {string} description + */ /** + * Changed File Provider Migration policy for team. + * @typedef {Object} TeamLogFileProviderMigrationPolicyChangedDetails + * @property {TeamPoliciesFileProviderMigrationPolicyState} new_value - To. + * @property {TeamPoliciesFileProviderMigrationPolicyState} previous_value - + * From. + */ /** + * @typedef {Object} TeamLogFileProviderMigrationPolicyChangedType + * @property {string} description + */ /** + * Renamed files and/or folders. + * @typedef {Object} TeamLogFileRenameDetails + * @property {Array.} + * relocate_action_details - Relocate action details. + */ /** + * @typedef {Object} TeamLogFileRenameType + * @property {string} description + */ /** + * Changed file request. + * @typedef {Object} TeamLogFileRequestChangeDetails + * @property {TeamLogFileRequestDetails} new_details - New file request details. + * @property {string} [file_request_id] - File request id. Might be missing due + * to historical data gap. + * @property {TeamLogFileRequestDetails} [previous_details] - Previous file + * request details. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogFileRequestChangeType + * @property {string} description + */ /** + * Closed file request. + * @typedef {Object} TeamLogFileRequestCloseDetails + * @property {string} [file_request_id] - File request id. Might be missing due + * to historical data gap. + * @property {TeamLogFileRequestDetails} [previous_details] - Previous file + * request details. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogFileRequestCloseType + * @property {string} description + */ /** + * Created file request. + * @typedef {Object} TeamLogFileRequestCreateDetails + * @property {string} [file_request_id] - File request id. Might be missing due + * to historical data gap. + * @property {TeamLogFileRequestDetails} [request_details] - File request + * details. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogFileRequestCreateType + * @property {string} description + */ /** + * File request deadline + * @typedef {Object} TeamLogFileRequestDeadline + * @property {Timestamp} [deadline] - The deadline for this file request. Might + * be missing due to historical data gap. + * @property {string} [allow_late_uploads] - If set, allow uploads after the + * deadline has passed. + */ /** + * Delete file request. + * @typedef {Object} TeamLogFileRequestDeleteDetails + * @property {string} [file_request_id] - File request id. Might be missing due + * to historical data gap. + * @property {TeamLogFileRequestDetails} [previous_details] - Previous file + * request details. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogFileRequestDeleteType + * @property {string} description + */ /** + * File request details + * @typedef {Object} TeamLogFileRequestDetails + * @property {number} asset_index - Asset position in the Assets list. + * @property {TeamLogFileRequestDeadline} [deadline] - File request deadline. + */ /** + * Received files for file request. + * @typedef {Object} TeamLogFileRequestReceiveFileDetails + * @property {Array.} submitted_file_names - Submitted file names. + * @property {string} [file_request_id] - File request id. Might be missing due + * to historical data gap. + * @property {TeamLogFileRequestDetails} [file_request_details] - File request + * details. Might be missing due to historical data gap. + * @property {string} [submitter_name] - The name as provided by the submitter. + * @property {string} [submitter_email] - The email as provided by the + * submitter. + */ /** + * @typedef {Object} TeamLogFileRequestReceiveFileType + * @property {string} description + */ /** + * Enabled/disabled file requests. + * @typedef {Object} TeamLogFileRequestsChangePolicyDetails + * @property {TeamLogFileRequestsPolicy} new_value - New file requests policy. + * @property {TeamLogFileRequestsPolicy} [previous_value] - Previous file + * requests policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogFileRequestsChangePolicyType + * @property {string} description + */ /** + * Enabled file request emails for everyone. + * @typedef {Object} TeamLogFileRequestsEmailsEnabledDetails + */ /** + * @typedef {Object} TeamLogFileRequestsEmailsEnabledType + * @property {string} description + */ /** + * Enabled file request emails for team. + * @typedef {Object} TeamLogFileRequestsEmailsRestrictedToTeamOnlyDetails + */ /** + * @typedef {Object} TeamLogFileRequestsEmailsRestrictedToTeamOnlyType + * @property {string} description + */ /** + * File requests policy + * @typedef {Object} TeamLogFileRequestsPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Resolved file comment. + * @typedef {Object} TeamLogFileResolveCommentDetails + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogFileResolveCommentType + * @property {string} description + */ /** + * Restored deleted files and/or folders. + * @typedef {Object} TeamLogFileRestoreDetails + */ /** + * @typedef {Object} TeamLogFileRestoreType + * @property {string} description + */ /** + * Reverted files to previous version. + * @typedef {Object} TeamLogFileRevertDetails + */ /** + * @typedef {Object} TeamLogFileRevertType + * @property {string} description + */ /** + * Rolled back file actions. + * @typedef {Object} TeamLogFileRollbackChangesDetails + */ /** + * @typedef {Object} TeamLogFileRollbackChangesType + * @property {string} description + */ /** + * Saved file/folder using copy reference. + * @typedef {Object} TeamLogFileSaveCopyReferenceDetails + * @property {Array.} + * relocate_action_details - Relocate action details. + */ /** + * @typedef {Object} TeamLogFileSaveCopyReferenceType + * @property {string} description + */ /** + * Transfer files added. + * @typedef {Object} TeamLogFileTransfersFileAddDetails + * @property {string} file_transfer_id - Transfer id. + */ /** + * @typedef {Object} TeamLogFileTransfersFileAddType + * @property {string} description + */ /** + * File transfers policy + * @typedef {Object} TeamLogFileTransfersPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed file transfers policy for team. + * @typedef {Object} TeamLogFileTransfersPolicyChangedDetails + * @property {TeamLogFileTransfersPolicy} new_value - New file transfers policy. + * @property {TeamLogFileTransfersPolicy} previous_value - Previous file + * transfers policy. + */ /** + * @typedef {Object} TeamLogFileTransfersPolicyChangedType + * @property {string} description + */ /** + * Deleted transfer. + * @typedef {Object} TeamLogFileTransfersTransferDeleteDetails + * @property {string} file_transfer_id - Transfer id. + */ /** + * @typedef {Object} TeamLogFileTransfersTransferDeleteType + * @property {string} description + */ /** + * Transfer downloaded. + * @typedef {Object} TeamLogFileTransfersTransferDownloadDetails + * @property {string} file_transfer_id - Transfer id. + */ /** + * @typedef {Object} TeamLogFileTransfersTransferDownloadType + * @property {string} description + */ /** + * Sent transfer. + * @typedef {Object} TeamLogFileTransfersTransferSendDetails + * @property {string} file_transfer_id - Transfer id. + */ /** + * @typedef {Object} TeamLogFileTransfersTransferSendType + * @property {string} description + */ /** + * Viewed transfer. + * @typedef {Object} TeamLogFileTransfersTransferViewDetails + * @property {string} file_transfer_id - Transfer id. + */ /** + * @typedef {Object} TeamLogFileTransfersTransferViewType + * @property {string} description + */ /** + * Unliked file comment. + * @typedef {Object} TeamLogFileUnlikeCommentDetails + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogFileUnlikeCommentType + * @property {string} description + */ /** + * Unresolved file comment. + * @typedef {Object} TeamLogFileUnresolveCommentDetails + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogFileUnresolveCommentType + * @property {string} description + */ /** + * Policy for deciding whether applying link restrictions on all team owned + * folders + * @typedef {Object} TeamLogFolderLinkRestrictionPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed folder link restrictions policy for team. + * @typedef {Object} TeamLogFolderLinkRestrictionPolicyChangedDetails + * @property {TeamLogFolderLinkRestrictionPolicy} new_value - To. + * @property {TeamLogFolderLinkRestrictionPolicy} previous_value - From. + */ /** + * @typedef {Object} TeamLogFolderLinkRestrictionPolicyChangedType + * @property {string} description + */ /** + * Folder's logged information. + * @typedef {Object} TeamLogFolderLogInfo + * @property {TeamLogPathLogInfo} path - Path relative to event context. + * @property {string} [display_name] - Display name. + * @property {string} [file_id] - Unique ID. + * @property {number} [file_size] - File or folder size in bytes. + * @property {number} [file_count] - Number of files within the folder. + */ /** + * Updated folder overview. + * @typedef {Object} TeamLogFolderOverviewDescriptionChangedDetails + * @property {number} folder_overview_location_asset - Folder Overview location + * position in the Assets list. + */ /** + * @typedef {Object} TeamLogFolderOverviewDescriptionChangedType + * @property {string} description + */ /** + * Pinned item to folder overview. + * @typedef {Object} TeamLogFolderOverviewItemPinnedDetails + * @property {number} folder_overview_location_asset - Folder Overview location + * position in the Assets list. + * @property {Array.} pinned_items_asset_indices - Pinned items + * positions in the Assets list. + */ /** + * @typedef {Object} TeamLogFolderOverviewItemPinnedType + * @property {string} description + */ /** + * Unpinned item from folder overview. + * @typedef {Object} TeamLogFolderOverviewItemUnpinnedDetails + * @property {number} folder_overview_location_asset - Folder Overview location + * position in the Assets list. + * @property {Array.} pinned_items_asset_indices - Pinned items + * positions in the Assets list. + */ /** + * @typedef {Object} TeamLogFolderOverviewItemUnpinnedType + * @property {string} description + */ /** + * Geographic location details. + * @typedef {Object} TeamLogGeoLocationLogInfo + * @property {string} ip_address - IP address. + * @property {string} [city] - City name. + * @property {string} [region] - Region name. + * @property {string} [country] - Country code. + */ /** + * @typedef {Object} TeamLogGetTeamEventsArg + * @property {number} limit - The maximal number of results to return per call. + * Note that some calls may not return limit number of events, and may even + * return no events, even with `has_more` set to true. In this case, callers + * should fetch again using get_events/continue. + * @property {string} [account_id] - Filter the events by account ID. Return + * only events with this account_id as either Actor, Context, or Participants. + * @property {TeamCommonTimeRange} [time] - Filter by time range. + * @property {TeamLogEventCategory} [category] - Filter the returned events to a + * single category. Note that category shouldn't be provided together with + * event_type. + * @property {TeamLogEventTypeArg} [event_type] - Filter the returned events to + * a single event type. Note that event_type shouldn't be provided together with + * category. + */ /** + * @typedef {Object} TeamLogGetTeamEventsContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * events. + */ /** + * Errors that can be raised when calling get_events/continue. + * @typedef {Object} TeamLogGetTeamEventsContinueError + * @property {Timestamp} [reset] - Available if .tag is reset. Cursors are + * intended to be used quickly. Individual cursor values are normally valid for + * days, but in rare cases may be reset sooner. Cursor reset errors should be + * handled by fetching a new cursor from :route:`get_events`. The associated + * value is the approximate timestamp of the most recent event returned by the + * cursor. This should be used as a resumption point when calling + * :route:`get_events` to obtain a new cursor. + * @property {('bad_cursor'|'reset'|'other')} .tag - Tag identifying the union variant. + */ /** + * Errors that can be raised when calling get_events. + * @typedef {Object} TeamLogGetTeamEventsError + * @property {('account_id_not_found'|'invalid_time_range'|'invalid_filters'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogGetTeamEventsResult + * @property {Array.} events - List of events. Note that + * events are not guaranteed to be sorted by their timestamp value. + * @property {string} cursor - Pass the cursor into get_events/continue to + * obtain additional events. The value of cursor may change for each response + * from get_events/continue, regardless of the value of has_more; older cursor + * strings may expire. Thus, callers should ensure that they update their cursor + * based on the latest value of cursor after each call, and poll regularly if + * they wish to poll for new events. Callers should handle reset exceptions for + * expired cursors. + * @property {boolean} has_more - Is true if there may be additional events that + * have not been returned yet. An additional call to get_events/continue can + * retrieve them. Note that has_more may be true, even if events is empty. + */ /** + * Enabled/disabled Google single sign-on for team. + * @typedef {Object} TeamLogGoogleSsoChangePolicyDetails + * @property {TeamLogGoogleSsoPolicy} new_value - New Google single sign-on + * policy. + * @property {TeamLogGoogleSsoPolicy} [previous_value] - Previous Google single + * sign-on policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogGoogleSsoChangePolicyType + * @property {string} description + */ /** + * Google SSO policy + * @typedef {Object} TeamLogGoogleSsoPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Couldn't add a folder to a policy. + * @typedef {Object} TeamLogGovernancePolicyAddFolderFailedDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {string} folder - Folder. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + * @property {string} [reason] - Reason. + */ /** + * @typedef {Object} TeamLogGovernancePolicyAddFolderFailedType + * @property {string} description + */ /** + * Added folders to policy. + * @typedef {Object} TeamLogGovernancePolicyAddFoldersDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + * @property {Array.} [folders] - Folders. + */ /** + * @typedef {Object} TeamLogGovernancePolicyAddFoldersType + * @property {string} description + */ /** + * Content disposed. + * @typedef {Object} TeamLogGovernancePolicyContentDisposedDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogDispositionActionType} disposition_type - Disposition type. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ /** + * @typedef {Object} TeamLogGovernancePolicyContentDisposedType + * @property {string} description + */ /** + * Activated a new policy. + * @typedef {Object} TeamLogGovernancePolicyCreateDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogDurationLogInfo} duration - Duration in days. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + * @property {Array.} [folders] - Folders. + */ /** + * @typedef {Object} TeamLogGovernancePolicyCreateType + * @property {string} description + */ /** + * Deleted a policy. + * @typedef {Object} TeamLogGovernancePolicyDeleteDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ /** + * @typedef {Object} TeamLogGovernancePolicyDeleteType + * @property {string} description + */ /** + * Edited policy. + * @typedef {Object} TeamLogGovernancePolicyEditDetailsDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {string} attribute - Attribute. + * @property {string} previous_value - From. + * @property {string} new_value - To. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ /** + * @typedef {Object} TeamLogGovernancePolicyEditDetailsType + * @property {string} description + */ /** + * Changed policy duration. + * @typedef {Object} TeamLogGovernancePolicyEditDurationDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogDurationLogInfo} previous_value - From. + * @property {TeamLogDurationLogInfo} new_value - To. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ /** + * @typedef {Object} TeamLogGovernancePolicyEditDurationType + * @property {string} description + */ /** + * Created a policy download. + * @typedef {Object} TeamLogGovernancePolicyExportCreatedDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {string} export_name - Export name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ /** + * @typedef {Object} TeamLogGovernancePolicyExportCreatedType + * @property {string} description + */ /** + * Removed a policy download. + * @typedef {Object} TeamLogGovernancePolicyExportRemovedDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {string} export_name - Export name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ /** + * @typedef {Object} TeamLogGovernancePolicyExportRemovedType + * @property {string} description + */ /** + * Removed folders from policy. + * @typedef {Object} TeamLogGovernancePolicyRemoveFoldersDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + * @property {Array.} [folders] - Folders. + * @property {string} [reason] - Reason. + */ /** + * @typedef {Object} TeamLogGovernancePolicyRemoveFoldersType + * @property {string} description + */ /** + * Created a summary report for a policy. + * @typedef {Object} TeamLogGovernancePolicyReportCreatedDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ /** + * @typedef {Object} TeamLogGovernancePolicyReportCreatedType + * @property {string} description + */ /** + * Downloaded content from a policy. + * @typedef {Object} TeamLogGovernancePolicyZipPartDownloadedDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {string} export_name - Export name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + * @property {string} [part] - Part. + */ /** + * @typedef {Object} TeamLogGovernancePolicyZipPartDownloadedType + * @property {string} description + */ /** + * Added external ID for group. + * @typedef {Object} TeamLogGroupAddExternalIdDetails + * @property {string} new_value - Current external id. + */ /** + * @typedef {Object} TeamLogGroupAddExternalIdType + * @property {string} description + */ /** + * Added team members to group. + * @typedef {Object} TeamLogGroupAddMemberDetails + * @property {boolean} is_group_owner - Is group owner. + */ /** + * @typedef {Object} TeamLogGroupAddMemberType + * @property {string} description + */ /** + * Changed external ID for group. + * @typedef {Object} TeamLogGroupChangeExternalIdDetails + * @property {string} new_value - Current external id. + * @property {string} previous_value - Old external id. + */ /** + * @typedef {Object} TeamLogGroupChangeExternalIdType + * @property {string} description + */ /** + * Changed group management type. + * @typedef {Object} TeamLogGroupChangeManagementTypeDetails + * @property {TeamCommonGroupManagementType} new_value - New group management + * type. + * @property {TeamCommonGroupManagementType} [previous_value] - Previous group + * management type. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogGroupChangeManagementTypeType + * @property {string} description + */ /** + * Changed manager permissions of group member. + * @typedef {Object} TeamLogGroupChangeMemberRoleDetails + * @property {boolean} is_group_owner - Is group owner. + */ /** + * @typedef {Object} TeamLogGroupChangeMemberRoleType + * @property {string} description + */ /** + * Created group. + * @typedef {Object} TeamLogGroupCreateDetails + * @property {boolean} [is_company_managed] - Is company managed group. + * @property {TeamLogGroupJoinPolicy} [join_policy] - Group join policy. + */ /** + * @typedef {Object} TeamLogGroupCreateType + * @property {string} description + */ /** + * Deleted group. + * @typedef {Object} TeamLogGroupDeleteDetails + * @property {boolean} [is_company_managed] - Is company managed group. + */ /** + * @typedef {Object} TeamLogGroupDeleteType + * @property {string} description + */ /** + * Updated group. + * @typedef {Object} TeamLogGroupDescriptionUpdatedDetails + */ /** + * @typedef {Object} TeamLogGroupDescriptionUpdatedType + * @property {string} description + */ /** + * @typedef {Object} TeamLogGroupJoinPolicy + * @property {('open'|'request_to_join'|'other')} .tag - Tag identifying the union variant. + */ /** + * Updated group join policy. + * @typedef {Object} TeamLogGroupJoinPolicyUpdatedDetails + * @property {boolean} [is_company_managed] - Is company managed group. + * @property {TeamLogGroupJoinPolicy} [join_policy] - Group join policy. + */ /** + * @typedef {Object} TeamLogGroupJoinPolicyUpdatedType + * @property {string} description + */ /** + * Group's logged information. + * @typedef {Object} TeamLogGroupLogInfo + * @property {string} display_name - The name of this group. + * @property {string} [group_id] - The unique id of this group. + * @property {string} [external_id] - External group ID. + */ /** + * Moved group. + * @typedef {Object} TeamLogGroupMovedDetails + */ /** + * @typedef {Object} TeamLogGroupMovedType + * @property {string} description + */ /** + * Removed external ID for group. + * @typedef {Object} TeamLogGroupRemoveExternalIdDetails + * @property {string} previous_value - Old external id. + */ /** + * @typedef {Object} TeamLogGroupRemoveExternalIdType + * @property {string} description + */ /** + * Removed team members from group. + * @typedef {Object} TeamLogGroupRemoveMemberDetails + */ /** + * @typedef {Object} TeamLogGroupRemoveMemberType + * @property {string} description + */ /** + * Renamed group. + * @typedef {Object} TeamLogGroupRenameDetails + * @property {string} previous_value - Previous display name. + * @property {string} new_value - New display name. + */ /** + * @typedef {Object} TeamLogGroupRenameType + * @property {string} description + */ /** + * Changed who can create groups. + * @typedef {Object} TeamLogGroupUserManagementChangePolicyDetails + * @property {TeamPoliciesGroupCreation} new_value - New group users management + * policy. + * @property {TeamPoliciesGroupCreation} [previous_value] - Previous group users + * management policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogGroupUserManagementChangePolicyType + * @property {string} description + */ /** + * Changed guest team admin status. + * @typedef {Object} TeamLogGuestAdminChangeStatusDetails + * @property {boolean} is_guest - True for guest, false for host. + * @property {TeamLogTrustedTeamsRequestState} previous_value - Previous request + * state. + * @property {TeamLogTrustedTeamsRequestState} new_value - New request state. + * @property {TeamLogTrustedTeamsRequestAction} action_details - Action details. + * @property {string} [guest_team_name] - The name of the guest team. + * @property {string} [host_team_name] - The name of the host team. + */ /** + * @typedef {Object} TeamLogGuestAdminChangeStatusType + * @property {string} description + */ /** + * Started trusted team admin session. + * @typedef {Object} TeamLogGuestAdminSignedInViaTrustedTeamsDetails + * @property {string} [team_name] - Host team name. + * @property {string} [trusted_team_name] - Trusted team name. + */ /** + * @typedef {Object} TeamLogGuestAdminSignedInViaTrustedTeamsType + * @property {string} description + */ /** + * Ended trusted team admin session. + * @typedef {Object} TeamLogGuestAdminSignedOutViaTrustedTeamsDetails + * @property {string} [team_name] - Host team name. + * @property {string} [trusted_team_name] - Trusted team name. + */ /** + * @typedef {Object} TeamLogGuestAdminSignedOutViaTrustedTeamsType + * @property {string} description + */ /** + * @typedef {Object} TeamLogIdentifierType + * @property {('email'|'facebook_profile_name'|'other')} .tag - Tag identifying the union variant. + */ /** + * Connected integration for member. + * @typedef {Object} TeamLogIntegrationConnectedDetails + * @property {string} integration_name - Name of the third-party integration. + */ /** + * @typedef {Object} TeamLogIntegrationConnectedType + * @property {string} description + */ /** + * Disconnected integration for member. + * @typedef {Object} TeamLogIntegrationDisconnectedDetails + * @property {string} integration_name - Name of the third-party integration. + */ /** + * @typedef {Object} TeamLogIntegrationDisconnectedType + * @property {string} description + */ /** + * Policy for controlling whether a service integration is enabled for the team. + * @typedef {Object} TeamLogIntegrationPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed integration policy for team. + * @typedef {Object} TeamLogIntegrationPolicyChangedDetails + * @property {string} integration_name - Name of the third-party integration. + * @property {TeamLogIntegrationPolicy} new_value - New integration policy. + * @property {TeamLogIntegrationPolicy} previous_value - Previous integration + * policy. + */ /** + * @typedef {Object} TeamLogIntegrationPolicyChangedType + * @property {string} description + */ /** + * Policy for deciding whether team admins receive email when an invitation to + * join the team is accepted + * @typedef {Object} TeamLogInviteAcceptanceEmailPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed invite accept email policy for team. + * @typedef {Object} TeamLogInviteAcceptanceEmailPolicyChangedDetails + * @property {TeamLogInviteAcceptanceEmailPolicy} new_value - To. + * @property {TeamLogInviteAcceptanceEmailPolicy} previous_value - From. + */ /** + * @typedef {Object} TeamLogInviteAcceptanceEmailPolicyChangedType + * @property {string} description + */ /** + * @typedef {Object} TeamLogInviteMethod + * @property {('auto_approve'|'invite_link'|'member_invite'|'moved_from_another_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Additional information relevant when a new member joins the team. + * @typedef {Object} TeamLogJoinTeamDetails + * @property {Array.} linked_apps - Linked + * applications. (Deprecated) Please use has_linked_apps boolean field instead. + * @property {Array.} linked_devices - Linked + * devices. (Deprecated) Please use has_linked_devices boolean field instead. + * @property {Array.} linked_shared_folders - Linked + * shared folders. (Deprecated) Please use has_linked_shared_folders boolean + * field instead. + * @property {boolean} [was_linked_apps_truncated] - (Deprecated) True if the + * linked_apps list was truncated to the maximum supported length (50). + * @property {boolean} [was_linked_devices_truncated] - (Deprecated) True if the + * linked_devices list was truncated to the maximum supported length (50). + * @property {boolean} [was_linked_shared_folders_truncated] - (Deprecated) True + * if the linked_shared_folders list was truncated to the maximum supported + * length (50). + * @property {boolean} [has_linked_apps] - True if the user had linked apps at + * event time. + * @property {boolean} [has_linked_devices] - True if the user had linked apps + * at event time. + * @property {boolean} [has_linked_shared_folders] - True if the user had linked + * shared folders at event time. + */ /** + * Label type + * @typedef {Object} TeamLogLabelType + * @property {('personal_information'|'test_only'|'user_defined_tag'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information on sessions, in legacy format + * @typedef {Object} TeamLogLegacyDeviceSessionLogInfo +@property {'legacy_device_session'} [.tag] - Tag identifying this subtype +variant. This field is only present when needed to discriminate between multiple +possible subtypes. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + * @property + * {(TeamLogWebSessionLogInfo|TeamLogDesktopSessionLogInfo|TeamLogMobileSessionLogInfo|TeamLogSessionLogInfo)} + * [session_info] - Session unique id. + * @property {string} [display_name] - The device name. Might be missing due to + * historical data gap. + * @property {boolean} [is_emm_managed] - Is device managed by emm. Might be + * missing due to historical data gap. + * @property {string} [platform] - Information on the hosting platform. Might be + * missing due to historical data gap. + * @property {string} [mac_address] - The mac address of the last activity from + * this session. Might be missing due to historical data gap. + * @property {string} [os_version] - The hosting OS version. Might be missing + * due to historical data gap. + * @property {string} [device_type] - Information on the hosting device type. + * Might be missing due to historical data gap. + * @property {string} [client_version] - The Dropbox client version. Might be + * missing due to historical data gap. + * @property {string} [legacy_uniq_id] - Alternative unique device session id, + * instead of session id field. Might be missing due to historical data gap. + */ /** + * Activated a hold. + * @typedef {Object} TeamLogLegalHoldsActivateAHoldDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + * @property {Timestamp} start_date - Hold start date. + * @property {Timestamp} [end_date] - Hold end date. + */ /** + * @typedef {Object} TeamLogLegalHoldsActivateAHoldType + * @property {string} description + */ /** + * Added members to a hold. + * @typedef {Object} TeamLogLegalHoldsAddMembersDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + */ /** + * @typedef {Object} TeamLogLegalHoldsAddMembersType + * @property {string} description + */ /** + * Edited details for a hold. + * @typedef {Object} TeamLogLegalHoldsChangeHoldDetailsDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + * @property {string} previous_value - Previous details. + * @property {string} new_value - New details. + */ /** + * @typedef {Object} TeamLogLegalHoldsChangeHoldDetailsType + * @property {string} description + */ /** + * Renamed a hold. + * @typedef {Object} TeamLogLegalHoldsChangeHoldNameDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} previous_value - Previous Name. + * @property {string} new_value - New Name. + */ /** + * @typedef {Object} TeamLogLegalHoldsChangeHoldNameType + * @property {string} description + */ /** + * Exported hold. + * @typedef {Object} TeamLogLegalHoldsExportAHoldDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + * @property {string} [export_name] - Export name. + */ /** + * @typedef {Object} TeamLogLegalHoldsExportAHoldType + * @property {string} description + */ /** + * Canceled export for a hold. + * @typedef {Object} TeamLogLegalHoldsExportCancelledDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + * @property {string} export_name - Export name. + */ /** + * @typedef {Object} TeamLogLegalHoldsExportCancelledType + * @property {string} description + */ /** + * Downloaded export for a hold. + * @typedef {Object} TeamLogLegalHoldsExportDownloadedDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + * @property {string} export_name - Export name. + * @property {string} [part] - Part. + * @property {string} [file_name] - Filename. + */ /** + * @typedef {Object} TeamLogLegalHoldsExportDownloadedType + * @property {string} description + */ /** + * Removed export for a hold. + * @typedef {Object} TeamLogLegalHoldsExportRemovedDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + * @property {string} export_name - Export name. + */ /** + * @typedef {Object} TeamLogLegalHoldsExportRemovedType + * @property {string} description + */ /** + * Released a hold. + * @typedef {Object} TeamLogLegalHoldsReleaseAHoldDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + */ /** + * @typedef {Object} TeamLogLegalHoldsReleaseAHoldType + * @property {string} description + */ /** + * Removed members from a hold. + * @typedef {Object} TeamLogLegalHoldsRemoveMembersDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + */ /** + * @typedef {Object} TeamLogLegalHoldsRemoveMembersType + * @property {string} description + */ /** + * Created a summary report for a hold. + * @typedef {Object} TeamLogLegalHoldsReportAHoldDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + */ /** + * @typedef {Object} TeamLogLegalHoldsReportAHoldType + * @property {string} description + */ /** + * The device sessions that user is linked to. + * @typedef {Object} TeamLogLinkedDeviceLogInfo + * @property {TeamLogDesktopDeviceSessionLogInfo} [desktop_device_session] - + * Available if .tag is desktop_device_session. desktop device session's + * details. + * @property {TeamLogLegacyDeviceSessionLogInfo} [legacy_device_session] - + * Available if .tag is legacy_device_session. legacy device session's details. + * @property {TeamLogMobileDeviceSessionLogInfo} [mobile_device_session] - + * Available if .tag is mobile_device_session. mobile device session's details. + * @property {TeamLogWebDeviceSessionLogInfo} [web_device_session] - Available + * if .tag is web_device_session. web device session's details. + * @property {('desktop_device_session'|'legacy_device_session'|'mobile_device_session'|'web_device_session'|'other')} .tag - Tag identifying the union variant. + */ /** + * File lock status + * @typedef {Object} TeamLogLockStatus + * @property {('locked'|'unlocked'|'other')} .tag - Tag identifying the union variant. + */ /** + * Failed to sign in. + * @typedef {Object} TeamLogLoginFailDetails + * @property {TeamLogLoginMethod} login_method - Login method. + * @property {TeamLogFailureDetailsLogInfo} error_details - Error details. + * @property {boolean} [is_emm_managed] - Tells if the login device is EMM + * managed. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogLoginFailType + * @property {string} description + */ /** + * @typedef {Object} TeamLogLoginMethod + * @property {('apple_oauth'|'first_party_token_exchange'|'google_oauth'|'password'|'qr_code'|'saml'|'two_factor_authentication'|'web_session'|'other')} .tag - Tag identifying the union variant. + */ /** + * Signed in. + * @typedef {Object} TeamLogLoginSuccessDetails + * @property {TeamLogLoginMethod} login_method - Login method. + * @property {boolean} [is_emm_managed] - Tells if the login device is EMM + * managed. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogLoginSuccessType + * @property {string} description + */ /** + * Signed out. + * @typedef {Object} TeamLogLogoutDetails + * @property {string} [login_id] - Login session id. + */ /** + * @typedef {Object} TeamLogLogoutType + * @property {string} description + */ /** + * Added an external ID for team member. + * @typedef {Object} TeamLogMemberAddExternalIdDetails + * @property {string} new_value - Current external id. + */ /** + * @typedef {Object} TeamLogMemberAddExternalIdType + * @property {string} description + */ /** + * Added team member name. + * @typedef {Object} TeamLogMemberAddNameDetails + * @property {TeamLogUserNameLogInfo} new_value - New user's name. + */ /** + * @typedef {Object} TeamLogMemberAddNameType + * @property {string} description + */ /** + * Changed team member admin role. + * @typedef {Object} TeamLogMemberChangeAdminRoleDetails + * @property {TeamLogAdminRole} [new_value] - New admin role. This field is + * relevant when the admin role is changed or whenthe user role changes from no + * admin rights to with admin rights. + * @property {TeamLogAdminRole} [previous_value] - Previous admin role. This + * field is relevant when the admin role is changed or when the admin role is + * removed. + */ /** + * @typedef {Object} TeamLogMemberChangeAdminRoleType + * @property {string} description + */ /** + * Changed team member email. + * @typedef {Object} TeamLogMemberChangeEmailDetails + * @property {string} new_value - New email. + * @property {string} [previous_value] - Previous email. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogMemberChangeEmailType + * @property {string} description + */ /** + * Changed the external ID for team member. + * @typedef {Object} TeamLogMemberChangeExternalIdDetails + * @property {string} new_value - Current external id. + * @property {string} previous_value - Old external id. + */ /** + * @typedef {Object} TeamLogMemberChangeExternalIdType + * @property {string} description + */ /** + * Changed membership type (limited/full) of member. + * @typedef {Object} TeamLogMemberChangeMembershipTypeDetails + * @property {TeamLogTeamMembershipType} prev_value - Previous membership type. + * @property {TeamLogTeamMembershipType} new_value - New membership type. + */ /** + * @typedef {Object} TeamLogMemberChangeMembershipTypeType + * @property {string} description + */ /** + * Changed team member name. + * @typedef {Object} TeamLogMemberChangeNameDetails + * @property {TeamLogUserNameLogInfo} new_value - New user's name. + * @property {TeamLogUserNameLogInfo} [previous_value] - Previous user's name. + * Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogMemberChangeNameType + * @property {string} description + */ /** + * Changed team member reseller role. + * @typedef {Object} TeamLogMemberChangeResellerRoleDetails + * @property {TeamLogResellerRole} new_value - New reseller role. This field is + * relevant when the reseller role is changed. + * @property {TeamLogResellerRole} previous_value - Previous reseller role. This + * field is relevant when the reseller role is changed or when the reseller role + * is removed. + */ /** + * @typedef {Object} TeamLogMemberChangeResellerRoleType + * @property {string} description + */ /** + * Changed member status (invited, joined, suspended, etc.). + * @typedef {Object} TeamLogMemberChangeStatusDetails + * @property {TeamLogMemberStatus} new_value - New member status. + * @property {TeamLogMemberStatus} [previous_value] - Previous member status. + * Might be missing due to historical data gap. + * @property {TeamLogActionDetails} [action] - Additional information indicating + * the action taken that caused status change. + * @property {string} [new_team] - The user's new team name. This field is + * relevant when the user is transferred off the team. + * @property {string} [previous_team] - The user's previous team name. This + * field is relevant when the user is transferred onto the team. + */ /** + * @typedef {Object} TeamLogMemberChangeStatusType + * @property {string} description + */ /** + * Cleared manually added contacts. + * @typedef {Object} TeamLogMemberDeleteManualContactsDetails + */ /** + * @typedef {Object} TeamLogMemberDeleteManualContactsType + * @property {string} description + */ /** + * Deleted team member profile photo. + * @typedef {Object} TeamLogMemberDeleteProfilePhotoDetails + */ /** + * @typedef {Object} TeamLogMemberDeleteProfilePhotoType + * @property {string} description + */ /** + * Permanently deleted contents of deleted team member account. + * @typedef {Object} TeamLogMemberPermanentlyDeleteAccountContentsDetails + */ /** + * @typedef {Object} TeamLogMemberPermanentlyDeleteAccountContentsType + * @property {string} description + */ /** + * @typedef {Object} TeamLogMemberRemoveActionType + * @property {('delete'|'leave'|'offboard'|'offboard_and_retain_team_folders'|'other')} .tag - Tag identifying the union variant. + */ /** + * Removed the external ID for team member. + * @typedef {Object} TeamLogMemberRemoveExternalIdDetails + * @property {string} previous_value - Old external id. + */ /** + * @typedef {Object} TeamLogMemberRemoveExternalIdType + * @property {string} description + */ /** + * Changed whether users can find team when not invited. + * @typedef {Object} TeamLogMemberRequestsChangePolicyDetails + * @property {TeamLogMemberRequestsPolicy} new_value - New member change + * requests policy. + * @property {TeamLogMemberRequestsPolicy} [previous_value] - Previous member + * change requests policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogMemberRequestsChangePolicyType + * @property {string} description + */ /** + * @typedef {Object} TeamLogMemberRequestsPolicy + * @property {('auto_accept'|'disabled'|'require_approval'|'other')} .tag - Tag identifying the union variant. + */ /** + * Policy for controlling whether team members can send team invites + * @typedef {Object} TeamLogMemberSendInvitePolicy + * @property {('disabled'|'everyone'|'specific_members'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed member send invite policy for team. + * @typedef {Object} TeamLogMemberSendInvitePolicyChangedDetails + * @property {TeamLogMemberSendInvitePolicy} new_value - New team member send + * invite policy. + * @property {TeamLogMemberSendInvitePolicy} previous_value - Previous team + * member send invite policy. + */ /** + * @typedef {Object} TeamLogMemberSendInvitePolicyChangedType + * @property {string} description + */ /** + * Set team member profile photo. + * @typedef {Object} TeamLogMemberSetProfilePhotoDetails + */ /** + * @typedef {Object} TeamLogMemberSetProfilePhotoType + * @property {string} description + */ /** + * Set custom member space limit. + * @typedef {Object} TeamLogMemberSpaceLimitsAddCustomQuotaDetails + * @property {number} new_value - New custom quota value in bytes. + */ /** + * @typedef {Object} TeamLogMemberSpaceLimitsAddCustomQuotaType + * @property {string} description + */ /** + * Added members to member space limit exception list. + * @typedef {Object} TeamLogMemberSpaceLimitsAddExceptionDetails + */ /** + * @typedef {Object} TeamLogMemberSpaceLimitsAddExceptionType + * @property {string} description + */ /** + * Changed member space limit type for team. + * @typedef {Object} TeamLogMemberSpaceLimitsChangeCapsTypePolicyDetails + * @property {TeamLogSpaceCapsType} previous_value - Previous space limit type. + * @property {TeamLogSpaceCapsType} new_value - New space limit type. + */ /** + * @typedef {Object} TeamLogMemberSpaceLimitsChangeCapsTypePolicyType + * @property {string} description + */ /** + * Changed custom member space limit. + * @typedef {Object} TeamLogMemberSpaceLimitsChangeCustomQuotaDetails + * @property {number} previous_value - Previous custom quota value in bytes. + * @property {number} new_value - New custom quota value in bytes. + */ /** + * @typedef {Object} TeamLogMemberSpaceLimitsChangeCustomQuotaType + * @property {string} description + */ /** + * Changed team default member space limit. + * @typedef {Object} TeamLogMemberSpaceLimitsChangePolicyDetails + * @property {number} [previous_value] - Previous team default limit value in + * bytes. Might be missing due to historical data gap. + * @property {number} [new_value] - New team default limit value in bytes. Might + * be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogMemberSpaceLimitsChangePolicyType + * @property {string} description + */ /** + * Changed space limit status. + * @typedef {Object} TeamLogMemberSpaceLimitsChangeStatusDetails + * @property {TeamLogSpaceLimitsStatus} previous_value - Previous storage quota + * status. + * @property {TeamLogSpaceLimitsStatus} new_value - New storage quota status. + */ /** + * @typedef {Object} TeamLogMemberSpaceLimitsChangeStatusType + * @property {string} description + */ /** + * Removed custom member space limit. + * @typedef {Object} TeamLogMemberSpaceLimitsRemoveCustomQuotaDetails + */ /** + * @typedef {Object} TeamLogMemberSpaceLimitsRemoveCustomQuotaType + * @property {string} description + */ /** + * Removed members from member space limit exception list. + * @typedef {Object} TeamLogMemberSpaceLimitsRemoveExceptionDetails + */ /** + * @typedef {Object} TeamLogMemberSpaceLimitsRemoveExceptionType + * @property {string} description + */ /** + * @typedef {Object} TeamLogMemberStatus + * @property {('active'|'invited'|'moved_to_another_team'|'not_joined'|'removed'|'suspended'|'other')} .tag - Tag identifying the union variant. + */ /** + * Suggested person to add to team. + * @typedef {Object} TeamLogMemberSuggestDetails + * @property {Array.} suggested_members - suggested users emails. + */ /** + * @typedef {Object} TeamLogMemberSuggestType + * @property {string} description + */ /** + * Enabled/disabled option for team members to suggest people to add to team. + * @typedef {Object} TeamLogMemberSuggestionsChangePolicyDetails + * @property {TeamLogMemberSuggestionsPolicy} new_value - New team member + * suggestions policy. + * @property {TeamLogMemberSuggestionsPolicy} [previous_value] - Previous team + * member suggestions policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogMemberSuggestionsChangePolicyType + * @property {string} description + */ /** + * Member suggestions policy + * @typedef {Object} TeamLogMemberSuggestionsPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Transferred contents of deleted member account to another member. + * @typedef {Object} TeamLogMemberTransferAccountContentsDetails + */ /** + * @typedef {Object} TeamLogMemberTransferAccountContentsType + * @property {string} description + */ /** + * Internal only - fields for target team computations + * @typedef {Object} TeamLogMemberTransferredInternalFields + * @property {string} source_team_id - Internal only - team user was moved from. + * @property {string} target_team_id - Internal only - team user was moved to. + */ /** + * Enabled/disabled Microsoft Office add-in. + * @typedef {Object} TeamLogMicrosoftOfficeAddinChangePolicyDetails + * @property {TeamLogMicrosoftOfficeAddinPolicy} new_value - New Microsoft + * Office addin policy. + * @property {TeamLogMicrosoftOfficeAddinPolicy} [previous_value] - Previous + * Microsoft Office addin policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogMicrosoftOfficeAddinChangePolicyType + * @property {string} description + */ /** + * Microsoft Office addin policy + * @typedef {Object} TeamLogMicrosoftOfficeAddinPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * An indication that an error occurred while retrieving the event. Some + * attributes of the event may be omitted as a result. + * @typedef {Object} TeamLogMissingDetails + * @property {string} [source_event_fields] - All the data that could be + * retrieved and converted from the source event. + */ /** + * Information about linked Dropbox mobile client sessions + * @typedef {Object} TeamLogMobileDeviceSessionLogInfo +@property {'mobile_device_session'} [.tag] - Tag identifying this subtype +variant. This field is only present when needed to discriminate between multiple +possible subtypes. + * @property {string} device_name - The device name. + * @property {TeamMobileClientPlatform} client_type - The mobile application + * type. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + * @property {TeamLogMobileSessionLogInfo} [session_info] - Mobile session + * unique id. + * @property {string} [client_version] - The Dropbox client version. + * @property {string} [os_version] - The hosting OS version. + * @property {string} [last_carrier] - last carrier used by the device. + */ /** + * Mobile session. + * @typedef {Object} TeamLogMobileSessionLogInfo +@property {'mobile'} [.tag] - Tag identifying this subtype variant. This field +is only present when needed to discriminate between multiple possible subtypes. + * @property {string} [session_id] - Session ID. + */ /** + * Namespace relative path details. + * @typedef {Object} TeamLogNamespaceRelativePathLogInfo + * @property {string} [ns_id] - Namespace ID. + * @property {string} [relative_path] - A path relative to the specified + * namespace ID. + * @property {boolean} [is_shared_namespace] - True if the namespace is shared. + */ /** + * Enabled/disabled network control. + * @typedef {Object} TeamLogNetworkControlChangePolicyDetails + * @property {TeamLogNetworkControlPolicy} new_value - New network control + * policy. + * @property {TeamLogNetworkControlPolicy} [previous_value] - Previous network + * control policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogNetworkControlChangePolicyType + * @property {string} description + */ /** + * Network control policy + * @typedef {Object} TeamLogNetworkControlPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Report created: Links created with no expiration. + * @typedef {Object} TeamLogNoExpirationLinkGenCreateReportDetails + * @property {Timestamp} start_date - Report start date. + * @property {Timestamp} end_date - Report end date. + */ /** + * @typedef {Object} TeamLogNoExpirationLinkGenCreateReportType + * @property {string} description + */ /** + * Couldn't create report: Links created with no expiration. + * @typedef {Object} TeamLogNoExpirationLinkGenReportFailedDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ /** + * @typedef {Object} TeamLogNoExpirationLinkGenReportFailedType + * @property {string} description + */ /** + * Report created: Links created without passwords. + * @typedef {Object} TeamLogNoPasswordLinkGenCreateReportDetails + * @property {Timestamp} start_date - Report start date. + * @property {Timestamp} end_date - Report end date. + */ /** + * @typedef {Object} TeamLogNoPasswordLinkGenCreateReportType + * @property {string} description + */ /** + * Couldn't create report: Links created without passwords. + * @typedef {Object} TeamLogNoPasswordLinkGenReportFailedDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ /** + * @typedef {Object} TeamLogNoPasswordLinkGenReportFailedType + * @property {string} description + */ /** + * Report created: Views of links without passwords. + * @typedef {Object} TeamLogNoPasswordLinkViewCreateReportDetails + * @property {Timestamp} start_date - Report start date. + * @property {Timestamp} end_date - Report end date. + */ /** + * @typedef {Object} TeamLogNoPasswordLinkViewCreateReportType + * @property {string} description + */ /** + * Couldn't create report: Views of links without passwords. + * @typedef {Object} TeamLogNoPasswordLinkViewReportFailedDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ /** + * @typedef {Object} TeamLogNoPasswordLinkViewReportFailedType + * @property {string} description + */ /** + * Non team member's logged information. + * @typedef {Object} TeamLogNonTeamMemberLogInfo +@property {'non_team_member'} [.tag] - Tag identifying this subtype variant. +This field is only present when needed to discriminate between multiple possible +subtypes. + * @property {string} [account_id] - User unique ID. + * @property {string} [display_name] - User display name. + * @property {string} [email] - User email address. + */ /** + * The email to which the request was sent + * @typedef {Object} TeamLogNonTrustedTeamDetails + * @property {string} team - The email to which the request was sent. + */ /** + * Changed Paper doc to invite-only. + * @typedef {Object} TeamLogNoteAclInviteOnlyDetails + */ /** + * @typedef {Object} TeamLogNoteAclInviteOnlyType + * @property {string} description + */ /** + * Changed Paper doc to link-accessible. + * @typedef {Object} TeamLogNoteAclLinkDetails + */ /** + * @typedef {Object} TeamLogNoteAclLinkType + * @property {string} description + */ /** + * Changed Paper doc to link-accessible for team. + * @typedef {Object} TeamLogNoteAclTeamLinkDetails + */ /** + * @typedef {Object} TeamLogNoteAclTeamLinkType + * @property {string} description + */ /** + * Shared received Paper doc. + * @typedef {Object} TeamLogNoteShareReceiveDetails + */ /** + * @typedef {Object} TeamLogNoteShareReceiveType + * @property {string} description + */ /** + * Shared Paper doc. + * @typedef {Object} TeamLogNoteSharedDetails + */ /** + * @typedef {Object} TeamLogNoteSharedType + * @property {string} description + */ /** + * Added a label. + * @typedef {Object} TeamLogObjectLabelAddedDetails + * @property {TeamLogLabelType} label_type - Labels mark a file or folder. + */ /** + * @typedef {Object} TeamLogObjectLabelAddedType + * @property {string} description + */ /** + * Removed a label. + * @typedef {Object} TeamLogObjectLabelRemovedDetails + * @property {TeamLogLabelType} label_type - Labels mark a file or folder. + */ /** + * @typedef {Object} TeamLogObjectLabelRemovedType + * @property {string} description + */ /** + * Updated a label's value. + * @typedef {Object} TeamLogObjectLabelUpdatedValueDetails + * @property {TeamLogLabelType} label_type - Labels mark a file or folder. + */ /** + * @typedef {Object} TeamLogObjectLabelUpdatedValueType + * @property {string} description + */ /** + * Opened shared Paper doc. + * @typedef {Object} TeamLogOpenNoteSharedDetails + */ /** + * @typedef {Object} TeamLogOpenNoteSharedType + * @property {string} description + */ /** + * More details about the organization. + * @typedef {Object} TeamLogOrganizationDetails + * @property {string} organization - The name of the organization. + */ /** + * The name of the organization + * @typedef {Object} TeamLogOrganizationName + * @property {string} organization - The name of the organization. + */ /** + * Organized a folder with multi-file organize. + * @typedef {Object} TeamLogOrganizeFolderWithTidyDetails + */ /** + * @typedef {Object} TeamLogOrganizeFolderWithTidyType + * @property {string} description + */ /** + * The origin from which the actor performed the action. + * @typedef {Object} TeamLogOriginLogInfo + * @property {TeamLogAccessMethodLogInfo} access_method - The method that was + * used to perform the action. + * @property {TeamLogGeoLocationLogInfo} [geo_location] - Geographic location + * details. + */ /** + * Report created: Views of old links. + * @typedef {Object} TeamLogOutdatedLinkViewCreateReportDetails + * @property {Timestamp} start_date - Report start date. + * @property {Timestamp} end_date - Report end date. + */ /** + * @typedef {Object} TeamLogOutdatedLinkViewCreateReportType + * @property {string} description + */ /** + * Couldn't create report: Views of old links. + * @typedef {Object} TeamLogOutdatedLinkViewReportFailedDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ /** + * @typedef {Object} TeamLogOutdatedLinkViewReportFailedType + * @property {string} description + */ /** + * @typedef {Object} TeamLogPaperAccessType + * @property {('commenter'|'editor'|'viewer'|'other')} .tag - Tag identifying the union variant. + */ /** + * Exported all team Paper docs. + * @typedef {Object} TeamLogPaperAdminExportStartDetails + */ /** + * @typedef {Object} TeamLogPaperAdminExportStartType + * @property {string} description + */ /** + * Changed whether Dropbox Paper, when enabled, is deployed to all members or to + * specific members. + * @typedef {Object} TeamLogPaperChangeDeploymentPolicyDetails + * @property {TeamPoliciesPaperDeploymentPolicy} new_value - New Dropbox Paper + * deployment policy. + * @property {TeamPoliciesPaperDeploymentPolicy} [previous_value] - Previous + * Dropbox Paper deployment policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogPaperChangeDeploymentPolicyType + * @property {string} description + */ /** + * Changed whether non-members can view Paper docs with link. + * @typedef {Object} TeamLogPaperChangeMemberLinkPolicyDetails + * @property {TeamLogPaperMemberPolicy} new_value - New paper external link + * accessibility policy. + */ /** + * @typedef {Object} TeamLogPaperChangeMemberLinkPolicyType + * @property {string} description + */ /** + * Changed whether members can share Paper docs outside team, and if docs are + * accessible only by team members or anyone by default. + * @typedef {Object} TeamLogPaperChangeMemberPolicyDetails + * @property {TeamLogPaperMemberPolicy} new_value - New paper external + * accessibility policy. + * @property {TeamLogPaperMemberPolicy} [previous_value] - Previous paper + * external accessibility policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogPaperChangeMemberPolicyType + * @property {string} description + */ /** + * Enabled/disabled Dropbox Paper for team. + * @typedef {Object} TeamLogPaperChangePolicyDetails + * @property {TeamPoliciesPaperEnabledPolicy} new_value - New Dropbox Paper + * policy. + * @property {TeamPoliciesPaperEnabledPolicy} [previous_value] - Previous + * Dropbox Paper policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogPaperChangePolicyType + * @property {string} description + */ /** + * Added users and/or groups to Paper doc/folder. + * @typedef {Object} TeamLogPaperContentAddMemberDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperContentAddMemberType + * @property {string} description + */ /** + * Added Paper doc/folder to folder. + * @typedef {Object} TeamLogPaperContentAddToFolderDetails + * @property {string} event_uuid - Event unique identifier. + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {number} parent_asset_index - Parent asset position in the Assets + * list. + */ /** + * @typedef {Object} TeamLogPaperContentAddToFolderType + * @property {string} description + */ /** + * Archived Paper doc/folder. + * @typedef {Object} TeamLogPaperContentArchiveDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperContentArchiveType + * @property {string} description + */ /** + * Created Paper doc/folder. + * @typedef {Object} TeamLogPaperContentCreateDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperContentCreateType + * @property {string} description + */ /** + * Permanently deleted Paper doc/folder. + * @typedef {Object} TeamLogPaperContentPermanentlyDeleteDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperContentPermanentlyDeleteType + * @property {string} description + */ /** + * Removed Paper doc/folder from folder. + * @typedef {Object} TeamLogPaperContentRemoveFromFolderDetails + * @property {string} event_uuid - Event unique identifier. + * @property {number} [target_asset_index] - Target asset position in the Assets + * list. + * @property {number} [parent_asset_index] - Parent asset position in the Assets + * list. + */ /** + * @typedef {Object} TeamLogPaperContentRemoveFromFolderType + * @property {string} description + */ /** + * Removed users and/or groups from Paper doc/folder. + * @typedef {Object} TeamLogPaperContentRemoveMemberDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperContentRemoveMemberType + * @property {string} description + */ /** + * Renamed Paper doc/folder. + * @typedef {Object} TeamLogPaperContentRenameDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperContentRenameType + * @property {string} description + */ /** + * Restored archived Paper doc/folder. + * @typedef {Object} TeamLogPaperContentRestoreDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperContentRestoreType + * @property {string} description + */ /** + * Policy to set default access for newly created Paper folders. + * @typedef {Object} TeamLogPaperDefaultFolderPolicy + * @property {('everyone_in_team'|'invite_only'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed Paper Default Folder Policy setting for team. + * @typedef {Object} TeamLogPaperDefaultFolderPolicyChangedDetails + * @property {TeamLogPaperDefaultFolderPolicy} new_value - New Paper Default + * Folder Policy. + * @property {TeamLogPaperDefaultFolderPolicy} previous_value - Previous Paper + * Default Folder Policy. + */ /** + * @typedef {Object} TeamLogPaperDefaultFolderPolicyChangedType + * @property {string} description + */ /** + * Policy for controlling if team members can use Paper Desktop + * @typedef {Object} TeamLogPaperDesktopPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Enabled/disabled Paper Desktop for team. + * @typedef {Object} TeamLogPaperDesktopPolicyChangedDetails + * @property {TeamLogPaperDesktopPolicy} new_value - New Paper Desktop policy. + * @property {TeamLogPaperDesktopPolicy} previous_value - Previous Paper Desktop + * policy. + */ /** + * @typedef {Object} TeamLogPaperDesktopPolicyChangedType + * @property {string} description + */ /** + * Added Paper doc comment. + * @typedef {Object} TeamLogPaperDocAddCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogPaperDocAddCommentType + * @property {string} description + */ /** + * Changed member permissions for Paper doc. + * @typedef {Object} TeamLogPaperDocChangeMemberRoleDetails + * @property {string} event_uuid - Event unique identifier. + * @property {TeamLogPaperAccessType} access_type - Paper doc access type. + */ /** + * @typedef {Object} TeamLogPaperDocChangeMemberRoleType + * @property {string} description + */ /** + * Changed sharing setting for Paper doc. + * @typedef {Object} TeamLogPaperDocChangeSharingPolicyDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [public_sharing_policy] - Sharing policy with external + * users. + * @property {string} [team_sharing_policy] - Sharing policy with team. + */ /** + * @typedef {Object} TeamLogPaperDocChangeSharingPolicyType + * @property {string} description + */ /** + * Followed/unfollowed Paper doc. + * @typedef {Object} TeamLogPaperDocChangeSubscriptionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} new_subscription_level - New doc subscription level. + * @property {string} [previous_subscription_level] - Previous doc subscription + * level. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogPaperDocChangeSubscriptionType + * @property {string} description + */ /** + * Deleted Paper doc comment. + * @typedef {Object} TeamLogPaperDocDeleteCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogPaperDocDeleteCommentType + * @property {string} description + */ /** + * Archived Paper doc. + * @typedef {Object} TeamLogPaperDocDeletedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocDeletedType + * @property {string} description + */ /** + * Downloaded Paper doc in specific format. + * @typedef {Object} TeamLogPaperDocDownloadDetails + * @property {string} event_uuid - Event unique identifier. + * @property {TeamLogPaperDownloadFormat} export_file_format - Export file + * format. + */ /** + * @typedef {Object} TeamLogPaperDocDownloadType + * @property {string} description + */ /** + * Edited Paper doc comment. + * @typedef {Object} TeamLogPaperDocEditCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogPaperDocEditCommentType + * @property {string} description + */ /** + * Edited Paper doc. + * @typedef {Object} TeamLogPaperDocEditDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocEditType + * @property {string} description + */ /** + * Followed Paper doc. + * @typedef {Object} TeamLogPaperDocFollowedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocFollowedType + * @property {string} description + */ /** + * Mentioned user in Paper doc. + * @typedef {Object} TeamLogPaperDocMentionDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocMentionType + * @property {string} description + */ /** + * Transferred ownership of Paper doc. + * @typedef {Object} TeamLogPaperDocOwnershipChangedDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} new_owner_user_id - New owner. + * @property {string} [old_owner_user_id] - Previous owner. + */ /** + * @typedef {Object} TeamLogPaperDocOwnershipChangedType + * @property {string} description + */ /** + * Requested access to Paper doc. + * @typedef {Object} TeamLogPaperDocRequestAccessDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocRequestAccessType + * @property {string} description + */ /** + * Resolved Paper doc comment. + * @typedef {Object} TeamLogPaperDocResolveCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogPaperDocResolveCommentType + * @property {string} description + */ /** + * Restored Paper doc to previous version. + * @typedef {Object} TeamLogPaperDocRevertDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocRevertType + * @property {string} description + */ /** + * Shared Paper doc via Slack. + * @typedef {Object} TeamLogPaperDocSlackShareDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocSlackShareType + * @property {string} description + */ /** + * Shared Paper doc with users and/or groups. + * @typedef {Object} TeamLogPaperDocTeamInviteDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocTeamInviteType + * @property {string} description + */ /** + * Deleted Paper doc. + * @typedef {Object} TeamLogPaperDocTrashedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocTrashedType + * @property {string} description + */ /** + * Unresolved Paper doc comment. + * @typedef {Object} TeamLogPaperDocUnresolveCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogPaperDocUnresolveCommentType + * @property {string} description + */ /** + * Restored Paper doc. + * @typedef {Object} TeamLogPaperDocUntrashedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocUntrashedType + * @property {string} description + */ /** + * Viewed Paper doc. + * @typedef {Object} TeamLogPaperDocViewDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperDocViewType + * @property {string} description + */ /** + * Paper document's logged information. + * @typedef {Object} TeamLogPaperDocumentLogInfo + * @property {string} doc_id - Papers document Id. + * @property {string} doc_title - Paper document title. + */ /** + * @typedef {Object} TeamLogPaperDownloadFormat + * @property {('docx'|'html'|'markdown'|'pdf'|'other')} .tag - Tag identifying the union variant. + */ /** + * Added users to Paper-enabled users list. + * @typedef {Object} TeamLogPaperEnabledUsersGroupAdditionDetails + */ /** + * @typedef {Object} TeamLogPaperEnabledUsersGroupAdditionType + * @property {string} description + */ /** + * Removed users from Paper-enabled users list. + * @typedef {Object} TeamLogPaperEnabledUsersGroupRemovalDetails + */ /** + * @typedef {Object} TeamLogPaperEnabledUsersGroupRemovalType + * @property {string} description + */ /** + * Changed Paper external sharing setting to anyone. + * @typedef {Object} TeamLogPaperExternalViewAllowDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperExternalViewAllowType + * @property {string} description + */ /** + * Changed Paper external sharing setting to default team. + * @typedef {Object} TeamLogPaperExternalViewDefaultTeamDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperExternalViewDefaultTeamType + * @property {string} description + */ /** + * Changed Paper external sharing setting to team-only. + * @typedef {Object} TeamLogPaperExternalViewForbidDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperExternalViewForbidType + * @property {string} description + */ /** + * Followed/unfollowed Paper folder. + * @typedef {Object} TeamLogPaperFolderChangeSubscriptionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} new_subscription_level - New folder subscription level. + * @property {string} [previous_subscription_level] - Previous folder + * subscription level. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogPaperFolderChangeSubscriptionType + * @property {string} description + */ /** + * Archived Paper folder. + * @typedef {Object} TeamLogPaperFolderDeletedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperFolderDeletedType + * @property {string} description + */ /** + * Followed Paper folder. + * @typedef {Object} TeamLogPaperFolderFollowedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperFolderFollowedType + * @property {string} description + */ /** + * Paper folder's logged information. + * @typedef {Object} TeamLogPaperFolderLogInfo + * @property {string} folder_id - Papers folder Id. + * @property {string} folder_name - Paper folder name. + */ /** + * Shared Paper folder with users and/or groups. + * @typedef {Object} TeamLogPaperFolderTeamInviteDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperFolderTeamInviteType + * @property {string} description + */ /** + * Policy for controlling if team members can share Paper documents externally. + * @typedef {Object} TeamLogPaperMemberPolicy + * @property {('anyone_with_link'|'only_team'|'team_and_explicitly_shared'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed permissions for published doc. + * @typedef {Object} TeamLogPaperPublishedLinkChangePermissionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} new_permission_level - New permission level. + * @property {string} previous_permission_level - Previous permission level. + */ /** + * @typedef {Object} TeamLogPaperPublishedLinkChangePermissionType + * @property {string} description + */ /** + * Published doc. + * @typedef {Object} TeamLogPaperPublishedLinkCreateDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperPublishedLinkCreateType + * @property {string} description + */ /** + * Unpublished doc. + * @typedef {Object} TeamLogPaperPublishedLinkDisabledDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperPublishedLinkDisabledType + * @property {string} description + */ /** + * Viewed published doc. + * @typedef {Object} TeamLogPaperPublishedLinkViewDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogPaperPublishedLinkViewType + * @property {string} description + */ /** + * A user or group + * @typedef {Object} TeamLogParticipantLogInfo + * @property {TeamLogGroupLogInfo} [group] - Available if .tag is group. Group + * details. + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [user] - Available if .tag is user. A user with a Dropbox account. + * @property {('group'|'user'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogPassPolicy + * @property {('allow'|'disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed password. + * @typedef {Object} TeamLogPasswordChangeDetails + */ /** + * @typedef {Object} TeamLogPasswordChangeType + * @property {string} description + */ /** + * Reset all team member passwords. + * @typedef {Object} TeamLogPasswordResetAllDetails + */ /** + * @typedef {Object} TeamLogPasswordResetAllType + * @property {string} description + */ /** + * Reset password. + * @typedef {Object} TeamLogPasswordResetDetails + */ /** + * @typedef {Object} TeamLogPasswordResetType + * @property {string} description + */ /** + * Changed team password strength requirements. + * @typedef {Object} TeamLogPasswordStrengthRequirementsChangePolicyDetails + * @property {TeamPoliciesPasswordStrengthPolicy} previous_value - Old password + * strength policy. + * @property {TeamPoliciesPasswordStrengthPolicy} new_value - New password + * strength policy. + */ /** + * @typedef {Object} TeamLogPasswordStrengthRequirementsChangePolicyType + * @property {string} description + */ /** + * Path's details. + * @typedef {Object} TeamLogPathLogInfo + * @property {TeamLogNamespaceRelativePathLogInfo} namespace_relative - Path + * relative to the namespace containing the content. + * @property {string} [contextual] - Fully qualified path relative to event's + * context. + */ /** + * Added pending secondary email. + * @typedef {Object} TeamLogPendingSecondaryEmailAddedDetails + * @property {string} secondary_email - New pending secondary email. + */ /** + * @typedef {Object} TeamLogPendingSecondaryEmailAddedType + * @property {string} description + */ /** + * Enabled/disabled ability of team members to permanently delete content. + * @typedef {Object} TeamLogPermanentDeleteChangePolicyDetails + * @property {TeamLogContentPermanentDeletePolicy} new_value - New permanent + * delete content policy. + * @property {TeamLogContentPermanentDeletePolicy} [previous_value] - Previous + * permanent delete content policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogPermanentDeleteChangePolicyType + * @property {string} description + */ /** + * @typedef {Object} TeamLogPlacementRestriction + * @property {('australia_only'|'europe_only'|'japan_only'|'none'|'uk_only'|'us_s3_only'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogPolicyType + * @property {('disposition'|'retention'|'other')} .tag - Tag identifying the union variant. + */ /** + * Team merge request acceptance details shown to the primary team + * @typedef {Object} TeamLogPrimaryTeamRequestAcceptedDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * Team merge request cancellation details shown to the primary team + * @typedef {Object} TeamLogPrimaryTeamRequestCanceledDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * Team merge request expiration details shown to the primary team + * @typedef {Object} TeamLogPrimaryTeamRequestExpiredDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * Team merge request reminder details shown to the primary team + * @typedef {Object} TeamLogPrimaryTeamRequestReminderDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_to - The name of the primary team admin the request + * was sent to. + */ /** + * Quick action type. + * @typedef {Object} TeamLogQuickActionType + * @property {('delete_shared_link'|'reset_password'|'restore_file_or_folder'|'unlink_app'|'unlink_device'|'unlink_session'|'other')} .tag - Tag identifying the union variant. + */ /** + * Recipients Configuration + * @typedef {Object} TeamLogRecipientsConfiguration + * @property {TeamLogAlertRecipientsSettingType} [recipient_setting_type] - + * Recipients setting type. + * @property {Array.} [emails] - A list of user emails to notify. + * @property {Array.} [groups] - A list of groups to notify. + */ /** + * Provides the indices of the source asset and the destination asset for a + * relocate action. + * @typedef {Object} TeamLogRelocateAssetReferencesLogInfo + * @property {number} src_asset_index - Source asset position in the Assets + * list. + * @property {number} dest_asset_index - Destination asset position in the + * Assets list. + */ /** + * Reseller information. + * @typedef {Object} TeamLogResellerLogInfo + * @property {string} reseller_name - Reseller name. + * @property {string} reseller_email - Reseller email. + */ /** + * @typedef {Object} TeamLogResellerRole + * @property {('not_reseller'|'reseller_admin'|'other')} .tag - Tag identifying the union variant. + */ /** + * Enabled/disabled reseller support. + * @typedef {Object} TeamLogResellerSupportChangePolicyDetails + * @property {TeamLogResellerSupportPolicy} new_value - New Reseller support + * policy. + * @property {TeamLogResellerSupportPolicy} previous_value - Previous Reseller + * support policy. + */ /** + * @typedef {Object} TeamLogResellerSupportChangePolicyType + * @property {string} description + */ /** + * Policy for controlling if reseller can access the admin console as + * administrator + * @typedef {Object} TeamLogResellerSupportPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Ended reseller support session. + * @typedef {Object} TeamLogResellerSupportSessionEndDetails + */ /** + * @typedef {Object} TeamLogResellerSupportSessionEndType + * @property {string} description + */ /** + * Started reseller support session. + * @typedef {Object} TeamLogResellerSupportSessionStartDetails + */ /** + * @typedef {Object} TeamLogResellerSupportSessionStartType + * @property {string} description + */ /** + * Rewound a folder. + * @typedef {Object} TeamLogRewindFolderDetails + * @property {Timestamp} rewind_folder_target_ts_ms - Folder was Rewound to this + * date. + */ /** + * @typedef {Object} TeamLogRewindFolderType + * @property {string} description + */ /** + * Policy for controlling whether team members can rewind + * @typedef {Object} TeamLogRewindPolicy + * @property {('admins_only'|'everyone'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed Rewind policy for team. + * @typedef {Object} TeamLogRewindPolicyChangedDetails + * @property {TeamLogRewindPolicy} new_value - New Dropbox Rewind policy. + * @property {TeamLogRewindPolicy} previous_value - Previous Dropbox Rewind + * policy. + */ /** + * @typedef {Object} TeamLogRewindPolicyChangedType + * @property {string} description + */ /** + * Deleted secondary email. + * @typedef {Object} TeamLogSecondaryEmailDeletedDetails + * @property {string} secondary_email - Deleted secondary email. + */ /** + * @typedef {Object} TeamLogSecondaryEmailDeletedType + * @property {string} description + */ /** + * Verified secondary email. + * @typedef {Object} TeamLogSecondaryEmailVerifiedDetails + * @property {string} secondary_email - Verified secondary email. + */ /** + * @typedef {Object} TeamLogSecondaryEmailVerifiedType + * @property {string} description + */ /** + * @typedef {Object} TeamLogSecondaryMailsPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Secondary mails policy changed. + * @typedef {Object} TeamLogSecondaryMailsPolicyChangedDetails + * @property {TeamLogSecondaryMailsPolicy} previous_value - Previous secondary + * mails policy. + * @property {TeamLogSecondaryMailsPolicy} new_value - New secondary mails + * policy. + */ /** + * @typedef {Object} TeamLogSecondaryMailsPolicyChangedType + * @property {string} description + */ /** + * Team merge request acceptance details shown to the secondary team + * @typedef {Object} TeamLogSecondaryTeamRequestAcceptedDetails + * @property {string} primary_team - The primary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * Team merge request cancellation details shown to the secondary team + * @typedef {Object} TeamLogSecondaryTeamRequestCanceledDetails + * @property {string} sent_to - The email of the primary team admin that the + * request was sent to. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * Team merge request expiration details shown to the secondary team + * @typedef {Object} TeamLogSecondaryTeamRequestExpiredDetails + * @property {string} sent_to - The email of the primary team admin the request + * was sent to. + */ /** + * Team merge request reminder details shown to the secondary team + * @typedef {Object} TeamLogSecondaryTeamRequestReminderDetails + * @property {string} sent_to - The email of the primary team admin the request + * was sent to. + */ /** + * Policy for controlling team access to send for signature feature + * @typedef {Object} TeamLogSendForSignaturePolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed send for signature policy for team. + * @typedef {Object} TeamLogSendForSignaturePolicyChangedDetails + * @property {TeamLogSendForSignaturePolicy} new_value - New send for signature + * policy. + * @property {TeamLogSendForSignaturePolicy} previous_value - Previous send for + * signature policy. + */ /** + * @typedef {Object} TeamLogSendForSignaturePolicyChangedType + * @property {string} description + */ /** + * Session's logged information. + * @typedef {Object} TeamLogSessionLogInfo +@property {("web"|"desktop"|"mobile")} .tag - Tag identifying the subtype +variant. + * @property {string} [session_id] - Session ID. + */ /** + * Added team to shared folder. + * @typedef {Object} TeamLogSfAddGroupDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} team_name - Team name. + * @property {string} [sharing_permission] - Sharing permission. + */ /** + * @typedef {Object} TeamLogSfAddGroupType + * @property {string} description + */ /** + * Allowed non-collaborators to view links to files in shared folder. + * @typedef {Object} TeamLogSfAllowNonMembersToViewSharedLinksDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [shared_folder_type] - Shared folder type. + */ /** + * @typedef {Object} TeamLogSfAllowNonMembersToViewSharedLinksType + * @property {string} description + */ /** + * Set team members to see warning before sharing folders outside team. + * @typedef {Object} TeamLogSfExternalInviteWarnDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [new_sharing_permission] - New sharing permission. + * @property {string} [previous_sharing_permission] - Previous sharing + * permission. + */ /** + * @typedef {Object} TeamLogSfExternalInviteWarnType + * @property {string} description + */ /** + * Changed Facebook user's role in shared folder. + * @typedef {Object} TeamLogSfFbInviteChangeRoleDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [previous_sharing_permission] - Previous sharing + * permission. + * @property {string} [new_sharing_permission] - New sharing permission. + */ /** + * @typedef {Object} TeamLogSfFbInviteChangeRoleType + * @property {string} description + */ /** + * Invited Facebook users to shared folder. + * @typedef {Object} TeamLogSfFbInviteDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [sharing_permission] - Sharing permission. + */ /** + * @typedef {Object} TeamLogSfFbInviteType + * @property {string} description + */ /** + * Uninvited Facebook user from shared folder. + * @typedef {Object} TeamLogSfFbUninviteDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + */ /** + * @typedef {Object} TeamLogSfFbUninviteType + * @property {string} description + */ /** + * Invited group to shared folder. + * @typedef {Object} TeamLogSfInviteGroupDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + */ /** + * @typedef {Object} TeamLogSfInviteGroupType + * @property {string} description + */ /** + * Granted access to shared folder. + * @typedef {Object} TeamLogSfTeamGrantAccessDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + */ /** + * @typedef {Object} TeamLogSfTeamGrantAccessType + * @property {string} description + */ /** + * Changed team member's role in shared folder. + * @typedef {Object} TeamLogSfTeamInviteChangeRoleDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [new_sharing_permission] - New sharing permission. + * @property {string} [previous_sharing_permission] - Previous sharing + * permission. + */ /** + * @typedef {Object} TeamLogSfTeamInviteChangeRoleType + * @property {string} description + */ /** + * Invited team members to shared folder. + * @typedef {Object} TeamLogSfTeamInviteDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [sharing_permission] - Sharing permission. + */ /** + * @typedef {Object} TeamLogSfTeamInviteType + * @property {string} description + */ /** + * Joined team member's shared folder. + * @typedef {Object} TeamLogSfTeamJoinDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + */ /** + * Joined team member's shared folder from link. + * @typedef {Object} TeamLogSfTeamJoinFromOobLinkDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [token_key] - Shared link token key. + * @property {string} [sharing_permission] - Sharing permission. + */ /** + * @typedef {Object} TeamLogSfTeamJoinFromOobLinkType + * @property {string} description + */ /** + * @typedef {Object} TeamLogSfTeamJoinType + * @property {string} description + */ /** + * Unshared folder with team member. + * @typedef {Object} TeamLogSfTeamUninviteDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + */ /** + * @typedef {Object} TeamLogSfTeamUninviteType + * @property {string} description + */ /** + * Invited user to Dropbox and added them to shared file/folder. + * @typedef {Object} TeamLogSharedContentAddInviteesDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {Array.} invitees - A list of invitees. + */ /** + * @typedef {Object} TeamLogSharedContentAddInviteesType + * @property {string} description + */ /** + * Added expiration date to link for shared file/folder. + * @typedef {Object} TeamLogSharedContentAddLinkExpiryDetails + * @property {Timestamp} [new_value] - New shared content link expiration date. + * Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedContentAddLinkExpiryType + * @property {string} description + */ /** + * Added password to link for shared file/folder. + * @typedef {Object} TeamLogSharedContentAddLinkPasswordDetails + */ /** + * @typedef {Object} TeamLogSharedContentAddLinkPasswordType + * @property {string} description + */ /** + * Added users and/or groups to shared file/folder. + * @typedef {Object} TeamLogSharedContentAddMemberDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + */ /** + * @typedef {Object} TeamLogSharedContentAddMemberType + * @property {string} description + */ /** + * Changed whether members can download shared file/folder. + * @typedef {Object} TeamLogSharedContentChangeDownloadsPolicyDetails + * @property {TeamLogDownloadPolicyType} new_value - New downloads policy. + * @property {TeamLogDownloadPolicyType} [previous_value] - Previous downloads + * policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedContentChangeDownloadsPolicyType + * @property {string} description + */ /** + * Changed access type of invitee to shared file/folder before invite was + * accepted. + * @typedef {Object} TeamLogSharedContentChangeInviteeRoleDetails + * @property {SharingAccessLevel} new_access_level - New access level. + * @property {string} invitee - The invitee whose role was changed. + * @property {SharingAccessLevel} [previous_access_level] - Previous access + * level. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedContentChangeInviteeRoleType + * @property {string} description + */ /** + * Changed link audience of shared file/folder. + * @typedef {Object} TeamLogSharedContentChangeLinkAudienceDetails + * @property {SharingLinkAudience} new_value - New link audience value. + * @property {SharingLinkAudience} [previous_value] - Previous link audience + * value. + */ /** + * @typedef {Object} TeamLogSharedContentChangeLinkAudienceType + * @property {string} description + */ /** + * Changed link expiration of shared file/folder. + * @typedef {Object} TeamLogSharedContentChangeLinkExpiryDetails + * @property {Timestamp} [new_value] - New shared content link expiration date. + * Might be missing due to historical data gap. + * @property {Timestamp} [previous_value] - Previous shared content link + * expiration date. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedContentChangeLinkExpiryType + * @property {string} description + */ /** + * Changed link password of shared file/folder. + * @typedef {Object} TeamLogSharedContentChangeLinkPasswordDetails + */ /** + * @typedef {Object} TeamLogSharedContentChangeLinkPasswordType + * @property {string} description + */ /** + * Changed access type of shared file/folder member. + * @typedef {Object} TeamLogSharedContentChangeMemberRoleDetails + * @property {SharingAccessLevel} new_access_level - New access level. + * @property {SharingAccessLevel} [previous_access_level] - Previous access + * level. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedContentChangeMemberRoleType + * @property {string} description + */ /** + * Changed whether members can see who viewed shared file/folder. + * @typedef {Object} TeamLogSharedContentChangeViewerInfoPolicyDetails + * @property {SharingViewerInfoPolicy} new_value - New viewer info policy. + * @property {SharingViewerInfoPolicy} [previous_value] - Previous view info + * policy. + */ /** + * @typedef {Object} TeamLogSharedContentChangeViewerInfoPolicyType + * @property {string} description + */ /** + * Acquired membership of shared file/folder by accepting invite. + * @typedef {Object} TeamLogSharedContentClaimInvitationDetails + * @property {string} [shared_content_link] - Shared content link. + */ /** + * @typedef {Object} TeamLogSharedContentClaimInvitationType + * @property {string} description + */ /** + * Copied shared file/folder to own Dropbox. + * @typedef {Object} TeamLogSharedContentCopyDetails + * @property {string} shared_content_link - Shared content link. + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} destination_path - The path where the member saved the + * content. + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_content_owner] - The shared content owner. + */ /** + * @typedef {Object} TeamLogSharedContentCopyType + * @property {string} description + */ /** + * Downloaded shared file/folder. + * @typedef {Object} TeamLogSharedContentDownloadDetails + * @property {string} shared_content_link - Shared content link. + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_content_owner] - The shared content owner. + */ /** + * @typedef {Object} TeamLogSharedContentDownloadType + * @property {string} description + */ /** + * Left shared file/folder. + * @typedef {Object} TeamLogSharedContentRelinquishMembershipDetails + */ /** + * @typedef {Object} TeamLogSharedContentRelinquishMembershipType + * @property {string} description + */ /** + * Removed invitee from shared file/folder before invite was accepted. + * @typedef {Object} TeamLogSharedContentRemoveInviteesDetails + * @property {Array.} invitees - A list of invitees. + */ /** + * @typedef {Object} TeamLogSharedContentRemoveInviteesType + * @property {string} description + */ /** + * Removed link expiration date of shared file/folder. + * @typedef {Object} TeamLogSharedContentRemoveLinkExpiryDetails + * @property {Timestamp} [previous_value] - Previous shared content link + * expiration date. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedContentRemoveLinkExpiryType + * @property {string} description + */ /** + * Removed link password of shared file/folder. + * @typedef {Object} TeamLogSharedContentRemoveLinkPasswordDetails + */ /** + * @typedef {Object} TeamLogSharedContentRemoveLinkPasswordType + * @property {string} description + */ /** + * Removed user/group from shared file/folder. + * @typedef {Object} TeamLogSharedContentRemoveMemberDetails + * @property {SharingAccessLevel} [shared_content_access_level] - Shared content + * access level. + */ /** + * @typedef {Object} TeamLogSharedContentRemoveMemberType + * @property {string} description + */ /** + * Requested access to shared file/folder. + * @typedef {Object} TeamLogSharedContentRequestAccessDetails + * @property {string} [shared_content_link] - Shared content link. + */ /** + * @typedef {Object} TeamLogSharedContentRequestAccessType + * @property {string} description + */ /** + * Restored shared file/folder invitees. + * @typedef {Object} TeamLogSharedContentRestoreInviteesDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {Array.} invitees - A list of invitees. + */ /** + * @typedef {Object} TeamLogSharedContentRestoreInviteesType + * @property {string} description + */ /** + * Restored users and/or groups to membership of shared file/folder. + * @typedef {Object} TeamLogSharedContentRestoreMemberDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + */ /** + * @typedef {Object} TeamLogSharedContentRestoreMemberType + * @property {string} description + */ /** + * Unshared file/folder by clearing membership. + * @typedef {Object} TeamLogSharedContentUnshareDetails + */ /** + * @typedef {Object} TeamLogSharedContentUnshareType + * @property {string} description + */ /** + * Previewed shared file/folder. + * @typedef {Object} TeamLogSharedContentViewDetails + * @property {string} shared_content_link - Shared content link. + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_content_owner] - The shared content owner. + */ /** + * @typedef {Object} TeamLogSharedContentViewType + * @property {string} description + */ /** + * Changed who can access shared folder via link. + * @typedef {Object} TeamLogSharedFolderChangeLinkPolicyDetails + * @property {SharingSharedLinkPolicy} new_value - New shared folder link + * policy. + * @property {SharingSharedLinkPolicy} [previous_value] - Previous shared folder + * link policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedFolderChangeLinkPolicyType + * @property {string} description + */ /** + * Changed whether shared folder inherits members from parent folder. + * @typedef {Object} TeamLogSharedFolderChangeMembersInheritancePolicyDetails + * @property {TeamLogSharedFolderMembersInheritancePolicy} new_value - New + * member inheritance policy. + * @property {TeamLogSharedFolderMembersInheritancePolicy} [previous_value] - + * Previous member inheritance policy. Might be missing due to historical data + * gap. + */ /** + * @typedef {Object} TeamLogSharedFolderChangeMembersInheritancePolicyType + * @property {string} description + */ /** + * Changed who can add/remove members of shared folder. + * @typedef {Object} TeamLogSharedFolderChangeMembersManagementPolicyDetails + * @property {SharingAclUpdatePolicy} new_value - New members management policy. + * @property {SharingAclUpdatePolicy} [previous_value] - Previous members + * management policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedFolderChangeMembersManagementPolicyType + * @property {string} description + */ /** + * Changed who can become member of shared folder. + * @typedef {Object} TeamLogSharedFolderChangeMembersPolicyDetails + * @property {SharingMemberPolicy} new_value - New external invite policy. + * @property {SharingMemberPolicy} [previous_value] - Previous external invite + * policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedFolderChangeMembersPolicyType + * @property {string} description + */ /** + * Created shared folder. + * @typedef {Object} TeamLogSharedFolderCreateDetails + * @property {string} [target_ns_id] - Target namespace ID. + */ /** + * @typedef {Object} TeamLogSharedFolderCreateType + * @property {string} description + */ /** + * Declined team member's invite to shared folder. + * @typedef {Object} TeamLogSharedFolderDeclineInvitationDetails + */ /** + * @typedef {Object} TeamLogSharedFolderDeclineInvitationType + * @property {string} description + */ /** + * Specifies if a shared folder inherits its members from the parent folder. + * @typedef {Object} TeamLogSharedFolderMembersInheritancePolicy + * @property {('dont_inherit_members'|'inherit_members'|'other')} .tag - Tag identifying the union variant. + */ /** + * Added shared folder to own Dropbox. + * @typedef {Object} TeamLogSharedFolderMountDetails + */ /** + * @typedef {Object} TeamLogSharedFolderMountType + * @property {string} description + */ /** + * Changed parent of shared folder. + * @typedef {Object} TeamLogSharedFolderNestDetails + * @property {string} [previous_parent_ns_id] - Previous parent namespace ID. + * @property {string} [new_parent_ns_id] - New parent namespace ID. + * @property {string} [previous_ns_path] - Previous namespace path. + * @property {string} [new_ns_path] - New namespace path. + */ /** + * @typedef {Object} TeamLogSharedFolderNestType + * @property {string} description + */ /** + * Transferred ownership of shared folder to another member. + * @typedef {Object} TeamLogSharedFolderTransferOwnershipDetails + * @property {string} new_owner_email - The email address of the new shared + * folder owner. + * @property {string} [previous_owner_email] - The email address of the previous + * shared folder owner. + */ /** + * @typedef {Object} TeamLogSharedFolderTransferOwnershipType + * @property {string} description + */ /** + * Deleted shared folder from Dropbox. + * @typedef {Object} TeamLogSharedFolderUnmountDetails + */ /** + * @typedef {Object} TeamLogSharedFolderUnmountType + * @property {string} description + */ /** + * Shared link access level. + * @typedef {Object} TeamLogSharedLinkAccessLevel + * @property {('none'|'reader'|'writer'|'other')} .tag - Tag identifying the union variant. + */ /** + * Added shared link expiration date. + * @typedef {Object} TeamLogSharedLinkAddExpiryDetails + * @property {Timestamp} new_value - New shared link expiration date. + */ /** + * @typedef {Object} TeamLogSharedLinkAddExpiryType + * @property {string} description + */ /** + * Changed shared link expiration date. + * @typedef {Object} TeamLogSharedLinkChangeExpiryDetails + * @property {Timestamp} [new_value] - New shared link expiration date. Might be + * missing due to historical data gap. + * @property {Timestamp} [previous_value] - Previous shared link expiration + * date. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkChangeExpiryType + * @property {string} description + */ /** + * Changed visibility of shared link. + * @typedef {Object} TeamLogSharedLinkChangeVisibilityDetails + * @property {TeamLogSharedLinkVisibility} new_value - New shared link + * visibility. + * @property {TeamLogSharedLinkVisibility} [previous_value] - Previous shared + * link visibility. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkChangeVisibilityType + * @property {string} description + */ /** + * Added file/folder to Dropbox from shared link. + * @typedef {Object} TeamLogSharedLinkCopyDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkCopyType + * @property {string} description + */ /** + * Created shared link. + * @typedef {Object} TeamLogSharedLinkCreateDetails + * @property {TeamLogSharedLinkAccessLevel} [shared_link_access_level] - Defines + * who can access the shared link. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkCreateType + * @property {string} description + */ /** + * Removed shared link. + * @typedef {Object} TeamLogSharedLinkDisableDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkDisableType + * @property {string} description + */ /** + * Downloaded file/folder from shared link. + * @typedef {Object} TeamLogSharedLinkDownloadDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkDownloadType + * @property {string} description + */ /** + * Removed shared link expiration date. + * @typedef {Object} TeamLogSharedLinkRemoveExpiryDetails + * @property {Timestamp} [previous_value] - Previous shared link expiration + * date. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkRemoveExpiryType + * @property {string} description + */ /** + * Added an expiration date to the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsAddExpirationDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + * @property {Timestamp} [new_value] - New shared content link expiration date. + * Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkSettingsAddExpirationType + * @property {string} description + */ /** + * Added a password to the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsAddPasswordDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + */ /** + * @typedef {Object} TeamLogSharedLinkSettingsAddPasswordType + * @property {string} description + */ /** + * Disabled downloads. + * @typedef {Object} TeamLogSharedLinkSettingsAllowDownloadDisabledDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + */ /** + * @typedef {Object} TeamLogSharedLinkSettingsAllowDownloadDisabledType + * @property {string} description + */ /** + * Enabled downloads. + * @typedef {Object} TeamLogSharedLinkSettingsAllowDownloadEnabledDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + */ /** + * @typedef {Object} TeamLogSharedLinkSettingsAllowDownloadEnabledType + * @property {string} description + */ /** + * Changed the audience of the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsChangeAudienceDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {SharingLinkAudience} new_value - New link audience value. + * @property {string} [shared_content_link] - Shared content link. + * @property {SharingLinkAudience} [previous_value] - Previous link audience + * value. + */ /** + * @typedef {Object} TeamLogSharedLinkSettingsChangeAudienceType + * @property {string} description + */ /** + * Changed the expiration date of the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsChangeExpirationDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + * @property {Timestamp} [new_value] - New shared content link expiration date. + * Might be missing due to historical data gap. + * @property {Timestamp} [previous_value] - Previous shared content link + * expiration date. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkSettingsChangeExpirationType + * @property {string} description + */ /** + * Changed the password of the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsChangePasswordDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + */ /** + * @typedef {Object} TeamLogSharedLinkSettingsChangePasswordType + * @property {string} description + */ /** + * Removed the expiration date from the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsRemoveExpirationDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + * @property {Timestamp} [previous_value] - Previous shared link expiration + * date. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkSettingsRemoveExpirationType + * @property {string} description + */ /** + * Removed the password from the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsRemovePasswordDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + */ /** + * @typedef {Object} TeamLogSharedLinkSettingsRemovePasswordType + * @property {string} description + */ /** + * Added members as audience of shared link. + * @typedef {Object} TeamLogSharedLinkShareDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + * @property {Array.} [external_users] - Users + * without a Dropbox account that were added as shared link audience. + */ /** + * @typedef {Object} TeamLogSharedLinkShareType + * @property {string} description + */ /** + * Opened shared link. + * @typedef {Object} TeamLogSharedLinkViewDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogSharedLinkViewType + * @property {string} description + */ /** + * Defines who has access to a shared link. + * @typedef {Object} TeamLogSharedLinkVisibility + * @property {('no_one'|'password'|'public'|'team_only'|'other')} .tag - Tag identifying the union variant. + */ /** + * Opened shared Paper doc. + * @typedef {Object} TeamLogSharedNoteOpenedDetails + */ /** + * @typedef {Object} TeamLogSharedNoteOpenedType + * @property {string} description + */ /** + * Changed whether team members can join shared folders owned outside team. + * @typedef {Object} TeamLogSharingChangeFolderJoinPolicyDetails + * @property {TeamLogSharingFolderJoinPolicy} new_value - New external join + * policy. + * @property {TeamLogSharingFolderJoinPolicy} [previous_value] - Previous + * external join policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharingChangeFolderJoinPolicyType + * @property {string} description + */ /** + * Changed the allow remove or change expiration policy for the links shared + * outside of the team. + * @typedef {Object} TeamLogSharingChangeLinkAllowChangeExpirationPolicyDetails + * @property {TeamLogEnforceLinkPasswordPolicy} new_value - To. + * @property {TeamLogEnforceLinkPasswordPolicy} [previous_value] - From. + */ /** + * @typedef {Object} TeamLogSharingChangeLinkAllowChangeExpirationPolicyType + * @property {string} description + */ /** + * Changed the default expiration for the links shared outside of the team. + * @typedef {Object} TeamLogSharingChangeLinkDefaultExpirationPolicyDetails + * @property {TeamLogDefaultLinkExpirationDaysPolicy} new_value - To. + * @property {TeamLogDefaultLinkExpirationDaysPolicy} [previous_value] - From. + */ /** + * @typedef {Object} TeamLogSharingChangeLinkDefaultExpirationPolicyType + * @property {string} description + */ /** + * Changed the password requirement for the links shared outside of the team. + * @typedef {Object} TeamLogSharingChangeLinkEnforcePasswordPolicyDetails + * @property {TeamLogChangeLinkExpirationPolicy} new_value - To. + * @property {TeamLogChangeLinkExpirationPolicy} [previous_value] - From. + */ /** + * @typedef {Object} TeamLogSharingChangeLinkEnforcePasswordPolicyType + * @property {string} description + */ /** + * Changed whether members can share links outside team, and if links are + * accessible only by team members or anyone by default. + * @typedef {Object} TeamLogSharingChangeLinkPolicyDetails + * @property {TeamLogSharingLinkPolicy} new_value - New external link + * accessibility policy. + * @property {TeamLogSharingLinkPolicy} [previous_value] - Previous external + * link accessibility policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharingChangeLinkPolicyType + * @property {string} description + */ /** + * Changed whether members can share files/folders outside team. + * @typedef {Object} TeamLogSharingChangeMemberPolicyDetails + * @property {TeamLogSharingMemberPolicy} new_value - New external invite + * policy. + * @property {TeamLogSharingMemberPolicy} [previous_value] - Previous external + * invite policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSharingChangeMemberPolicyType + * @property {string} description + */ /** + * Policy for controlling if team members can join shared folders owned by non + * team members. + * @typedef {Object} TeamLogSharingFolderJoinPolicy + * @property {('from_anyone'|'from_team_only'|'other')} .tag - Tag identifying the union variant. + */ /** + * Policy for controlling if team members can share links externally + * @typedef {Object} TeamLogSharingLinkPolicy + * @property {('default_no_one'|'default_private'|'default_public'|'only_private'|'other')} .tag - Tag identifying the union variant. + */ /** + * External sharing policy + * @typedef {Object} TeamLogSharingMemberPolicy + * @property {('allow'|'forbid'|'forbid_with_exclusions'|'other')} .tag - Tag identifying the union variant. + */ /** + * Disabled downloads for link. + * @typedef {Object} TeamLogShmodelDisableDownloadsDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogShmodelDisableDownloadsType + * @property {string} description + */ /** + * Enabled downloads for link. + * @typedef {Object} TeamLogShmodelEnableDownloadsDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + */ /** + * @typedef {Object} TeamLogShmodelEnableDownloadsType + * @property {string} description + */ /** + * Shared link with group. + * @typedef {Object} TeamLogShmodelGroupShareDetails + */ /** + * @typedef {Object} TeamLogShmodelGroupShareType + * @property {string} description + */ /** + * Granted access to showcase. + * @typedef {Object} TeamLogShowcaseAccessGrantedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseAccessGrantedType + * @property {string} description + */ /** + * Added member to showcase. + * @typedef {Object} TeamLogShowcaseAddMemberDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseAddMemberType + * @property {string} description + */ /** + * Archived showcase. + * @typedef {Object} TeamLogShowcaseArchivedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseArchivedType + * @property {string} description + */ /** + * Enabled/disabled downloading files from Dropbox Showcase for team. + * @typedef {Object} TeamLogShowcaseChangeDownloadPolicyDetails + * @property {TeamLogShowcaseDownloadPolicy} new_value - New Dropbox Showcase + * download policy. + * @property {TeamLogShowcaseDownloadPolicy} previous_value - Previous Dropbox + * Showcase download policy. + */ /** + * @typedef {Object} TeamLogShowcaseChangeDownloadPolicyType + * @property {string} description + */ /** + * Enabled/disabled Dropbox Showcase for team. + * @typedef {Object} TeamLogShowcaseChangeEnabledPolicyDetails + * @property {TeamLogShowcaseEnabledPolicy} new_value - New Dropbox Showcase + * policy. + * @property {TeamLogShowcaseEnabledPolicy} previous_value - Previous Dropbox + * Showcase policy. + */ /** + * @typedef {Object} TeamLogShowcaseChangeEnabledPolicyType + * @property {string} description + */ /** + * Enabled/disabled sharing Dropbox Showcase externally for team. + * @typedef {Object} TeamLogShowcaseChangeExternalSharingPolicyDetails + * @property {TeamLogShowcaseExternalSharingPolicy} new_value - New Dropbox + * Showcase external sharing policy. + * @property {TeamLogShowcaseExternalSharingPolicy} previous_value - Previous + * Dropbox Showcase external sharing policy. + */ /** + * @typedef {Object} TeamLogShowcaseChangeExternalSharingPolicyType + * @property {string} description + */ /** + * Created showcase. + * @typedef {Object} TeamLogShowcaseCreatedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseCreatedType + * @property {string} description + */ /** + * Deleted showcase comment. + * @typedef {Object} TeamLogShowcaseDeleteCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogShowcaseDeleteCommentType + * @property {string} description + */ /** + * Showcase document's logged information. + * @typedef {Object} TeamLogShowcaseDocumentLogInfo + * @property {string} showcase_id - Showcase document Id. + * @property {string} showcase_title - Showcase document title. + */ /** + * Policy for controlling if files can be downloaded from Showcases by team + * members + * @typedef {Object} TeamLogShowcaseDownloadPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Edited showcase comment. + * @typedef {Object} TeamLogShowcaseEditCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogShowcaseEditCommentType + * @property {string} description + */ /** + * Edited showcase. + * @typedef {Object} TeamLogShowcaseEditedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseEditedType + * @property {string} description + */ /** + * Policy for controlling whether Showcase is enabled. + * @typedef {Object} TeamLogShowcaseEnabledPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Policy for controlling if team members can share Showcases externally. + * @typedef {Object} TeamLogShowcaseExternalSharingPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Added file to showcase. + * @typedef {Object} TeamLogShowcaseFileAddedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseFileAddedType + * @property {string} description + */ /** + * Downloaded file from showcase. + * @typedef {Object} TeamLogShowcaseFileDownloadDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} download_type - Showcase download type. + */ /** + * @typedef {Object} TeamLogShowcaseFileDownloadType + * @property {string} description + */ /** + * Removed file from showcase. + * @typedef {Object} TeamLogShowcaseFileRemovedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseFileRemovedType + * @property {string} description + */ /** + * Viewed file in showcase. + * @typedef {Object} TeamLogShowcaseFileViewDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseFileViewType + * @property {string} description + */ /** + * Permanently deleted showcase. + * @typedef {Object} TeamLogShowcasePermanentlyDeletedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcasePermanentlyDeletedType + * @property {string} description + */ /** + * Added showcase comment. + * @typedef {Object} TeamLogShowcasePostCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogShowcasePostCommentType + * @property {string} description + */ /** + * Removed member from showcase. + * @typedef {Object} TeamLogShowcaseRemoveMemberDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseRemoveMemberType + * @property {string} description + */ /** + * Renamed showcase. + * @typedef {Object} TeamLogShowcaseRenamedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseRenamedType + * @property {string} description + */ /** + * Requested access to showcase. + * @typedef {Object} TeamLogShowcaseRequestAccessDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseRequestAccessType + * @property {string} description + */ /** + * Resolved showcase comment. + * @typedef {Object} TeamLogShowcaseResolveCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogShowcaseResolveCommentType + * @property {string} description + */ /** + * Unarchived showcase. + * @typedef {Object} TeamLogShowcaseRestoredDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseRestoredType + * @property {string} description + */ /** + * Deleted showcase (old version). + * @typedef {Object} TeamLogShowcaseTrashedDeprecatedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseTrashedDeprecatedType + * @property {string} description + */ /** + * Deleted showcase. + * @typedef {Object} TeamLogShowcaseTrashedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseTrashedType + * @property {string} description + */ /** + * Unresolved showcase comment. + * @typedef {Object} TeamLogShowcaseUnresolveCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ /** + * @typedef {Object} TeamLogShowcaseUnresolveCommentType + * @property {string} description + */ /** + * Restored showcase (old version). + * @typedef {Object} TeamLogShowcaseUntrashedDeprecatedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseUntrashedDeprecatedType + * @property {string} description + */ /** + * Restored showcase. + * @typedef {Object} TeamLogShowcaseUntrashedDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseUntrashedType + * @property {string} description + */ /** + * Viewed showcase. + * @typedef {Object} TeamLogShowcaseViewDetails + * @property {string} event_uuid - Event unique identifier. + */ /** + * @typedef {Object} TeamLogShowcaseViewType + * @property {string} description + */ /** + * Ended admin sign-in-as session. + * @typedef {Object} TeamLogSignInAsSessionEndDetails + */ /** + * @typedef {Object} TeamLogSignInAsSessionEndType + * @property {string} description + */ /** + * Started admin sign-in-as session. + * @typedef {Object} TeamLogSignInAsSessionStartDetails + */ /** + * @typedef {Object} TeamLogSignInAsSessionStartType + * @property {string} description + */ /** + * Changed default Smart Sync setting for team members. + * @typedef {Object} TeamLogSmartSyncChangePolicyDetails + * @property {TeamPoliciesSmartSyncPolicy} [new_value] - New smart sync policy. + * @property {TeamPoliciesSmartSyncPolicy} [previous_value] - Previous smart + * sync policy. + */ /** + * @typedef {Object} TeamLogSmartSyncChangePolicyType + * @property {string} description + */ /** + * Created Smart Sync non-admin devices report. + * @typedef {Object} TeamLogSmartSyncCreateAdminPrivilegeReportDetails + */ /** + * @typedef {Object} TeamLogSmartSyncCreateAdminPrivilegeReportType + * @property {string} description + */ /** + * Opted team into Smart Sync. + * @typedef {Object} TeamLogSmartSyncNotOptOutDetails + * @property {TeamLogSmartSyncOptOutPolicy} previous_value - Previous Smart Sync + * opt out policy. + * @property {TeamLogSmartSyncOptOutPolicy} new_value - New Smart Sync opt out + * policy. + */ /** + * @typedef {Object} TeamLogSmartSyncNotOptOutType + * @property {string} description + */ /** + * Opted team out of Smart Sync. + * @typedef {Object} TeamLogSmartSyncOptOutDetails + * @property {TeamLogSmartSyncOptOutPolicy} previous_value - Previous Smart Sync + * opt out policy. + * @property {TeamLogSmartSyncOptOutPolicy} new_value - New Smart Sync opt out + * policy. + */ /** + * @typedef {Object} TeamLogSmartSyncOptOutPolicy + * @property {('default'|'opted_out'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogSmartSyncOptOutType + * @property {string} description + */ /** + * Changed automatic Smart Sync setting for team. + * @typedef {Object} TeamLogSmarterSmartSyncPolicyChangedDetails + * @property {TeamPoliciesSmarterSmartSyncPolicyState} previous_value - Previous + * automatic Smart Sync setting. + * @property {TeamPoliciesSmarterSmartSyncPolicyState} new_value - New automatic + * Smart Sync setting. + */ /** + * @typedef {Object} TeamLogSmarterSmartSyncPolicyChangedType + * @property {string} description + */ /** + * Space limit alert policy + * @typedef {Object} TeamLogSpaceCapsType + * @property {('hard'|'off'|'soft'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogSpaceLimitsStatus + * @property {('near_quota'|'over_quota'|'within_quota'|'other')} .tag - Tag identifying the union variant. + */ /** + * Added X.509 certificate for SSO. + * @typedef {Object} TeamLogSsoAddCertDetails + * @property {TeamLogCertificate} certificate_details - SSO certificate details. + */ /** + * @typedef {Object} TeamLogSsoAddCertType + * @property {string} description + */ /** + * Added sign-in URL for SSO. + * @typedef {Object} TeamLogSsoAddLoginUrlDetails + * @property {string} new_value - New single sign-on login URL. + */ /** + * @typedef {Object} TeamLogSsoAddLoginUrlType + * @property {string} description + */ /** + * Added sign-out URL for SSO. + * @typedef {Object} TeamLogSsoAddLogoutUrlDetails + * @property {string} [new_value] - New single sign-on logout URL. + */ /** + * @typedef {Object} TeamLogSsoAddLogoutUrlType + * @property {string} description + */ /** + * Changed X.509 certificate for SSO. + * @typedef {Object} TeamLogSsoChangeCertDetails + * @property {TeamLogCertificate} new_certificate_details - New SSO certificate + * details. + * @property {TeamLogCertificate} [previous_certificate_details] - Previous SSO + * certificate details. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSsoChangeCertType + * @property {string} description + */ /** + * Changed sign-in URL for SSO. + * @typedef {Object} TeamLogSsoChangeLoginUrlDetails + * @property {string} previous_value - Previous single sign-on login URL. + * @property {string} new_value - New single sign-on login URL. + */ /** + * @typedef {Object} TeamLogSsoChangeLoginUrlType + * @property {string} description + */ /** + * Changed sign-out URL for SSO. + * @typedef {Object} TeamLogSsoChangeLogoutUrlDetails + * @property {string} [previous_value] - Previous single sign-on logout URL. + * Might be missing due to historical data gap. + * @property {string} [new_value] - New single sign-on logout URL. + */ /** + * @typedef {Object} TeamLogSsoChangeLogoutUrlType + * @property {string} description + */ /** + * Changed single sign-on setting for team. + * @typedef {Object} TeamLogSsoChangePolicyDetails + * @property {TeamPoliciesSsoPolicy} new_value - New single sign-on policy. + * @property {TeamPoliciesSsoPolicy} [previous_value] - Previous single sign-on + * policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogSsoChangePolicyType + * @property {string} description + */ /** + * Changed SAML identity mode for SSO. + * @typedef {Object} TeamLogSsoChangeSamlIdentityModeDetails + * @property {number} previous_value - Previous single sign-on identity mode. + * @property {number} new_value - New single sign-on identity mode. + */ /** + * @typedef {Object} TeamLogSsoChangeSamlIdentityModeType + * @property {string} description + */ /** + * Failed to sign in via SSO. + * @typedef {Object} TeamLogSsoErrorDetails + * @property {TeamLogFailureDetailsLogInfo} error_details - Error details. + */ /** + * @typedef {Object} TeamLogSsoErrorType + * @property {string} description + */ /** + * Removed X.509 certificate for SSO. + * @typedef {Object} TeamLogSsoRemoveCertDetails + */ /** + * @typedef {Object} TeamLogSsoRemoveCertType + * @property {string} description + */ /** + * Removed sign-in URL for SSO. + * @typedef {Object} TeamLogSsoRemoveLoginUrlDetails + * @property {string} previous_value - Previous single sign-on login URL. + */ /** + * @typedef {Object} TeamLogSsoRemoveLoginUrlType + * @property {string} description + */ /** + * Removed sign-out URL for SSO. + * @typedef {Object} TeamLogSsoRemoveLogoutUrlDetails + * @property {string} previous_value - Previous single sign-on logout URL. + */ /** + * @typedef {Object} TeamLogSsoRemoveLogoutUrlType + * @property {string} description + */ /** + * Started enterprise admin session. + * @typedef {Object} TeamLogStartedEnterpriseAdminSessionDetails + * @property {TeamLogFedExtraDetails} federation_extra_details - More + * information about the organization or team. + */ /** + * @typedef {Object} TeamLogStartedEnterpriseAdminSessionType + * @property {string} description + */ /** + * Created team activity report. + * @typedef {Object} TeamLogTeamActivityCreateReportDetails + * @property {Timestamp} start_date - Report start date. + * @property {Timestamp} end_date - Report end date. + */ /** + * Couldn't generate team activity report. + * @typedef {Object} TeamLogTeamActivityCreateReportFailDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ /** + * @typedef {Object} TeamLogTeamActivityCreateReportFailType + * @property {string} description + */ /** + * @typedef {Object} TeamLogTeamActivityCreateReportType + * @property {string} description + */ /** + * Policy for controlling team access to setting up branding feature + * @typedef {Object} TeamLogTeamBrandingPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed team branding policy for team. + * @typedef {Object} TeamLogTeamBrandingPolicyChangedDetails + * @property {TeamLogTeamBrandingPolicy} new_value - New team branding policy. + * @property {TeamLogTeamBrandingPolicy} previous_value - Previous team branding + * policy. + */ /** + * @typedef {Object} TeamLogTeamBrandingPolicyChangedType + * @property {string} description + */ /** + * More details about the team. + * @typedef {Object} TeamLogTeamDetails + * @property {string} team - The name of the team. + */ /** + * An audit log event. + * @typedef {Object} TeamLogTeamEvent + * @property {Timestamp} timestamp - The Dropbox timestamp representing when the + * action was taken. + * @property {TeamLogEventCategory} event_category - The category that this type + * of action belongs to. + * @property {TeamLogEventType} event_type - The particular type of action + * taken. + * @property {TeamLogEventDetails} details - The variable event schema + * applicable to this type of action, instantiated with respect to this + * particular action. + * @property {TeamLogActorLogInfo} [actor] - The entity who actually performed + * the action. Might be missing due to historical data gap. + * @property {TeamLogOriginLogInfo} [origin] - The origin from which the actor + * performed the action including information about host, ip address, location, + * session, etc. If the action was performed programmatically via the API the + * origin represents the API client. + * @property {boolean} [involve_non_team_member] - True if the action involved a + * non team member either as the actor or as one of the affected users. Might be + * missing due to historical data gap. + * @property {TeamLogContextLogInfo} [context] - The user or team on whose + * behalf the actor performed the action. Might be missing due to historical + * data gap. + * @property {Array.} [participants] - Zero or more + * users and/or groups that are affected by the action. Note that this list + * doesn't include any actors or users in context. + * @property {Array.} [assets] - Zero or more content + * assets involved in the action. Currently these include Dropbox files and + * folders but in the future we might add other asset types such as Paper + * documents, folders, projects, etc. + */ /** + * Policy for controlling whether App Integrations are enabled for the team. + * @typedef {Object} TeamLogTeamExtensionsPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed App Integrations setting for team. + * @typedef {Object} TeamLogTeamExtensionsPolicyChangedDetails + * @property {TeamLogTeamExtensionsPolicy} new_value - New Extensions policy. + * @property {TeamLogTeamExtensionsPolicy} previous_value - Previous Extensions + * policy. + */ /** + * @typedef {Object} TeamLogTeamExtensionsPolicyChangedType + * @property {string} description + */ /** + * Changed archival status of team folder. + * @typedef {Object} TeamLogTeamFolderChangeStatusDetails + * @property {TeamTeamFolderStatus} new_value - New team folder status. + * @property {TeamTeamFolderStatus} [previous_value] - Previous team folder + * status. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogTeamFolderChangeStatusType + * @property {string} description + */ /** + * Created team folder in active status. + * @typedef {Object} TeamLogTeamFolderCreateDetails + */ /** + * @typedef {Object} TeamLogTeamFolderCreateType + * @property {string} description + */ /** + * Downgraded team folder to regular shared folder. + * @typedef {Object} TeamLogTeamFolderDowngradeDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + */ /** + * @typedef {Object} TeamLogTeamFolderDowngradeType + * @property {string} description + */ /** + * Permanently deleted archived team folder. + * @typedef {Object} TeamLogTeamFolderPermanentlyDeleteDetails + */ /** + * @typedef {Object} TeamLogTeamFolderPermanentlyDeleteType + * @property {string} description + */ /** + * Renamed active/archived team folder. + * @typedef {Object} TeamLogTeamFolderRenameDetails + * @property {string} previous_folder_name - Previous folder name. + * @property {string} new_folder_name - New folder name. + */ /** + * @typedef {Object} TeamLogTeamFolderRenameType + * @property {string} description + */ /** + * Details about team invites + * @typedef {Object} TeamLogTeamInviteDetails + * @property {TeamLogInviteMethod} invite_method - How the user was invited to + * the team. + * @property {boolean} [additional_license_purchase] - True if the invitation + * incurred an additional license purchase. + */ /** + * Team linked app + * @typedef {Object} TeamLogTeamLinkedAppLogInfo +@property {'team_linked_app'} [.tag] - Tag identifying this subtype variant. +This field is only present when needed to discriminate between multiple possible +subtypes. + * @property {string} [app_id] - App unique ID. + * @property {string} [display_name] - App display name. + */ /** + * Team's logged information. + * @typedef {Object} TeamLogTeamLogInfo + * @property {string} display_name - Team display name. + */ /** + * Team member's logged information. + * @typedef {Object} TeamLogTeamMemberLogInfo +@property {'team_member'} [.tag] - Tag identifying this subtype variant. This +field is only present when needed to discriminate between multiple possible +subtypes. + * @property {string} [account_id] - User unique ID. + * @property {string} [display_name] - User display name. + * @property {string} [email] - User email address. + * @property {string} [team_member_id] - Team member ID. + * @property {string} [member_external_id] - Team member external ID. + * @property {TeamLogTeamLogInfo} [team] - Details about this user’s team + * for enterprise event. + */ /** + * @typedef {Object} TeamLogTeamMembershipType + * @property {('free'|'full'|'guest'|'other')} .tag - Tag identifying the union variant. + */ /** + * Merged another team into this team. + * @typedef {Object} TeamLogTeamMergeFromDetails + * @property {string} team_name - The name of the team that was merged into this + * team. + */ /** + * @typedef {Object} TeamLogTeamMergeFromType + * @property {string} description + */ /** + * Accepted a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestAcceptedDetails + * @property {TeamLogTeamMergeRequestAcceptedExtraDetails} + * request_accepted_details - Team merge request acceptance details. + */ /** + * Team merge request acceptance details + * @typedef {Object} TeamLogTeamMergeRequestAcceptedExtraDetails + * @property {TeamLogPrimaryTeamRequestAcceptedDetails} [primary_team] - + * Available if .tag is primary_team. Team merge request accepted details shown + * to the primary team. + * @property {TeamLogSecondaryTeamRequestAcceptedDetails} [secondary_team] - + * Available if .tag is secondary_team. Team merge request accepted details + * shown to the secondary team. + * @property {('primary_team'|'secondary_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Accepted a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestAcceptedShownToPrimaryTeamDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestAcceptedShownToPrimaryTeamType + * @property {string} description + */ /** + * Accepted a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestAcceptedShownToSecondaryTeamDetails + * @property {string} primary_team - The primary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestAcceptedShownToSecondaryTeamType + * @property {string} description + */ /** + * @typedef {Object} TeamLogTeamMergeRequestAcceptedType + * @property {string} description + */ /** + * Automatically canceled team merge request. + * @typedef {Object} TeamLogTeamMergeRequestAutoCanceledDetails + * @property {string} [details] - The cancellation reason. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestAutoCanceledType + * @property {string} description + */ /** + * Canceled a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestCanceledDetails + * @property {TeamLogTeamMergeRequestCanceledExtraDetails} + * request_canceled_details - Team merge request cancellation details. + */ /** + * Team merge request cancellation details + * @typedef {Object} TeamLogTeamMergeRequestCanceledExtraDetails + * @property {TeamLogPrimaryTeamRequestCanceledDetails} [primary_team] - + * Available if .tag is primary_team. Team merge request cancellation details + * shown to the primary team. + * @property {TeamLogSecondaryTeamRequestCanceledDetails} [secondary_team] - + * Available if .tag is secondary_team. Team merge request cancellation details + * shown to the secondary team. + * @property {('primary_team'|'secondary_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Canceled a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestCanceledShownToPrimaryTeamDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestCanceledShownToPrimaryTeamType + * @property {string} description + */ /** + * Canceled a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestCanceledShownToSecondaryTeamDetails + * @property {string} sent_to - The email of the primary team admin that the + * request was sent to. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestCanceledShownToSecondaryTeamType + * @property {string} description + */ /** + * @typedef {Object} TeamLogTeamMergeRequestCanceledType + * @property {string} description + */ /** + * Team merge request expired. + * @typedef {Object} TeamLogTeamMergeRequestExpiredDetails + * @property {TeamLogTeamMergeRequestExpiredExtraDetails} + * request_expired_details - Team merge request expiration details. + */ /** + * Team merge request expiration details + * @typedef {Object} TeamLogTeamMergeRequestExpiredExtraDetails + * @property {TeamLogPrimaryTeamRequestExpiredDetails} [primary_team] - + * Available if .tag is primary_team. Team merge request canceled details shown + * to the primary team. + * @property {TeamLogSecondaryTeamRequestExpiredDetails} [secondary_team] - + * Available if .tag is secondary_team. Team merge request canceled details + * shown to the secondary team. + * @property {('primary_team'|'secondary_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Team merge request expired. + * @typedef {Object} TeamLogTeamMergeRequestExpiredShownToPrimaryTeamDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestExpiredShownToPrimaryTeamType + * @property {string} description + */ /** + * Team merge request expired. + * @typedef {Object} TeamLogTeamMergeRequestExpiredShownToSecondaryTeamDetails + * @property {string} sent_to - The email of the primary team admin the request + * was sent to. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestExpiredShownToSecondaryTeamType + * @property {string} description + */ /** + * @typedef {Object} TeamLogTeamMergeRequestExpiredType + * @property {string} description + */ /** + * Rejected a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestRejectedShownToPrimaryTeamDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestRejectedShownToPrimaryTeamType + * @property {string} description + */ /** + * Rejected a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestRejectedShownToSecondaryTeamDetails + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestRejectedShownToSecondaryTeamType + * @property {string} description + */ /** + * Sent a team merge request reminder. + * @typedef {Object} TeamLogTeamMergeRequestReminderDetails + * @property {TeamLogTeamMergeRequestReminderExtraDetails} + * request_reminder_details - Team merge request reminder details. + */ /** + * Team merge request reminder details + * @typedef {Object} TeamLogTeamMergeRequestReminderExtraDetails + * @property {TeamLogPrimaryTeamRequestReminderDetails} [primary_team] - + * Available if .tag is primary_team. Team merge request reminder details shown + * to the primary team. + * @property {TeamLogSecondaryTeamRequestReminderDetails} [secondary_team] - + * Available if .tag is secondary_team. Team merge request reminder details + * shown to the secondary team. + * @property {('primary_team'|'secondary_team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Sent a team merge request reminder. + * @typedef {Object} TeamLogTeamMergeRequestReminderShownToPrimaryTeamDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_to - The name of the primary team admin the request + * was sent to. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestReminderShownToPrimaryTeamType + * @property {string} description + */ /** + * Sent a team merge request reminder. + * @typedef {Object} TeamLogTeamMergeRequestReminderShownToSecondaryTeamDetails + * @property {string} sent_to - The email of the primary team admin the request + * was sent to. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestReminderShownToSecondaryTeamType + * @property {string} description + */ /** + * @typedef {Object} TeamLogTeamMergeRequestReminderType + * @property {string} description + */ /** + * Canceled the team merge. + * @typedef {Object} TeamLogTeamMergeRequestRevokedDetails + * @property {string} team - The name of the other team. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestRevokedType + * @property {string} description + */ /** + * Requested to merge their Dropbox team into yours. + * @typedef {Object} TeamLogTeamMergeRequestSentShownToPrimaryTeamDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_to - The name of the primary team admin the request + * was sent to. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestSentShownToPrimaryTeamType + * @property {string} description + */ /** + * Requested to merge your team into another Dropbox team. + * @typedef {Object} TeamLogTeamMergeRequestSentShownToSecondaryTeamDetails + * @property {string} sent_to - The email of the primary team admin the request + * was sent to. + */ /** + * @typedef {Object} TeamLogTeamMergeRequestSentShownToSecondaryTeamType + * @property {string} description + */ /** + * Merged this team into another team. + * @typedef {Object} TeamLogTeamMergeToDetails + * @property {string} team_name - The name of the team that this team was merged + * into. + */ /** + * @typedef {Object} TeamLogTeamMergeToType + * @property {string} description + */ /** + * Team name details + * @typedef {Object} TeamLogTeamName + * @property {string} team_display_name - Team's display name. + * @property {string} team_legal_name - Team's legal name. + */ /** + * Added team background to display on shared link headers. + * @typedef {Object} TeamLogTeamProfileAddBackgroundDetails + */ /** + * @typedef {Object} TeamLogTeamProfileAddBackgroundType + * @property {string} description + */ /** + * Added team logo to display on shared link headers. + * @typedef {Object} TeamLogTeamProfileAddLogoDetails + */ /** + * @typedef {Object} TeamLogTeamProfileAddLogoType + * @property {string} description + */ /** + * Changed team background displayed on shared link headers. + * @typedef {Object} TeamLogTeamProfileChangeBackgroundDetails + */ /** + * @typedef {Object} TeamLogTeamProfileChangeBackgroundType + * @property {string} description + */ /** + * Changed default language for team. + * @typedef {Object} TeamLogTeamProfileChangeDefaultLanguageDetails + * @property {string} new_value - New team's default language. + * @property {string} previous_value - Previous team's default language. + */ /** + * @typedef {Object} TeamLogTeamProfileChangeDefaultLanguageType + * @property {string} description + */ /** + * Changed team logo displayed on shared link headers. + * @typedef {Object} TeamLogTeamProfileChangeLogoDetails + */ /** + * @typedef {Object} TeamLogTeamProfileChangeLogoType + * @property {string} description + */ /** + * Changed team name. + * @typedef {Object} TeamLogTeamProfileChangeNameDetails + * @property {TeamLogTeamName} new_value - New team name. + * @property {TeamLogTeamName} [previous_value] - Previous teams name. Might be + * missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogTeamProfileChangeNameType + * @property {string} description + */ /** + * Removed team background displayed on shared link headers. + * @typedef {Object} TeamLogTeamProfileRemoveBackgroundDetails + */ /** + * @typedef {Object} TeamLogTeamProfileRemoveBackgroundType + * @property {string} description + */ /** + * Removed team logo displayed on shared link headers. + * @typedef {Object} TeamLogTeamProfileRemoveLogoDetails + */ /** + * @typedef {Object} TeamLogTeamProfileRemoveLogoType + * @property {string} description + */ /** + * Policy for controlling whether team selective sync is enabled for team. + * @typedef {Object} TeamLogTeamSelectiveSyncPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Enabled/disabled Team Selective Sync for team. + * @typedef {Object} TeamLogTeamSelectiveSyncPolicyChangedDetails + * @property {TeamLogTeamSelectiveSyncPolicy} new_value - New Team Selective + * Sync policy. + * @property {TeamLogTeamSelectiveSyncPolicy} previous_value - Previous Team + * Selective Sync policy. + */ /** + * @typedef {Object} TeamLogTeamSelectiveSyncPolicyChangedType + * @property {string} description + */ /** + * Changed sync default. + * @typedef {Object} TeamLogTeamSelectiveSyncSettingsChangedDetails + * @property {FilesSyncSetting} previous_value - Previous value. + * @property {FilesSyncSetting} new_value - New value. + */ /** + * @typedef {Object} TeamLogTeamSelectiveSyncSettingsChangedType + * @property {string} description + */ /** + * Edited the approved list for sharing externally. + * @typedef {Object} TeamLogTeamSharingWhitelistSubjectsChangedDetails + * @property {Array.} added_whitelist_subjects - Domains or emails added + * to the approved list for sharing externally. + * @property {Array.} removed_whitelist_subjects - Domains or emails + * removed from the approved list for sharing externally. + */ /** + * @typedef {Object} TeamLogTeamSharingWhitelistSubjectsChangedType + * @property {string} description + */ /** + * Added backup phone for two-step verification. + * @typedef {Object} TeamLogTfaAddBackupPhoneDetails + */ /** + * @typedef {Object} TeamLogTfaAddBackupPhoneType + * @property {string} description + */ /** + * Added members to two factor authentication exception list. + * @typedef {Object} TeamLogTfaAddExceptionDetails + */ /** + * @typedef {Object} TeamLogTfaAddExceptionType + * @property {string} description + */ /** + * Added security key for two-step verification. + * @typedef {Object} TeamLogTfaAddSecurityKeyDetails + */ /** + * @typedef {Object} TeamLogTfaAddSecurityKeyType + * @property {string} description + */ /** + * Changed backup phone for two-step verification. + * @typedef {Object} TeamLogTfaChangeBackupPhoneDetails + */ /** + * @typedef {Object} TeamLogTfaChangeBackupPhoneType + * @property {string} description + */ /** + * Changed two-step verification setting for team. + * @typedef {Object} TeamLogTfaChangePolicyDetails + * @property {TeamPoliciesTwoStepVerificationPolicy} new_value - New change + * policy. + * @property {TeamPoliciesTwoStepVerificationPolicy} [previous_value] - Previous + * change policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogTfaChangePolicyType + * @property {string} description + */ /** + * Enabled/disabled/changed two-step verification setting. + * @typedef {Object} TeamLogTfaChangeStatusDetails + * @property {TeamLogTfaConfiguration} new_value - The new two factor + * authentication configuration. + * @property {TeamLogTfaConfiguration} [previous_value] - The previous two + * factor authentication configuration. Might be missing due to historical data + * gap. + * @property {boolean} [used_rescue_code] - Used two factor authentication + * rescue code. This flag is relevant when the two factor authentication + * configuration is disabled. + */ /** + * @typedef {Object} TeamLogTfaChangeStatusType + * @property {string} description + */ /** + * Two factor authentication configuration. Note: the enabled option is + * deprecated. + * @typedef {Object} TeamLogTfaConfiguration + * @property {('authenticator'|'disabled'|'enabled'|'sms'|'other')} .tag - Tag identifying the union variant. + */ /** + * Removed backup phone for two-step verification. + * @typedef {Object} TeamLogTfaRemoveBackupPhoneDetails + */ /** + * @typedef {Object} TeamLogTfaRemoveBackupPhoneType + * @property {string} description + */ /** + * Removed members from two factor authentication exception list. + * @typedef {Object} TeamLogTfaRemoveExceptionDetails + */ /** + * @typedef {Object} TeamLogTfaRemoveExceptionType + * @property {string} description + */ /** + * Removed security key for two-step verification. + * @typedef {Object} TeamLogTfaRemoveSecurityKeyDetails + */ /** + * @typedef {Object} TeamLogTfaRemoveSecurityKeyType + * @property {string} description + */ /** + * Reset two-step verification for team member. + * @typedef {Object} TeamLogTfaResetDetails + */ /** + * @typedef {Object} TeamLogTfaResetType + * @property {string} description + */ /** + * @typedef {Object} TeamLogTimeUnit + * @property {('days'|'hours'|'milliseconds'|'minutes'|'months'|'seconds'|'weeks'|'years'|'other')} .tag - Tag identifying the union variant. + */ /** + * User that is not a member of the team but considered trusted. + * @typedef {Object} TeamLogTrustedNonTeamMemberLogInfo +@property {'trusted_non_team_member'} [.tag] - Tag identifying this subtype +variant. This field is only present when needed to discriminate between multiple +possible subtypes. + * @property {TeamLogTrustedNonTeamMemberType} trusted_non_team_member_type - + * Indicates the type of the member of a trusted team. + * @property {string} [account_id] - User unique ID. + * @property {string} [display_name] - User display name. + * @property {string} [email] - User email address. + * @property {TeamLogTeamLogInfo} [team] - Details about this user's trusted + * team. + */ /** + * @typedef {Object} TeamLogTrustedNonTeamMemberType + * @property {('enterprise_admin'|'multi_instance_admin'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogTrustedTeamsRequestAction + * @property {('accepted'|'declined'|'expired'|'invited'|'revoked'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamLogTrustedTeamsRequestState + * @property {('invited'|'linked'|'unlinked'|'other')} .tag - Tag identifying the union variant. + */ /** + * Enabled/disabled option for members to link personal Dropbox account and team + * account to same computer. + * @typedef {Object} TeamLogTwoAccountChangePolicyDetails + * @property {TeamLogTwoAccountPolicy} new_value - New two account policy. + * @property {TeamLogTwoAccountPolicy} [previous_value] - Previous two account + * policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogTwoAccountChangePolicyType + * @property {string} description + */ /** + * Policy for pairing personal account to work account + * @typedef {Object} TeamLogTwoAccountPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Reverted naming convention. + * @typedef {Object} TeamLogUndoNamingConventionDetails + */ /** + * @typedef {Object} TeamLogUndoNamingConventionType + * @property {string} description + */ /** + * Removed multi-file organize. + * @typedef {Object} TeamLogUndoOrganizeFolderWithTidyDetails + */ /** + * @typedef {Object} TeamLogUndoOrganizeFolderWithTidyType + * @property {string} description + */ /** + * User linked app + * @typedef {Object} TeamLogUserLinkedAppLogInfo +@property {'user_linked_app'} [.tag] - Tag identifying this subtype variant. +This field is only present when needed to discriminate between multiple possible +subtypes. + * @property {string} [app_id] - App unique ID. + * @property {string} [display_name] - App display name. + */ /** + * User's logged information. + * @typedef {Object} TeamLogUserLogInfo +@property {("team_member"|"trusted_non_team_member"|"non_team_member")} .tag - +Tag identifying the subtype variant. + * @property {string} [account_id] - User unique ID. + * @property {string} [display_name] - User display name. + * @property {string} [email] - User email address. + */ /** + * User's name logged information + * @typedef {Object} TeamLogUserNameLogInfo + * @property {string} given_name - Given name. + * @property {string} surname - Surname. + * @property {string} [locale] - Locale. Might be missing due to historical data + * gap. + */ /** + * User or team linked app. Used when linked type is missing due to historical + * data gap. + * @typedef {Object} TeamLogUserOrTeamLinkedAppLogInfo +@property {'user_or_team_linked_app'} [.tag] - Tag identifying this subtype +variant. This field is only present when needed to discriminate between multiple +possible subtypes. + * @property {string} [app_id] - App unique ID. + * @property {string} [display_name] - App display name. + */ /** + * Tagged a file. + * @typedef {Object} TeamLogUserTagsAddedDetails + * @property {Array.} values - values. + */ /** + * @typedef {Object} TeamLogUserTagsAddedType + * @property {string} description + */ /** + * Removed tags. + * @typedef {Object} TeamLogUserTagsRemovedDetails + * @property {Array.} values - values. + */ /** + * @typedef {Object} TeamLogUserTagsRemovedType + * @property {string} description + */ /** + * Changed team policy for viewer info. + * @typedef {Object} TeamLogViewerInfoPolicyChangedDetails + * @property {TeamLogPassPolicy} previous_value - Previous Viewer Info policy. + * @property {TeamLogPassPolicy} new_value - New Viewer Info policy. + */ /** + * @typedef {Object} TeamLogViewerInfoPolicyChangedType + * @property {string} description + */ /** + * Policy for controlling team access to watermarking feature + * @typedef {Object} TeamLogWatermarkingPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Changed watermarking policy for team. + * @typedef {Object} TeamLogWatermarkingPolicyChangedDetails + * @property {TeamLogWatermarkingPolicy} new_value - New watermarking policy. + * @property {TeamLogWatermarkingPolicy} previous_value - Previous watermarking + * policy. + */ /** + * @typedef {Object} TeamLogWatermarkingPolicyChangedType + * @property {string} description + */ /** + * Information on active web sessions + * @typedef {Object} TeamLogWebDeviceSessionLogInfo +@property {'web_device_session'} [.tag] - Tag identifying this subtype variant. +This field is only present when needed to discriminate between multiple possible +subtypes. + * @property {string} user_agent - Information on the hosting device. + * @property {string} os - Information on the hosting operating system. + * @property {string} browser - Information on the browser used for this web + * session. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + * @property {TeamLogWebSessionLogInfo} [session_info] - Web session unique id. + */ /** + * Web session. + * @typedef {Object} TeamLogWebSessionLogInfo +@property {'web'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {string} [session_id] - Session ID. + */ /** + * Changed limit on active sessions per member. + * @typedef {Object} TeamLogWebSessionsChangeActiveSessionLimitDetails + * @property {string} previous_value - Previous max number of concurrent active + * sessions policy. + * @property {string} new_value - New max number of concurrent active sessions + * policy. + */ /** + * @typedef {Object} TeamLogWebSessionsChangeActiveSessionLimitType + * @property {string} description + */ /** + * Changed how long members can stay signed in to Dropbox.com. + * @typedef {Object} TeamLogWebSessionsChangeFixedLengthPolicyDetails + * @property {TeamLogWebSessionsFixedLengthPolicy} [new_value] - New session + * length policy. Might be missing due to historical data gap. + * @property {TeamLogWebSessionsFixedLengthPolicy} [previous_value] - Previous + * session length policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogWebSessionsChangeFixedLengthPolicyType + * @property {string} description + */ /** + * Changed how long team members can be idle while signed in to Dropbox.com. + * @typedef {Object} TeamLogWebSessionsChangeIdleLengthPolicyDetails + * @property {TeamLogWebSessionsIdleLengthPolicy} [new_value] - New idle length + * policy. Might be missing due to historical data gap. + * @property {TeamLogWebSessionsIdleLengthPolicy} [previous_value] - Previous + * idle length policy. Might be missing due to historical data gap. + */ /** + * @typedef {Object} TeamLogWebSessionsChangeIdleLengthPolicyType + * @property {string} description + */ /** + * Web sessions fixed length policy. + * @typedef {Object} TeamLogWebSessionsFixedLengthPolicy + * @property {TeamLogDurationLogInfo} [defined] - Available if .tag is defined. + * Defined fixed session length. + * @property {('defined'|'undefined'|'other')} .tag - Tag identifying the union variant. + */ /** + * Web sessions idle length policy. + * @typedef {Object} TeamLogWebSessionsIdleLengthPolicy + * @property {TeamLogDurationLogInfo} [defined] - Available if .tag is defined. + * Defined idle session length. + * @property {('defined'|'undefined'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesCameraUploadsPolicyState + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesComputerBackupPolicyState + * @property {('disabled'|'enabled'|'default'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesEmmState + * @property {('disabled'|'optional'|'required'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesExternalDriveBackupPolicyState + * @property {('disabled'|'enabled'|'default'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesFileLockingPolicyState + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesFileProviderMigrationPolicyState + * @property {('disabled'|'enabled'|'default'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesGroupCreation + * @property {('admins_and_members'|'admins_only')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesOfficeAddInPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesPaperDefaultFolderPolicy + * @property {('everyone_in_team'|'invite_only'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesPaperDeploymentPolicy + * @property {('full'|'partial'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesPaperDesktopPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesPaperEnabledPolicy + * @property {('disabled'|'enabled'|'unspecified'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesPasswordControlMode + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesPasswordStrengthPolicy + * @property {('minimal_requirements'|'moderate_password'|'strong_password'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesRolloutMethod + * @property {('unlink_all'|'unlink_most_inactive'|'add_member_to_exceptions')} .tag - Tag identifying the union variant. + */ /** + * Policy governing which shared folders a team member can join. + * @typedef {Object} TeamPoliciesSharedFolderJoinPolicy + * @property {('from_team_only'|'from_anyone'|'other')} .tag - Tag identifying the union variant. + */ /** + * Policy governing who can be a member of a folder shared by a team member. + * @typedef {Object} TeamPoliciesSharedFolderMemberPolicy + * @property {('team'|'anyone'|'other')} .tag - Tag identifying the union variant. + */ /** + * Policy governing the visibility of shared links. This policy can apply to + * newly created shared links, or all shared links. + * @typedef {Object} TeamPoliciesSharedLinkCreatePolicy + * @property {('default_public'|'default_team_only'|'team_only'|'default_no_one'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesShowcaseDownloadPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesShowcaseEnabledPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesShowcaseExternalSharingPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesSmartSyncPolicy + * @property {('local'|'on_demand'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesSmarterSmartSyncPolicyState + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesSsoPolicy + * @property {('disabled'|'optional'|'required'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesSuggestMembersPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Policies governing team members. + * @typedef {Object} TeamPoliciesTeamMemberPolicies + * @property {TeamPoliciesTeamSharingPolicies} sharing - Policies governing + * sharing. + * @property {TeamPoliciesEmmState} emm_state - This describes the Enterprise + * Mobility Management (EMM) state for this team. This information can be used + * to understand if an organization is integrating with a third-party EMM vendor + * to further manage and apply restrictions upon the team's Dropbox usage on + * mobile devices. This is a new feature and in the future we'll be adding more + * new fields and additional documentation. + * @property {TeamPoliciesOfficeAddInPolicy} office_addin - The admin policy + * around the Dropbox Office Add-In for this team. + * @property {TeamPoliciesSuggestMembersPolicy} suggest_members_policy - The + * team policy on if teammembers are allowed to suggest users for admins to + * invite to the team. + */ /** + * Policies governing sharing within and outside of the team. + * @typedef {Object} TeamPoliciesTeamSharingPolicies + * @property {TeamPoliciesSharedFolderMemberPolicy} shared_folder_member_policy + * - Who can join folders shared by team members. + * @property {TeamPoliciesSharedFolderJoinPolicy} shared_folder_join_policy - + * Which shared folders team members can join. + * @property {TeamPoliciesSharedLinkCreatePolicy} shared_link_create_policy - + * Who can view shared links owned by team members. + * @property {TeamPoliciesGroupCreation} group_creation_policy - Who can create + * groups. + */ /** + * @typedef {Object} TeamPoliciesTwoStepVerificationPolicy + * @property {('require_tfa_enable'|'require_tfa_disable'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} TeamPoliciesTwoStepVerificationState + * @property {('required'|'optional'|'disabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * The amount of detail revealed about an account depends on the user being + * queried and the user making the query. + * @typedef {Object} UsersAccount + * @property {string} account_id - The user's unique Dropbox ID. + * @property {UsersName} name - Details of a user's name. + * @property {string} email - The user's email address. Do not rely on this + * without checking the email_verified field. Even then, it's possible that the + * user has since lost access to their email. + * @property {boolean} email_verified - Whether the user has verified their + * email address. + * @property {boolean} disabled - Whether the user has been disabled. + * @property {string} [profile_photo_url] - URL for the photo representing the + * user, if one is set. + */ /** + * Basic information about any account. + * @typedef {Object} UsersBasicAccount + * @property {string} account_id - The user's unique Dropbox ID. + * @property {UsersName} name - Details of a user's name. + * @property {string} email - The user's email address. Do not rely on this + * without checking the email_verified field. Even then, it's possible that the + * user has since lost access to their email. + * @property {boolean} email_verified - Whether the user has verified their + * email address. + * @property {boolean} disabled - Whether the user has been disabled. + * @property {boolean} is_teammate - Whether this user is a teammate of the + * current user. If this account is the current user's account, then this will + * be true. + * @property {string} [profile_photo_url] - URL for the photo representing the + * user, if one is set. + * @property {string} [team_member_id] - The user's unique team member id. This + * field will only be present if the user is part of a team and is_teammate is + * true. + */ /** + * The value for UserFeature.file_locking. + * @typedef {Object} UsersFileLockingValue + * @property {boolean} [enabled] - Available if .tag is enabled. When this value + * is True, the user can lock files in shared directories. When the value is + * False the user can unlock the files they have locked or request to unlock + * files locked by others. + * @property {('enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Detailed information about the current user's account. + * @typedef {Object} UsersFullAccount + * @property {string} account_id - The user's unique Dropbox ID. + * @property {UsersName} name - Details of a user's name. + * @property {string} email - The user's email address. Do not rely on this + * without checking the email_verified field. Even then, it's possible that the + * user has since lost access to their email. + * @property {boolean} email_verified - Whether the user has verified their + * email address. + * @property {boolean} disabled - Whether the user has been disabled. + * @property {string} locale - The language that the user specified. Locale tags + * will be IETF language tags http://en.wikipedia.org/wiki/IETF_language_tag. + * @property {string} referral_link - The user's referral link + * https://www.dropbox.com/referrals. + * @property {boolean} is_paired - Whether the user has a personal and work + * account. If the current account is personal, then team will always be null, + * but is_paired will indicate if a work account is linked. + * @property {UsersCommonAccountType} account_type - What type of account this + * user has. + * @property {(CommonTeamRootInfo|CommonUserRootInfo|CommonRootInfo)} root_info + * - The root info for this account. + * @property {string} [profile_photo_url] - URL for the photo representing the + * user, if one is set. + * @property {string} [country] - The user's two-letter country code, if + * available. Country codes are based on ISO 3166-1 + * http://en.wikipedia.org/wiki/ISO_3166-1. + * @property {UsersFullTeam} [team] - If this account is a member of a team, + * information about that team. + * @property {string} [team_member_id] - This account's unique team member id. + * This field will only be present if team is present. + */ /** + * Detailed information about a team. + * @typedef {Object} UsersFullTeam + * @property {string} id - The team's unique ID. + * @property {string} name - The name of the team. + * @property {TeamPoliciesTeamSharingPolicies} sharing_policies - Team policies + * governing sharing. + * @property {TeamPoliciesOfficeAddInPolicy} office_addin_policy - Team policy + * governing the use of the Office Add-In. + */ /** + * @typedef {Object} UsersGetAccountArg + * @property {string} account_id - A user's account identifier. + */ /** + * @typedef {Object} UsersGetAccountBatchArg + * @property {Array.} account_ids - List of user account identifiers. + * Should not contain any duplicate account IDs. + */ /** + * @typedef {Object} UsersGetAccountBatchError + * @property {string} [no_account] - Available if .tag is no_account. The value + * is an account ID specified in :field:`GetAccountBatchArg.account_ids` that + * does not exist. + * @property {('no_account'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} UsersGetAccountError + * @property {('no_account'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} UsersIndividualSpaceAllocation + * @property {number} allocated - The total space allocated to the user's + * account (bytes). + */ /** + * Representations for a person's name to assist with internationalization. + * @typedef {Object} UsersName + * @property {string} given_name - Also known as a first name. + * @property {string} surname - Also known as a last name or family name. + * @property {string} familiar_name - Locale-dependent name. In the US, a + * person's familiar name is their given_name, but elsewhere, it could be any + * combination of a person's given_name and surname. + * @property {string} display_name - A name that can be used directly to + * represent the name of a user's Dropbox account. + * @property {string} abbreviated_name - An abbreviated form of the person's + * name. Their initials in most locales. + */ /** + * The value for UserFeature.paper_as_files. + * @typedef {Object} UsersPaperAsFilesValue + * @property {boolean} [enabled] - Available if .tag is enabled. When this value + * is true, the user's Paper docs are accessible in Dropbox with the .paper + * extension and must be accessed via the /files endpoints. When this value is + * false, the user's Paper docs are stored separate from Dropbox files and + * folders and should be accessed via the /paper endpoints. + * @property {('enabled'|'other')} .tag - Tag identifying the union variant. + */ /** + * Space is allocated differently based on the type of account. + * @typedef {Object} UsersSpaceAllocation + * @property {UsersIndividualSpaceAllocation} [individual] - Available if .tag + * is individual. The user's space allocation applies only to their individual + * account. + * @property {UsersTeamSpaceAllocation} [team] - Available if .tag is team. The + * user shares space with other members of their team. + * @property {('individual'|'team'|'other')} .tag - Tag identifying the union variant. + */ /** + * Information about a user's space usage and quota. + * @typedef {Object} UsersSpaceUsage + * @property {number} used - The user's total space usage (bytes). + * @property {UsersSpaceAllocation} allocation - The user's space allocation. + */ /** + * Information about a team. + * @typedef {Object} UsersTeam + * @property {string} id - The team's unique ID. + * @property {string} name - The name of the team. + */ /** + * @typedef {Object} UsersTeamSpaceAllocation + * @property {number} used - The total space currently used by the user's team + * (bytes). + * @property {number} allocated - The total space allocated to the user's team + * (bytes). + * @property {number} user_within_team_space_allocated - The total space + * allocated to the user within its team allocated space (0 means that no + * restriction is imposed on the user's quota within its team). + * @property {TeamCommonMemberSpaceLimitType} user_within_team_space_limit_type + * - The type of the space limit imposed on the team member (off, alert_only, + * stop_sync). + * @property {number} user_within_team_space_used_cached - An accurate cached + * calculation of a team member's total space usage (bytes). + */ /** + * A set of features that a Dropbox User account may have configured. + * @typedef {Object} UsersUserFeature + * @property {('paper_as_files'|'file_locking'|'other')} .tag - Tag identifying the union variant. + */ /** + * Values that correspond to entries in UserFeature. + * @typedef {Object} UsersUserFeatureValue + * @property {UsersPaperAsFilesValue} [paper_as_files] - Available if .tag is + * paper_as_files. + * @property {UsersFileLockingValue} [file_locking] - Available if .tag is + * file_locking. + * @property {('paper_as_files'|'file_locking'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} UsersUserFeaturesGetValuesBatchArg + * @property {Array.} features - A list of features in + * UserFeature. If the list is empty, this route will return + * UserFeaturesGetValuesBatchError. + */ /** + * @typedef {Object} UsersUserFeaturesGetValuesBatchError + * @property {('empty_features_list'|'other')} .tag - Tag identifying the union variant. + */ /** + * @typedef {Object} UsersUserFeaturesGetValuesBatchResult + * @property {Array.} values + */ /** + * What type of account this user has. + * @typedef {Object} UsersCommonAccountType + * @property {('basic'|'pro'|'business')} .tag - Tag identifying the union variant. + */ \ No newline at end of file diff --git a/node_modules/tr46/dropbox/es/src/auth.js b/node_modules/tr46/dropbox/es/src/auth.js new file mode 100644 index 0000000000000000000000000000000000000000..194b734b1afcc45344549507029db4b4209e752c --- /dev/null +++ b/node_modules/tr46/dropbox/es/src/auth.js @@ -0,0 +1,483 @@ +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +import { getTokenExpiresAtDate, isBrowserEnv, createBrowserSafeString, OAuth2AuthorizationUrl, OAuth2TokenUrl, isWorkerEnv } from './utils.js'; +import { parseResponse } from './response.js'; +var fetch; +var crypto; +var Encoder; // Expiration is 300 seconds but needs to be in milliseconds for Date object + +var TokenExpirationBuffer = 300 * 1000; +var PKCELength = 128; +var TokenAccessTypes = ['legacy', 'offline', 'online']; +var GrantTypes = ['code', 'token']; +var IncludeGrantedScopes = ['none', 'user', 'team']; +/** + * @class DropboxAuth + * @classdesc The DropboxAuth class that provides methods to manage, acquire, and refresh tokens. + * @arg {Object} options + * @arg {Function} [options.fetch] - fetch library for making requests. + * @arg {String} [options.accessToken] - An access token for making authenticated + * requests. + * @arg {Date} [options.AccessTokenExpiresAt] - Date of the current access token's + * expiration (if available) + * @arg {String} [options.refreshToken] - A refresh token for retrieving access tokens + * @arg {String} [options.clientId] - The client id for your app. Used to create + * authentication URL. + * @arg {String} [options.clientSecret] - The client secret for your app. Used to create + * authentication URL and refresh access tokens. + * @arg {String} [options.domain] - A custom domain to use when making api requests. This + * should only be used for testing as scaffolding to avoid making network requests. + * @arg {String} [options.domainDelimiter] - A custom delimiter to use when separating domain from + * subdomain. This should only be used for testing as scaffolding. + * @arg {Object} [options.customHeaders] - An object (in the form of header: value) designed to set + * custom headers to use during a request. + * @arg {Boolean} [options.dataOnBody] - Whether request data is sent on body or as URL params. + * Defaults to false. +*/ + +var DropboxAuth = /*#__PURE__*/function () { + function DropboxAuth(options) { + _classCallCheck(this, DropboxAuth); + + options = options || {}; + + if (isBrowserEnv()) { + fetch = window.fetch.bind(window); + crypto = window.crypto || window.msCrypto; // for IE11 + } else if (isWorkerEnv()) { + /* eslint-disable no-restricted-globals */ + fetch = self.fetch.bind(self); + crypto = self.crypto; + /* eslint-enable no-restricted-globals */ + } else { + fetch = require('node-fetch'); // eslint-disable-line global-require + + crypto = require('crypto'); // eslint-disable-line global-require + } + + if (typeof TextEncoder === 'undefined') { + Encoder = require('util').TextEncoder; // eslint-disable-line global-require + } else { + Encoder = TextEncoder; + } + + this.fetch = options.fetch || fetch; + this.accessToken = options.accessToken; + this.accessTokenExpiresAt = options.accessTokenExpiresAt; + this.refreshToken = options.refreshToken; + this.clientId = options.clientId; + this.clientSecret = options.clientSecret; + this.domain = options.domain; + this.domainDelimiter = options.domainDelimiter; + this.customHeaders = options.customHeaders; + this.dataOnBody = options.dataOnBody; + } + /** + * Set the access token used to authenticate requests to the API. + * @arg {String} accessToken - An access token + * @returns {undefined} + */ + + + _createClass(DropboxAuth, [{ + key: "setAccessToken", + value: function setAccessToken(accessToken) { + this.accessToken = accessToken; + } + /** + * Get the access token + * @returns {String} Access token + */ + + }, { + key: "getAccessToken", + value: function getAccessToken() { + return this.accessToken; + } + /** + * Set the client id, which is used to help gain an access token. + * @arg {String} clientId - Your apps client id + * @returns {undefined} + */ + + }, { + key: "setClientId", + value: function setClientId(clientId) { + this.clientId = clientId; + } + /** + * Get the client id + * @returns {String} Client id + */ + + }, { + key: "getClientId", + value: function getClientId() { + return this.clientId; + } + /** + * Set the client secret + * @arg {String} clientSecret - Your app's client secret + * @returns {undefined} + */ + + }, { + key: "setClientSecret", + value: function setClientSecret(clientSecret) { + this.clientSecret = clientSecret; + } + /** + * Get the client secret + * @returns {String} Client secret + */ + + }, { + key: "getClientSecret", + value: function getClientSecret() { + return this.clientSecret; + } + /** + * Gets the refresh token + * @returns {String} Refresh token + */ + + }, { + key: "getRefreshToken", + value: function getRefreshToken() { + return this.refreshToken; + } + /** + * Sets the refresh token + * @param refreshToken - A refresh token + */ + + }, { + key: "setRefreshToken", + value: function setRefreshToken(refreshToken) { + this.refreshToken = refreshToken; + } + /** + * Gets the access token's expiration date + * @returns {Date} date of token expiration + */ + + }, { + key: "getAccessTokenExpiresAt", + value: function getAccessTokenExpiresAt() { + return this.accessTokenExpiresAt; + } + /** + * Sets the access token's expiration date + * @param accessTokenExpiresAt - new expiration date + */ + + }, { + key: "setAccessTokenExpiresAt", + value: function setAccessTokenExpiresAt(accessTokenExpiresAt) { + this.accessTokenExpiresAt = accessTokenExpiresAt; + } + /** + * Sets the code verifier for PKCE flow + * @param {String} codeVerifier - new code verifier + */ + + }, { + key: "setCodeVerifier", + value: function setCodeVerifier(codeVerifier) { + this.codeVerifier = codeVerifier; + } + /** + * Gets the code verifier for PKCE flow + * @returns {String} - code verifier for PKCE + */ + + }, { + key: "getCodeVerifier", + value: function getCodeVerifier() { + return this.codeVerifier; + } + }, { + key: "generateCodeChallenge", + value: function generateCodeChallenge() { + var _this = this; + + var encoder = new Encoder(); + var codeData = encoder.encode(this.codeVerifier); + var codeChallenge; + + if (isBrowserEnv() || isWorkerEnv()) { + return crypto.subtle.digest('SHA-256', codeData).then(function (digestedHash) { + var base64String = btoa(String.fromCharCode.apply(null, new Uint8Array(digestedHash))); + codeChallenge = createBrowserSafeString(base64String).substr(0, 128); + _this.codeChallenge = codeChallenge; + }); + } + + var digestedHash = crypto.createHash('sha256').update(codeData).digest(); + codeChallenge = createBrowserSafeString(digestedHash); + this.codeChallenge = codeChallenge; + return Promise.resolve(); + } + }, { + key: "generatePKCECodes", + value: function generatePKCECodes() { + var codeVerifier; + + if (isBrowserEnv() || isWorkerEnv()) { + var array = new Uint8Array(PKCELength); + var randomValueArray = crypto.getRandomValues(array); + var base64String = btoa(randomValueArray); + codeVerifier = createBrowserSafeString(base64String).substr(0, 128); + } else { + var randomBytes = crypto.randomBytes(PKCELength); + codeVerifier = createBrowserSafeString(randomBytes).substr(0, 128); + } + + this.codeVerifier = codeVerifier; + return this.generateCodeChallenge(); + } + /** + * Get a URL that can be used to authenticate users for the Dropbox API. + * @arg {String} redirectUri - A URL to redirect the user to after + * authenticating. This must be added to your app through the admin interface. + * @arg {String} [state] - State that will be returned in the redirect URL to help + * prevent cross site scripting attacks. + * @arg {String} [authType] - auth type, defaults to 'token', other option is 'code' + * @arg {String} [tokenAccessType] - type of token to request. From the following: + * null - creates a token with the app default (either legacy or online) + * legacy - creates one long-lived token with no expiration + * online - create one short-lived token with an expiration + * offline - create one short-lived token with an expiration with a refresh token + * @arg {Array} [scope] - scopes to request for the grant + * @arg {String} [includeGrantedScopes] - whether or not to include previously granted scopes. + * From the following: + * user - include user scopes in the grant + * team - include team scopes in the grant + * Note: if this user has never linked the app, include_granted_scopes must be None + * @arg {boolean} [usePKCE] - Whether or not to use Sha256 based PKCE. PKCE should be only use + * on client apps which doesn't call your server. It is less secure than non-PKCE flow but + * can be used if you are unable to safely retrieve your app secret + * @returns {Promise} - Url to send user to for Dropbox API authentication + * returned in a promise + */ + + }, { + key: "getAuthenticationUrl", + value: function getAuthenticationUrl(redirectUri, state) { + var _this2 = this; + + var authType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'token'; + var tokenAccessType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + var scope = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null; + var includeGrantedScopes = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'none'; + var usePKCE = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false; + var clientId = this.getClientId(); + var baseUrl = OAuth2AuthorizationUrl(this.domain); + + if (!clientId) { + throw new Error('A client id is required. You can set the client id using .setClientId().'); + } + + if (authType !== 'code' && !redirectUri) { + throw new Error('A redirect uri is required.'); + } + + if (!GrantTypes.includes(authType)) { + throw new Error('Authorization type must be code or token'); + } + + if (tokenAccessType && !TokenAccessTypes.includes(tokenAccessType)) { + throw new Error('Token Access Type must be legacy, offline, or online'); + } + + if (scope && !(scope instanceof Array)) { + throw new Error('Scope must be an array of strings'); + } + + if (!IncludeGrantedScopes.includes(includeGrantedScopes)) { + throw new Error('includeGrantedScopes must be none, user, or team'); + } + + var authUrl; + + if (authType === 'code') { + authUrl = "".concat(baseUrl, "?response_type=code&client_id=").concat(clientId); + } else { + authUrl = "".concat(baseUrl, "?response_type=token&client_id=").concat(clientId); + } + + if (redirectUri) { + authUrl += "&redirect_uri=".concat(redirectUri); + } + + if (state) { + authUrl += "&state=".concat(state); + } + + if (tokenAccessType) { + authUrl += "&token_access_type=".concat(tokenAccessType); + } + + if (scope) { + authUrl += "&scope=".concat(scope.join(' ')); + } + + if (includeGrantedScopes !== 'none') { + authUrl += "&include_granted_scopes=".concat(includeGrantedScopes); + } + + if (usePKCE) { + return this.generatePKCECodes().then(function () { + authUrl += '&code_challenge_method=S256'; + authUrl += "&code_challenge=".concat(_this2.codeChallenge); + return authUrl; + }); + } + + return Promise.resolve(authUrl); + } + /** + * Get an OAuth2 access token from an OAuth2 Code. + * @arg {String} redirectUri - A URL to redirect the user to after + * authenticating. This must be added to your app through the admin interface. + * @arg {String} code - An OAuth2 code. + * @returns {Object} An object containing the token and related info (if applicable) + */ + + }, { + key: "getAccessTokenFromCode", + value: function getAccessTokenFromCode(redirectUri, code) { + var clientId = this.getClientId(); + var clientSecret = this.getClientSecret(); + + if (!clientId) { + throw new Error('A client id is required. You can set the client id using .setClientId().'); + } + + var path = OAuth2TokenUrl(this.domain, this.domainDelimiter); + path += '?grant_type=authorization_code'; + path += "&code=".concat(code); + path += "&client_id=".concat(clientId); + + if (clientSecret) { + path += "&client_secret=".concat(clientSecret); + } else { + if (!this.codeVerifier) { + throw new Error('You must use PKCE when generating the authorization URL to not include a client secret'); + } + + path += "&code_verifier=".concat(this.codeVerifier); + } + + if (redirectUri) { + path += "&redirect_uri=".concat(redirectUri); + } + + var fetchOptions = { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }; + return this.fetch(path, fetchOptions).then(function (res) { + return parseResponse(res); + }); + } + /** + * Checks if a token is needed, can be refreshed and if the token is expired. + * If so, attempts to refresh access token + * @returns {Promise<*>} + */ + + }, { + key: "checkAndRefreshAccessToken", + value: function checkAndRefreshAccessToken() { + var canRefresh = this.getRefreshToken() && this.getClientId(); + var needsRefresh = !this.getAccessTokenExpiresAt() || new Date(Date.now() + TokenExpirationBuffer) >= this.getAccessTokenExpiresAt(); + var needsToken = !this.getAccessToken(); + + if ((needsRefresh || needsToken) && canRefresh) { + return this.refreshAccessToken(); + } + + return Promise.resolve(); + } + /** + * Refreshes the access token using the refresh token, if available + * @arg {Array} scope - a subset of scopes from the original + * refresh to acquire with an access token + * @returns {Promise<*>} + */ + + }, { + key: "refreshAccessToken", + value: function refreshAccessToken() { + var _this3 = this; + + var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + var clientId = this.getClientId(); + var clientSecret = this.getClientSecret(); + + if (!clientId) { + throw new Error('A client id is required. You can set the client id using .setClientId().'); + } + + if (scope && !(scope instanceof Array)) { + throw new Error('Scope must be an array of strings'); + } + + var refreshUrl = OAuth2TokenUrl(this.domain, this.domainDelimiter); + var fetchOptions = { + headers: { + 'Content-Type': 'application/json' + }, + method: 'POST' + }; + + if (this.dataOnBody) { + var body = { + grant_type: 'refresh_token', + client_id: clientId, + refresh_token: this.getRefreshToken() + }; + + if (clientSecret) { + body.client_secret = clientSecret; + } + + if (scope) { + body.scope = scope.join(' '); + } + + fetchOptions.body = body; + } else { + refreshUrl += "?grant_type=refresh_token&refresh_token=".concat(this.getRefreshToken()); + refreshUrl += "&client_id=".concat(clientId); + + if (clientSecret) { + refreshUrl += "&client_secret=".concat(clientSecret); + } + + if (scope) { + refreshUrl += "&scope=".concat(scope.join(' ')); + } + } + + return this.fetch(refreshUrl, fetchOptions).then(function (res) { + return parseResponse(res); + }).then(function (res) { + _this3.setAccessToken(res.result.access_token); + + _this3.setAccessTokenExpiresAt(getTokenExpiresAtDate(res.result.expires_in)); + }); + } + }]); + + return DropboxAuth; +}(); + +export { DropboxAuth as default }; \ No newline at end of file diff --git a/node_modules/tr46/dropbox/es/src/constants.js b/node_modules/tr46/dropbox/es/src/constants.js new file mode 100644 index 0000000000000000000000000000000000000000..c7f686f352e11bf4932d141b5dd29b506c8907e7 --- /dev/null +++ b/node_modules/tr46/dropbox/es/src/constants.js @@ -0,0 +1,15 @@ +export var RPC = 'rpc'; +export var UPLOAD = 'upload'; +export var DOWNLOAD = 'download'; +export var APP_AUTH = 'app'; +export var USER_AUTH = 'user'; +export var TEAM_AUTH = 'team'; +export var NO_AUTH = 'noauth'; +export var COOKIE = 'cookie'; +export var DEFAULT_API_DOMAIN = 'dropboxapi.com'; +export var DEFAULT_DOMAIN = 'dropbox.com'; +export var TEST_DOMAIN_MAPPINGS = { + api: 'api', + notify: 'bolt', + content: 'api-content' +}; \ No newline at end of file diff --git a/node_modules/tr46/dropbox/es/src/dropbox.js b/node_modules/tr46/dropbox/es/src/dropbox.js new file mode 100644 index 0000000000000000000000000000000000000000..f71af5597031d464793f33106b3f00a5909749ad --- /dev/null +++ b/node_modules/tr46/dropbox/es/src/dropbox.js @@ -0,0 +1,235 @@ +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +import { UPLOAD, DOWNLOAD, RPC, APP_AUTH, TEAM_AUTH, USER_AUTH, NO_AUTH, COOKIE } from './constants.js'; +import { routes } from '../lib/routes.js'; +import DropboxAuth from './auth.js'; +import { baseApiUrl, httpHeaderSafeJson } from './utils.js'; +import { parseDownloadResponse, parseResponse } from './response.js'; +var b64 = typeof btoa === 'undefined' ? function (str) { + return Buffer.from(str).toString('base64'); +} : btoa; +/** + * @class Dropbox + * @classdesc The Dropbox SDK class that provides methods to read, write and + * create files or folders in a user or team's Dropbox. + * @arg {Object} options + * @arg {Function} [options.fetch] - fetch library for making requests. + * @arg {String} [options.selectUser] - Select user is only used for team functionality. + * It specifies which user the team access token should be acting as. + * @arg {String} [options.pathRoot] - root path to access other namespaces + * Use to access team folders for example + * @arg {String} [options.selectAdmin] - Select admin is only used by team functionality. + * It specifies which team admin the team access token should be acting as. + * @arg {DropboxAuth} [options.auth] - The DropboxAuth object used to authenticate requests. + * If this is set, the remaining parameters will be ignored. + * @arg {String} [options.accessToken] - An access token for making authenticated + * requests. + * @arg {Date} [options.accessTokenExpiresAt] - Date of the current access token's + * expiration (if available) + * @arg {String} [options.refreshToken] - A refresh token for retrieving access tokens + * @arg {String} [options.clientId] - The client id for your app. Used to create + * authentication URL. + * @arg {String} [options.clientSecret] - The client secret for your app. Used to create + * authentication URL and refresh access tokens. + * @arg {String} [options.domain] - A custom domain to use when making api requests. This + * should only be used for testing as scaffolding to avoid making network requests. + * @arg {String} [options.domainDelimiter] - A custom delimiter to use when separating domain from + * subdomain. This should only be used for testing as scaffolding. + * @arg {Object} [options.customHeaders] - An object (in the form of header: value) designed to set + * custom headers to use during a request. + */ + +var Dropbox = /*#__PURE__*/function () { + function Dropbox(options) { + _classCallCheck(this, Dropbox); + + options = options || {}; + + if (options.auth) { + this.auth = options.auth; + } else { + this.auth = new DropboxAuth(options); + } + + this.fetch = options.fetch || this.auth.fetch; + this.selectUser = options.selectUser; + this.selectAdmin = options.selectAdmin; + this.pathRoot = options.pathRoot; + this.domain = options.domain || this.auth.domain; + this.domainDelimiter = options.domainDelimiter || this.auth.domainDelimiter; + this.customHeaders = options.customHeaders || this.auth.customHeaders; + Object.assign(this, routes); + } + + _createClass(Dropbox, [{ + key: "request", + value: function request(path, args, auth, host, style) { + // scope is provided after "style", but unused in requests, so it's not in parameters + switch (style) { + case RPC: + return this.rpcRequest(path, args, auth, host); + + case DOWNLOAD: + return this.downloadRequest(path, args, auth, host); + + case UPLOAD: + return this.uploadRequest(path, args, auth, host); + + default: + throw new Error("Invalid request style: ".concat(style)); + } + } + }, { + key: "rpcRequest", + value: function rpcRequest(path, body, auth, host) { + var _this = this; + + return this.auth.checkAndRefreshAccessToken().then(function () { + var fetchOptions = { + method: 'POST', + body: body ? JSON.stringify(body) : null, + headers: {} + }; + + if (body) { + fetchOptions.headers['Content-Type'] = 'application/json'; + } + + _this.setAuthHeaders(auth, fetchOptions); + + _this.setCommonHeaders(fetchOptions); + + return fetchOptions; + }).then(function (fetchOptions) { + return _this.fetch(baseApiUrl(host, _this.domain, _this.domainDelimiter) + path, fetchOptions); + }).then(function (res) { + return parseResponse(res); + }); + } + }, { + key: "downloadRequest", + value: function downloadRequest(path, args, auth, host) { + var _this2 = this; + + return this.auth.checkAndRefreshAccessToken().then(function () { + var fetchOptions = { + method: 'POST', + headers: { + 'Dropbox-API-Arg': httpHeaderSafeJson(args) + } + }; + + _this2.setAuthHeaders(auth, fetchOptions); + + _this2.setCommonHeaders(fetchOptions); + + return fetchOptions; + }).then(function (fetchOptions) { + return _this2.fetch(baseApiUrl(host, _this2.domain, _this2.domainDelimiter) + path, fetchOptions); + }).then(function (res) { + return parseDownloadResponse(res); + }); + } + }, { + key: "uploadRequest", + value: function uploadRequest(path, args, auth, host) { + var _this3 = this; + + return this.auth.checkAndRefreshAccessToken().then(function () { + var contents = args.contents; + delete args.contents; + var fetchOptions = { + body: contents, + method: 'POST', + headers: { + 'Content-Type': 'application/octet-stream', + 'Dropbox-API-Arg': httpHeaderSafeJson(args) + } + }; + + _this3.setAuthHeaders(auth, fetchOptions); + + _this3.setCommonHeaders(fetchOptions); + + return fetchOptions; + }).then(function (fetchOptions) { + return _this3.fetch(baseApiUrl(host, _this3.domain, _this3.domainDelimiter) + path, fetchOptions); + }).then(function (res) { + return parseResponse(res); + }); + } + }, { + key: "setAuthHeaders", + value: function setAuthHeaders(auth, fetchOptions) { + // checks for multiauth and assigns auth based on priority to create header in switch case + if (auth.split(',').length > 1) { + var authTypes = auth.replace(' ', '').split(','); + + if (authTypes.includes(USER_AUTH) && this.auth.getAccessToken()) { + auth = USER_AUTH; + } else if (authTypes.includes(TEAM_AUTH) && this.auth.getAccessToken()) { + auth = TEAM_AUTH; + } else if (authTypes.includes(APP_AUTH)) { + auth = APP_AUTH; + } + } + + switch (auth) { + case APP_AUTH: + if (this.auth.clientId && this.auth.clientSecret) { + var authHeader = b64("".concat(this.auth.clientId, ":").concat(this.auth.clientSecret)); + fetchOptions.headers.Authorization = "Basic ".concat(authHeader); + } + + break; + + case TEAM_AUTH: + case USER_AUTH: + if (this.auth.getAccessToken()) { + fetchOptions.headers.Authorization = "Bearer ".concat(this.auth.getAccessToken()); + } + + break; + + case NO_AUTH: + case COOKIE: + break; + + default: + throw new Error("Unhandled auth type: ".concat(auth)); + } + } + }, { + key: "setCommonHeaders", + value: function setCommonHeaders(options) { + var _this4 = this; + + if (this.selectUser) { + options.headers['Dropbox-API-Select-User'] = this.selectUser; + } + + if (this.selectAdmin) { + options.headers['Dropbox-API-Select-Admin'] = this.selectAdmin; + } + + if (this.pathRoot) { + options.headers['Dropbox-API-Path-Root'] = this.pathRoot; + } + + if (this.customHeaders) { + var headerKeys = Object.keys(this.customHeaders); + headerKeys.forEach(function (header) { + options.headers[header] = _this4.customHeaders[header]; + }); + } + } + }]); + + return Dropbox; +}(); + +export { Dropbox as default }; \ No newline at end of file diff --git a/node_modules/tr46/dropbox/es/src/error.js b/node_modules/tr46/dropbox/es/src/error.js new file mode 100644 index 0000000000000000000000000000000000000000..4052ed8bcdf61fb33a770bb2029024936f16104a --- /dev/null +++ b/node_modules/tr46/dropbox/es/src/error.js @@ -0,0 +1,52 @@ +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } + +function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +/** + * The response class of HTTP errors from API calls using the Dropbox SDK. + * @class DropboxResponseError + * @classdesc The response class of HTTP errors from API calls using the Dropbox SDK. + * @arg {number} status - HTTP Status code of the call + * @arg {Object} headers - Headers returned from the call + * @arg {Object} error - Serialized Error of the call + */ +export var DropboxResponseError = /*#__PURE__*/function (_Error) { + _inherits(DropboxResponseError, _Error); + + var _super = _createSuper(DropboxResponseError); + + function DropboxResponseError(status, headers, error) { + var _this; + + _classCallCheck(this, DropboxResponseError); + + _this = _super.call(this, "Response failed with a ".concat(status, " code")); + _this.name = 'DropboxResponseError'; + _this.status = status; + _this.headers = headers; + _this.error = error; + return _this; + } + + return DropboxResponseError; +}( /*#__PURE__*/_wrapNativeSuper(Error)); \ No newline at end of file diff --git a/node_modules/tr46/dropbox/es/src/response.js b/node_modules/tr46/dropbox/es/src/response.js new file mode 100644 index 0000000000000000000000000000000000000000..3564cbd74b7e7bb7bc19c534b7062c86b953e885 --- /dev/null +++ b/node_modules/tr46/dropbox/es/src/response.js @@ -0,0 +1,70 @@ +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +import { isWindowOrWorker } from './utils.js'; +import { DropboxResponseError } from './error.js'; +export var DropboxResponse = function DropboxResponse(status, headers, result) { + _classCallCheck(this, DropboxResponse); + + this.status = status; + this.headers = headers; + this.result = result; +}; + +function throwAsError(res) { + return res.text().then(function (data) { + var errorObject; + + try { + errorObject = JSON.parse(data); + } catch (error) { + errorObject = data; + } + + throw new DropboxResponseError(res.status, res.headers, errorObject); + }); +} + +export function parseResponse(res) { + if (!res.ok) { + return throwAsError(res); + } + + return res.text().then(function (data) { + var responseObject; + + try { + responseObject = JSON.parse(data); + } catch (error) { + responseObject = data; + } + + return new DropboxResponse(res.status, res.headers, responseObject); + }); +} +export function parseDownloadResponse(res) { + if (!res.ok) { + return throwAsError(res); + } + + return new Promise(function (resolve) { + if (isWindowOrWorker()) { + res.blob().then(function (data) { + return resolve(data); + }); + } else { + res.buffer().then(function (data) { + return resolve(data); + }); + } + }).then(function (data) { + var result = JSON.parse(res.headers.get('dropbox-api-result')); + + if (isWindowOrWorker()) { + result.fileBlob = data; + } else { + result.fileBinary = data; + } + + return new DropboxResponse(res.status, res.headers, result); + }); +} \ No newline at end of file diff --git a/node_modules/tr46/dropbox/es/src/utils.js b/node_modules/tr46/dropbox/es/src/utils.js new file mode 100644 index 0000000000000000000000000000000000000000..348778a53bac56dcf07cca07f9bd05cea9a96ac2 --- /dev/null +++ b/node_modules/tr46/dropbox/es/src/utils.js @@ -0,0 +1,66 @@ +import { DEFAULT_API_DOMAIN, DEFAULT_DOMAIN, TEST_DOMAIN_MAPPINGS } from './constants'; + +function getSafeUnicode(c) { + var unicode = "000".concat(c.charCodeAt(0).toString(16)).slice(-4); + return "\\u".concat(unicode); +} + +export var baseApiUrl = function baseApiUrl(subdomain) { + var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_API_DOMAIN; + var domainDelimiter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.'; + + if (!domainDelimiter) { + return "https://".concat(domain, "/2/"); + } + + if (domain !== DEFAULT_API_DOMAIN && TEST_DOMAIN_MAPPINGS[subdomain] !== undefined) { + subdomain = TEST_DOMAIN_MAPPINGS[subdomain]; + domainDelimiter = '-'; + } + + return "https://".concat(subdomain).concat(domainDelimiter).concat(domain, "/2/"); +}; +export var OAuth2AuthorizationUrl = function OAuth2AuthorizationUrl() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_DOMAIN; + + if (domain !== DEFAULT_DOMAIN) { + domain = "meta-".concat(domain); + } + + return "https://".concat(domain, "/oauth2/authorize"); +}; +export var OAuth2TokenUrl = function OAuth2TokenUrl() { + var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_API_DOMAIN; + var domainDelimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '.'; + var subdomain = 'api'; + + if (domain !== DEFAULT_API_DOMAIN) { + subdomain = TEST_DOMAIN_MAPPINGS[subdomain]; + domainDelimiter = '-'; + } + + return "https://".concat(subdomain).concat(domainDelimiter).concat(domain, "/oauth2/token"); +}; // source https://www.dropboxforum.com/t5/API-support/HTTP-header-quot-Dropbox-API-Arg-quot-could-not-decode-input-as/m-p/173823/highlight/true#M6786 + +export function httpHeaderSafeJson(args) { + return JSON.stringify(args).replace(/[\u007f-\uffff]/g, getSafeUnicode); +} +export function getTokenExpiresAtDate(expiresIn) { + return new Date(Date.now() + expiresIn * 1000); +} +/* global WorkerGlobalScope */ + +export function isWindowOrWorker() { + return typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope // eslint-disable-line no-restricted-globals + || typeof module === 'undefined' || typeof window !== 'undefined'; +} +export function isBrowserEnv() { + return typeof window !== 'undefined'; +} +export function isWorkerEnv() { + return typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope; // eslint-disable-line no-restricted-globals +} +export function createBrowserSafeString(toBeConverted) { + var convertedString = toBeConverted.toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, ''); + return convertedString; +} \ No newline at end of file diff --git a/node_modules/tr46/dropbox/index.js b/node_modules/tr46/dropbox/index.js new file mode 100644 index 0000000000000000000000000000000000000000..b2e80c1dda091973c02f45d4ac9a3ee2685ce518 --- /dev/null +++ b/node_modules/tr46/dropbox/index.js @@ -0,0 +1,4 @@ +export { default as Dropbox } from './src/dropbox.js'; +export { default as DropboxAuth } from './src/auth.js'; +export { DropboxResponse } from './src/response.js'; +export { DropboxResponseError } from './src/error.js'; diff --git a/node_modules/tr46/dropbox/lib/routes.js b/node_modules/tr46/dropbox/lib/routes.js new file mode 100644 index 0000000000000000000000000000000000000000..2cdde50a9c6d5b26e1021669063457ab8c629a2c --- /dev/null +++ b/node_modules/tr46/dropbox/lib/routes.js @@ -0,0 +1,3783 @@ +// Auto-generated by Stone, do not modify. +var routes = {}; + +/** + * Sets a user's profile photo. + * Route attributes: + * scope: account_info.write + * @function Dropbox#accountSetProfilePhoto + * @arg {AccountSetProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.accountSetProfilePhoto = function (arg) { + return this.request('account/set_profile_photo', arg, 'user', 'api', 'rpc', 'account_info.write'); +}; + +/** + * Creates an OAuth 2.0 access token from the supplied OAuth 1.0 access token. + * @function Dropbox#authTokenFromOauth1 + * @arg {AuthTokenFromOAuth1Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.authTokenFromOauth1 = function (arg) { + return this.request('auth/token/from_oauth1', arg, 'app', 'api', 'rpc', null); +}; + +/** + * Disables the access token used to authenticate the call. If there is a + * corresponding refresh token for the access token, this disables that refresh + * token, as well as any other access tokens for that refresh token. + * @function Dropbox#authTokenRevoke + * @returns {Promise., DropboxResponseError.>} + */ +routes.authTokenRevoke = function () { + return this.request('auth/token/revoke', null, 'user', 'api', 'rpc', null); +}; + +/** + * This endpoint performs App Authentication, validating the supplied app key + * and secret, and returns the supplied string, to allow you to test your code + * and connection to the Dropbox API. It has no other effect. If you receive an + * HTTP 200 response with the supplied query, it indicates at least part of the + * Dropbox API infrastructure is working and that the app key and secret valid. + * @function Dropbox#checkApp + * @arg {CheckEchoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.checkApp = function (arg) { + return this.request('check/app', arg, 'app', 'api', 'rpc', null); +}; + +/** + * This endpoint performs User Authentication, validating the supplied access + * token, and returns the supplied string, to allow you to test your code and + * connection to the Dropbox API. It has no other effect. If you receive an HTTP + * 200 response with the supplied query, it indicates at least part of the + * Dropbox API infrastructure is working and that the access token is valid. + * Route attributes: + * scope: account_info.read + * @function Dropbox#checkUser + * @arg {CheckEchoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.checkUser = function (arg) { + return this.request('check/user', arg, 'user', 'api', 'rpc', 'account_info.read'); +}; + +/** + * Removes all manually added contacts. You'll still keep contacts who are on + * your team or who you imported. New contacts will be added when you share. + * Route attributes: + * scope: contacts.write + * @function Dropbox#contactsDeleteManualContacts + * @returns {Promise., DropboxResponseError.>} + */ +routes.contactsDeleteManualContacts = function () { + return this.request('contacts/delete_manual_contacts', null, 'user', 'api', 'rpc', 'contacts.write'); +}; + +/** + * Removes manually added contacts from the given list. + * Route attributes: + * scope: contacts.write + * @function Dropbox#contactsDeleteManualContactsBatch + * @arg {ContactsDeleteManualContactsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.contactsDeleteManualContactsBatch = function (arg) { + return this.request('contacts/delete_manual_contacts_batch', arg, 'user', 'api', 'rpc', 'contacts.write'); +}; + +/** + * Add property groups to a Dropbox file. See templates/add_for_user or + * templates/add_for_team to create new templates. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesPropertiesAdd + * @arg {FilePropertiesAddPropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filePropertiesPropertiesAdd = function (arg) { + return this.request('file_properties/properties/add', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; + +/** + * Overwrite property groups associated with a file. This endpoint should be + * used instead of properties/update when property groups are being updated via + * a "snapshot" instead of via a "delta". In other words, this endpoint will + * delete all omitted fields from a property group, whereas properties/update + * will only delete fields that are explicitly marked for deletion. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesPropertiesOverwrite + * @arg {FilePropertiesOverwritePropertyGroupArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filePropertiesPropertiesOverwrite = function (arg) { + return this.request('file_properties/properties/overwrite', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; + +/** + * Permanently removes the specified property group from the file. To remove + * specific property field key value pairs, see properties/update. To update a + * template, see templates/update_for_user or templates/update_for_team. To + * remove a template, see templates/remove_for_user or + * templates/remove_for_team. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesPropertiesRemove + * @arg {FilePropertiesRemovePropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filePropertiesPropertiesRemove = function (arg) { + return this.request('file_properties/properties/remove', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; + +/** + * Search across property templates for particular property field values. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filePropertiesPropertiesSearch + * @arg {FilePropertiesPropertiesSearchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filePropertiesPropertiesSearch = function (arg) { + return this.request('file_properties/properties/search', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; + +/** + * Once a cursor has been retrieved from properties/search, use this to paginate + * through all search results. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filePropertiesPropertiesSearchContinue + * @arg {FilePropertiesPropertiesSearchContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filePropertiesPropertiesSearchContinue = function (arg) { + return this.request('file_properties/properties/search/continue', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; + +/** + * Add, update or remove properties associated with the supplied file and + * templates. This endpoint should be used instead of properties/overwrite when + * property groups are being updated via a "delta" instead of via a "snapshot" . + * In other words, this endpoint will not delete any omitted fields from a + * property group, whereas properties/overwrite will delete any fields that are + * omitted from a property group. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesPropertiesUpdate + * @arg {FilePropertiesUpdatePropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filePropertiesPropertiesUpdate = function (arg) { + return this.request('file_properties/properties/update', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; + +/** + * Add a template associated with a team. See properties/add to add properties + * to a file or folder. Note: this endpoint will create team-owned templates. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesAddForTeam + * @arg {FilePropertiesAddTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filePropertiesTemplatesAddForTeam = function (arg) { + return this.request('file_properties/templates/add_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; + +/** + * Add a template associated with a user. See properties/add to add properties + * to a file. This endpoint can't be called on a team member or admin's behalf. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesTemplatesAddForUser + * @arg {FilePropertiesAddTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filePropertiesTemplatesAddForUser = function (arg) { + return this.request('file_properties/templates/add_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; + +/** + * Get the schema for a specified template. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesGetForTeam + * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filePropertiesTemplatesGetForTeam = function (arg) { + return this.request('file_properties/templates/get_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; + +/** + * Get the schema for a specified template. This endpoint can't be called on a + * team member or admin's behalf. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filePropertiesTemplatesGetForUser + * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filePropertiesTemplatesGetForUser = function (arg) { + return this.request('file_properties/templates/get_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; + +/** + * Get the template identifiers for a team. To get the schema of each template + * use templates/get_for_team. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesListForTeam + * @returns {Promise., DropboxResponseError.>} + */ +routes.filePropertiesTemplatesListForTeam = function () { + return this.request('file_properties/templates/list_for_team', null, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; + +/** + * Get the template identifiers for a team. To get the schema of each template + * use templates/get_for_user. This endpoint can't be called on a team member or + * admin's behalf. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filePropertiesTemplatesListForUser + * @returns {Promise., DropboxResponseError.>} + */ +routes.filePropertiesTemplatesListForUser = function () { + return this.request('file_properties/templates/list_for_user', null, 'user', 'api', 'rpc', 'files.metadata.read'); +}; + +/** + * Permanently removes the specified template created from + * templates/add_for_user. All properties associated with the template will also + * be removed. This action cannot be undone. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesRemoveForTeam + * @arg {FilePropertiesRemoveTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filePropertiesTemplatesRemoveForTeam = function (arg) { + return this.request('file_properties/templates/remove_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; + +/** + * Permanently removes the specified template created from + * templates/add_for_user. All properties associated with the template will also + * be removed. This action cannot be undone. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesTemplatesRemoveForUser + * @arg {FilePropertiesRemoveTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filePropertiesTemplatesRemoveForUser = function (arg) { + return this.request('file_properties/templates/remove_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; + +/** + * Update a template associated with a team. This route can update the template + * name, the template description and add optional properties to templates. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#filePropertiesTemplatesUpdateForTeam + * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filePropertiesTemplatesUpdateForTeam = function (arg) { + return this.request('file_properties/templates/update_for_team', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; + +/** + * Update a template associated with a user. This route can update the template + * name, the template description and add optional properties to templates. This + * endpoint can't be called on a team member or admin's behalf. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filePropertiesTemplatesUpdateForUser + * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filePropertiesTemplatesUpdateForUser = function (arg) { + return this.request('file_properties/templates/update_for_user', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; + +/** + * Returns the total number of file requests owned by this user. Includes both + * open and closed file requests. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsCount + * @returns {Promise., DropboxResponseError.>} + */ +routes.fileRequestsCount = function () { + return this.request('file_requests/count', null, 'user', 'api', 'rpc', 'file_requests.read'); +}; + +/** + * Creates a file request for this user. + * Route attributes: + * scope: file_requests.write + * @function Dropbox#fileRequestsCreate + * @arg {FileRequestsCreateFileRequestArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.fileRequestsCreate = function (arg) { + return this.request('file_requests/create', arg, 'user', 'api', 'rpc', 'file_requests.write'); +}; + +/** + * Delete a batch of closed file requests. + * Route attributes: + * scope: file_requests.write + * @function Dropbox#fileRequestsDelete + * @arg {FileRequestsDeleteFileRequestArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.fileRequestsDelete = function (arg) { + return this.request('file_requests/delete', arg, 'user', 'api', 'rpc', 'file_requests.write'); +}; + +/** + * Delete all closed file requests owned by this user. + * Route attributes: + * scope: file_requests.write + * @function Dropbox#fileRequestsDeleteAllClosed + * @returns {Promise., DropboxResponseError.>} + */ +routes.fileRequestsDeleteAllClosed = function () { + return this.request('file_requests/delete_all_closed', null, 'user', 'api', 'rpc', 'file_requests.write'); +}; + +/** + * Returns the specified file request. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsGet + * @arg {FileRequestsGetFileRequestArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.fileRequestsGet = function (arg) { + return this.request('file_requests/get', arg, 'user', 'api', 'rpc', 'file_requests.read'); +}; + +/** + * Returns a list of file requests owned by this user. For apps with the app + * folder permission, this will only return file requests with destinations in + * the app folder. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsListV2 + * @arg {FileRequestsListFileRequestsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.fileRequestsListV2 = function (arg) { + return this.request('file_requests/list_v2', arg, 'user', 'api', 'rpc', 'file_requests.read'); +}; + +/** + * Returns a list of file requests owned by this user. For apps with the app + * folder permission, this will only return file requests with destinations in + * the app folder. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsList + * @returns {Promise., DropboxResponseError.>} + */ +routes.fileRequestsList = function () { + return this.request('file_requests/list', null, 'user', 'api', 'rpc', 'file_requests.read'); +}; + +/** + * Once a cursor has been retrieved from list_v2, use this to paginate through + * all file requests. The cursor must come from a previous call to list_v2 or + * list/continue. + * Route attributes: + * scope: file_requests.read + * @function Dropbox#fileRequestsListContinue + * @arg {FileRequestsListFileRequestsContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.fileRequestsListContinue = function (arg) { + return this.request('file_requests/list/continue', arg, 'user', 'api', 'rpc', 'file_requests.read'); +}; + +/** + * Update a file request. + * Route attributes: + * scope: file_requests.write + * @function Dropbox#fileRequestsUpdate + * @arg {FileRequestsUpdateFileRequestArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.fileRequestsUpdate = function (arg) { + return this.request('file_requests/update', arg, 'user', 'api', 'rpc', 'file_requests.write'); +}; + +/** + * Returns the metadata for a file or folder. This is an alpha endpoint + * compatible with the properties API. Note: Metadata for the root folder is + * unsupported. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesAlphaGetMetadata + * @deprecated + * @arg {FilesAlphaGetMetadataArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesAlphaGetMetadata = function (arg) { + return this.request('files/alpha/get_metadata', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; + +/** + * Create a new file with the contents provided in the request. Note that the + * behavior of this alpha endpoint is unstable and subject to change. Do not use + * this to upload a file larger than 150 MB. Instead, create an upload session + * with upload_session/start. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesAlphaUpload + * @deprecated + * @arg {FilesUploadArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesAlphaUpload = function (arg) { + return this.request('files/alpha/upload', arg, 'user', 'content', 'upload', 'files.content.write'); +}; + +/** + * Copy a file or folder to a different location in the user's Dropbox. If the + * source path is a folder all its contents will be copied. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyV2 + * @arg {FilesRelocationArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesCopyV2 = function (arg) { + return this.request('files/copy_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Copy a file or folder to a different location in the user's Dropbox. If the + * source path is a folder all its contents will be copied. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopy + * @deprecated + * @arg {FilesRelocationArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesCopy = function (arg) { + return this.request('files/copy', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Copy multiple files or folders to different locations at once in the user's + * Dropbox. This route will replace copy_batch. The main difference is this + * route will return status for each entry, while copy_batch raises failure if + * any entry fails. This route will either finish synchronously, or return a job + * ID and do the async copy job in background. Please use copy_batch/check_v2 to + * check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyBatchV2 + * @arg {Object} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesCopyBatchV2 = function (arg) { + return this.request('files/copy_batch_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Copy multiple files or folders to different locations at once in the user's + * Dropbox. This route will return job ID immediately and do the async copy job + * in background. Please use copy_batch/check to check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyBatch + * @deprecated + * @arg {FilesRelocationBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesCopyBatch = function (arg) { + return this.request('files/copy_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Returns the status of an asynchronous job for copy_batch_v2. It returns list + * of results for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyBatchCheckV2 + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesCopyBatchCheckV2 = function (arg) { + return this.request('files/copy_batch/check_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Returns the status of an asynchronous job for copy_batch. If success, it + * returns list of results for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyBatchCheck + * @deprecated + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesCopyBatchCheck = function (arg) { + return this.request('files/copy_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Get a copy reference to a file or folder. This reference string can be used + * to save that file or folder to another user's Dropbox by passing it to + * copy_reference/save. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyReferenceGet + * @arg {FilesGetCopyReferenceArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesCopyReferenceGet = function (arg) { + return this.request('files/copy_reference/get', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Save a copy reference returned by copy_reference/get to the user's Dropbox. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCopyReferenceSave + * @arg {FilesSaveCopyReferenceArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesCopyReferenceSave = function (arg) { + return this.request('files/copy_reference/save', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Create a folder at a given path. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCreateFolderV2 + * @arg {FilesCreateFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesCreateFolderV2 = function (arg) { + return this.request('files/create_folder_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Create a folder at a given path. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCreateFolder + * @deprecated + * @arg {FilesCreateFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesCreateFolder = function (arg) { + return this.request('files/create_folder', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Create multiple folders at once. This route is asynchronous for large + * batches, which returns a job ID immediately and runs the create folder batch + * asynchronously. Otherwise, creates the folders and returns the result + * synchronously for smaller inputs. You can force asynchronous behaviour by + * using the CreateFolderBatchArg.force_async flag. Use + * create_folder_batch/check to check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCreateFolderBatch + * @arg {FilesCreateFolderBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesCreateFolderBatch = function (arg) { + return this.request('files/create_folder_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Returns the status of an asynchronous job for create_folder_batch. If + * success, it returns list of result for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesCreateFolderBatchCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesCreateFolderBatchCheck = function (arg) { + return this.request('files/create_folder_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Delete the file or folder at a given path. If the path is a folder, all its + * contents will be deleted too. A successful response indicates that the file + * or folder was deleted. The returned metadata will be the corresponding + * FileMetadata or FolderMetadata for the item at time of deletion, and not a + * DeletedMetadata object. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesDeleteV2 + * @arg {FilesDeleteArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesDeleteV2 = function (arg) { + return this.request('files/delete_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Delete the file or folder at a given path. If the path is a folder, all its + * contents will be deleted too. A successful response indicates that the file + * or folder was deleted. The returned metadata will be the corresponding + * FileMetadata or FolderMetadata for the item at time of deletion, and not a + * DeletedMetadata object. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesDelete + * @deprecated + * @arg {FilesDeleteArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesDelete = function (arg) { + return this.request('files/delete', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Delete multiple files/folders at once. This route is asynchronous, which + * returns a job ID immediately and runs the delete batch asynchronously. Use + * delete_batch/check to check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesDeleteBatch + * @arg {FilesDeleteBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesDeleteBatch = function (arg) { + return this.request('files/delete_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Returns the status of an asynchronous job for delete_batch. If success, it + * returns list of result for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesDeleteBatchCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesDeleteBatchCheck = function (arg) { + return this.request('files/delete_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Download a file from a user's Dropbox. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesDownload + * @arg {FilesDownloadArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesDownload = function (arg) { + return this.request('files/download', arg, 'user', 'content', 'download', 'files.content.read'); +}; + +/** + * Download a folder from the user's Dropbox, as a zip file. The folder must be + * less than 20 GB in size and any single file within must be less than 4 GB in + * size. The resulting zip must have fewer than 10,000 total file and folder + * entries, including the top level folder. The input cannot be a single file. + * Note: this endpoint does not support HTTP range requests. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesDownloadZip + * @arg {FilesDownloadZipArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesDownloadZip = function (arg) { + return this.request('files/download_zip', arg, 'user', 'content', 'download', 'files.content.read'); +}; + +/** + * Export a file from a user's Dropbox. This route only supports exporting files + * that cannot be downloaded directly and whose ExportResult.file_metadata has + * ExportInfo.export_as populated. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesExport + * @arg {FilesExportArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesExport = function (arg) { + return this.request('files/export', arg, 'user', 'content', 'download', 'files.content.read'); +}; + +/** + * Return the lock metadata for the given list of paths. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetFileLockBatch + * @arg {FilesLockFileBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesGetFileLockBatch = function (arg) { + return this.request('files/get_file_lock_batch', arg, 'user', 'api', 'rpc', 'files.content.read'); +}; + +/** + * Returns the metadata for a file or folder. Note: Metadata for the root folder + * is unsupported. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesGetMetadata + * @arg {FilesGetMetadataArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesGetMetadata = function (arg) { + return this.request('files/get_metadata', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; + +/** + * Get a preview for a file. Currently, PDF previews are generated for files + * with the following extensions: .ai, .doc, .docm, .docx, .eps, .gdoc, + * .gslides, .odp, .odt, .pps, .ppsm, .ppsx, .ppt, .pptm, .pptx, .rtf. HTML + * previews are generated for files with the following extensions: .csv, .ods, + * .xls, .xlsm, .gsheet, .xlsx. Other formats will return an unsupported + * extension error. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetPreview + * @arg {FilesPreviewArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesGetPreview = function (arg) { + return this.request('files/get_preview', arg, 'user', 'content', 'download', 'files.content.read'); +}; + +/** + * Get a temporary link to stream content of a file. This link will expire in + * four hours and afterwards you will get 410 Gone. This URL should not be used + * to display content directly in the browser. The Content-Type of the link is + * determined automatically by the file's mime type. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetTemporaryLink + * @arg {FilesGetTemporaryLinkArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesGetTemporaryLink = function (arg) { + return this.request('files/get_temporary_link', arg, 'user', 'api', 'rpc', 'files.content.read'); +}; + +/** + * Get a one-time use temporary upload link to upload a file to a Dropbox + * location. This endpoint acts as a delayed upload. The returned temporary + * upload link may be used to make a POST request with the data to be uploaded. + * The upload will then be perfomed with the CommitInfo previously provided to + * get_temporary_upload_link but evaluated only upon consumption. Hence, errors + * stemming from invalid CommitInfo with respect to the state of the user's + * Dropbox will only be communicated at consumption time. Additionally, these + * errors are surfaced as generic HTTP 409 Conflict responses, potentially + * hiding issue details. The maximum temporary upload link duration is 4 hours. + * Upon consumption or expiration, a new link will have to be generated. + * Multiple links may exist for a specific upload path at any given time. The + * POST request on the temporary upload link must have its Content-Type set to + * "application/octet-stream". Example temporary upload link consumption + * request: curl -X POST + * https://content.dropboxapi.com/apitul/1/bNi2uIYF51cVBND --header + * "Content-Type: application/octet-stream" --data-binary @local_file.txt A + * successful temporary upload link consumption request returns the content hash + * of the uploaded data in JSON format. Example successful temporary upload + * link consumption response: {"content-hash": + * "599d71033d700ac892a0e48fa61b125d2f5994"} An unsuccessful temporary upload + * link consumption request returns any of the following status codes: HTTP 400 + * Bad Request: Content-Type is not one of application/octet-stream and + * text/plain or request is invalid. HTTP 409 Conflict: The temporary upload + * link does not exist or is currently unavailable, the upload failed, or + * another error happened. HTTP 410 Gone: The temporary upload link is expired + * or consumed. Example unsuccessful temporary upload link consumption + * response: Temporary upload link has been recently consumed. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesGetTemporaryUploadLink + * @arg {FilesGetTemporaryUploadLinkArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesGetTemporaryUploadLink = function (arg) { + return this.request('files/get_temporary_upload_link', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Get a thumbnail for an image. This method currently supports files with the + * following file extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp. + * Photos that are larger than 20MB in size won't be converted to a thumbnail. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetThumbnail + * @arg {FilesThumbnailArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesGetThumbnail = function (arg) { + return this.request('files/get_thumbnail', arg, 'user', 'content', 'download', 'files.content.read'); +}; + +/** + * Get a thumbnail for an image. This method currently supports files with the + * following file extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp. + * Photos that are larger than 20MB in size won't be converted to a thumbnail. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetThumbnailV2 + * @arg {FilesThumbnailV2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesGetThumbnailV2 = function (arg) { + return this.request('files/get_thumbnail_v2', arg, 'app, user', 'content', 'download', 'files.content.read'); +}; + +/** + * Get thumbnails for a list of images. We allow up to 25 thumbnails in a single + * batch. This method currently supports files with the following file + * extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp. Photos that + * are larger than 20MB in size won't be converted to a thumbnail. + * Route attributes: + * scope: files.content.read + * @function Dropbox#filesGetThumbnailBatch + * @arg {FilesGetThumbnailBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesGetThumbnailBatch = function (arg) { + return this.request('files/get_thumbnail_batch', arg, 'user', 'content', 'rpc', 'files.content.read'); +}; + +/** + * Starts returning the contents of a folder. If the result's + * ListFolderResult.has_more field is true, call list_folder/continue with the + * returned ListFolderResult.cursor to retrieve more entries. If you're using + * ListFolderArg.recursive set to true to keep a local cache of the contents of + * a Dropbox account, iterate through each entry in order and process them as + * follows to keep your local state in sync: For each FileMetadata, store the + * new entry at the given path in your local state. If the required parent + * folders don't exist yet, create them. If there's already something else at + * the given path, replace it and remove all its children. For each + * FolderMetadata, store the new entry at the given path in your local state. If + * the required parent folders don't exist yet, create them. If there's already + * something else at the given path, replace it but leave the children as they + * are. Check the new entry's FolderSharingInfo.read_only and set all its + * children's read-only statuses to match. For each DeletedMetadata, if your + * local state has something at the given path, remove it and all its children. + * If there's nothing at the given path, ignore this entry. Note: + * auth.RateLimitError may be returned if multiple list_folder or + * list_folder/continue calls with same parameters are made simultaneously by + * same API app for same user. If your app implements retry logic, please hold + * off the retry until the previous request finishes. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListFolder + * @arg {FilesListFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesListFolder = function (arg) { + return this.request('files/list_folder', arg, 'app, user', 'api', 'rpc', 'files.metadata.read'); +}; + +/** + * Once a cursor has been retrieved from list_folder, use this to paginate + * through all files and retrieve updates to the folder, following the same + * rules as documented for list_folder. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListFolderContinue + * @arg {FilesListFolderContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesListFolderContinue = function (arg) { + return this.request('files/list_folder/continue', arg, 'app, user', 'api', 'rpc', 'files.metadata.read'); +}; + +/** + * A way to quickly get a cursor for the folder's state. Unlike list_folder, + * list_folder/get_latest_cursor doesn't return any entries. This endpoint is + * for app which only needs to know about new files and modifications and + * doesn't need to know about files that already exist in Dropbox. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListFolderGetLatestCursor + * @arg {FilesListFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesListFolderGetLatestCursor = function (arg) { + return this.request('files/list_folder/get_latest_cursor', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; + +/** + * A longpoll endpoint to wait for changes on an account. In conjunction with + * list_folder/continue, this call gives you a low-latency way to monitor an + * account for file changes. The connection will block until there are changes + * available or a timeout occurs. This endpoint is useful mostly for client-side + * apps. If you're looking for server-side notifications, check out our webhooks + * documentation https://www.dropbox.com/developers/reference/webhooks. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListFolderLongpoll + * @arg {FilesListFolderLongpollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesListFolderLongpoll = function (arg) { + return this.request('files/list_folder/longpoll', arg, 'noauth', 'notify', 'rpc', 'files.metadata.read'); +}; + +/** + * Returns revisions for files based on a file path or a file id. The file path + * or file id is identified from the latest file entry at the given file path or + * id. This end point allows your app to query either by file path or file id by + * setting the mode parameter appropriately. In the ListRevisionsMode.path + * (default) mode, all revisions at the same file path as the latest file entry + * are returned. If revisions with the same file id are desired, then mode must + * be set to ListRevisionsMode.id. The ListRevisionsMode.id mode is useful to + * retrieve revisions for a given file across moves or renames. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesListRevisions + * @arg {FilesListRevisionsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesListRevisions = function (arg) { + return this.request('files/list_revisions', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; + +/** + * Lock the files at the given paths. A locked file will be writable only by the + * lock holder. A successful response indicates that the file has been locked. + * Returns a list of the locked file paths and their metadata after this + * operation. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesLockFileBatch + * @arg {FilesLockFileBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesLockFileBatch = function (arg) { + return this.request('files/lock_file_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Move a file or folder to a different location in the user's Dropbox. If the + * source path is a folder all its contents will be moved. Note that we do not + * currently support case-only renaming. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveV2 + * @arg {FilesRelocationArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesMoveV2 = function (arg) { + return this.request('files/move_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Move a file or folder to a different location in the user's Dropbox. If the + * source path is a folder all its contents will be moved. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMove + * @deprecated + * @arg {FilesRelocationArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesMove = function (arg) { + return this.request('files/move', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Move multiple files or folders to different locations at once in the user's + * Dropbox. Note that we do not currently support case-only renaming. This route + * will replace move_batch. The main difference is this route will return status + * for each entry, while move_batch raises failure if any entry fails. This + * route will either finish synchronously, or return a job ID and do the async + * move job in background. Please use move_batch/check_v2 to check the job + * status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveBatchV2 + * @arg {FilesMoveBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesMoveBatchV2 = function (arg) { + return this.request('files/move_batch_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Move multiple files or folders to different locations at once in the user's + * Dropbox. This route will return job ID immediately and do the async moving + * job in background. Please use move_batch/check to check the job status. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveBatch + * @deprecated + * @arg {FilesRelocationBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesMoveBatch = function (arg) { + return this.request('files/move_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Returns the status of an asynchronous job for move_batch_v2. It returns list + * of results for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveBatchCheckV2 + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesMoveBatchCheckV2 = function (arg) { + return this.request('files/move_batch/check_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Returns the status of an asynchronous job for move_batch. If success, it + * returns list of results for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesMoveBatchCheck + * @deprecated + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesMoveBatchCheck = function (arg) { + return this.request('files/move_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Creates a new Paper doc with the provided content. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesPaperCreate + * @arg {FilesPaperCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesPaperCreate = function (arg) { + return this.request('files/paper/create', arg, 'user', 'api', 'upload', 'files.content.write'); +}; + +/** + * Updates an existing Paper doc with the provided content. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesPaperUpdate + * @arg {FilesPaperUpdateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesPaperUpdate = function (arg) { + return this.request('files/paper/update', arg, 'user', 'api', 'upload', 'files.content.write'); +}; + +/** + * Permanently delete the file or folder at a given path (see + * https://www.dropbox.com/en/help/40). If the given file or folder is not yet + * deleted, this route will first delete it. It is possible for this route to + * successfully delete, then fail to permanently delete. Note: This endpoint is + * only available for Dropbox Business apps. + * Route attributes: + * scope: files.permanent_delete + * @function Dropbox#filesPermanentlyDelete + * @arg {FilesDeleteArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesPermanentlyDelete = function (arg) { + return this.request('files/permanently_delete', arg, 'user', 'api', 'rpc', 'files.permanent_delete'); +}; + +/** + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesPropertiesAdd + * @deprecated + * @arg {FilePropertiesAddPropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesPropertiesAdd = function (arg) { + return this.request('files/properties/add', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; + +/** + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesPropertiesOverwrite + * @deprecated + * @arg {FilePropertiesOverwritePropertyGroupArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesPropertiesOverwrite = function (arg) { + return this.request('files/properties/overwrite', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; + +/** + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesPropertiesRemove + * @deprecated + * @arg {FilePropertiesRemovePropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesPropertiesRemove = function (arg) { + return this.request('files/properties/remove', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; + +/** + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesPropertiesTemplateGet + * @deprecated + * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesPropertiesTemplateGet = function (arg) { + return this.request('files/properties/template/get', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; + +/** + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesPropertiesTemplateList + * @deprecated + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesPropertiesTemplateList = function () { + return this.request('files/properties/template/list', null, 'user', 'api', 'rpc', 'files.metadata.read'); +}; + +/** + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesPropertiesUpdate + * @deprecated + * @arg {FilePropertiesUpdatePropertiesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesPropertiesUpdate = function (arg) { + return this.request('files/properties/update', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; + +/** + * Restore a specific revision of a file to the given path. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesRestore + * @arg {FilesRestoreArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesRestore = function (arg) { + return this.request('files/restore', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Save the data from a specified URL into a file in user's Dropbox. Note that + * the transfer from the URL must complete within 5 minutes, or the operation + * will time out and the job will fail. If the given path already exists, the + * file will be renamed to avoid the conflict (e.g. myfile (1).txt). + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesSaveUrl + * @arg {FilesSaveUrlArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesSaveUrl = function (arg) { + return this.request('files/save_url', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Check the status of a save_url job. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesSaveUrlCheckJobStatus + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesSaveUrlCheckJobStatus = function (arg) { + return this.request('files/save_url/check_job_status', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Searches for files and folders. Note: Recent changes will be reflected in + * search results within a few seconds and older revisions of existing files may + * still match your query for up to a few days. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesSearch + * @deprecated + * @arg {FilesSearchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesSearch = function (arg) { + return this.request('files/search', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; + +/** + * Searches for files and folders. Note: search_v2 along with search/continue_v2 + * can only be used to retrieve a maximum of 10,000 matches. Recent changes may + * not immediately be reflected in search results due to a short delay in + * indexing. Duplicate results may be returned across pages. Some results may + * not be returned. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesSearchV2 + * @arg {FilesSearchV2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesSearchV2 = function (arg) { + return this.request('files/search_v2', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; + +/** + * Fetches the next page of search results returned from search_v2. Note: + * search_v2 along with search/continue_v2 can only be used to retrieve a + * maximum of 10,000 matches. Recent changes may not immediately be reflected in + * search results due to a short delay in indexing. Duplicate results may be + * returned across pages. Some results may not be returned. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesSearchContinueV2 + * @arg {FilesSearchV2ContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesSearchContinueV2 = function (arg) { + return this.request('files/search/continue_v2', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; + +/** + * Add a tag to an item. A tag is a string. The strings are automatically + * converted to lowercase letters. No more than 20 tags can be added to a given + * item. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesTagsAdd + * @arg {FilesAddTagArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesTagsAdd = function (arg) { + return this.request('files/tags/add', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; + +/** + * Get list of tags assigned to items. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#filesTagsGet + * @arg {FilesGetTagsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesTagsGet = function (arg) { + return this.request('files/tags/get', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; + +/** + * Remove a tag from an item. + * Route attributes: + * scope: files.metadata.write + * @function Dropbox#filesTagsRemove + * @arg {FilesRemoveTagArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesTagsRemove = function (arg) { + return this.request('files/tags/remove', arg, 'user', 'api', 'rpc', 'files.metadata.write'); +}; + +/** + * Unlock the files at the given paths. A locked file can only be unlocked by + * the lock holder or, if a business account, a team admin. A successful + * response indicates that the file has been unlocked. Returns a list of the + * unlocked file paths and their metadata after this operation. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUnlockFileBatch + * @arg {FilesUnlockFileBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesUnlockFileBatch = function (arg) { + return this.request('files/unlock_file_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Create a new file with the contents provided in the request. Do not use this + * to upload a file larger than 150 MB. Instead, create an upload session with + * upload_session/start. Calls to this endpoint will count as data transport + * calls for any Dropbox Business teams with a limit on the number of data + * transport calls allowed per month. For more information, see the Data + * transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUpload + * @arg {FilesUploadArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesUpload = function (arg) { + return this.request('files/upload', arg, 'user', 'content', 'upload', 'files.content.write'); +}; + +/** + * Append more data to an upload session. When the parameter close is set, this + * call will close the session. A single request should not upload more than 150 + * MB. The maximum size of a file one can upload to an upload session is 350 GB. + * Calls to this endpoint will count as data transport calls for any Dropbox + * Business teams with a limit on the number of data transport calls allowed per + * month. For more information, see the Data transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionAppendV2 + * @arg {FilesUploadSessionAppendArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesUploadSessionAppendV2 = function (arg) { + return this.request('files/upload_session/append_v2', arg, 'user', 'content', 'upload', 'files.content.write'); +}; + +/** + * Append more data to an upload session. A single request should not upload + * more than 150 MB. The maximum size of a file one can upload to an upload + * session is 350 GB. Calls to this endpoint will count as data transport calls + * for any Dropbox Business teams with a limit on the number of data transport + * calls allowed per month. For more information, see the Data transport limit + * page https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionAppend + * @deprecated + * @arg {FilesUploadSessionCursor} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesUploadSessionAppend = function (arg) { + return this.request('files/upload_session/append', arg, 'user', 'content', 'upload', 'files.content.write'); +}; + +/** + * Finish an upload session and save the uploaded data to the given file path. A + * single request should not upload more than 150 MB. The maximum size of a file + * one can upload to an upload session is 350 GB. Calls to this endpoint will + * count as data transport calls for any Dropbox Business teams with a limit on + * the number of data transport calls allowed per month. For more information, + * see the Data transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionFinish + * @arg {FilesUploadSessionFinishArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesUploadSessionFinish = function (arg) { + return this.request('files/upload_session/finish', arg, 'user', 'content', 'upload', 'files.content.write'); +}; + +/** + * This route helps you commit many files at once into a user's Dropbox. Use + * upload_session/start and upload_session/append_v2 to upload file contents. We + * recommend uploading many files in parallel to increase throughput. Once the + * file contents have been uploaded, rather than calling upload_session/finish, + * use this route to finish all your upload sessions in a single request. + * UploadSessionStartArg.close or UploadSessionAppendArg.close needs to be true + * for the last upload_session/start or upload_session/append_v2 call. The + * maximum size of a file one can upload to an upload session is 350 GB. This + * route will return a job_id immediately and do the async commit job in + * background. Use upload_session/finish_batch/check to check the job status. + * For the same account, this route should be executed serially. That means you + * should not start the next job before current job finishes. We allow up to + * 1000 entries in a single request. Calls to this endpoint will count as data + * transport calls for any Dropbox Business teams with a limit on the number of + * data transport calls allowed per month. For more information, see the Data + * transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionFinishBatch + * @deprecated + * @arg {FilesUploadSessionFinishBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesUploadSessionFinishBatch = function (arg) { + return this.request('files/upload_session/finish_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * This route helps you commit many files at once into a user's Dropbox. Use + * upload_session/start and upload_session/append_v2 to upload file contents. We + * recommend uploading many files in parallel to increase throughput. Once the + * file contents have been uploaded, rather than calling upload_session/finish, + * use this route to finish all your upload sessions in a single request. + * UploadSessionStartArg.close or UploadSessionAppendArg.close needs to be true + * for the last upload_session/start or upload_session/append_v2 call of each + * upload session. The maximum size of a file one can upload to an upload + * session is 350 GB. We allow up to 1000 entries in a single request. Calls to + * this endpoint will count as data transport calls for any Dropbox Business + * teams with a limit on the number of data transport calls allowed per month. + * For more information, see the Data transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionFinishBatchV2 + * @arg {FilesUploadSessionFinishBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesUploadSessionFinishBatchV2 = function (arg) { + return this.request('files/upload_session/finish_batch_v2', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Returns the status of an asynchronous job for upload_session/finish_batch. If + * success, it returns list of result for each entry. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionFinishBatchCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesUploadSessionFinishBatchCheck = function (arg) { + return this.request('files/upload_session/finish_batch/check', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Upload sessions allow you to upload a single file in one or more requests, + * for example where the size of the file is greater than 150 MB. This call + * starts a new upload session with the given data. You can then use + * upload_session/append_v2 to add more data and upload_session/finish to save + * all the data to a file in Dropbox. A single request should not upload more + * than 150 MB. The maximum size of a file one can upload to an upload session + * is 350 GB. An upload session can be used for a maximum of 7 days. Attempting + * to use an UploadSessionStartResult.session_id with upload_session/append_v2 + * or upload_session/finish more than 7 days after its creation will return a + * UploadSessionLookupError.not_found. Calls to this endpoint will count as data + * transport calls for any Dropbox Business teams with a limit on the number of + * data transport calls allowed per month. For more information, see the Data + * transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. By + * default, upload sessions require you to send content of the file in + * sequential order via consecutive upload_session/start, + * upload_session/append_v2, upload_session/finish calls. For better + * performance, you can instead optionally use a UploadSessionType.concurrent + * upload session. To start a new concurrent session, set + * UploadSessionStartArg.session_type to UploadSessionType.concurrent. After + * that, you can send file data in concurrent upload_session/append_v2 requests. + * Finally finish the session with upload_session/finish. There are couple of + * constraints with concurrent sessions to make them work. You can not send data + * with upload_session/start or upload_session/finish call, only with + * upload_session/append_v2 call. Also data uploaded in upload_session/append_v2 + * call must be multiple of 4194304 bytes (except for last + * upload_session/append_v2 with UploadSessionStartArg.close to true, that may + * contain any remaining data). + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionStart + * @arg {FilesUploadSessionStartArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesUploadSessionStart = function (arg) { + return this.request('files/upload_session/start', arg, 'user', 'content', 'upload', 'files.content.write'); +}; + +/** + * This route starts batch of upload_sessions. Please refer to + * `upload_session/start` usage. Calls to this endpoint will count as data + * transport calls for any Dropbox Business teams with a limit on the number of + * data transport calls allowed per month. For more information, see the Data + * transport limit page + * https://www.dropbox.com/developers/reference/data-transport-limit. + * Route attributes: + * scope: files.content.write + * @function Dropbox#filesUploadSessionStartBatch + * @arg {FilesUploadSessionStartBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.filesUploadSessionStartBatch = function (arg) { + return this.request('files/upload_session/start_batch', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * This route is used for refreshing the info that is found in the id_token + * during the OIDC flow. This route doesn't require any arguments and will use + * the scopes approved for the given access token. + * Route attributes: + * scope: openid + * @function Dropbox#openidUserinfo + * @arg {OpenidUserInfoArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.openidUserinfo = function (arg) { + return this.request('openid/userinfo', arg, 'user', 'api', 'rpc', 'openid'); +}; + +/** + * Marks the given Paper doc as archived. This action can be performed or undone + * by anyone with edit permissions to the doc. Note that this endpoint will + * continue to work for content created by users on the older version of Paper. + * To check which version of Paper a user is on, use /users/features/get_values. + * If the paper_as_files feature is enabled, then the user is running the new + * version of Paper. This endpoint will be retired in September 2020. Refer to + * the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * more information. + * Route attributes: + * scope: files.content.write + * @function Dropbox#paperDocsArchive + * @deprecated + * @arg {PaperRefPaperDoc} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.paperDocsArchive = function (arg) { + return this.request('paper/docs/archive', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Creates a new Paper doc with the provided content. Note that this endpoint + * will continue to work for content created by users on the older version of + * Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. This endpoint will be retired + * in September 2020. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * more information. + * Route attributes: + * scope: files.content.write + * @function Dropbox#paperDocsCreate + * @deprecated + * @arg {PaperPaperDocCreateArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.paperDocsCreate = function (arg) { + return this.request('paper/docs/create', arg, 'user', 'api', 'upload', 'files.content.write'); +}; + +/** + * Exports and downloads Paper doc either as HTML or markdown. Note that this + * endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: files.content.read + * @function Dropbox#paperDocsDownload + * @deprecated + * @arg {PaperPaperDocExport} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.paperDocsDownload = function (arg) { + return this.request('paper/docs/download', arg, 'user', 'api', 'download', 'files.content.read'); +}; + +/** + * Lists the users who are explicitly invited to the Paper folder in which the + * Paper doc is contained. For private folders all users (including owner) + * shared on the folder are listed and for team folders all non-team users + * shared on the folder are returned. Note that this endpoint will continue to + * work for content created by users on the older version of Paper. To check + * which version of Paper a user is on, use /users/features/get_values. If the + * paper_as_files feature is enabled, then the user is running the new version + * of Paper. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsFolderUsersList + * @deprecated + * @arg {PaperListUsersOnFolderArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.paperDocsFolderUsersList = function (arg) { + return this.request('paper/docs/folder_users/list', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Once a cursor has been retrieved from docs/folder_users/list, use this to + * paginate through all users on the Paper folder. Note that this endpoint will + * continue to work for content created by users on the older version of Paper. + * To check which version of Paper a user is on, use /users/features/get_values. + * If the paper_as_files feature is enabled, then the user is running the new + * version of Paper. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsFolderUsersListContinue + * @deprecated + * @arg {PaperListUsersOnFolderContinueArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.paperDocsFolderUsersListContinue = function (arg) { + return this.request('paper/docs/folder_users/list/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Retrieves folder information for the given Paper doc. This includes: - + * folder sharing policy; permissions for subfolders are set by the top-level + * folder. - full 'filepath', i.e. the list of folders (both folderId and + * folderName) from the root folder to the folder directly containing the + * Paper doc. If the Paper doc is not in any folder (aka unfiled) the response + * will be empty. Note that this endpoint will continue to work for content + * created by users on the older version of Paper. To check which version of + * Paper a user is on, use /users/features/get_values. If the paper_as_files + * feature is enabled, then the user is running the new version of Paper. Refer + * to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsGetFolderInfo + * @deprecated + * @arg {PaperRefPaperDoc} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.paperDocsGetFolderInfo = function (arg) { + return this.request('paper/docs/get_folder_info', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Return the list of all Paper docs according to the argument specifications. + * To iterate over through the full pagination, pass the cursor to + * docs/list/continue. Note that this endpoint will continue to work for content + * created by users on the older version of Paper. To check which version of + * Paper a user is on, use /users/features/get_values. If the paper_as_files + * feature is enabled, then the user is running the new version of Paper. Refer + * to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#paperDocsList + * @deprecated + * @arg {PaperListPaperDocsArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.paperDocsList = function (arg) { + return this.request('paper/docs/list', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; + +/** + * Once a cursor has been retrieved from docs/list, use this to paginate through + * all Paper doc. Note that this endpoint will continue to work for content + * created by users on the older version of Paper. To check which version of + * Paper a user is on, use /users/features/get_values. If the paper_as_files + * feature is enabled, then the user is running the new version of Paper. Refer + * to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: files.metadata.read + * @function Dropbox#paperDocsListContinue + * @deprecated + * @arg {PaperListPaperDocsContinueArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.paperDocsListContinue = function (arg) { + return this.request('paper/docs/list/continue', arg, 'user', 'api', 'rpc', 'files.metadata.read'); +}; + +/** + * Permanently deletes the given Paper doc. This operation is final as the doc + * cannot be recovered. This action can be performed only by the doc owner. Note + * that this endpoint will continue to work for content created by users on the + * older version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: files.permanent_delete + * @function Dropbox#paperDocsPermanentlyDelete + * @deprecated + * @arg {PaperRefPaperDoc} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.paperDocsPermanentlyDelete = function (arg) { + return this.request('paper/docs/permanently_delete', arg, 'user', 'api', 'rpc', 'files.permanent_delete'); +}; + +/** + * Gets the default sharing policy for the given Paper doc. Note that this + * endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsSharingPolicyGet + * @deprecated + * @arg {PaperRefPaperDoc} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.paperDocsSharingPolicyGet = function (arg) { + return this.request('paper/docs/sharing_policy/get', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Sets the default sharing policy for the given Paper doc. The default + * 'team_sharing_policy' can be changed only by teams, omit this field for + * personal accounts. The 'public_sharing_policy' policy can't be set to the + * value 'disabled' because this setting can be changed only via the team admin + * console. Note that this endpoint will continue to work for content created by + * users on the older version of Paper. To check which version of Paper a user + * is on, use /users/features/get_values. If the paper_as_files feature is + * enabled, then the user is running the new version of Paper. Refer to the + * Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.write + * @function Dropbox#paperDocsSharingPolicySet + * @deprecated + * @arg {PaperPaperDocSharingPolicy} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.paperDocsSharingPolicySet = function (arg) { + return this.request('paper/docs/sharing_policy/set', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Updates an existing Paper doc with the provided content. Note that this + * endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. This endpoint will be retired + * in September 2020. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * more information. + * Route attributes: + * scope: files.content.write + * @function Dropbox#paperDocsUpdate + * @deprecated + * @arg {PaperPaperDocUpdateArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.paperDocsUpdate = function (arg) { + return this.request('paper/docs/update', arg, 'user', 'api', 'upload', 'files.content.write'); +}; + +/** + * Allows an owner or editor to add users to a Paper doc or change their + * permissions using their email address or Dropbox account ID. The doc owner's + * permissions cannot be changed. Note that this endpoint will continue to work + * for content created by users on the older version of Paper. To check which + * version of Paper a user is on, use /users/features/get_values. If the + * paper_as_files feature is enabled, then the user is running the new version + * of Paper. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.write + * @function Dropbox#paperDocsUsersAdd + * @deprecated + * @arg {PaperAddPaperDocUser} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ +routes.paperDocsUsersAdd = function (arg) { + return this.request('paper/docs/users/add', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Lists all users who visited the Paper doc or users with explicit access. This + * call excludes users who have been removed. The list is sorted by the date of + * the visit or the share date. The list will include both users, the explicitly + * shared ones as well as those who came in using the Paper url link. Note that + * this endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsUsersList + * @deprecated + * @arg {PaperListUsersOnPaperDocArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.paperDocsUsersList = function (arg) { + return this.request('paper/docs/users/list', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Once a cursor has been retrieved from docs/users/list, use this to paginate + * through all users on the Paper doc. Note that this endpoint will continue to + * work for content created by users on the older version of Paper. To check + * which version of Paper a user is on, use /users/features/get_values. If the + * paper_as_files feature is enabled, then the user is running the new version + * of Paper. Refer to the Paper Migration Guide + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide for + * migration information. + * Route attributes: + * scope: sharing.read + * @function Dropbox#paperDocsUsersListContinue + * @deprecated + * @arg {PaperListUsersOnPaperDocContinueArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.paperDocsUsersListContinue = function (arg) { + return this.request('paper/docs/users/list/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Allows an owner or editor to remove users from a Paper doc using their email + * address or Dropbox account ID. The doc owner cannot be removed. Note that + * this endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: sharing.write + * @function Dropbox#paperDocsUsersRemove + * @deprecated + * @arg {PaperRemovePaperDocUser} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.paperDocsUsersRemove = function (arg) { + return this.request('paper/docs/users/remove', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Create a new Paper folder with the provided info. Note that this endpoint + * will continue to work for content created by users on the older version of + * Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, then + * the user is running the new version of Paper. Refer to the Paper Migration + * Guide https://www.dropbox.com/lp/developers/reference/paper-migration-guide + * for migration information. + * Route attributes: + * scope: files.content.write + * @function Dropbox#paperFoldersCreate + * @deprecated + * @arg {PaperPaperFolderCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.paperFoldersCreate = function (arg) { + return this.request('paper/folders/create', arg, 'user', 'api', 'rpc', 'files.content.write'); +}; + +/** + * Adds specified members to a file. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingAddFileMember + * @arg {SharingAddFileMemberArgs} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ +routes.sharingAddFileMember = function (arg) { + return this.request('sharing/add_file_member', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Allows an owner or editor (if the ACL update policy allows) of a shared + * folder to add another member. For the new member to get access to all the + * functionality for this folder, you will need to call mount_folder on their + * behalf. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingAddFolderMember + * @arg {SharingAddFolderMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingAddFolderMember = function (arg) { + return this.request('sharing/add_folder_member', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Returns the status of an asynchronous job. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCheckJobStatus + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingCheckJobStatus = function (arg) { + return this.request('sharing/check_job_status', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Returns the status of an asynchronous job for sharing a folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCheckRemoveMemberJobStatus + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingCheckRemoveMemberJobStatus = function (arg) { + return this.request('sharing/check_remove_member_job_status', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Returns the status of an asynchronous job for sharing a folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCheckShareJobStatus + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingCheckShareJobStatus = function (arg) { + return this.request('sharing/check_share_job_status', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Create a shared link. If a shared link already exists for the given path, + * that link is returned. Previously, it was technically possible to break a + * shared link by moving or renaming the corresponding file or folder. In the + * future, this will no longer be the case, so your app shouldn't rely on this + * behavior. Instead, if your app needs to revoke a shared link, use + * revoke_shared_link. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCreateSharedLink + * @deprecated + * @arg {SharingCreateSharedLinkArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingCreateSharedLink = function (arg) { + return this.request('sharing/create_shared_link', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Create a shared link with custom settings. If no settings are given then the + * default visibility is RequestedVisibility.public (The resolved visibility, + * though, may depend on other aspects such as team and shared folder settings). + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingCreateSharedLinkWithSettings + * @arg {SharingCreateSharedLinkWithSettingsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingCreateSharedLinkWithSettings = function (arg) { + return this.request('sharing/create_shared_link_with_settings', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Returns shared file metadata. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetFileMetadata + * @arg {SharingGetFileMetadataArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingGetFileMetadata = function (arg) { + return this.request('sharing/get_file_metadata', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Returns shared file metadata. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetFileMetadataBatch + * @arg {SharingGetFileMetadataBatchArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ +routes.sharingGetFileMetadataBatch = function (arg) { + return this.request('sharing/get_file_metadata/batch', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Returns shared folder metadata by its folder ID. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetFolderMetadata + * @arg {SharingGetMetadataArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingGetFolderMetadata = function (arg) { + return this.request('sharing/get_folder_metadata', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Download the shared link's file from a user's Dropbox. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetSharedLinkFile + * @arg {Object} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingGetSharedLinkFile = function (arg) { + return this.request('sharing/get_shared_link_file', arg, 'user', 'content', 'download', 'sharing.read'); +}; + +/** + * Get the shared link's metadata. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetSharedLinkMetadata + * @arg {SharingGetSharedLinkMetadataArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingGetSharedLinkMetadata = function (arg) { + return this.request('sharing/get_shared_link_metadata', arg, 'app, user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Returns a list of LinkMetadata objects for this user, including collection + * links. If no path is given, returns a list of all shared links for the + * current user, including collection links, up to a maximum of 1000 links. If a + * non-empty path is given, returns a list of all shared links that allow access + * to the given path. Collection links are never returned in this case. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingGetSharedLinks + * @deprecated + * @arg {SharingGetSharedLinksArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingGetSharedLinks = function (arg) { + return this.request('sharing/get_shared_links', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Use to obtain the members who have been invited to a file, both inherited and + * uninherited members. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFileMembers + * @arg {SharingListFileMembersArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingListFileMembers = function (arg) { + return this.request('sharing/list_file_members', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Get members of multiple files at once. The arguments to this route are more + * limited, and the limit on query result size per file is more strict. To + * customize the results more, use the individual file endpoint. Inherited users + * and groups are not included in the result, and permissions are not returned + * for this endpoint. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFileMembersBatch + * @arg {SharingListFileMembersBatchArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ +routes.sharingListFileMembersBatch = function (arg) { + return this.request('sharing/list_file_members/batch', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Once a cursor has been retrieved from list_file_members or + * list_file_members/batch, use this to paginate through all shared file + * members. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFileMembersContinue + * @arg {SharingListFileMembersContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingListFileMembersContinue = function (arg) { + return this.request('sharing/list_file_members/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Returns shared folder membership by its folder ID. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFolderMembers + * @arg {SharingListFolderMembersArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingListFolderMembers = function (arg) { + return this.request('sharing/list_folder_members', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Once a cursor has been retrieved from list_folder_members, use this to + * paginate through all shared folder members. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFolderMembersContinue + * @arg {SharingListFolderMembersContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingListFolderMembersContinue = function (arg) { + return this.request('sharing/list_folder_members/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Return the list of all shared folders the current user has access to. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFolders + * @arg {SharingListFoldersArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingListFolders = function (arg) { + return this.request('sharing/list_folders', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Once a cursor has been retrieved from list_folders, use this to paginate + * through all shared folders. The cursor must come from a previous call to + * list_folders or list_folders/continue. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListFoldersContinue + * @arg {SharingListFoldersContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingListFoldersContinue = function (arg) { + return this.request('sharing/list_folders/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Return the list of all shared folders the current user can mount or unmount. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListMountableFolders + * @arg {SharingListFoldersArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingListMountableFolders = function (arg) { + return this.request('sharing/list_mountable_folders', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Once a cursor has been retrieved from list_mountable_folders, use this to + * paginate through all mountable shared folders. The cursor must come from a + * previous call to list_mountable_folders or list_mountable_folders/continue. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListMountableFoldersContinue + * @arg {SharingListFoldersContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingListMountableFoldersContinue = function (arg) { + return this.request('sharing/list_mountable_folders/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Returns a list of all files shared with current user. Does not include files + * the user has received via shared folders, and does not include unclaimed + * invitations. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListReceivedFiles + * @arg {SharingListFilesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingListReceivedFiles = function (arg) { + return this.request('sharing/list_received_files', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Get more results with a cursor from list_received_files. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListReceivedFilesContinue + * @arg {SharingListFilesContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingListReceivedFilesContinue = function (arg) { + return this.request('sharing/list_received_files/continue', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * List shared links of this user. If no path is given, returns a list of all + * shared links for the current user. For members of business teams using team + * space and member folders, returns all shared links in the team member's home + * folder unless the team space ID is specified in the request header. For more + * information, refer to the Namespace Guide + * https://www.dropbox.com/developers/reference/namespace-guide. If a non-empty + * path is given, returns a list of all shared links that allow access to the + * given path - direct links to the given path and links to parent folders of + * the given path. Links to parent folders can be suppressed by setting + * direct_only to true. + * Route attributes: + * scope: sharing.read + * @function Dropbox#sharingListSharedLinks + * @arg {SharingListSharedLinksArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingListSharedLinks = function (arg) { + return this.request('sharing/list_shared_links', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Modify the shared link's settings. If the requested visibility conflict with + * the shared links policy of the team or the shared folder (in case the linked + * file is part of a shared folder) then the LinkPermissions.resolved_visibility + * of the returned SharedLinkMetadata will reflect the actual visibility of the + * shared link and the LinkPermissions.requested_visibility will reflect the + * requested visibility. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingModifySharedLinkSettings + * @arg {SharingModifySharedLinkSettingsArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingModifySharedLinkSettings = function (arg) { + return this.request('sharing/modify_shared_link_settings', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * The current user mounts the designated folder. Mount a shared folder for a + * user after they have been added as a member. Once mounted, the shared folder + * will appear in their Dropbox. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingMountFolder + * @arg {SharingMountFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingMountFolder = function (arg) { + return this.request('sharing/mount_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * The current user relinquishes their membership in the designated file. Note + * that the current user may still have inherited access to this file through + * the parent folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRelinquishFileMembership + * @arg {SharingRelinquishFileMembershipArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingRelinquishFileMembership = function (arg) { + return this.request('sharing/relinquish_file_membership', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * The current user relinquishes their membership in the designated shared + * folder and will no longer have access to the folder. A folder owner cannot + * relinquish membership in their own folder. This will run synchronously if + * leave_a_copy is false, and asynchronously if leave_a_copy is true. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRelinquishFolderMembership + * @arg {SharingRelinquishFolderMembershipArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingRelinquishFolderMembership = function (arg) { + return this.request('sharing/relinquish_folder_membership', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Identical to remove_file_member_2 but with less information returned. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRemoveFileMember + * @deprecated + * @arg {SharingRemoveFileMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingRemoveFileMember = function (arg) { + return this.request('sharing/remove_file_member', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Removes a specified member from the file. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRemoveFileMember2 + * @arg {SharingRemoveFileMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingRemoveFileMember2 = function (arg) { + return this.request('sharing/remove_file_member_2', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Allows an owner or editor (if the ACL update policy allows) of a shared + * folder to remove another member. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRemoveFolderMember + * @arg {SharingRemoveFolderMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingRemoveFolderMember = function (arg) { + return this.request('sharing/remove_folder_member', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Revoke a shared link. Note that even after revoking a shared link to a file, + * the file may be accessible if there are shared links leading to any of the + * file parent folders. To list all shared links that enable access to a + * specific file, you can use the list_shared_links with the file as the + * ListSharedLinksArg.path argument. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingRevokeSharedLink + * @arg {SharingRevokeSharedLinkArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingRevokeSharedLink = function (arg) { + return this.request('sharing/revoke_shared_link', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Change the inheritance policy of an existing Shared Folder. Only permitted + * for shared folders in a shared team root. If a ShareFolderLaunch.async_job_id + * is returned, you'll need to call check_share_job_status until the action + * completes to get the metadata for the folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingSetAccessInheritance + * @arg {SharingSetAccessInheritanceArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingSetAccessInheritance = function (arg) { + return this.request('sharing/set_access_inheritance', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Share a folder with collaborators. Most sharing will be completed + * synchronously. Large folders will be completed asynchronously. To make + * testing the async case repeatable, set `ShareFolderArg.force_async`. If a + * ShareFolderLaunch.async_job_id is returned, you'll need to call + * check_share_job_status until the action completes to get the metadata for the + * folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingShareFolder + * @arg {SharingShareFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingShareFolder = function (arg) { + return this.request('sharing/share_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Transfer ownership of a shared folder to a member of the shared folder. User + * must have AccessLevel.owner access to the shared folder to perform a + * transfer. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingTransferFolder + * @arg {SharingTransferFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingTransferFolder = function (arg) { + return this.request('sharing/transfer_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * The current user unmounts the designated folder. They can re-mount the folder + * at a later time using mount_folder. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUnmountFolder + * @arg {SharingUnmountFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingUnmountFolder = function (arg) { + return this.request('sharing/unmount_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Remove all members from this file. Does not remove inherited members. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUnshareFile + * @arg {SharingUnshareFileArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingUnshareFile = function (arg) { + return this.request('sharing/unshare_file', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Allows a shared folder owner to unshare the folder. You'll need to call + * check_job_status to determine if the action has completed successfully. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUnshareFolder + * @arg {SharingUnshareFolderArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingUnshareFolder = function (arg) { + return this.request('sharing/unshare_folder', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Changes a member's access on a shared file. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUpdateFileMember + * @arg {SharingUpdateFileMemberArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingUpdateFileMember = function (arg) { + return this.request('sharing/update_file_member', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Allows an owner or editor of a shared folder to update another member's + * permissions. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUpdateFolderMember + * @arg {SharingUpdateFolderMemberArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingUpdateFolderMember = function (arg) { + return this.request('sharing/update_folder_member', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * Update the sharing policies for a shared folder. User must have + * AccessLevel.owner access to the shared folder to update its policies. + * Route attributes: + * scope: sharing.write + * @function Dropbox#sharingUpdateFolderPolicy + * @arg {SharingUpdateFolderPolicyArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.sharingUpdateFolderPolicy = function (arg) { + return this.request('sharing/update_folder_policy', arg, 'user', 'api', 'rpc', 'sharing.write'); +}; + +/** + * List all device sessions of a team's member. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamDevicesListMemberDevices + * @arg {TeamListMemberDevicesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamDevicesListMemberDevices = function (arg) { + return this.request('team/devices/list_member_devices', arg, 'team', 'api', 'rpc', 'sessions.list'); +}; + +/** + * List all device sessions of a team. Permission : Team member file access. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamDevicesListMembersDevices + * @arg {TeamListMembersDevicesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamDevicesListMembersDevices = function (arg) { + return this.request('team/devices/list_members_devices', arg, 'team', 'api', 'rpc', 'sessions.list'); +}; + +/** + * List all device sessions of a team. Permission : Team member file access. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamDevicesListTeamDevices + * @deprecated + * @arg {TeamListTeamDevicesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamDevicesListTeamDevices = function (arg) { + return this.request('team/devices/list_team_devices', arg, 'team', 'api', 'rpc', 'sessions.list'); +}; + +/** + * Revoke a device session of a team's member. + * Route attributes: + * scope: sessions.modify + * @function Dropbox#teamDevicesRevokeDeviceSession + * @arg {TeamRevokeDeviceSessionArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamDevicesRevokeDeviceSession = function (arg) { + return this.request('team/devices/revoke_device_session', arg, 'team', 'api', 'rpc', 'sessions.modify'); +}; + +/** + * Revoke a list of device sessions of team members. + * Route attributes: + * scope: sessions.modify + * @function Dropbox#teamDevicesRevokeDeviceSessionBatch + * @arg {TeamRevokeDeviceSessionBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamDevicesRevokeDeviceSessionBatch = function (arg) { + return this.request('team/devices/revoke_device_session_batch', arg, 'team', 'api', 'rpc', 'sessions.modify'); +}; + +/** + * Get the values for one or more featues. This route allows you to check your + * account's capability for what feature you can access or what value you have + * for certain features. Permission : Team information. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamFeaturesGetValues + * @arg {TeamFeaturesGetValuesBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamFeaturesGetValues = function (arg) { + return this.request('team/features/get_values', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; + +/** + * Retrieves information about a team. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamGetInfo + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamGetInfo = function () { + return this.request('team/get_info', null, 'team', 'api', 'rpc', 'team_info.read'); +}; + +/** + * Creates a new, empty group, with a requested name. Permission : Team member + * management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsCreate + * @arg {TeamGroupCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamGroupsCreate = function (arg) { + return this.request('team/groups/create', arg, 'team', 'api', 'rpc', 'groups.write'); +}; + +/** + * Deletes a group. The group is deleted immediately. However the revoking of + * group-owned resources may take additional time. Use the groups/job_status/get + * to determine whether this process has completed. Permission : Team member + * management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsDelete + * @arg {TeamGroupSelector} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamGroupsDelete = function (arg) { + return this.request('team/groups/delete', arg, 'team', 'api', 'rpc', 'groups.write'); +}; + +/** + * Retrieves information about one or more groups. Note that the optional field + * GroupFullInfo.members is not returned for system-managed groups. Permission : + * Team Information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsGetInfo + * @arg {TeamGroupsSelector} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamGroupsGetInfo = function (arg) { + return this.request('team/groups/get_info', arg, 'team', 'api', 'rpc', 'groups.read'); +}; + +/** + * Once an async_job_id is returned from groups/delete, groups/members/add , or + * groups/members/remove use this method to poll the status of granting/revoking + * group members' access to group-owned resources. Permission : Team member + * management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsJobStatusGet + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamGroupsJobStatusGet = function (arg) { + return this.request('team/groups/job_status/get', arg, 'team', 'api', 'rpc', 'groups.write'); +}; + +/** + * Lists groups on a team. Permission : Team Information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsList + * @arg {TeamGroupsListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamGroupsList = function (arg) { + return this.request('team/groups/list', arg, 'team', 'api', 'rpc', 'groups.read'); +}; + +/** + * Once a cursor has been retrieved from groups/list, use this to paginate + * through all groups. Permission : Team Information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsListContinue + * @arg {TeamGroupsListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamGroupsListContinue = function (arg) { + return this.request('team/groups/list/continue', arg, 'team', 'api', 'rpc', 'groups.read'); +}; + +/** + * Adds members to a group. The members are added immediately. However the + * granting of group-owned resources may take additional time. Use the + * groups/job_status/get to determine whether this process has completed. + * Permission : Team member management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsMembersAdd + * @arg {TeamGroupMembersAddArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamGroupsMembersAdd = function (arg) { + return this.request('team/groups/members/add', arg, 'team', 'api', 'rpc', 'groups.write'); +}; + +/** + * Lists members of a group. Permission : Team Information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsMembersList + * @arg {TeamGroupsMembersListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamGroupsMembersList = function (arg) { + return this.request('team/groups/members/list', arg, 'team', 'api', 'rpc', 'groups.read'); +}; + +/** + * Once a cursor has been retrieved from groups/members/list, use this to + * paginate through all members of the group. Permission : Team information. + * Route attributes: + * scope: groups.read + * @function Dropbox#teamGroupsMembersListContinue + * @arg {TeamGroupsMembersListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamGroupsMembersListContinue = function (arg) { + return this.request('team/groups/members/list/continue', arg, 'team', 'api', 'rpc', 'groups.read'); +}; + +/** + * Removes members from a group. The members are removed immediately. However + * the revoking of group-owned resources may take additional time. Use the + * groups/job_status/get to determine whether this process has completed. This + * method permits removing the only owner of a group, even in cases where this + * is not possible via the web client. Permission : Team member management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsMembersRemove + * @arg {TeamGroupMembersRemoveArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamGroupsMembersRemove = function (arg) { + return this.request('team/groups/members/remove', arg, 'team', 'api', 'rpc', 'groups.write'); +}; + +/** + * Sets a member's access type in a group. Permission : Team member management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsMembersSetAccessType + * @arg {TeamGroupMembersSetAccessTypeArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamGroupsMembersSetAccessType = function (arg) { + return this.request('team/groups/members/set_access_type', arg, 'team', 'api', 'rpc', 'groups.write'); +}; + +/** + * Updates a group's name and/or external ID. Permission : Team member + * management. + * Route attributes: + * scope: groups.write + * @function Dropbox#teamGroupsUpdate + * @arg {TeamGroupUpdateArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamGroupsUpdate = function (arg) { + return this.request('team/groups/update', arg, 'team', 'api', 'rpc', 'groups.write'); +}; + +/** + * Creates new legal hold policy. Note: Legal Holds is a paid add-on. Not all + * teams have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsCreatePolicy + * @arg {TeamLegalHoldsPolicyCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamLegalHoldsCreatePolicy = function (arg) { + return this.request('team/legal_holds/create_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; + +/** + * Gets a legal hold by Id. Note: Legal Holds is a paid add-on. Not all teams + * have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsGetPolicy + * @arg {TeamLegalHoldsGetPolicyArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamLegalHoldsGetPolicy = function (arg) { + return this.request('team/legal_holds/get_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; + +/** + * List the file metadata that's under the hold. Note: Legal Holds is a paid + * add-on. Not all teams have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsListHeldRevisions + * @arg {TeamLegalHoldsListHeldRevisionsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamLegalHoldsListHeldRevisions = function (arg) { + return this.request('team/legal_holds/list_held_revisions', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; + +/** + * Continue listing the file metadata that's under the hold. Note: Legal Holds + * is a paid add-on. Not all teams have the feature. Permission : Team member + * file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsListHeldRevisionsContinue + * @arg {TeamLegalHoldsListHeldRevisionsContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamLegalHoldsListHeldRevisionsContinue = function (arg) { + return this.request('team/legal_holds/list_held_revisions_continue', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; + +/** + * Lists legal holds on a team. Note: Legal Holds is a paid add-on. Not all + * teams have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsListPolicies + * @arg {TeamLegalHoldsListPoliciesArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamLegalHoldsListPolicies = function (arg) { + return this.request('team/legal_holds/list_policies', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; + +/** + * Releases a legal hold by Id. Note: Legal Holds is a paid add-on. Not all + * teams have the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsReleasePolicy + * @arg {TeamLegalHoldsPolicyReleaseArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamLegalHoldsReleasePolicy = function (arg) { + return this.request('team/legal_holds/release_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; + +/** + * Updates a legal hold. Note: Legal Holds is a paid add-on. Not all teams have + * the feature. Permission : Team member file access. + * Route attributes: + * scope: team_data.governance.write + * @function Dropbox#teamLegalHoldsUpdatePolicy + * @arg {TeamLegalHoldsPolicyUpdateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamLegalHoldsUpdatePolicy = function (arg) { + return this.request('team/legal_holds/update_policy', arg, 'team', 'api', 'rpc', 'team_data.governance.write'); +}; + +/** + * List all linked applications of the team member. Note, this endpoint does not + * list any team-linked applications. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamLinkedAppsListMemberLinkedApps + * @arg {TeamListMemberAppsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamLinkedAppsListMemberLinkedApps = function (arg) { + return this.request('team/linked_apps/list_member_linked_apps', arg, 'team', 'api', 'rpc', 'sessions.list'); +}; + +/** + * List all applications linked to the team members' accounts. Note, this + * endpoint does not list any team-linked applications. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamLinkedAppsListMembersLinkedApps + * @arg {TeamListMembersAppsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamLinkedAppsListMembersLinkedApps = function (arg) { + return this.request('team/linked_apps/list_members_linked_apps', arg, 'team', 'api', 'rpc', 'sessions.list'); +}; + +/** + * List all applications linked to the team members' accounts. Note, this + * endpoint doesn't list any team-linked applications. + * Route attributes: + * scope: sessions.list + * @function Dropbox#teamLinkedAppsListTeamLinkedApps + * @deprecated + * @arg {TeamListTeamAppsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamLinkedAppsListTeamLinkedApps = function (arg) { + return this.request('team/linked_apps/list_team_linked_apps', arg, 'team', 'api', 'rpc', 'sessions.list'); +}; + +/** + * Revoke a linked application of the team member. + * Route attributes: + * scope: sessions.modify + * @function Dropbox#teamLinkedAppsRevokeLinkedApp + * @arg {TeamRevokeLinkedApiAppArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamLinkedAppsRevokeLinkedApp = function (arg) { + return this.request('team/linked_apps/revoke_linked_app', arg, 'team', 'api', 'rpc', 'sessions.modify'); +}; + +/** + * Revoke a list of linked applications of the team members. + * Route attributes: + * scope: sessions.modify + * @function Dropbox#teamLinkedAppsRevokeLinkedAppBatch + * @arg {TeamRevokeLinkedApiAppBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamLinkedAppsRevokeLinkedAppBatch = function (arg) { + return this.request('team/linked_apps/revoke_linked_app_batch', arg, 'team', 'api', 'rpc', 'sessions.modify'); +}; + +/** + * Add users to member space limits excluded users list. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMemberSpaceLimitsExcludedUsersAdd + * @arg {TeamExcludedUsersUpdateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMemberSpaceLimitsExcludedUsersAdd = function (arg) { + return this.request('team/member_space_limits/excluded_users/add', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * List member space limits excluded users. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMemberSpaceLimitsExcludedUsersList + * @arg {TeamExcludedUsersListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMemberSpaceLimitsExcludedUsersList = function (arg) { + return this.request('team/member_space_limits/excluded_users/list', arg, 'team', 'api', 'rpc', 'members.read'); +}; + +/** + * Continue listing member space limits excluded users. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMemberSpaceLimitsExcludedUsersListContinue + * @arg {TeamExcludedUsersListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMemberSpaceLimitsExcludedUsersListContinue = function (arg) { + return this.request('team/member_space_limits/excluded_users/list/continue', arg, 'team', 'api', 'rpc', 'members.read'); +}; + +/** + * Remove users from member space limits excluded users list. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMemberSpaceLimitsExcludedUsersRemove + * @arg {TeamExcludedUsersUpdateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMemberSpaceLimitsExcludedUsersRemove = function (arg) { + return this.request('team/member_space_limits/excluded_users/remove', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Get users custom quota. Returns none as the custom quota if none was set. A + * maximum of 1000 members can be specified in a single call. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMemberSpaceLimitsGetCustomQuota + * @arg {TeamCustomQuotaUsersArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ +routes.teamMemberSpaceLimitsGetCustomQuota = function (arg) { + return this.request('team/member_space_limits/get_custom_quota', arg, 'team', 'api', 'rpc', 'members.read'); +}; + +/** + * Remove users custom quota. A maximum of 1000 members can be specified in a + * single call. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMemberSpaceLimitsRemoveCustomQuota + * @arg {TeamCustomQuotaUsersArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ +routes.teamMemberSpaceLimitsRemoveCustomQuota = function (arg) { + return this.request('team/member_space_limits/remove_custom_quota', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Set users custom quota. Custom quota has to be at least 15GB. A maximum of + * 1000 members can be specified in a single call. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMemberSpaceLimitsSetCustomQuota + * @arg {TeamSetCustomQuotaArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ +routes.teamMemberSpaceLimitsSetCustomQuota = function (arg) { + return this.request('team/member_space_limits/set_custom_quota', arg, 'team', 'api', 'rpc', 'members.read'); +}; + +/** + * Adds members to a team. Permission : Team member management A maximum of 20 + * members can be specified in a single call. If no Dropbox account exists with + * the email address specified, a new Dropbox account will be created with the + * given email address, and that account will be invited to the team. If a + * personal Dropbox account exists with the email address specified in the call, + * this call will create a placeholder Dropbox account for the user on the team + * and send an email inviting the user to migrate their existing personal + * account onto the team. Team member management apps are required to set an + * initial given_name and surname for a user to use in the team invitation and + * for 'Perform as team member' actions taken on the user before they become + * 'active'. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersAddV2 + * @arg {TeamMembersAddV2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersAddV2 = function (arg) { + return this.request('team/members/add_v2', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Adds members to a team. Permission : Team member management A maximum of 20 + * members can be specified in a single call. If no Dropbox account exists with + * the email address specified, a new Dropbox account will be created with the + * given email address, and that account will be invited to the team. If a + * personal Dropbox account exists with the email address specified in the call, + * this call will create a placeholder Dropbox account for the user on the team + * and send an email inviting the user to migrate their existing personal + * account onto the team. Team member management apps are required to set an + * initial given_name and surname for a user to use in the team invitation and + * for 'Perform as team member' actions taken on the user before they become + * 'active'. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersAdd + * @arg {TeamMembersAddArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersAdd = function (arg) { + return this.request('team/members/add', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Once an async_job_id is returned from members/add_v2 , use this to poll the + * status of the asynchronous request. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersAddJobStatusGetV2 + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersAddJobStatusGetV2 = function (arg) { + return this.request('team/members/add/job_status/get_v2', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Once an async_job_id is returned from members/add , use this to poll the + * status of the asynchronous request. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersAddJobStatusGet + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersAddJobStatusGet = function (arg) { + return this.request('team/members/add/job_status/get', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Deletes a team member's profile photo. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersDeleteProfilePhotoV2 + * @arg {TeamMembersDeleteProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersDeleteProfilePhotoV2 = function (arg) { + return this.request('team/members/delete_profile_photo_v2', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Deletes a team member's profile photo. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersDeleteProfilePhoto + * @arg {TeamMembersDeleteProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersDeleteProfilePhoto = function (arg) { + return this.request('team/members/delete_profile_photo', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Get available TeamMemberRoles for the connected team. To be used with + * members/set_admin_permissions_v2. Permission : Team member management. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersGetAvailableTeamMemberRoles + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersGetAvailableTeamMemberRoles = function () { + return this.request('team/members/get_available_team_member_roles', null, 'team', 'api', 'rpc', 'members.read'); +}; + +/** + * Returns information about multiple team members. Permission : Team + * information This endpoint will return MembersGetInfoItem.id_not_found, for + * IDs (or emails) that cannot be matched to a valid team member. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersGetInfoV2 + * @arg {TeamMembersGetInfoV2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersGetInfoV2 = function (arg) { + return this.request('team/members/get_info_v2', arg, 'team', 'api', 'rpc', 'members.read'); +}; + +/** + * Returns information about multiple team members. Permission : Team + * information This endpoint will return MembersGetInfoItem.id_not_found, for + * IDs (or emails) that cannot be matched to a valid team member. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersGetInfo + * @arg {TeamMembersGetInfoArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersGetInfo = function (arg) { + return this.request('team/members/get_info', arg, 'team', 'api', 'rpc', 'members.read'); +}; + +/** + * Lists members of a team. Permission : Team information. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersListV2 + * @arg {TeamMembersListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersListV2 = function (arg) { + return this.request('team/members/list_v2', arg, 'team', 'api', 'rpc', 'members.read'); +}; + +/** + * Lists members of a team. Permission : Team information. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersList + * @arg {TeamMembersListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersList = function (arg) { + return this.request('team/members/list', arg, 'team', 'api', 'rpc', 'members.read'); +}; + +/** + * Once a cursor has been retrieved from members/list_v2, use this to paginate + * through all team members. Permission : Team information. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersListContinueV2 + * @arg {TeamMembersListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersListContinueV2 = function (arg) { + return this.request('team/members/list/continue_v2', arg, 'team', 'api', 'rpc', 'members.read'); +}; + +/** + * Once a cursor has been retrieved from members/list, use this to paginate + * through all team members. Permission : Team information. + * Route attributes: + * scope: members.read + * @function Dropbox#teamMembersListContinue + * @arg {TeamMembersListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersListContinue = function (arg) { + return this.request('team/members/list/continue', arg, 'team', 'api', 'rpc', 'members.read'); +}; + +/** + * Moves removed member's files to a different member. This endpoint initiates + * an asynchronous job. To obtain the final result of the job, the client should + * periodically poll members/move_former_member_files/job_status/check. + * Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersMoveFormerMemberFiles + * @arg {TeamMembersDataTransferArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersMoveFormerMemberFiles = function (arg) { + return this.request('team/members/move_former_member_files', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Once an async_job_id is returned from members/move_former_member_files , use + * this to poll the status of the asynchronous request. Permission : Team member + * management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersMoveFormerMemberFilesJobStatusCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersMoveFormerMemberFilesJobStatusCheck = function (arg) { + return this.request('team/members/move_former_member_files/job_status/check', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Recover a deleted member. Permission : Team member management Exactly one of + * team_member_id, email, or external_id must be provided to identify the user + * account. + * Route attributes: + * scope: members.delete + * @function Dropbox#teamMembersRecover + * @arg {TeamMembersRecoverArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersRecover = function (arg) { + return this.request('team/members/recover', arg, 'team', 'api', 'rpc', 'members.delete'); +}; + +/** + * Removes a member from a team. Permission : Team member management Exactly one + * of team_member_id, email, or external_id must be provided to identify the + * user account. Accounts can be recovered via members/recover for a 7 day + * period or until the account has been permanently deleted or transferred to + * another account (whichever comes first). Calling members/add while a user is + * still recoverable on your team will return with + * MemberAddResult.user_already_on_team. Accounts can have their files + * transferred via the admin console for a limited time, based on the version + * history length associated with the team (180 days for most teams). This + * endpoint may initiate an asynchronous job. To obtain the final result of the + * job, the client should periodically poll members/remove/job_status/get. + * Route attributes: + * scope: members.delete + * @function Dropbox#teamMembersRemove + * @arg {TeamMembersRemoveArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersRemove = function (arg) { + return this.request('team/members/remove', arg, 'team', 'api', 'rpc', 'members.delete'); +}; + +/** + * Once an async_job_id is returned from members/remove , use this to poll the + * status of the asynchronous request. Permission : Team member management. + * Route attributes: + * scope: members.delete + * @function Dropbox#teamMembersRemoveJobStatusGet + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersRemoveJobStatusGet = function (arg) { + return this.request('team/members/remove/job_status/get', arg, 'team', 'api', 'rpc', 'members.delete'); +}; + +/** + * Add secondary emails to users. Permission : Team member management. Emails + * that are on verified domains will be verified automatically. For each email + * address not on a verified domain a verification email will be sent. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSecondaryEmailsAdd + * @arg {TeamAddSecondaryEmailsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersSecondaryEmailsAdd = function (arg) { + return this.request('team/members/secondary_emails/add', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Delete secondary emails from users Permission : Team member management. Users + * will be notified of deletions of verified secondary emails at both the + * secondary email and their primary email. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSecondaryEmailsDelete + * @arg {TeamDeleteSecondaryEmailsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersSecondaryEmailsDelete = function (arg) { + return this.request('team/members/secondary_emails/delete', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Resend secondary email verification emails. Permission : Team member + * management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSecondaryEmailsResendVerificationEmails + * @arg {TeamResendVerificationEmailArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersSecondaryEmailsResendVerificationEmails = function (arg) { + return this.request('team/members/secondary_emails/resend_verification_emails', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Sends welcome email to pending team member. Permission : Team member + * management Exactly one of team_member_id, email, or external_id must be + * provided to identify the user account. No-op if team member is not pending. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSendWelcomeEmail + * @arg {TeamUserSelectorArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersSendWelcomeEmail = function (arg) { + return this.request('team/members/send_welcome_email', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Updates a team member's permissions. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetAdminPermissionsV2 + * @arg {TeamMembersSetPermissions2Arg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersSetAdminPermissionsV2 = function (arg) { + return this.request('team/members/set_admin_permissions_v2', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Updates a team member's permissions. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetAdminPermissions + * @arg {TeamMembersSetPermissionsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersSetAdminPermissions = function (arg) { + return this.request('team/members/set_admin_permissions', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Updates a team member's profile. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetProfileV2 + * @arg {TeamMembersSetProfileArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersSetProfileV2 = function (arg) { + return this.request('team/members/set_profile_v2', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Updates a team member's profile. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetProfile + * @arg {TeamMembersSetProfileArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersSetProfile = function (arg) { + return this.request('team/members/set_profile', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Updates a team member's profile photo. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetProfilePhotoV2 + * @arg {TeamMembersSetProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersSetProfilePhotoV2 = function (arg) { + return this.request('team/members/set_profile_photo_v2', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Updates a team member's profile photo. Permission : Team member management. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSetProfilePhoto + * @arg {TeamMembersSetProfilePhotoArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersSetProfilePhoto = function (arg) { + return this.request('team/members/set_profile_photo', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Suspend a member from a team. Permission : Team member management Exactly one + * of team_member_id, email, or external_id must be provided to identify the + * user account. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersSuspend + * @arg {TeamMembersDeactivateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersSuspend = function (arg) { + return this.request('team/members/suspend', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Unsuspend a member from a team. Permission : Team member management Exactly + * one of team_member_id, email, or external_id must be provided to identify the + * user account. + * Route attributes: + * scope: members.write + * @function Dropbox#teamMembersUnsuspend + * @arg {TeamMembersUnsuspendArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamMembersUnsuspend = function (arg) { + return this.request('team/members/unsuspend', arg, 'team', 'api', 'rpc', 'members.write'); +}; + +/** + * Returns a list of all team-accessible namespaces. This list includes team + * folders, shared folders containing team members, team members' home + * namespaces, and team members' app folders. Home namespaces and app folders + * are always owned by this team or members of the team, but shared folders may + * be owned by other users or other teams. Duplicates may occur in the list. + * Route attributes: + * scope: team_data.member + * @function Dropbox#teamNamespacesList + * @arg {TeamTeamNamespacesListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamNamespacesList = function (arg) { + return this.request('team/namespaces/list', arg, 'team', 'api', 'rpc', 'team_data.member'); +}; + +/** + * Once a cursor has been retrieved from namespaces/list, use this to paginate + * through all team-accessible namespaces. Duplicates may occur in the list. + * Route attributes: + * scope: team_data.member + * @function Dropbox#teamNamespacesListContinue + * @arg {TeamTeamNamespacesListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamNamespacesListContinue = function (arg) { + return this.request('team/namespaces/list/continue', arg, 'team', 'api', 'rpc', 'team_data.member'); +}; + +/** + * Permission : Team member file access. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#teamPropertiesTemplateAdd + * @deprecated + * @arg {FilePropertiesAddTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamPropertiesTemplateAdd = function (arg) { + return this.request('team/properties/template/add', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; + +/** + * Permission : Team member file access. The scope for the route is + * files.team_metadata.write. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#teamPropertiesTemplateGet + * @deprecated + * @arg {FilePropertiesGetTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamPropertiesTemplateGet = function (arg) { + return this.request('team/properties/template/get', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; + +/** + * Permission : Team member file access. The scope for the route is + * files.team_metadata.write. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#teamPropertiesTemplateList + * @deprecated + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamPropertiesTemplateList = function () { + return this.request('team/properties/template/list', null, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; + +/** + * Permission : Team member file access. + * Route attributes: + * scope: files.team_metadata.write + * @function Dropbox#teamPropertiesTemplateUpdate + * @deprecated + * @arg {FilePropertiesUpdateTemplateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamPropertiesTemplateUpdate = function (arg) { + return this.request('team/properties/template/update', arg, 'team', 'api', 'rpc', 'files.team_metadata.write'); +}; + +/** + * Retrieves reporting data about a team's user activity. Deprecated: Will be + * removed on July 1st 2021. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamReportsGetActivity + * @deprecated + * @arg {TeamDateRange} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamReportsGetActivity = function (arg) { + return this.request('team/reports/get_activity', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; + +/** + * Retrieves reporting data about a team's linked devices. Deprecated: Will be + * removed on July 1st 2021. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamReportsGetDevices + * @deprecated + * @arg {TeamDateRange} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamReportsGetDevices = function (arg) { + return this.request('team/reports/get_devices', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; + +/** + * Retrieves reporting data about a team's membership. Deprecated: Will be + * removed on July 1st 2021. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamReportsGetMembership + * @deprecated + * @arg {TeamDateRange} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamReportsGetMembership = function (arg) { + return this.request('team/reports/get_membership', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; + +/** + * Retrieves reporting data about a team's storage usage. Deprecated: Will be + * removed on July 1st 2021. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamReportsGetStorage + * @deprecated + * @arg {TeamDateRange} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamReportsGetStorage = function (arg) { + return this.request('team/reports/get_storage', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; + +/** + * Endpoint adds Approve List entries. Changes are effective immediately. + * Changes are committed in transaction. In case of single validation error - + * all entries are rejected. Valid domains (RFC-1034/5) and emails + * (RFC-5322/822) are accepted. Added entries cannot overflow limit of 10000 + * entries per team. Maximum 100 entries per call is allowed. + * Route attributes: + * scope: team_info.write + * @function Dropbox#teamSharingAllowlistAdd + * @arg {TeamSharingAllowlistAddArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamSharingAllowlistAdd = function (arg) { + return this.request('team/sharing_allowlist/add', arg, 'team', 'api', 'rpc', 'team_info.write'); +}; + +/** + * Lists Approve List entries for given team, from newest to oldest, returning + * up to `limit` entries at a time. If there are more than `limit` entries + * associated with the current team, more can be fetched by passing the returned + * `cursor` to sharing_allowlist/list/continue. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamSharingAllowlistList + * @arg {TeamSharingAllowlistListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamSharingAllowlistList = function (arg) { + return this.request('team/sharing_allowlist/list', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; + +/** + * Lists entries associated with given team, starting from a the cursor. See + * sharing_allowlist/list. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamSharingAllowlistListContinue + * @arg {TeamSharingAllowlistListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamSharingAllowlistListContinue = function (arg) { + return this.request('team/sharing_allowlist/list/continue', arg, 'team', 'api', 'rpc', 'team_info.read'); +}; + +/** + * Endpoint removes Approve List entries. Changes are effective immediately. + * Changes are committed in transaction. In case of single validation error - + * all entries are rejected. Valid domains (RFC-1034/5) and emails + * (RFC-5322/822) are accepted. Entries being removed have to be present on the + * list. Maximum 1000 entries per call is allowed. + * Route attributes: + * scope: team_info.write + * @function Dropbox#teamSharingAllowlistRemove + * @arg {TeamSharingAllowlistRemoveArgs} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamSharingAllowlistRemove = function (arg) { + return this.request('team/sharing_allowlist/remove', arg, 'team', 'api', 'rpc', 'team_info.write'); +}; + +/** + * Sets an archived team folder's status to active. Permission : Team member + * file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderActivate + * @arg {TeamTeamFolderIdArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamTeamFolderActivate = function (arg) { + return this.request('team/team_folder/activate', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; + +/** + * Sets an active team folder's status to archived and removes all folder and + * file members. This endpoint cannot be used for teams that have a shared team + * space. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderArchive + * @arg {TeamTeamFolderArchiveArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamTeamFolderArchive = function (arg) { + return this.request('team/team_folder/archive', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; + +/** + * Returns the status of an asynchronous job for archiving a team folder. + * Permission : Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderArchiveCheck + * @arg {AsyncPollArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamTeamFolderArchiveCheck = function (arg) { + return this.request('team/team_folder/archive/check', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; + +/** + * Creates a new, active, team folder with no members. This endpoint can only be + * used for teams that do not already have a shared team space. Permission : + * Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderCreate + * @arg {TeamTeamFolderCreateArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamTeamFolderCreate = function (arg) { + return this.request('team/team_folder/create', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; + +/** + * Retrieves metadata for team folders. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.read + * @function Dropbox#teamTeamFolderGetInfo + * @arg {TeamTeamFolderIdListArg} arg - The request parameters. + * @returns {Promise.>, DropboxResponseError.>} + */ +routes.teamTeamFolderGetInfo = function (arg) { + return this.request('team/team_folder/get_info', arg, 'team', 'api', 'rpc', 'team_data.content.read'); +}; + +/** + * Lists all team folders. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.read + * @function Dropbox#teamTeamFolderList + * @arg {TeamTeamFolderListArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamTeamFolderList = function (arg) { + return this.request('team/team_folder/list', arg, 'team', 'api', 'rpc', 'team_data.content.read'); +}; + +/** + * Once a cursor has been retrieved from team_folder/list, use this to paginate + * through all team folders. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.read + * @function Dropbox#teamTeamFolderListContinue + * @arg {TeamTeamFolderListContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamTeamFolderListContinue = function (arg) { + return this.request('team/team_folder/list/continue', arg, 'team', 'api', 'rpc', 'team_data.content.read'); +}; + +/** + * Permanently deletes an archived team folder. This endpoint cannot be used for + * teams that have a shared team space. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderPermanentlyDelete + * @arg {TeamTeamFolderIdArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamTeamFolderPermanentlyDelete = function (arg) { + return this.request('team/team_folder/permanently_delete', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; + +/** + * Changes an active team folder's name. Permission : Team member file access. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderRename + * @arg {TeamTeamFolderRenameArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamTeamFolderRename = function (arg) { + return this.request('team/team_folder/rename', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; + +/** + * Updates the sync settings on a team folder or its contents. Use of this + * endpoint requires that the team has team selective sync enabled. + * Route attributes: + * scope: team_data.content.write + * @function Dropbox#teamTeamFolderUpdateSyncSettings + * @arg {TeamTeamFolderUpdateSyncSettingsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamTeamFolderUpdateSyncSettings = function (arg) { + return this.request('team/team_folder/update_sync_settings', arg, 'team', 'api', 'rpc', 'team_data.content.write'); +}; + +/** + * Returns the member profile of the admin who generated the team access token + * used to make the call. + * Route attributes: + * scope: team_info.read + * @function Dropbox#teamTokenGetAuthenticatedAdmin + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamTokenGetAuthenticatedAdmin = function () { + return this.request('team/token/get_authenticated_admin', null, 'team', 'api', 'rpc', 'team_info.read'); +}; + +/** + * Retrieves team events. If the result's GetTeamEventsResult.has_more field is + * true, call get_events/continue with the returned cursor to retrieve more + * entries. If end_time is not specified in your request, you may use the + * returned cursor to poll get_events/continue for new events. Many attributes + * note 'may be missing due to historical data gap'. Note that the + * file_operations category and & analogous paper events are not available on + * all Dropbox Business plans /business/plans-comparison. Use + * features/get_values + * /developers/documentation/http/teams#team-features-get_values to check for + * this feature. Permission : Team Auditing. + * Route attributes: + * scope: events.read + * @function Dropbox#teamLogGetEvents + * @arg {TeamLogGetTeamEventsArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamLogGetEvents = function (arg) { + return this.request('team_log/get_events', arg, 'team', 'api', 'rpc', 'events.read'); +}; + +/** + * Once a cursor has been retrieved from get_events, use this to paginate + * through all events. Permission : Team Auditing. + * Route attributes: + * scope: events.read + * @function Dropbox#teamLogGetEventsContinue + * @arg {TeamLogGetTeamEventsContinueArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.teamLogGetEventsContinue = function (arg) { + return this.request('team_log/get_events/continue', arg, 'team', 'api', 'rpc', 'events.read'); +}; + +/** + * Get a list of feature values that may be configured for the current account. + * Route attributes: + * scope: account_info.read + * @function Dropbox#usersFeaturesGetValues + * @arg {UsersUserFeaturesGetValuesBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.usersFeaturesGetValues = function (arg) { + return this.request('users/features/get_values', arg, 'user', 'api', 'rpc', 'account_info.read'); +}; + +/** + * Get information about a user's account. + * Route attributes: + * scope: sharing.read + * @function Dropbox#usersGetAccount + * @arg {UsersGetAccountArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.usersGetAccount = function (arg) { + return this.request('users/get_account', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Get information about multiple user accounts. At most 300 accounts may be + * queried per request. + * Route attributes: + * scope: sharing.read + * @function Dropbox#usersGetAccountBatch + * @arg {UsersGetAccountBatchArg} arg - The request parameters. + * @returns {Promise., DropboxResponseError.>} + */ +routes.usersGetAccountBatch = function (arg) { + return this.request('users/get_account_batch', arg, 'user', 'api', 'rpc', 'sharing.read'); +}; + +/** + * Get information about the current user's account. + * Route attributes: + * scope: account_info.read + * @function Dropbox#usersGetCurrentAccount + * @returns {Promise., DropboxResponseError.>} + */ +routes.usersGetCurrentAccount = function () { + return this.request('users/get_current_account', null, 'user', 'api', 'rpc', 'account_info.read'); +}; + +/** + * Get the space usage information for the current user's account. + * Route attributes: + * scope: account_info.read + * @function Dropbox#usersGetSpaceUsage + * @returns {Promise., DropboxResponseError.>} + */ +routes.usersGetSpaceUsage = function () { + return this.request('users/get_space_usage', null, 'user', 'api', 'rpc', 'account_info.read'); +}; + +export { routes }; diff --git a/node_modules/tr46/dropbox/lib/types.js b/node_modules/tr46/dropbox/lib/types.js new file mode 100644 index 0000000000000000000000000000000000000000..56e996cec1c6fa82122208681ef5fc263e45903d --- /dev/null +++ b/node_modules/tr46/dropbox/lib/types.js @@ -0,0 +1,17763 @@ +// Auto-generated by Stone, do not modify. +/** + * An Error object returned from a route. + * @typedef {Object} Error + * @property {string} error_summary - Text summary of the error. + * @property {T} error - The error object. + * @property {UserMessage} user_message - An optional field. If present, it includes a + message that can be shown directly to the end user of your app. You should show this message + if your app is unprepared to programmatically handle the error returned by an endpoint. + * @template T + */ + +/** + * User-friendly error message. + * @typedef {Object} UserMessage + * @property {string} text - The message. + * @property {string} locale + */ + + /** + * @typedef {string} Timestamp + */ + +/** + * @typedef {Object} AccountPhotoSourceArg + * @property {string} [base64_data] - Available if .tag is base64_data. Image + * data in base64-encoded bytes. + * @property {('base64_data'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} AccountSetProfilePhotoArg + * @property {AccountPhotoSourceArg} photo - Image to set as the user's new + * profile photo. + */ + +/** + * @typedef {Object} AccountSetProfilePhotoError + * @property {('file_type_error'|'file_size_error'|'dimension_error'|'thumbnail_error'|'transient_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} AccountSetProfilePhotoResult + * @property {string} profile_photo_url - URL for the photo representing the + * user, if one is set. + */ + +/** + * Result returned by methods that may either launch an asynchronous job or + * complete synchronously. Upon synchronous completion of the job, no additional + * information is returned. + * @typedef {Object} AsyncLaunchEmptyResult + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {('async_job_id'|'complete')} .tag - Tag identifying the union variant. + */ + +/** + * Result returned by methods that launch an asynchronous job. A method who may + * either launch an asynchronous job, or complete the request synchronously, can + * use this union by extending it, and adding a 'complete' field with the type + * of the synchronous response. See LaunchEmptyResult for an example. + * @typedef {Object} AsyncLaunchResultBase + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {'async_job_id'} .tag - Tag identifying the union variant. + */ + +/** + * Arguments for methods that poll the status of an asynchronous job. + * @typedef {Object} AsyncPollArg + * @property {string} async_job_id - Id of the asynchronous job. This is the + * value of a response returned from the method that launched the job. + */ + +/** + * Result returned by methods that poll for the status of an asynchronous job. + * Upon completion of the job, no additional information is returned. + * @typedef {Object} AsyncPollEmptyResult + * @property {('in_progress'|'complete')} .tag - Tag identifying the union variant. + */ + +/** + * Error returned by methods for polling the status of asynchronous job. + * @typedef {Object} AsyncPollError + * @property {('invalid_async_job_id'|'internal_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Result returned by methods that poll for the status of an asynchronous job. + * Unions that extend this union should add a 'complete' field with a type of + * the information returned upon job completion. See PollEmptyResult for an + * example. + * @typedef {Object} AsyncPollResultBase + * @property {'in_progress'} .tag - Tag identifying the union variant. + */ + +/** + * Error occurred because the account doesn't have permission to access the + * resource. + * @typedef {Object} AuthAccessError + * @property {AuthInvalidAccountTypeError} [invalid_account_type] - Available if + * .tag is invalid_account_type. Current account type cannot access the + * resource. + * @property {AuthPaperAccessError} [paper_access_denied] - Available if .tag is + * paper_access_denied. Current account cannot access Paper. + * @property {('invalid_account_type'|'paper_access_denied'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Errors occurred during authentication. + * @typedef {Object} AuthAuthError + * @property {AuthTokenScopeError} [missing_scope] - Available if .tag is + * missing_scope. The access token does not have the required scope to access + * the route. + * @property {('invalid_access_token'|'invalid_select_user'|'invalid_select_admin'|'user_suspended'|'expired_access_token'|'missing_scope'|'route_access_denied'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} AuthInvalidAccountTypeError + * @property {('endpoint'|'feature'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} AuthPaperAccessError + * @property {('paper_disabled'|'not_paper_user'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Error occurred because the app is being rate limited. + * @typedef {Object} AuthRateLimitError + * @property {AuthRateLimitReason} reason - The reason why the app is being rate + * limited. + * @property {number} retry_after - The number of seconds that the app should + * wait before making another request. + */ + +/** + * @typedef {Object} AuthRateLimitReason + * @property {('too_many_requests'|'too_many_write_operations'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} AuthTokenFromOAuth1Arg + * @property {string} oauth1_token - The supplied OAuth 1.0 access token. + * @property {string} oauth1_token_secret - The token secret associated with the + * supplied access token. + */ + +/** + * @typedef {Object} AuthTokenFromOAuth1Error + * @property {('invalid_oauth1_token_info'|'app_id_mismatch'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} AuthTokenFromOAuth1Result + * @property {string} oauth2_token - The OAuth 2.0 token generated from the + * supplied OAuth 1.0 token. + */ + +/** + * @typedef {Object} AuthTokenScopeError + * @property {string} required_scope - The required scope to access the route. + */ + +/** + * EchoArg contains the arguments to be sent to the Dropbox servers. + * @typedef {Object} CheckEchoArg + * @property {string} query - The string that you'd like to be echoed back to + * you. + */ + +/** + * EchoResult contains the result returned from the Dropbox servers. + * @typedef {Object} CheckEchoResult + * @property {string} result - If everything worked correctly, this would be the + * same as query. + */ + +/** + * @typedef {Object} CommonPathRoot + * @property {string} [root] - Available if .tag is root. Paths are relative to + * the authenticating user's root namespace (This results in + * :field:`PathRootError.invalid_root` if the user's root namespace has + * changed.). + * @property {string} [namespace_id] - Available if .tag is namespace_id. Paths + * are relative to given namespace id (This results in + * :field:`PathRootError.no_permission` if you don't have access to this + * namespace.). + * @property {('home'|'root'|'namespace_id'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} CommonPathRootError + * @property {(CommonTeamRootInfo|CommonUserRootInfo|CommonRootInfo)} + * [invalid_root] - Available if .tag is invalid_root. The root namespace id in + * Dropbox-API-Path-Root header is not valid. The value of this error is the + * user's latest root info. + * @property {('invalid_root'|'no_permission'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Information about current user's root. + * @typedef {Object} CommonRootInfo +@property {("team"|"user")} .tag - Tag identifying the subtype variant. + * @property {string} root_namespace_id - The namespace ID for user's root + * namespace. It will be the namespace ID of the shared team root if the user is + * member of a team with a separate team root. Otherwise it will be same as + * RootInfo.home_namespace_id. + * @property {string} home_namespace_id - The namespace ID for user's home + * namespace. + */ + +/** + * Root info when user is member of a team with a separate root namespace ID. + * @typedef {Object} CommonTeamRootInfo +@property {'team'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {string} root_namespace_id - The namespace ID for user's root + * namespace. It will be the namespace ID of the shared team root if the user is + * member of a team with a separate team root. Otherwise it will be same as + * RootInfo.home_namespace_id. + * @property {string} home_namespace_id - The namespace ID for user's home + * namespace. + * @property {string} home_path - The path for user's home directory under the + * shared team root. + */ + +/** + * Root info when user is not member of a team or the user is a member of a team + * and the team does not have a separate root namespace. + * @typedef {Object} CommonUserRootInfo +@property {'user'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {string} root_namespace_id - The namespace ID for user's root + * namespace. It will be the namespace ID of the shared team root if the user is + * member of a team with a separate team root. Otherwise it will be same as + * RootInfo.home_namespace_id. + * @property {string} home_namespace_id - The namespace ID for user's home + * namespace. + */ + +/** + * @typedef {Object} ContactsDeleteManualContactsArg + * @property {Array.} email_addresses - List of manually added contacts + * to be deleted. + */ + +/** + * @typedef {Object} ContactsDeleteManualContactsError + * @property {Array.} [contacts_not_found] - Available if .tag is + * contacts_not_found. Can't delete contacts from this list. Make sure the list + * only has manually added contacts. The deletion was cancelled. + * @property {('contacts_not_found'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilePropertiesAddPropertiesArg + * @property {string} path - A unique identifier for the file or folder. + * @property {Array.} property_groups - The + * property groups which are to be added to a Dropbox file. No two groups in the + * input should refer to the same template. + */ + +/** + * @typedef {Object} FilePropertiesAddPropertiesError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {FilePropertiesLookupError} [path] - Available if .tag is path. + * @property {('template_not_found'|'restricted_content'|'other'|'path'|'unsupported_folder'|'property_field_too_large'|'does_not_fit_template'|'duplicate_property_groups'|'property_group_already_exists')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilePropertiesAddTemplateArg + * @property {string} name - Display name for the template. Template names can + * be up to 256 bytes. + * @property {string} description - Description for the template. Template + * descriptions can be up to 1024 bytes. + * @property {Array.} fields - Definitions + * of the property fields associated with this template. There can be up to 32 + * properties in a single template. + */ + +/** + * @typedef {Object} FilePropertiesAddTemplateResult + * @property {string} template_id - An identifier for template added by See + * templates/add_for_user or templates/add_for_team. + */ + +/** + * @typedef {Object} FilePropertiesGetTemplateArg + * @property {string} template_id - An identifier for template added by route + * See templates/add_for_user or templates/add_for_team. + */ + +/** + * @typedef {Object} FilePropertiesGetTemplateResult + * @property {string} name - Display name for the template. Template names can + * be up to 256 bytes. + * @property {string} description - Description for the template. Template + * descriptions can be up to 1024 bytes. + * @property {Array.} fields - Definitions + * of the property fields associated with this template. There can be up to 32 + * properties in a single template. + */ + +/** + * @typedef {Object} FilePropertiesInvalidPropertyGroupError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {FilePropertiesLookupError} [path] - Available if .tag is path. + * @property {('template_not_found'|'restricted_content'|'other'|'path'|'unsupported_folder'|'property_field_too_large'|'does_not_fit_template'|'duplicate_property_groups')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilePropertiesListTemplateResult + * @property {Array.} template_ids - List of identifiers for templates + * added by See templates/add_for_user or templates/add_for_team. + */ + +/** + * Logical operator to join search queries together. + * @typedef {Object} FilePropertiesLogicalOperator + * @property {('or_operator'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilePropertiesLookUpPropertiesError + * @property {('property_group_not_found'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilePropertiesLookupError + * @property {string} [malformed_path] - Available if .tag is malformed_path. + * @property {('malformed_path'|'not_found'|'not_file'|'not_folder'|'restricted_content'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilePropertiesModifyTemplateError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {('template_not_found'|'restricted_content'|'other'|'conflicting_property_names'|'too_many_properties'|'too_many_templates'|'template_attribute_too_large')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilePropertiesOverwritePropertyGroupArg + * @property {string} path - A unique identifier for the file or folder. + * @property {Array.} property_groups - The + * property groups "snapshot" updates to force apply. No two groups in the input + * should refer to the same template. + */ + +/** + * @typedef {Object} FilePropertiesPropertiesError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {FilePropertiesLookupError} [path] - Available if .tag is path. + * @property {('template_not_found'|'restricted_content'|'other'|'path'|'unsupported_folder')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilePropertiesPropertiesSearchArg + * @property {Array.} queries - Queries to + * search. + * @property {FilePropertiesTemplateFilter} template_filter - Filter results to + * contain only properties associated with these template IDs. + */ + +/** + * @typedef {Object} FilePropertiesPropertiesSearchContinueArg + * @property {string} cursor - The cursor returned by your last call to + * properties/search or properties/search/continue. + */ + +/** + * @typedef {Object} FilePropertiesPropertiesSearchContinueError + * @property {('reset'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilePropertiesPropertiesSearchError + * @property {FilePropertiesLookUpPropertiesError} [property_group_lookup] - + * Available if .tag is property_group_lookup. + * @property {('property_group_lookup'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilePropertiesPropertiesSearchMatch + * @property {string} id - The ID for the matched file or folder. + * @property {string} path - The path for the matched file or folder. + * @property {boolean} is_deleted - Whether the file or folder is deleted. + * @property {Array.} property_groups - List of + * custom property groups associated with the file. + */ + +/** + * @typedef {Object} FilePropertiesPropertiesSearchMode + * @property {string} [field_name] - Available if .tag is field_name. Search for + * a value associated with this field name. + * @property {('field_name'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilePropertiesPropertiesSearchQuery + * @property {string} query - The property field value for which to search + * across templates. + * @property {FilePropertiesPropertiesSearchMode} mode - The mode with which to + * perform the search. + * @property {FilePropertiesLogicalOperator} logical_operator - The logical + * operator with which to append the query. + */ + +/** + * @typedef {Object} FilePropertiesPropertiesSearchResult + * @property {Array.} matches - A list + * (possibly empty) of matches for the query. + * @property {string} [cursor] - Pass the cursor into properties/search/continue + * to continue to receive search results. Cursor will be null when there are no + * more results. + */ + +/** + * Raw key/value data to be associated with a Dropbox file. Property fields are + * added to Dropbox files as a PropertyGroup. + * @typedef {Object} FilePropertiesPropertyField + * @property {string} name - Key of the property field associated with a file + * and template. Keys can be up to 256 bytes. + * @property {string} value - Value of the property field associated with a file + * and template. Values can be up to 1024 bytes. + */ + +/** + * Defines how a single property field may be structured. Used exclusively by + * PropertyGroupTemplate. + * @typedef {Object} FilePropertiesPropertyFieldTemplate + * @property {string} name - Key of the property field being described. Property + * field keys can be up to 256 bytes. + * @property {string} description - Description of the property field. Property + * field descriptions can be up to 1024 bytes. + * @property {FilePropertiesPropertyType} type - Data type of the value of this + * property field. This type will be enforced upon property creation and + * modifications. + */ + +/** + * A subset of the property fields described by the corresponding + * PropertyGroupTemplate. Properties are always added to a Dropbox file as a + * PropertyGroup. The possible key names and value types in this group are + * defined by the corresponding PropertyGroupTemplate. + * @typedef {Object} FilePropertiesPropertyGroup + * @property {string} template_id - A unique identifier for the associated + * template. + * @property {Array.} fields - The actual + * properties associated with the template. There can be up to 32 property types + * per template. + */ + +/** + * Defines how a property group may be structured. + * @typedef {Object} FilePropertiesPropertyGroupTemplate + * @property {string} name - Display name for the template. Template names can + * be up to 256 bytes. + * @property {string} description - Description for the template. Template + * descriptions can be up to 1024 bytes. + * @property {Array.} fields - Definitions + * of the property fields associated with this template. There can be up to 32 + * properties in a single template. + */ + +/** + * @typedef {Object} FilePropertiesPropertyGroupUpdate + * @property {string} template_id - A unique identifier for a property template. + * @property {Array.} [add_or_update_fields] - + * Property fields to update. If the property field already exists, it is + * updated. If the property field doesn't exist, the property group is added. + * @property {Array.} [remove_fields] - Property fields to remove (by + * name), provided they exist. + */ + +/** + * Data type of the given property field added. + * @typedef {Object} FilePropertiesPropertyType + * @property {('string'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilePropertiesRemovePropertiesArg + * @property {string} path - A unique identifier for the file or folder. + * @property {Array.} property_template_ids - A list of identifiers for + * a template created by templates/add_for_user or templates/add_for_team. + */ + +/** + * @typedef {Object} FilePropertiesRemovePropertiesError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {FilePropertiesLookupError} [path] - Available if .tag is path. + * @property {FilePropertiesLookUpPropertiesError} [property_group_lookup] - + * Available if .tag is property_group_lookup. + * @property {('template_not_found'|'restricted_content'|'other'|'path'|'unsupported_folder'|'property_group_lookup')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilePropertiesRemoveTemplateArg + * @property {string} template_id - An identifier for a template created by + * templates/add_for_user or templates/add_for_team. + */ + +/** + * @typedef {Object} FilePropertiesTemplateError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {('template_not_found'|'restricted_content'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilePropertiesTemplateFilter + * @property {Array.} [filter_some] - Available if .tag is filter_some. + * Only templates with an ID in the supplied list will be returned (a subset of + * templates will be returned). + * @property {('filter_some'|'other'|'filter_none')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilePropertiesTemplateFilterBase + * @property {Array.} [filter_some] - Available if .tag is filter_some. + * Only templates with an ID in the supplied list will be returned (a subset of + * templates will be returned). + * @property {('filter_some'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilePropertiesTemplateOwnerType + * @property {('user'|'team'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilePropertiesUpdatePropertiesArg + * @property {string} path - A unique identifier for the file or folder. + * @property {Array.} update_property_groups + * - The property groups "delta" updates to apply. + */ + +/** + * @typedef {Object} FilePropertiesUpdatePropertiesError + * @property {string} [template_not_found] - Available if .tag is + * template_not_found. Template does not exist for the given identifier. + * @property {FilePropertiesLookupError} [path] - Available if .tag is path. + * @property {FilePropertiesLookUpPropertiesError} [property_group_lookup] - + * Available if .tag is property_group_lookup. + * @property {('template_not_found'|'restricted_content'|'other'|'path'|'unsupported_folder'|'property_field_too_large'|'does_not_fit_template'|'duplicate_property_groups'|'property_group_lookup')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilePropertiesUpdateTemplateArg + * @property {string} template_id - An identifier for template added by See + * templates/add_for_user or templates/add_for_team. + * @property {string} [name] - A display name for the template. template names + * can be up to 256 bytes. + * @property {string} [description] - Description for the new template. Template + * descriptions can be up to 1024 bytes. + * @property {Array.} [add_fields] - + * Property field templates to be added to the group template. There can be up + * to 32 properties in a single template. + */ + +/** + * @typedef {Object} FilePropertiesUpdateTemplateResult + * @property {string} template_id - An identifier for template added by route + * See templates/add_for_user or templates/add_for_team. + */ + +/** + * There was an error counting the file requests. + * @typedef {Object} FileRequestsCountFileRequestsError + * @property {('disabled_for_team'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Result for count. + * @typedef {Object} FileRequestsCountFileRequestsResult + * @property {number} file_request_count - The number file requests owner by + * this user. + */ + +/** + * Arguments for create. + * @typedef {Object} FileRequestsCreateFileRequestArgs + * @property {string} title - The title of the file request. Must not be empty. + * @property {string} destination - The path of the folder in the Dropbox where + * uploaded files will be sent. For apps with the app folder permission, this + * will be relative to the app folder. + * @property {FileRequestsFileRequestDeadline} [deadline] - The deadline for the + * file request. Deadlines can only be set by Professional and Business + * accounts. + * @property {boolean} open - Whether or not the file request should be open. If + * the file request is closed, it will not accept any file submissions, but it + * can be opened later. + * @property {string} [description] - A description of the file request. + */ + +/** + * There was an error creating the file request. + * @typedef {Object} FileRequestsCreateFileRequestError + * @property {('disabled_for_team'|'other'|'not_found'|'not_a_folder'|'app_lacks_access'|'no_permission'|'email_unverified'|'validation_error'|'invalid_location'|'rate_limit')} .tag - Tag identifying the union variant. + */ + +/** + * There was an error deleting all closed file requests. + * @typedef {Object} FileRequestsDeleteAllClosedFileRequestsError + * @property {('disabled_for_team'|'other'|'not_found'|'not_a_folder'|'app_lacks_access'|'no_permission'|'email_unverified'|'validation_error')} .tag - Tag identifying the union variant. + */ + +/** + * Result for delete_all_closed. + * @typedef {Object} FileRequestsDeleteAllClosedFileRequestsResult + * @property {Array.} file_requests - The file requests + * deleted for this user. + */ + +/** + * Arguments for delete. + * @typedef {Object} FileRequestsDeleteFileRequestArgs + * @property {Array.} ids - List IDs of the file requests to delete. + */ + +/** + * There was an error deleting these file requests. + * @typedef {Object} FileRequestsDeleteFileRequestError + * @property {('disabled_for_team'|'other'|'not_found'|'not_a_folder'|'app_lacks_access'|'no_permission'|'email_unverified'|'validation_error'|'file_request_open')} .tag - Tag identifying the union variant. + */ + +/** + * Result for delete. + * @typedef {Object} FileRequestsDeleteFileRequestsResult + * @property {Array.} file_requests - The file requests + * deleted by the request. + */ + +/** + * A file request https://www.dropbox.com/help/9090 for receiving files into the + * user's Dropbox account. + * @typedef {Object} FileRequestsFileRequest + * @property {string} id - The ID of the file request. + * @property {string} url - The URL of the file request. + * @property {string} title - The title of the file request. + * @property {Timestamp} created - When this file request was created. + * @property {boolean} is_open - Whether or not the file request is open. If the + * file request is closed, it will not accept any more file submissions. + * @property {number} file_count - The number of files this file request has + * received. + * @property {string} [destination] - The path of the folder in the Dropbox + * where uploaded files will be sent. This can be null if the destination was + * removed. For apps with the app folder permission, this will be relative to + * the app folder. + * @property {FileRequestsFileRequestDeadline} [deadline] - The deadline for + * this file request. Only set if the request has a deadline. + * @property {string} [description] - A description of the file request. + */ + +/** + * @typedef {Object} FileRequestsFileRequestDeadline + * @property {Timestamp} deadline - The deadline for this file request. + * @property {FileRequestsGracePeriod} [allow_late_uploads] - If set, allow + * uploads after the deadline has passed. These uploads will be marked + * overdue. + */ + +/** + * There is an error with the file request. + * @typedef {Object} FileRequestsFileRequestError + * @property {('disabled_for_team'|'other'|'not_found'|'not_a_folder'|'app_lacks_access'|'no_permission'|'email_unverified'|'validation_error')} .tag - Tag identifying the union variant. + */ + +/** + * There is an error accessing the file requests functionality. + * @typedef {Object} FileRequestsGeneralFileRequestsError + * @property {('disabled_for_team'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Arguments for get. + * @typedef {Object} FileRequestsGetFileRequestArgs + * @property {string} id - The ID of the file request to retrieve. + */ + +/** + * There was an error retrieving the specified file request. + * @typedef {Object} FileRequestsGetFileRequestError + * @property {('disabled_for_team'|'other'|'not_found'|'not_a_folder'|'app_lacks_access'|'no_permission'|'email_unverified'|'validation_error')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FileRequestsGracePeriod + * @property {('one_day'|'two_days'|'seven_days'|'thirty_days'|'always'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Arguments for list:2. + * @typedef {Object} FileRequestsListFileRequestsArg + * @property {number} limit - The maximum number of file requests that should be + * returned per request. + */ + +/** + * @typedef {Object} FileRequestsListFileRequestsContinueArg + * @property {string} cursor - The cursor returned by the previous API call + * specified in the endpoint description. + */ + +/** + * There was an error retrieving the file requests. + * @typedef {Object} FileRequestsListFileRequestsContinueError + * @property {('disabled_for_team'|'other'|'invalid_cursor')} .tag - Tag identifying the union variant. + */ + +/** + * There was an error retrieving the file requests. + * @typedef {Object} FileRequestsListFileRequestsError + * @property {('disabled_for_team'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Result for list. + * @typedef {Object} FileRequestsListFileRequestsResult + * @property {Array.} file_requests - The file requests + * owned by this user. Apps with the app folder permission will only see file + * requests in their app folder. + */ + +/** + * Result for list:2 and list/continue. + * @typedef {Object} FileRequestsListFileRequestsV2Result + * @property {Array.} file_requests - The file requests + * owned by this user. Apps with the app folder permission will only see file + * requests in their app folder. + * @property {string} cursor - Pass the cursor into list/continue to obtain + * additional file requests. + * @property {boolean} has_more - Is true if there are additional file requests + * that have not been returned yet. An additional call to :route:list/continue` + * can retrieve them. + */ + +/** + * Arguments for update. + * @typedef {Object} FileRequestsUpdateFileRequestArgs + * @property {string} id - The ID of the file request to update. + * @property {string} [title] - The new title of the file request. Must not be + * empty. + * @property {string} [destination] - The new path of the folder in the Dropbox + * where uploaded files will be sent. For apps with the app folder permission, + * this will be relative to the app folder. + * @property {FileRequestsUpdateFileRequestDeadline} deadline - The new deadline + * for the file request. Deadlines can only be set by Professional and Business + * accounts. + * @property {boolean} [open] - Whether to set this file request as open or + * closed. + * @property {string} [description] - The description of the file request. + */ + +/** + * @typedef {Object} FileRequestsUpdateFileRequestDeadline + * @property {FileRequestsFileRequestDeadline} [update] - Available if .tag is + * update. If :val:`null`, the file request's deadline is cleared. + * @property {('no_update'|'update'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * There is an error updating the file request. + * @typedef {Object} FileRequestsUpdateFileRequestError + * @property {('disabled_for_team'|'other'|'not_found'|'not_a_folder'|'app_lacks_access'|'no_permission'|'email_unverified'|'validation_error')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesAddTagArg + * @property {string} path - Path to the item to be tagged. + * @property {string} tag_text - The value of the tag to add. Will be + * automatically converted to lowercase letters. + */ + +/** + * @typedef {Object} FilesAddTagError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'other'|'too_many_tags')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesAlphaGetMetadataArg + * @property {string} path - The path of a file or folder on Dropbox. + * @property {boolean} include_media_info - If true, FileMetadata.media_info is + * set for photo and video. + * @property {boolean} include_deleted - If true, DeletedMetadata will be + * returned for deleted file or folder, otherwise LookupError.not_found will be + * returned. + * @property {boolean} include_has_explicit_shared_members - If true, the + * results will include a flag for each file indicating whether or not that + * file has any explicit members. + * @property {FilePropertiesTemplateFilterBase} [include_property_groups] - If + * set to a valid list of template IDs, FileMetadata.property_groups is set if + * there exists property data associated with the file and each of the listed + * templates. + * @property {Array.} [include_property_templates] - If set to a valid + * list of template IDs, FileMetadata.property_groups is set for files with + * custom properties. + */ + +/** + * @typedef {Object} FilesAlphaGetMetadataError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {FilePropertiesLookUpPropertiesError} [properties_error] - + * Available if .tag is properties_error. + * @property {('path'|'properties_error')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesBaseTagError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesCommitInfo + * @property {string} path - Path in the user's Dropbox to save the file. + * @property {FilesWriteMode} mode - Selects what to do if the file already + * exists. + * @property {boolean} autorename - If there's a conflict, as determined by + * mode, have the Dropbox server try to autorename the file to avoid conflict. + * @property {Timestamp} [client_modified] - The value to store as the + * client_modified timestamp. Dropbox automatically records the time at which + * the file was written to the Dropbox servers. It can also record an additional + * timestamp, provided by Dropbox desktop clients, mobile clients, and API apps + * of when the file was actually created or modified. + * @property {boolean} mute - Normally, users are made aware of any file + * modifications in their Dropbox account via notifications in the client + * software. If true, this tells the clients that this modification shouldn't + * result in a user notification. + * @property {Array.} [property_groups] - List of + * custom properties to add to file. + * @property {boolean} strict_conflict - Be more strict about how each WriteMode + * detects conflict. For example, always return a conflict error when mode = + * WriteMode.update and the given "rev" doesn't match the existing file's "rev", + * even if the existing file has been deleted. This also forces a conflict even + * when the target path refers to a file with identical contents. + */ + +/** + * @typedef {Object} FilesContentSyncSetting + * @property {string} id - Id of the item this setting is applied to. + * @property {FilesSyncSetting} sync_setting - Setting for this item. + */ + +/** + * @typedef {Object} FilesContentSyncSettingArg + * @property {string} id - Id of the item this setting is applied to. + * @property {FilesSyncSettingArg} sync_setting - Setting for this item. + */ + +/** + * @typedef {Object} FilesCreateFolderArg + * @property {string} path - Path in the user's Dropbox to create. + * @property {boolean} autorename - If there's a conflict, have the Dropbox + * server try to autorename the folder to avoid the conflict. + */ + +/** + * @typedef {Object} FilesCreateFolderBatchArg + * @property {Array.} paths - List of paths to be created in the user's + * Dropbox. Duplicate path arguments in the batch are considered only once. + * @property {boolean} autorename - If there's a conflict, have the Dropbox + * server try to autorename the folder to avoid the conflict. + * @property {boolean} force_async - Whether to force the create to happen + * asynchronously. + */ + +/** + * @typedef {Object} FilesCreateFolderBatchError + * @property {('too_many_files'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesCreateFolderBatchJobStatus + * @property {FilesCreateFolderBatchResult} [complete] - Available if .tag is + * complete. The batch create folder has finished. + * @property {FilesCreateFolderBatchError} [failed] - Available if .tag is + * failed. The batch create folder has failed. + * @property {('in_progress'|'complete'|'failed'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Result returned by create_folder_batch that may either launch an asynchronous + * job or complete synchronously. + * @typedef {Object} FilesCreateFolderBatchLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {FilesCreateFolderBatchResult} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesCreateFolderBatchResult + * @property {Array.} entries - Each entry in + * CreateFolderBatchArg.paths will appear at the same position inside + * CreateFolderBatchResult.entries. + */ + +/** + * @typedef {Object} FilesCreateFolderBatchResultEntry + * @property {FilesCreateFolderEntryResult} [success] - Available if .tag is + * success. + * @property {FilesCreateFolderEntryError} [failure] - Available if .tag is + * failure. + * @property {('success'|'failure')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesCreateFolderEntryError + * @property {FilesWriteError} [path] - Available if .tag is path. + * @property {('path'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesCreateFolderEntryResult + * @property {FilesFolderMetadata} metadata - Metadata of the created folder. + */ + +/** + * @typedef {Object} FilesCreateFolderError + * @property {FilesWriteError} [path] - Available if .tag is path. + * @property {'path'} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesCreateFolderResult + * @property {FilesFolderMetadata} metadata - Metadata of the created folder. + */ + +/** + * @typedef {Object} FilesDeleteArg + * @property {string} path - Path in the user's Dropbox to delete. + * @property {string} [parent_rev] - Perform delete if given "rev" matches the + * existing file's latest "rev". This field does not support deleting a folder. + */ + +/** + * @typedef {Object} FilesDeleteBatchArg + * @property {Array.} entries + */ + +/** + * @typedef {Object} FilesDeleteBatchError + * @property {('too_many_write_operations'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesDeleteBatchJobStatus + * @property {FilesDeleteBatchResult} [complete] - Available if .tag is + * complete. The batch delete has finished. + * @property {FilesDeleteBatchError} [failed] - Available if .tag is failed. The + * batch delete has failed. + * @property {('in_progress'|'complete'|'failed'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Result returned by delete_batch that may either launch an asynchronous job or + * complete synchronously. + * @typedef {Object} FilesDeleteBatchLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {FilesDeleteBatchResult} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesDeleteBatchResult + * @property {Array.} entries - Each entry in + * DeleteBatchArg.entries will appear at the same position inside + * DeleteBatchResult.entries. + */ + +/** + * @typedef {Object} FilesDeleteBatchResultData + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - Metadata of the deleted object. + */ + +/** + * @typedef {Object} FilesDeleteBatchResultEntry + * @property {FilesDeleteBatchResultData} [success] - Available if .tag is + * success. + * @property {FilesDeleteError} [failure] - Available if .tag is failure. + * @property {('success'|'failure')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesDeleteError + * @property {FilesLookupError} [path_lookup] - Available if .tag is + * path_lookup. + * @property {FilesWriteError} [path_write] - Available if .tag is path_write. + * @property {('path_lookup'|'path_write'|'too_many_write_operations'|'too_many_files'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesDeleteResult + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - Metadata of the deleted object. + */ + +/** + * Indicates that there used to be a file or folder at this path, but it no + * longer exists. + * @typedef {Object} FilesDeletedMetadata +@property {'deleted'} [.tag] - Tag identifying this subtype variant. This field +is only present when needed to discriminate between multiple possible subtypes. + * @property {string} name - The last component of the path (including + * extension). This never contains a slash. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will be null if the file + * or folder is not mounted. + * @property {string} [path_display] - The cased path to be used for display + * purposes only. In rare instances the casing will not correctly match the + * user's filesystem, but this behavior will match the path provided in the Core + * API v1, and at least the last path component will have the correct casing. + * Changes to only the casing of paths won't be returned by + * list_folder/continue. This field will be null if the file or folder is not + * mounted. + * @property {string} [parent_shared_folder_id] - Please use + * FileSharingInfo.parent_shared_folder_id or + * FolderSharingInfo.parent_shared_folder_id instead. + * @property {string} [preview_url] - The preview URL of the file. + */ + +/** + * Dimensions for a photo or video. + * @typedef {Object} FilesDimensions + * @property {number} height - Height of the photo/video. + * @property {number} width - Width of the photo/video. + */ + +/** + * @typedef {Object} FilesDownloadArg + * @property {string} path - The path of the file to download. + * @property {string} [rev] - Please specify revision in path instead. + */ + +/** + * @typedef {Object} FilesDownloadError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'unsupported_file'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesDownloadZipArg + * @property {string} path - The path of the folder to download. + */ + +/** + * @typedef {Object} FilesDownloadZipError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'too_large'|'too_many_files'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesDownloadZipResult + * @property {FilesFolderMetadata} metadata + */ + +/** + * @typedef {Object} FilesExportArg + * @property {string} path - The path of the file to be exported. + * @property {string} [export_format] - The file format to which the file should + * be exported. This must be one of the formats listed in the file's + * export_options returned by get_metadata. If none is specified, the default + * format (specified in export_as in file metadata) will be used. + */ + +/** + * @typedef {Object} FilesExportError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'non_exportable'|'invalid_export_format'|'retry_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Export information for a file. + * @typedef {Object} FilesExportInfo + * @property {string} [export_as] - Format to which the file can be exported to. + * @property {Array.} [export_options] - Additional formats to which the + * file can be exported. These values can be specified as the export_format in + * /files/export. + */ + +/** + * @typedef {Object} FilesExportMetadata + * @property {string} name - The last component of the path (including + * extension). This never contains a slash. + * @property {number} size - The file size in bytes. + * @property {string} [export_hash] - A hash based on the exported file content. + * This field can be used to verify data integrity. Similar to content hash. For + * more information see our Content hash + * https://www.dropbox.com/developers/reference/content-hash page. + * @property {number} [paper_revision] - If the file is a Paper doc, this gives + * the latest doc revision which can be used in paper/update. + */ + +/** + * @typedef {Object} FilesExportResult + * @property {FilesExportMetadata} export_metadata - Metadata for the exported + * version of the file. + * @property {FilesFileMetadata} file_metadata - Metadata for the original file. + */ + +/** + * @typedef {Object} FilesFileCategory + * @property {('image'|'document'|'pdf'|'spreadsheet'|'presentation'|'audio'|'video'|'folder'|'paper'|'others'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesFileLock + * @property {FilesFileLockContent} content - The lock description. + */ + +/** + * @typedef {Object} FilesFileLockContent + * @property {FilesSingleUserLock} [single_user] - Available if .tag is + * single_user. A lock held by a single user. + * @property {('unlocked'|'single_user'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesFileLockMetadata + * @property {boolean} [is_lockholder] - True if caller holds the file lock. + * @property {string} [lockholder_name] - The display name of the lock holder. + * @property {string} [lockholder_account_id] - The account ID of the lock + * holder if known. + * @property {Timestamp} [created] - The timestamp of the lock was created. + */ + +/** + * @typedef {Object} FilesFileMetadata +@property {'file'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {string} name - The last component of the path (including + * extension). This never contains a slash. + * @property {string} id - A unique identifier for the file. + * @property {Timestamp} client_modified - For files, this is the modification + * time set by the desktop client when the file was added to Dropbox. Since this + * time is not verified (the Dropbox server stores whatever the desktop client + * sends up), this should only be used for display purposes (such as sorting) + * and not, for example, to determine if a file has changed or not. + * @property {Timestamp} server_modified - The last time the file was modified + * on Dropbox. + * @property {string} rev - A unique identifier for the current revision of a + * file. This field is the same rev as elsewhere in the API and can be used to + * detect changes and avoid conflicts. + * @property {number} size - The file size in bytes. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will be null if the file + * or folder is not mounted. + * @property {string} [path_display] - The cased path to be used for display + * purposes only. In rare instances the casing will not correctly match the + * user's filesystem, but this behavior will match the path provided in the Core + * API v1, and at least the last path component will have the correct casing. + * Changes to only the casing of paths won't be returned by + * list_folder/continue. This field will be null if the file or folder is not + * mounted. + * @property {string} [parent_shared_folder_id] - Please use + * FileSharingInfo.parent_shared_folder_id or + * FolderSharingInfo.parent_shared_folder_id instead. + * @property {string} [preview_url] - The preview URL of the file. + * @property {FilesMediaInfo} [media_info] - Additional information if the file + * is a photo or video. This field will not be set on entries returned by + * list_folder, list_folder/continue, or get_thumbnail_batch, starting December + * 2, 2019. + * @property {FilesSymlinkInfo} [symlink_info] - Set if this file is a symlink. + * @property {FilesFileSharingInfo} [sharing_info] - Set if this file is + * contained in a shared folder. + * @property {boolean} is_downloadable - If true, file can be downloaded + * directly; else the file must be exported. + * @property {FilesExportInfo} [export_info] - Information about format this + * file can be exported to. This filed must be set if is_downloadable is set to + * false. + * @property {Array.} [property_groups] - + * Additional information if the file has custom properties with the property + * template specified. + * @property {boolean} [has_explicit_shared_members] - This flag will only be + * present if include_has_explicit_shared_members is true in list_folder or + * get_metadata. If this flag is present, it will be true if this file has any + * explicit shared members. This is different from sharing_info in that this + * could be true in the case where a file has explicit members but is not + * contained within a shared folder. + * @property {string} [content_hash] - A hash of the file content. This field + * can be used to verify data integrity. For more information see our Content + * hash https://www.dropbox.com/developers/reference/content-hash page. + * @property {FilesFileLockMetadata} [file_lock_info] - If present, the metadata + * associated with the file's current lock. + */ + +/** + * @typedef {Object} FilesFileOpsResult + */ + +/** + * Sharing info for a file which is contained by a shared folder. + * @typedef {Object} FilesFileSharingInfo + * @property {boolean} read_only - True if the file or folder is inside a + * read-only shared folder. + * @property {string} parent_shared_folder_id - ID of shared folder that holds + * this file. + * @property {string} [modified_by] - The last user who modified the file. This + * field will be null if the user's account has been deleted. + */ + +/** + * @typedef {Object} FilesFileStatus + * @property {('active'|'deleted'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesFolderMetadata +@property {'folder'} [.tag] - Tag identifying this subtype variant. This field +is only present when needed to discriminate between multiple possible subtypes. + * @property {string} name - The last component of the path (including + * extension). This never contains a slash. + * @property {string} id - A unique identifier for the folder. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will be null if the file + * or folder is not mounted. + * @property {string} [path_display] - The cased path to be used for display + * purposes only. In rare instances the casing will not correctly match the + * user's filesystem, but this behavior will match the path provided in the Core + * API v1, and at least the last path component will have the correct casing. + * Changes to only the casing of paths won't be returned by + * list_folder/continue. This field will be null if the file or folder is not + * mounted. + * @property {string} [parent_shared_folder_id] - Please use + * FileSharingInfo.parent_shared_folder_id or + * FolderSharingInfo.parent_shared_folder_id instead. + * @property {string} [preview_url] - The preview URL of the file. + * @property {string} [shared_folder_id] - Please use sharing_info instead. + * @property {FilesFolderSharingInfo} [sharing_info] - Set if the folder is + * contained in a shared folder or is a shared folder mount point. + * @property {Array.} [property_groups] - + * Additional information if the file has custom properties with the property + * template specified. Note that only properties associated with user-owned + * templates, not team-owned templates, can be attached to folders. + */ + +/** + * Sharing info for a folder which is contained in a shared folder or is a + * shared folder mount point. + * @typedef {Object} FilesFolderSharingInfo + * @property {boolean} read_only - True if the file or folder is inside a + * read-only shared folder. + * @property {string} [parent_shared_folder_id] - Set if the folder is contained + * by a shared folder. + * @property {string} [shared_folder_id] - If this folder is a shared folder + * mount point, the ID of the shared folder mounted at this location. + * @property {boolean} traverse_only - Specifies that the folder can only be + * traversed and the user can only see a limited subset of the contents of this + * folder because they don't have read access to this folder. They do, however, + * have access to some sub folder. + * @property {boolean} no_access - Specifies that the folder cannot be accessed + * by the user. + */ + +/** + * @typedef {Object} FilesGetCopyReferenceArg + * @property {string} path - The path to the file or folder you want to get a + * copy reference to. + */ + +/** + * @typedef {Object} FilesGetCopyReferenceError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesGetCopyReferenceResult + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - Metadata of the file or folder. + * @property {string} copy_reference - A copy reference to the file or folder. + * @property {Timestamp} expires - The expiration date of the copy reference. + * This value is currently set to be far enough in the future so that expiration + * is effectively not an issue. + */ + +/** + * @typedef {Object} FilesGetMetadataArg + * @property {string} path - The path of a file or folder on Dropbox. + * @property {boolean} include_media_info - If true, FileMetadata.media_info is + * set for photo and video. + * @property {boolean} include_deleted - If true, DeletedMetadata will be + * returned for deleted file or folder, otherwise LookupError.not_found will be + * returned. + * @property {boolean} include_has_explicit_shared_members - If true, the + * results will include a flag for each file indicating whether or not that + * file has any explicit members. + * @property {FilePropertiesTemplateFilterBase} [include_property_groups] - If + * set to a valid list of template IDs, FileMetadata.property_groups is set if + * there exists property data associated with the file and each of the listed + * templates. + */ + +/** + * @typedef {Object} FilesGetMetadataError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {'path'} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesGetTagsArg + * @property {Array.} paths - Path to the items. + */ + +/** + * @typedef {Object} FilesGetTagsResult + * @property {Array.} paths_to_tags - List of paths and their + * corresponding tags. + */ + +/** + * @typedef {Object} FilesGetTemporaryLinkArg + * @property {string} path - The path to the file you want a temporary link to. + */ + +/** + * @typedef {Object} FilesGetTemporaryLinkError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'email_not_verified'|'unsupported_file'|'not_allowed'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesGetTemporaryLinkResult + * @property {FilesFileMetadata} metadata - Metadata of the file. + * @property {string} link - The temporary link which can be used to stream + * content the file. + */ + +/** + * @typedef {Object} FilesGetTemporaryUploadLinkArg + * @property {FilesCommitInfo} commit_info - Contains the path and other + * optional modifiers for the future upload commit. Equivalent to the parameters + * provided to upload. + * @property {number} duration - How long before this link expires, in seconds. + * Attempting to start an upload with this link longer than this period of time + * after link creation will result in an error. + */ + +/** + * @typedef {Object} FilesGetTemporaryUploadLinkResult + * @property {string} link - The temporary link which can be used to stream a + * file to a Dropbox location. + */ + +/** + * Arguments for get_thumbnail_batch. + * @typedef {Object} FilesGetThumbnailBatchArg + * @property {Array.} entries - List of files to get + * thumbnails. + */ + +/** + * @typedef {Object} FilesGetThumbnailBatchError + * @property {('too_many_files'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesGetThumbnailBatchResult + * @property {Array.} entries - List of files + * and their thumbnails. + */ + +/** + * @typedef {Object} FilesGetThumbnailBatchResultData + * @property {FilesFileMetadata} metadata + * @property {string} thumbnail - A string containing the base64-encoded + * thumbnail data for this file. + */ + +/** + * @typedef {Object} FilesGetThumbnailBatchResultEntry + * @property {FilesGetThumbnailBatchResultData} [success] - Available if .tag is + * success. + * @property {FilesThumbnailError} [failure] - Available if .tag is failure. The + * result for this file if it was an error. + * @property {('success'|'failure'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * GPS coordinates for a photo or video. + * @typedef {Object} FilesGpsCoordinates + * @property {number} latitude - Latitude of the GPS coordinates. + * @property {number} longitude - Longitude of the GPS coordinates. + */ + +/** + * @typedef {Object} FilesHighlightSpan + * @property {string} highlight_str - String to be determined whether it should + * be highlighted or not. + * @property {boolean} is_highlighted - The string should be highlighted or not. + */ + +/** + * The import format of the incoming Paper doc content. + * @typedef {Object} FilesImportFormat + * @property {('html'|'markdown'|'plain_text'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesListFolderArg + * @property {string} path - A unique identifier for the file. + * @property {boolean} recursive - If true, the list folder operation will be + * applied recursively to all subfolders and the response will contain contents + * of all subfolders. + * @property {boolean} include_media_info - If true, FileMetadata.media_info is + * set for photo and video. This parameter will no longer have an effect + * starting December 2, 2019. + * @property {boolean} include_deleted - If true, the results will include + * entries for files and folders that used to exist but were deleted. + * @property {boolean} include_has_explicit_shared_members - If true, the + * results will include a flag for each file indicating whether or not that + * file has any explicit members. + * @property {boolean} include_mounted_folders - If true, the results will + * include entries under mounted folders which includes app folder, shared + * folder and team folder. + * @property {number} [limit] - The maximum number of results to return per + * request. Note: This is an approximate number and there can be slightly more + * entries returned in some cases. + * @property {FilesSharedLink} [shared_link] - A shared link to list the + * contents of. If the link is password-protected, the password must be + * provided. If this field is present, ListFolderArg.path will be relative to + * root of the shared link. Only non-recursive mode is supported for shared + * link. + * @property {FilePropertiesTemplateFilterBase} [include_property_groups] - If + * set to a valid list of template IDs, FileMetadata.property_groups is set if + * there exists property data associated with the file and each of the listed + * templates. + * @property {boolean} include_non_downloadable_files - If true, include files + * that are not downloadable, i.e. Google Docs. + */ + +/** + * @typedef {Object} FilesListFolderContinueArg + * @property {string} cursor - The cursor returned by your last call to + * list_folder or list_folder/continue. + */ + +/** + * @typedef {Object} FilesListFolderContinueError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'reset'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesListFolderError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {FilePropertiesTemplateError} [template_error] - Available if .tag + * is template_error. + * @property {('path'|'template_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesListFolderGetLatestCursorResult + * @property {string} cursor - Pass the cursor into list_folder/continue to see + * what's changed in the folder since your previous query. + */ + +/** + * @typedef {Object} FilesListFolderLongpollArg + * @property {string} cursor - A cursor as returned by list_folder or + * list_folder/continue. Cursors retrieved by setting + * ListFolderArg.include_media_info to true are not supported. + * @property {number} timeout - A timeout in seconds. The request will block for + * at most this length of time, plus up to 90 seconds of random jitter added to + * avoid the thundering herd problem. Care should be taken when using this + * parameter, as some network infrastructure does not support long timeouts. + */ + +/** + * @typedef {Object} FilesListFolderLongpollError + * @property {('reset'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesListFolderLongpollResult + * @property {boolean} changes - Indicates whether new changes are available. If + * true, call list_folder/continue to retrieve the changes. + * @property {number} [backoff] - If present, backoff for at least this many + * seconds before calling list_folder/longpoll again. + */ + +/** + * @typedef {Object} FilesListFolderResult + * @property + * {Array.<(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)>} + * entries - The files and (direct) subfolders in the folder. + * @property {string} cursor - Pass the cursor into list_folder/continue to see + * what's changed in the folder since your previous query. + * @property {boolean} has_more - If true, then there are more entries + * available. Pass the cursor to list_folder/continue to retrieve the rest. + */ + +/** + * @typedef {Object} FilesListRevisionsArg + * @property {string} path - The path to the file you want to see the revisions + * of. + * @property {FilesListRevisionsMode} mode - Determines the behavior of the API + * in listing the revisions for a given file path or id. + * @property {number} limit - The maximum number of revision entries returned. + */ + +/** + * @typedef {Object} FilesListRevisionsError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesListRevisionsMode + * @property {('path'|'id'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesListRevisionsResult + * @property {boolean} is_deleted - If the file identified by the latest + * revision in the response is either deleted or moved. + * @property {Array.} entries - The revisions for the file. + * Only revisions that are not deleted will show up here. + * @property {Timestamp} [server_deleted] - The time of deletion if the file was + * deleted. + */ + +/** + * @typedef {Object} FilesLockConflictError + * @property {FilesFileLock} lock - The lock that caused the conflict. + */ + +/** + * @typedef {Object} FilesLockFileArg + * @property {string} path - Path in the user's Dropbox to a file. + */ + +/** + * @typedef {Object} FilesLockFileBatchArg + * @property {Array.} entries - List of 'entries'. Each + * 'entry' contains a path of the file which will be locked or queried. + * Duplicate path arguments in the batch are considered only once. + */ + +/** + * @typedef {Object} FilesLockFileBatchResult + * @property {Array.} entries - Each Entry in the + * 'entries' will have '.tag' with the operation status (e.g. success), the + * metadata for the file and the lock state after the operation. + */ + +/** + * @typedef {Object} FilesLockFileError + * @property {FilesLookupError} [path_lookup] - Available if .tag is + * path_lookup. Could not find the specified resource. + * @property {FilesLockConflictError} [lock_conflict] - Available if .tag is + * lock_conflict. The user action conflicts with an existing lock on the file. + * @property {('path_lookup'|'too_many_write_operations'|'too_many_files'|'no_write_permission'|'cannot_be_locked'|'file_not_shared'|'lock_conflict'|'internal_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesLockFileResult + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - Metadata of the file. + * @property {FilesFileLock} lock - The file lock state after the operation. + */ + +/** + * @typedef {Object} FilesLockFileResultEntry + * @property {FilesLockFileResult} [success] - Available if .tag is success. + * @property {FilesLockFileError} [failure] - Available if .tag is failure. + * @property {('success'|'failure')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesLookupError + * @property {string} [malformed_path] - Available if .tag is malformed_path. + * The given path does not satisfy the required path format. Please refer to the + * :link:`Path formats documentation + * https://www.dropbox.com/developers/documentation/http/documentation#path-formats` + * for more information. + * @property {('malformed_path'|'not_found'|'not_file'|'not_folder'|'restricted_content'|'unsupported_content_type'|'locked'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesMediaInfo + * @property {(FilesPhotoMetadata|FilesVideoMetadata)} [metadata] - Available if + * .tag is metadata. The metadata for the photo/video. + * @property {('pending'|'metadata')} .tag - Tag identifying the union variant. + */ + +/** + * Metadata for a photo or video. + * @typedef {Object} FilesMediaMetadata +@property {("photo"|"video")} .tag - Tag identifying the subtype variant. + * @property {FilesDimensions} [dimensions] - Dimension of the photo/video. + * @property {FilesGpsCoordinates} [location] - The GPS coordinate of the + * photo/video. + * @property {Timestamp} [time_taken] - The timestamp when the photo/video is + * taken. + */ + +/** + * Metadata for a file or folder. + * @typedef {Object} FilesMetadata +@property {("file"|"folder"|"deleted")} .tag - Tag identifying the subtype +variant. + * @property {string} name - The last component of the path (including + * extension). This never contains a slash. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will be null if the file + * or folder is not mounted. + * @property {string} [path_display] - The cased path to be used for display + * purposes only. In rare instances the casing will not correctly match the + * user's filesystem, but this behavior will match the path provided in the Core + * API v1, and at least the last path component will have the correct casing. + * Changes to only the casing of paths won't be returned by + * list_folder/continue. This field will be null if the file or folder is not + * mounted. + * @property {string} [parent_shared_folder_id] - Please use + * FileSharingInfo.parent_shared_folder_id or + * FolderSharingInfo.parent_shared_folder_id instead. + * @property {string} [preview_url] - The preview URL of the file. + */ + +/** + * Metadata for a file, folder or other resource types. + * @typedef {Object} FilesMetadataV2 + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * [metadata] - Available if .tag is metadata. + * @property {('metadata'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesMinimalFileLinkMetadata + * @property {string} url - URL of the shared link. + * @property {string} rev - A unique identifier for the current revision of a + * file. This field is the same rev as elsewhere in the API and can be used to + * detect changes and avoid conflicts. + * @property {string} [id] - Unique identifier for the linked file. + * @property {string} [path] - Full path in the user's Dropbox. This always + * starts with a slash. This field will only be present only if the linked file + * is in the authenticated user's Dropbox. + */ + +/** + * @typedef {Object} FilesMoveBatchArg + * @property {Array.} entries - List of entries to be moved + * or copied. Each entry is RelocationPath. + * @property {boolean} autorename - If there's a conflict with any file, have + * the Dropbox server try to autorename that file to avoid the conflict. + * @property {boolean} allow_ownership_transfer - Allow moves by owner even if + * it would result in an ownership transfer for the content being moved. This + * does not apply to copies. + */ + +/** + * @typedef {Object} FilesMoveIntoFamilyError + * @property {('is_shared_folder'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesMoveIntoVaultError + * @property {('is_shared_folder'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesPaperContentError + * @property {('insufficient_permissions'|'content_malformed'|'doc_length_exceeded'|'image_size_exceeded'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesPaperCreateArg + * @property {Object} [contents] - The file contents to be uploaded. + * @property {string} path - The fully qualified path to the location in the + * user's Dropbox where the Paper Doc should be created. This should include the + * document's title and end with .paper. + * @property {FilesImportFormat} import_format - The format of the provided + * data. + */ + +/** + * @typedef {Object} FilesPaperCreateError + * @property {('insufficient_permissions'|'content_malformed'|'doc_length_exceeded'|'image_size_exceeded'|'other'|'invalid_path'|'email_unverified'|'invalid_file_extension'|'paper_disabled')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesPaperCreateResult + * @property {string} url - URL to open the Paper Doc. + * @property {string} result_path - The fully qualified path the Paper Doc was + * actually created at. + * @property {string} file_id - The id to use in Dropbox APIs when referencing + * the Paper Doc. + * @property {number} paper_revision - The current doc revision. + */ + +/** + * @typedef {Object} FilesPaperDocUpdatePolicy + * @property {('update'|'overwrite'|'prepend'|'append'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesPaperUpdateArg + * @property {Object} [contents] - The file contents to be uploaded. + * @property {string} path - Path in the user's Dropbox to update. The path must + * correspond to a Paper doc or an error will be returned. + * @property {FilesImportFormat} import_format - The format of the provided + * data. + * @property {FilesPaperDocUpdatePolicy} doc_update_policy - How the provided + * content should be applied to the doc. + * @property {number} [paper_revision] - The latest doc revision. Required when + * doc_update_policy is update. This value must match the current revision of + * the doc or error revision_mismatch will be returned. + */ + +/** + * @typedef {Object} FilesPaperUpdateError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('insufficient_permissions'|'content_malformed'|'doc_length_exceeded'|'image_size_exceeded'|'other'|'path'|'revision_mismatch'|'doc_archived'|'doc_deleted')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesPaperUpdateResult + * @property {number} paper_revision - The current doc revision. + */ + +/** + * @typedef {Object} FilesPathOrLink + * @property {string} [path] - Available if .tag is path. + * @property {FilesSharedLinkFileInfo} [link] - Available if .tag is link. + * @property {('path'|'link'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesPathToTags + * @property {string} path - Path of the item. + * @property {Array.} tags - Tags assigned to this item. + */ + +/** + * Metadata for a photo. + * @typedef {Object} FilesPhotoMetadata +@property {'photo'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {FilesDimensions} [dimensions] - Dimension of the photo/video. + * @property {FilesGpsCoordinates} [location] - The GPS coordinate of the + * photo/video. + * @property {Timestamp} [time_taken] - The timestamp when the photo/video is + * taken. + */ + +/** + * @typedef {Object} FilesPreviewArg + * @property {string} path - The path of the file to preview. + * @property {string} [rev] - Please specify revision in path instead. + */ + +/** + * @typedef {Object} FilesPreviewError + * @property {FilesLookupError} [path] - Available if .tag is path. An error + * occurs when downloading metadata for the file. + * @property {('path'|'in_progress'|'unsupported_extension'|'unsupported_content')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesPreviewResult + * @property {FilesFileMetadata} [file_metadata] - Metadata corresponding to the + * file received as an argument. Will be populated if the endpoint is called + * with a path (ReadPath). + * @property {FilesMinimalFileLinkMetadata} [link_metadata] - Minimal metadata + * corresponding to the file received as an argument. Will be populated if the + * endpoint is called using a shared link (SharedLinkFileInfo). + */ + +/** + * @typedef {Object} FilesRelocationArg + * @property {string} from_path - Path in the user's Dropbox to be copied or + * moved. + * @property {string} to_path - Path in the user's Dropbox that is the + * destination. + * @property {boolean} allow_shared_folder - This flag has no effect. + * @property {boolean} autorename - If there's a conflict, have the Dropbox + * server try to autorename the file to avoid the conflict. + * @property {boolean} allow_ownership_transfer - Allow moves by owner even if + * it would result in an ownership transfer for the content being moved. This + * does not apply to copies. + */ + +/** + * @typedef {Object} FilesRelocationBatchArg + * @property {Array.} entries - List of entries to be moved + * or copied. Each entry is RelocationPath. + * @property {boolean} autorename - If there's a conflict with any file, have + * the Dropbox server try to autorename that file to avoid the conflict. + * @property {boolean} allow_shared_folder - This flag has no effect. + * @property {boolean} allow_ownership_transfer - Allow moves by owner even if + * it would result in an ownership transfer for the content being moved. This + * does not apply to copies. + */ + +/** + * @typedef {Object} FilesRelocationBatchArgBase + * @property {Array.} entries - List of entries to be moved + * or copied. Each entry is RelocationPath. + * @property {boolean} autorename - If there's a conflict with any file, have + * the Dropbox server try to autorename that file to avoid the conflict. + */ + +/** + * @typedef {Object} FilesRelocationBatchError + * @property {FilesLookupError} [from_lookup] - Available if .tag is + * from_lookup. + * @property {FilesWriteError} [from_write] - Available if .tag is from_write. + * @property {FilesWriteError} [to] - Available if .tag is to. + * @property {FilesMoveIntoVaultError} [cant_move_into_vault] - Available if + * .tag is cant_move_into_vault. Some content cannot be moved into Vault under + * certain circumstances, see detailed error. + * @property {FilesMoveIntoFamilyError} [cant_move_into_family] - Available if + * .tag is cant_move_into_family. Some content cannot be moved into the Family + * Room folder under certain circumstances, see detailed error. + * @property {('from_lookup'|'from_write'|'to'|'cant_copy_shared_folder'|'cant_nest_shared_folder'|'cant_move_folder_into_itself'|'too_many_files'|'duplicated_or_nested_paths'|'cant_transfer_ownership'|'insufficient_quota'|'internal_error'|'cant_move_shared_folder'|'cant_move_into_vault'|'cant_move_into_family'|'other'|'too_many_write_operations')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesRelocationBatchErrorEntry + * @property {FilesRelocationError} [relocation_error] - Available if .tag is + * relocation_error. User errors that retry won't help. + * @property {('relocation_error'|'internal_error'|'too_many_write_operations'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesRelocationBatchJobStatus + * @property {FilesRelocationBatchResult} [complete] - Available if .tag is + * complete. The copy or move batch job has finished. + * @property {FilesRelocationBatchError} [failed] - Available if .tag is failed. + * The copy or move batch job has failed with exception. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ + +/** + * Result returned by copy_batch or move_batch that may either launch an + * asynchronous job or complete synchronously. + * @typedef {Object} FilesRelocationBatchLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {FilesRelocationBatchResult} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesRelocationBatchResult + * @property {Array.} entries + */ + +/** + * @typedef {Object} FilesRelocationBatchResultData + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - Metadata of the relocated object. + */ + +/** + * @typedef {Object} FilesRelocationBatchResultEntry + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * [success] - Available if .tag is success. + * @property {FilesRelocationBatchErrorEntry} [failure] - Available if .tag is + * failure. + * @property {('success'|'failure'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Result returned by copy_batch/check:2 or move_batch/check:2 that may either + * be in progress or completed with result for each entry. + * @typedef {Object} FilesRelocationBatchV2JobStatus + * @property {FilesRelocationBatchV2Result} [complete] - Available if .tag is + * complete. The copy or move batch job has finished. + * @property {('in_progress'|'complete')} .tag - Tag identifying the union variant. + */ + +/** + * Result returned by copy_batch:2 or move_batch:2 that may either launch an + * asynchronous job or complete synchronously. + * @typedef {Object} FilesRelocationBatchV2Launch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {FilesRelocationBatchV2Result} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesRelocationBatchV2Result + * @property {Array.} entries - Each entry in + * CopyBatchArg.entries or MoveBatchArg.entries will appear at the same position + * inside RelocationBatchV2Result.entries. + */ + +/** + * @typedef {Object} FilesRelocationError + * @property {FilesLookupError} [from_lookup] - Available if .tag is + * from_lookup. + * @property {FilesWriteError} [from_write] - Available if .tag is from_write. + * @property {FilesWriteError} [to] - Available if .tag is to. + * @property {FilesMoveIntoVaultError} [cant_move_into_vault] - Available if + * .tag is cant_move_into_vault. Some content cannot be moved into Vault under + * certain circumstances, see detailed error. + * @property {FilesMoveIntoFamilyError} [cant_move_into_family] - Available if + * .tag is cant_move_into_family. Some content cannot be moved into the Family + * Room folder under certain circumstances, see detailed error. + * @property {('from_lookup'|'from_write'|'to'|'cant_copy_shared_folder'|'cant_nest_shared_folder'|'cant_move_folder_into_itself'|'too_many_files'|'duplicated_or_nested_paths'|'cant_transfer_ownership'|'insufficient_quota'|'internal_error'|'cant_move_shared_folder'|'cant_move_into_vault'|'cant_move_into_family'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesRelocationPath + * @property {string} from_path - Path in the user's Dropbox to be copied or + * moved. + * @property {string} to_path - Path in the user's Dropbox that is the + * destination. + */ + +/** + * @typedef {Object} FilesRelocationResult + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - Metadata of the relocated object. + */ + +/** + * @typedef {Object} FilesRemoveTagArg + * @property {string} path - Path to the item to tag. + * @property {string} tag_text - The tag to remove. Will be automatically + * converted to lowercase letters. + */ + +/** + * @typedef {Object} FilesRemoveTagError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'other'|'tag_not_present')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesRestoreArg + * @property {string} path - The path to save the restored file. + * @property {string} rev - The revision to restore. + */ + +/** + * @typedef {Object} FilesRestoreError + * @property {FilesLookupError} [path_lookup] - Available if .tag is + * path_lookup. An error occurs when downloading metadata for the file. + * @property {FilesWriteError} [path_write] - Available if .tag is path_write. + * An error occurs when trying to restore the file to that path. + * @property {('path_lookup'|'path_write'|'invalid_revision'|'in_progress'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesSaveCopyReferenceArg + * @property {string} copy_reference - A copy reference returned by + * copy_reference/get. + * @property {string} path - Path in the user's Dropbox that is the destination. + */ + +/** + * @typedef {Object} FilesSaveCopyReferenceError + * @property {FilesWriteError} [path] - Available if .tag is path. + * @property {('path'|'invalid_copy_reference'|'no_permission'|'not_found'|'too_many_files'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesSaveCopyReferenceResult + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - The metadata of the saved file or folder in the user's Dropbox. + */ + +/** + * @typedef {Object} FilesSaveUrlArg + * @property {string} path - The path in Dropbox where the URL will be saved to. + * @property {string} url - The URL to be saved. + */ + +/** + * @typedef {Object} FilesSaveUrlError + * @property {FilesWriteError} [path] - Available if .tag is path. + * @property {('path'|'download_failed'|'invalid_url'|'not_found'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesSaveUrlJobStatus + * @property {FilesFileMetadata} [complete] - Available if .tag is complete. + * Metadata of the file where the URL is saved to. + * @property {FilesSaveUrlError} [failed] - Available if .tag is failed. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesSaveUrlResult + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {FilesFileMetadata} [complete] - Available if .tag is complete. + * Metadata of the file where the URL is saved to. + * @property {('async_job_id'|'complete')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesSearchArg + * @property {string} path - The path in the user's Dropbox to search. Should + * probably be a folder. + * @property {string} query - The string to search for. Query string may be + * rewritten to improve relevance of results. The string is split on spaces into + * multiple tokens. For file name searching, the last token is used for prefix + * matching (i.e. "bat c" matches "bat cave" but not "batman car"). + * @property {number} start - The starting index within the search results (used + * for paging). + * @property {number} max_results - The maximum number of search results to + * return. + * @property {FilesSearchMode} mode - The search mode (filename, + * filename_and_content, or deleted_filename). Note that searching file content + * is only available for Dropbox Business accounts. + */ + +/** + * @typedef {Object} FilesSearchError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {string} [invalid_argument] - Available if .tag is + * invalid_argument. + * @property {('path'|'invalid_argument'|'internal_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesSearchMatch + * @property {FilesSearchMatchType} match_type - The type of the match. + * @property {(FilesFileMetadata|FilesFolderMetadata|FilesDeletedMetadata)} + * metadata - The metadata for the matched file or folder. + */ + +/** + * @typedef {Object} FilesSearchMatchFieldOptions + * @property {boolean} include_highlights - Whether to include highlight span + * from file title. + */ + +/** + * Indicates what type of match was found for a given item. + * @typedef {Object} FilesSearchMatchType + * @property {('filename'|'content'|'both')} .tag - Tag identifying the union variant. + */ + +/** + * Indicates what type of match was found for a given item. + * @typedef {Object} FilesSearchMatchTypeV2 + * @property {('filename'|'file_content'|'filename_and_content'|'image_content'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesSearchMatchV2 + * @property {FilesMetadataV2} metadata - The metadata for the matched file or + * folder. + * @property {FilesSearchMatchTypeV2} [match_type] - The type of the match. + * @property {Array.} [highlight_spans] - The list of + * HighlightSpan determines which parts of the file title should be highlighted. + */ + +/** + * @typedef {Object} FilesSearchMode + * @property {('filename'|'filename_and_content'|'deleted_filename')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesSearchOptions + * @property {string} [path] - Scopes the search to a path in the user's + * Dropbox. Searches the entire Dropbox if not specified. + * @property {number} max_results - The maximum number of search results to + * return. + * @property {FilesSearchOrderBy} [order_by] - Specified property of the order + * of search results. By default, results are sorted by relevance. + * @property {FilesFileStatus} file_status - Restricts search to the given file + * status. + * @property {boolean} filename_only - Restricts search to only match on + * filenames. + * @property {Array.} [file_extensions] - Restricts search to only the + * extensions specified. Only supported for active file search. + * @property {Array.} [file_categories] - Restricts search to + * only the file categories specified. Only supported for active file search. + * @property {string} [account_id] - Restricts results to the given account id. + */ + +/** + * @typedef {Object} FilesSearchOrderBy + * @property {('relevance'|'last_modified_time'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesSearchResult + * @property {Array.} matches - A list (possibly empty) of + * matches for the query. + * @property {boolean} more - Used for paging. If true, indicates there is + * another page of results available that can be fetched by calling search + * again. + * @property {number} start - Used for paging. Value to set the start argument + * to when calling search to fetch the next page of results. + */ + +/** + * @typedef {Object} FilesSearchV2Arg + * @property {string} query - The string to search for. May match across + * multiple fields based on the request arguments. + * @property {FilesSearchOptions} [options] - Options for more targeted search + * results. + * @property {FilesSearchMatchFieldOptions} [match_field_options] - Options for + * search results match fields. + * @property {boolean} [include_highlights] - Deprecated and moved this option + * to SearchMatchFieldOptions. + */ + +/** + * @typedef {Object} FilesSearchV2ContinueArg + * @property {string} cursor - The cursor returned by your last call to + * search:2. Used to fetch the next page of results. + */ + +/** + * @typedef {Object} FilesSearchV2Result + * @property {Array.} matches - A list (possibly empty) of + * matches for the query. + * @property {boolean} has_more - Used for paging. If true, indicates there is + * another page of results available that can be fetched by calling + * search/continue:2 with the cursor. + * @property {string} [cursor] - Pass the cursor into search/continue:2 to fetch + * the next page of results. + */ + +/** + * @typedef {Object} FilesSharedLink + * @property {string} url - Shared link url. + * @property {string} [password] - Password for the shared link. + */ + +/** + * @typedef {Object} FilesSharedLinkFileInfo + * @property {string} url - The shared link corresponding to either a file or + * shared link to a folder. If it is for a folder shared link, we use the path + * param to determine for which file in the folder the view is for. + * @property {string} [path] - The path corresponding to a file in a shared link + * to a folder. Required for shared links to folders. + * @property {string} [password] - Password for the shared link. Required for + * password-protected shared links to files unless it can be read from a + * cookie. + */ + +/** + * Sharing info for a file or folder. + * @typedef {Object} FilesSharingInfo + * @property {boolean} read_only - True if the file or folder is inside a + * read-only shared folder. + */ + +/** + * @typedef {Object} FilesSingleUserLock + * @property {Timestamp} created - The time the lock was created. + * @property {string} lock_holder_account_id - The account ID of the lock holder + * if known. + * @property {string} [lock_holder_team_id] - The id of the team of the account + * holder if it exists. + */ + +/** + * @typedef {Object} FilesSymlinkInfo + * @property {string} target - The target this symlink points to. + */ + +/** + * @typedef {Object} FilesSyncSetting + * @property {('default'|'not_synced'|'not_synced_inactive'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesSyncSettingArg + * @property {('default'|'not_synced'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesSyncSettingsError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'unsupported_combination'|'unsupported_configuration'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Tag that can be added in multiple ways. + * @typedef {Object} FilesTag + * @property {FilesUserGeneratedTag} [user_generated_tag] - Available if .tag is + * user_generated_tag. Tag generated by the user. + * @property {('user_generated_tag'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesThumbnailArg + * @property {string} path - The path to the image file you want to thumbnail. + * @property {FilesThumbnailFormat} format - The format for the thumbnail image, + * jpeg (default) or png. For images that are photos, jpeg should be preferred, + * while png is better for screenshots and digital arts. + * @property {FilesThumbnailSize} size - The size for the thumbnail image. + * @property {FilesThumbnailMode} mode - How to resize and crop the image to + * achieve the desired size. + */ + +/** + * @typedef {Object} FilesThumbnailError + * @property {FilesLookupError} [path] - Available if .tag is path. An error + * occurs when downloading metadata for the image. + * @property {('path'|'unsupported_extension'|'unsupported_image'|'conversion_error')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesThumbnailFormat + * @property {('jpeg'|'png')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesThumbnailMode + * @property {('strict'|'bestfit'|'fitone_bestfit')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesThumbnailSize + * @property {('w32h32'|'w64h64'|'w128h128'|'w256h256'|'w480h320'|'w640h480'|'w960h640'|'w1024h768'|'w2048h1536')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesThumbnailV2Arg + * @property {FilesPathOrLink} resource - Information specifying which file to + * preview. This could be a path to a file, a shared link pointing to a file, or + * a shared link pointing to a folder, with a relative path. + * @property {FilesThumbnailFormat} format - The format for the thumbnail image, + * jpeg (default) or png. For images that are photos, jpeg should be preferred, + * while png is better for screenshots and digital arts. + * @property {FilesThumbnailSize} size - The size for the thumbnail image. + * @property {FilesThumbnailMode} mode - How to resize and crop the image to + * achieve the desired size. + */ + +/** + * @typedef {Object} FilesThumbnailV2Error + * @property {FilesLookupError} [path] - Available if .tag is path. An error + * occurred when downloading metadata for the image. + * @property {('path'|'unsupported_extension'|'unsupported_image'|'conversion_error'|'access_denied'|'not_found'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesUnlockFileArg + * @property {string} path - Path in the user's Dropbox to a file. + */ + +/** + * @typedef {Object} FilesUnlockFileBatchArg + * @property {Array.} entries - List of 'entries'. Each + * 'entry' contains a path of the file which will be unlocked. Duplicate path + * arguments in the batch are considered only once. + */ + +/** + * @typedef {Object} FilesUploadArg + * @property {Object} [contents] - The file contents to be uploaded. + * @property {string} path - Path in the user's Dropbox to save the file. + * @property {FilesWriteMode} mode - Selects what to do if the file already + * exists. + * @property {boolean} autorename - If there's a conflict, as determined by + * mode, have the Dropbox server try to autorename the file to avoid conflict. + * @property {Timestamp} [client_modified] - The value to store as the + * client_modified timestamp. Dropbox automatically records the time at which + * the file was written to the Dropbox servers. It can also record an additional + * timestamp, provided by Dropbox desktop clients, mobile clients, and API apps + * of when the file was actually created or modified. + * @property {boolean} mute - Normally, users are made aware of any file + * modifications in their Dropbox account via notifications in the client + * software. If true, this tells the clients that this modification shouldn't + * result in a user notification. + * @property {Array.} [property_groups] - List of + * custom properties to add to file. + * @property {boolean} strict_conflict - Be more strict about how each WriteMode + * detects conflict. For example, always return a conflict error when mode = + * WriteMode.update and the given "rev" doesn't match the existing file's "rev", + * even if the existing file has been deleted. This also forces a conflict even + * when the target path refers to a file with identical contents. + * @property {string} [content_hash] - A hash of the file content uploaded in + * this call. If provided and the uploaded content does not match this hash, an + * error will be returned. For more information see our Content hash + * https://www.dropbox.com/developers/reference/content-hash page. + */ + +/** + * @typedef {Object} FilesUploadError + * @property {FilesUploadWriteFailed} [path] - Available if .tag is path. Unable + * to save the uploaded contents to a file. + * @property {FilePropertiesInvalidPropertyGroupError} [properties_error] - + * Available if .tag is properties_error. The supplied property group is + * invalid. The file has uploaded without property groups. + * @property {('path'|'properties_error'|'payload_too_large'|'content_hash_mismatch'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesUploadSessionAppendArg + * @property {Object} [contents] - The file contents to be uploaded. + * @property {FilesUploadSessionCursor} cursor - Contains the upload session ID + * and the offset. + * @property {boolean} close - If true, the current session will be closed, at + * which point you won't be able to call upload_session/append:2 anymore with + * the current session. + * @property {string} [content_hash] - A hash of the file content uploaded in + * this call. If provided and the uploaded content does not match this hash, an + * error will be returned. For more information see our Content hash + * https://www.dropbox.com/developers/reference/content-hash page. + */ + +/** + * @typedef {Object} FilesUploadSessionAppendError + * @property {FilesUploadSessionOffsetError} [incorrect_offset] - Available if + * .tag is incorrect_offset. The specified offset was incorrect. See the value + * for the correct offset. This error may occur when a previous request was + * received and processed successfully but the client did not receive the + * response, e.g. due to a network error. + * @property {('not_found'|'incorrect_offset'|'closed'|'not_closed'|'too_large'|'concurrent_session_invalid_offset'|'concurrent_session_invalid_data_size'|'payload_too_large'|'other'|'content_hash_mismatch')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesUploadSessionCursor + * @property {Object} [contents] - The file contents to be uploaded. + * @property {string} session_id - The upload session ID (returned by + * upload_session/start). + * @property {number} offset - Offset in bytes at which data should be appended. + * We use this to make sure upload data isn't lost or duplicated in the event of + * a network error. + */ + +/** + * @typedef {Object} FilesUploadSessionFinishArg + * @property {Object} [contents] - The file contents to be uploaded. + * @property {FilesUploadSessionCursor} cursor - Contains the upload session ID + * and the offset. + * @property {FilesCommitInfo} commit - Contains the path and other optional + * modifiers for the commit. + * @property {string} [content_hash] - A hash of the file content uploaded in + * this call. If provided and the uploaded content does not match this hash, an + * error will be returned. For more information see our Content hash + * https://www.dropbox.com/developers/reference/content-hash page. + */ + +/** + * @typedef {Object} FilesUploadSessionFinishBatchArg + * @property {Array.} entries - Commit information + * for each file in the batch. + */ + +/** + * @typedef {Object} FilesUploadSessionFinishBatchJobStatus + * @property {FilesUploadSessionFinishBatchResult} [complete] - Available if + * .tag is complete. The :route:`upload_session/finish_batch` has finished. + * @property {('in_progress'|'complete')} .tag - Tag identifying the union variant. + */ + +/** + * Result returned by upload_session/finish_batch that may either launch an + * asynchronous job or complete synchronously. + * @typedef {Object} FilesUploadSessionFinishBatchLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {FilesUploadSessionFinishBatchResult} [complete] - Available if + * .tag is complete. + * @property {('async_job_id'|'complete'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesUploadSessionFinishBatchResult + * @property {Array.} entries - Each + * entry in UploadSessionFinishBatchArg.entries will appear at the same position + * inside UploadSessionFinishBatchResult.entries. + */ + +/** + * @typedef {Object} FilesUploadSessionFinishBatchResultEntry + * @property {FilesFileMetadata} [success] - Available if .tag is success. + * @property {FilesUploadSessionFinishError} [failure] - Available if .tag is + * failure. + * @property {('success'|'failure')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesUploadSessionFinishError + * @property {FilesUploadSessionLookupError} [lookup_failed] - Available if .tag + * is lookup_failed. The session arguments are incorrect; the value explains the + * reason. + * @property {FilesWriteError} [path] - Available if .tag is path. Unable to + * save the uploaded contents to a file. Data has already been appended to the + * upload session. Please retry with empty data body and updated offset. + * @property {FilePropertiesInvalidPropertyGroupError} [properties_error] - + * Available if .tag is properties_error. The supplied property group is + * invalid. The file has uploaded without property groups. + * @property {('lookup_failed'|'path'|'properties_error'|'too_many_shared_folder_targets'|'too_many_write_operations'|'concurrent_session_data_not_allowed'|'concurrent_session_not_closed'|'concurrent_session_missing_data'|'payload_too_large'|'content_hash_mismatch'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesUploadSessionLookupError + * @property {FilesUploadSessionOffsetError} [incorrect_offset] - Available if + * .tag is incorrect_offset. The specified offset was incorrect. See the value + * for the correct offset. This error may occur when a previous request was + * received and processed successfully but the client did not receive the + * response, e.g. due to a network error. + * @property {('not_found'|'incorrect_offset'|'closed'|'not_closed'|'too_large'|'concurrent_session_invalid_offset'|'concurrent_session_invalid_data_size'|'payload_too_large'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesUploadSessionOffsetError + * @property {number} correct_offset - The offset up to which data has been + * collected. + */ + +/** + * @typedef {Object} FilesUploadSessionStartArg + * @property {Object} [contents] - The file contents to be uploaded. + * @property {boolean} close - If true, the current session will be closed, at + * which point you won't be able to call upload_session/append:2 anymore with + * the current session. + * @property {FilesUploadSessionType} [session_type] - Type of upload session + * you want to start. If not specified, default is UploadSessionType.sequential. + * @property {string} [content_hash] - A hash of the file content uploaded in + * this call. If provided and the uploaded content does not match this hash, an + * error will be returned. For more information see our Content hash + * https://www.dropbox.com/developers/reference/content-hash page. + */ + +/** + * @typedef {Object} FilesUploadSessionStartBatchArg + * @property {number} num_sessions - The number of upload sessions to start. + * @property {FilesUploadSessionType} [session_type] - Type of upload session + * you want to start. If not specified, default is UploadSessionType.sequential. + */ + +/** + * @typedef {Object} FilesUploadSessionStartBatchResult + * @property {Array.} session_ids - A List of unique identifiers for the + * upload session. Pass each session_id to upload_session/append:2 and + * upload_session/finish. + */ + +/** + * @typedef {Object} FilesUploadSessionStartError + * @property {('concurrent_session_data_not_allowed'|'concurrent_session_close_not_allowed'|'payload_too_large'|'content_hash_mismatch'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesUploadSessionStartResult + * @property {string} session_id - A unique identifier for the upload session. + * Pass this to upload_session/append:2 and upload_session/finish. + */ + +/** + * @typedef {Object} FilesUploadSessionType + * @property {('sequential'|'concurrent'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesUploadWriteFailed + * @property {FilesWriteError} reason - The reason why the file couldn't be + * saved. + * @property {string} upload_session_id - The upload session ID; data has + * already been uploaded to the corresponding upload session and this ID may be + * used to retry the commit with upload_session/finish. + */ + +/** + * @typedef {Object} FilesUserGeneratedTag + * @property {string} tag_text + */ + +/** + * Metadata for a video. + * @typedef {Object} FilesVideoMetadata +@property {'video'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {FilesDimensions} [dimensions] - Dimension of the photo/video. + * @property {FilesGpsCoordinates} [location] - The GPS coordinate of the + * photo/video. + * @property {Timestamp} [time_taken] - The timestamp when the photo/video is + * taken. + * @property {number} [duration] - The duration of the video in milliseconds. + */ + +/** + * @typedef {Object} FilesWriteConflictError + * @property {('file'|'folder'|'file_ancestor'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} FilesWriteError + * @property {string} [malformed_path] - Available if .tag is malformed_path. + * The given path does not satisfy the required path format. Please refer to the + * :link:`Path formats documentation + * https://www.dropbox.com/developers/documentation/http/documentation#path-formats` + * for more information. + * @property {FilesWriteConflictError} [conflict] - Available if .tag is + * conflict. Couldn't write to the target path because there was something in + * the way. + * @property {('malformed_path'|'conflict'|'no_write_permission'|'insufficient_space'|'disallowed_name'|'team_folder'|'operation_suppressed'|'too_many_write_operations'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Your intent when writing a file to some path. This is used to determine what + * constitutes a conflict and what the autorename strategy is. In some + * situations, the conflict behavior is identical: (a) If the target path + * doesn't refer to anything, the file is always written; no conflict. (b) If + * the target path refers to a folder, it's always a conflict. (c) If the target + * path refers to a file with identical contents, nothing gets written; no + * conflict. The conflict checking differs in the case where there's a file at + * the target path with contents different from the contents you're trying to + * write. + * @typedef {Object} FilesWriteMode + * @property {string} [update] - Available if .tag is update. Overwrite if the + * given "rev" matches the existing file's "rev". The supplied value should be + * the latest known "rev" of the file, for example, from :type:`FileMetadata`, + * from when the file was last downloaded by the app. This will cause the file + * on the Dropbox servers to be overwritten if the given "rev" matches the + * existing file's current "rev" on the Dropbox servers. The autorename strategy + * is to append the string "conflicted copy" to the file name. For example, + * "document.txt" might become "document (conflicted copy).txt" or "document + * (Panda's conflicted copy).txt". + * @property {('add'|'overwrite'|'update')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} OpenidOpenIdError + * @property {('incorrect_openid_scopes'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * No Parameters + * @typedef {Object} OpenidUserInfoArgs + */ + +/** + * @typedef {Object} OpenidUserInfoError + * @property {OpenidOpenIdError} [openid_error] - Available if .tag is + * openid_error. + * @property {('openid_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} OpenidUserInfoResult + * @property {string} [family_name] - Last name of user. + * @property {string} [given_name] - First name of user. + * @property {string} [email] - Email address of user. + * @property {boolean} [email_verified] - If user is email verified. + * @property {string} iss - Issuer of token (in this case Dropbox). + * @property {string} sub - An identifier for the user. This is the Dropbox + * account_id, a string value such as dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc. + */ + +/** + * @typedef {Object} PaperAddMember + * @property {SharingMemberSelector} member - User which should be added to the + * Paper doc. Specify only email address or Dropbox account ID. + * @property {PaperPaperDocPermissionLevel} permission_level - Permission for + * the user. + */ + +/** + * @typedef {Object} PaperAddPaperDocUser + * @property {string} doc_id - The Paper doc ID. + * @property {Array.} members - User which should be added to + * the Paper doc. Specify only email address or Dropbox account ID. + * @property {string} [custom_message] - A personal message that will be emailed + * to each successfully added member. + * @property {boolean} quiet - Clients should set this to true if no email + * message shall be sent to added users. + */ + +/** + * Per-member result for docs/users/add. + * @typedef {Object} PaperAddPaperDocUserMemberResult + * @property {SharingMemberSelector} member - One of specified input members. + * @property {PaperAddPaperDocUserResult} result - The outcome of the action on + * this member. + */ + +/** + * @typedef {Object} PaperAddPaperDocUserResult + * @property {('success'|'unknown_error'|'sharing_outside_team_disabled'|'daily_limit_reached'|'user_is_owner'|'failed_user_data_retrieval'|'permission_already_granted'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} PaperCursor + * @property {string} value - The actual cursor value. + * @property {Timestamp} [expiration] - Expiration time of value. Some cursors + * might have expiration time assigned. This is a UTC value after which the + * cursor is no longer valid and the API starts returning an error. If cursor + * expires a new one needs to be obtained and pagination needs to be restarted. + * Some cursors might be short-lived some cursors might be long-lived. This + * really depends on the sorting type and order, e.g.: 1. on one hand, listing + * docs created by the user, sorted by the created time ascending will have + * undefinite expiration because the results cannot change while the iteration + * is happening. This cursor would be suitable for long term polling. 2. on the + * other hand, listing docs sorted by the last modified time will have a very + * short expiration as docs do get modified very often and the modified time can + * be changed while the iteration is happening thus altering the results. + */ + +/** + * @typedef {Object} PaperDocLookupError + * @property {('insufficient_permissions'|'other'|'doc_not_found')} .tag - Tag identifying the union variant. + */ + +/** + * The subscription level of a Paper doc. + * @typedef {Object} PaperDocSubscriptionLevel + * @property {('default'|'ignore'|'every'|'no_email')} .tag - Tag identifying the union variant. + */ + +/** + * The desired export format of the Paper doc. + * @typedef {Object} PaperExportFormat + * @property {('html'|'markdown'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Data structure representing a Paper folder. + * @typedef {Object} PaperFolder + * @property {string} id - Paper folder ID. This ID uniquely identifies the + * folder. + * @property {string} name - Paper folder name. + */ + +/** + * The sharing policy of a Paper folder. The sharing policy of subfolders is + * inherited from the root folder. + * @typedef {Object} PaperFolderSharingPolicyType + * @property {('team'|'invite_only')} .tag - Tag identifying the union variant. + */ + +/** + * The subscription level of a Paper folder. + * @typedef {Object} PaperFolderSubscriptionLevel + * @property {('none'|'activity_only'|'daily_emails'|'weekly_emails')} .tag - Tag identifying the union variant. + */ + +/** + * Metadata about Paper folders containing the specififed Paper doc. + * @typedef {Object} PaperFoldersContainingPaperDoc + * @property {PaperFolderSharingPolicyType} [folder_sharing_policy_type] - The + * sharing policy of the folder containing the Paper doc. + * @property {Array.} [folders] - The folder path. If present the + * first folder is the root folder. + */ + +/** + * The import format of the incoming data. + * @typedef {Object} PaperImportFormat + * @property {('html'|'markdown'|'plain_text'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} PaperInviteeInfoWithPermissionLevel + * @property {SharingInviteeInfo} invitee - Email address invited to the Paper + * doc. + * @property {PaperPaperDocPermissionLevel} permission_level - Permission level + * for the invitee. + */ + +/** + * @typedef {Object} PaperListDocsCursorError + * @property {PaperPaperApiCursorError} [cursor_error] - Available if .tag is + * cursor_error. + * @property {('cursor_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} PaperListPaperDocsArgs + * @property {PaperListPaperDocsFilterBy} filter_by - Allows user to specify how + * the Paper docs should be filtered. + * @property {PaperListPaperDocsSortBy} sort_by - Allows user to specify how the + * Paper docs should be sorted. + * @property {PaperListPaperDocsSortOrder} sort_order - Allows user to specify + * the sort order of the result. + * @property {number} limit - Size limit per batch. The maximum number of docs + * that can be retrieved per batch is 1000. Higher value results in invalid + * arguments error. + */ + +/** + * @typedef {Object} PaperListPaperDocsContinueArgs + * @property {string} cursor - The cursor obtained from docs/list or + * docs/list/continue. Allows for pagination. + */ + +/** + * @typedef {Object} PaperListPaperDocsFilterBy + * @property {('docs_accessed'|'docs_created'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} PaperListPaperDocsResponse + * @property {Array.} doc_ids - The list of Paper doc IDs that can be + * used to access the given Paper docs or supplied to other API methods. The + * list is sorted in the order specified by the initial call to docs/list. + * @property {PaperCursor} cursor - Pass the cursor into docs/list/continue to + * paginate through all files. The cursor preserves all properties as specified + * in the original call to docs/list. + * @property {boolean} has_more - Will be set to True if a subsequent call with + * the provided cursor to docs/list/continue returns immediately with some + * results. If set to False please allow some delay before making another call + * to docs/list/continue. + */ + +/** + * @typedef {Object} PaperListPaperDocsSortBy + * @property {('accessed'|'modified'|'created'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} PaperListPaperDocsSortOrder + * @property {('ascending'|'descending'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} PaperListUsersCursorError + * @property {PaperPaperApiCursorError} [cursor_error] - Available if .tag is + * cursor_error. + * @property {('insufficient_permissions'|'other'|'doc_not_found'|'cursor_error')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} PaperListUsersOnFolderArgs + * @property {string} doc_id - The Paper doc ID. + * @property {number} limit - Size limit per batch. The maximum number of users + * that can be retrieved per batch is 1000. Higher value results in invalid + * arguments error. + */ + +/** + * @typedef {Object} PaperListUsersOnFolderContinueArgs + * @property {string} doc_id - The Paper doc ID. + * @property {string} cursor - The cursor obtained from docs/folder_users/list + * or docs/folder_users/list/continue. Allows for pagination. + */ + +/** + * @typedef {Object} PaperListUsersOnFolderResponse + * @property {Array.} invitees - List of email addresses + * that are invited on the Paper folder. + * @property {Array.} users - List of users that are invited on + * the Paper folder. + * @property {PaperCursor} cursor - Pass the cursor into + * docs/folder_users/list/continue to paginate through all users. The cursor + * preserves all properties as specified in the original call to + * docs/folder_users/list. + * @property {boolean} has_more - Will be set to True if a subsequent call with + * the provided cursor to docs/folder_users/list/continue returns immediately + * with some results. If set to False please allow some delay before making + * another call to docs/folder_users/list/continue. + */ + +/** + * @typedef {Object} PaperListUsersOnPaperDocArgs + * @property {string} doc_id - The Paper doc ID. + * @property {number} limit - Size limit per batch. The maximum number of users + * that can be retrieved per batch is 1000. Higher value results in invalid + * arguments error. + * @property {PaperUserOnPaperDocFilter} filter_by - Specify this attribute if + * you want to obtain users that have already accessed the Paper doc. + */ + +/** + * @typedef {Object} PaperListUsersOnPaperDocContinueArgs + * @property {string} doc_id - The Paper doc ID. + * @property {string} cursor - The cursor obtained from docs/users/list or + * docs/users/list/continue. Allows for pagination. + */ + +/** + * @typedef {Object} PaperListUsersOnPaperDocResponse + * @property {Array.} invitees - List of + * email addresses with their respective permission levels that are invited on + * the Paper doc. + * @property {Array.} users - List of users + * with their respective permission levels that are invited on the Paper folder. + * @property {SharingUserInfo} doc_owner - The Paper doc owner. This field is + * populated on every single response. + * @property {PaperCursor} cursor - Pass the cursor into + * docs/users/list/continue to paginate through all users. The cursor preserves + * all properties as specified in the original call to docs/users/list. + * @property {boolean} has_more - Will be set to True if a subsequent call with + * the provided cursor to docs/users/list/continue returns immediately with some + * results. If set to False please allow some delay before making another call + * to docs/users/list/continue. + */ + +/** + * @typedef {Object} PaperPaperApiBaseError + * @property {('insufficient_permissions'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} PaperPaperApiCursorError + * @property {('expired_cursor'|'invalid_cursor'|'wrong_user_in_cursor'|'reset'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} PaperPaperDocCreateArgs + * @property {Object} [contents] - The file contents to be uploaded. + * @property {PaperImportFormat} import_format - The format of provided data. + * @property {string} [parent_folder_id] - The Paper folder ID where the Paper + * document should be created. The API user has to have write access to this + * folder or error is thrown. + */ + +/** + * @typedef {Object} PaperPaperDocCreateError + * @property {('insufficient_permissions'|'other'|'content_malformed'|'folder_not_found'|'doc_length_exceeded'|'image_size_exceeded')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} PaperPaperDocCreateUpdateResult + * @property {string} doc_id - Doc ID of the newly created doc. + * @property {number} revision - The Paper doc revision. Simply an ever + * increasing number. + * @property {string} title - The Paper doc title. + */ + +/** + * @typedef {Object} PaperPaperDocExport + * @property {string} doc_id - The Paper doc ID. + * @property {PaperExportFormat} export_format + */ + +/** + * @typedef {Object} PaperPaperDocExportResult + * @property {string} owner - The Paper doc owner's email address. + * @property {string} title - The Paper doc title. + * @property {number} revision - The Paper doc revision. Simply an ever + * increasing number. + * @property {string} mime_type - MIME type of the export. This corresponds to + * ExportFormat specified in the request. + */ + +/** + * @typedef {Object} PaperPaperDocPermissionLevel + * @property {('edit'|'view_and_comment'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} PaperPaperDocSharingPolicy + * @property {string} doc_id - The Paper doc ID. + * @property {PaperSharingPolicy} sharing_policy - The default sharing policy to + * be set for the Paper doc. + */ + +/** + * @typedef {Object} PaperPaperDocUpdateArgs + * @property {Object} [contents] - The file contents to be uploaded. + * @property {string} doc_id - The Paper doc ID. + * @property {PaperPaperDocUpdatePolicy} doc_update_policy - The policy used for + * the current update call. + * @property {number} revision - The latest doc revision. This value must match + * the head revision or an error code will be returned. This is to prevent + * colliding writes. + * @property {PaperImportFormat} import_format - The format of provided data. + */ + +/** + * @typedef {Object} PaperPaperDocUpdateError + * @property {('insufficient_permissions'|'other'|'doc_not_found'|'content_malformed'|'revision_mismatch'|'doc_length_exceeded'|'image_size_exceeded'|'doc_archived'|'doc_deleted')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} PaperPaperDocUpdatePolicy + * @property {('append'|'prepend'|'overwrite_all'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} PaperPaperFolderCreateArg + * @property {string} name - The name of the new Paper folder. + * @property {string} [parent_folder_id] - The encrypted Paper folder Id where + * the new Paper folder should be created. The API user has to have write access + * to this folder or error is thrown. If not supplied, the new folder will be + * created at top level. + * @property {boolean} [is_team_folder] - Whether the folder to be created + * should be a team folder. This value will be ignored if parent_folder_id is + * supplied, as the new folder will inherit the type (private or team folder) + * from its parent. We will by default create a top-level private folder if both + * parent_folder_id and is_team_folder are not supplied. + */ + +/** + * @typedef {Object} PaperPaperFolderCreateError + * @property {('insufficient_permissions'|'other'|'folder_not_found'|'invalid_folder_id')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} PaperPaperFolderCreateResult + * @property {string} folder_id - Folder ID of the newly created folder. + */ + +/** + * @typedef {Object} PaperRefPaperDoc + * @property {string} doc_id - The Paper doc ID. + */ + +/** + * @typedef {Object} PaperRemovePaperDocUser + * @property {string} doc_id - The Paper doc ID. + * @property {SharingMemberSelector} member - User which should be removed from + * the Paper doc. Specify only email address or Dropbox account ID. + */ + +/** + * Sharing policy of Paper doc. + * @typedef {Object} PaperSharingPolicy + * @property {PaperSharingPublicPolicyType} [public_sharing_policy] - This value + * applies to the non-team members. + * @property {PaperSharingTeamPolicyType} [team_sharing_policy] - This value + * applies to the team members only. The value is null for all personal + * accounts. + */ + +/** + * @typedef {Object} PaperSharingPublicPolicyType + * @property {('people_with_link_can_edit'|'people_with_link_can_view_and_comment'|'invite_only'|'disabled')} .tag - Tag identifying the union variant. + */ + +/** + * The sharing policy type of the Paper doc. + * @typedef {Object} PaperSharingTeamPolicyType + * @property {('people_with_link_can_edit'|'people_with_link_can_view_and_comment'|'invite_only')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} PaperUserInfoWithPermissionLevel + * @property {SharingUserInfo} user - User shared on the Paper doc. + * @property {PaperPaperDocPermissionLevel} permission_level - Permission level + * for the user. + */ + +/** + * @typedef {Object} PaperUserOnPaperDocFilter + * @property {('visited'|'shared'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SecondaryEmailsSecondaryEmail + * @property {string} email - Secondary email address. + * @property {boolean} is_verified - Whether or not the secondary email address + * is verified to be owned by a user. + */ + +/** + * Possible platforms on which a user may view content. + * @typedef {Object} SeenStatePlatformType + * @property {('web'|'desktop'|'mobile_ios'|'mobile_android'|'api'|'unknown'|'mobile'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Information about the inheritance policy of a shared folder. + * @typedef {Object} SharingAccessInheritance + * @property {('inherit'|'no_inherit'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Defines the access levels for collaborators. + * @typedef {Object} SharingAccessLevel + * @property {('owner'|'editor'|'viewer'|'viewer_no_comment'|'traverse'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Who can change a shared folder's access control list (ACL). In other words, + * who can add, remove, or change the privileges of members. + * @typedef {Object} SharingAclUpdatePolicy + * @property {('owner'|'editors'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Arguments for add_file_member. + * @typedef {Object} SharingAddFileMemberArgs + * @property {string} file - File to which to add members. + * @property {Array.} members - Members to add. Note that + * even an email address is given, this may result in a user being directly + * added to the membership if that email is the user's main account email. + * @property {string} [custom_message] - Message to send to added members in + * their invitation. + * @property {boolean} quiet - Whether added members should be notified via + * email and device notifications of their invitation. + * @property {SharingAccessLevel} access_level - AccessLevel union object, + * describing what access level we want to give new members. + * @property {boolean} add_message_as_comment - If the custom message should be + * added as a comment on the file. + */ + +/** + * Errors for add_file_member. + * @typedef {Object} SharingAddFileMemberError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('user_error'|'access_error'|'rate_limit'|'invalid_comment'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingAddFolderMemberArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {Array.} members - The intended list of members + * to add. Added members will receive invites to join the shared folder. + * @property {boolean} quiet - Whether added members should be notified via + * email and device notifications of their invite. + * @property {string} [custom_message] - Optional message to display to added + * members in their invitation. + */ + +/** + * @typedef {Object} SharingAddFolderMemberError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. Unable to access shared folder. + * @property {SharingAddMemberSelectorError} [bad_member] - Available if .tag is + * bad_member. :field:`AddFolderMemberArg.members` contains a bad invitation + * recipient. + * @property {number} [too_many_members] - Available if .tag is + * too_many_members. The value is the member limit that was reached. + * @property {number} [too_many_pending_invites] - Available if .tag is + * too_many_pending_invites. The value is the pending invite limit that was + * reached. + * @property {('access_error'|'email_unverified'|'banned_member'|'bad_member'|'cant_share_outside_team'|'too_many_members'|'too_many_pending_invites'|'rate_limit'|'too_many_invitees'|'insufficient_plan'|'team_folder'|'no_permission'|'invalid_shared_folder'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * The member and type of access the member should have when added to a shared + * folder. + * @typedef {Object} SharingAddMember + * @property {SharingMemberSelector} member - The member to add to the shared + * folder. + * @property {SharingAccessLevel} access_level - The access level to grant + * member to the shared folder. AccessLevel.owner is disallowed. + */ + +/** + * @typedef {Object} SharingAddMemberSelectorError + * @property {string} [invalid_dropbox_id] - Available if .tag is + * invalid_dropbox_id. The value is the ID that could not be identified. + * @property {string} [invalid_email] - Available if .tag is invalid_email. The + * value is the e-email address that is malformed. + * @property {string} [unverified_dropbox_id] - Available if .tag is + * unverified_dropbox_id. The value is the ID of the Dropbox user with an + * unverified email address. Invite unverified users by email address instead of + * by their Dropbox ID. + * @property {('automatic_group'|'invalid_dropbox_id'|'invalid_email'|'unverified_dropbox_id'|'group_deleted'|'group_not_on_team'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * check documentation for ResolvedVisibility. + * @typedef {Object} SharingAlphaResolvedVisibility + * @property {('public'|'team_only'|'password'|'team_and_password'|'shared_folder_only'|'no_one'|'only_you'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Information about the content that has a link audience different than that of + * this folder. + * @typedef {Object} SharingAudienceExceptionContentInfo + * @property {string} name - The name of the content, which is either a file or + * a folder. + */ + +/** + * The total count and truncated list of information of content inside this + * folder that has a different audience than the link on this folder. This is + * only returned for folders. + * @typedef {Object} SharingAudienceExceptions + * @property {number} count + * @property {Array.} exceptions - A + * truncated list of some of the content that is an exception. The length of + * this list could be smaller than the count since it is only a sample but will + * not be empty as long as count is not 0. + */ + +/** + * Information about the shared folder that prevents the link audience for this + * link from being more restrictive. + * @typedef {Object} SharingAudienceRestrictingSharedFolder + * @property {string} shared_folder_id - The ID of the shared folder. + * @property {string} name - The name of the shared folder. + * @property {SharingLinkAudience} audience - The link audience of the shared + * folder. + */ + +/** + * Metadata for a collection-based shared link. + * @typedef {Object} SharingCollectionLinkMetadata +@property {'collection'} [.tag] - Tag identifying this subtype variant. This +field is only present when needed to discriminate between multiple possible +subtypes. + * @property {string} url - URL of the shared link. + * @property {SharingVisibility} visibility - Who can access the link. + * @property {Timestamp} [expires] - Expiration time, if set. By default the + * link won't expire. + */ + +/** + * @typedef {Object} SharingCreateSharedLinkArg + * @property {string} path - The path to share. + * @property {boolean} short_url + * @property {SharingPendingUploadMode} [pending_upload] - If it's okay to share + * a path that does not yet exist, set this to either PendingUploadMode.file or + * PendingUploadMode.folder to indicate whether to assume it's a file or folder. + */ + +/** + * @typedef {Object} SharingCreateSharedLinkError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingCreateSharedLinkWithSettingsArg + * @property {string} path - The path to be shared by the shared link. + * @property {SharingSharedLinkSettings} [settings] - The requested settings for + * the newly created shared link. + */ + +/** + * @typedef {Object} SharingCreateSharedLinkWithSettingsError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {SharingSharedLinkAlreadyExistsMetadata} + * [shared_link_already_exists] - Available if .tag is + * shared_link_already_exists. The shared link already exists. You can call + * :route:`list_shared_links` to get the existing link, or use the provided + * metadata if it is returned. + * @property {SharingSharedLinkSettingsError} [settings_error] - Available if + * .tag is settings_error. There is an error with the given settings. + * @property {('path'|'email_not_verified'|'shared_link_already_exists'|'settings_error'|'access_denied')} .tag - Tag identifying the union variant. + */ + +/** + * The expected metadata of a shared link for a file or folder when a link is + * first created for the content. Absent if the link already exists. + * @typedef {Object} SharingExpectedSharedContentLinkMetadata + * @property {Array.} audience_options - The audience + * options that are available for the content. Some audience options may be + * unavailable. For example, team_only may be unavailable if the content is not + * owned by a user on a team. The 'default' audience option is always available + * if the user can modify link settings. + * @property {SharingLinkAudience} current_audience - The current audience of + * the link. + * @property {Array.} link_permissions - A list of + * permissions for actions you can perform on the link. + * @property {boolean} password_protected - Whether the link is protected by a + * password. + * @property {SharingAccessLevel} [access_level] - The access level on the link + * for this file. + * @property {SharingAudienceRestrictingSharedFolder} + * [audience_restricting_shared_folder] - The shared folder that prevents the + * link audience for this link from being more restrictive. + * @property {Timestamp} [expiry] - Whether the link has an expiry set on it. A + * link with an expiry will have its audience changed to members when the + * expiry is reached. + */ + +/** + * Sharing actions that may be taken on files. + * @typedef {Object} SharingFileAction + * @property {('disable_viewer_info'|'edit_contents'|'enable_viewer_info'|'invite_viewer'|'invite_viewer_no_comment'|'invite_editor'|'unshare'|'relinquish_membership'|'share_link'|'create_link'|'create_view_link'|'create_edit_link'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingFileErrorResult + * @property {string} [file_not_found_error] - Available if .tag is + * file_not_found_error. File specified by id was not found. + * @property {string} [invalid_file_action_error] - Available if .tag is + * invalid_file_action_error. User does not have permission to take the + * specified action on the file. + * @property {string} [permission_denied_error] - Available if .tag is + * permission_denied_error. User does not have permission to access file + * specified by file.Id. + * @property {('file_not_found_error'|'invalid_file_action_error'|'permission_denied_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * The metadata of a file shared link. + * @typedef {Object} SharingFileLinkMetadata +@property {'file'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {string} url - URL of the shared link. + * @property {string} name - The linked file name (including extension). This + * never contains a slash. + * @property {SharingLinkPermissions} link_permissions - The link's access + * permissions. + * @property {Timestamp} client_modified - The modification time set by the + * desktop client when the file was added to Dropbox. Since this time is not + * verified (the Dropbox server stores whatever the desktop client sends up), + * this should only be used for display purposes (such as sorting) and not, for + * example, to determine if a file has changed or not. + * @property {Timestamp} server_modified - The last time the file was modified + * on Dropbox. + * @property {string} rev - A unique identifier for the current revision of a + * file. This field is the same rev as elsewhere in the API and can be used to + * detect changes and avoid conflicts. + * @property {number} size - The file size in bytes. + * @property {string} [id] - A unique identifier for the linked file. + * @property {Timestamp} [expires] - Expiration time, if set. By default the + * link won't expire. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will only be present + * only if the linked file is in the authenticated user's dropbox. + * @property {SharingTeamMemberInfo} [team_member_info] - The team membership + * information of the link's owner. This field will only be present if the + * link's owner is a team member. + * @property {UsersTeam} [content_owner_team_info] - The team information of the + * content's owner. This field will only be present if the content's owner is a + * team member and the content's owner team is different from the link's owner + * team. + */ + +/** + * @typedef {Object} SharingFileMemberActionError + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. Specified file was invalid or user does not have access. + * @property {SharingMemberAccessLevelResult} [no_explicit_access] - Available + * if .tag is no_explicit_access. The action cannot be completed because the + * target member does not have explicit access to the file. The return value is + * the access that the member has to the file from a parent folder. + * @property {('invalid_member'|'no_permission'|'access_error'|'no_explicit_access'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingFileMemberActionIndividualResult + * @property {SharingAccessLevel} [success] - Available if .tag is success. Part + * of the response for both add_file_member and remove_file_member_v1 + * (deprecated). For add_file_member, indicates giving access was successful and + * at what AccessLevel. For remove_file_member_v1, indicates member was + * successfully removed from the file. If AccessLevel is given, the member still + * has access via a parent shared folder. + * @property {SharingFileMemberActionError} [member_error] - Available if .tag + * is member_error. User was not able to perform this action. + * @property {('success'|'member_error')} .tag - Tag identifying the union variant. + */ + +/** + * Per-member result for add_file_member. + * @typedef {Object} SharingFileMemberActionResult + * @property {SharingMemberSelector} member - One of specified input members. + * @property {SharingFileMemberActionIndividualResult} result - The outcome of + * the action on this member. + * @property {string} [sckey_sha1] - The SHA-1 encrypted shared content key. + * @property {Array.} [invitation_signature] - The sharing + * sender-recipient invitation signatures for the input member_id. A member_id + * can be a group and thus have multiple users and multiple invitation + * signatures. + */ + +/** + * @typedef {Object} SharingFileMemberRemoveActionResult + * @property {SharingMemberAccessLevelResult} [success] - Available if .tag is + * success. Member was successfully removed from this file. + * @property {SharingFileMemberActionError} [member_error] - Available if .tag + * is member_error. User was not able to remove this member. + * @property {('success'|'member_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Whether the user is allowed to take the sharing action on the file. + * @typedef {Object} SharingFilePermission + * @property {SharingFileAction} action - The action that the user may wish to + * take on the file. + * @property {boolean} allow - True if the user is allowed to take the action. + * @property {SharingPermissionDeniedReason} [reason] - The reason why the user + * is denied the permission. Not present if the action is allowed. + */ + +/** + * Actions that may be taken on shared folders. + * @typedef {Object} SharingFolderAction + * @property {('change_options'|'disable_viewer_info'|'edit_contents'|'enable_viewer_info'|'invite_editor'|'invite_viewer'|'invite_viewer_no_comment'|'relinquish_membership'|'unmount'|'unshare'|'leave_a_copy'|'share_link'|'create_link'|'set_access_inheritance'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * The metadata of a folder shared link. + * @typedef {Object} SharingFolderLinkMetadata +@property {'folder'} [.tag] - Tag identifying this subtype variant. This field +is only present when needed to discriminate between multiple possible subtypes. + * @property {string} url - URL of the shared link. + * @property {string} name - The linked file name (including extension). This + * never contains a slash. + * @property {SharingLinkPermissions} link_permissions - The link's access + * permissions. + * @property {string} [id] - A unique identifier for the linked file. + * @property {Timestamp} [expires] - Expiration time, if set. By default the + * link won't expire. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will only be present + * only if the linked file is in the authenticated user's dropbox. + * @property {SharingTeamMemberInfo} [team_member_info] - The team membership + * information of the link's owner. This field will only be present if the + * link's owner is a team member. + * @property {UsersTeam} [content_owner_team_info] - The team information of the + * content's owner. This field will only be present if the content's owner is a + * team member and the content's owner team is different from the link's owner + * team. + */ + +/** + * Whether the user is allowed to take the action on the shared folder. + * @typedef {Object} SharingFolderPermission + * @property {SharingFolderAction} action - The action that the user may wish to + * take on the folder. + * @property {boolean} allow - True if the user is allowed to take the action. + * @property {SharingPermissionDeniedReason} [reason] - The reason why the user + * is denied the permission. Not present if the action is allowed, or if no + * reason is available. + */ + +/** + * A set of policies governing membership and privileges for a shared folder. + * @typedef {Object} SharingFolderPolicy + * @property {SharingAclUpdatePolicy} acl_update_policy - Who can add and remove + * members from this shared folder. + * @property {SharingSharedLinkPolicy} shared_link_policy - Who links can be + * shared with. + * @property {SharingMemberPolicy} [member_policy] - Who can be a member of this + * shared folder, as set on the folder itself. The effective policy may differ + * from this value if the team-wide policy is more restrictive. Present only if + * the folder is owned by a team. + * @property {SharingMemberPolicy} [resolved_member_policy] - Who can be a + * member of this shared folder, taking into account both the folder and the + * team-wide policy. This value may differ from that of member_policy if the + * team-wide policy is more restrictive than the folder policy. Present only if + * the folder is owned by a team. + * @property {SharingViewerInfoPolicy} [viewer_info_policy] - Who can + * enable/disable viewer info for this shared folder. + */ + +/** + * Arguments of get_file_metadata. + * @typedef {Object} SharingGetFileMetadataArg + * @property {string} file - The file to query. + * @property {Array.} [actions] - A list of `FileAction`s + * corresponding to `FilePermission`s that should appear in the response's + * SharedFileMetadata.permissions field describing the actions the + * authenticated user can perform on the file. + */ + +/** + * Arguments of get_file_metadata/batch. + * @typedef {Object} SharingGetFileMetadataBatchArg + * @property {Array.} files - The files to query. + * @property {Array.} [actions] - A list of `FileAction`s + * corresponding to `FilePermission`s that should appear in the response's + * SharedFileMetadata.permissions field describing the actions the + * authenticated user can perform on the file. + */ + +/** + * Per file results of get_file_metadata/batch. + * @typedef {Object} SharingGetFileMetadataBatchResult + * @property {string} file - This is the input file identifier corresponding to + * one of GetFileMetadataBatchArg.files. + * @property {SharingGetFileMetadataIndividualResult} result - The result for + * this particular file. + */ + +/** + * Error result for get_file_metadata. + * @typedef {Object} SharingGetFileMetadataError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('user_error'|'access_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingGetFileMetadataIndividualResult + * @property {SharingSharedFileMetadata} [metadata] - Available if .tag is + * metadata. The result for this file if it was successful. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. The result for this file if it was an error. + * @property {('metadata'|'access_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingGetMetadataArgs + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {Array.} [actions] - A list of `FolderAction`s + * corresponding to `FolderPermission`s that should appear in the response's + * SharedFolderMetadata.permissions field describing the actions the + * authenticated user can perform on the folder. + */ + +/** + * @typedef {Object} SharingGetSharedLinkFileError + * @property {('shared_link_not_found'|'shared_link_access_denied'|'unsupported_link_type'|'other'|'shared_link_is_directory')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingGetSharedLinkMetadataArg + * @property {string} url - URL of the shared link. + * @property {string} [path] - If the shared link is to a folder, this parameter + * can be used to retrieve the metadata for a specific file or sub-folder in + * this folder. A relative path should be used. + * @property {string} [link_password] - If the shared link has a password, this + * parameter can be used. + */ + +/** + * @typedef {Object} SharingGetSharedLinksArg + * @property {string} [path] - See get_shared_links description. + */ + +/** + * @typedef {Object} SharingGetSharedLinksError + * @property {string} [path] - Available if .tag is path. + * @property {('path'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingGetSharedLinksResult + * @property + * {Array.<(SharingPathLinkMetadata|SharingCollectionLinkMetadata|SharingLinkMetadata)>} + * links - Shared links applicable to the path argument. + */ + +/** + * The information about a group. Groups is a way to manage a list of users who + * need same access permission to the shared folder. + * @typedef {Object} SharingGroupInfo + * @property {string} group_name + * @property {string} group_id + * @property {TeamCommonGroupManagementType} group_management_type - Who is + * allowed to manage the group. + * @property {TeamCommonGroupType} group_type - The type of group. + * @property {boolean} is_member - If the current user is a member of the group. + * @property {boolean} is_owner - If the current user is an owner of the group. + * @property {boolean} same_team - If the group is owned by the current user's + * team. + * @property {string} [group_external_id] - External ID of group. This is an + * arbitrary ID that an admin can attach to a group. + * @property {number} [member_count] - The number of members in the group. + */ + +/** + * The information about a group member of the shared content. + * @typedef {Object} SharingGroupMembershipInfo + * @property {SharingAccessLevel} access_type - The access type for this member. + * It contains inherited access type from parent folder, and acquired access + * type from this folder. + * @property {SharingGroupInfo} group - The information about the membership + * group. + * @property {Array.} [permissions] - The permissions + * that requesting user has on this member. The set of permissions corresponds + * to the MemberActions in the request. + * @property {string} [initials] - Never set. + * @property {boolean} is_inherited - True if the member has access from a + * parent folder. + */ + +/** + * @typedef {Object} SharingInsufficientPlan + * @property {string} message - A message to tell the user to upgrade in order + * to support expected action. + * @property {string} [upsell_url] - A URL to send the user to in order to + * obtain the account type they need, e.g. upgrading. Absent if there is no + * action the user can take to upgrade. + */ + +/** + * @typedef {Object} SharingInsufficientQuotaAmounts + * @property {number} space_needed - The amount of space needed to add the item + * (the size of the item). + * @property {number} space_shortage - The amount of extra space needed to add + * the item. + * @property {number} space_left - The amount of space left in the user's + * Dropbox, less than space_needed. + */ + +/** + * Information about the recipient of a shared content invitation. + * @typedef {Object} SharingInviteeInfo + * @property {string} [email] - Available if .tag is email. Email address of + * invited user. + * @property {('email'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Information about an invited member of a shared content. + * @typedef {Object} SharingInviteeMembershipInfo + * @property {SharingAccessLevel} access_type - The access type for this member. + * It contains inherited access type from parent folder, and acquired access + * type from this folder. + * @property {SharingInviteeInfo} invitee - Recipient of the invitation. + * @property {Array.} [permissions] - The permissions + * that requesting user has on this member. The set of permissions corresponds + * to the MemberActions in the request. + * @property {string} [initials] - Never set. + * @property {boolean} is_inherited - True if the member has access from a + * parent folder. + * @property {SharingUserInfo} [user] - The user this invitation is tied to, if + * available. + */ + +/** + * Error occurred while performing an asynchronous job from unshare_folder or + * remove_folder_member. + * @typedef {Object} SharingJobError + * @property {SharingUnshareFolderError} [unshare_folder_error] - Available if + * .tag is unshare_folder_error. Error occurred while performing + * :route:`unshare_folder` action. + * @property {SharingRemoveFolderMemberError} [remove_folder_member_error] - + * Available if .tag is remove_folder_member_error. Error occurred while + * performing :route:`remove_folder_member` action. + * @property {SharingRelinquishFolderMembershipError} + * [relinquish_folder_membership_error] - Available if .tag is + * relinquish_folder_membership_error. Error occurred while performing + * :route:`relinquish_folder_membership` action. + * @property {('unshare_folder_error'|'remove_folder_member_error'|'relinquish_folder_membership_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingJobStatus + * @property {SharingJobError} [failed] - Available if .tag is failed. The + * asynchronous job returned an error. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingLinkAccessLevel + * @property {('viewer'|'editor'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Actions that can be performed on a link. + * @typedef {Object} SharingLinkAction + * @property {('change_access_level'|'change_audience'|'remove_expiry'|'remove_password'|'set_expiry'|'set_password'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingLinkAudience + * @property {('public'|'team'|'no_one'|'password'|'members'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * check documentation for VisibilityPolicyDisallowedReason. + * @typedef {Object} SharingLinkAudienceDisallowedReason + * @property {('delete_and_recreate'|'restricted_by_shared_folder'|'restricted_by_team'|'user_not_on_team'|'user_account_type'|'permission_denied'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingLinkAudienceOption + * @property {SharingLinkAudience} audience - Specifies who can access the link. + * @property {boolean} allowed - Whether the user calling this API can select + * this audience option. + * @property {SharingLinkAudienceDisallowedReason} [disallowed_reason] - If + * allowed is false, this will provide the reason that the user is not permitted + * to set the visibility to this policy. + */ + +/** + * @typedef {Object} SharingLinkExpiry + * @property {Timestamp} [set_expiry] - Available if .tag is set_expiry. Set a + * new expiry or change an existing expiry. + * @property {('remove_expiry'|'set_expiry'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Metadata for a shared link. This can be either a PathLinkMetadata or + * CollectionLinkMetadata. + * @typedef {Object} SharingLinkMetadata +@property {("path"|"collection")} .tag - Tag identifying the subtype variant. + * @property {string} url - URL of the shared link. + * @property {SharingVisibility} visibility - Who can access the link. + * @property {Timestamp} [expires] - Expiration time, if set. By default the + * link won't expire. + */ + +/** + * @typedef {Object} SharingLinkPassword + * @property {string} [set_password] - Available if .tag is set_password. Set a + * new password or change an existing password. + * @property {('remove_password'|'set_password'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Permissions for actions that can be performed on a link. + * @typedef {Object} SharingLinkPermission + * @property {SharingLinkAction} action + * @property {boolean} allow + * @property {SharingPermissionDeniedReason} [reason] + */ + +/** + * @typedef {Object} SharingLinkPermissions + * @property {boolean} can_revoke - Whether the caller can revoke the shared + * link. + * @property {Array.} visibility_policies - A list of + * policies that the user might be able to set for the visibility. + * @property {boolean} can_set_expiry - Whether the user can set the expiry + * settings of the link. This refers to the ability to create a new expiry and + * modify an existing expiry. + * @property {boolean} can_remove_expiry - Whether the user can remove the + * expiry of the link. + * @property {boolean} allow_download - Whether the link can be downloaded or + * not. + * @property {boolean} can_allow_download - Whether the user can allow downloads + * via the link. This refers to the ability to remove a no-download restriction + * on the link. + * @property {boolean} can_disallow_download - Whether the user can disallow + * downloads via the link. This refers to the ability to impose a no-download + * restriction on the link. + * @property {boolean} allow_comments - Whether comments are enabled for the + * linked file. This takes the team commenting policy into account. + * @property {boolean} team_restricts_comments - Whether the team has disabled + * commenting globally. + * @property {SharingResolvedVisibility} [resolved_visibility] - The current + * visibility of the link after considering the shared links policies of the the + * team (in case the link's owner is part of a team) and the shared folder (in + * case the linked file is part of a shared folder). This field is shown only if + * the caller has access to this info (the link's owner always has access to + * this data). For some links, an effective_audience value is returned instead. + * @property {SharingRequestedVisibility} [requested_visibility] - The shared + * link's requested visibility. This can be overridden by the team and shared + * folder policies. The final visibility, after considering these policies, can + * be found in resolved_visibility. This is shown only if the caller is the + * link's owner and resolved_visibility is returned instead of + * effective_audience. + * @property {SharingSharedLinkAccessFailureReason} [revoke_failure_reason] - + * The failure reason for revoking the link. This field will only be present if + * the can_revoke is false. + * @property {SharingLinkAudience} [effective_audience] - The type of audience + * who can benefit from the access level specified by the `link_access_level` + * field. + * @property {SharingLinkAccessLevel} [link_access_level] - The access level + * that the link will grant to its users. A link can grant additional rights to + * a user beyond their current access level. For example, if a user was invited + * as a viewer to a file, and then opens a link with `link_access_level` set to + * `editor`, then they will gain editor privileges. The `link_access_level` is a + * property of the link, and does not depend on who is calling this API. In + * particular, `link_access_level` does not take into account the API caller's + * current permissions to the content. + * @property {Array.} [audience_options] - A list of + * link audience options the user might be able to set as the new audience. + * @property {boolean} [can_set_password] - Whether the user can set a password + * for the link. + * @property {boolean} [can_remove_password] - Whether the user can remove the + * password of the link. + * @property {boolean} [require_password] - Whether the user is required to + * provide a password to view the link. + * @property {boolean} [can_use_extended_sharing_controls] - Whether the user + * can use extended sharing controls, based on their account type. + */ + +/** + * Settings that apply to a link. + * @typedef {Object} SharingLinkSettings + * @property {SharingAccessLevel} [access_level] - The access level on the link + * for this file. Currently, it only accepts 'viewer' and 'viewer_no_comment'. + * @property {SharingLinkAudience} [audience] - The type of audience on the link + * for this file. + * @property {SharingLinkExpiry} [expiry] - An expiry timestamp to set on a + * link. + * @property {SharingLinkPassword} [password] - The password for the link. + */ + +/** + * Arguments for list_file_members. + * @typedef {Object} SharingListFileMembersArg + * @property {string} file - The file for which you want to see members. + * @property {Array.} [actions] - The actions for which to + * return permissions on a member. + * @property {boolean} include_inherited - Whether to include members who only + * have access from a parent shared folder. + * @property {number} limit - Number of members to return max per query. + * Defaults to 100 if no limit is specified. + */ + +/** + * Arguments for list_file_members/batch. + * @typedef {Object} SharingListFileMembersBatchArg + * @property {Array.} files - Files for which to return members. + * @property {number} limit - Number of members to return max per query. + * Defaults to 10 if no limit is specified. + */ + +/** + * Per-file result for list_file_members/batch. + * @typedef {Object} SharingListFileMembersBatchResult + * @property {string} file - This is the input file identifier, whether an ID or + * a path. + * @property {SharingListFileMembersIndividualResult} result - The result for + * this particular file. + */ + +/** + * Arguments for list_file_members/continue. + * @typedef {Object} SharingListFileMembersContinueArg + * @property {string} cursor - The cursor returned by your last call to + * list_file_members, list_file_members/continue, or list_file_members/batch. + */ + +/** + * Error for list_file_members/continue. + * @typedef {Object} SharingListFileMembersContinueError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('user_error'|'access_error'|'invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingListFileMembersCountResult + * @property {SharingSharedFileMembers} members - A list of members on this + * file. + * @property {number} member_count - The number of members on this file. This + * does not include inherited members. + */ + +/** + * Error for list_file_members. + * @typedef {Object} SharingListFileMembersError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('user_error'|'access_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingListFileMembersIndividualResult + * @property {SharingListFileMembersCountResult} [result] - Available if .tag is + * result. The results of the query for this file if it was successful. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. The result of the query for this file if it was an error. + * @property {('result'|'access_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Arguments for list_received_files. + * @typedef {Object} SharingListFilesArg + * @property {number} limit - Number of files to return max per query. Defaults + * to 100 if no limit is specified. + * @property {Array.} [actions] - A list of `FileAction`s + * corresponding to `FilePermission`s that should appear in the response's + * SharedFileMetadata.permissions field describing the actions the + * authenticated user can perform on the file. + */ + +/** + * Arguments for list_received_files/continue. + * @typedef {Object} SharingListFilesContinueArg + * @property {string} cursor - Cursor in ListFilesResult.cursor. + */ + +/** + * Error results for list_received_files/continue. + * @typedef {Object} SharingListFilesContinueError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. User account had a problem. + * @property {('user_error'|'invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Success results for list_received_files. + * @typedef {Object} SharingListFilesResult + * @property {Array.} entries - Information about the + * files shared with current user. + * @property {string} [cursor] - Cursor used to obtain additional shared files. + */ + +/** + * @typedef {Object} SharingListFolderMembersArgs + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {Array.} [actions] - This is a list indicating + * whether each returned member will include a boolean value + * MemberPermission.allow that describes whether the current user can perform + * the MemberAction on the member. + * @property {number} limit - The maximum number of results that include + * members, groups and invitees to return per request. + */ + +/** + * @typedef {Object} SharingListFolderMembersContinueArg + * @property {string} cursor - The cursor returned by your last call to + * list_folder_members or list_folder_members/continue. + */ + +/** + * @typedef {Object} SharingListFolderMembersContinueError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingListFolderMembersCursorArg + * @property {Array.} [actions] - This is a list indicating + * whether each returned member will include a boolean value + * MemberPermission.allow that describes whether the current user can perform + * the MemberAction on the member. + * @property {number} limit - The maximum number of results that include + * members, groups and invitees to return per request. + */ + +/** + * @typedef {Object} SharingListFoldersArgs + * @property {number} limit - The maximum number of results to return per + * request. + * @property {Array.} [actions] - A list of `FolderAction`s + * corresponding to `FolderPermission`s that should appear in the response's + * SharedFolderMetadata.permissions field describing the actions the + * authenticated user can perform on the folder. + */ + +/** + * @typedef {Object} SharingListFoldersContinueArg + * @property {string} cursor - The cursor returned by the previous API call + * specified in the endpoint description. + */ + +/** + * @typedef {Object} SharingListFoldersContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Result for list_folders or list_mountable_folders, depending on which + * endpoint was requested. Unmounted shared folders can be identified by the + * absence of SharedFolderMetadata.path_lower. + * @typedef {Object} SharingListFoldersResult + * @property {Array.} entries - List of all shared + * folders the authenticated user has access to. + * @property {string} [cursor] - Present if there are additional shared folders + * that have not been returned yet. Pass the cursor into the corresponding + * continue endpoint (either list_folders/continue or + * list_mountable_folders/continue) to list additional folders. + */ + +/** + * @typedef {Object} SharingListSharedLinksArg + * @property {string} [path] - See list_shared_links description. + * @property {string} [cursor] - The cursor returned by your last call to + * list_shared_links. + * @property {boolean} [direct_only] - See list_shared_links description. + */ + +/** + * @typedef {Object} SharingListSharedLinksError + * @property {FilesLookupError} [path] - Available if .tag is path. + * @property {('path'|'reset'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingListSharedLinksResult + * @property + * {Array.<(SharingFileLinkMetadata|SharingFolderLinkMetadata|SharingSharedLinkMetadata)>} + * links - Shared links applicable to the path argument. + * @property {boolean} has_more - Is true if there are additional shared links + * that have not been returned yet. Pass the cursor into list_shared_links to + * retrieve them. + * @property {string} [cursor] - Pass the cursor into list_shared_links to + * obtain the additional links. Cursor is returned only if no path is given. + */ + +/** + * Contains information about a member's access level to content after an + * operation. + * @typedef {Object} SharingMemberAccessLevelResult + * @property {SharingAccessLevel} [access_level] - The member still has this + * level of access to the content through a parent folder. + * @property {string} [warning] - A localized string with additional information + * about why the user has this access level to the content. + * @property {Array.} [access_details] - The + * parent folders that a member has access to. The field is present if the user + * has access to the first parent folder where the member gains access. + */ + +/** + * Actions that may be taken on members of a shared folder. + * @typedef {Object} SharingMemberAction + * @property {('leave_a_copy'|'make_editor'|'make_owner'|'make_viewer'|'make_viewer_no_comment'|'remove'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Whether the user is allowed to take the action on the associated member. + * @typedef {Object} SharingMemberPermission + * @property {SharingMemberAction} action - The action that the user may wish to + * take on the member. + * @property {boolean} allow - True if the user is allowed to take the action. + * @property {SharingPermissionDeniedReason} [reason] - The reason why the user + * is denied the permission. Not present if the action is allowed. + */ + +/** + * Policy governing who can be a member of a shared folder. Only applicable to + * folders owned by a user on a team. + * @typedef {Object} SharingMemberPolicy + * @property {('team'|'anyone'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Includes different ways to identify a member of a shared folder. + * @typedef {Object} SharingMemberSelector + * @property {string} [dropbox_id] - Available if .tag is dropbox_id. Dropbox + * account, team member, or group ID of member. + * @property {string} [email] - Available if .tag is email. Email address of + * member. + * @property {('dropbox_id'|'email'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * The information about a member of the shared content. + * @typedef {Object} SharingMembershipInfo + * @property {SharingAccessLevel} access_type - The access type for this member. + * It contains inherited access type from parent folder, and acquired access + * type from this folder. + * @property {Array.} [permissions] - The permissions + * that requesting user has on this member. The set of permissions corresponds + * to the MemberActions in the request. + * @property {string} [initials] - Never set. + * @property {boolean} is_inherited - True if the member has access from a + * parent folder. + */ + +/** + * @typedef {Object} SharingModifySharedLinkSettingsArgs + * @property {string} url - URL of the shared link to change its settings. + * @property {SharingSharedLinkSettings} settings - Set of settings for the + * shared link. + * @property {boolean} remove_expiration - If set to true, removes the + * expiration of the shared link. + */ + +/** + * @typedef {Object} SharingModifySharedLinkSettingsError + * @property {SharingSharedLinkSettingsError} [settings_error] - Available if + * .tag is settings_error. There is an error with the given settings. + * @property {('shared_link_not_found'|'shared_link_access_denied'|'unsupported_link_type'|'other'|'settings_error'|'email_not_verified')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingMountFolderArg + * @property {string} shared_folder_id - The ID of the shared folder to mount. + */ + +/** + * @typedef {Object} SharingMountFolderError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {SharingInsufficientQuotaAmounts} [insufficient_quota] - Available + * if .tag is insufficient_quota. The current user does not have enough space to + * mount the shared folder. + * @property {('access_error'|'inside_shared_folder'|'insufficient_quota'|'already_mounted'|'no_permission'|'not_mountable'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Contains information about a parent folder that a member has access to. + * @typedef {Object} SharingParentFolderAccessInfo + * @property {string} folder_name - Display name for the folder. + * @property {string} shared_folder_id - The identifier of the parent shared + * folder. + * @property {Array.} permissions - The user's + * permissions for the parent shared folder. + * @property {string} path - The full path to the parent shared folder relative + * to the acting user's root. + */ + +/** + * Metadata for a path-based shared link. + * @typedef {Object} SharingPathLinkMetadata +@property {'path'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {string} url - URL of the shared link. + * @property {SharingVisibility} visibility - Who can access the link. + * @property {string} path - Path in user's Dropbox. + * @property {Timestamp} [expires] - Expiration time, if set. By default the + * link won't expire. + */ + +/** + * Flag to indicate pending upload default (for linking to not-yet-existing + * paths). + * @typedef {Object} SharingPendingUploadMode + * @property {('file'|'folder')} .tag - Tag identifying the union variant. + */ + +/** + * Possible reasons the user is denied a permission. + * @typedef {Object} SharingPermissionDeniedReason + * @property {SharingInsufficientPlan} [insufficient_plan] - Available if .tag + * is insufficient_plan. + * @property {('user_not_same_team_as_owner'|'user_not_allowed_by_owner'|'target_is_indirect_member'|'target_is_owner'|'target_is_self'|'target_not_active'|'folder_is_limited_team_folder'|'owner_not_on_team'|'permission_denied'|'restricted_by_team'|'user_account_type'|'user_not_on_team'|'folder_is_inside_shared_folder'|'restricted_by_parent_folder'|'insufficient_plan'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingRelinquishFileMembershipArg + * @property {string} file - The path or id for the file. + */ + +/** + * @typedef {Object} SharingRelinquishFileMembershipError + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'group_access'|'no_permission'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingRelinquishFolderMembershipArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {boolean} leave_a_copy - Keep a copy of the folder's contents upon + * relinquishing membership. This must be set to false when the folder is within + * a team folder or another shared folder. + */ + +/** + * @typedef {Object} SharingRelinquishFolderMembershipError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'folder_owner'|'mounted'|'group_access'|'team_folder'|'no_permission'|'no_explicit_access'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Arguments for remove_file_member_2. + * @typedef {Object} SharingRemoveFileMemberArg + * @property {string} file - File from which to remove members. + * @property {SharingMemberSelector} member - Member to remove from this file. + * Note that even if an email is specified, it may result in the removal of a + * user (not an invitee) if the user's main account corresponds to that email + * address. + */ + +/** + * Errors for remove_file_member_2. + * @typedef {Object} SharingRemoveFileMemberError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {SharingMemberAccessLevelResult} [no_explicit_access] - Available + * if .tag is no_explicit_access. This member does not have explicit access to + * the file and therefore cannot be removed. The return value is the access that + * a user might have to the file from a parent folder. + * @property {('user_error'|'access_error'|'no_explicit_access'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingRemoveFolderMemberArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {SharingMemberSelector} member - The member to remove from the + * folder. + * @property {boolean} leave_a_copy - If true, the removed user will keep their + * copy of the folder after it's unshared, assuming it was mounted. Otherwise, + * it will be removed from their Dropbox. This must be set to false when + * removing a group, or when the folder is within a team folder or another + * shared folder. + */ + +/** + * @typedef {Object} SharingRemoveFolderMemberError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {SharingSharedFolderMemberError} [member_error] - Available if .tag + * is member_error. + * @property {('access_error'|'member_error'|'folder_owner'|'group_access'|'team_folder'|'no_permission'|'too_many_files'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingRemoveMemberJobStatus + * @property {SharingMemberAccessLevelResult} [complete] - Available if .tag is + * complete. Removing the folder member has finished. The value is information + * about whether the member has another form of access. + * @property {SharingRemoveFolderMemberError} [failed] - Available if .tag is + * failed. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingRequestedLinkAccessLevel + * @property {('viewer'|'editor'|'max'|'default'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * The access permission that can be requested by the caller for the shared + * link. Note that the final resolved visibility of the shared link takes into + * account other aspects, such as team and shared folder settings. Check the + * ResolvedVisibility for more info on the possible resolved visibility values + * of shared links. + * @typedef {Object} SharingRequestedVisibility + * @property {('public'|'team_only'|'password')} .tag - Tag identifying the union variant. + */ + +/** + * The actual access permissions values of shared links after taking into + * account user preferences and the team and shared folder settings. Check the + * RequestedVisibility for more info on the possible visibility values that can + * be set by the shared link's owner. + * @typedef {Object} SharingResolvedVisibility + * @property {('public'|'team_only'|'password'|'team_and_password'|'shared_folder_only'|'no_one'|'only_you'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingRevokeSharedLinkArg + * @property {string} url - URL of the shared link. + */ + +/** + * @typedef {Object} SharingRevokeSharedLinkError + * @property {('shared_link_not_found'|'shared_link_access_denied'|'unsupported_link_type'|'other'|'shared_link_malformed')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingSetAccessInheritanceArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {SharingAccessInheritance} access_inheritance - The access + * inheritance settings for the folder. + */ + +/** + * @typedef {Object} SharingSetAccessInheritanceError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. Unable to access shared folder. + * @property {('access_error'|'no_permission'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingShareFolderArg + * @property {string} path - The path to the folder to share. If it does not + * exist, then a new one is created. + * @property {SharingAclUpdatePolicy} [acl_update_policy] - Who can add and + * remove members of this shared folder. + * @property {boolean} force_async - Whether to force the share to happen + * asynchronously. + * @property {SharingMemberPolicy} [member_policy] - Who can be a member of this + * shared folder. Only applicable if the current user is on a team. + * @property {SharingSharedLinkPolicy} [shared_link_policy] - The policy to + * apply to shared links created for content inside this shared folder. The + * current user must be on a team to set this policy to + * SharedLinkPolicy.members. + * @property {SharingViewerInfoPolicy} [viewer_info_policy] - Who can + * enable/disable viewer info for this shared folder. + * @property {SharingAccessInheritance} access_inheritance - The access + * inheritance settings for the folder. + * @property {Array.} [actions] - A list of `FolderAction`s + * corresponding to `FolderPermission`s that should appear in the response's + * SharedFolderMetadata.permissions field describing the actions the + * authenticated user can perform on the folder. + * @property {SharingLinkSettings} [link_settings] - Settings on the link for + * this folder. + */ + +/** + * @typedef {Object} SharingShareFolderArgBase + * @property {string} path - The path to the folder to share. If it does not + * exist, then a new one is created. + * @property {SharingAclUpdatePolicy} [acl_update_policy] - Who can add and + * remove members of this shared folder. + * @property {boolean} force_async - Whether to force the share to happen + * asynchronously. + * @property {SharingMemberPolicy} [member_policy] - Who can be a member of this + * shared folder. Only applicable if the current user is on a team. + * @property {SharingSharedLinkPolicy} [shared_link_policy] - The policy to + * apply to shared links created for content inside this shared folder. The + * current user must be on a team to set this policy to + * SharedLinkPolicy.members. + * @property {SharingViewerInfoPolicy} [viewer_info_policy] - Who can + * enable/disable viewer info for this shared folder. + * @property {SharingAccessInheritance} access_inheritance - The access + * inheritance settings for the folder. + */ + +/** + * @typedef {Object} SharingShareFolderError + * @property {SharingSharePathError} [bad_path] - Available if .tag is bad_path. + * :field:`ShareFolderArg.path` is invalid. + * @property {('email_unverified'|'bad_path'|'team_policy_disallows_member_policy'|'disallowed_shared_link_policy'|'other'|'no_permission')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingShareFolderErrorBase + * @property {SharingSharePathError} [bad_path] - Available if .tag is bad_path. + * :field:`ShareFolderArg.path` is invalid. + * @property {('email_unverified'|'bad_path'|'team_policy_disallows_member_policy'|'disallowed_shared_link_policy'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingShareFolderJobStatus + * @property {SharingSharedFolderMetadata} [complete] - Available if .tag is + * complete. The share job has finished. The value is the metadata for the + * folder. + * @property {SharingShareFolderError} [failed] - Available if .tag is failed. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingShareFolderLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {SharingSharedFolderMetadata} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingSharePathError + * @property {SharingSharedFolderMetadata} [already_shared] - Available if .tag + * is already_shared. Folder is already shared. Contains metadata about the + * existing shared folder. + * @property {('is_file'|'inside_shared_folder'|'contains_shared_folder'|'contains_app_folder'|'contains_team_folder'|'is_app_folder'|'inside_app_folder'|'is_public_folder'|'inside_public_folder'|'already_shared'|'invalid_path'|'is_osx_package'|'inside_osx_package'|'is_vault'|'is_vault_locked'|'is_family'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Metadata of a shared link for a file or folder. + * @typedef {Object} SharingSharedContentLinkMetadata + * @property {Array.} audience_options - The audience + * options that are available for the content. Some audience options may be + * unavailable. For example, team_only may be unavailable if the content is not + * owned by a user on a team. The 'default' audience option is always available + * if the user can modify link settings. + * @property {SharingLinkAudience} current_audience - The current audience of + * the link. + * @property {Array.} link_permissions - A list of + * permissions for actions you can perform on the link. + * @property {boolean} password_protected - Whether the link is protected by a + * password. + * @property {string} url - The URL of the link. + * @property {SharingAccessLevel} [access_level] - The access level on the link + * for this file. + * @property {SharingAudienceRestrictingSharedFolder} + * [audience_restricting_shared_folder] - The shared folder that prevents the + * link audience for this link from being more restrictive. + * @property {Timestamp} [expiry] - Whether the link has an expiry set on it. A + * link with an expiry will have its audience changed to members when the + * expiry is reached. + * @property {SharingAudienceExceptions} [audience_exceptions] - The content + * inside this folder with link audience different than this folder's. This is + * only returned when an endpoint that returns metadata for a single shared + * folder is called, e.g. /get_folder_metadata. + */ + +/** + * @typedef {Object} SharingSharedContentLinkMetadataBase + * @property {Array.} audience_options - The audience + * options that are available for the content. Some audience options may be + * unavailable. For example, team_only may be unavailable if the content is not + * owned by a user on a team. The 'default' audience option is always available + * if the user can modify link settings. + * @property {SharingLinkAudience} current_audience - The current audience of + * the link. + * @property {Array.} link_permissions - A list of + * permissions for actions you can perform on the link. + * @property {boolean} password_protected - Whether the link is protected by a + * password. + * @property {SharingAccessLevel} [access_level] - The access level on the link + * for this file. + * @property {SharingAudienceRestrictingSharedFolder} + * [audience_restricting_shared_folder] - The shared folder that prevents the + * link audience for this link from being more restrictive. + * @property {Timestamp} [expiry] - Whether the link has an expiry set on it. A + * link with an expiry will have its audience changed to members when the + * expiry is reached. + */ + +/** + * Shared file user, group, and invitee membership. Used for the results of + * list_file_members and list_file_members/continue, and used as part of the + * results for list_file_members/batch. + * @typedef {Object} SharingSharedFileMembers + * @property {Array.} users - The list of user + * members of the shared file. + * @property {Array.} groups - The list of group + * members of the shared file. + * @property {Array.} invitees - The list of + * invited members of a file, but have not logged in and claimed this. + * @property {string} [cursor] - Present if there are additional shared file + * members that have not been returned yet. Pass the cursor into + * list_file_members/continue to list additional members. + */ + +/** + * Properties of the shared file. + * @typedef {Object} SharingSharedFileMetadata + * @property {string} id - The ID of the file. + * @property {string} name - The name of this file. + * @property {SharingFolderPolicy} policy - Policies governing this shared file. + * @property {string} preview_url - URL for displaying a web preview of the + * shared file. + * @property {SharingAccessLevel} [access_type] - The current user's access + * level for this shared file. + * @property {SharingExpectedSharedContentLinkMetadata} [expected_link_metadata] + * - The expected metadata of the link associated for the file when it is first + * shared. Absent if the link already exists. This is for an unreleased feature + * so it may not be returned yet. + * @property {SharingSharedContentLinkMetadata} [link_metadata] - The metadata + * of the link associated for the file. This is for an unreleased feature so it + * may not be returned yet. + * @property {Array.} [owner_display_names] - The display names of the + * users that own the file. If the file is part of a team folder, the display + * names of the team admins are also included. Absent if the owner display names + * cannot be fetched. + * @property {UsersTeam} [owner_team] - The team that owns the file. This field + * is not present if the file is not owned by a team. + * @property {string} [parent_shared_folder_id] - The ID of the parent shared + * folder. This field is present only if the file is contained within a shared + * folder. + * @property {string} [path_display] - The cased path to be used for display + * purposes only. In rare instances the casing will not correctly match the + * user's filesystem, but this behavior will match the path provided in the Core + * API v1. Absent for unmounted files. + * @property {string} [path_lower] - The lower-case full path of this file. + * Absent for unmounted files. + * @property {Array.} [permissions] - The sharing + * permissions that requesting user has on this file. This corresponds to the + * entries given in GetFileMetadataBatchArg.actions or + * GetFileMetadataArg.actions. + * @property {Timestamp} [time_invited] - Timestamp indicating when the current + * user was invited to this shared file. If the user was not invited to the + * shared file, the timestamp will indicate when the user was invited to the + * parent shared folder. This value may be absent. + */ + +/** + * There is an error accessing the shared folder. + * @typedef {Object} SharingSharedFolderAccessError + * @property {('invalid_id'|'not_a_member'|'email_unverified'|'unmounted'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingSharedFolderMemberError + * @property {SharingMemberAccessLevelResult} [no_explicit_access] - Available + * if .tag is no_explicit_access. The target member only has inherited access to + * the shared folder. + * @property {('invalid_dropbox_id'|'not_a_member'|'no_explicit_access'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Shared folder user and group membership. + * @typedef {Object} SharingSharedFolderMembers + * @property {Array.} users - The list of user + * members of the shared folder. + * @property {Array.} groups - The list of group + * members of the shared folder. + * @property {Array.} invitees - The list of + * invitees to the shared folder. + * @property {string} [cursor] - Present if there are additional shared folder + * members that have not been returned yet. Pass the cursor into + * list_folder_members/continue to list additional members. + */ + +/** + * The metadata which includes basic information about the shared folder. + * @typedef {Object} SharingSharedFolderMetadata + * @property {SharingAccessLevel} access_type - The current user's access level + * for this shared folder. + * @property {boolean} is_inside_team_folder - Whether this folder is inside of + * a team folder. + * @property {boolean} is_team_folder - Whether this folder is a team folder + * https://www.dropbox.com/en/help/986. + * @property {string} name - The name of the this shared folder. + * @property {SharingFolderPolicy} policy - Policies governing this shared + * folder. + * @property {string} preview_url - URL for displaying a web preview of the + * shared folder. + * @property {string} shared_folder_id - The ID of the shared folder. + * @property {Timestamp} time_invited - Timestamp indicating when the current + * user was invited to this shared folder. + * @property {Array.} [owner_display_names] - The display names of the + * users that own the folder. If the folder is part of a team folder, the + * display names of the team admins are also included. Absent if the owner + * display names cannot be fetched. + * @property {UsersTeam} [owner_team] - The team that owns the folder. This + * field is not present if the folder is not owned by a team. + * @property {string} [parent_shared_folder_id] - The ID of the parent shared + * folder. This field is present only if the folder is contained within another + * shared folder. + * @property {string} [path_lower] - The lower-cased full path of this shared + * folder. Absent for unmounted folders. + * @property {string} [parent_folder_name] - Display name for the parent folder. + * @property {SharingSharedContentLinkMetadata} [link_metadata] - The metadata + * of the shared content link to this shared folder. Absent if there is no link + * on the folder. This is for an unreleased feature so it may not be returned + * yet. + * @property {Array.} [permissions] - Actions the + * current user may perform on the folder and its contents. The set of + * permissions corresponds to the FolderActions in the request. + * @property {SharingAccessInheritance} access_inheritance - Whether the folder + * inherits its members from its parent. + */ + +/** + * Properties of the shared folder. + * @typedef {Object} SharingSharedFolderMetadataBase + * @property {SharingAccessLevel} access_type - The current user's access level + * for this shared folder. + * @property {boolean} is_inside_team_folder - Whether this folder is inside of + * a team folder. + * @property {boolean} is_team_folder - Whether this folder is a team folder + * https://www.dropbox.com/en/help/986. + * @property {Array.} [owner_display_names] - The display names of the + * users that own the folder. If the folder is part of a team folder, the + * display names of the team admins are also included. Absent if the owner + * display names cannot be fetched. + * @property {UsersTeam} [owner_team] - The team that owns the folder. This + * field is not present if the folder is not owned by a team. + * @property {string} [parent_shared_folder_id] - The ID of the parent shared + * folder. This field is present only if the folder is contained within another + * shared folder. + * @property {string} [path_lower] - The lower-cased full path of this shared + * folder. Absent for unmounted folders. + * @property {string} [parent_folder_name] - Display name for the parent folder. + */ + +/** + * @typedef {Object} SharingSharedLinkAccessFailureReason + * @property {('login_required'|'email_verify_required'|'password_required'|'team_only'|'owner_only'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingSharedLinkAlreadyExistsMetadata + * @property + * {(SharingFileLinkMetadata|SharingFolderLinkMetadata|SharingSharedLinkMetadata)} + * [metadata] - Available if .tag is metadata. Metadata of the shared link that + * already exists. + * @property {('metadata'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingSharedLinkError + * @property {('shared_link_not_found'|'shared_link_access_denied'|'unsupported_link_type'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * The metadata of a shared link. + * @typedef {Object} SharingSharedLinkMetadata +@property {("file"|"folder")} .tag - Tag identifying the subtype variant. + * @property {string} url - URL of the shared link. + * @property {string} name - The linked file name (including extension). This + * never contains a slash. + * @property {SharingLinkPermissions} link_permissions - The link's access + * permissions. + * @property {string} [id] - A unique identifier for the linked file. + * @property {Timestamp} [expires] - Expiration time, if set. By default the + * link won't expire. + * @property {string} [path_lower] - The lowercased full path in the user's + * Dropbox. This always starts with a slash. This field will only be present + * only if the linked file is in the authenticated user's dropbox. + * @property {SharingTeamMemberInfo} [team_member_info] - The team membership + * information of the link's owner. This field will only be present if the + * link's owner is a team member. + * @property {UsersTeam} [content_owner_team_info] - The team information of the + * content's owner. This field will only be present if the content's owner is a + * team member and the content's owner team is different from the link's owner + * team. + */ + +/** + * Who can view shared links in this folder. + * @typedef {Object} SharingSharedLinkPolicy + * @property {('anyone'|'team'|'members'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingSharedLinkSettings + * @property {boolean} [require_password] - Boolean flag to enable or disable + * password protection. + * @property {string} [link_password] - If require_password is true, this is + * needed to specify the password to access the link. + * @property {Timestamp} [expires] - Expiration time of the shared link. By + * default the link won't expire. + * @property {SharingLinkAudience} [audience] - The new audience who can benefit + * from the access level specified by the link's access level specified in the + * `link_access_level` field of `LinkPermissions`. This is used in conjunction + * with team policies and shared folder policies to determine the final + * effective audience type in the `effective_audience` field of + * `LinkPermissions. + * @property {SharingRequestedLinkAccessLevel} [access] - Requested access level + * you want the audience to gain from this link. Note, modifying access level + * for an existing link is not supported. + * @property {SharingRequestedVisibility} [requested_visibility] - Use audience + * instead. The requested access for this shared link. + * @property {boolean} [allow_download] - Boolean flag to allow or not download + * capabilities for shared links. + */ + +/** + * @typedef {Object} SharingSharedLinkSettingsError + * @property {('invalid_settings'|'not_authorized')} .tag - Tag identifying the union variant. + */ + +/** + * User could not access this file. + * @typedef {Object} SharingSharingFileAccessError + * @property {('no_permission'|'invalid_file'|'is_folder'|'inside_public_folder'|'inside_osx_package'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * User account had a problem preventing this action. + * @typedef {Object} SharingSharingUserError + * @property {('email_unverified'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Information about a team member. + * @typedef {Object} SharingTeamMemberInfo + * @property {UsersTeam} team_info - Information about the member's team. + * @property {string} display_name - The display name of the user. + * @property {string} [member_id] - ID of user as a member of a team. This field + * will only be present if the member is in the same team as current user. + */ + +/** + * @typedef {Object} SharingTransferFolderArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {string} to_dropbox_id - A account or team member ID to transfer + * ownership to. + */ + +/** + * @typedef {Object} SharingTransferFolderError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'invalid_dropbox_id'|'new_owner_not_a_member'|'new_owner_unmounted'|'new_owner_email_unverified'|'team_folder'|'no_permission'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingUnmountFolderArg + * @property {string} shared_folder_id - The ID for the shared folder. + */ + +/** + * @typedef {Object} SharingUnmountFolderError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'no_permission'|'not_unmountable'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Arguments for unshare_file. + * @typedef {Object} SharingUnshareFileArg + * @property {string} file - The file to unshare. + */ + +/** + * Error result for unshare_file. + * @typedef {Object} SharingUnshareFileError + * @property {SharingSharingUserError} [user_error] - Available if .tag is + * user_error. + * @property {SharingSharingFileAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('user_error'|'access_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingUnshareFolderArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {boolean} leave_a_copy - If true, members of this shared folder + * will get a copy of this folder after it's unshared. Otherwise, it will be + * removed from their Dropbox. The current user, who is an owner, will always + * retain their copy. + */ + +/** + * @typedef {Object} SharingUnshareFolderError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'team_folder'|'no_permission'|'too_many_files'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Arguments for update_file_member. + * @typedef {Object} SharingUpdateFileMemberArgs + * @property {string} file - File for which we are changing a member's access. + * @property {SharingMemberSelector} member - The member whose access we are + * changing. + * @property {SharingAccessLevel} access_level - The new access level for the + * member. + */ + +/** + * @typedef {Object} SharingUpdateFolderMemberArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {SharingMemberSelector} member - The member of the shared folder to + * update. Only the MemberSelector.dropbox_id may be set at this time. + * @property {SharingAccessLevel} access_level - The new access level for + * member. AccessLevel.owner is disallowed. + */ + +/** + * @typedef {Object} SharingUpdateFolderMemberError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {SharingSharedFolderMemberError} [member_error] - Available if .tag + * is member_error. + * @property {SharingAddFolderMemberError} [no_explicit_access] - Available if + * .tag is no_explicit_access. If updating the access type required the member + * to be added to the shared folder and there was an error when adding the + * member. + * @property {('access_error'|'member_error'|'no_explicit_access'|'insufficient_plan'|'no_permission'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * If any of the policies are unset, then they retain their current setting. + * @typedef {Object} SharingUpdateFolderPolicyArg + * @property {string} shared_folder_id - The ID for the shared folder. + * @property {SharingMemberPolicy} [member_policy] - Who can be a member of this + * shared folder. Only applicable if the current user is on a team. + * @property {SharingAclUpdatePolicy} [acl_update_policy] - Who can add and + * remove members of this shared folder. + * @property {SharingViewerInfoPolicy} [viewer_info_policy] - Who can + * enable/disable viewer info for this shared folder. + * @property {SharingSharedLinkPolicy} [shared_link_policy] - The policy to + * apply to shared links created for content inside this shared folder. The + * current user must be on a team to set this policy to + * SharedLinkPolicy.members. + * @property {SharingLinkSettings} [link_settings] - Settings on the link for + * this folder. + * @property {Array.} [actions] - A list of `FolderAction`s + * corresponding to `FolderPermission`s that should appear in the response's + * SharedFolderMetadata.permissions field describing the actions the + * authenticated user can perform on the folder. + */ + +/** + * @typedef {Object} SharingUpdateFolderPolicyError + * @property {SharingSharedFolderAccessError} [access_error] - Available if .tag + * is access_error. + * @property {('access_error'|'not_on_team'|'team_policy_disallows_member_policy'|'disallowed_shared_link_policy'|'no_permission'|'team_folder'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * The information about a user member of the shared content with an appended + * last seen timestamp. + * @typedef {Object} SharingUserFileMembershipInfo + * @property {SharingAccessLevel} access_type - The access type for this member. + * It contains inherited access type from parent folder, and acquired access + * type from this folder. + * @property {SharingUserInfo} user - The account information for the membership + * user. + * @property {Array.} [permissions] - The permissions + * that requesting user has on this member. The set of permissions corresponds + * to the MemberActions in the request. + * @property {string} [initials] - Never set. + * @property {boolean} is_inherited - True if the member has access from a + * parent folder. + * @property {Timestamp} [time_last_seen] - The UTC timestamp of when the user + * has last seen the content. Only populated if the user has seen the content + * and the caller has a plan that includes viewer history. + * @property {SeenStatePlatformType} [platform_type] - The platform on which the + * user has last seen the content, or unknown. + */ + +/** + * Basic information about a user. Use users.get_account and + * users.get_account_batch to obtain more detailed information. + * @typedef {Object} SharingUserInfo + * @property {string} account_id - The account ID of the user. + * @property {string} email - Email address of user. + * @property {string} display_name - The display name of the user. + * @property {boolean} same_team - If the user is in the same team as current + * user. + * @property {string} [team_member_id] - The team member ID of the shared folder + * member. Only present if same_team is true. + */ + +/** + * The information about a user member of the shared content. + * @typedef {Object} SharingUserMembershipInfo + * @property {SharingAccessLevel} access_type - The access type for this member. + * It contains inherited access type from parent folder, and acquired access + * type from this folder. + * @property {SharingUserInfo} user - The account information for the membership + * user. + * @property {Array.} [permissions] - The permissions + * that requesting user has on this member. The set of permissions corresponds + * to the MemberActions in the request. + * @property {string} [initials] - Never set. + * @property {boolean} is_inherited - True if the member has access from a + * parent folder. + */ + +/** + * @typedef {Object} SharingViewerInfoPolicy + * @property {('enabled'|'disabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Who can access a shared link. The most open visibility is public. The default + * depends on many aspects, such as team and user preferences and shared folder + * settings. + * @typedef {Object} SharingVisibility + * @property {('public'|'team_only'|'password'|'team_and_password'|'shared_folder_only'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} SharingVisibilityPolicy + * @property {SharingRequestedVisibility} policy - This is the value to submit + * when saving the visibility setting. + * @property {SharingAlphaResolvedVisibility} resolved_policy - This is what the + * effective policy would be, if you selected this option. The resolved policy + * is obtained after considering external effects such as shared folder settings + * and team policy. This value is guaranteed to be provided. + * @property {boolean} allowed - Whether the user is permitted to set the + * visibility to this policy. + * @property {SharingVisibilityPolicyDisallowedReason} [disallowed_reason] - If + * allowed is false, this will provide the reason that the user is not permitted + * to set the visibility to this policy. + */ + +/** + * @typedef {Object} SharingVisibilityPolicyDisallowedReason + * @property {('delete_and_recreate'|'restricted_by_shared_folder'|'restricted_by_team'|'user_not_on_team'|'user_account_type'|'permission_denied'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Information on active web sessions. + * @typedef {Object} TeamActiveWebSession + * @property {string} session_id - The session id. + * @property {string} user_agent - Information on the hosting device. + * @property {string} os - Information on the hosting operating system. + * @property {string} browser - Information on the browser used for this web + * session. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {string} [country] - The country from which the last activity from + * this session was made. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + * @property {Timestamp} [expires] - The time this session expires. + */ + +/** + * Result of trying to add a secondary email to a user. 'success' is the only + * value indicating that a secondary email was successfully added to a user. The + * other values explain the type of error that occurred, and include the email + * for which the error occurred. + * @typedef {Object} TeamAddSecondaryEmailResult + * @property {SecondaryEmailsSecondaryEmail} [success] - Available if .tag is + * success. Describes a secondary email that was successfully added to a user. + * @property {string} [unavailable] - Available if .tag is unavailable. + * Secondary email is not available to be claimed by the user. + * @property {string} [already_pending] - Available if .tag is already_pending. + * Secondary email is already a pending email for the user. + * @property {string} [already_owned_by_user] - Available if .tag is + * already_owned_by_user. Secondary email is already a verified email for the + * user. + * @property {string} [reached_limit] - Available if .tag is reached_limit. User + * already has the maximum number of secondary emails allowed. + * @property {string} [transient_error] - Available if .tag is transient_error. + * A transient error occurred. Please try again later. + * @property {string} [too_many_updates] - Available if .tag is + * too_many_updates. An error occurred due to conflicting updates. Please try + * again later. + * @property {string} [unknown_error] - Available if .tag is unknown_error. An + * unknown error occurred. + * @property {string} [rate_limited] - Available if .tag is rate_limited. Too + * many emails are being sent to this email address. Please try again later. + * @property {('success'|'unavailable'|'already_pending'|'already_owned_by_user'|'reached_limit'|'transient_error'|'too_many_updates'|'unknown_error'|'rate_limited'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamAddSecondaryEmailsArg + * @property {Array.} new_secondary_emails - List of + * users and secondary emails to add. + */ + +/** + * Error returned when adding secondary emails fails. + * @typedef {Object} TeamAddSecondaryEmailsError + * @property {('secondary_emails_disabled'|'too_many_emails'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamAddSecondaryEmailsResult + * @property {Array.} results - List of users and secondary + * email results. + */ + +/** + * Describes which team-related admin permissions a user has. + * @typedef {Object} TeamAdminTier + * @property {('team_admin'|'user_management_admin'|'support_admin'|'member_only')} .tag - Tag identifying the union variant. + */ + +/** + * Information on linked third party applications. + * @typedef {Object} TeamApiApp + * @property {string} app_id - The application unique id. + * @property {string} app_name - The application name. + * @property {boolean} is_app_folder - Whether the linked application uses a + * dedicated folder. + * @property {string} [publisher] - The application publisher name. + * @property {string} [publisher_url] - The publisher's URL. + * @property {Timestamp} [linked] - The time this application was linked. + */ + +/** + * Base report structure. + * @typedef {Object} TeamBaseDfbReport + * @property {string} start_date - First date present in the results as + * 'YYYY-MM-DD' or None. + */ + +/** + * Base error that all errors for existing team folders should extend. + * @typedef {Object} TeamBaseTeamFolderError + * @property {TeamTeamFolderAccessError} [access_error] - Available if .tag is + * access_error. + * @property {TeamTeamFolderInvalidStatusError} [status_error] - Available if + * .tag is status_error. + * @property {TeamTeamFolderTeamSharedDropboxError} [team_shared_dropbox_error] + * - Available if .tag is team_shared_dropbox_error. + * @property {('access_error'|'status_error'|'team_shared_dropbox_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Error returned when getting member custom quota. + * @typedef {Object} TeamCustomQuotaError + * @property {('too_many_users'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * User custom quota. + * @typedef {Object} TeamCustomQuotaResult + * @property {TeamUserCustomQuotaResult} [success] - Available if .tag is + * success. User's custom quota. + * @property {TeamUserSelectorArg} [invalid_user] - Available if .tag is + * invalid_user. Invalid user (not in team). + * @property {('success'|'invalid_user'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamCustomQuotaUsersArg + * @property {Array.} users - List of users. + */ + +/** + * Input arguments that can be provided for most reports. + * @typedef {Object} TeamDateRange + * @property {Timestamp} [start_date] - Optional starting date (inclusive). If + * start_date is None or too long ago, this field will be set to 6 months ago. + * @property {Timestamp} [end_date] - Optional ending date (exclusive). + */ + +/** + * Errors that can originate from problems in input arguments to reports. + * @typedef {Object} TeamDateRangeError + * @property {'other'} .tag - Tag identifying the union variant. + */ + +/** + * Result of trying to delete a secondary email address. 'success' is the only + * value indicating that a secondary email was successfully deleted. The other + * values explain the type of error that occurred, and include the email for + * which the error occurred. + * @typedef {Object} TeamDeleteSecondaryEmailResult + * @property {string} [success] - Available if .tag is success. The secondary + * email was successfully deleted. + * @property {string} [not_found] - Available if .tag is not_found. The email + * address was not found for the user. + * @property {string} [cannot_remove_primary] - Available if .tag is + * cannot_remove_primary. The email address is the primary email address of the + * user, and cannot be removed. + * @property {('success'|'not_found'|'cannot_remove_primary'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamDeleteSecondaryEmailsArg + * @property {Array.} emails_to_delete - List of + * users and their secondary emails to delete. + */ + +/** + * @typedef {Object} TeamDeleteSecondaryEmailsResult + * @property {Array.} results + */ + +/** + * Information about linked Dropbox desktop client sessions. + * @typedef {Object} TeamDesktopClientSession + * @property {string} session_id - The session id. + * @property {string} host_name - Name of the hosting desktop. + * @property {TeamDesktopPlatform} client_type - The Dropbox desktop client + * type. + * @property {string} client_version - The Dropbox client version. + * @property {string} platform - Information on the hosting platform. + * @property {boolean} is_delete_on_unlink_supported - Whether it's possible to + * delete all of the account files upon unlinking. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {string} [country] - The country from which the last activity from + * this session was made. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + */ + +/** + * @typedef {Object} TeamDesktopPlatform + * @property {('windows'|'mac'|'linux'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamDeviceSession + * @property {string} session_id - The session id. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {string} [country] - The country from which the last activity from + * this session was made. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + */ + +/** + * @typedef {Object} TeamDeviceSessionArg + * @property {string} session_id - The session id. + * @property {string} team_member_id - The unique id of the member owning the + * device. + */ + +/** + * Each of the items is an array of values, one value per day. The value is the + * number of devices active within a time window, ending with that day. If there + * is no data for a day, then the value will be None. + * @typedef {Object} TeamDevicesActive + * @property {Array.} windows - Array of number of linked windows + * (desktop) clients with activity. + * @property {Array.} macos - Array of number of linked mac (desktop) + * clients with activity. + * @property {Array.} linux - Array of number of linked linus (desktop) + * clients with activity. + * @property {Array.} ios - Array of number of linked ios devices with + * activity. + * @property {Array.} android - Array of number of linked android + * devices with activity. + * @property {Array.} other - Array of number of other linked devices + * (blackberry, windows phone, etc) with activity. + * @property {Array.} total - Array of total number of linked clients + * with activity. + */ + +/** + * Excluded users list argument. + * @typedef {Object} TeamExcludedUsersListArg + * @property {number} limit - Number of results to return per call. + */ + +/** + * Excluded users list continue argument. + * @typedef {Object} TeamExcludedUsersListContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * users. + */ + +/** + * Excluded users list continue error. + * @typedef {Object} TeamExcludedUsersListContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Excluded users list error. + * @typedef {Object} TeamExcludedUsersListError + * @property {('list_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Excluded users list result. + * @typedef {Object} TeamExcludedUsersListResult + * @property {Array.} users + * @property {boolean} has_more - Is true if there are additional excluded users + * that have not been returned yet. An additional call to + * member_space_limits/excluded_users/list/continue can retrieve them. + * @property {string} [cursor] - Pass the cursor into + * member_space_limits/excluded_users/list/continue to obtain additional + * excluded users. + */ + +/** + * Argument of excluded users update operation. Should include a list of users + * to add/remove (according to endpoint), Maximum size of the list is 1000 + * users. + * @typedef {Object} TeamExcludedUsersUpdateArg + * @property {Array.} [users] - List of users to be + * added/removed. + */ + +/** + * Excluded users update error. + * @typedef {Object} TeamExcludedUsersUpdateError + * @property {('users_not_in_team'|'too_many_users'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Excluded users update result. + * @typedef {Object} TeamExcludedUsersUpdateResult + * @property {TeamExcludedUsersUpdateStatus} status - Update status. + */ + +/** + * Excluded users update operation status. + * @typedef {Object} TeamExcludedUsersUpdateStatus + * @property {('success'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * A set of features that a Dropbox Business account may support. + * @typedef {Object} TeamFeature + * @property {('upload_api_rate_limit'|'has_team_shared_dropbox'|'has_team_file_events'|'has_team_selective_sync'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * The values correspond to entries in Feature. You may get different value + * according to your Dropbox Business plan. + * @typedef {Object} TeamFeatureValue + * @property {TeamUploadApiRateLimitValue} [upload_api_rate_limit] - Available + * if .tag is upload_api_rate_limit. + * @property {TeamHasTeamSharedDropboxValue} [has_team_shared_dropbox] - + * Available if .tag is has_team_shared_dropbox. + * @property {TeamHasTeamFileEventsValue} [has_team_file_events] - Available if + * .tag is has_team_file_events. + * @property {TeamHasTeamSelectiveSyncValue} [has_team_selective_sync] - + * Available if .tag is has_team_selective_sync. + * @property {('upload_api_rate_limit'|'has_team_shared_dropbox'|'has_team_file_events'|'has_team_selective_sync'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamFeaturesGetValuesBatchArg + * @property {Array.} features - A list of features in Feature. If + * the list is empty, this route will return FeaturesGetValuesBatchError. + */ + +/** + * @typedef {Object} TeamFeaturesGetValuesBatchError + * @property {('empty_features_list'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamFeaturesGetValuesBatchResult + * @property {Array.} values + */ + +/** + * Activity Report Result. Each of the items in the storage report is an array + * of values, one value per day. If there is no data for a day, then the value + * will be None. + * @typedef {Object} TeamGetActivityReport + * @property {string} start_date - First date present in the results as + * 'YYYY-MM-DD' or None. + * @property {Array.} adds - Array of total number of adds by team + * members. + * @property {Array.} edits - Array of number of edits by team members. + * If the same user edits the same file multiple times this is counted as a + * single edit. + * @property {Array.} deletes - Array of total number of deletes by team + * members. + * @property {Array.} active_users_28_day - Array of the number of users + * who have been active in the last 28 days. + * @property {Array.} active_users_7_day - Array of the number of users + * who have been active in the last week. + * @property {Array.} active_users_1_day - Array of the number of users + * who have been active in the last day. + * @property {Array.} active_shared_folders_28_day - Array of the number + * of shared folders with some activity in the last 28 days. + * @property {Array.} active_shared_folders_7_day - Array of the number + * of shared folders with some activity in the last week. + * @property {Array.} active_shared_folders_1_day - Array of the number + * of shared folders with some activity in the last day. + * @property {Array.} shared_links_created - Array of the number of + * shared links created. + * @property {Array.} shared_links_viewed_by_team - Array of the number + * of views by team users to shared links created by the team. + * @property {Array.} shared_links_viewed_by_outside_user - Array of the + * number of views by users outside of the team to shared links created by the + * team. + * @property {Array.} shared_links_viewed_by_not_logged_in - Array of + * the number of views by non-logged-in users to shared links created by the + * team. + * @property {Array.} shared_links_viewed_total - Array of the total + * number of views to shared links created by the team. + */ + +/** + * Devices Report Result. Contains subsections for different time ranges of + * activity. Each of the items in each subsection of the storage report is an + * array of values, one value per day. If there is no data for a day, then the + * value will be None. + * @typedef {Object} TeamGetDevicesReport + * @property {string} start_date - First date present in the results as + * 'YYYY-MM-DD' or None. + * @property {TeamDevicesActive} active_1_day - Report of the number of devices + * active in the last day. + * @property {TeamDevicesActive} active_7_day - Report of the number of devices + * active in the last 7 days. + * @property {TeamDevicesActive} active_28_day - Report of the number of devices + * active in the last 28 days. + */ + +/** + * Membership Report Result. Each of the items in the storage report is an array + * of values, one value per day. If there is no data for a day, then the value + * will be None. + * @typedef {Object} TeamGetMembershipReport + * @property {string} start_date - First date present in the results as + * 'YYYY-MM-DD' or None. + * @property {Array.} team_size - Team size, for each day. + * @property {Array.} pending_invites - The number of pending invites to + * the team, for each day. + * @property {Array.} members_joined - The number of members that joined + * the team, for each day. + * @property {Array.} suspended_members - The number of suspended team + * members, for each day. + * @property {Array.} licenses - The total number of licenses the team + * has, for each day. + */ + +/** + * Storage Report Result. Each of the items in the storage report is an array of + * values, one value per day. If there is no data for a day, then the value will + * be None. + * @typedef {Object} TeamGetStorageReport + * @property {string} start_date - First date present in the results as + * 'YYYY-MM-DD' or None. + * @property {Array.} total_usage - Sum of the shared, unshared, and + * datastore usages, for each day. + * @property {Array.} shared_usage - Array of the combined size (bytes) + * of team members' shared folders, for each day. + * @property {Array.} unshared_usage - Array of the combined size + * (bytes) of team members' root namespaces, for each day. + * @property {Array.} shared_folders - Array of the number of shared + * folders owned by team members, for each day. + * @property {Array.>} member_storage_map - Array of + * storage summaries of team members' account sizes. Each storage summary is an + * array of key, value pairs, where each pair describes a storage bucket. The + * key indicates the upper bound of the bucket and the value is the number of + * users in that bucket. There is one such summary per day. If there is no data + * for a day, the storage summary will be empty. + */ + +/** + * Role of a user in group. + * @typedef {Object} TeamGroupAccessType + * @property {('member'|'owner')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamGroupCreateArg + * @property {string} group_name - Group name. + * @property {boolean} add_creator_as_owner - Automatically add the creator of + * the group. + * @property {string} [group_external_id] - The creator of a team can associate + * an arbitrary external ID to the group. + * @property {TeamCommonGroupManagementType} [group_management_type] - Whether + * the team can be managed by selected users, or only by team admins. + */ + +/** + * @typedef {Object} TeamGroupCreateError + * @property {('group_name_already_used'|'group_name_invalid'|'external_id_already_in_use'|'system_managed_group_disallowed'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamGroupDeleteError + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'group_already_deleted')} .tag - Tag identifying the union variant. + */ + +/** + * Full description of a group. + * @typedef {Object} TeamGroupFullInfo + * @property {string} group_name + * @property {string} group_id + * @property {TeamCommonGroupManagementType} group_management_type - Who is + * allowed to manage the group. + * @property {number} created - The group creation time as a UTC timestamp in + * milliseconds since the Unix epoch. + * @property {string} [group_external_id] - External ID of group. This is an + * arbitrary ID that an admin can attach to a group. + * @property {number} [member_count] - The number of members in the group. + * @property {Array.} [members] - List of group members. + */ + +/** + * Profile of group member, and role in group. + * @typedef {Object} TeamGroupMemberInfo + * @property {TeamMemberProfile} profile - Profile of group member. + * @property {TeamGroupAccessType} access_type - The role that the user has in + * the group. + */ + +/** + * Argument for selecting a group and a single user. + * @typedef {Object} TeamGroupMemberSelector + * @property {TeamGroupSelector} group - Specify a group. + * @property {TeamUserSelectorArg} user - Identity of a user that is a member of + * group. + */ + +/** + * Error that can be raised when GroupMemberSelector is used, and the user is + * required to be a member of the specified group. + * @typedef {Object} TeamGroupMemberSelectorError + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'member_not_in_group')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamGroupMemberSetAccessTypeError + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'member_not_in_group'|'user_cannot_be_manager_of_company_managed_group')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamGroupMembersAddArg + * @property {TeamGroupSelector} group - Group to which users will be added. + * @property {Array.} members - List of users to be added to + * the group. + * @property {boolean} return_members - Whether to return the list of members in + * the group. Note that the default value will cause all the group members to + * be returned in the response. This may take a long time for large groups. + */ + +/** + * @typedef {Object} TeamGroupMembersAddError + * @property {Array.} [members_not_in_team] - Available if .tag is + * members_not_in_team. These members are not part of your team. Currently, you + * cannot add members to a group if they are not part of your team, though this + * may change in a subsequent version. To add new members to your Dropbox + * Business team, use the :route:`members/add` endpoint. + * @property {Array.} [users_not_found] - Available if .tag is + * users_not_found. These users were not found in Dropbox. + * @property {Array.} [user_cannot_be_manager_of_company_managed_group] + * - Available if .tag is user_cannot_be_manager_of_company_managed_group. A + * company-managed group cannot be managed by a user. + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'duplicate_user'|'group_not_in_team'|'members_not_in_team'|'users_not_found'|'user_must_be_active_to_be_owner'|'user_cannot_be_manager_of_company_managed_group')} .tag - Tag identifying the union variant. + */ + +/** + * Result returned by groups/members/add and groups/members/remove. + * @typedef {Object} TeamGroupMembersChangeResult + * @property {TeamGroupFullInfo} group_info - The group info after member change + * operation has been performed. + * @property {string} async_job_id - For legacy purposes async_job_id will + * always return one space ' '. Formerly, it was an ID that was used to obtain + * the status of granting/revoking group-owned resources. It's no longer + * necessary because the async processing now happens automatically. + */ + +/** + * @typedef {Object} TeamGroupMembersRemoveArg + * @property {TeamGroupSelector} group - Group from which users will be removed. + * @property {Array.} users - List of users to be removed + * from the group. + * @property {boolean} return_members - Whether to return the list of members in + * the group. Note that the default value will cause all the group members to + * be returned in the response. This may take a long time for large groups. + */ + +/** + * @typedef {Object} TeamGroupMembersRemoveError + * @property {Array.} [members_not_in_team] - Available if .tag is + * members_not_in_team. These members are not part of your team. + * @property {Array.} [users_not_found] - Available if .tag is + * users_not_found. These users were not found in Dropbox. + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'member_not_in_group'|'group_not_in_team'|'members_not_in_team'|'users_not_found')} .tag - Tag identifying the union variant. + */ + +/** + * Argument for selecting a group and a list of users. + * @typedef {Object} TeamGroupMembersSelector + * @property {TeamGroupSelector} group - Specify a group. + * @property {TeamUsersSelectorArg} users - A list of users that are members of + * group. + */ + +/** + * Error that can be raised when GroupMembersSelector is used, and the users are + * required to be members of the specified group. + * @typedef {Object} TeamGroupMembersSelectorError + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'member_not_in_group')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamGroupMembersSetAccessTypeArg + * @property {TeamGroupSelector} group - Specify a group. + * @property {TeamUserSelectorArg} user - Identity of a user that is a member of + * group. + * @property {TeamGroupAccessType} access_type - New group access type the user + * will have. + * @property {boolean} return_members - Whether to return the list of members in + * the group. Note that the default value will cause all the group members to + * be returned in the response. This may take a long time for large groups. + */ + +/** + * Argument for selecting a single group, either by group_id or by external + * group ID. + * @typedef {Object} TeamGroupSelector + * @property {string} [group_id] - Available if .tag is group_id. Group ID. + * @property {string} [group_external_id] - Available if .tag is + * group_external_id. External ID of the group. + * @property {('group_id'|'group_external_id')} .tag - Tag identifying the union variant. + */ + +/** + * Error that can be raised when GroupSelector is used. + * @typedef {Object} TeamGroupSelectorError + * @property {('group_not_found'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Error that can be raised when GroupSelector is used and team groups are + * disallowed from being used. + * @typedef {Object} TeamGroupSelectorWithTeamGroupError + * @property {('group_not_found'|'other'|'system_managed_group_disallowed')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamGroupUpdateArgs + * @property {TeamGroupSelector} group - Specify a group. + * @property {boolean} return_members - Whether to return the list of members in + * the group. Note that the default value will cause all the group members to + * be returned in the response. This may take a long time for large groups. + * @property {string} [new_group_name] - Optional argument. Set group name to + * this if provided. + * @property {string} [new_group_external_id] - Optional argument. New group + * external ID. If the argument is None, the group's external_id won't be + * updated. If the argument is empty string, the group's external id will be + * cleared. + * @property {TeamCommonGroupManagementType} [new_group_management_type] - Set + * new group management type, if provided. + */ + +/** + * @typedef {Object} TeamGroupUpdateError + * @property {('group_not_found'|'other'|'system_managed_group_disallowed'|'group_name_already_used'|'group_name_invalid'|'external_id_already_in_use')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamGroupsGetInfoError + * @property {('group_not_on_team'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamGroupsGetInfoItem + * @property {string} [id_not_found] - Available if .tag is id_not_found. An ID + * that was provided as a parameter to :route:`groups/get_info`, and did not + * match a corresponding group. The ID can be a group ID, or an external ID, + * depending on how the method was called. + * @property {TeamGroupFullInfo} [group_info] - Available if .tag is group_info. + * Info about a group. + * @property {('id_not_found'|'group_info')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamGroupsListArg + * @property {number} limit - Number of results to return per call. + */ + +/** + * @typedef {Object} TeamGroupsListContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * groups. + */ + +/** + * @typedef {Object} TeamGroupsListContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamGroupsListResult + * @property {Array.} groups + * @property {string} cursor - Pass the cursor into groups/list/continue to + * obtain the additional groups. + * @property {boolean} has_more - Is true if there are additional groups that + * have not been returned yet. An additional call to groups/list/continue can + * retrieve them. + */ + +/** + * @typedef {Object} TeamGroupsMembersListArg + * @property {TeamGroupSelector} group - The group whose members are to be + * listed. + * @property {number} limit - Number of results to return per call. + */ + +/** + * @typedef {Object} TeamGroupsMembersListContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * groups. + */ + +/** + * @typedef {Object} TeamGroupsMembersListContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamGroupsMembersListResult + * @property {Array.} members + * @property {string} cursor - Pass the cursor into groups/members/list/continue + * to obtain additional group members. + * @property {boolean} has_more - Is true if there are additional group members + * that have not been returned yet. An additional call to + * groups/members/list/continue can retrieve them. + */ + +/** + * @typedef {Object} TeamGroupsPollError + * @property {('invalid_async_job_id'|'internal_error'|'other'|'access_denied')} .tag - Tag identifying the union variant. + */ + +/** + * Argument for selecting a list of groups, either by group_ids, or external + * group IDs. + * @typedef {Object} TeamGroupsSelector + * @property {Array.} [group_ids] - Available if .tag is group_ids. List + * of group IDs. + * @property {Array.} [group_external_ids] - Available if .tag is + * group_external_ids. List of external IDs of groups. + * @property {('group_ids'|'group_external_ids')} .tag - Tag identifying the union variant. + */ + +/** + * The value for Feature.has_team_file_events. + * @typedef {Object} TeamHasTeamFileEventsValue + * @property {boolean} [enabled] - Available if .tag is enabled. Does this team + * have file events. + * @property {('enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * The value for Feature.has_team_selective_sync. + * @typedef {Object} TeamHasTeamSelectiveSyncValue + * @property {boolean} [has_team_selective_sync] - Available if .tag is + * has_team_selective_sync. Does this team have team selective sync enabled. + * @property {('has_team_selective_sync'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * The value for Feature.has_team_shared_dropbox. + * @typedef {Object} TeamHasTeamSharedDropboxValue + * @property {boolean} [has_team_shared_dropbox] - Available if .tag is + * has_team_shared_dropbox. Does this team have a shared team root. + * @property {('has_team_shared_dropbox'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamIncludeMembersArg + * @property {boolean} return_members - Whether to return the list of members in + * the group. Note that the default value will cause all the group members to + * be returned in the response. This may take a long time for large groups. + */ + +/** + * @typedef {Object} TeamLegalHoldHeldRevisionMetadata + * @property {string} new_filename - The held revision filename. + * @property {string} original_revision_id - The id of the held revision. + * @property {string} original_file_path - The original path of the held + * revision. + * @property {Timestamp} server_modified - The last time the file was modified + * on Dropbox. + * @property {string} author_member_id - The member id of the revision's author. + * @property {TeamTeamMemberStatus} author_member_status - The member status of + * the revision's author. + * @property {string} author_email - The email address of the held revision + * author. + * @property {string} file_type - The type of the held revision's file. + * @property {number} size - The file size in bytes. + * @property {string} content_hash - A hash of the file content. This field can + * be used to verify data integrity. For more information see our Content hash + * https://www.dropbox.com/developers/reference/content-hash page. + */ + +/** + * @typedef {Object} TeamLegalHoldPolicy + * @property {string} id - The legal hold id. + * @property {string} name - Policy name. + * @property {TeamMembersInfo} members - Team members IDs and number of + * permanently deleted members under hold. + * @property {TeamLegalHoldStatus} status - The current state of the hold. + * @property {Timestamp} start_date - Start date of the legal hold policy. + * @property {string} [description] - A description of the legal hold policy. + * @property {Timestamp} [activation_time] - The time at which the legal hold + * was activated. + * @property {Timestamp} [end_date] - End date of the legal hold policy. + */ + +/** + * @typedef {Object} TeamLegalHoldStatus + * @property {('active'|'released'|'activating'|'updating'|'exporting'|'releasing'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLegalHoldsError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLegalHoldsGetPolicyArg + * @property {string} id - The legal hold Id. + */ + +/** + * @typedef {Object} TeamLegalHoldsGetPolicyError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other'|'legal_hold_policy_not_found')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLegalHoldsListHeldRevisionResult + * @property {Array.} entries - List of file + * entries that under the hold. + * @property {boolean} has_more - True if there are more file entries that + * haven't been returned. You can retrieve them with a call to + * /legal_holds/list_held_revisions_continue. + * @property {string} [cursor] - The cursor idicates where to continue reading + * file metadata entries for the next API call. When there are no more entries, + * the cursor will return none. Pass the cursor into + * /2/team/legal_holds/list_held_revisions/continue. + */ + +/** + * @typedef {Object} TeamLegalHoldsListHeldRevisionsArg + * @property {string} id - The legal hold Id. + */ + +/** + * @typedef {Object} TeamLegalHoldsListHeldRevisionsContinueArg + * @property {string} id - The legal hold Id. + * @property {string} [cursor] - The cursor idicates where to continue reading + * file metadata entries for the next API call. When there are no more entries, + * the cursor will return none. + */ + +/** + * @typedef {Object} TeamLegalHoldsListHeldRevisionsContinueError + * @property {('unknown_legal_hold_error'|'transient_error'|'reset'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLegalHoldsListHeldRevisionsError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other'|'transient_error'|'legal_hold_still_empty'|'inactive_legal_hold')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLegalHoldsListPoliciesArg + * @property {boolean} include_released - Whether to return holds that were + * released. + */ + +/** + * @typedef {Object} TeamLegalHoldsListPoliciesError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other'|'transient_error')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLegalHoldsListPoliciesResult + * @property {Array.} policies + */ + +/** + * @typedef {Object} TeamLegalHoldsPolicyCreateArg + * @property {string} name - Policy name. + * @property {Array.} members - List of team member IDs added to the + * hold. + * @property {string} [description] - A description of the legal hold policy. + * @property {Timestamp} [start_date] - start date of the legal hold policy. + * @property {Timestamp} [end_date] - end date of the legal hold policy. + */ + +/** + * @typedef {Object} TeamLegalHoldsPolicyCreateError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other'|'start_date_is_later_than_end_date'|'empty_members_list'|'invalid_members'|'number_of_users_on_hold_is_greater_than_hold_limitation'|'transient_error'|'name_must_be_unique'|'team_exceeded_legal_hold_quota'|'invalid_date')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLegalHoldsPolicyReleaseArg + * @property {string} id - The legal hold Id. + */ + +/** + * @typedef {Object} TeamLegalHoldsPolicyReleaseError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other'|'legal_hold_performing_another_operation'|'legal_hold_already_releasing'|'legal_hold_policy_not_found')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLegalHoldsPolicyUpdateArg + * @property {string} id - The legal hold Id. + * @property {string} [name] - Policy new name. + * @property {string} [description] - Policy new description. + * @property {Array.} [members] - List of team member IDs to apply the + * policy on. + */ + +/** + * @typedef {Object} TeamLegalHoldsPolicyUpdateError + * @property {('unknown_legal_hold_error'|'insufficient_permissions'|'other'|'transient_error'|'inactive_legal_hold'|'legal_hold_performing_another_operation'|'invalid_members'|'number_of_users_on_hold_is_greater_than_hold_limitation'|'empty_members_list'|'name_must_be_unique'|'legal_hold_policy_not_found')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamListMemberAppsArg + * @property {string} team_member_id - The team member id. + */ + +/** + * Error returned by linked_apps/list_member_linked_apps. + * @typedef {Object} TeamListMemberAppsError + * @property {('member_not_found'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamListMemberAppsResult + * @property {Array.} linked_api_apps - List of third party + * applications linked by this team member. + */ + +/** + * @typedef {Object} TeamListMemberDevicesArg + * @property {string} team_member_id - The team's member id. + * @property {boolean} include_web_sessions - Whether to list web sessions of + * the team's member. + * @property {boolean} include_desktop_clients - Whether to list linked desktop + * devices of the team's member. + * @property {boolean} include_mobile_clients - Whether to list linked mobile + * devices of the team's member. + */ + +/** + * @typedef {Object} TeamListMemberDevicesError + * @property {('member_not_found'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamListMemberDevicesResult + * @property {Array.} [active_web_sessions] - List of web + * sessions made by this team member. + * @property {Array.} [desktop_client_sessions] - List + * of desktop clients used by this team member. + * @property {Array.} [mobile_client_sessions] - List + * of mobile client used by this team member. + */ + +/** + * Arguments for linked_apps/list_members_linked_apps. + * @typedef {Object} TeamListMembersAppsArg + * @property {string} [cursor] - At the first call to the + * linked_apps/list_members_linked_apps the cursor shouldn't be passed. Then, if + * the result of the call includes a cursor, the following requests should + * include the received cursors in order to receive the next sub list of the + * team applications. + */ + +/** + * Error returned by linked_apps/list_members_linked_apps. + * @typedef {Object} TeamListMembersAppsError + * @property {('reset'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Information returned by linked_apps/list_members_linked_apps. + * @typedef {Object} TeamListMembersAppsResult + * @property {Array.} apps - The linked applications of + * each member of the team. + * @property {boolean} has_more - If true, then there are more apps available. + * Pass the cursor to linked_apps/list_members_linked_apps to retrieve the rest. + * @property {string} [cursor] - Pass the cursor into + * linked_apps/list_members_linked_apps to receive the next sub list of team's + * applications. + */ + +/** + * @typedef {Object} TeamListMembersDevicesArg + * @property {string} [cursor] - At the first call to the + * devices/list_members_devices the cursor shouldn't be passed. Then, if the + * result of the call includes a cursor, the following requests should include + * the received cursors in order to receive the next sub list of team devices. + * @property {boolean} include_web_sessions - Whether to list web sessions of + * the team members. + * @property {boolean} include_desktop_clients - Whether to list desktop clients + * of the team members. + * @property {boolean} include_mobile_clients - Whether to list mobile clients + * of the team members. + */ + +/** + * @typedef {Object} TeamListMembersDevicesError + * @property {('reset'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamListMembersDevicesResult + * @property {Array.} devices - The devices of each member of + * the team. + * @property {boolean} has_more - If true, then there are more devices + * available. Pass the cursor to devices/list_members_devices to retrieve the + * rest. + * @property {string} [cursor] - Pass the cursor into + * devices/list_members_devices to receive the next sub list of team's devices. + */ + +/** + * Arguments for linked_apps/list_team_linked_apps. + * @typedef {Object} TeamListTeamAppsArg + * @property {string} [cursor] - At the first call to the + * linked_apps/list_team_linked_apps the cursor shouldn't be passed. Then, if + * the result of the call includes a cursor, the following requests should + * include the received cursors in order to receive the next sub list of the + * team applications. + */ + +/** + * Error returned by linked_apps/list_team_linked_apps. + * @typedef {Object} TeamListTeamAppsError + * @property {('reset'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Information returned by linked_apps/list_team_linked_apps. + * @typedef {Object} TeamListTeamAppsResult + * @property {Array.} apps - The linked applications of + * each member of the team. + * @property {boolean} has_more - If true, then there are more apps available. + * Pass the cursor to linked_apps/list_team_linked_apps to retrieve the rest. + * @property {string} [cursor] - Pass the cursor into + * linked_apps/list_team_linked_apps to receive the next sub list of team's + * applications. + */ + +/** + * @typedef {Object} TeamListTeamDevicesArg + * @property {string} [cursor] - At the first call to the + * devices/list_team_devices the cursor shouldn't be passed. Then, if the result + * of the call includes a cursor, the following requests should include the + * received cursors in order to receive the next sub list of team devices. + * @property {boolean} include_web_sessions - Whether to list web sessions of + * the team members. + * @property {boolean} include_desktop_clients - Whether to list desktop clients + * of the team members. + * @property {boolean} include_mobile_clients - Whether to list mobile clients + * of the team members. + */ + +/** + * @typedef {Object} TeamListTeamDevicesError + * @property {('reset'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamListTeamDevicesResult + * @property {Array.} devices - The devices of each member of + * the team. + * @property {boolean} has_more - If true, then there are more devices + * available. Pass the cursor to devices/list_team_devices to retrieve the rest. + * @property {string} [cursor] - Pass the cursor into devices/list_team_devices + * to receive the next sub list of team's devices. + */ + +/** + * Specify access type a member should have when joined to a group. + * @typedef {Object} TeamMemberAccess + * @property {TeamUserSelectorArg} user - Identity of a user. + * @property {TeamGroupAccessType} access_type - Access type. + */ + +/** + * @typedef {Object} TeamMemberAddArg + * @property {string} member_email + * @property {string} [member_given_name] - Member's first name. + * @property {string} [member_surname] - Member's last name. + * @property {string} [member_external_id] - External ID for member. + * @property {string} [member_persistent_id] - Persistent ID for member. This + * field is only available to teams using persistent ID SAML configuration. + * @property {boolean} send_welcome_email - Whether to send a welcome email to + * the member. If send_welcome_email is false, no email invitation will be sent + * to the user. This may be useful for apps using single sign-on (SSO) flows for + * onboarding that want to handle announcements themselves. + * @property {boolean} [is_directory_restricted] - Whether a user is directory + * restricted. + * @property {TeamAdminTier} role + */ + +/** + * @typedef {Object} TeamMemberAddArgBase + * @property {string} member_email + * @property {string} [member_given_name] - Member's first name. + * @property {string} [member_surname] - Member's last name. + * @property {string} [member_external_id] - External ID for member. + * @property {string} [member_persistent_id] - Persistent ID for member. This + * field is only available to teams using persistent ID SAML configuration. + * @property {boolean} send_welcome_email - Whether to send a welcome email to + * the member. If send_welcome_email is false, no email invitation will be sent + * to the user. This may be useful for apps using single sign-on (SSO) flows for + * onboarding that want to handle announcements themselves. + * @property {boolean} [is_directory_restricted] - Whether a user is directory + * restricted. + */ + +/** + * Describes the result of attempting to add a single user to the team. + * 'success' is the only value indicating that a user was indeed added to the + * team - the other values explain the type of failure that occurred, and + * include the email of the user for which the operation has failed. + * @typedef {Object} TeamMemberAddResult + * @property {string} [team_license_limit] - Available if .tag is + * team_license_limit. Team is already full. The organization has no available + * licenses. + * @property {string} [free_team_member_limit_reached] - Available if .tag is + * free_team_member_limit_reached. Team is already full. The free team member + * limit has been reached. + * @property {string} [user_already_on_team] - Available if .tag is + * user_already_on_team. User is already on this team. The provided email + * address is associated with a user who is already a member of (including in + * recoverable state) or invited to the team. + * @property {string} [user_on_another_team] - Available if .tag is + * user_on_another_team. User is already on another team. The provided email + * address is associated with a user that is already a member or invited to + * another team. + * @property {string} [user_already_paired] - Available if .tag is + * user_already_paired. User is already paired. + * @property {string} [user_migration_failed] - Available if .tag is + * user_migration_failed. User migration has failed. + * @property {string} [duplicate_external_member_id] - Available if .tag is + * duplicate_external_member_id. A user with the given external member ID + * already exists on the team (including in recoverable state). + * @property {string} [duplicate_member_persistent_id] - Available if .tag is + * duplicate_member_persistent_id. A user with the given persistent ID already + * exists on the team (including in recoverable state). + * @property {string} [persistent_id_disabled] - Available if .tag is + * persistent_id_disabled. Persistent ID is only available to teams with + * persistent ID SAML configuration. Please contact Dropbox for more + * information. + * @property {string} [user_creation_failed] - Available if .tag is + * user_creation_failed. User creation has failed. + * @property {TeamTeamMemberInfo} [success] - Available if .tag is success. + * Describes a user that was successfully added to the team. + * @property {('team_license_limit'|'free_team_member_limit_reached'|'user_already_on_team'|'user_on_another_team'|'user_already_paired'|'user_migration_failed'|'duplicate_external_member_id'|'duplicate_member_persistent_id'|'persistent_id_disabled'|'user_creation_failed'|'success')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMemberAddResultBase + * @property {string} [team_license_limit] - Available if .tag is + * team_license_limit. Team is already full. The organization has no available + * licenses. + * @property {string} [free_team_member_limit_reached] - Available if .tag is + * free_team_member_limit_reached. Team is already full. The free team member + * limit has been reached. + * @property {string} [user_already_on_team] - Available if .tag is + * user_already_on_team. User is already on this team. The provided email + * address is associated with a user who is already a member of (including in + * recoverable state) or invited to the team. + * @property {string} [user_on_another_team] - Available if .tag is + * user_on_another_team. User is already on another team. The provided email + * address is associated with a user that is already a member or invited to + * another team. + * @property {string} [user_already_paired] - Available if .tag is + * user_already_paired. User is already paired. + * @property {string} [user_migration_failed] - Available if .tag is + * user_migration_failed. User migration has failed. + * @property {string} [duplicate_external_member_id] - Available if .tag is + * duplicate_external_member_id. A user with the given external member ID + * already exists on the team (including in recoverable state). + * @property {string} [duplicate_member_persistent_id] - Available if .tag is + * duplicate_member_persistent_id. A user with the given persistent ID already + * exists on the team (including in recoverable state). + * @property {string} [persistent_id_disabled] - Available if .tag is + * persistent_id_disabled. Persistent ID is only available to teams with + * persistent ID SAML configuration. Please contact Dropbox for more + * information. + * @property {string} [user_creation_failed] - Available if .tag is + * user_creation_failed. User creation has failed. + * @property {('team_license_limit'|'free_team_member_limit_reached'|'user_already_on_team'|'user_on_another_team'|'user_already_paired'|'user_migration_failed'|'duplicate_external_member_id'|'duplicate_member_persistent_id'|'persistent_id_disabled'|'user_creation_failed')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMemberAddV2Arg + * @property {string} member_email + * @property {string} [member_given_name] - Member's first name. + * @property {string} [member_surname] - Member's last name. + * @property {string} [member_external_id] - External ID for member. + * @property {string} [member_persistent_id] - Persistent ID for member. This + * field is only available to teams using persistent ID SAML configuration. + * @property {boolean} send_welcome_email - Whether to send a welcome email to + * the member. If send_welcome_email is false, no email invitation will be sent + * to the user. This may be useful for apps using single sign-on (SSO) flows for + * onboarding that want to handle announcements themselves. + * @property {boolean} [is_directory_restricted] - Whether a user is directory + * restricted. + * @property {Array.} [role_ids] + */ + +/** + * Describes the result of attempting to add a single user to the team. + * 'success' is the only value indicating that a user was indeed added to the + * team - the other values explain the type of failure that occurred, and + * include the email of the user for which the operation has failed. + * @typedef {Object} TeamMemberAddV2Result + * @property {string} [team_license_limit] - Available if .tag is + * team_license_limit. Team is already full. The organization has no available + * licenses. + * @property {string} [free_team_member_limit_reached] - Available if .tag is + * free_team_member_limit_reached. Team is already full. The free team member + * limit has been reached. + * @property {string} [user_already_on_team] - Available if .tag is + * user_already_on_team. User is already on this team. The provided email + * address is associated with a user who is already a member of (including in + * recoverable state) or invited to the team. + * @property {string} [user_on_another_team] - Available if .tag is + * user_on_another_team. User is already on another team. The provided email + * address is associated with a user that is already a member or invited to + * another team. + * @property {string} [user_already_paired] - Available if .tag is + * user_already_paired. User is already paired. + * @property {string} [user_migration_failed] - Available if .tag is + * user_migration_failed. User migration has failed. + * @property {string} [duplicate_external_member_id] - Available if .tag is + * duplicate_external_member_id. A user with the given external member ID + * already exists on the team (including in recoverable state). + * @property {string} [duplicate_member_persistent_id] - Available if .tag is + * duplicate_member_persistent_id. A user with the given persistent ID already + * exists on the team (including in recoverable state). + * @property {string} [persistent_id_disabled] - Available if .tag is + * persistent_id_disabled. Persistent ID is only available to teams with + * persistent ID SAML configuration. Please contact Dropbox for more + * information. + * @property {string} [user_creation_failed] - Available if .tag is + * user_creation_failed. User creation has failed. + * @property {TeamTeamMemberInfoV2} [success] - Available if .tag is success. + * Describes a user that was successfully added to the team. + * @property {('team_license_limit'|'free_team_member_limit_reached'|'user_already_on_team'|'user_on_another_team'|'user_already_paired'|'user_migration_failed'|'duplicate_external_member_id'|'duplicate_member_persistent_id'|'persistent_id_disabled'|'user_creation_failed'|'success'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Information on devices of a team's member. + * @typedef {Object} TeamMemberDevices + * @property {string} team_member_id - The member unique Id. + * @property {Array.} [web_sessions] - List of web + * sessions made by this team member. + * @property {Array.} [desktop_clients] - List of + * desktop clients by this team member. + * @property {Array.} [mobile_clients] - List of mobile + * clients by this team member. + */ + +/** + * Information on linked applications of a team member. + * @typedef {Object} TeamMemberLinkedApps + * @property {string} team_member_id - The member unique Id. + * @property {Array.} linked_api_apps - List of third party + * applications linked by this team member. + */ + +/** + * Basic member profile. + * @typedef {Object} TeamMemberProfile + * @property {string} team_member_id - ID of user as a member of a team. + * @property {string} email - Email address of user. + * @property {boolean} email_verified - Is true if the user's email is verified + * to be owned by the user. + * @property {TeamTeamMemberStatus} status - The user's status as a member of a + * specific team. + * @property {UsersName} name - Representations for a person's name. + * @property {TeamTeamMembershipType} membership_type - The user's membership + * type: full (normal team member) vs limited (does not use a license; no access + * to the team's shared quota). + * @property {string} [external_id] - External ID that a team can attach to the + * user. An application using the API may find it easier to use their own IDs + * instead of Dropbox IDs like account_id or team_member_id. + * @property {string} [account_id] - A user's account identifier. + * @property {Array.} [secondary_emails] - + * Secondary emails of a user. + * @property {Timestamp} [invited_on] - The date and time the user was invited + * to the team (contains value only when the member's status matches + * TeamMemberStatus.invited). + * @property {Timestamp} [joined_on] - The date and time the user joined as a + * member of a specific team. + * @property {Timestamp} [suspended_on] - The date and time the user was + * suspended from the team (contains value only when the member's status matches + * TeamMemberStatus.suspended). + * @property {string} [persistent_id] - Persistent ID that a team can attach to + * the user. The persistent ID is unique ID to be used for SAML authentication. + * @property {boolean} [is_directory_restricted] - Whether the user is a + * directory restricted user. + * @property {string} [profile_photo_url] - URL for the photo representing the + * user, if one is set. + */ + +/** + * @typedef {Object} TeamMemberSelectorError + * @property {('user_not_found'|'user_not_in_team')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMembersAddArg + * @property {Array.} new_members - Details of new members to + * be added to the team. + * @property {boolean} force_async - Whether to force the add to happen + * asynchronously. + */ + +/** + * @typedef {Object} TeamMembersAddArgBase + * @property {boolean} force_async - Whether to force the add to happen + * asynchronously. + */ + +/** + * @typedef {Object} TeamMembersAddJobStatus + * @property {Array.} [complete] - Available if .tag is + * complete. The asynchronous job has finished. For each member that was + * specified in the parameter :type:`MembersAddArg` that was provided to + * :route:`members/add`, a corresponding item is returned in this list. + * @property {string} [failed] - Available if .tag is failed. The asynchronous + * job returned an error. The string contains an error message. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMembersAddJobStatusV2Result + * @property {Array.} [complete] - Available if .tag is + * complete. The asynchronous job has finished. For each member that was + * specified in the parameter :type:`MembersAddArg` that was provided to + * :route:`members/add:2`, a corresponding item is returned in this list. + * @property {string} [failed] - Available if .tag is failed. The asynchronous + * job returned an error. The string contains an error message. + * @property {('in_progress'|'complete'|'failed'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMembersAddLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {Array.} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMembersAddLaunchV2Result + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {Array.} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMembersAddV2Arg + * @property {Array.} new_members - Details of new members + * to be added to the team. + * @property {boolean} force_async - Whether to force the add to happen + * asynchronously. + */ + +/** + * @typedef {Object} TeamMembersDataTransferArg + * @property {TeamUserSelectorArg} user - Identity of user to + * remove/suspend/have their files moved. + * @property {TeamUserSelectorArg} transfer_dest_id - Files from the deleted + * member account will be transferred to this user. + * @property {TeamUserSelectorArg} transfer_admin_id - Errors during the + * transfer process will be sent via email to this user. + */ + +/** + * @typedef {Object} TeamMembersDeactivateArg + * @property {TeamUserSelectorArg} user - Identity of user to + * remove/suspend/have their files moved. + * @property {boolean} wipe_data - If provided, controls if the user's data will + * be deleted on their linked devices. + */ + +/** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + * @typedef {Object} TeamMembersDeactivateBaseArg + * @property {TeamUserSelectorArg} user - Identity of user to + * remove/suspend/have their files moved. + */ + +/** + * @typedef {Object} TeamMembersDeactivateError + * @property {('user_not_found'|'user_not_in_team'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMembersDeleteProfilePhotoArg + * @property {TeamUserSelectorArg} user - Identity of the user whose profile + * photo will be deleted. + */ + +/** + * @typedef {Object} TeamMembersDeleteProfilePhotoError + * @property {('user_not_found'|'user_not_in_team'|'set_profile_disallowed'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Available TeamMemberRole for the connected team. To be used with + * members/set_admin_permissions:2. + * @typedef {Object} TeamMembersGetAvailableTeamMemberRolesResult + * @property {Array.} roles - Available roles. + */ + +/** + * @typedef {Object} TeamMembersGetInfoArgs + * @property {Array.} members - List of team members. + */ + +/** + * @typedef {Object} TeamMembersGetInfoError + * @property {'other'} .tag - Tag identifying the union variant. + */ + +/** + * Describes a result obtained for a single user whose id was specified in the + * parameter of members/get_info. + * @typedef {Object} TeamMembersGetInfoItem + * @property {string} [id_not_found] - Available if .tag is id_not_found. An ID + * that was provided as a parameter to :route:`members/get_info` or + * :route:`members/get_info:2`, and did not match a corresponding user. This + * might be a team_member_id, an email, or an external ID, depending on how the + * method was called. + * @property {TeamTeamMemberInfo} [member_info] - Available if .tag is + * member_info. Info about a team member. + * @property {('id_not_found'|'member_info')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMembersGetInfoItemBase + * @property {string} [id_not_found] - Available if .tag is id_not_found. An ID + * that was provided as a parameter to :route:`members/get_info` or + * :route:`members/get_info:2`, and did not match a corresponding user. This + * might be a team_member_id, an email, or an external ID, depending on how the + * method was called. + * @property {'id_not_found'} .tag - Tag identifying the union variant. + */ + +/** + * Describes a result obtained for a single user whose id was specified in the + * parameter of members/get_info:2. + * @typedef {Object} TeamMembersGetInfoItemV2 + * @property {string} [id_not_found] - Available if .tag is id_not_found. An ID + * that was provided as a parameter to :route:`members/get_info` or + * :route:`members/get_info:2`, and did not match a corresponding user. This + * might be a team_member_id, an email, or an external ID, depending on how the + * method was called. + * @property {TeamTeamMemberInfoV2} [member_info] - Available if .tag is + * member_info. Info about a team member. + * @property {('id_not_found'|'member_info'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMembersGetInfoV2Arg + * @property {Array.} members - List of team members. + */ + +/** + * @typedef {Object} TeamMembersGetInfoV2Result + * @property {Array.} members_info - List of team + * members info. + */ + +/** + * @typedef {Object} TeamMembersInfo + * @property {Array.} team_member_ids - Team member IDs of the users + * under this hold. + * @property {number} permanently_deleted_users - The number of permanently + * deleted users that were under this hold. + */ + +/** + * @typedef {Object} TeamMembersListArg + * @property {number} limit - Number of results to return per call. + * @property {boolean} include_removed - Whether to return removed members. + */ + +/** + * @typedef {Object} TeamMembersListContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * members. + */ + +/** + * @typedef {Object} TeamMembersListContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMembersListError + * @property {'other'} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMembersListResult + * @property {Array.} members - List of team members. + * @property {string} cursor - Pass the cursor into members/list/continue to + * obtain the additional members. + * @property {boolean} has_more - Is true if there are additional team members + * that have not been returned yet. An additional call to members/list/continue + * can retrieve them. + */ + +/** + * @typedef {Object} TeamMembersListV2Result + * @property {Array.} members - List of team members. + * @property {string} cursor - Pass the cursor into members/list/continue:2 to + * obtain the additional members. + * @property {boolean} has_more - Is true if there are additional team members + * that have not been returned yet. An additional call to + * members/list/continue:2 can retrieve them. + */ + +/** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + * @typedef {Object} TeamMembersRecoverArg + * @property {TeamUserSelectorArg} user - Identity of user to recover. + */ + +/** + * @typedef {Object} TeamMembersRecoverError + * @property {('user_not_found'|'user_unrecoverable'|'user_not_in_team'|'team_license_limit'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMembersRemoveArg + * @property {TeamUserSelectorArg} user - Identity of user to + * remove/suspend/have their files moved. + * @property {boolean} wipe_data - If provided, controls if the user's data will + * be deleted on their linked devices. + * @property {TeamUserSelectorArg} [transfer_dest_id] - If provided, files from + * the deleted member account will be transferred to this user. + * @property {TeamUserSelectorArg} [transfer_admin_id] - If provided, errors + * during the transfer process will be sent via email to this user. If the + * transfer_dest_id argument was provided, then this argument must be provided + * as well. + * @property {boolean} keep_account - Downgrade the member to a Basic account. + * The user will retain the email address associated with their Dropbox account + * and data in their account that is not restricted to team members. In order to + * keep the account the argument wipe_data should be set to false. + * @property {boolean} retain_team_shares - If provided, allows removed users to + * keep access to Dropbox folders (not Dropbox Paper folders) already explicitly + * shared with them (not via a group) when they are downgraded to a Basic + * account. Users will not retain access to folders that do not allow external + * sharing. In order to keep the sharing relationships, the arguments wipe_data + * should be set to false and keep_account should be set to true. + */ + +/** + * @typedef {Object} TeamMembersRemoveError + * @property {('user_not_found'|'user_not_in_team'|'other'|'removed_and_transfer_dest_should_differ'|'removed_and_transfer_admin_should_differ'|'transfer_dest_user_not_found'|'transfer_dest_user_not_in_team'|'transfer_admin_user_not_in_team'|'transfer_admin_user_not_found'|'unspecified_transfer_admin_id'|'transfer_admin_is_not_admin'|'recipient_not_verified'|'remove_last_admin'|'cannot_keep_account_and_transfer'|'cannot_keep_account_and_delete_data'|'email_address_too_long_to_be_disabled'|'cannot_keep_invited_user_account'|'cannot_retain_shares_when_data_wiped'|'cannot_retain_shares_when_no_account_kept'|'cannot_retain_shares_when_team_external_sharing_off'|'cannot_keep_account'|'cannot_keep_account_under_legal_hold'|'cannot_keep_account_required_to_sign_tos')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMembersSendWelcomeError + * @property {('user_not_found'|'user_not_in_team'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + * @typedef {Object} TeamMembersSetPermissions2Arg + * @property {TeamUserSelectorArg} user - Identity of user whose role will be + * set. + * @property {Array.} [new_roles] - The new roles for the member. Send + * empty list to make user member only. For now, only up to one role is allowed. + */ + +/** + * @typedef {Object} TeamMembersSetPermissions2Error + * @property {('user_not_found'|'last_admin'|'user_not_in_team'|'cannot_set_permissions'|'role_not_found'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMembersSetPermissions2Result + * @property {string} team_member_id - The member ID of the user to which the + * change was applied. + * @property {Array.} [roles] - The roles after the change. + * Empty in case the user become a non-admin. + */ + +/** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + * @typedef {Object} TeamMembersSetPermissionsArg + * @property {TeamUserSelectorArg} user - Identity of user whose role will be + * set. + * @property {TeamAdminTier} new_role - The new role of the member. + */ + +/** + * @typedef {Object} TeamMembersSetPermissionsError + * @property {('user_not_found'|'last_admin'|'user_not_in_team'|'cannot_set_permissions'|'team_license_limit'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMembersSetPermissionsResult + * @property {string} team_member_id - The member ID of the user to which the + * change was applied. + * @property {TeamAdminTier} role - The role after the change. + */ + +/** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. At least one of new_email, new_external_id, + * new_given_name, and/or new_surname must be provided. + * @typedef {Object} TeamMembersSetProfileArg + * @property {TeamUserSelectorArg} user - Identity of user whose profile will be + * set. + * @property {string} [new_email] - New email for member. + * @property {string} [new_external_id] - New external ID for member. + * @property {string} [new_given_name] - New given name for member. + * @property {string} [new_surname] - New surname for member. + * @property {string} [new_persistent_id] - New persistent ID. This field only + * available to teams using persistent ID SAML configuration. + * @property {boolean} [new_is_directory_restricted] - New value for whether the + * user is a directory restricted user. + */ + +/** + * @typedef {Object} TeamMembersSetProfileError + * @property {('user_not_found'|'user_not_in_team'|'external_id_and_new_external_id_unsafe'|'no_new_data_specified'|'email_reserved_for_other_user'|'external_id_used_by_other_user'|'set_profile_disallowed'|'param_cannot_be_empty'|'persistent_id_disabled'|'persistent_id_used_by_other_user'|'directory_restricted_off'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMembersSetProfilePhotoArg + * @property {TeamUserSelectorArg} user - Identity of the user whose profile + * photo will be set. + * @property {AccountPhotoSourceArg} photo - Image to set as the member's new + * profile photo. + */ + +/** + * @typedef {Object} TeamMembersSetProfilePhotoError + * @property {AccountSetProfilePhotoError} [photo_error] - Available if .tag is + * photo_error. + * @property {('user_not_found'|'user_not_in_team'|'set_profile_disallowed'|'photo_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMembersSuspendError + * @property {('user_not_found'|'user_not_in_team'|'other'|'suspend_inactive_user'|'suspend_last_admin'|'team_license_limit')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMembersTransferFilesError + * @property {('user_not_found'|'user_not_in_team'|'other'|'removed_and_transfer_dest_should_differ'|'removed_and_transfer_admin_should_differ'|'transfer_dest_user_not_found'|'transfer_dest_user_not_in_team'|'transfer_admin_user_not_in_team'|'transfer_admin_user_not_found'|'unspecified_transfer_admin_id'|'transfer_admin_is_not_admin'|'recipient_not_verified')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMembersTransferFormerMembersFilesError + * @property {('user_not_found'|'user_not_in_team'|'other'|'removed_and_transfer_dest_should_differ'|'removed_and_transfer_admin_should_differ'|'transfer_dest_user_not_found'|'transfer_dest_user_not_in_team'|'transfer_admin_user_not_in_team'|'transfer_admin_user_not_found'|'unspecified_transfer_admin_id'|'transfer_admin_is_not_admin'|'recipient_not_verified'|'user_data_is_being_transferred'|'user_not_removed'|'user_data_cannot_be_transferred'|'user_data_already_transferred')} .tag - Tag identifying the union variant. + */ + +/** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + * @typedef {Object} TeamMembersUnsuspendArg + * @property {TeamUserSelectorArg} user - Identity of user to unsuspend. + */ + +/** + * @typedef {Object} TeamMembersUnsuspendError + * @property {('user_not_found'|'user_not_in_team'|'other'|'unsuspend_non_suspended_member'|'team_license_limit')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamMobileClientPlatform + * @property {('iphone'|'ipad'|'android'|'windows_phone'|'blackberry'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Information about linked Dropbox mobile client sessions. + * @typedef {Object} TeamMobileClientSession + * @property {string} session_id - The session id. + * @property {string} device_name - The device name. + * @property {TeamMobileClientPlatform} client_type - The mobile application + * type. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {string} [country] - The country from which the last activity from + * this session was made. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + * @property {string} [client_version] - The dropbox client version. + * @property {string} [os_version] - The hosting OS version. + * @property {string} [last_carrier] - last carrier used by the device. + */ + +/** + * Properties of a namespace. + * @typedef {Object} TeamNamespaceMetadata + * @property {string} name - The name of this namespace. + * @property {string} namespace_id - The ID of this namespace. + * @property {TeamNamespaceType} namespace_type - The type of this namespace. + * @property {string} [team_member_id] - If this is a team member or app folder, + * the ID of the owning team member. Otherwise, this field is not present. + */ + +/** + * @typedef {Object} TeamNamespaceType + * @property {('app_folder'|'shared_folder'|'team_folder'|'team_member_folder'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * User result for setting member custom quota. + * @typedef {Object} TeamRemoveCustomQuotaResult + * @property {TeamUserSelectorArg} [success] - Available if .tag is success. + * Successfully removed user. + * @property {TeamUserSelectorArg} [invalid_user] - Available if .tag is + * invalid_user. Invalid user (not in team). + * @property {('success'|'invalid_user'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamRemovedStatus + * @property {boolean} is_recoverable - True if the removed team member is + * recoverable. + * @property {boolean} is_disconnected - True if the team member's account was + * converted to individual account. + */ + +/** + * Result of trying to resend verification email to a secondary email address. + * 'success' is the only value indicating that a verification email was + * successfully sent. The other values explain the type of error that occurred, + * and include the email for which the error occurred. + * @typedef {Object} TeamResendSecondaryEmailResult + * @property {string} [success] - Available if .tag is success. A verification + * email was successfully sent to the secondary email address. + * @property {string} [not_pending] - Available if .tag is not_pending. This + * secondary email address is not pending for the user. + * @property {string} [rate_limited] - Available if .tag is rate_limited. Too + * many emails are being sent to this email address. Please try again later. + * @property {('success'|'not_pending'|'rate_limited'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamResendVerificationEmailArg + * @property {Array.} emails_to_resend - List of + * users and secondary emails to resend verification emails to. + */ + +/** + * List of users and resend results. + * @typedef {Object} TeamResendVerificationEmailResult + * @property {Array.} results + */ + +/** + * @typedef {Object} TeamRevokeDesktopClientArg + * @property {string} session_id - The session id. + * @property {string} team_member_id - The unique id of the member owning the + * device. + * @property {boolean} delete_on_unlink - Whether to delete all files of the + * account (this is possible only if supported by the desktop client and will + * be made the next time the client access the account). + */ + +/** + * @typedef {Object} TeamRevokeDeviceSessionArg + * @property {TeamDeviceSessionArg} [web_session] - Available if .tag is + * web_session. End an active session. + * @property {TeamRevokeDesktopClientArg} [desktop_client] - Available if .tag + * is desktop_client. Unlink a linked desktop device. + * @property {TeamDeviceSessionArg} [mobile_client] - Available if .tag is + * mobile_client. Unlink a linked mobile device. + * @property {('web_session'|'desktop_client'|'mobile_client')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamRevokeDeviceSessionBatchArg + * @property {Array.} revoke_devices + */ + +/** + * @typedef {Object} TeamRevokeDeviceSessionBatchError + * @property {'other'} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamRevokeDeviceSessionBatchResult + * @property {Array.} revoke_devices_status + */ + +/** + * @typedef {Object} TeamRevokeDeviceSessionError + * @property {('device_session_not_found'|'member_not_found'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamRevokeDeviceSessionStatus + * @property {boolean} success - Result of the revoking request. + * @property {TeamRevokeDeviceSessionError} [error_type] - The error cause in + * case of a failure. + */ + +/** + * @typedef {Object} TeamRevokeLinkedApiAppArg + * @property {string} app_id - The application's unique id. + * @property {string} team_member_id - The unique id of the member owning the + * device. + * @property {boolean} keep_app_folder - This flag is not longer supported, the + * application dedicated folder (in case the application uses one) will be + * kept. + */ + +/** + * @typedef {Object} TeamRevokeLinkedApiAppBatchArg + * @property {Array.} revoke_linked_app + */ + +/** + * Error returned by linked_apps/revoke_linked_app_batch. + * @typedef {Object} TeamRevokeLinkedAppBatchError + * @property {'other'} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamRevokeLinkedAppBatchResult + * @property {Array.} revoke_linked_app_status + */ + +/** + * Error returned by linked_apps/revoke_linked_app. + * @typedef {Object} TeamRevokeLinkedAppError + * @property {('app_not_found'|'member_not_found'|'app_folder_removal_not_supported'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamRevokeLinkedAppStatus + * @property {boolean} success - Result of the revoking request. + * @property {TeamRevokeLinkedAppError} [error_type] - The error cause in case + * of a failure. + */ + +/** + * @typedef {Object} TeamSetCustomQuotaArg + * @property {Array.} users_and_quotas - List of users + * and their custom quotas. + */ + +/** + * Error returned when setting member custom quota. + * @typedef {Object} TeamSetCustomQuotaError + * @property {('too_many_users'|'other'|'some_users_are_excluded')} .tag - Tag identifying the union variant. + */ + +/** + * Structure representing Approve List entries. Domain and emails are supported. + * At least one entry of any supported type is required. + * @typedef {Object} TeamSharingAllowlistAddArgs + * @property {Array.} [domains] - List of domains represented by valid + * string representation (RFC-1034/5). + * @property {Array.} [emails] - List of emails represented by valid + * string representation (RFC-5322/822). + */ + +/** + * @typedef {Object} TeamSharingAllowlistAddError + * @property {string} [malformed_entry] - Available if .tag is malformed_entry. + * One of provided values is not valid. + * @property {string} [entries_already_exist] - Available if .tag is + * entries_already_exist. Entries already exists. + * @property {('malformed_entry'|'no_entries_provided'|'too_many_entries_provided'|'team_limit_reached'|'unknown_error'|'entries_already_exist'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * This struct is empty. The comment here is intentionally emitted to avoid + * indentation issues with Stone. + * @typedef {Object} TeamSharingAllowlistAddResponse + */ + +/** + * @typedef {Object} TeamSharingAllowlistListArg + * @property {number} limit - The number of entries to fetch at one time. + */ + +/** + * @typedef {Object} TeamSharingAllowlistListContinueArg + * @property {string} cursor - The cursor returned from a previous call to + * sharing_allowlist/list or sharing_allowlist/list/continue. + */ + +/** + * @typedef {Object} TeamSharingAllowlistListContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * This struct is empty. The comment here is intentionally emitted to avoid + * indentation issues with Stone. + * @typedef {Object} TeamSharingAllowlistListError + */ + +/** + * @typedef {Object} TeamSharingAllowlistListResponse + * @property {Array.} domains - List of domains represented by valid + * string representation (RFC-1034/5). + * @property {Array.} emails - List of emails represented by valid + * string representation (RFC-5322/822). + * @property {string} cursor - If this is nonempty, there are more entries that + * can be fetched with sharing_allowlist/list/continue. + * @property {boolean} has_more - if true indicates that more entries can be + * fetched with sharing_allowlist/list/continue. + */ + +/** + * @typedef {Object} TeamSharingAllowlistRemoveArgs + * @property {Array.} [domains] - List of domains represented by valid + * string representation (RFC-1034/5). + * @property {Array.} [emails] - List of emails represented by valid + * string representation (RFC-5322/822). + */ + +/** + * @typedef {Object} TeamSharingAllowlistRemoveError + * @property {string} [malformed_entry] - Available if .tag is malformed_entry. + * One of provided values is not valid. + * @property {string} [entries_do_not_exist] - Available if .tag is + * entries_do_not_exist. One or more provided values do not exist. + * @property {('malformed_entry'|'entries_do_not_exist'|'no_entries_provided'|'too_many_entries_provided'|'unknown_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * This struct is empty. The comment here is intentionally emitted to avoid + * indentation issues with Stone. + * @typedef {Object} TeamSharingAllowlistRemoveResponse + */ + +/** + * Describes the number of users in a specific storage bucket. + * @typedef {Object} TeamStorageBucket + * @property {string} bucket - The name of the storage bucket. For example, '1G' + * is a bucket of users with storage size up to 1 Giga. + * @property {number} users - The number of people whose storage is in the range + * of this storage bucket. + */ + +/** + * @typedef {Object} TeamTeamFolderAccessError + * @property {('invalid_team_folder_id'|'no_access'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamTeamFolderActivateError + * @property {TeamTeamFolderAccessError} [access_error] - Available if .tag is + * access_error. + * @property {TeamTeamFolderInvalidStatusError} [status_error] - Available if + * .tag is status_error. + * @property {TeamTeamFolderTeamSharedDropboxError} [team_shared_dropbox_error] + * - Available if .tag is team_shared_dropbox_error. + * @property {('access_error'|'status_error'|'team_shared_dropbox_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamTeamFolderArchiveArg + * @property {string} team_folder_id - The ID of the team folder. + * @property {boolean} force_async_off - Whether to force the archive to happen + * synchronously. + */ + +/** + * @typedef {Object} TeamTeamFolderArchiveError + * @property {TeamTeamFolderAccessError} [access_error] - Available if .tag is + * access_error. + * @property {TeamTeamFolderInvalidStatusError} [status_error] - Available if + * .tag is status_error. + * @property {TeamTeamFolderTeamSharedDropboxError} [team_shared_dropbox_error] + * - Available if .tag is team_shared_dropbox_error. + * @property {('access_error'|'status_error'|'team_shared_dropbox_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamTeamFolderArchiveJobStatus + * @property {TeamTeamFolderMetadata} [complete] - Available if .tag is + * complete. The archive job has finished. The value is the metadata for the + * resulting team folder. + * @property {TeamTeamFolderArchiveError} [failed] - Available if .tag is + * failed. Error occurred while performing an asynchronous job from + * :route:`team_folder/archive`. + * @property {('in_progress'|'complete'|'failed')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamTeamFolderArchiveLaunch + * @property {string} [async_job_id] - Available if .tag is async_job_id. This + * response indicates that the processing is asynchronous. The string is an id + * that can be used to obtain the status of the asynchronous job. + * @property {TeamTeamFolderMetadata} [complete] - Available if .tag is + * complete. + * @property {('async_job_id'|'complete')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamTeamFolderCreateArg + * @property {string} name - Name for the new team folder. + * @property {FilesSyncSettingArg} [sync_setting] - The sync setting to apply to + * this team folder. Only permitted if the team has team selective sync enabled. + */ + +/** + * @typedef {Object} TeamTeamFolderCreateError + * @property {FilesSyncSettingsError} [sync_settings_error] - Available if .tag + * is sync_settings_error. An error occurred setting the sync settings. + * @property {('invalid_folder_name'|'folder_name_already_used'|'folder_name_reserved'|'sync_settings_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamTeamFolderGetInfoItem + * @property {string} [id_not_found] - Available if .tag is id_not_found. An ID + * that was provided as a parameter to :route:`team_folder/get_info` did not + * match any of the team's team folders. + * @property {TeamTeamFolderMetadata} [team_folder_metadata] - Available if .tag + * is team_folder_metadata. Properties of a team folder. + * @property {('id_not_found'|'team_folder_metadata')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamTeamFolderIdArg + * @property {string} team_folder_id - The ID of the team folder. + */ + +/** + * @typedef {Object} TeamTeamFolderIdListArg + * @property {Array.} team_folder_ids - The list of team folder IDs. + */ + +/** + * @typedef {Object} TeamTeamFolderInvalidStatusError + * @property {('active'|'archived'|'archive_in_progress'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamTeamFolderListArg + * @property {number} limit - The maximum number of results to return per + * request. + */ + +/** + * @typedef {Object} TeamTeamFolderListContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * team folders. + */ + +/** + * @typedef {Object} TeamTeamFolderListContinueError + * @property {('invalid_cursor'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamTeamFolderListError + * @property {TeamTeamFolderAccessError} access_error + */ + +/** + * Result for team_folder/list and team_folder/list/continue. + * @typedef {Object} TeamTeamFolderListResult + * @property {Array.} team_folders - List of all team + * folders in the authenticated team. + * @property {string} cursor - Pass the cursor into team_folder/list/continue to + * obtain additional team folders. + * @property {boolean} has_more - Is true if there are additional team folders + * that have not been returned yet. An additional call to + * team_folder/list/continue can retrieve them. + */ + +/** + * Properties of a team folder. + * @typedef {Object} TeamTeamFolderMetadata + * @property {string} team_folder_id - The ID of the team folder. + * @property {string} name - The name of the team folder. + * @property {TeamTeamFolderStatus} status - The status of the team folder. + * @property {boolean} is_team_shared_dropbox - True if this team folder is a + * shared team root. + * @property {FilesSyncSetting} sync_setting - The sync setting applied to this + * team folder. + * @property {Array.} content_sync_settings - Sync + * settings applied to contents of this team folder. + */ + +/** + * @typedef {Object} TeamTeamFolderPermanentlyDeleteError + * @property {TeamTeamFolderAccessError} [access_error] - Available if .tag is + * access_error. + * @property {TeamTeamFolderInvalidStatusError} [status_error] - Available if + * .tag is status_error. + * @property {TeamTeamFolderTeamSharedDropboxError} [team_shared_dropbox_error] + * - Available if .tag is team_shared_dropbox_error. + * @property {('access_error'|'status_error'|'team_shared_dropbox_error'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamTeamFolderRenameArg + * @property {string} team_folder_id - The ID of the team folder. + * @property {string} name - New team folder name. + */ + +/** + * @typedef {Object} TeamTeamFolderRenameError + * @property {TeamTeamFolderAccessError} [access_error] - Available if .tag is + * access_error. + * @property {TeamTeamFolderInvalidStatusError} [status_error] - Available if + * .tag is status_error. + * @property {TeamTeamFolderTeamSharedDropboxError} [team_shared_dropbox_error] + * - Available if .tag is team_shared_dropbox_error. + * @property {('access_error'|'status_error'|'team_shared_dropbox_error'|'other'|'invalid_folder_name'|'folder_name_already_used'|'folder_name_reserved')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamTeamFolderStatus + * @property {('active'|'archived'|'archive_in_progress'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamTeamFolderTeamSharedDropboxError + * @property {('disallowed'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamTeamFolderUpdateSyncSettingsArg + * @property {string} team_folder_id - The ID of the team folder. + * @property {FilesSyncSettingArg} [sync_setting] - Sync setting to apply to the + * team folder itself. Only meaningful if the team folder is not a shared team + * root. + * @property {Array.} [content_sync_settings] - Sync + * settings to apply to contents of this team folder. + */ + +/** + * @typedef {Object} TeamTeamFolderUpdateSyncSettingsError + * @property {TeamTeamFolderAccessError} [access_error] - Available if .tag is + * access_error. + * @property {TeamTeamFolderInvalidStatusError} [status_error] - Available if + * .tag is status_error. + * @property {TeamTeamFolderTeamSharedDropboxError} [team_shared_dropbox_error] + * - Available if .tag is team_shared_dropbox_error. + * @property {FilesSyncSettingsError} [sync_settings_error] - Available if .tag + * is sync_settings_error. An error occurred setting the sync settings. + * @property {('access_error'|'status_error'|'team_shared_dropbox_error'|'other'|'sync_settings_error')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamTeamGetInfoResult + * @property {string} name - The name of the team. + * @property {string} team_id - The ID of the team. + * @property {number} num_licensed_users - The number of licenses available to + * the team. + * @property {number} num_provisioned_users - The number of accounts that have + * been invited or are already active members of the team. + * @property {number} num_used_licenses - The number of licenses used on the + * team. + * @property {TeamPoliciesTeamMemberPolicies} policies + */ + +/** + * Information about a team member. + * @typedef {Object} TeamTeamMemberInfo + * @property {TeamTeamMemberProfile} profile - Profile of a user as a member of + * a team. + * @property {TeamAdminTier} role - The user's role in the team. + */ + +/** + * Information about a team member. + * @typedef {Object} TeamTeamMemberInfoV2 + * @property {TeamTeamMemberProfile} profile - Profile of a user as a member of + * a team. + * @property {Array.} [roles] - The user's roles in the + * team. + */ + +/** + * Information about a team member, after the change, like at + * members/set_profile:2. + * @typedef {Object} TeamTeamMemberInfoV2Result + * @property {TeamTeamMemberInfoV2} member_info - Member info, after the change. + */ + +/** + * Profile of a user as a member of a team. + * @typedef {Object} TeamTeamMemberProfile + * @property {string} team_member_id - ID of user as a member of a team. + * @property {string} email - Email address of user. + * @property {boolean} email_verified - Is true if the user's email is verified + * to be owned by the user. + * @property {TeamTeamMemberStatus} status - The user's status as a member of a + * specific team. + * @property {UsersName} name - Representations for a person's name. + * @property {TeamTeamMembershipType} membership_type - The user's membership + * type: full (normal team member) vs limited (does not use a license; no access + * to the team's shared quota). + * @property {Array.} groups - List of group IDs of groups that the user + * belongs to. + * @property {string} member_folder_id - The namespace id of the user's root + * folder. + * @property {string} [external_id] - External ID that a team can attach to the + * user. An application using the API may find it easier to use their own IDs + * instead of Dropbox IDs like account_id or team_member_id. + * @property {string} [account_id] - A user's account identifier. + * @property {Array.} [secondary_emails] - + * Secondary emails of a user. + * @property {Timestamp} [invited_on] - The date and time the user was invited + * to the team (contains value only when the member's status matches + * TeamMemberStatus.invited). + * @property {Timestamp} [joined_on] - The date and time the user joined as a + * member of a specific team. + * @property {Timestamp} [suspended_on] - The date and time the user was + * suspended from the team (contains value only when the member's status matches + * TeamMemberStatus.suspended). + * @property {string} [persistent_id] - Persistent ID that a team can attach to + * the user. The persistent ID is unique ID to be used for SAML authentication. + * @property {boolean} [is_directory_restricted] - Whether the user is a + * directory restricted user. + * @property {string} [profile_photo_url] - URL for the photo representing the + * user, if one is set. + */ + +/** + * A role which can be attached to a team member. This replaces AdminTier; each + * AdminTier corresponds to a new TeamMemberRole with a matching name. + * @typedef {Object} TeamTeamMemberRole + * @property {string} role_id - A string containing encoded role ID. For roles + * defined by Dropbox, this is the same across all teams. + * @property {string} name - The role display name. + * @property {string} description - Role description. Describes which + * permissions come with this role. + */ + +/** + * The user's status as a member of a specific team. + * @typedef {Object} TeamTeamMemberStatus + * @property {TeamRemovedStatus} [removed] - Available if .tag is removed. User + * is no longer a member of the team. Removed users are only listed when + * include_removed is true in members/list. + * @property {('active'|'invited'|'suspended'|'removed')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamTeamMembershipType + * @property {('full'|'limited')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamTeamNamespacesListArg + * @property {number} limit - Specifying a value here has no effect. + */ + +/** + * @typedef {Object} TeamTeamNamespacesListContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * team-accessible namespaces. + */ + +/** + * @typedef {Object} TeamTeamNamespacesListContinueError + * @property {('invalid_arg'|'other'|'invalid_cursor')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamTeamNamespacesListError + * @property {('invalid_arg'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Result for namespaces/list. + * @typedef {Object} TeamTeamNamespacesListResult + * @property {Array.} namespaces - List of all namespaces + * the team can access. + * @property {string} cursor - Pass the cursor into namespaces/list/continue to + * obtain additional namespaces. Note that duplicate namespaces may be returned. + * @property {boolean} has_more - Is true if there are additional namespaces + * that have not been returned yet. + */ + +/** + * @typedef {Object} TeamTeamReportFailureReason + * @property {('temporary_error'|'many_reports_at_once'|'too_much_data'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Error returned by token/get_authenticated_admin. + * @typedef {Object} TeamTokenGetAuthenticatedAdminError + * @property {('mapping_not_found'|'admin_not_active'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Results for token/get_authenticated_admin. + * @typedef {Object} TeamTokenGetAuthenticatedAdminResult + * @property {TeamTeamMemberProfile} admin_profile - The admin who authorized + * the token. + */ + +/** + * The value for Feature.upload_api_rate_limit. + * @typedef {Object} TeamUploadApiRateLimitValue + * @property {number} [limit] - Available if .tag is limit. The number of upload + * API calls allowed per month. + * @property {('unlimited'|'limit'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Result of trying to add secondary emails to a user. 'success' is the only + * value indicating that a user was successfully retrieved for adding secondary + * emails. The other values explain the type of error that occurred, and include + * the user for which the error occurred. + * @typedef {Object} TeamUserAddResult + * @property {TeamUserSecondaryEmailsResult} [success] - Available if .tag is + * success. Describes a user and the results for each attempt to add a secondary + * email. + * @property {TeamUserSelectorArg} [invalid_user] - Available if .tag is + * invalid_user. Specified user is not a valid target for adding secondary + * emails. + * @property {TeamUserSelectorArg} [unverified] - Available if .tag is + * unverified. Secondary emails can only be added to verified users. + * @property {TeamUserSelectorArg} [placeholder_user] - Available if .tag is + * placeholder_user. Secondary emails cannot be added to placeholder users. + * @property {('success'|'invalid_user'|'unverified'|'placeholder_user'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * User and their required custom quota in GB (1 TB = 1024 GB). + * @typedef {Object} TeamUserCustomQuotaArg + * @property {TeamUserSelectorArg} user + * @property {number} quota_gb + */ + +/** + * User and their custom quota in GB (1 TB = 1024 GB). No quota returns if the + * user has no custom quota set. + * @typedef {Object} TeamUserCustomQuotaResult + * @property {TeamUserSelectorArg} user + * @property {number} [quota_gb] + */ + +/** + * @typedef {Object} TeamUserDeleteEmailsResult + * @property {TeamUserSelectorArg} user + * @property {Array.} results + */ + +/** + * Result of trying to delete a user's secondary emails. 'success' is the only + * value indicating that a user was successfully retrieved for deleting + * secondary emails. The other values explain the type of error that occurred, + * and include the user for which the error occurred. + * @typedef {Object} TeamUserDeleteResult + * @property {TeamUserDeleteEmailsResult} [success] - Available if .tag is + * success. Describes a user and the results for each attempt to delete a + * secondary email. + * @property {TeamUserSelectorArg} [invalid_user] - Available if .tag is + * invalid_user. Specified user is not a valid target for deleting secondary + * emails. + * @property {('success'|'invalid_user'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamUserResendEmailsResult + * @property {TeamUserSelectorArg} user + * @property {Array.} results + */ + +/** + * Result of trying to resend verification emails to a user. 'success' is the + * only value indicating that a user was successfully retrieved for sending + * verification emails. The other values explain the type of error that + * occurred, and include the user for which the error occurred. + * @typedef {Object} TeamUserResendResult + * @property {TeamUserResendEmailsResult} [success] - Available if .tag is + * success. Describes a user and the results for each attempt to resend + * verification emails. + * @property {TeamUserSelectorArg} [invalid_user] - Available if .tag is + * invalid_user. Specified user is not a valid target for resending verification + * emails. + * @property {('success'|'invalid_user'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * User and a list of secondary emails. + * @typedef {Object} TeamUserSecondaryEmailsArg + * @property {TeamUserSelectorArg} user + * @property {Array.} secondary_emails + */ + +/** + * @typedef {Object} TeamUserSecondaryEmailsResult + * @property {TeamUserSelectorArg} user + * @property {Array.} results + */ + +/** + * Argument for selecting a single user, either by team_member_id, external_id + * or email. + * @typedef {Object} TeamUserSelectorArg + * @property {string} [team_member_id] - Available if .tag is team_member_id. + * @property {string} [external_id] - Available if .tag is external_id. + * @property {string} [email] - Available if .tag is email. + * @property {('team_member_id'|'external_id'|'email')} .tag - Tag identifying the union variant. + */ + +/** + * Error that can be returned whenever a struct derived from UserSelectorArg is + * used. + * @typedef {Object} TeamUserSelectorError + * @property {'user_not_found'} .tag - Tag identifying the union variant. + */ + +/** + * Argument for selecting a list of users, either by team_member_ids, + * external_ids or emails. + * @typedef {Object} TeamUsersSelectorArg + * @property {Array.} [team_member_ids] - Available if .tag is + * team_member_ids. List of member IDs. + * @property {Array.} [external_ids] - Available if .tag is + * external_ids. List of external user IDs. + * @property {Array.} [emails] - Available if .tag is emails. List of + * email addresses. + * @property {('team_member_ids'|'external_ids'|'emails')} .tag - Tag identifying the union variant. + */ + +/** + * The group type determines how a group is managed. + * @typedef {Object} TeamCommonGroupManagementType + * @property {('user_managed'|'company_managed'|'system_managed'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Information about a group. + * @typedef {Object} TeamCommonGroupSummary + * @property {string} group_name + * @property {string} group_id + * @property {TeamCommonGroupManagementType} group_management_type - Who is + * allowed to manage the group. + * @property {string} [group_external_id] - External ID of group. This is an + * arbitrary ID that an admin can attach to a group. + * @property {number} [member_count] - The number of members in the group. + */ + +/** + * The group type determines how a group is created and managed. + * @typedef {Object} TeamCommonGroupType + * @property {('team'|'user_managed'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * The type of the space limit imposed on a team member. + * @typedef {Object} TeamCommonMemberSpaceLimitType + * @property {('off'|'alert_only'|'stop_sync'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Time range. + * @typedef {Object} TeamCommonTimeRange + * @property {Timestamp} [start_time] - Optional starting time (inclusive). + * @property {Timestamp} [end_time] - Optional ending time (exclusive). + */ + +/** + * Indicates the method in which the action was performed. + * @typedef {Object} TeamLogAccessMethodLogInfo + * @property {TeamLogWebSessionLogInfo} [admin_console] - Available if .tag is + * admin_console. Admin console session details. + * @property {TeamLogApiSessionLogInfo} [api] - Available if .tag is api. Api + * session details. + * @property {TeamLogWebSessionLogInfo} [content_manager] - Available if .tag is + * content_manager. Content manager session details. + * @property + * {(TeamLogWebSessionLogInfo|TeamLogDesktopSessionLogInfo|TeamLogMobileSessionLogInfo|TeamLogSessionLogInfo)} + * [end_user] - Available if .tag is end_user. End user session details. + * @property {TeamLogWebSessionLogInfo} [enterprise_console] - Available if .tag + * is enterprise_console. Enterprise console session details. + * @property {TeamLogWebSessionLogInfo} [sign_in_as] - Available if .tag is + * sign_in_as. Sign in as session details. + * @property {('admin_console'|'api'|'content_manager'|'end_user'|'enterprise_console'|'sign_in_as'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLogAccountCaptureAvailability + * @property {('available'|'unavailable'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Granted/revoked option to enable account capture on team domains. + * @typedef {Object} TeamLogAccountCaptureChangeAvailabilityDetails + * @property {TeamLogAccountCaptureAvailability} new_value - New account capture + * availabilty value. + * @property {TeamLogAccountCaptureAvailability} [previous_value] - Previous + * account capture availabilty value. Might be missing due to historical data + * gap. + */ + +/** + * @typedef {Object} TeamLogAccountCaptureChangeAvailabilityType + * @property {string} description + */ + +/** + * Changed account capture setting on team domain. + * @typedef {Object} TeamLogAccountCaptureChangePolicyDetails + * @property {TeamLogAccountCapturePolicy} new_value - New account capture + * policy. + * @property {TeamLogAccountCapturePolicy} [previous_value] - Previous account + * capture policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogAccountCaptureChangePolicyType + * @property {string} description + */ + +/** + * Account-captured user migrated account to team. + * @typedef {Object} TeamLogAccountCaptureMigrateAccountDetails + * @property {string} domain_name - Domain name. + */ + +/** + * @typedef {Object} TeamLogAccountCaptureMigrateAccountType + * @property {string} description + */ + +/** + * Sent account capture email to all unmanaged members. + * @typedef {Object} TeamLogAccountCaptureNotificationEmailsSentDetails + * @property {string} domain_name - Domain name. + * @property {TeamLogAccountCaptureNotificationType} [notification_type] - + * Account-capture email notification type. + */ + +/** + * @typedef {Object} TeamLogAccountCaptureNotificationEmailsSentType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogAccountCaptureNotificationType + * @property {('actionable_notification'|'proactive_warning_notification'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLogAccountCapturePolicy + * @property {('all_users'|'disabled'|'invited_users'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Account-captured user changed account email to personal email. + * @typedef {Object} TeamLogAccountCaptureRelinquishAccountDetails + * @property {string} domain_name - Domain name. + */ + +/** + * @typedef {Object} TeamLogAccountCaptureRelinquishAccountType + * @property {string} description + */ + +/** + * Unlocked/locked account after failed sign in attempts. + * @typedef {Object} TeamLogAccountLockOrUnlockedDetails + * @property {TeamLogAccountState} previous_value - The previous account status. + * @property {TeamLogAccountState} new_value - The new account status. + */ + +/** + * @typedef {Object} TeamLogAccountLockOrUnlockedType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogAccountState + * @property {('locked'|'unlocked'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Additional information indicating the action taken that caused status change. + * @typedef {Object} TeamLogActionDetails + * @property {TeamLogMemberRemoveActionType} [remove_action] - Available if .tag + * is remove_action. Define how the user was removed from the team. + * @property {TeamLogTeamInviteDetails} [team_invite_details] - Available if + * .tag is team_invite_details. Additional information relevant when someone is + * invited to the team. + * @property {TeamLogJoinTeamDetails} [team_join_details] - Available if .tag is + * team_join_details. Additional information relevant when a new member joins + * the team. + * @property {('remove_action'|'team_invite_details'|'team_join_details'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * The entity who performed the action. + * @typedef {Object} TeamLogActorLogInfo + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [admin] - Available if .tag is admin. The admin who did the action. + * @property + * {(TeamLogUserOrTeamLinkedAppLogInfo|TeamLogUserLinkedAppLogInfo|TeamLogTeamLinkedAppLogInfo|TeamLogAppLogInfo)} + * [app] - Available if .tag is app. The application who did the action. + * @property {TeamLogResellerLogInfo} [reseller] - Available if .tag is + * reseller. Action done by reseller. + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [user] - Available if .tag is user. The user who did the action. + * @property {('admin'|'anonymous'|'app'|'dropbox'|'reseller'|'user'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Alert category + * @typedef {Object} TeamLogAdminAlertCategoryEnum + * @property {('account_takeover'|'data_loss_protection'|'information_governance'|'malware_sharing'|'massive_file_operation'|'na'|'threat_management'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Alert state + * @typedef {Object} TeamLogAdminAlertGeneralStateEnum + * @property {('active'|'dismissed'|'in_progress'|'na'|'resolved'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Alert severity + * @typedef {Object} TeamLogAdminAlertSeverityEnum + * @property {('high'|'info'|'low'|'medium'|'na'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Alert configurations + * @typedef {Object} TeamLogAdminAlertingAlertConfiguration + * @property {TeamLogAdminAlertingAlertStatePolicy} [alert_state] - Alert state. + * @property {TeamLogAdminAlertingAlertSensitivity} [sensitivity_level] - + * Sensitivity level. + * @property {TeamLogRecipientsConfiguration} [recipients_settings] - Recipient + * settings. + * @property {string} [text] - Text. + * @property {string} [excluded_file_extensions] - Excluded file extensions. + */ + +/** + * Alert sensitivity + * @typedef {Object} TeamLogAdminAlertingAlertSensitivity + * @property {('high'|'highest'|'invalid'|'low'|'lowest'|'medium'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed an alert state. + * @typedef {Object} TeamLogAdminAlertingAlertStateChangedDetails + * @property {string} alert_name - Alert name. + * @property {TeamLogAdminAlertSeverityEnum} alert_severity - Alert severity. + * @property {TeamLogAdminAlertCategoryEnum} alert_category - Alert category. + * @property {string} alert_instance_id - Alert ID. + * @property {TeamLogAdminAlertGeneralStateEnum} previous_value - Alert state + * before the change. + * @property {TeamLogAdminAlertGeneralStateEnum} new_value - Alert state after + * the change. + */ + +/** + * @typedef {Object} TeamLogAdminAlertingAlertStateChangedType + * @property {string} description + */ + +/** + * Policy for controlling whether an alert can be triggered or not + * @typedef {Object} TeamLogAdminAlertingAlertStatePolicy + * @property {('off'|'on'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed an alert setting. + * @typedef {Object} TeamLogAdminAlertingChangedAlertConfigDetails + * @property {string} alert_name - Alert Name. + * @property {TeamLogAdminAlertingAlertConfiguration} previous_alert_config - + * Previous alert configuration. + * @property {TeamLogAdminAlertingAlertConfiguration} new_alert_config - New + * alert configuration. + */ + +/** + * @typedef {Object} TeamLogAdminAlertingChangedAlertConfigType + * @property {string} description + */ + +/** + * Triggered security alert. + * @typedef {Object} TeamLogAdminAlertingTriggeredAlertDetails + * @property {string} alert_name - Alert name. + * @property {TeamLogAdminAlertSeverityEnum} alert_severity - Alert severity. + * @property {TeamLogAdminAlertCategoryEnum} alert_category - Alert category. + * @property {string} alert_instance_id - Alert ID. + */ + +/** + * @typedef {Object} TeamLogAdminAlertingTriggeredAlertType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogAdminConsoleAppPermission + * @property {('default_for_listed_apps'|'default_for_unlisted_apps'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLogAdminConsoleAppPolicy + * @property {('allow'|'block'|'default'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed admin reminder settings for requests to join the team. + * @typedef {Object} TeamLogAdminEmailRemindersChangedDetails + * @property {TeamLogAdminEmailRemindersPolicy} new_value - To. + * @property {TeamLogAdminEmailRemindersPolicy} previous_value - From. + */ + +/** + * @typedef {Object} TeamLogAdminEmailRemindersChangedType + * @property {string} description + */ + +/** + * Policy for deciding whether team admins receive reminder emails for requests + * to join the team + * @typedef {Object} TeamLogAdminEmailRemindersPolicy + * @property {('default'|'disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLogAdminRole + * @property {('billing_admin'|'compliance_admin'|'content_admin'|'limited_admin'|'member_only'|'reporting_admin'|'security_admin'|'support_admin'|'team_admin'|'user_management_admin'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Alert recipients setting type + * @typedef {Object} TeamLogAlertRecipientsSettingType + * @property {('custom_list'|'invalid'|'none'|'team_admins'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Disabled downloads. + * @typedef {Object} TeamLogAllowDownloadDisabledDetails + */ + +/** + * @typedef {Object} TeamLogAllowDownloadDisabledType + * @property {string} description + */ + +/** + * Enabled downloads. + * @typedef {Object} TeamLogAllowDownloadEnabledDetails + */ + +/** + * @typedef {Object} TeamLogAllowDownloadEnabledType + * @property {string} description + */ + +/** + * Api session. + * @typedef {Object} TeamLogApiSessionLogInfo + * @property {string} request_id - Api request ID. + */ + +/** + * Failed to connect app for member. + * @typedef {Object} TeamLogAppBlockedByPermissionsDetails + * @property + * {(TeamLogUserOrTeamLinkedAppLogInfo|TeamLogUserLinkedAppLogInfo|TeamLogTeamLinkedAppLogInfo|TeamLogAppLogInfo)} + * app_info - Relevant application details. + */ + +/** + * @typedef {Object} TeamLogAppBlockedByPermissionsType + * @property {string} description + */ + +/** + * Linked app for team. + * @typedef {Object} TeamLogAppLinkTeamDetails + * @property + * {(TeamLogUserOrTeamLinkedAppLogInfo|TeamLogUserLinkedAppLogInfo|TeamLogTeamLinkedAppLogInfo|TeamLogAppLogInfo)} + * app_info - Relevant application details. + */ + +/** + * @typedef {Object} TeamLogAppLinkTeamType + * @property {string} description + */ + +/** + * Linked app for member. + * @typedef {Object} TeamLogAppLinkUserDetails + * @property + * {(TeamLogUserOrTeamLinkedAppLogInfo|TeamLogUserLinkedAppLogInfo|TeamLogTeamLinkedAppLogInfo|TeamLogAppLogInfo)} + * app_info - Relevant application details. + */ + +/** + * @typedef {Object} TeamLogAppLinkUserType + * @property {string} description + */ + +/** + * App's logged information. + * @typedef {Object} TeamLogAppLogInfo +@property {("user_or_team_linked_app"|"user_linked_app"|"team_linked_app")} .tag +- Tag identifying the subtype variant. + * @property {string} [app_id] - App unique ID. + * @property {string} [display_name] - App display name. + */ + +/** + * Changed app permissions. + * @typedef {Object} TeamLogAppPermissionsChangedDetails + * @property {TeamLogAdminConsoleAppPolicy} previous_value - Previous policy. + * @property {TeamLogAdminConsoleAppPolicy} new_value - New policy. + * @property {string} [app_name] - Name of the app. + * @property {TeamLogAdminConsoleAppPermission} [permission] - Permission that + * was changed. + */ + +/** + * @typedef {Object} TeamLogAppPermissionsChangedType + * @property {string} description + */ + +/** + * Unlinked app for team. + * @typedef {Object} TeamLogAppUnlinkTeamDetails + * @property + * {(TeamLogUserOrTeamLinkedAppLogInfo|TeamLogUserLinkedAppLogInfo|TeamLogTeamLinkedAppLogInfo|TeamLogAppLogInfo)} + * app_info - Relevant application details. + */ + +/** + * @typedef {Object} TeamLogAppUnlinkTeamType + * @property {string} description + */ + +/** + * Unlinked app for member. + * @typedef {Object} TeamLogAppUnlinkUserDetails + * @property + * {(TeamLogUserOrTeamLinkedAppLogInfo|TeamLogUserLinkedAppLogInfo|TeamLogTeamLinkedAppLogInfo|TeamLogAppLogInfo)} + * app_info - Relevant application details. + */ + +/** + * @typedef {Object} TeamLogAppUnlinkUserType + * @property {string} description + */ + +/** + * Applied naming convention. + * @typedef {Object} TeamLogApplyNamingConventionDetails + */ + +/** + * @typedef {Object} TeamLogApplyNamingConventionType + * @property {string} description + */ + +/** + * Asset details. + * @typedef {Object} TeamLogAssetLogInfo + * @property {TeamLogFileLogInfo} [file] - Available if .tag is file. File's + * details. + * @property {TeamLogFolderLogInfo} [folder] - Available if .tag is folder. + * Folder's details. + * @property {TeamLogPaperDocumentLogInfo} [paper_document] - Available if .tag + * is paper_document. Paper document's details. + * @property {TeamLogPaperFolderLogInfo} [paper_folder] - Available if .tag is + * paper_folder. Paper folder's details. + * @property {TeamLogShowcaseDocumentLogInfo} [showcase_document] - Available if + * .tag is showcase_document. Showcase document's details. + * @property {('file'|'folder'|'paper_document'|'paper_folder'|'showcase_document'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Backup status + * @typedef {Object} TeamLogBackupStatus + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Added Binder page. + * @typedef {Object} TeamLogBinderAddPageDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + */ + +/** + * @typedef {Object} TeamLogBinderAddPageType + * @property {string} description + */ + +/** + * Added Binder section. + * @typedef {Object} TeamLogBinderAddSectionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + */ + +/** + * @typedef {Object} TeamLogBinderAddSectionType + * @property {string} description + */ + +/** + * Removed Binder page. + * @typedef {Object} TeamLogBinderRemovePageDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + */ + +/** + * @typedef {Object} TeamLogBinderRemovePageType + * @property {string} description + */ + +/** + * Removed Binder section. + * @typedef {Object} TeamLogBinderRemoveSectionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + */ + +/** + * @typedef {Object} TeamLogBinderRemoveSectionType + * @property {string} description + */ + +/** + * Renamed Binder page. + * @typedef {Object} TeamLogBinderRenamePageDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + * @property {string} [previous_binder_item_name] - Previous name of the Binder + * page/section. + */ + +/** + * @typedef {Object} TeamLogBinderRenamePageType + * @property {string} description + */ + +/** + * Renamed Binder section. + * @typedef {Object} TeamLogBinderRenameSectionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + * @property {string} [previous_binder_item_name] - Previous name of the Binder + * page/section. + */ + +/** + * @typedef {Object} TeamLogBinderRenameSectionType + * @property {string} description + */ + +/** + * Reordered Binder page. + * @typedef {Object} TeamLogBinderReorderPageDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + */ + +/** + * @typedef {Object} TeamLogBinderReorderPageType + * @property {string} description + */ + +/** + * Reordered Binder section. + * @typedef {Object} TeamLogBinderReorderSectionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} doc_title - Title of the Binder doc. + * @property {string} binder_item_name - Name of the Binder page/section. + */ + +/** + * @typedef {Object} TeamLogBinderReorderSectionType + * @property {string} description + */ + +/** + * Policy for controlling if team members can activate camera uploads + * @typedef {Object} TeamLogCameraUploadsPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed camera uploads setting for team. + * @typedef {Object} TeamLogCameraUploadsPolicyChangedDetails + * @property {TeamLogCameraUploadsPolicy} new_value - New camera uploads + * setting. + * @property {TeamLogCameraUploadsPolicy} previous_value - Previous camera + * uploads setting. + */ + +/** + * @typedef {Object} TeamLogCameraUploadsPolicyChangedType + * @property {string} description + */ + +/** + * Policy for deciding whether team users can transcription in Capture + * @typedef {Object} TeamLogCaptureTranscriptPolicy + * @property {('default'|'disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed Capture transcription policy for team. + * @typedef {Object} TeamLogCaptureTranscriptPolicyChangedDetails + * @property {TeamLogCaptureTranscriptPolicy} new_value - To. + * @property {TeamLogCaptureTranscriptPolicy} previous_value - From. + */ + +/** + * @typedef {Object} TeamLogCaptureTranscriptPolicyChangedType + * @property {string} description + */ + +/** + * Certificate details. + * @typedef {Object} TeamLogCertificate + * @property {string} subject - Certificate subject. + * @property {string} issuer - Certificate issuer. + * @property {string} issue_date - Certificate issue date. + * @property {string} expiration_date - Certificate expiration date. + * @property {string} serial_number - Certificate serial number. + * @property {string} sha1_fingerprint - Certificate sha1 fingerprint. + * @property {string} [common_name] - Certificate common name. + */ + +/** + * Policy for deciding whether the team's default expiration days policy must be + * enforced when an externally shared link is updated + * @typedef {Object} TeamLogChangeLinkExpirationPolicy + * @property {('allowed'|'not_allowed'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed enterprise admin role. + * @typedef {Object} TeamLogChangedEnterpriseAdminRoleDetails + * @property {TeamLogFedAdminRole} previous_value - The member’s previous + * enterprise admin role. + * @property {TeamLogFedAdminRole} new_value - The member’s new enterprise + * admin role. + * @property {string} team_name - The name of the member’s team. + */ + +/** + * @typedef {Object} TeamLogChangedEnterpriseAdminRoleType + * @property {string} description + */ + +/** + * Changed enterprise-connected team status. + * @typedef {Object} TeamLogChangedEnterpriseConnectedTeamStatusDetails + * @property {TeamLogFedHandshakeAction} action - The preformed change in the + * team’s connection status. + * @property {TeamLogFederationStatusChangeAdditionalInfo} additional_info - + * Additional information about the organization or team. + * @property {TeamLogTrustedTeamsRequestState} previous_value - Previous request + * state. + * @property {TeamLogTrustedTeamsRequestState} new_value - New request state. + */ + +/** + * @typedef {Object} TeamLogChangedEnterpriseConnectedTeamStatusType + * @property {string} description + */ + +/** + * Changed classification policy for team. + * @typedef {Object} TeamLogClassificationChangePolicyDetails + * @property {TeamLogClassificationPolicyEnumWrapper} previous_value - Previous + * classification policy. + * @property {TeamLogClassificationPolicyEnumWrapper} new_value - New + * classification policy. + * @property {TeamLogClassificationType} classification_type - Policy type. + */ + +/** + * @typedef {Object} TeamLogClassificationChangePolicyType + * @property {string} description + */ + +/** + * Created Classification report. + * @typedef {Object} TeamLogClassificationCreateReportDetails + */ + +/** + * Couldn't create Classification report. + * @typedef {Object} TeamLogClassificationCreateReportFailDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ + +/** + * @typedef {Object} TeamLogClassificationCreateReportFailType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogClassificationCreateReportType + * @property {string} description + */ + +/** + * Policy for controlling team access to the classification feature + * @typedef {Object} TeamLogClassificationPolicyEnumWrapper + * @property {('disabled'|'enabled'|'member_and_team_folders'|'team_folders'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * The type of classification (currently only personal information) + * @typedef {Object} TeamLogClassificationType + * @property {('personal_information'|'pii'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Shared album. + * @typedef {Object} TeamLogCollectionShareDetails + * @property {string} album_name - Album name. + */ + +/** + * @typedef {Object} TeamLogCollectionShareType + * @property {string} description + */ + +/** + * Policy for controlling team access to computer backup feature + * @typedef {Object} TeamLogComputerBackupPolicy + * @property {('default'|'disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed computer backup policy for team. + * @typedef {Object} TeamLogComputerBackupPolicyChangedDetails + * @property {TeamLogComputerBackupPolicy} new_value - New computer backup + * policy. + * @property {TeamLogComputerBackupPolicy} previous_value - Previous computer + * backup policy. + */ + +/** + * @typedef {Object} TeamLogComputerBackupPolicyChangedType + * @property {string} description + */ + +/** + * The name of the team + * @typedef {Object} TeamLogConnectedTeamName + * @property {string} team - The name of the team. + */ + +/** + * Changed content management setting. + * @typedef {Object} TeamLogContentAdministrationPolicyChangedDetails + * @property {string} new_value - New content administration policy. + * @property {string} previous_value - Previous content administration policy. + */ + +/** + * @typedef {Object} TeamLogContentAdministrationPolicyChangedType + * @property {string} description + */ + +/** + * Policy for pemanent content deletion + * @typedef {Object} TeamLogContentPermanentDeletePolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * The primary entity on which the action was done. + * @typedef {Object} TeamLogContextLogInfo + * @property {TeamLogNonTeamMemberLogInfo} [non_team_member] - Available if .tag + * is non_team_member. Action was done on behalf of a non team member. + * @property {TeamLogTeamLogInfo} [organization_team] - Available if .tag is + * organization_team. Action was done on behalf of a team that's part of an + * organization. + * @property {TeamLogTeamMemberLogInfo} [team_member] - Available if .tag is + * team_member. Action was done on behalf of a team member. + * @property {TeamLogTrustedNonTeamMemberLogInfo} [trusted_non_team_member] - + * Available if .tag is trusted_non_team_member. Action was done on behalf of a + * trusted non team member. + * @property {('anonymous'|'non_team_member'|'organization_team'|'team'|'team_member'|'trusted_non_team_member'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Created folders. + * @typedef {Object} TeamLogCreateFolderDetails + */ + +/** + * @typedef {Object} TeamLogCreateFolderType + * @property {string} description + */ + +/** + * Created team invite link. + * @typedef {Object} TeamLogCreateTeamInviteLinkDetails + * @property {string} link_url - The invite link url that was created. + * @property {string} expiry_date - The expiration date of the invite link. + */ + +/** + * @typedef {Object} TeamLogCreateTeamInviteLinkType + * @property {string} description + */ + +/** + * Set restrictions on data center locations where team data resides. + * @typedef {Object} TeamLogDataPlacementRestrictionChangePolicyDetails + * @property {TeamLogPlacementRestriction} previous_value - Previous placement + * restriction. + * @property {TeamLogPlacementRestriction} new_value - New placement + * restriction. + */ + +/** + * @typedef {Object} TeamLogDataPlacementRestrictionChangePolicyType + * @property {string} description + */ + +/** + * Completed restrictions on data center locations where team data resides. + * @typedef {Object} TeamLogDataPlacementRestrictionSatisfyPolicyDetails + * @property {TeamLogPlacementRestriction} placement_restriction - Placement + * restriction. + */ + +/** + * @typedef {Object} TeamLogDataPlacementRestrictionSatisfyPolicyType + * @property {string} description + */ + +/** + * Requested data residency migration for team data. + * @typedef {Object} TeamLogDataResidencyMigrationRequestSuccessfulDetails + */ + +/** + * @typedef {Object} TeamLogDataResidencyMigrationRequestSuccessfulType + * @property {string} description + */ + +/** + * Request for data residency migration for team data has failed. + * @typedef {Object} TeamLogDataResidencyMigrationRequestUnsuccessfulDetails + */ + +/** + * @typedef {Object} TeamLogDataResidencyMigrationRequestUnsuccessfulType + * @property {string} description + */ + +/** + * Policy for the default number of days until an externally shared link expires + * @typedef {Object} TeamLogDefaultLinkExpirationDaysPolicy + * @property {('day_1'|'day_180'|'day_3'|'day_30'|'day_7'|'day_90'|'none'|'year_1'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Deleted team invite link. + * @typedef {Object} TeamLogDeleteTeamInviteLinkDetails + * @property {string} link_url - The invite link url that was deleted. + */ + +/** + * @typedef {Object} TeamLogDeleteTeamInviteLinkType + * @property {string} description + */ + +/** + * Information about linked Dropbox desktop client sessions + * @typedef {Object} TeamLogDesktopDeviceSessionLogInfo +@property {'desktop_device_session'} [.tag] - Tag identifying this subtype +variant. This field is only present when needed to discriminate between multiple +possible subtypes. + * @property {string} host_name - Name of the hosting desktop. + * @property {TeamDesktopPlatform} client_type - The Dropbox desktop client + * type. + * @property {string} platform - Information on the hosting platform. + * @property {boolean} is_delete_on_unlink_supported - Whether itu2019s possible + * to delete all of the account files upon unlinking. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + * @property {TeamLogDesktopSessionLogInfo} [session_info] - Desktop session + * unique id. + * @property {string} [client_version] - The Dropbox client version. + */ + +/** + * Desktop session. + * @typedef {Object} TeamLogDesktopSessionLogInfo +@property {'desktop'} [.tag] - Tag identifying this subtype variant. This field +is only present when needed to discriminate between multiple possible subtypes. + * @property {string} [session_id] - Session ID. + */ + +/** + * Added members to device approvals exception list. + * @typedef {Object} TeamLogDeviceApprovalsAddExceptionDetails + */ + +/** + * @typedef {Object} TeamLogDeviceApprovalsAddExceptionType + * @property {string} description + */ + +/** + * Set/removed limit on number of computers member can link to team Dropbox + * account. + * @typedef {Object} TeamLogDeviceApprovalsChangeDesktopPolicyDetails + * @property {TeamLogDeviceApprovalsPolicy} [new_value] - New desktop device + * approvals policy. Might be missing due to historical data gap. + * @property {TeamLogDeviceApprovalsPolicy} [previous_value] - Previous desktop + * device approvals policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogDeviceApprovalsChangeDesktopPolicyType + * @property {string} description + */ + +/** + * Set/removed limit on number of mobile devices member can link to team Dropbox + * account. + * @typedef {Object} TeamLogDeviceApprovalsChangeMobilePolicyDetails + * @property {TeamLogDeviceApprovalsPolicy} [new_value] - New mobile device + * approvals policy. Might be missing due to historical data gap. + * @property {TeamLogDeviceApprovalsPolicy} [previous_value] - Previous mobile + * device approvals policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogDeviceApprovalsChangeMobilePolicyType + * @property {string} description + */ + +/** + * Changed device approvals setting when member is over limit. + * @typedef {Object} TeamLogDeviceApprovalsChangeOverageActionDetails + * @property {TeamPoliciesRolloutMethod} [new_value] - New over the limits + * policy. Might be missing due to historical data gap. + * @property {TeamPoliciesRolloutMethod} [previous_value] - Previous over the + * limit policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogDeviceApprovalsChangeOverageActionType + * @property {string} description + */ + +/** + * Changed device approvals setting when member unlinks approved device. + * @typedef {Object} TeamLogDeviceApprovalsChangeUnlinkActionDetails + * @property {TeamLogDeviceUnlinkPolicy} [new_value] - New device unlink policy. + * Might be missing due to historical data gap. + * @property {TeamLogDeviceUnlinkPolicy} [previous_value] - Previous device + * unlink policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogDeviceApprovalsChangeUnlinkActionType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogDeviceApprovalsPolicy + * @property {('limited'|'unlimited'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Removed members from device approvals exception list. + * @typedef {Object} TeamLogDeviceApprovalsRemoveExceptionDetails + */ + +/** + * @typedef {Object} TeamLogDeviceApprovalsRemoveExceptionType + * @property {string} description + */ + +/** + * Changed IP address associated with active desktop session. + * @typedef {Object} TeamLogDeviceChangeIpDesktopDetails + * @property + * {(TeamLogDesktopDeviceSessionLogInfo|TeamLogMobileDeviceSessionLogInfo|TeamLogWebDeviceSessionLogInfo|TeamLogLegacyDeviceSessionLogInfo|TeamLogDeviceSessionLogInfo)} + * device_session_info - Device's session logged information. + */ + +/** + * @typedef {Object} TeamLogDeviceChangeIpDesktopType + * @property {string} description + */ + +/** + * Changed IP address associated with active mobile session. + * @typedef {Object} TeamLogDeviceChangeIpMobileDetails + * @property + * {(TeamLogDesktopDeviceSessionLogInfo|TeamLogMobileDeviceSessionLogInfo|TeamLogWebDeviceSessionLogInfo|TeamLogLegacyDeviceSessionLogInfo|TeamLogDeviceSessionLogInfo)} + * [device_session_info] - Device's session logged information. + */ + +/** + * @typedef {Object} TeamLogDeviceChangeIpMobileType + * @property {string} description + */ + +/** + * Changed IP address associated with active web session. + * @typedef {Object} TeamLogDeviceChangeIpWebDetails + * @property {string} user_agent - Web browser name. + */ + +/** + * @typedef {Object} TeamLogDeviceChangeIpWebType + * @property {string} description + */ + +/** + * Failed to delete all files from unlinked device. + * @typedef {Object} TeamLogDeviceDeleteOnUnlinkFailDetails + * @property {number} num_failures - The number of times that remote file + * deletion failed. + * @property + * {(TeamLogWebSessionLogInfo|TeamLogDesktopSessionLogInfo|TeamLogMobileSessionLogInfo|TeamLogSessionLogInfo)} + * [session_info] - Session unique id. + * @property {string} [display_name] - The device name. Might be missing due to + * historical data gap. + */ + +/** + * @typedef {Object} TeamLogDeviceDeleteOnUnlinkFailType + * @property {string} description + */ + +/** + * Deleted all files from unlinked device. + * @typedef {Object} TeamLogDeviceDeleteOnUnlinkSuccessDetails + * @property + * {(TeamLogWebSessionLogInfo|TeamLogDesktopSessionLogInfo|TeamLogMobileSessionLogInfo|TeamLogSessionLogInfo)} + * [session_info] - Session unique id. + * @property {string} [display_name] - The device name. Might be missing due to + * historical data gap. + */ + +/** + * @typedef {Object} TeamLogDeviceDeleteOnUnlinkSuccessType + * @property {string} description + */ + +/** + * Failed to link device. + * @typedef {Object} TeamLogDeviceLinkFailDetails + * @property {TeamLogDeviceType} device_type - A description of the device used + * while user approval blocked. + * @property {string} [ip_address] - IP address. Might be missing due to + * historical data gap. + */ + +/** + * @typedef {Object} TeamLogDeviceLinkFailType + * @property {string} description + */ + +/** + * Linked device. + * @typedef {Object} TeamLogDeviceLinkSuccessDetails + * @property + * {(TeamLogDesktopDeviceSessionLogInfo|TeamLogMobileDeviceSessionLogInfo|TeamLogWebDeviceSessionLogInfo|TeamLogLegacyDeviceSessionLogInfo|TeamLogDeviceSessionLogInfo)} + * [device_session_info] - Device's session logged information. + */ + +/** + * @typedef {Object} TeamLogDeviceLinkSuccessType + * @property {string} description + */ + +/** + * Disabled device management. + * @typedef {Object} TeamLogDeviceManagementDisabledDetails + */ + +/** + * @typedef {Object} TeamLogDeviceManagementDisabledType + * @property {string} description + */ + +/** + * Enabled device management. + * @typedef {Object} TeamLogDeviceManagementEnabledDetails + */ + +/** + * @typedef {Object} TeamLogDeviceManagementEnabledType + * @property {string} description + */ + +/** + * Device's session logged information. + * @typedef {Object} TeamLogDeviceSessionLogInfo +@property +{("desktop_device_session"|"mobile_device_session"|"web_device_session"|"legacy_device_session")} +.tag - Tag identifying the subtype variant. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + */ + +/** + * Enabled/disabled backup for computer. + * @typedef {Object} TeamLogDeviceSyncBackupStatusChangedDetails + * @property {TeamLogDesktopDeviceSessionLogInfo} desktop_device_session_info - + * Device's session logged information. + * @property {TeamLogBackupStatus} previous_value - Previous status of computer + * backup on the device. + * @property {TeamLogBackupStatus} new_value - Next status of computer backup on + * the device. + */ + +/** + * @typedef {Object} TeamLogDeviceSyncBackupStatusChangedType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogDeviceType + * @property {('desktop'|'mobile'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Disconnected device. + * @typedef {Object} TeamLogDeviceUnlinkDetails + * @property {boolean} delete_data - True if the user requested to delete data + * after device unlink, false otherwise. + * @property + * {(TeamLogWebSessionLogInfo|TeamLogDesktopSessionLogInfo|TeamLogMobileSessionLogInfo|TeamLogSessionLogInfo)} + * [session_info] - Session unique id. + * @property {string} [display_name] - The device name. Might be missing due to + * historical data gap. + */ + +/** + * @typedef {Object} TeamLogDeviceUnlinkPolicy + * @property {('keep'|'remove'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLogDeviceUnlinkType + * @property {string} description + */ + +/** + * Added members to directory restrictions list. + * @typedef {Object} TeamLogDirectoryRestrictionsAddMembersDetails + */ + +/** + * @typedef {Object} TeamLogDirectoryRestrictionsAddMembersType + * @property {string} description + */ + +/** + * Removed members from directory restrictions list. + * @typedef {Object} TeamLogDirectoryRestrictionsRemoveMembersDetails + */ + +/** + * @typedef {Object} TeamLogDirectoryRestrictionsRemoveMembersType + * @property {string} description + */ + +/** + * Disabled domain invites. + * @typedef {Object} TeamLogDisabledDomainInvitesDetails + */ + +/** + * @typedef {Object} TeamLogDisabledDomainInvitesType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogDispositionActionType + * @property {('automatic_delete'|'automatic_permanently_delete'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Approved user's request to join team. + * @typedef {Object} TeamLogDomainInvitesApproveRequestToJoinTeamDetails + */ + +/** + * @typedef {Object} TeamLogDomainInvitesApproveRequestToJoinTeamType + * @property {string} description + */ + +/** + * Declined user's request to join team. + * @typedef {Object} TeamLogDomainInvitesDeclineRequestToJoinTeamDetails + */ + +/** + * @typedef {Object} TeamLogDomainInvitesDeclineRequestToJoinTeamType + * @property {string} description + */ + +/** + * Sent domain invites to existing domain accounts. + * @typedef {Object} TeamLogDomainInvitesEmailExistingUsersDetails + * @property {string} domain_name - Domain names. + * @property {number} num_recipients - Number of recipients. + */ + +/** + * @typedef {Object} TeamLogDomainInvitesEmailExistingUsersType + * @property {string} description + */ + +/** + * Requested to join team. + * @typedef {Object} TeamLogDomainInvitesRequestToJoinTeamDetails + */ + +/** + * @typedef {Object} TeamLogDomainInvitesRequestToJoinTeamType + * @property {string} description + */ + +/** + * Disabled "Automatically invite new users". + * @typedef {Object} TeamLogDomainInvitesSetInviteNewUserPrefToNoDetails + */ + +/** + * @typedef {Object} TeamLogDomainInvitesSetInviteNewUserPrefToNoType + * @property {string} description + */ + +/** + * Enabled "Automatically invite new users". + * @typedef {Object} TeamLogDomainInvitesSetInviteNewUserPrefToYesDetails + */ + +/** + * @typedef {Object} TeamLogDomainInvitesSetInviteNewUserPrefToYesType + * @property {string} description + */ + +/** + * Failed to verify team domain. + * @typedef {Object} TeamLogDomainVerificationAddDomainFailDetails + * @property {string} domain_name - Domain name. + * @property {string} [verification_method] - Domain name verification method. + * Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogDomainVerificationAddDomainFailType + * @property {string} description + */ + +/** + * Verified team domain. + * @typedef {Object} TeamLogDomainVerificationAddDomainSuccessDetails + * @property {Array.} domain_names - Domain names. + * @property {string} [verification_method] - Domain name verification method. + * Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogDomainVerificationAddDomainSuccessType + * @property {string} description + */ + +/** + * Removed domain from list of verified team domains. + * @typedef {Object} TeamLogDomainVerificationRemoveDomainDetails + * @property {Array.} domain_names - Domain names. + */ + +/** + * @typedef {Object} TeamLogDomainVerificationRemoveDomainType + * @property {string} description + */ + +/** + * Shared content downloads policy + * @typedef {Object} TeamLogDownloadPolicyType + * @property {('allow'|'disallow'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Exported passwords. + * @typedef {Object} TeamLogDropboxPasswordsExportedDetails + * @property {string} platform - The platform the device runs export. + */ + +/** + * @typedef {Object} TeamLogDropboxPasswordsExportedType + * @property {string} description + */ + +/** + * Enrolled new Dropbox Passwords device. + * @typedef {Object} TeamLogDropboxPasswordsNewDeviceEnrolledDetails + * @property {boolean} is_first_device - Whether it's a first device enrolled. + * @property {string} platform - The platform the device is enrolled. + */ + +/** + * @typedef {Object} TeamLogDropboxPasswordsNewDeviceEnrolledType + * @property {string} description + */ + +/** + * Policy for deciding whether team users can use Dropbox Passwords + * @typedef {Object} TeamLogDropboxPasswordsPolicy + * @property {('default'|'disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed Dropbox Passwords policy for team. + * @typedef {Object} TeamLogDropboxPasswordsPolicyChangedDetails + * @property {TeamLogDropboxPasswordsPolicy} new_value - To. + * @property {TeamLogDropboxPasswordsPolicy} previous_value - From. + */ + +/** + * @typedef {Object} TeamLogDropboxPasswordsPolicyChangedType + * @property {string} description + */ + +/** + * Represents a time duration: unit and amount + * @typedef {Object} TeamLogDurationLogInfo + * @property {TeamLogTimeUnit} unit - Time unit. + * @property {number} amount - Amount of time. + */ + +/** + * Policy for deciding whether a team can use Email to Dropbox feature + * @typedef {Object} TeamLogEmailIngestPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed email to Dropbox policy for team. + * @typedef {Object} TeamLogEmailIngestPolicyChangedDetails + * @property {TeamLogEmailIngestPolicy} new_value - To. + * @property {TeamLogEmailIngestPolicy} previous_value - From. + */ + +/** + * @typedef {Object} TeamLogEmailIngestPolicyChangedType + * @property {string} description + */ + +/** + * Received files via Email to Dropbox. + * @typedef {Object} TeamLogEmailIngestReceiveFileDetails + * @property {string} inbox_name - Inbox name. + * @property {Array.} attachment_names - Submitted file names. + * @property {string} [subject] - Subject of the email. + * @property {string} [from_name] - The name as provided by the submitter. + * @property {string} [from_email] - The email as provided by the submitter. + */ + +/** + * @typedef {Object} TeamLogEmailIngestReceiveFileType + * @property {string} description + */ + +/** + * Added members to EMM exception list. + * @typedef {Object} TeamLogEmmAddExceptionDetails + */ + +/** + * @typedef {Object} TeamLogEmmAddExceptionType + * @property {string} description + */ + +/** + * Enabled/disabled enterprise mobility management for members. + * @typedef {Object} TeamLogEmmChangePolicyDetails + * @property {TeamPoliciesEmmState} new_value - New enterprise mobility + * management policy. + * @property {TeamPoliciesEmmState} [previous_value] - Previous enterprise + * mobility management policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogEmmChangePolicyType + * @property {string} description + */ + +/** + * Created EMM-excluded users report. + * @typedef {Object} TeamLogEmmCreateExceptionsReportDetails + */ + +/** + * @typedef {Object} TeamLogEmmCreateExceptionsReportType + * @property {string} description + */ + +/** + * Created EMM mobile app usage report. + * @typedef {Object} TeamLogEmmCreateUsageReportDetails + */ + +/** + * @typedef {Object} TeamLogEmmCreateUsageReportType + * @property {string} description + */ + +/** + * Failed to sign in via EMM. + * @typedef {Object} TeamLogEmmErrorDetails + * @property {TeamLogFailureDetailsLogInfo} error_details - Error details. + */ + +/** + * @typedef {Object} TeamLogEmmErrorType + * @property {string} description + */ + +/** + * Refreshed auth token used for setting up EMM. + * @typedef {Object} TeamLogEmmRefreshAuthTokenDetails + */ + +/** + * @typedef {Object} TeamLogEmmRefreshAuthTokenType + * @property {string} description + */ + +/** + * Removed members from EMM exception list. + * @typedef {Object} TeamLogEmmRemoveExceptionDetails + */ + +/** + * @typedef {Object} TeamLogEmmRemoveExceptionType + * @property {string} description + */ + +/** + * Enabled domain invites. + * @typedef {Object} TeamLogEnabledDomainInvitesDetails + */ + +/** + * @typedef {Object} TeamLogEnabledDomainInvitesType + * @property {string} description + */ + +/** + * Ended enterprise admin session. + * @typedef {Object} TeamLogEndedEnterpriseAdminSessionDeprecatedDetails + * @property {TeamLogFedExtraDetails} federation_extra_details - More + * information about the organization or team. + */ + +/** + * @typedef {Object} TeamLogEndedEnterpriseAdminSessionDeprecatedType + * @property {string} description + */ + +/** + * Ended enterprise admin session. + * @typedef {Object} TeamLogEndedEnterpriseAdminSessionDetails + */ + +/** + * @typedef {Object} TeamLogEndedEnterpriseAdminSessionType + * @property {string} description + */ + +/** + * Policy for deciding whether password must be enforced when an externally + * shared link is updated + * @typedef {Object} TeamLogEnforceLinkPasswordPolicy + * @property {('optional'|'required'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed who can update a setting. + * @typedef {Object} TeamLogEnterpriseSettingsLockingDetails + * @property {string} team_name - The secondary team name. + * @property {string} settings_page_name - Settings page name. + * @property {string} previous_settings_page_locking_state - Previous locked + * settings page state. + * @property {string} new_settings_page_locking_state - New locked settings page + * state. + */ + +/** + * @typedef {Object} TeamLogEnterpriseSettingsLockingType + * @property {string} description + */ + +/** + * Category of events in event audit log. + * @typedef {Object} TeamLogEventCategory + * @property {('admin_alerting'|'apps'|'comments'|'data_governance'|'devices'|'domains'|'file_operations'|'file_requests'|'groups'|'logins'|'members'|'paper'|'passwords'|'reports'|'sharing'|'showcase'|'sso'|'team_folders'|'team_policies'|'team_profile'|'tfa'|'trusted_teams'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Additional fields depending on the event type. + * @typedef {Object} TeamLogEventDetails + * @property {TeamLogAdminAlertingAlertStateChangedDetails} + * [admin_alerting_alert_state_changed_details] - Available if .tag is + * admin_alerting_alert_state_changed_details. + * @property {TeamLogAdminAlertingChangedAlertConfigDetails} + * [admin_alerting_changed_alert_config_details] - Available if .tag is + * admin_alerting_changed_alert_config_details. + * @property {TeamLogAdminAlertingTriggeredAlertDetails} + * [admin_alerting_triggered_alert_details] - Available if .tag is + * admin_alerting_triggered_alert_details. + * @property {TeamLogAppBlockedByPermissionsDetails} + * [app_blocked_by_permissions_details] - Available if .tag is + * app_blocked_by_permissions_details. + * @property {TeamLogAppLinkTeamDetails} [app_link_team_details] - Available if + * .tag is app_link_team_details. + * @property {TeamLogAppLinkUserDetails} [app_link_user_details] - Available if + * .tag is app_link_user_details. + * @property {TeamLogAppUnlinkTeamDetails} [app_unlink_team_details] - Available + * if .tag is app_unlink_team_details. + * @property {TeamLogAppUnlinkUserDetails} [app_unlink_user_details] - Available + * if .tag is app_unlink_user_details. + * @property {TeamLogIntegrationConnectedDetails} + * [integration_connected_details] - Available if .tag is + * integration_connected_details. + * @property {TeamLogIntegrationDisconnectedDetails} + * [integration_disconnected_details] - Available if .tag is + * integration_disconnected_details. + * @property {TeamLogFileAddCommentDetails} [file_add_comment_details] - + * Available if .tag is file_add_comment_details. + * @property {TeamLogFileChangeCommentSubscriptionDetails} + * [file_change_comment_subscription_details] - Available if .tag is + * file_change_comment_subscription_details. + * @property {TeamLogFileDeleteCommentDetails} [file_delete_comment_details] - + * Available if .tag is file_delete_comment_details. + * @property {TeamLogFileEditCommentDetails} [file_edit_comment_details] - + * Available if .tag is file_edit_comment_details. + * @property {TeamLogFileLikeCommentDetails} [file_like_comment_details] - + * Available if .tag is file_like_comment_details. + * @property {TeamLogFileResolveCommentDetails} [file_resolve_comment_details] - + * Available if .tag is file_resolve_comment_details. + * @property {TeamLogFileUnlikeCommentDetails} [file_unlike_comment_details] - + * Available if .tag is file_unlike_comment_details. + * @property {TeamLogFileUnresolveCommentDetails} + * [file_unresolve_comment_details] - Available if .tag is + * file_unresolve_comment_details. + * @property {TeamLogGovernancePolicyAddFoldersDetails} + * [governance_policy_add_folders_details] - Available if .tag is + * governance_policy_add_folders_details. + * @property {TeamLogGovernancePolicyAddFolderFailedDetails} + * [governance_policy_add_folder_failed_details] - Available if .tag is + * governance_policy_add_folder_failed_details. + * @property {TeamLogGovernancePolicyContentDisposedDetails} + * [governance_policy_content_disposed_details] - Available if .tag is + * governance_policy_content_disposed_details. + * @property {TeamLogGovernancePolicyCreateDetails} + * [governance_policy_create_details] - Available if .tag is + * governance_policy_create_details. + * @property {TeamLogGovernancePolicyDeleteDetails} + * [governance_policy_delete_details] - Available if .tag is + * governance_policy_delete_details. + * @property {TeamLogGovernancePolicyEditDetailsDetails} + * [governance_policy_edit_details_details] - Available if .tag is + * governance_policy_edit_details_details. + * @property {TeamLogGovernancePolicyEditDurationDetails} + * [governance_policy_edit_duration_details] - Available if .tag is + * governance_policy_edit_duration_details. + * @property {TeamLogGovernancePolicyExportCreatedDetails} + * [governance_policy_export_created_details] - Available if .tag is + * governance_policy_export_created_details. + * @property {TeamLogGovernancePolicyExportRemovedDetails} + * [governance_policy_export_removed_details] - Available if .tag is + * governance_policy_export_removed_details. + * @property {TeamLogGovernancePolicyRemoveFoldersDetails} + * [governance_policy_remove_folders_details] - Available if .tag is + * governance_policy_remove_folders_details. + * @property {TeamLogGovernancePolicyReportCreatedDetails} + * [governance_policy_report_created_details] - Available if .tag is + * governance_policy_report_created_details. + * @property {TeamLogGovernancePolicyZipPartDownloadedDetails} + * [governance_policy_zip_part_downloaded_details] - Available if .tag is + * governance_policy_zip_part_downloaded_details. + * @property {TeamLogLegalHoldsActivateAHoldDetails} + * [legal_holds_activate_a_hold_details] - Available if .tag is + * legal_holds_activate_a_hold_details. + * @property {TeamLogLegalHoldsAddMembersDetails} + * [legal_holds_add_members_details] - Available if .tag is + * legal_holds_add_members_details. + * @property {TeamLogLegalHoldsChangeHoldDetailsDetails} + * [legal_holds_change_hold_details_details] - Available if .tag is + * legal_holds_change_hold_details_details. + * @property {TeamLogLegalHoldsChangeHoldNameDetails} + * [legal_holds_change_hold_name_details] - Available if .tag is + * legal_holds_change_hold_name_details. + * @property {TeamLogLegalHoldsExportAHoldDetails} + * [legal_holds_export_a_hold_details] - Available if .tag is + * legal_holds_export_a_hold_details. + * @property {TeamLogLegalHoldsExportCancelledDetails} + * [legal_holds_export_cancelled_details] - Available if .tag is + * legal_holds_export_cancelled_details. + * @property {TeamLogLegalHoldsExportDownloadedDetails} + * [legal_holds_export_downloaded_details] - Available if .tag is + * legal_holds_export_downloaded_details. + * @property {TeamLogLegalHoldsExportRemovedDetails} + * [legal_holds_export_removed_details] - Available if .tag is + * legal_holds_export_removed_details. + * @property {TeamLogLegalHoldsReleaseAHoldDetails} + * [legal_holds_release_a_hold_details] - Available if .tag is + * legal_holds_release_a_hold_details. + * @property {TeamLogLegalHoldsRemoveMembersDetails} + * [legal_holds_remove_members_details] - Available if .tag is + * legal_holds_remove_members_details. + * @property {TeamLogLegalHoldsReportAHoldDetails} + * [legal_holds_report_a_hold_details] - Available if .tag is + * legal_holds_report_a_hold_details. + * @property {TeamLogDeviceChangeIpDesktopDetails} + * [device_change_ip_desktop_details] - Available if .tag is + * device_change_ip_desktop_details. + * @property {TeamLogDeviceChangeIpMobileDetails} + * [device_change_ip_mobile_details] - Available if .tag is + * device_change_ip_mobile_details. + * @property {TeamLogDeviceChangeIpWebDetails} [device_change_ip_web_details] - + * Available if .tag is device_change_ip_web_details. + * @property {TeamLogDeviceDeleteOnUnlinkFailDetails} + * [device_delete_on_unlink_fail_details] - Available if .tag is + * device_delete_on_unlink_fail_details. + * @property {TeamLogDeviceDeleteOnUnlinkSuccessDetails} + * [device_delete_on_unlink_success_details] - Available if .tag is + * device_delete_on_unlink_success_details. + * @property {TeamLogDeviceLinkFailDetails} [device_link_fail_details] - + * Available if .tag is device_link_fail_details. + * @property {TeamLogDeviceLinkSuccessDetails} [device_link_success_details] - + * Available if .tag is device_link_success_details. + * @property {TeamLogDeviceManagementDisabledDetails} + * [device_management_disabled_details] - Available if .tag is + * device_management_disabled_details. + * @property {TeamLogDeviceManagementEnabledDetails} + * [device_management_enabled_details] - Available if .tag is + * device_management_enabled_details. + * @property {TeamLogDeviceSyncBackupStatusChangedDetails} + * [device_sync_backup_status_changed_details] - Available if .tag is + * device_sync_backup_status_changed_details. + * @property {TeamLogDeviceUnlinkDetails} [device_unlink_details] - Available if + * .tag is device_unlink_details. + * @property {TeamLogDropboxPasswordsExportedDetails} + * [dropbox_passwords_exported_details] - Available if .tag is + * dropbox_passwords_exported_details. + * @property {TeamLogDropboxPasswordsNewDeviceEnrolledDetails} + * [dropbox_passwords_new_device_enrolled_details] - Available if .tag is + * dropbox_passwords_new_device_enrolled_details. + * @property {TeamLogEmmRefreshAuthTokenDetails} + * [emm_refresh_auth_token_details] - Available if .tag is + * emm_refresh_auth_token_details. + * @property {TeamLogExternalDriveBackupEligibilityStatusCheckedDetails} + * [external_drive_backup_eligibility_status_checked_details] - Available if + * .tag is external_drive_backup_eligibility_status_checked_details. + * @property {TeamLogExternalDriveBackupStatusChangedDetails} + * [external_drive_backup_status_changed_details] - Available if .tag is + * external_drive_backup_status_changed_details. + * @property {TeamLogAccountCaptureChangeAvailabilityDetails} + * [account_capture_change_availability_details] - Available if .tag is + * account_capture_change_availability_details. + * @property {TeamLogAccountCaptureMigrateAccountDetails} + * [account_capture_migrate_account_details] - Available if .tag is + * account_capture_migrate_account_details. + * @property {TeamLogAccountCaptureNotificationEmailsSentDetails} + * [account_capture_notification_emails_sent_details] - Available if .tag is + * account_capture_notification_emails_sent_details. + * @property {TeamLogAccountCaptureRelinquishAccountDetails} + * [account_capture_relinquish_account_details] - Available if .tag is + * account_capture_relinquish_account_details. + * @property {TeamLogDisabledDomainInvitesDetails} + * [disabled_domain_invites_details] - Available if .tag is + * disabled_domain_invites_details. + * @property {TeamLogDomainInvitesApproveRequestToJoinTeamDetails} + * [domain_invites_approve_request_to_join_team_details] - Available if .tag is + * domain_invites_approve_request_to_join_team_details. + * @property {TeamLogDomainInvitesDeclineRequestToJoinTeamDetails} + * [domain_invites_decline_request_to_join_team_details] - Available if .tag is + * domain_invites_decline_request_to_join_team_details. + * @property {TeamLogDomainInvitesEmailExistingUsersDetails} + * [domain_invites_email_existing_users_details] - Available if .tag is + * domain_invites_email_existing_users_details. + * @property {TeamLogDomainInvitesRequestToJoinTeamDetails} + * [domain_invites_request_to_join_team_details] - Available if .tag is + * domain_invites_request_to_join_team_details. + * @property {TeamLogDomainInvitesSetInviteNewUserPrefToNoDetails} + * [domain_invites_set_invite_new_user_pref_to_no_details] - Available if .tag + * is domain_invites_set_invite_new_user_pref_to_no_details. + * @property {TeamLogDomainInvitesSetInviteNewUserPrefToYesDetails} + * [domain_invites_set_invite_new_user_pref_to_yes_details] - Available if .tag + * is domain_invites_set_invite_new_user_pref_to_yes_details. + * @property {TeamLogDomainVerificationAddDomainFailDetails} + * [domain_verification_add_domain_fail_details] - Available if .tag is + * domain_verification_add_domain_fail_details. + * @property {TeamLogDomainVerificationAddDomainSuccessDetails} + * [domain_verification_add_domain_success_details] - Available if .tag is + * domain_verification_add_domain_success_details. + * @property {TeamLogDomainVerificationRemoveDomainDetails} + * [domain_verification_remove_domain_details] - Available if .tag is + * domain_verification_remove_domain_details. + * @property {TeamLogEnabledDomainInvitesDetails} + * [enabled_domain_invites_details] - Available if .tag is + * enabled_domain_invites_details. + * @property {TeamLogApplyNamingConventionDetails} + * [apply_naming_convention_details] - Available if .tag is + * apply_naming_convention_details. + * @property {TeamLogCreateFolderDetails} [create_folder_details] - Available if + * .tag is create_folder_details. + * @property {TeamLogFileAddDetails} [file_add_details] - Available if .tag is + * file_add_details. + * @property {TeamLogFileCopyDetails} [file_copy_details] - Available if .tag is + * file_copy_details. + * @property {TeamLogFileDeleteDetails} [file_delete_details] - Available if + * .tag is file_delete_details. + * @property {TeamLogFileDownloadDetails} [file_download_details] - Available if + * .tag is file_download_details. + * @property {TeamLogFileEditDetails} [file_edit_details] - Available if .tag is + * file_edit_details. + * @property {TeamLogFileGetCopyReferenceDetails} + * [file_get_copy_reference_details] - Available if .tag is + * file_get_copy_reference_details. + * @property {TeamLogFileLockingLockStatusChangedDetails} + * [file_locking_lock_status_changed_details] - Available if .tag is + * file_locking_lock_status_changed_details. + * @property {TeamLogFileMoveDetails} [file_move_details] - Available if .tag is + * file_move_details. + * @property {TeamLogFilePermanentlyDeleteDetails} + * [file_permanently_delete_details] - Available if .tag is + * file_permanently_delete_details. + * @property {TeamLogFilePreviewDetails} [file_preview_details] - Available if + * .tag is file_preview_details. + * @property {TeamLogFileRenameDetails} [file_rename_details] - Available if + * .tag is file_rename_details. + * @property {TeamLogFileRestoreDetails} [file_restore_details] - Available if + * .tag is file_restore_details. + * @property {TeamLogFileRevertDetails} [file_revert_details] - Available if + * .tag is file_revert_details. + * @property {TeamLogFileRollbackChangesDetails} [file_rollback_changes_details] + * - Available if .tag is file_rollback_changes_details. + * @property {TeamLogFileSaveCopyReferenceDetails} + * [file_save_copy_reference_details] - Available if .tag is + * file_save_copy_reference_details. + * @property {TeamLogFolderOverviewDescriptionChangedDetails} + * [folder_overview_description_changed_details] - Available if .tag is + * folder_overview_description_changed_details. + * @property {TeamLogFolderOverviewItemPinnedDetails} + * [folder_overview_item_pinned_details] - Available if .tag is + * folder_overview_item_pinned_details. + * @property {TeamLogFolderOverviewItemUnpinnedDetails} + * [folder_overview_item_unpinned_details] - Available if .tag is + * folder_overview_item_unpinned_details. + * @property {TeamLogObjectLabelAddedDetails} [object_label_added_details] - + * Available if .tag is object_label_added_details. + * @property {TeamLogObjectLabelRemovedDetails} [object_label_removed_details] - + * Available if .tag is object_label_removed_details. + * @property {TeamLogObjectLabelUpdatedValueDetails} + * [object_label_updated_value_details] - Available if .tag is + * object_label_updated_value_details. + * @property {TeamLogOrganizeFolderWithTidyDetails} + * [organize_folder_with_tidy_details] - Available if .tag is + * organize_folder_with_tidy_details. + * @property {TeamLogRewindFolderDetails} [rewind_folder_details] - Available if + * .tag is rewind_folder_details. + * @property {TeamLogUndoNamingConventionDetails} + * [undo_naming_convention_details] - Available if .tag is + * undo_naming_convention_details. + * @property {TeamLogUndoOrganizeFolderWithTidyDetails} + * [undo_organize_folder_with_tidy_details] - Available if .tag is + * undo_organize_folder_with_tidy_details. + * @property {TeamLogUserTagsAddedDetails} [user_tags_added_details] - Available + * if .tag is user_tags_added_details. + * @property {TeamLogUserTagsRemovedDetails} [user_tags_removed_details] - + * Available if .tag is user_tags_removed_details. + * @property {TeamLogEmailIngestReceiveFileDetails} + * [email_ingest_receive_file_details] - Available if .tag is + * email_ingest_receive_file_details. + * @property {TeamLogFileRequestChangeDetails} [file_request_change_details] - + * Available if .tag is file_request_change_details. + * @property {TeamLogFileRequestCloseDetails} [file_request_close_details] - + * Available if .tag is file_request_close_details. + * @property {TeamLogFileRequestCreateDetails} [file_request_create_details] - + * Available if .tag is file_request_create_details. + * @property {TeamLogFileRequestDeleteDetails} [file_request_delete_details] - + * Available if .tag is file_request_delete_details. + * @property {TeamLogFileRequestReceiveFileDetails} + * [file_request_receive_file_details] - Available if .tag is + * file_request_receive_file_details. + * @property {TeamLogGroupAddExternalIdDetails} [group_add_external_id_details] + * - Available if .tag is group_add_external_id_details. + * @property {TeamLogGroupAddMemberDetails} [group_add_member_details] - + * Available if .tag is group_add_member_details. + * @property {TeamLogGroupChangeExternalIdDetails} + * [group_change_external_id_details] - Available if .tag is + * group_change_external_id_details. + * @property {TeamLogGroupChangeManagementTypeDetails} + * [group_change_management_type_details] - Available if .tag is + * group_change_management_type_details. + * @property {TeamLogGroupChangeMemberRoleDetails} + * [group_change_member_role_details] - Available if .tag is + * group_change_member_role_details. + * @property {TeamLogGroupCreateDetails} [group_create_details] - Available if + * .tag is group_create_details. + * @property {TeamLogGroupDeleteDetails} [group_delete_details] - Available if + * .tag is group_delete_details. + * @property {TeamLogGroupDescriptionUpdatedDetails} + * [group_description_updated_details] - Available if .tag is + * group_description_updated_details. + * @property {TeamLogGroupJoinPolicyUpdatedDetails} + * [group_join_policy_updated_details] - Available if .tag is + * group_join_policy_updated_details. + * @property {TeamLogGroupMovedDetails} [group_moved_details] - Available if + * .tag is group_moved_details. + * @property {TeamLogGroupRemoveExternalIdDetails} + * [group_remove_external_id_details] - Available if .tag is + * group_remove_external_id_details. + * @property {TeamLogGroupRemoveMemberDetails} [group_remove_member_details] - + * Available if .tag is group_remove_member_details. + * @property {TeamLogGroupRenameDetails} [group_rename_details] - Available if + * .tag is group_rename_details. + * @property {TeamLogAccountLockOrUnlockedDetails} + * [account_lock_or_unlocked_details] - Available if .tag is + * account_lock_or_unlocked_details. + * @property {TeamLogEmmErrorDetails} [emm_error_details] - Available if .tag is + * emm_error_details. + * @property {TeamLogGuestAdminSignedInViaTrustedTeamsDetails} + * [guest_admin_signed_in_via_trusted_teams_details] - Available if .tag is + * guest_admin_signed_in_via_trusted_teams_details. + * @property {TeamLogGuestAdminSignedOutViaTrustedTeamsDetails} + * [guest_admin_signed_out_via_trusted_teams_details] - Available if .tag is + * guest_admin_signed_out_via_trusted_teams_details. + * @property {TeamLogLoginFailDetails} [login_fail_details] - Available if .tag + * is login_fail_details. + * @property {TeamLogLoginSuccessDetails} [login_success_details] - Available if + * .tag is login_success_details. + * @property {TeamLogLogoutDetails} [logout_details] - Available if .tag is + * logout_details. + * @property {TeamLogResellerSupportSessionEndDetails} + * [reseller_support_session_end_details] - Available if .tag is + * reseller_support_session_end_details. + * @property {TeamLogResellerSupportSessionStartDetails} + * [reseller_support_session_start_details] - Available if .tag is + * reseller_support_session_start_details. + * @property {TeamLogSignInAsSessionEndDetails} [sign_in_as_session_end_details] + * - Available if .tag is sign_in_as_session_end_details. + * @property {TeamLogSignInAsSessionStartDetails} + * [sign_in_as_session_start_details] - Available if .tag is + * sign_in_as_session_start_details. + * @property {TeamLogSsoErrorDetails} [sso_error_details] - Available if .tag is + * sso_error_details. + * @property {TeamLogCreateTeamInviteLinkDetails} + * [create_team_invite_link_details] - Available if .tag is + * create_team_invite_link_details. + * @property {TeamLogDeleteTeamInviteLinkDetails} + * [delete_team_invite_link_details] - Available if .tag is + * delete_team_invite_link_details. + * @property {TeamLogMemberAddExternalIdDetails} + * [member_add_external_id_details] - Available if .tag is + * member_add_external_id_details. + * @property {TeamLogMemberAddNameDetails} [member_add_name_details] - Available + * if .tag is member_add_name_details. + * @property {TeamLogMemberChangeAdminRoleDetails} + * [member_change_admin_role_details] - Available if .tag is + * member_change_admin_role_details. + * @property {TeamLogMemberChangeEmailDetails} [member_change_email_details] - + * Available if .tag is member_change_email_details. + * @property {TeamLogMemberChangeExternalIdDetails} + * [member_change_external_id_details] - Available if .tag is + * member_change_external_id_details. + * @property {TeamLogMemberChangeMembershipTypeDetails} + * [member_change_membership_type_details] - Available if .tag is + * member_change_membership_type_details. + * @property {TeamLogMemberChangeNameDetails} [member_change_name_details] - + * Available if .tag is member_change_name_details. + * @property {TeamLogMemberChangeResellerRoleDetails} + * [member_change_reseller_role_details] - Available if .tag is + * member_change_reseller_role_details. + * @property {TeamLogMemberChangeStatusDetails} [member_change_status_details] - + * Available if .tag is member_change_status_details. + * @property {TeamLogMemberDeleteManualContactsDetails} + * [member_delete_manual_contacts_details] - Available if .tag is + * member_delete_manual_contacts_details. + * @property {TeamLogMemberDeleteProfilePhotoDetails} + * [member_delete_profile_photo_details] - Available if .tag is + * member_delete_profile_photo_details. + * @property {TeamLogMemberPermanentlyDeleteAccountContentsDetails} + * [member_permanently_delete_account_contents_details] - Available if .tag is + * member_permanently_delete_account_contents_details. + * @property {TeamLogMemberRemoveExternalIdDetails} + * [member_remove_external_id_details] - Available if .tag is + * member_remove_external_id_details. + * @property {TeamLogMemberSetProfilePhotoDetails} + * [member_set_profile_photo_details] - Available if .tag is + * member_set_profile_photo_details. + * @property {TeamLogMemberSpaceLimitsAddCustomQuotaDetails} + * [member_space_limits_add_custom_quota_details] - Available if .tag is + * member_space_limits_add_custom_quota_details. + * @property {TeamLogMemberSpaceLimitsChangeCustomQuotaDetails} + * [member_space_limits_change_custom_quota_details] - Available if .tag is + * member_space_limits_change_custom_quota_details. + * @property {TeamLogMemberSpaceLimitsChangeStatusDetails} + * [member_space_limits_change_status_details] - Available if .tag is + * member_space_limits_change_status_details. + * @property {TeamLogMemberSpaceLimitsRemoveCustomQuotaDetails} + * [member_space_limits_remove_custom_quota_details] - Available if .tag is + * member_space_limits_remove_custom_quota_details. + * @property {TeamLogMemberSuggestDetails} [member_suggest_details] - Available + * if .tag is member_suggest_details. + * @property {TeamLogMemberTransferAccountContentsDetails} + * [member_transfer_account_contents_details] - Available if .tag is + * member_transfer_account_contents_details. + * @property {TeamLogPendingSecondaryEmailAddedDetails} + * [pending_secondary_email_added_details] - Available if .tag is + * pending_secondary_email_added_details. + * @property {TeamLogSecondaryEmailDeletedDetails} + * [secondary_email_deleted_details] - Available if .tag is + * secondary_email_deleted_details. + * @property {TeamLogSecondaryEmailVerifiedDetails} + * [secondary_email_verified_details] - Available if .tag is + * secondary_email_verified_details. + * @property {TeamLogSecondaryMailsPolicyChangedDetails} + * [secondary_mails_policy_changed_details] - Available if .tag is + * secondary_mails_policy_changed_details. + * @property {TeamLogBinderAddPageDetails} [binder_add_page_details] - Available + * if .tag is binder_add_page_details. + * @property {TeamLogBinderAddSectionDetails} [binder_add_section_details] - + * Available if .tag is binder_add_section_details. + * @property {TeamLogBinderRemovePageDetails} [binder_remove_page_details] - + * Available if .tag is binder_remove_page_details. + * @property {TeamLogBinderRemoveSectionDetails} [binder_remove_section_details] + * - Available if .tag is binder_remove_section_details. + * @property {TeamLogBinderRenamePageDetails} [binder_rename_page_details] - + * Available if .tag is binder_rename_page_details. + * @property {TeamLogBinderRenameSectionDetails} [binder_rename_section_details] + * - Available if .tag is binder_rename_section_details. + * @property {TeamLogBinderReorderPageDetails} [binder_reorder_page_details] - + * Available if .tag is binder_reorder_page_details. + * @property {TeamLogBinderReorderSectionDetails} + * [binder_reorder_section_details] - Available if .tag is + * binder_reorder_section_details. + * @property {TeamLogPaperContentAddMemberDetails} + * [paper_content_add_member_details] - Available if .tag is + * paper_content_add_member_details. + * @property {TeamLogPaperContentAddToFolderDetails} + * [paper_content_add_to_folder_details] - Available if .tag is + * paper_content_add_to_folder_details. + * @property {TeamLogPaperContentArchiveDetails} [paper_content_archive_details] + * - Available if .tag is paper_content_archive_details. + * @property {TeamLogPaperContentCreateDetails} [paper_content_create_details] - + * Available if .tag is paper_content_create_details. + * @property {TeamLogPaperContentPermanentlyDeleteDetails} + * [paper_content_permanently_delete_details] - Available if .tag is + * paper_content_permanently_delete_details. + * @property {TeamLogPaperContentRemoveFromFolderDetails} + * [paper_content_remove_from_folder_details] - Available if .tag is + * paper_content_remove_from_folder_details. + * @property {TeamLogPaperContentRemoveMemberDetails} + * [paper_content_remove_member_details] - Available if .tag is + * paper_content_remove_member_details. + * @property {TeamLogPaperContentRenameDetails} [paper_content_rename_details] - + * Available if .tag is paper_content_rename_details. + * @property {TeamLogPaperContentRestoreDetails} [paper_content_restore_details] + * - Available if .tag is paper_content_restore_details. + * @property {TeamLogPaperDocAddCommentDetails} [paper_doc_add_comment_details] + * - Available if .tag is paper_doc_add_comment_details. + * @property {TeamLogPaperDocChangeMemberRoleDetails} + * [paper_doc_change_member_role_details] - Available if .tag is + * paper_doc_change_member_role_details. + * @property {TeamLogPaperDocChangeSharingPolicyDetails} + * [paper_doc_change_sharing_policy_details] - Available if .tag is + * paper_doc_change_sharing_policy_details. + * @property {TeamLogPaperDocChangeSubscriptionDetails} + * [paper_doc_change_subscription_details] - Available if .tag is + * paper_doc_change_subscription_details. + * @property {TeamLogPaperDocDeletedDetails} [paper_doc_deleted_details] - + * Available if .tag is paper_doc_deleted_details. + * @property {TeamLogPaperDocDeleteCommentDetails} + * [paper_doc_delete_comment_details] - Available if .tag is + * paper_doc_delete_comment_details. + * @property {TeamLogPaperDocDownloadDetails} [paper_doc_download_details] - + * Available if .tag is paper_doc_download_details. + * @property {TeamLogPaperDocEditDetails} [paper_doc_edit_details] - Available + * if .tag is paper_doc_edit_details. + * @property {TeamLogPaperDocEditCommentDetails} + * [paper_doc_edit_comment_details] - Available if .tag is + * paper_doc_edit_comment_details. + * @property {TeamLogPaperDocFollowedDetails} [paper_doc_followed_details] - + * Available if .tag is paper_doc_followed_details. + * @property {TeamLogPaperDocMentionDetails} [paper_doc_mention_details] - + * Available if .tag is paper_doc_mention_details. + * @property {TeamLogPaperDocOwnershipChangedDetails} + * [paper_doc_ownership_changed_details] - Available if .tag is + * paper_doc_ownership_changed_details. + * @property {TeamLogPaperDocRequestAccessDetails} + * [paper_doc_request_access_details] - Available if .tag is + * paper_doc_request_access_details. + * @property {TeamLogPaperDocResolveCommentDetails} + * [paper_doc_resolve_comment_details] - Available if .tag is + * paper_doc_resolve_comment_details. + * @property {TeamLogPaperDocRevertDetails} [paper_doc_revert_details] - + * Available if .tag is paper_doc_revert_details. + * @property {TeamLogPaperDocSlackShareDetails} [paper_doc_slack_share_details] + * - Available if .tag is paper_doc_slack_share_details. + * @property {TeamLogPaperDocTeamInviteDetails} [paper_doc_team_invite_details] + * - Available if .tag is paper_doc_team_invite_details. + * @property {TeamLogPaperDocTrashedDetails} [paper_doc_trashed_details] - + * Available if .tag is paper_doc_trashed_details. + * @property {TeamLogPaperDocUnresolveCommentDetails} + * [paper_doc_unresolve_comment_details] - Available if .tag is + * paper_doc_unresolve_comment_details. + * @property {TeamLogPaperDocUntrashedDetails} [paper_doc_untrashed_details] - + * Available if .tag is paper_doc_untrashed_details. + * @property {TeamLogPaperDocViewDetails} [paper_doc_view_details] - Available + * if .tag is paper_doc_view_details. + * @property {TeamLogPaperExternalViewAllowDetails} + * [paper_external_view_allow_details] - Available if .tag is + * paper_external_view_allow_details. + * @property {TeamLogPaperExternalViewDefaultTeamDetails} + * [paper_external_view_default_team_details] - Available if .tag is + * paper_external_view_default_team_details. + * @property {TeamLogPaperExternalViewForbidDetails} + * [paper_external_view_forbid_details] - Available if .tag is + * paper_external_view_forbid_details. + * @property {TeamLogPaperFolderChangeSubscriptionDetails} + * [paper_folder_change_subscription_details] - Available if .tag is + * paper_folder_change_subscription_details. + * @property {TeamLogPaperFolderDeletedDetails} [paper_folder_deleted_details] - + * Available if .tag is paper_folder_deleted_details. + * @property {TeamLogPaperFolderFollowedDetails} [paper_folder_followed_details] + * - Available if .tag is paper_folder_followed_details. + * @property {TeamLogPaperFolderTeamInviteDetails} + * [paper_folder_team_invite_details] - Available if .tag is + * paper_folder_team_invite_details. + * @property {TeamLogPaperPublishedLinkChangePermissionDetails} + * [paper_published_link_change_permission_details] - Available if .tag is + * paper_published_link_change_permission_details. + * @property {TeamLogPaperPublishedLinkCreateDetails} + * [paper_published_link_create_details] - Available if .tag is + * paper_published_link_create_details. + * @property {TeamLogPaperPublishedLinkDisabledDetails} + * [paper_published_link_disabled_details] - Available if .tag is + * paper_published_link_disabled_details. + * @property {TeamLogPaperPublishedLinkViewDetails} + * [paper_published_link_view_details] - Available if .tag is + * paper_published_link_view_details. + * @property {TeamLogPasswordChangeDetails} [password_change_details] - + * Available if .tag is password_change_details. + * @property {TeamLogPasswordResetDetails} [password_reset_details] - Available + * if .tag is password_reset_details. + * @property {TeamLogPasswordResetAllDetails} [password_reset_all_details] - + * Available if .tag is password_reset_all_details. + * @property {TeamLogClassificationCreateReportDetails} + * [classification_create_report_details] - Available if .tag is + * classification_create_report_details. + * @property {TeamLogClassificationCreateReportFailDetails} + * [classification_create_report_fail_details] - Available if .tag is + * classification_create_report_fail_details. + * @property {TeamLogEmmCreateExceptionsReportDetails} + * [emm_create_exceptions_report_details] - Available if .tag is + * emm_create_exceptions_report_details. + * @property {TeamLogEmmCreateUsageReportDetails} + * [emm_create_usage_report_details] - Available if .tag is + * emm_create_usage_report_details. + * @property {TeamLogExportMembersReportDetails} [export_members_report_details] + * - Available if .tag is export_members_report_details. + * @property {TeamLogExportMembersReportFailDetails} + * [export_members_report_fail_details] - Available if .tag is + * export_members_report_fail_details. + * @property {TeamLogExternalSharingCreateReportDetails} + * [external_sharing_create_report_details] - Available if .tag is + * external_sharing_create_report_details. + * @property {TeamLogExternalSharingReportFailedDetails} + * [external_sharing_report_failed_details] - Available if .tag is + * external_sharing_report_failed_details. + * @property {TeamLogNoExpirationLinkGenCreateReportDetails} + * [no_expiration_link_gen_create_report_details] - Available if .tag is + * no_expiration_link_gen_create_report_details. + * @property {TeamLogNoExpirationLinkGenReportFailedDetails} + * [no_expiration_link_gen_report_failed_details] - Available if .tag is + * no_expiration_link_gen_report_failed_details. + * @property {TeamLogNoPasswordLinkGenCreateReportDetails} + * [no_password_link_gen_create_report_details] - Available if .tag is + * no_password_link_gen_create_report_details. + * @property {TeamLogNoPasswordLinkGenReportFailedDetails} + * [no_password_link_gen_report_failed_details] - Available if .tag is + * no_password_link_gen_report_failed_details. + * @property {TeamLogNoPasswordLinkViewCreateReportDetails} + * [no_password_link_view_create_report_details] - Available if .tag is + * no_password_link_view_create_report_details. + * @property {TeamLogNoPasswordLinkViewReportFailedDetails} + * [no_password_link_view_report_failed_details] - Available if .tag is + * no_password_link_view_report_failed_details. + * @property {TeamLogOutdatedLinkViewCreateReportDetails} + * [outdated_link_view_create_report_details] - Available if .tag is + * outdated_link_view_create_report_details. + * @property {TeamLogOutdatedLinkViewReportFailedDetails} + * [outdated_link_view_report_failed_details] - Available if .tag is + * outdated_link_view_report_failed_details. + * @property {TeamLogPaperAdminExportStartDetails} + * [paper_admin_export_start_details] - Available if .tag is + * paper_admin_export_start_details. + * @property {TeamLogSmartSyncCreateAdminPrivilegeReportDetails} + * [smart_sync_create_admin_privilege_report_details] - Available if .tag is + * smart_sync_create_admin_privilege_report_details. + * @property {TeamLogTeamActivityCreateReportDetails} + * [team_activity_create_report_details] - Available if .tag is + * team_activity_create_report_details. + * @property {TeamLogTeamActivityCreateReportFailDetails} + * [team_activity_create_report_fail_details] - Available if .tag is + * team_activity_create_report_fail_details. + * @property {TeamLogCollectionShareDetails} [collection_share_details] - + * Available if .tag is collection_share_details. + * @property {TeamLogFileTransfersFileAddDetails} + * [file_transfers_file_add_details] - Available if .tag is + * file_transfers_file_add_details. + * @property {TeamLogFileTransfersTransferDeleteDetails} + * [file_transfers_transfer_delete_details] - Available if .tag is + * file_transfers_transfer_delete_details. + * @property {TeamLogFileTransfersTransferDownloadDetails} + * [file_transfers_transfer_download_details] - Available if .tag is + * file_transfers_transfer_download_details. + * @property {TeamLogFileTransfersTransferSendDetails} + * [file_transfers_transfer_send_details] - Available if .tag is + * file_transfers_transfer_send_details. + * @property {TeamLogFileTransfersTransferViewDetails} + * [file_transfers_transfer_view_details] - Available if .tag is + * file_transfers_transfer_view_details. + * @property {TeamLogNoteAclInviteOnlyDetails} [note_acl_invite_only_details] - + * Available if .tag is note_acl_invite_only_details. + * @property {TeamLogNoteAclLinkDetails} [note_acl_link_details] - Available if + * .tag is note_acl_link_details. + * @property {TeamLogNoteAclTeamLinkDetails} [note_acl_team_link_details] - + * Available if .tag is note_acl_team_link_details. + * @property {TeamLogNoteSharedDetails} [note_shared_details] - Available if + * .tag is note_shared_details. + * @property {TeamLogNoteShareReceiveDetails} [note_share_receive_details] - + * Available if .tag is note_share_receive_details. + * @property {TeamLogOpenNoteSharedDetails} [open_note_shared_details] - + * Available if .tag is open_note_shared_details. + * @property {TeamLogSfAddGroupDetails} [sf_add_group_details] - Available if + * .tag is sf_add_group_details. + * @property {TeamLogSfAllowNonMembersToViewSharedLinksDetails} + * [sf_allow_non_members_to_view_shared_links_details] - Available if .tag is + * sf_allow_non_members_to_view_shared_links_details. + * @property {TeamLogSfExternalInviteWarnDetails} + * [sf_external_invite_warn_details] - Available if .tag is + * sf_external_invite_warn_details. + * @property {TeamLogSfFbInviteDetails} [sf_fb_invite_details] - Available if + * .tag is sf_fb_invite_details. + * @property {TeamLogSfFbInviteChangeRoleDetails} + * [sf_fb_invite_change_role_details] - Available if .tag is + * sf_fb_invite_change_role_details. + * @property {TeamLogSfFbUninviteDetails} [sf_fb_uninvite_details] - Available + * if .tag is sf_fb_uninvite_details. + * @property {TeamLogSfInviteGroupDetails} [sf_invite_group_details] - Available + * if .tag is sf_invite_group_details. + * @property {TeamLogSfTeamGrantAccessDetails} [sf_team_grant_access_details] - + * Available if .tag is sf_team_grant_access_details. + * @property {TeamLogSfTeamInviteDetails} [sf_team_invite_details] - Available + * if .tag is sf_team_invite_details. + * @property {TeamLogSfTeamInviteChangeRoleDetails} + * [sf_team_invite_change_role_details] - Available if .tag is + * sf_team_invite_change_role_details. + * @property {TeamLogSfTeamJoinDetails} [sf_team_join_details] - Available if + * .tag is sf_team_join_details. + * @property {TeamLogSfTeamJoinFromOobLinkDetails} + * [sf_team_join_from_oob_link_details] - Available if .tag is + * sf_team_join_from_oob_link_details. + * @property {TeamLogSfTeamUninviteDetails} [sf_team_uninvite_details] - + * Available if .tag is sf_team_uninvite_details. + * @property {TeamLogSharedContentAddInviteesDetails} + * [shared_content_add_invitees_details] - Available if .tag is + * shared_content_add_invitees_details. + * @property {TeamLogSharedContentAddLinkExpiryDetails} + * [shared_content_add_link_expiry_details] - Available if .tag is + * shared_content_add_link_expiry_details. + * @property {TeamLogSharedContentAddLinkPasswordDetails} + * [shared_content_add_link_password_details] - Available if .tag is + * shared_content_add_link_password_details. + * @property {TeamLogSharedContentAddMemberDetails} + * [shared_content_add_member_details] - Available if .tag is + * shared_content_add_member_details. + * @property {TeamLogSharedContentChangeDownloadsPolicyDetails} + * [shared_content_change_downloads_policy_details] - Available if .tag is + * shared_content_change_downloads_policy_details. + * @property {TeamLogSharedContentChangeInviteeRoleDetails} + * [shared_content_change_invitee_role_details] - Available if .tag is + * shared_content_change_invitee_role_details. + * @property {TeamLogSharedContentChangeLinkAudienceDetails} + * [shared_content_change_link_audience_details] - Available if .tag is + * shared_content_change_link_audience_details. + * @property {TeamLogSharedContentChangeLinkExpiryDetails} + * [shared_content_change_link_expiry_details] - Available if .tag is + * shared_content_change_link_expiry_details. + * @property {TeamLogSharedContentChangeLinkPasswordDetails} + * [shared_content_change_link_password_details] - Available if .tag is + * shared_content_change_link_password_details. + * @property {TeamLogSharedContentChangeMemberRoleDetails} + * [shared_content_change_member_role_details] - Available if .tag is + * shared_content_change_member_role_details. + * @property {TeamLogSharedContentChangeViewerInfoPolicyDetails} + * [shared_content_change_viewer_info_policy_details] - Available if .tag is + * shared_content_change_viewer_info_policy_details. + * @property {TeamLogSharedContentClaimInvitationDetails} + * [shared_content_claim_invitation_details] - Available if .tag is + * shared_content_claim_invitation_details. + * @property {TeamLogSharedContentCopyDetails} [shared_content_copy_details] - + * Available if .tag is shared_content_copy_details. + * @property {TeamLogSharedContentDownloadDetails} + * [shared_content_download_details] - Available if .tag is + * shared_content_download_details. + * @property {TeamLogSharedContentRelinquishMembershipDetails} + * [shared_content_relinquish_membership_details] - Available if .tag is + * shared_content_relinquish_membership_details. + * @property {TeamLogSharedContentRemoveInviteesDetails} + * [shared_content_remove_invitees_details] - Available if .tag is + * shared_content_remove_invitees_details. + * @property {TeamLogSharedContentRemoveLinkExpiryDetails} + * [shared_content_remove_link_expiry_details] - Available if .tag is + * shared_content_remove_link_expiry_details. + * @property {TeamLogSharedContentRemoveLinkPasswordDetails} + * [shared_content_remove_link_password_details] - Available if .tag is + * shared_content_remove_link_password_details. + * @property {TeamLogSharedContentRemoveMemberDetails} + * [shared_content_remove_member_details] - Available if .tag is + * shared_content_remove_member_details. + * @property {TeamLogSharedContentRequestAccessDetails} + * [shared_content_request_access_details] - Available if .tag is + * shared_content_request_access_details. + * @property {TeamLogSharedContentRestoreInviteesDetails} + * [shared_content_restore_invitees_details] - Available if .tag is + * shared_content_restore_invitees_details. + * @property {TeamLogSharedContentRestoreMemberDetails} + * [shared_content_restore_member_details] - Available if .tag is + * shared_content_restore_member_details. + * @property {TeamLogSharedContentUnshareDetails} + * [shared_content_unshare_details] - Available if .tag is + * shared_content_unshare_details. + * @property {TeamLogSharedContentViewDetails} [shared_content_view_details] - + * Available if .tag is shared_content_view_details. + * @property {TeamLogSharedFolderChangeLinkPolicyDetails} + * [shared_folder_change_link_policy_details] - Available if .tag is + * shared_folder_change_link_policy_details. + * @property {TeamLogSharedFolderChangeMembersInheritancePolicyDetails} + * [shared_folder_change_members_inheritance_policy_details] - Available if .tag + * is shared_folder_change_members_inheritance_policy_details. + * @property {TeamLogSharedFolderChangeMembersManagementPolicyDetails} + * [shared_folder_change_members_management_policy_details] - Available if .tag + * is shared_folder_change_members_management_policy_details. + * @property {TeamLogSharedFolderChangeMembersPolicyDetails} + * [shared_folder_change_members_policy_details] - Available if .tag is + * shared_folder_change_members_policy_details. + * @property {TeamLogSharedFolderCreateDetails} [shared_folder_create_details] - + * Available if .tag is shared_folder_create_details. + * @property {TeamLogSharedFolderDeclineInvitationDetails} + * [shared_folder_decline_invitation_details] - Available if .tag is + * shared_folder_decline_invitation_details. + * @property {TeamLogSharedFolderMountDetails} [shared_folder_mount_details] - + * Available if .tag is shared_folder_mount_details. + * @property {TeamLogSharedFolderNestDetails} [shared_folder_nest_details] - + * Available if .tag is shared_folder_nest_details. + * @property {TeamLogSharedFolderTransferOwnershipDetails} + * [shared_folder_transfer_ownership_details] - Available if .tag is + * shared_folder_transfer_ownership_details. + * @property {TeamLogSharedFolderUnmountDetails} [shared_folder_unmount_details] + * - Available if .tag is shared_folder_unmount_details. + * @property {TeamLogSharedLinkAddExpiryDetails} + * [shared_link_add_expiry_details] - Available if .tag is + * shared_link_add_expiry_details. + * @property {TeamLogSharedLinkChangeExpiryDetails} + * [shared_link_change_expiry_details] - Available if .tag is + * shared_link_change_expiry_details. + * @property {TeamLogSharedLinkChangeVisibilityDetails} + * [shared_link_change_visibility_details] - Available if .tag is + * shared_link_change_visibility_details. + * @property {TeamLogSharedLinkCopyDetails} [shared_link_copy_details] - + * Available if .tag is shared_link_copy_details. + * @property {TeamLogSharedLinkCreateDetails} [shared_link_create_details] - + * Available if .tag is shared_link_create_details. + * @property {TeamLogSharedLinkDisableDetails} [shared_link_disable_details] - + * Available if .tag is shared_link_disable_details. + * @property {TeamLogSharedLinkDownloadDetails} [shared_link_download_details] - + * Available if .tag is shared_link_download_details. + * @property {TeamLogSharedLinkRemoveExpiryDetails} + * [shared_link_remove_expiry_details] - Available if .tag is + * shared_link_remove_expiry_details. + * @property {TeamLogSharedLinkSettingsAddExpirationDetails} + * [shared_link_settings_add_expiration_details] - Available if .tag is + * shared_link_settings_add_expiration_details. + * @property {TeamLogSharedLinkSettingsAddPasswordDetails} + * [shared_link_settings_add_password_details] - Available if .tag is + * shared_link_settings_add_password_details. + * @property {TeamLogSharedLinkSettingsAllowDownloadDisabledDetails} + * [shared_link_settings_allow_download_disabled_details] - Available if .tag is + * shared_link_settings_allow_download_disabled_details. + * @property {TeamLogSharedLinkSettingsAllowDownloadEnabledDetails} + * [shared_link_settings_allow_download_enabled_details] - Available if .tag is + * shared_link_settings_allow_download_enabled_details. + * @property {TeamLogSharedLinkSettingsChangeAudienceDetails} + * [shared_link_settings_change_audience_details] - Available if .tag is + * shared_link_settings_change_audience_details. + * @property {TeamLogSharedLinkSettingsChangeExpirationDetails} + * [shared_link_settings_change_expiration_details] - Available if .tag is + * shared_link_settings_change_expiration_details. + * @property {TeamLogSharedLinkSettingsChangePasswordDetails} + * [shared_link_settings_change_password_details] - Available if .tag is + * shared_link_settings_change_password_details. + * @property {TeamLogSharedLinkSettingsRemoveExpirationDetails} + * [shared_link_settings_remove_expiration_details] - Available if .tag is + * shared_link_settings_remove_expiration_details. + * @property {TeamLogSharedLinkSettingsRemovePasswordDetails} + * [shared_link_settings_remove_password_details] - Available if .tag is + * shared_link_settings_remove_password_details. + * @property {TeamLogSharedLinkShareDetails} [shared_link_share_details] - + * Available if .tag is shared_link_share_details. + * @property {TeamLogSharedLinkViewDetails} [shared_link_view_details] - + * Available if .tag is shared_link_view_details. + * @property {TeamLogSharedNoteOpenedDetails} [shared_note_opened_details] - + * Available if .tag is shared_note_opened_details. + * @property {TeamLogShmodelDisableDownloadsDetails} + * [shmodel_disable_downloads_details] - Available if .tag is + * shmodel_disable_downloads_details. + * @property {TeamLogShmodelEnableDownloadsDetails} + * [shmodel_enable_downloads_details] - Available if .tag is + * shmodel_enable_downloads_details. + * @property {TeamLogShmodelGroupShareDetails} [shmodel_group_share_details] - + * Available if .tag is shmodel_group_share_details. + * @property {TeamLogShowcaseAccessGrantedDetails} + * [showcase_access_granted_details] - Available if .tag is + * showcase_access_granted_details. + * @property {TeamLogShowcaseAddMemberDetails} [showcase_add_member_details] - + * Available if .tag is showcase_add_member_details. + * @property {TeamLogShowcaseArchivedDetails} [showcase_archived_details] - + * Available if .tag is showcase_archived_details. + * @property {TeamLogShowcaseCreatedDetails} [showcase_created_details] - + * Available if .tag is showcase_created_details. + * @property {TeamLogShowcaseDeleteCommentDetails} + * [showcase_delete_comment_details] - Available if .tag is + * showcase_delete_comment_details. + * @property {TeamLogShowcaseEditedDetails} [showcase_edited_details] - + * Available if .tag is showcase_edited_details. + * @property {TeamLogShowcaseEditCommentDetails} [showcase_edit_comment_details] + * - Available if .tag is showcase_edit_comment_details. + * @property {TeamLogShowcaseFileAddedDetails} [showcase_file_added_details] - + * Available if .tag is showcase_file_added_details. + * @property {TeamLogShowcaseFileDownloadDetails} + * [showcase_file_download_details] - Available if .tag is + * showcase_file_download_details. + * @property {TeamLogShowcaseFileRemovedDetails} [showcase_file_removed_details] + * - Available if .tag is showcase_file_removed_details. + * @property {TeamLogShowcaseFileViewDetails} [showcase_file_view_details] - + * Available if .tag is showcase_file_view_details. + * @property {TeamLogShowcasePermanentlyDeletedDetails} + * [showcase_permanently_deleted_details] - Available if .tag is + * showcase_permanently_deleted_details. + * @property {TeamLogShowcasePostCommentDetails} [showcase_post_comment_details] + * - Available if .tag is showcase_post_comment_details. + * @property {TeamLogShowcaseRemoveMemberDetails} + * [showcase_remove_member_details] - Available if .tag is + * showcase_remove_member_details. + * @property {TeamLogShowcaseRenamedDetails} [showcase_renamed_details] - + * Available if .tag is showcase_renamed_details. + * @property {TeamLogShowcaseRequestAccessDetails} + * [showcase_request_access_details] - Available if .tag is + * showcase_request_access_details. + * @property {TeamLogShowcaseResolveCommentDetails} + * [showcase_resolve_comment_details] - Available if .tag is + * showcase_resolve_comment_details. + * @property {TeamLogShowcaseRestoredDetails} [showcase_restored_details] - + * Available if .tag is showcase_restored_details. + * @property {TeamLogShowcaseTrashedDetails} [showcase_trashed_details] - + * Available if .tag is showcase_trashed_details. + * @property {TeamLogShowcaseTrashedDeprecatedDetails} + * [showcase_trashed_deprecated_details] - Available if .tag is + * showcase_trashed_deprecated_details. + * @property {TeamLogShowcaseUnresolveCommentDetails} + * [showcase_unresolve_comment_details] - Available if .tag is + * showcase_unresolve_comment_details. + * @property {TeamLogShowcaseUntrashedDetails} [showcase_untrashed_details] - + * Available if .tag is showcase_untrashed_details. + * @property {TeamLogShowcaseUntrashedDeprecatedDetails} + * [showcase_untrashed_deprecated_details] - Available if .tag is + * showcase_untrashed_deprecated_details. + * @property {TeamLogShowcaseViewDetails} [showcase_view_details] - Available if + * .tag is showcase_view_details. + * @property {TeamLogSsoAddCertDetails} [sso_add_cert_details] - Available if + * .tag is sso_add_cert_details. + * @property {TeamLogSsoAddLoginUrlDetails} [sso_add_login_url_details] - + * Available if .tag is sso_add_login_url_details. + * @property {TeamLogSsoAddLogoutUrlDetails} [sso_add_logout_url_details] - + * Available if .tag is sso_add_logout_url_details. + * @property {TeamLogSsoChangeCertDetails} [sso_change_cert_details] - Available + * if .tag is sso_change_cert_details. + * @property {TeamLogSsoChangeLoginUrlDetails} [sso_change_login_url_details] - + * Available if .tag is sso_change_login_url_details. + * @property {TeamLogSsoChangeLogoutUrlDetails} [sso_change_logout_url_details] + * - Available if .tag is sso_change_logout_url_details. + * @property {TeamLogSsoChangeSamlIdentityModeDetails} + * [sso_change_saml_identity_mode_details] - Available if .tag is + * sso_change_saml_identity_mode_details. + * @property {TeamLogSsoRemoveCertDetails} [sso_remove_cert_details] - Available + * if .tag is sso_remove_cert_details. + * @property {TeamLogSsoRemoveLoginUrlDetails} [sso_remove_login_url_details] - + * Available if .tag is sso_remove_login_url_details. + * @property {TeamLogSsoRemoveLogoutUrlDetails} [sso_remove_logout_url_details] + * - Available if .tag is sso_remove_logout_url_details. + * @property {TeamLogTeamFolderChangeStatusDetails} + * [team_folder_change_status_details] - Available if .tag is + * team_folder_change_status_details. + * @property {TeamLogTeamFolderCreateDetails} [team_folder_create_details] - + * Available if .tag is team_folder_create_details. + * @property {TeamLogTeamFolderDowngradeDetails} [team_folder_downgrade_details] + * - Available if .tag is team_folder_downgrade_details. + * @property {TeamLogTeamFolderPermanentlyDeleteDetails} + * [team_folder_permanently_delete_details] - Available if .tag is + * team_folder_permanently_delete_details. + * @property {TeamLogTeamFolderRenameDetails} [team_folder_rename_details] - + * Available if .tag is team_folder_rename_details. + * @property {TeamLogTeamSelectiveSyncSettingsChangedDetails} + * [team_selective_sync_settings_changed_details] - Available if .tag is + * team_selective_sync_settings_changed_details. + * @property {TeamLogAccountCaptureChangePolicyDetails} + * [account_capture_change_policy_details] - Available if .tag is + * account_capture_change_policy_details. + * @property {TeamLogAdminEmailRemindersChangedDetails} + * [admin_email_reminders_changed_details] - Available if .tag is + * admin_email_reminders_changed_details. + * @property {TeamLogAllowDownloadDisabledDetails} + * [allow_download_disabled_details] - Available if .tag is + * allow_download_disabled_details. + * @property {TeamLogAllowDownloadEnabledDetails} + * [allow_download_enabled_details] - Available if .tag is + * allow_download_enabled_details. + * @property {TeamLogAppPermissionsChangedDetails} + * [app_permissions_changed_details] - Available if .tag is + * app_permissions_changed_details. + * @property {TeamLogCameraUploadsPolicyChangedDetails} + * [camera_uploads_policy_changed_details] - Available if .tag is + * camera_uploads_policy_changed_details. + * @property {TeamLogCaptureTranscriptPolicyChangedDetails} + * [capture_transcript_policy_changed_details] - Available if .tag is + * capture_transcript_policy_changed_details. + * @property {TeamLogClassificationChangePolicyDetails} + * [classification_change_policy_details] - Available if .tag is + * classification_change_policy_details. + * @property {TeamLogComputerBackupPolicyChangedDetails} + * [computer_backup_policy_changed_details] - Available if .tag is + * computer_backup_policy_changed_details. + * @property {TeamLogContentAdministrationPolicyChangedDetails} + * [content_administration_policy_changed_details] - Available if .tag is + * content_administration_policy_changed_details. + * @property {TeamLogDataPlacementRestrictionChangePolicyDetails} + * [data_placement_restriction_change_policy_details] - Available if .tag is + * data_placement_restriction_change_policy_details. + * @property {TeamLogDataPlacementRestrictionSatisfyPolicyDetails} + * [data_placement_restriction_satisfy_policy_details] - Available if .tag is + * data_placement_restriction_satisfy_policy_details. + * @property {TeamLogDeviceApprovalsAddExceptionDetails} + * [device_approvals_add_exception_details] - Available if .tag is + * device_approvals_add_exception_details. + * @property {TeamLogDeviceApprovalsChangeDesktopPolicyDetails} + * [device_approvals_change_desktop_policy_details] - Available if .tag is + * device_approvals_change_desktop_policy_details. + * @property {TeamLogDeviceApprovalsChangeMobilePolicyDetails} + * [device_approvals_change_mobile_policy_details] - Available if .tag is + * device_approvals_change_mobile_policy_details. + * @property {TeamLogDeviceApprovalsChangeOverageActionDetails} + * [device_approvals_change_overage_action_details] - Available if .tag is + * device_approvals_change_overage_action_details. + * @property {TeamLogDeviceApprovalsChangeUnlinkActionDetails} + * [device_approvals_change_unlink_action_details] - Available if .tag is + * device_approvals_change_unlink_action_details. + * @property {TeamLogDeviceApprovalsRemoveExceptionDetails} + * [device_approvals_remove_exception_details] - Available if .tag is + * device_approvals_remove_exception_details. + * @property {TeamLogDirectoryRestrictionsAddMembersDetails} + * [directory_restrictions_add_members_details] - Available if .tag is + * directory_restrictions_add_members_details. + * @property {TeamLogDirectoryRestrictionsRemoveMembersDetails} + * [directory_restrictions_remove_members_details] - Available if .tag is + * directory_restrictions_remove_members_details. + * @property {TeamLogDropboxPasswordsPolicyChangedDetails} + * [dropbox_passwords_policy_changed_details] - Available if .tag is + * dropbox_passwords_policy_changed_details. + * @property {TeamLogEmailIngestPolicyChangedDetails} + * [email_ingest_policy_changed_details] - Available if .tag is + * email_ingest_policy_changed_details. + * @property {TeamLogEmmAddExceptionDetails} [emm_add_exception_details] - + * Available if .tag is emm_add_exception_details. + * @property {TeamLogEmmChangePolicyDetails} [emm_change_policy_details] - + * Available if .tag is emm_change_policy_details. + * @property {TeamLogEmmRemoveExceptionDetails} [emm_remove_exception_details] - + * Available if .tag is emm_remove_exception_details. + * @property {TeamLogExtendedVersionHistoryChangePolicyDetails} + * [extended_version_history_change_policy_details] - Available if .tag is + * extended_version_history_change_policy_details. + * @property {TeamLogExternalDriveBackupPolicyChangedDetails} + * [external_drive_backup_policy_changed_details] - Available if .tag is + * external_drive_backup_policy_changed_details. + * @property {TeamLogFileCommentsChangePolicyDetails} + * [file_comments_change_policy_details] - Available if .tag is + * file_comments_change_policy_details. + * @property {TeamLogFileLockingPolicyChangedDetails} + * [file_locking_policy_changed_details] - Available if .tag is + * file_locking_policy_changed_details. + * @property {TeamLogFileProviderMigrationPolicyChangedDetails} + * [file_provider_migration_policy_changed_details] - Available if .tag is + * file_provider_migration_policy_changed_details. + * @property {TeamLogFileRequestsChangePolicyDetails} + * [file_requests_change_policy_details] - Available if .tag is + * file_requests_change_policy_details. + * @property {TeamLogFileRequestsEmailsEnabledDetails} + * [file_requests_emails_enabled_details] - Available if .tag is + * file_requests_emails_enabled_details. + * @property {TeamLogFileRequestsEmailsRestrictedToTeamOnlyDetails} + * [file_requests_emails_restricted_to_team_only_details] - Available if .tag is + * file_requests_emails_restricted_to_team_only_details. + * @property {TeamLogFileTransfersPolicyChangedDetails} + * [file_transfers_policy_changed_details] - Available if .tag is + * file_transfers_policy_changed_details. + * @property {TeamLogFolderLinkRestrictionPolicyChangedDetails} + * [folder_link_restriction_policy_changed_details] - Available if .tag is + * folder_link_restriction_policy_changed_details. + * @property {TeamLogGoogleSsoChangePolicyDetails} + * [google_sso_change_policy_details] - Available if .tag is + * google_sso_change_policy_details. + * @property {TeamLogGroupUserManagementChangePolicyDetails} + * [group_user_management_change_policy_details] - Available if .tag is + * group_user_management_change_policy_details. + * @property {TeamLogIntegrationPolicyChangedDetails} + * [integration_policy_changed_details] - Available if .tag is + * integration_policy_changed_details. + * @property {TeamLogInviteAcceptanceEmailPolicyChangedDetails} + * [invite_acceptance_email_policy_changed_details] - Available if .tag is + * invite_acceptance_email_policy_changed_details. + * @property {TeamLogMemberRequestsChangePolicyDetails} + * [member_requests_change_policy_details] - Available if .tag is + * member_requests_change_policy_details. + * @property {TeamLogMemberSendInvitePolicyChangedDetails} + * [member_send_invite_policy_changed_details] - Available if .tag is + * member_send_invite_policy_changed_details. + * @property {TeamLogMemberSpaceLimitsAddExceptionDetails} + * [member_space_limits_add_exception_details] - Available if .tag is + * member_space_limits_add_exception_details. + * @property {TeamLogMemberSpaceLimitsChangeCapsTypePolicyDetails} + * [member_space_limits_change_caps_type_policy_details] - Available if .tag is + * member_space_limits_change_caps_type_policy_details. + * @property {TeamLogMemberSpaceLimitsChangePolicyDetails} + * [member_space_limits_change_policy_details] - Available if .tag is + * member_space_limits_change_policy_details. + * @property {TeamLogMemberSpaceLimitsRemoveExceptionDetails} + * [member_space_limits_remove_exception_details] - Available if .tag is + * member_space_limits_remove_exception_details. + * @property {TeamLogMemberSuggestionsChangePolicyDetails} + * [member_suggestions_change_policy_details] - Available if .tag is + * member_suggestions_change_policy_details. + * @property {TeamLogMicrosoftOfficeAddinChangePolicyDetails} + * [microsoft_office_addin_change_policy_details] - Available if .tag is + * microsoft_office_addin_change_policy_details. + * @property {TeamLogNetworkControlChangePolicyDetails} + * [network_control_change_policy_details] - Available if .tag is + * network_control_change_policy_details. + * @property {TeamLogPaperChangeDeploymentPolicyDetails} + * [paper_change_deployment_policy_details] - Available if .tag is + * paper_change_deployment_policy_details. + * @property {TeamLogPaperChangeMemberLinkPolicyDetails} + * [paper_change_member_link_policy_details] - Available if .tag is + * paper_change_member_link_policy_details. + * @property {TeamLogPaperChangeMemberPolicyDetails} + * [paper_change_member_policy_details] - Available if .tag is + * paper_change_member_policy_details. + * @property {TeamLogPaperChangePolicyDetails} [paper_change_policy_details] - + * Available if .tag is paper_change_policy_details. + * @property {TeamLogPaperDefaultFolderPolicyChangedDetails} + * [paper_default_folder_policy_changed_details] - Available if .tag is + * paper_default_folder_policy_changed_details. + * @property {TeamLogPaperDesktopPolicyChangedDetails} + * [paper_desktop_policy_changed_details] - Available if .tag is + * paper_desktop_policy_changed_details. + * @property {TeamLogPaperEnabledUsersGroupAdditionDetails} + * [paper_enabled_users_group_addition_details] - Available if .tag is + * paper_enabled_users_group_addition_details. + * @property {TeamLogPaperEnabledUsersGroupRemovalDetails} + * [paper_enabled_users_group_removal_details] - Available if .tag is + * paper_enabled_users_group_removal_details. + * @property {TeamLogPasswordStrengthRequirementsChangePolicyDetails} + * [password_strength_requirements_change_policy_details] - Available if .tag is + * password_strength_requirements_change_policy_details. + * @property {TeamLogPermanentDeleteChangePolicyDetails} + * [permanent_delete_change_policy_details] - Available if .tag is + * permanent_delete_change_policy_details. + * @property {TeamLogResellerSupportChangePolicyDetails} + * [reseller_support_change_policy_details] - Available if .tag is + * reseller_support_change_policy_details. + * @property {TeamLogRewindPolicyChangedDetails} [rewind_policy_changed_details] + * - Available if .tag is rewind_policy_changed_details. + * @property {TeamLogSendForSignaturePolicyChangedDetails} + * [send_for_signature_policy_changed_details] - Available if .tag is + * send_for_signature_policy_changed_details. + * @property {TeamLogSharingChangeFolderJoinPolicyDetails} + * [sharing_change_folder_join_policy_details] - Available if .tag is + * sharing_change_folder_join_policy_details. + * @property {TeamLogSharingChangeLinkAllowChangeExpirationPolicyDetails} + * [sharing_change_link_allow_change_expiration_policy_details] - Available if + * .tag is sharing_change_link_allow_change_expiration_policy_details. + * @property {TeamLogSharingChangeLinkDefaultExpirationPolicyDetails} + * [sharing_change_link_default_expiration_policy_details] - Available if .tag + * is sharing_change_link_default_expiration_policy_details. + * @property {TeamLogSharingChangeLinkEnforcePasswordPolicyDetails} + * [sharing_change_link_enforce_password_policy_details] - Available if .tag is + * sharing_change_link_enforce_password_policy_details. + * @property {TeamLogSharingChangeLinkPolicyDetails} + * [sharing_change_link_policy_details] - Available if .tag is + * sharing_change_link_policy_details. + * @property {TeamLogSharingChangeMemberPolicyDetails} + * [sharing_change_member_policy_details] - Available if .tag is + * sharing_change_member_policy_details. + * @property {TeamLogShowcaseChangeDownloadPolicyDetails} + * [showcase_change_download_policy_details] - Available if .tag is + * showcase_change_download_policy_details. + * @property {TeamLogShowcaseChangeEnabledPolicyDetails} + * [showcase_change_enabled_policy_details] - Available if .tag is + * showcase_change_enabled_policy_details. + * @property {TeamLogShowcaseChangeExternalSharingPolicyDetails} + * [showcase_change_external_sharing_policy_details] - Available if .tag is + * showcase_change_external_sharing_policy_details. + * @property {TeamLogSmarterSmartSyncPolicyChangedDetails} + * [smarter_smart_sync_policy_changed_details] - Available if .tag is + * smarter_smart_sync_policy_changed_details. + * @property {TeamLogSmartSyncChangePolicyDetails} + * [smart_sync_change_policy_details] - Available if .tag is + * smart_sync_change_policy_details. + * @property {TeamLogSmartSyncNotOptOutDetails} [smart_sync_not_opt_out_details] + * - Available if .tag is smart_sync_not_opt_out_details. + * @property {TeamLogSmartSyncOptOutDetails} [smart_sync_opt_out_details] - + * Available if .tag is smart_sync_opt_out_details. + * @property {TeamLogSsoChangePolicyDetails} [sso_change_policy_details] - + * Available if .tag is sso_change_policy_details. + * @property {TeamLogTeamBrandingPolicyChangedDetails} + * [team_branding_policy_changed_details] - Available if .tag is + * team_branding_policy_changed_details. + * @property {TeamLogTeamExtensionsPolicyChangedDetails} + * [team_extensions_policy_changed_details] - Available if .tag is + * team_extensions_policy_changed_details. + * @property {TeamLogTeamSelectiveSyncPolicyChangedDetails} + * [team_selective_sync_policy_changed_details] - Available if .tag is + * team_selective_sync_policy_changed_details. + * @property {TeamLogTeamSharingWhitelistSubjectsChangedDetails} + * [team_sharing_whitelist_subjects_changed_details] - Available if .tag is + * team_sharing_whitelist_subjects_changed_details. + * @property {TeamLogTfaAddExceptionDetails} [tfa_add_exception_details] - + * Available if .tag is tfa_add_exception_details. + * @property {TeamLogTfaChangePolicyDetails} [tfa_change_policy_details] - + * Available if .tag is tfa_change_policy_details. + * @property {TeamLogTfaRemoveExceptionDetails} [tfa_remove_exception_details] - + * Available if .tag is tfa_remove_exception_details. + * @property {TeamLogTwoAccountChangePolicyDetails} + * [two_account_change_policy_details] - Available if .tag is + * two_account_change_policy_details. + * @property {TeamLogViewerInfoPolicyChangedDetails} + * [viewer_info_policy_changed_details] - Available if .tag is + * viewer_info_policy_changed_details. + * @property {TeamLogWatermarkingPolicyChangedDetails} + * [watermarking_policy_changed_details] - Available if .tag is + * watermarking_policy_changed_details. + * @property {TeamLogWebSessionsChangeActiveSessionLimitDetails} + * [web_sessions_change_active_session_limit_details] - Available if .tag is + * web_sessions_change_active_session_limit_details. + * @property {TeamLogWebSessionsChangeFixedLengthPolicyDetails} + * [web_sessions_change_fixed_length_policy_details] - Available if .tag is + * web_sessions_change_fixed_length_policy_details. + * @property {TeamLogWebSessionsChangeIdleLengthPolicyDetails} + * [web_sessions_change_idle_length_policy_details] - Available if .tag is + * web_sessions_change_idle_length_policy_details. + * @property {TeamLogDataResidencyMigrationRequestSuccessfulDetails} + * [data_residency_migration_request_successful_details] - Available if .tag is + * data_residency_migration_request_successful_details. + * @property {TeamLogDataResidencyMigrationRequestUnsuccessfulDetails} + * [data_residency_migration_request_unsuccessful_details] - Available if .tag + * is data_residency_migration_request_unsuccessful_details. + * @property {TeamLogTeamMergeFromDetails} [team_merge_from_details] - Available + * if .tag is team_merge_from_details. + * @property {TeamLogTeamMergeToDetails} [team_merge_to_details] - Available if + * .tag is team_merge_to_details. + * @property {TeamLogTeamProfileAddBackgroundDetails} + * [team_profile_add_background_details] - Available if .tag is + * team_profile_add_background_details. + * @property {TeamLogTeamProfileAddLogoDetails} [team_profile_add_logo_details] + * - Available if .tag is team_profile_add_logo_details. + * @property {TeamLogTeamProfileChangeBackgroundDetails} + * [team_profile_change_background_details] - Available if .tag is + * team_profile_change_background_details. + * @property {TeamLogTeamProfileChangeDefaultLanguageDetails} + * [team_profile_change_default_language_details] - Available if .tag is + * team_profile_change_default_language_details. + * @property {TeamLogTeamProfileChangeLogoDetails} + * [team_profile_change_logo_details] - Available if .tag is + * team_profile_change_logo_details. + * @property {TeamLogTeamProfileChangeNameDetails} + * [team_profile_change_name_details] - Available if .tag is + * team_profile_change_name_details. + * @property {TeamLogTeamProfileRemoveBackgroundDetails} + * [team_profile_remove_background_details] - Available if .tag is + * team_profile_remove_background_details. + * @property {TeamLogTeamProfileRemoveLogoDetails} + * [team_profile_remove_logo_details] - Available if .tag is + * team_profile_remove_logo_details. + * @property {TeamLogTfaAddBackupPhoneDetails} [tfa_add_backup_phone_details] - + * Available if .tag is tfa_add_backup_phone_details. + * @property {TeamLogTfaAddSecurityKeyDetails} [tfa_add_security_key_details] - + * Available if .tag is tfa_add_security_key_details. + * @property {TeamLogTfaChangeBackupPhoneDetails} + * [tfa_change_backup_phone_details] - Available if .tag is + * tfa_change_backup_phone_details. + * @property {TeamLogTfaChangeStatusDetails} [tfa_change_status_details] - + * Available if .tag is tfa_change_status_details. + * @property {TeamLogTfaRemoveBackupPhoneDetails} + * [tfa_remove_backup_phone_details] - Available if .tag is + * tfa_remove_backup_phone_details. + * @property {TeamLogTfaRemoveSecurityKeyDetails} + * [tfa_remove_security_key_details] - Available if .tag is + * tfa_remove_security_key_details. + * @property {TeamLogTfaResetDetails} [tfa_reset_details] - Available if .tag is + * tfa_reset_details. + * @property {TeamLogChangedEnterpriseAdminRoleDetails} + * [changed_enterprise_admin_role_details] - Available if .tag is + * changed_enterprise_admin_role_details. + * @property {TeamLogChangedEnterpriseConnectedTeamStatusDetails} + * [changed_enterprise_connected_team_status_details] - Available if .tag is + * changed_enterprise_connected_team_status_details. + * @property {TeamLogEndedEnterpriseAdminSessionDetails} + * [ended_enterprise_admin_session_details] - Available if .tag is + * ended_enterprise_admin_session_details. + * @property {TeamLogEndedEnterpriseAdminSessionDeprecatedDetails} + * [ended_enterprise_admin_session_deprecated_details] - Available if .tag is + * ended_enterprise_admin_session_deprecated_details. + * @property {TeamLogEnterpriseSettingsLockingDetails} + * [enterprise_settings_locking_details] - Available if .tag is + * enterprise_settings_locking_details. + * @property {TeamLogGuestAdminChangeStatusDetails} + * [guest_admin_change_status_details] - Available if .tag is + * guest_admin_change_status_details. + * @property {TeamLogStartedEnterpriseAdminSessionDetails} + * [started_enterprise_admin_session_details] - Available if .tag is + * started_enterprise_admin_session_details. + * @property {TeamLogTeamMergeRequestAcceptedDetails} + * [team_merge_request_accepted_details] - Available if .tag is + * team_merge_request_accepted_details. + * @property {TeamLogTeamMergeRequestAcceptedShownToPrimaryTeamDetails} + * [team_merge_request_accepted_shown_to_primary_team_details] - Available if + * .tag is team_merge_request_accepted_shown_to_primary_team_details. + * @property {TeamLogTeamMergeRequestAcceptedShownToSecondaryTeamDetails} + * [team_merge_request_accepted_shown_to_secondary_team_details] - Available if + * .tag is team_merge_request_accepted_shown_to_secondary_team_details. + * @property {TeamLogTeamMergeRequestAutoCanceledDetails} + * [team_merge_request_auto_canceled_details] - Available if .tag is + * team_merge_request_auto_canceled_details. + * @property {TeamLogTeamMergeRequestCanceledDetails} + * [team_merge_request_canceled_details] - Available if .tag is + * team_merge_request_canceled_details. + * @property {TeamLogTeamMergeRequestCanceledShownToPrimaryTeamDetails} + * [team_merge_request_canceled_shown_to_primary_team_details] - Available if + * .tag is team_merge_request_canceled_shown_to_primary_team_details. + * @property {TeamLogTeamMergeRequestCanceledShownToSecondaryTeamDetails} + * [team_merge_request_canceled_shown_to_secondary_team_details] - Available if + * .tag is team_merge_request_canceled_shown_to_secondary_team_details. + * @property {TeamLogTeamMergeRequestExpiredDetails} + * [team_merge_request_expired_details] - Available if .tag is + * team_merge_request_expired_details. + * @property {TeamLogTeamMergeRequestExpiredShownToPrimaryTeamDetails} + * [team_merge_request_expired_shown_to_primary_team_details] - Available if + * .tag is team_merge_request_expired_shown_to_primary_team_details. + * @property {TeamLogTeamMergeRequestExpiredShownToSecondaryTeamDetails} + * [team_merge_request_expired_shown_to_secondary_team_details] - Available if + * .tag is team_merge_request_expired_shown_to_secondary_team_details. + * @property {TeamLogTeamMergeRequestRejectedShownToPrimaryTeamDetails} + * [team_merge_request_rejected_shown_to_primary_team_details] - Available if + * .tag is team_merge_request_rejected_shown_to_primary_team_details. + * @property {TeamLogTeamMergeRequestRejectedShownToSecondaryTeamDetails} + * [team_merge_request_rejected_shown_to_secondary_team_details] - Available if + * .tag is team_merge_request_rejected_shown_to_secondary_team_details. + * @property {TeamLogTeamMergeRequestReminderDetails} + * [team_merge_request_reminder_details] - Available if .tag is + * team_merge_request_reminder_details. + * @property {TeamLogTeamMergeRequestReminderShownToPrimaryTeamDetails} + * [team_merge_request_reminder_shown_to_primary_team_details] - Available if + * .tag is team_merge_request_reminder_shown_to_primary_team_details. + * @property {TeamLogTeamMergeRequestReminderShownToSecondaryTeamDetails} + * [team_merge_request_reminder_shown_to_secondary_team_details] - Available if + * .tag is team_merge_request_reminder_shown_to_secondary_team_details. + * @property {TeamLogTeamMergeRequestRevokedDetails} + * [team_merge_request_revoked_details] - Available if .tag is + * team_merge_request_revoked_details. + * @property {TeamLogTeamMergeRequestSentShownToPrimaryTeamDetails} + * [team_merge_request_sent_shown_to_primary_team_details] - Available if .tag + * is team_merge_request_sent_shown_to_primary_team_details. + * @property {TeamLogTeamMergeRequestSentShownToSecondaryTeamDetails} + * [team_merge_request_sent_shown_to_secondary_team_details] - Available if .tag + * is team_merge_request_sent_shown_to_secondary_team_details. + * @property {TeamLogMissingDetails} [missing_details] - Available if .tag is + * missing_details. Hints that this event was returned with missing details due + * to an internal error. + * @property {('admin_alerting_alert_state_changed_details'|'admin_alerting_changed_alert_config_details'|'admin_alerting_triggered_alert_details'|'app_blocked_by_permissions_details'|'app_link_team_details'|'app_link_user_details'|'app_unlink_team_details'|'app_unlink_user_details'|'integration_connected_details'|'integration_disconnected_details'|'file_add_comment_details'|'file_change_comment_subscription_details'|'file_delete_comment_details'|'file_edit_comment_details'|'file_like_comment_details'|'file_resolve_comment_details'|'file_unlike_comment_details'|'file_unresolve_comment_details'|'governance_policy_add_folders_details'|'governance_policy_add_folder_failed_details'|'governance_policy_content_disposed_details'|'governance_policy_create_details'|'governance_policy_delete_details'|'governance_policy_edit_details_details'|'governance_policy_edit_duration_details'|'governance_policy_export_created_details'|'governance_policy_export_removed_details'|'governance_policy_remove_folders_details'|'governance_policy_report_created_details'|'governance_policy_zip_part_downloaded_details'|'legal_holds_activate_a_hold_details'|'legal_holds_add_members_details'|'legal_holds_change_hold_details_details'|'legal_holds_change_hold_name_details'|'legal_holds_export_a_hold_details'|'legal_holds_export_cancelled_details'|'legal_holds_export_downloaded_details'|'legal_holds_export_removed_details'|'legal_holds_release_a_hold_details'|'legal_holds_remove_members_details'|'legal_holds_report_a_hold_details'|'device_change_ip_desktop_details'|'device_change_ip_mobile_details'|'device_change_ip_web_details'|'device_delete_on_unlink_fail_details'|'device_delete_on_unlink_success_details'|'device_link_fail_details'|'device_link_success_details'|'device_management_disabled_details'|'device_management_enabled_details'|'device_sync_backup_status_changed_details'|'device_unlink_details'|'dropbox_passwords_exported_details'|'dropbox_passwords_new_device_enrolled_details'|'emm_refresh_auth_token_details'|'external_drive_backup_eligibility_status_checked_details'|'external_drive_backup_status_changed_details'|'account_capture_change_availability_details'|'account_capture_migrate_account_details'|'account_capture_notification_emails_sent_details'|'account_capture_relinquish_account_details'|'disabled_domain_invites_details'|'domain_invites_approve_request_to_join_team_details'|'domain_invites_decline_request_to_join_team_details'|'domain_invites_email_existing_users_details'|'domain_invites_request_to_join_team_details'|'domain_invites_set_invite_new_user_pref_to_no_details'|'domain_invites_set_invite_new_user_pref_to_yes_details'|'domain_verification_add_domain_fail_details'|'domain_verification_add_domain_success_details'|'domain_verification_remove_domain_details'|'enabled_domain_invites_details'|'apply_naming_convention_details'|'create_folder_details'|'file_add_details'|'file_copy_details'|'file_delete_details'|'file_download_details'|'file_edit_details'|'file_get_copy_reference_details'|'file_locking_lock_status_changed_details'|'file_move_details'|'file_permanently_delete_details'|'file_preview_details'|'file_rename_details'|'file_restore_details'|'file_revert_details'|'file_rollback_changes_details'|'file_save_copy_reference_details'|'folder_overview_description_changed_details'|'folder_overview_item_pinned_details'|'folder_overview_item_unpinned_details'|'object_label_added_details'|'object_label_removed_details'|'object_label_updated_value_details'|'organize_folder_with_tidy_details'|'rewind_folder_details'|'undo_naming_convention_details'|'undo_organize_folder_with_tidy_details'|'user_tags_added_details'|'user_tags_removed_details'|'email_ingest_receive_file_details'|'file_request_change_details'|'file_request_close_details'|'file_request_create_details'|'file_request_delete_details'|'file_request_receive_file_details'|'group_add_external_id_details'|'group_add_member_details'|'group_change_external_id_details'|'group_change_management_type_details'|'group_change_member_role_details'|'group_create_details'|'group_delete_details'|'group_description_updated_details'|'group_join_policy_updated_details'|'group_moved_details'|'group_remove_external_id_details'|'group_remove_member_details'|'group_rename_details'|'account_lock_or_unlocked_details'|'emm_error_details'|'guest_admin_signed_in_via_trusted_teams_details'|'guest_admin_signed_out_via_trusted_teams_details'|'login_fail_details'|'login_success_details'|'logout_details'|'reseller_support_session_end_details'|'reseller_support_session_start_details'|'sign_in_as_session_end_details'|'sign_in_as_session_start_details'|'sso_error_details'|'create_team_invite_link_details'|'delete_team_invite_link_details'|'member_add_external_id_details'|'member_add_name_details'|'member_change_admin_role_details'|'member_change_email_details'|'member_change_external_id_details'|'member_change_membership_type_details'|'member_change_name_details'|'member_change_reseller_role_details'|'member_change_status_details'|'member_delete_manual_contacts_details'|'member_delete_profile_photo_details'|'member_permanently_delete_account_contents_details'|'member_remove_external_id_details'|'member_set_profile_photo_details'|'member_space_limits_add_custom_quota_details'|'member_space_limits_change_custom_quota_details'|'member_space_limits_change_status_details'|'member_space_limits_remove_custom_quota_details'|'member_suggest_details'|'member_transfer_account_contents_details'|'pending_secondary_email_added_details'|'secondary_email_deleted_details'|'secondary_email_verified_details'|'secondary_mails_policy_changed_details'|'binder_add_page_details'|'binder_add_section_details'|'binder_remove_page_details'|'binder_remove_section_details'|'binder_rename_page_details'|'binder_rename_section_details'|'binder_reorder_page_details'|'binder_reorder_section_details'|'paper_content_add_member_details'|'paper_content_add_to_folder_details'|'paper_content_archive_details'|'paper_content_create_details'|'paper_content_permanently_delete_details'|'paper_content_remove_from_folder_details'|'paper_content_remove_member_details'|'paper_content_rename_details'|'paper_content_restore_details'|'paper_doc_add_comment_details'|'paper_doc_change_member_role_details'|'paper_doc_change_sharing_policy_details'|'paper_doc_change_subscription_details'|'paper_doc_deleted_details'|'paper_doc_delete_comment_details'|'paper_doc_download_details'|'paper_doc_edit_details'|'paper_doc_edit_comment_details'|'paper_doc_followed_details'|'paper_doc_mention_details'|'paper_doc_ownership_changed_details'|'paper_doc_request_access_details'|'paper_doc_resolve_comment_details'|'paper_doc_revert_details'|'paper_doc_slack_share_details'|'paper_doc_team_invite_details'|'paper_doc_trashed_details'|'paper_doc_unresolve_comment_details'|'paper_doc_untrashed_details'|'paper_doc_view_details'|'paper_external_view_allow_details'|'paper_external_view_default_team_details'|'paper_external_view_forbid_details'|'paper_folder_change_subscription_details'|'paper_folder_deleted_details'|'paper_folder_followed_details'|'paper_folder_team_invite_details'|'paper_published_link_change_permission_details'|'paper_published_link_create_details'|'paper_published_link_disabled_details'|'paper_published_link_view_details'|'password_change_details'|'password_reset_details'|'password_reset_all_details'|'classification_create_report_details'|'classification_create_report_fail_details'|'emm_create_exceptions_report_details'|'emm_create_usage_report_details'|'export_members_report_details'|'export_members_report_fail_details'|'external_sharing_create_report_details'|'external_sharing_report_failed_details'|'no_expiration_link_gen_create_report_details'|'no_expiration_link_gen_report_failed_details'|'no_password_link_gen_create_report_details'|'no_password_link_gen_report_failed_details'|'no_password_link_view_create_report_details'|'no_password_link_view_report_failed_details'|'outdated_link_view_create_report_details'|'outdated_link_view_report_failed_details'|'paper_admin_export_start_details'|'smart_sync_create_admin_privilege_report_details'|'team_activity_create_report_details'|'team_activity_create_report_fail_details'|'collection_share_details'|'file_transfers_file_add_details'|'file_transfers_transfer_delete_details'|'file_transfers_transfer_download_details'|'file_transfers_transfer_send_details'|'file_transfers_transfer_view_details'|'note_acl_invite_only_details'|'note_acl_link_details'|'note_acl_team_link_details'|'note_shared_details'|'note_share_receive_details'|'open_note_shared_details'|'sf_add_group_details'|'sf_allow_non_members_to_view_shared_links_details'|'sf_external_invite_warn_details'|'sf_fb_invite_details'|'sf_fb_invite_change_role_details'|'sf_fb_uninvite_details'|'sf_invite_group_details'|'sf_team_grant_access_details'|'sf_team_invite_details'|'sf_team_invite_change_role_details'|'sf_team_join_details'|'sf_team_join_from_oob_link_details'|'sf_team_uninvite_details'|'shared_content_add_invitees_details'|'shared_content_add_link_expiry_details'|'shared_content_add_link_password_details'|'shared_content_add_member_details'|'shared_content_change_downloads_policy_details'|'shared_content_change_invitee_role_details'|'shared_content_change_link_audience_details'|'shared_content_change_link_expiry_details'|'shared_content_change_link_password_details'|'shared_content_change_member_role_details'|'shared_content_change_viewer_info_policy_details'|'shared_content_claim_invitation_details'|'shared_content_copy_details'|'shared_content_download_details'|'shared_content_relinquish_membership_details'|'shared_content_remove_invitees_details'|'shared_content_remove_link_expiry_details'|'shared_content_remove_link_password_details'|'shared_content_remove_member_details'|'shared_content_request_access_details'|'shared_content_restore_invitees_details'|'shared_content_restore_member_details'|'shared_content_unshare_details'|'shared_content_view_details'|'shared_folder_change_link_policy_details'|'shared_folder_change_members_inheritance_policy_details'|'shared_folder_change_members_management_policy_details'|'shared_folder_change_members_policy_details'|'shared_folder_create_details'|'shared_folder_decline_invitation_details'|'shared_folder_mount_details'|'shared_folder_nest_details'|'shared_folder_transfer_ownership_details'|'shared_folder_unmount_details'|'shared_link_add_expiry_details'|'shared_link_change_expiry_details'|'shared_link_change_visibility_details'|'shared_link_copy_details'|'shared_link_create_details'|'shared_link_disable_details'|'shared_link_download_details'|'shared_link_remove_expiry_details'|'shared_link_settings_add_expiration_details'|'shared_link_settings_add_password_details'|'shared_link_settings_allow_download_disabled_details'|'shared_link_settings_allow_download_enabled_details'|'shared_link_settings_change_audience_details'|'shared_link_settings_change_expiration_details'|'shared_link_settings_change_password_details'|'shared_link_settings_remove_expiration_details'|'shared_link_settings_remove_password_details'|'shared_link_share_details'|'shared_link_view_details'|'shared_note_opened_details'|'shmodel_disable_downloads_details'|'shmodel_enable_downloads_details'|'shmodel_group_share_details'|'showcase_access_granted_details'|'showcase_add_member_details'|'showcase_archived_details'|'showcase_created_details'|'showcase_delete_comment_details'|'showcase_edited_details'|'showcase_edit_comment_details'|'showcase_file_added_details'|'showcase_file_download_details'|'showcase_file_removed_details'|'showcase_file_view_details'|'showcase_permanently_deleted_details'|'showcase_post_comment_details'|'showcase_remove_member_details'|'showcase_renamed_details'|'showcase_request_access_details'|'showcase_resolve_comment_details'|'showcase_restored_details'|'showcase_trashed_details'|'showcase_trashed_deprecated_details'|'showcase_unresolve_comment_details'|'showcase_untrashed_details'|'showcase_untrashed_deprecated_details'|'showcase_view_details'|'sso_add_cert_details'|'sso_add_login_url_details'|'sso_add_logout_url_details'|'sso_change_cert_details'|'sso_change_login_url_details'|'sso_change_logout_url_details'|'sso_change_saml_identity_mode_details'|'sso_remove_cert_details'|'sso_remove_login_url_details'|'sso_remove_logout_url_details'|'team_folder_change_status_details'|'team_folder_create_details'|'team_folder_downgrade_details'|'team_folder_permanently_delete_details'|'team_folder_rename_details'|'team_selective_sync_settings_changed_details'|'account_capture_change_policy_details'|'admin_email_reminders_changed_details'|'allow_download_disabled_details'|'allow_download_enabled_details'|'app_permissions_changed_details'|'camera_uploads_policy_changed_details'|'capture_transcript_policy_changed_details'|'classification_change_policy_details'|'computer_backup_policy_changed_details'|'content_administration_policy_changed_details'|'data_placement_restriction_change_policy_details'|'data_placement_restriction_satisfy_policy_details'|'device_approvals_add_exception_details'|'device_approvals_change_desktop_policy_details'|'device_approvals_change_mobile_policy_details'|'device_approvals_change_overage_action_details'|'device_approvals_change_unlink_action_details'|'device_approvals_remove_exception_details'|'directory_restrictions_add_members_details'|'directory_restrictions_remove_members_details'|'dropbox_passwords_policy_changed_details'|'email_ingest_policy_changed_details'|'emm_add_exception_details'|'emm_change_policy_details'|'emm_remove_exception_details'|'extended_version_history_change_policy_details'|'external_drive_backup_policy_changed_details'|'file_comments_change_policy_details'|'file_locking_policy_changed_details'|'file_provider_migration_policy_changed_details'|'file_requests_change_policy_details'|'file_requests_emails_enabled_details'|'file_requests_emails_restricted_to_team_only_details'|'file_transfers_policy_changed_details'|'folder_link_restriction_policy_changed_details'|'google_sso_change_policy_details'|'group_user_management_change_policy_details'|'integration_policy_changed_details'|'invite_acceptance_email_policy_changed_details'|'member_requests_change_policy_details'|'member_send_invite_policy_changed_details'|'member_space_limits_add_exception_details'|'member_space_limits_change_caps_type_policy_details'|'member_space_limits_change_policy_details'|'member_space_limits_remove_exception_details'|'member_suggestions_change_policy_details'|'microsoft_office_addin_change_policy_details'|'network_control_change_policy_details'|'paper_change_deployment_policy_details'|'paper_change_member_link_policy_details'|'paper_change_member_policy_details'|'paper_change_policy_details'|'paper_default_folder_policy_changed_details'|'paper_desktop_policy_changed_details'|'paper_enabled_users_group_addition_details'|'paper_enabled_users_group_removal_details'|'password_strength_requirements_change_policy_details'|'permanent_delete_change_policy_details'|'reseller_support_change_policy_details'|'rewind_policy_changed_details'|'send_for_signature_policy_changed_details'|'sharing_change_folder_join_policy_details'|'sharing_change_link_allow_change_expiration_policy_details'|'sharing_change_link_default_expiration_policy_details'|'sharing_change_link_enforce_password_policy_details'|'sharing_change_link_policy_details'|'sharing_change_member_policy_details'|'showcase_change_download_policy_details'|'showcase_change_enabled_policy_details'|'showcase_change_external_sharing_policy_details'|'smarter_smart_sync_policy_changed_details'|'smart_sync_change_policy_details'|'smart_sync_not_opt_out_details'|'smart_sync_opt_out_details'|'sso_change_policy_details'|'team_branding_policy_changed_details'|'team_extensions_policy_changed_details'|'team_selective_sync_policy_changed_details'|'team_sharing_whitelist_subjects_changed_details'|'tfa_add_exception_details'|'tfa_change_policy_details'|'tfa_remove_exception_details'|'two_account_change_policy_details'|'viewer_info_policy_changed_details'|'watermarking_policy_changed_details'|'web_sessions_change_active_session_limit_details'|'web_sessions_change_fixed_length_policy_details'|'web_sessions_change_idle_length_policy_details'|'data_residency_migration_request_successful_details'|'data_residency_migration_request_unsuccessful_details'|'team_merge_from_details'|'team_merge_to_details'|'team_profile_add_background_details'|'team_profile_add_logo_details'|'team_profile_change_background_details'|'team_profile_change_default_language_details'|'team_profile_change_logo_details'|'team_profile_change_name_details'|'team_profile_remove_background_details'|'team_profile_remove_logo_details'|'tfa_add_backup_phone_details'|'tfa_add_security_key_details'|'tfa_change_backup_phone_details'|'tfa_change_status_details'|'tfa_remove_backup_phone_details'|'tfa_remove_security_key_details'|'tfa_reset_details'|'changed_enterprise_admin_role_details'|'changed_enterprise_connected_team_status_details'|'ended_enterprise_admin_session_details'|'ended_enterprise_admin_session_deprecated_details'|'enterprise_settings_locking_details'|'guest_admin_change_status_details'|'started_enterprise_admin_session_details'|'team_merge_request_accepted_details'|'team_merge_request_accepted_shown_to_primary_team_details'|'team_merge_request_accepted_shown_to_secondary_team_details'|'team_merge_request_auto_canceled_details'|'team_merge_request_canceled_details'|'team_merge_request_canceled_shown_to_primary_team_details'|'team_merge_request_canceled_shown_to_secondary_team_details'|'team_merge_request_expired_details'|'team_merge_request_expired_shown_to_primary_team_details'|'team_merge_request_expired_shown_to_secondary_team_details'|'team_merge_request_rejected_shown_to_primary_team_details'|'team_merge_request_rejected_shown_to_secondary_team_details'|'team_merge_request_reminder_details'|'team_merge_request_reminder_shown_to_primary_team_details'|'team_merge_request_reminder_shown_to_secondary_team_details'|'team_merge_request_revoked_details'|'team_merge_request_sent_shown_to_primary_team_details'|'team_merge_request_sent_shown_to_secondary_team_details'|'missing_details'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * The type of the event with description. + * @typedef {Object} TeamLogEventType + * @property {TeamLogAdminAlertingAlertStateChangedType} + * [admin_alerting_alert_state_changed] - Available if .tag is + * admin_alerting_alert_state_changed. (admin_alerting) Changed an alert state + * @property {TeamLogAdminAlertingChangedAlertConfigType} + * [admin_alerting_changed_alert_config] - Available if .tag is + * admin_alerting_changed_alert_config. (admin_alerting) Changed an alert + * setting + * @property {TeamLogAdminAlertingTriggeredAlertType} + * [admin_alerting_triggered_alert] - Available if .tag is + * admin_alerting_triggered_alert. (admin_alerting) Triggered security alert + * @property {TeamLogAppBlockedByPermissionsType} [app_blocked_by_permissions] - + * Available if .tag is app_blocked_by_permissions. (apps) Failed to connect app + * for member + * @property {TeamLogAppLinkTeamType} [app_link_team] - Available if .tag is + * app_link_team. (apps) Linked app for team + * @property {TeamLogAppLinkUserType} [app_link_user] - Available if .tag is + * app_link_user. (apps) Linked app for member + * @property {TeamLogAppUnlinkTeamType} [app_unlink_team] - Available if .tag is + * app_unlink_team. (apps) Unlinked app for team + * @property {TeamLogAppUnlinkUserType} [app_unlink_user] - Available if .tag is + * app_unlink_user. (apps) Unlinked app for member + * @property {TeamLogIntegrationConnectedType} [integration_connected] - + * Available if .tag is integration_connected. (apps) Connected integration for + * member + * @property {TeamLogIntegrationDisconnectedType} [integration_disconnected] - + * Available if .tag is integration_disconnected. (apps) Disconnected + * integration for member + * @property {TeamLogFileAddCommentType} [file_add_comment] - Available if .tag + * is file_add_comment. (comments) Added file comment + * @property {TeamLogFileChangeCommentSubscriptionType} + * [file_change_comment_subscription] - Available if .tag is + * file_change_comment_subscription. (comments) Subscribed to or unsubscribed + * from comment notifications for file + * @property {TeamLogFileDeleteCommentType} [file_delete_comment] - Available if + * .tag is file_delete_comment. (comments) Deleted file comment + * @property {TeamLogFileEditCommentType} [file_edit_comment] - Available if + * .tag is file_edit_comment. (comments) Edited file comment + * @property {TeamLogFileLikeCommentType} [file_like_comment] - Available if + * .tag is file_like_comment. (comments) Liked file comment (deprecated, no + * longer logged) + * @property {TeamLogFileResolveCommentType} [file_resolve_comment] - Available + * if .tag is file_resolve_comment. (comments) Resolved file comment + * @property {TeamLogFileUnlikeCommentType} [file_unlike_comment] - Available if + * .tag is file_unlike_comment. (comments) Unliked file comment (deprecated, no + * longer logged) + * @property {TeamLogFileUnresolveCommentType} [file_unresolve_comment] - + * Available if .tag is file_unresolve_comment. (comments) Unresolved file + * comment + * @property {TeamLogGovernancePolicyAddFoldersType} + * [governance_policy_add_folders] - Available if .tag is + * governance_policy_add_folders. (data_governance) Added folders to policy + * @property {TeamLogGovernancePolicyAddFolderFailedType} + * [governance_policy_add_folder_failed] - Available if .tag is + * governance_policy_add_folder_failed. (data_governance) Couldn't add a folder + * to a policy + * @property {TeamLogGovernancePolicyContentDisposedType} + * [governance_policy_content_disposed] - Available if .tag is + * governance_policy_content_disposed. (data_governance) Content disposed + * @property {TeamLogGovernancePolicyCreateType} [governance_policy_create] - + * Available if .tag is governance_policy_create. (data_governance) Activated a + * new policy + * @property {TeamLogGovernancePolicyDeleteType} [governance_policy_delete] - + * Available if .tag is governance_policy_delete. (data_governance) Deleted a + * policy + * @property {TeamLogGovernancePolicyEditDetailsType} + * [governance_policy_edit_details] - Available if .tag is + * governance_policy_edit_details. (data_governance) Edited policy + * @property {TeamLogGovernancePolicyEditDurationType} + * [governance_policy_edit_duration] - Available if .tag is + * governance_policy_edit_duration. (data_governance) Changed policy duration + * @property {TeamLogGovernancePolicyExportCreatedType} + * [governance_policy_export_created] - Available if .tag is + * governance_policy_export_created. (data_governance) Created a policy download + * @property {TeamLogGovernancePolicyExportRemovedType} + * [governance_policy_export_removed] - Available if .tag is + * governance_policy_export_removed. (data_governance) Removed a policy download + * @property {TeamLogGovernancePolicyRemoveFoldersType} + * [governance_policy_remove_folders] - Available if .tag is + * governance_policy_remove_folders. (data_governance) Removed folders from + * policy + * @property {TeamLogGovernancePolicyReportCreatedType} + * [governance_policy_report_created] - Available if .tag is + * governance_policy_report_created. (data_governance) Created a summary report + * for a policy + * @property {TeamLogGovernancePolicyZipPartDownloadedType} + * [governance_policy_zip_part_downloaded] - Available if .tag is + * governance_policy_zip_part_downloaded. (data_governance) Downloaded content + * from a policy + * @property {TeamLogLegalHoldsActivateAHoldType} [legal_holds_activate_a_hold] + * - Available if .tag is legal_holds_activate_a_hold. (data_governance) + * Activated a hold + * @property {TeamLogLegalHoldsAddMembersType} [legal_holds_add_members] - + * Available if .tag is legal_holds_add_members. (data_governance) Added members + * to a hold + * @property {TeamLogLegalHoldsChangeHoldDetailsType} + * [legal_holds_change_hold_details] - Available if .tag is + * legal_holds_change_hold_details. (data_governance) Edited details for a hold + * @property {TeamLogLegalHoldsChangeHoldNameType} + * [legal_holds_change_hold_name] - Available if .tag is + * legal_holds_change_hold_name. (data_governance) Renamed a hold + * @property {TeamLogLegalHoldsExportAHoldType} [legal_holds_export_a_hold] - + * Available if .tag is legal_holds_export_a_hold. (data_governance) Exported + * hold + * @property {TeamLogLegalHoldsExportCancelledType} + * [legal_holds_export_cancelled] - Available if .tag is + * legal_holds_export_cancelled. (data_governance) Canceled export for a hold + * @property {TeamLogLegalHoldsExportDownloadedType} + * [legal_holds_export_downloaded] - Available if .tag is + * legal_holds_export_downloaded. (data_governance) Downloaded export for a hold + * @property {TeamLogLegalHoldsExportRemovedType} [legal_holds_export_removed] - + * Available if .tag is legal_holds_export_removed. (data_governance) Removed + * export for a hold + * @property {TeamLogLegalHoldsReleaseAHoldType} [legal_holds_release_a_hold] - + * Available if .tag is legal_holds_release_a_hold. (data_governance) Released a + * hold + * @property {TeamLogLegalHoldsRemoveMembersType} [legal_holds_remove_members] - + * Available if .tag is legal_holds_remove_members. (data_governance) Removed + * members from a hold + * @property {TeamLogLegalHoldsReportAHoldType} [legal_holds_report_a_hold] - + * Available if .tag is legal_holds_report_a_hold. (data_governance) Created a + * summary report for a hold + * @property {TeamLogDeviceChangeIpDesktopType} [device_change_ip_desktop] - + * Available if .tag is device_change_ip_desktop. (devices) Changed IP address + * associated with active desktop session + * @property {TeamLogDeviceChangeIpMobileType} [device_change_ip_mobile] - + * Available if .tag is device_change_ip_mobile. (devices) Changed IP address + * associated with active mobile session + * @property {TeamLogDeviceChangeIpWebType} [device_change_ip_web] - Available + * if .tag is device_change_ip_web. (devices) Changed IP address associated with + * active web session + * @property {TeamLogDeviceDeleteOnUnlinkFailType} + * [device_delete_on_unlink_fail] - Available if .tag is + * device_delete_on_unlink_fail. (devices) Failed to delete all files from + * unlinked device + * @property {TeamLogDeviceDeleteOnUnlinkSuccessType} + * [device_delete_on_unlink_success] - Available if .tag is + * device_delete_on_unlink_success. (devices) Deleted all files from unlinked + * device + * @property {TeamLogDeviceLinkFailType} [device_link_fail] - Available if .tag + * is device_link_fail. (devices) Failed to link device + * @property {TeamLogDeviceLinkSuccessType} [device_link_success] - Available if + * .tag is device_link_success. (devices) Linked device + * @property {TeamLogDeviceManagementDisabledType} [device_management_disabled] + * - Available if .tag is device_management_disabled. (devices) Disabled device + * management (deprecated, no longer logged) + * @property {TeamLogDeviceManagementEnabledType} [device_management_enabled] - + * Available if .tag is device_management_enabled. (devices) Enabled device + * management (deprecated, no longer logged) + * @property {TeamLogDeviceSyncBackupStatusChangedType} + * [device_sync_backup_status_changed] - Available if .tag is + * device_sync_backup_status_changed. (devices) Enabled/disabled backup for + * computer + * @property {TeamLogDeviceUnlinkType} [device_unlink] - Available if .tag is + * device_unlink. (devices) Disconnected device + * @property {TeamLogDropboxPasswordsExportedType} [dropbox_passwords_exported] + * - Available if .tag is dropbox_passwords_exported. (devices) Exported + * passwords + * @property {TeamLogDropboxPasswordsNewDeviceEnrolledType} + * [dropbox_passwords_new_device_enrolled] - Available if .tag is + * dropbox_passwords_new_device_enrolled. (devices) Enrolled new Dropbox + * Passwords device + * @property {TeamLogEmmRefreshAuthTokenType} [emm_refresh_auth_token] - + * Available if .tag is emm_refresh_auth_token. (devices) Refreshed auth token + * used for setting up EMM + * @property {TeamLogExternalDriveBackupEligibilityStatusCheckedType} + * [external_drive_backup_eligibility_status_checked] - Available if .tag is + * external_drive_backup_eligibility_status_checked. (devices) Checked external + * drive backup eligibility status + * @property {TeamLogExternalDriveBackupStatusChangedType} + * [external_drive_backup_status_changed] - Available if .tag is + * external_drive_backup_status_changed. (devices) Modified external drive + * backup + * @property {TeamLogAccountCaptureChangeAvailabilityType} + * [account_capture_change_availability] - Available if .tag is + * account_capture_change_availability. (domains) Granted/revoked option to + * enable account capture on team domains + * @property {TeamLogAccountCaptureMigrateAccountType} + * [account_capture_migrate_account] - Available if .tag is + * account_capture_migrate_account. (domains) Account-captured user migrated + * account to team + * @property {TeamLogAccountCaptureNotificationEmailsSentType} + * [account_capture_notification_emails_sent] - Available if .tag is + * account_capture_notification_emails_sent. (domains) Sent account capture + * email to all unmanaged members + * @property {TeamLogAccountCaptureRelinquishAccountType} + * [account_capture_relinquish_account] - Available if .tag is + * account_capture_relinquish_account. (domains) Account-captured user changed + * account email to personal email + * @property {TeamLogDisabledDomainInvitesType} [disabled_domain_invites] - + * Available if .tag is disabled_domain_invites. (domains) Disabled domain + * invites (deprecated, no longer logged) + * @property {TeamLogDomainInvitesApproveRequestToJoinTeamType} + * [domain_invites_approve_request_to_join_team] - Available if .tag is + * domain_invites_approve_request_to_join_team. (domains) Approved user's + * request to join team + * @property {TeamLogDomainInvitesDeclineRequestToJoinTeamType} + * [domain_invites_decline_request_to_join_team] - Available if .tag is + * domain_invites_decline_request_to_join_team. (domains) Declined user's + * request to join team + * @property {TeamLogDomainInvitesEmailExistingUsersType} + * [domain_invites_email_existing_users] - Available if .tag is + * domain_invites_email_existing_users. (domains) Sent domain invites to + * existing domain accounts (deprecated, no longer logged) + * @property {TeamLogDomainInvitesRequestToJoinTeamType} + * [domain_invites_request_to_join_team] - Available if .tag is + * domain_invites_request_to_join_team. (domains) Requested to join team + * @property {TeamLogDomainInvitesSetInviteNewUserPrefToNoType} + * [domain_invites_set_invite_new_user_pref_to_no] - Available if .tag is + * domain_invites_set_invite_new_user_pref_to_no. (domains) Disabled + * "Automatically invite new users" (deprecated, no longer logged) + * @property {TeamLogDomainInvitesSetInviteNewUserPrefToYesType} + * [domain_invites_set_invite_new_user_pref_to_yes] - Available if .tag is + * domain_invites_set_invite_new_user_pref_to_yes. (domains) Enabled + * "Automatically invite new users" (deprecated, no longer logged) + * @property {TeamLogDomainVerificationAddDomainFailType} + * [domain_verification_add_domain_fail] - Available if .tag is + * domain_verification_add_domain_fail. (domains) Failed to verify team domain + * @property {TeamLogDomainVerificationAddDomainSuccessType} + * [domain_verification_add_domain_success] - Available if .tag is + * domain_verification_add_domain_success. (domains) Verified team domain + * @property {TeamLogDomainVerificationRemoveDomainType} + * [domain_verification_remove_domain] - Available if .tag is + * domain_verification_remove_domain. (domains) Removed domain from list of + * verified team domains + * @property {TeamLogEnabledDomainInvitesType} [enabled_domain_invites] - + * Available if .tag is enabled_domain_invites. (domains) Enabled domain invites + * (deprecated, no longer logged) + * @property {TeamLogApplyNamingConventionType} [apply_naming_convention] - + * Available if .tag is apply_naming_convention. (file_operations) Applied + * naming convention + * @property {TeamLogCreateFolderType} [create_folder] - Available if .tag is + * create_folder. (file_operations) Created folders (deprecated, no longer + * logged) + * @property {TeamLogFileAddType} [file_add] - Available if .tag is file_add. + * (file_operations) Added files and/or folders + * @property {TeamLogFileCopyType} [file_copy] - Available if .tag is file_copy. + * (file_operations) Copied files and/or folders + * @property {TeamLogFileDeleteType} [file_delete] - Available if .tag is + * file_delete. (file_operations) Deleted files and/or folders + * @property {TeamLogFileDownloadType} [file_download] - Available if .tag is + * file_download. (file_operations) Downloaded files and/or folders + * @property {TeamLogFileEditType} [file_edit] - Available if .tag is file_edit. + * (file_operations) Edited files + * @property {TeamLogFileGetCopyReferenceType} [file_get_copy_reference] - + * Available if .tag is file_get_copy_reference. (file_operations) Created copy + * reference to file/folder + * @property {TeamLogFileLockingLockStatusChangedType} + * [file_locking_lock_status_changed] - Available if .tag is + * file_locking_lock_status_changed. (file_operations) Locked/unlocked editing + * for a file + * @property {TeamLogFileMoveType} [file_move] - Available if .tag is file_move. + * (file_operations) Moved files and/or folders + * @property {TeamLogFilePermanentlyDeleteType} [file_permanently_delete] - + * Available if .tag is file_permanently_delete. (file_operations) Permanently + * deleted files and/or folders + * @property {TeamLogFilePreviewType} [file_preview] - Available if .tag is + * file_preview. (file_operations) Previewed files and/or folders + * @property {TeamLogFileRenameType} [file_rename] - Available if .tag is + * file_rename. (file_operations) Renamed files and/or folders + * @property {TeamLogFileRestoreType} [file_restore] - Available if .tag is + * file_restore. (file_operations) Restored deleted files and/or folders + * @property {TeamLogFileRevertType} [file_revert] - Available if .tag is + * file_revert. (file_operations) Reverted files to previous version + * @property {TeamLogFileRollbackChangesType} [file_rollback_changes] - + * Available if .tag is file_rollback_changes. (file_operations) Rolled back + * file actions + * @property {TeamLogFileSaveCopyReferenceType} [file_save_copy_reference] - + * Available if .tag is file_save_copy_reference. (file_operations) Saved + * file/folder using copy reference + * @property {TeamLogFolderOverviewDescriptionChangedType} + * [folder_overview_description_changed] - Available if .tag is + * folder_overview_description_changed. (file_operations) Updated folder + * overview + * @property {TeamLogFolderOverviewItemPinnedType} [folder_overview_item_pinned] + * - Available if .tag is folder_overview_item_pinned. (file_operations) Pinned + * item to folder overview + * @property {TeamLogFolderOverviewItemUnpinnedType} + * [folder_overview_item_unpinned] - Available if .tag is + * folder_overview_item_unpinned. (file_operations) Unpinned item from folder + * overview + * @property {TeamLogObjectLabelAddedType} [object_label_added] - Available if + * .tag is object_label_added. (file_operations) Added a label + * @property {TeamLogObjectLabelRemovedType} [object_label_removed] - Available + * if .tag is object_label_removed. (file_operations) Removed a label + * @property {TeamLogObjectLabelUpdatedValueType} [object_label_updated_value] - + * Available if .tag is object_label_updated_value. (file_operations) Updated a + * label's value + * @property {TeamLogOrganizeFolderWithTidyType} [organize_folder_with_tidy] - + * Available if .tag is organize_folder_with_tidy. (file_operations) Organized a + * folder with multi-file organize + * @property {TeamLogRewindFolderType} [rewind_folder] - Available if .tag is + * rewind_folder. (file_operations) Rewound a folder + * @property {TeamLogUndoNamingConventionType} [undo_naming_convention] - + * Available if .tag is undo_naming_convention. (file_operations) Reverted + * naming convention + * @property {TeamLogUndoOrganizeFolderWithTidyType} + * [undo_organize_folder_with_tidy] - Available if .tag is + * undo_organize_folder_with_tidy. (file_operations) Removed multi-file organize + * @property {TeamLogUserTagsAddedType} [user_tags_added] - Available if .tag is + * user_tags_added. (file_operations) Tagged a file + * @property {TeamLogUserTagsRemovedType} [user_tags_removed] - Available if + * .tag is user_tags_removed. (file_operations) Removed tags + * @property {TeamLogEmailIngestReceiveFileType} [email_ingest_receive_file] - + * Available if .tag is email_ingest_receive_file. (file_requests) Received + * files via Email to Dropbox + * @property {TeamLogFileRequestChangeType} [file_request_change] - Available if + * .tag is file_request_change. (file_requests) Changed file request + * @property {TeamLogFileRequestCloseType} [file_request_close] - Available if + * .tag is file_request_close. (file_requests) Closed file request + * @property {TeamLogFileRequestCreateType} [file_request_create] - Available if + * .tag is file_request_create. (file_requests) Created file request + * @property {TeamLogFileRequestDeleteType} [file_request_delete] - Available if + * .tag is file_request_delete. (file_requests) Delete file request + * @property {TeamLogFileRequestReceiveFileType} [file_request_receive_file] - + * Available if .tag is file_request_receive_file. (file_requests) Received + * files for file request + * @property {TeamLogGroupAddExternalIdType} [group_add_external_id] - Available + * if .tag is group_add_external_id. (groups) Added external ID for group + * @property {TeamLogGroupAddMemberType} [group_add_member] - Available if .tag + * is group_add_member. (groups) Added team members to group + * @property {TeamLogGroupChangeExternalIdType} [group_change_external_id] - + * Available if .tag is group_change_external_id. (groups) Changed external ID + * for group + * @property {TeamLogGroupChangeManagementTypeType} + * [group_change_management_type] - Available if .tag is + * group_change_management_type. (groups) Changed group management type + * @property {TeamLogGroupChangeMemberRoleType} [group_change_member_role] - + * Available if .tag is group_change_member_role. (groups) Changed manager + * permissions of group member + * @property {TeamLogGroupCreateType} [group_create] - Available if .tag is + * group_create. (groups) Created group + * @property {TeamLogGroupDeleteType} [group_delete] - Available if .tag is + * group_delete. (groups) Deleted group + * @property {TeamLogGroupDescriptionUpdatedType} [group_description_updated] - + * Available if .tag is group_description_updated. (groups) Updated group + * (deprecated, no longer logged) + * @property {TeamLogGroupJoinPolicyUpdatedType} [group_join_policy_updated] - + * Available if .tag is group_join_policy_updated. (groups) Updated group join + * policy (deprecated, no longer logged) + * @property {TeamLogGroupMovedType} [group_moved] - Available if .tag is + * group_moved. (groups) Moved group (deprecated, no longer logged) + * @property {TeamLogGroupRemoveExternalIdType} [group_remove_external_id] - + * Available if .tag is group_remove_external_id. (groups) Removed external ID + * for group + * @property {TeamLogGroupRemoveMemberType} [group_remove_member] - Available if + * .tag is group_remove_member. (groups) Removed team members from group + * @property {TeamLogGroupRenameType} [group_rename] - Available if .tag is + * group_rename. (groups) Renamed group + * @property {TeamLogAccountLockOrUnlockedType} [account_lock_or_unlocked] - + * Available if .tag is account_lock_or_unlocked. (logins) Unlocked/locked + * account after failed sign in attempts + * @property {TeamLogEmmErrorType} [emm_error] - Available if .tag is emm_error. + * (logins) Failed to sign in via EMM (deprecated, replaced by 'Failed to sign + * in') + * @property {TeamLogGuestAdminSignedInViaTrustedTeamsType} + * [guest_admin_signed_in_via_trusted_teams] - Available if .tag is + * guest_admin_signed_in_via_trusted_teams. (logins) Started trusted team admin + * session + * @property {TeamLogGuestAdminSignedOutViaTrustedTeamsType} + * [guest_admin_signed_out_via_trusted_teams] - Available if .tag is + * guest_admin_signed_out_via_trusted_teams. (logins) Ended trusted team admin + * session + * @property {TeamLogLoginFailType} [login_fail] - Available if .tag is + * login_fail. (logins) Failed to sign in + * @property {TeamLogLoginSuccessType} [login_success] - Available if .tag is + * login_success. (logins) Signed in + * @property {TeamLogLogoutType} [logout] - Available if .tag is logout. + * (logins) Signed out + * @property {TeamLogResellerSupportSessionEndType} + * [reseller_support_session_end] - Available if .tag is + * reseller_support_session_end. (logins) Ended reseller support session + * @property {TeamLogResellerSupportSessionStartType} + * [reseller_support_session_start] - Available if .tag is + * reseller_support_session_start. (logins) Started reseller support session + * @property {TeamLogSignInAsSessionEndType} [sign_in_as_session_end] - + * Available if .tag is sign_in_as_session_end. (logins) Ended admin sign-in-as + * session + * @property {TeamLogSignInAsSessionStartType} [sign_in_as_session_start] - + * Available if .tag is sign_in_as_session_start. (logins) Started admin + * sign-in-as session + * @property {TeamLogSsoErrorType} [sso_error] - Available if .tag is sso_error. + * (logins) Failed to sign in via SSO (deprecated, replaced by 'Failed to sign + * in') + * @property {TeamLogCreateTeamInviteLinkType} [create_team_invite_link] - + * Available if .tag is create_team_invite_link. (members) Created team invite + * link + * @property {TeamLogDeleteTeamInviteLinkType} [delete_team_invite_link] - + * Available if .tag is delete_team_invite_link. (members) Deleted team invite + * link + * @property {TeamLogMemberAddExternalIdType} [member_add_external_id] - + * Available if .tag is member_add_external_id. (members) Added an external ID + * for team member + * @property {TeamLogMemberAddNameType} [member_add_name] - Available if .tag is + * member_add_name. (members) Added team member name + * @property {TeamLogMemberChangeAdminRoleType} [member_change_admin_role] - + * Available if .tag is member_change_admin_role. (members) Changed team member + * admin role + * @property {TeamLogMemberChangeEmailType} [member_change_email] - Available if + * .tag is member_change_email. (members) Changed team member email + * @property {TeamLogMemberChangeExternalIdType} [member_change_external_id] - + * Available if .tag is member_change_external_id. (members) Changed the + * external ID for team member + * @property {TeamLogMemberChangeMembershipTypeType} + * [member_change_membership_type] - Available if .tag is + * member_change_membership_type. (members) Changed membership type + * (limited/full) of member (deprecated, no longer logged) + * @property {TeamLogMemberChangeNameType} [member_change_name] - Available if + * .tag is member_change_name. (members) Changed team member name + * @property {TeamLogMemberChangeResellerRoleType} [member_change_reseller_role] + * - Available if .tag is member_change_reseller_role. (members) Changed team + * member reseller role + * @property {TeamLogMemberChangeStatusType} [member_change_status] - Available + * if .tag is member_change_status. (members) Changed member status (invited, + * joined, suspended, etc.) + * @property {TeamLogMemberDeleteManualContactsType} + * [member_delete_manual_contacts] - Available if .tag is + * member_delete_manual_contacts. (members) Cleared manually added contacts + * @property {TeamLogMemberDeleteProfilePhotoType} [member_delete_profile_photo] + * - Available if .tag is member_delete_profile_photo. (members) Deleted team + * member profile photo + * @property {TeamLogMemberPermanentlyDeleteAccountContentsType} + * [member_permanently_delete_account_contents] - Available if .tag is + * member_permanently_delete_account_contents. (members) Permanently deleted + * contents of deleted team member account + * @property {TeamLogMemberRemoveExternalIdType} [member_remove_external_id] - + * Available if .tag is member_remove_external_id. (members) Removed the + * external ID for team member + * @property {TeamLogMemberSetProfilePhotoType} [member_set_profile_photo] - + * Available if .tag is member_set_profile_photo. (members) Set team member + * profile photo + * @property {TeamLogMemberSpaceLimitsAddCustomQuotaType} + * [member_space_limits_add_custom_quota] - Available if .tag is + * member_space_limits_add_custom_quota. (members) Set custom member space limit + * @property {TeamLogMemberSpaceLimitsChangeCustomQuotaType} + * [member_space_limits_change_custom_quota] - Available if .tag is + * member_space_limits_change_custom_quota. (members) Changed custom member + * space limit + * @property {TeamLogMemberSpaceLimitsChangeStatusType} + * [member_space_limits_change_status] - Available if .tag is + * member_space_limits_change_status. (members) Changed space limit status + * @property {TeamLogMemberSpaceLimitsRemoveCustomQuotaType} + * [member_space_limits_remove_custom_quota] - Available if .tag is + * member_space_limits_remove_custom_quota. (members) Removed custom member + * space limit + * @property {TeamLogMemberSuggestType} [member_suggest] - Available if .tag is + * member_suggest. (members) Suggested person to add to team + * @property {TeamLogMemberTransferAccountContentsType} + * [member_transfer_account_contents] - Available if .tag is + * member_transfer_account_contents. (members) Transferred contents of deleted + * member account to another member + * @property {TeamLogPendingSecondaryEmailAddedType} + * [pending_secondary_email_added] - Available if .tag is + * pending_secondary_email_added. (members) Added pending secondary email + * @property {TeamLogSecondaryEmailDeletedType} [secondary_email_deleted] - + * Available if .tag is secondary_email_deleted. (members) Deleted secondary + * email + * @property {TeamLogSecondaryEmailVerifiedType} [secondary_email_verified] - + * Available if .tag is secondary_email_verified. (members) Verified secondary + * email + * @property {TeamLogSecondaryMailsPolicyChangedType} + * [secondary_mails_policy_changed] - Available if .tag is + * secondary_mails_policy_changed. (members) Secondary mails policy changed + * @property {TeamLogBinderAddPageType} [binder_add_page] - Available if .tag is + * binder_add_page. (paper) Added Binder page (deprecated, replaced by 'Edited + * files') + * @property {TeamLogBinderAddSectionType} [binder_add_section] - Available if + * .tag is binder_add_section. (paper) Added Binder section (deprecated, + * replaced by 'Edited files') + * @property {TeamLogBinderRemovePageType} [binder_remove_page] - Available if + * .tag is binder_remove_page. (paper) Removed Binder page (deprecated, replaced + * by 'Edited files') + * @property {TeamLogBinderRemoveSectionType} [binder_remove_section] - + * Available if .tag is binder_remove_section. (paper) Removed Binder section + * (deprecated, replaced by 'Edited files') + * @property {TeamLogBinderRenamePageType} [binder_rename_page] - Available if + * .tag is binder_rename_page. (paper) Renamed Binder page (deprecated, replaced + * by 'Edited files') + * @property {TeamLogBinderRenameSectionType} [binder_rename_section] - + * Available if .tag is binder_rename_section. (paper) Renamed Binder section + * (deprecated, replaced by 'Edited files') + * @property {TeamLogBinderReorderPageType} [binder_reorder_page] - Available if + * .tag is binder_reorder_page. (paper) Reordered Binder page (deprecated, + * replaced by 'Edited files') + * @property {TeamLogBinderReorderSectionType} [binder_reorder_section] - + * Available if .tag is binder_reorder_section. (paper) Reordered Binder section + * (deprecated, replaced by 'Edited files') + * @property {TeamLogPaperContentAddMemberType} [paper_content_add_member] - + * Available if .tag is paper_content_add_member. (paper) Added users and/or + * groups to Paper doc/folder + * @property {TeamLogPaperContentAddToFolderType} [paper_content_add_to_folder] + * - Available if .tag is paper_content_add_to_folder. (paper) Added Paper + * doc/folder to folder + * @property {TeamLogPaperContentArchiveType} [paper_content_archive] - + * Available if .tag is paper_content_archive. (paper) Archived Paper doc/folder + * @property {TeamLogPaperContentCreateType} [paper_content_create] - Available + * if .tag is paper_content_create. (paper) Created Paper doc/folder + * @property {TeamLogPaperContentPermanentlyDeleteType} + * [paper_content_permanently_delete] - Available if .tag is + * paper_content_permanently_delete. (paper) Permanently deleted Paper + * doc/folder + * @property {TeamLogPaperContentRemoveFromFolderType} + * [paper_content_remove_from_folder] - Available if .tag is + * paper_content_remove_from_folder. (paper) Removed Paper doc/folder from + * folder + * @property {TeamLogPaperContentRemoveMemberType} [paper_content_remove_member] + * - Available if .tag is paper_content_remove_member. (paper) Removed users + * and/or groups from Paper doc/folder + * @property {TeamLogPaperContentRenameType} [paper_content_rename] - Available + * if .tag is paper_content_rename. (paper) Renamed Paper doc/folder + * @property {TeamLogPaperContentRestoreType} [paper_content_restore] - + * Available if .tag is paper_content_restore. (paper) Restored archived Paper + * doc/folder + * @property {TeamLogPaperDocAddCommentType} [paper_doc_add_comment] - Available + * if .tag is paper_doc_add_comment. (paper) Added Paper doc comment + * @property {TeamLogPaperDocChangeMemberRoleType} + * [paper_doc_change_member_role] - Available if .tag is + * paper_doc_change_member_role. (paper) Changed member permissions for Paper + * doc + * @property {TeamLogPaperDocChangeSharingPolicyType} + * [paper_doc_change_sharing_policy] - Available if .tag is + * paper_doc_change_sharing_policy. (paper) Changed sharing setting for Paper + * doc + * @property {TeamLogPaperDocChangeSubscriptionType} + * [paper_doc_change_subscription] - Available if .tag is + * paper_doc_change_subscription. (paper) Followed/unfollowed Paper doc + * @property {TeamLogPaperDocDeletedType} [paper_doc_deleted] - Available if + * .tag is paper_doc_deleted. (paper) Archived Paper doc (deprecated, no longer + * logged) + * @property {TeamLogPaperDocDeleteCommentType} [paper_doc_delete_comment] - + * Available if .tag is paper_doc_delete_comment. (paper) Deleted Paper doc + * comment + * @property {TeamLogPaperDocDownloadType} [paper_doc_download] - Available if + * .tag is paper_doc_download. (paper) Downloaded Paper doc in specific format + * @property {TeamLogPaperDocEditType} [paper_doc_edit] - Available if .tag is + * paper_doc_edit. (paper) Edited Paper doc + * @property {TeamLogPaperDocEditCommentType} [paper_doc_edit_comment] - + * Available if .tag is paper_doc_edit_comment. (paper) Edited Paper doc comment + * @property {TeamLogPaperDocFollowedType} [paper_doc_followed] - Available if + * .tag is paper_doc_followed. (paper) Followed Paper doc (deprecated, replaced + * by 'Followed/unfollowed Paper doc') + * @property {TeamLogPaperDocMentionType} [paper_doc_mention] - Available if + * .tag is paper_doc_mention. (paper) Mentioned user in Paper doc + * @property {TeamLogPaperDocOwnershipChangedType} [paper_doc_ownership_changed] + * - Available if .tag is paper_doc_ownership_changed. (paper) Transferred + * ownership of Paper doc + * @property {TeamLogPaperDocRequestAccessType} [paper_doc_request_access] - + * Available if .tag is paper_doc_request_access. (paper) Requested access to + * Paper doc + * @property {TeamLogPaperDocResolveCommentType} [paper_doc_resolve_comment] - + * Available if .tag is paper_doc_resolve_comment. (paper) Resolved Paper doc + * comment + * @property {TeamLogPaperDocRevertType} [paper_doc_revert] - Available if .tag + * is paper_doc_revert. (paper) Restored Paper doc to previous version + * @property {TeamLogPaperDocSlackShareType} [paper_doc_slack_share] - Available + * if .tag is paper_doc_slack_share. (paper) Shared Paper doc via Slack + * @property {TeamLogPaperDocTeamInviteType} [paper_doc_team_invite] - Available + * if .tag is paper_doc_team_invite. (paper) Shared Paper doc with users and/or + * groups (deprecated, no longer logged) + * @property {TeamLogPaperDocTrashedType} [paper_doc_trashed] - Available if + * .tag is paper_doc_trashed. (paper) Deleted Paper doc + * @property {TeamLogPaperDocUnresolveCommentType} [paper_doc_unresolve_comment] + * - Available if .tag is paper_doc_unresolve_comment. (paper) Unresolved Paper + * doc comment + * @property {TeamLogPaperDocUntrashedType} [paper_doc_untrashed] - Available if + * .tag is paper_doc_untrashed. (paper) Restored Paper doc + * @property {TeamLogPaperDocViewType} [paper_doc_view] - Available if .tag is + * paper_doc_view. (paper) Viewed Paper doc + * @property {TeamLogPaperExternalViewAllowType} [paper_external_view_allow] - + * Available if .tag is paper_external_view_allow. (paper) Changed Paper + * external sharing setting to anyone (deprecated, no longer logged) + * @property {TeamLogPaperExternalViewDefaultTeamType} + * [paper_external_view_default_team] - Available if .tag is + * paper_external_view_default_team. (paper) Changed Paper external sharing + * setting to default team (deprecated, no longer logged) + * @property {TeamLogPaperExternalViewForbidType} [paper_external_view_forbid] - + * Available if .tag is paper_external_view_forbid. (paper) Changed Paper + * external sharing setting to team-only (deprecated, no longer logged) + * @property {TeamLogPaperFolderChangeSubscriptionType} + * [paper_folder_change_subscription] - Available if .tag is + * paper_folder_change_subscription. (paper) Followed/unfollowed Paper folder + * @property {TeamLogPaperFolderDeletedType} [paper_folder_deleted] - Available + * if .tag is paper_folder_deleted. (paper) Archived Paper folder (deprecated, + * no longer logged) + * @property {TeamLogPaperFolderFollowedType} [paper_folder_followed] - + * Available if .tag is paper_folder_followed. (paper) Followed Paper folder + * (deprecated, replaced by 'Followed/unfollowed Paper folder') + * @property {TeamLogPaperFolderTeamInviteType} [paper_folder_team_invite] - + * Available if .tag is paper_folder_team_invite. (paper) Shared Paper folder + * with users and/or groups (deprecated, no longer logged) + * @property {TeamLogPaperPublishedLinkChangePermissionType} + * [paper_published_link_change_permission] - Available if .tag is + * paper_published_link_change_permission. (paper) Changed permissions for + * published doc + * @property {TeamLogPaperPublishedLinkCreateType} [paper_published_link_create] + * - Available if .tag is paper_published_link_create. (paper) Published doc + * @property {TeamLogPaperPublishedLinkDisabledType} + * [paper_published_link_disabled] - Available if .tag is + * paper_published_link_disabled. (paper) Unpublished doc + * @property {TeamLogPaperPublishedLinkViewType} [paper_published_link_view] - + * Available if .tag is paper_published_link_view. (paper) Viewed published doc + * @property {TeamLogPasswordChangeType} [password_change] - Available if .tag + * is password_change. (passwords) Changed password + * @property {TeamLogPasswordResetType} [password_reset] - Available if .tag is + * password_reset. (passwords) Reset password + * @property {TeamLogPasswordResetAllType} [password_reset_all] - Available if + * .tag is password_reset_all. (passwords) Reset all team member passwords + * @property {TeamLogClassificationCreateReportType} + * [classification_create_report] - Available if .tag is + * classification_create_report. (reports) Created Classification report + * @property {TeamLogClassificationCreateReportFailType} + * [classification_create_report_fail] - Available if .tag is + * classification_create_report_fail. (reports) Couldn't create Classification + * report + * @property {TeamLogEmmCreateExceptionsReportType} + * [emm_create_exceptions_report] - Available if .tag is + * emm_create_exceptions_report. (reports) Created EMM-excluded users report + * @property {TeamLogEmmCreateUsageReportType} [emm_create_usage_report] - + * Available if .tag is emm_create_usage_report. (reports) Created EMM mobile + * app usage report + * @property {TeamLogExportMembersReportType} [export_members_report] - + * Available if .tag is export_members_report. (reports) Created member data + * report + * @property {TeamLogExportMembersReportFailType} [export_members_report_fail] - + * Available if .tag is export_members_report_fail. (reports) Failed to create + * members data report + * @property {TeamLogExternalSharingCreateReportType} + * [external_sharing_create_report] - Available if .tag is + * external_sharing_create_report. (reports) Created External sharing report + * @property {TeamLogExternalSharingReportFailedType} + * [external_sharing_report_failed] - Available if .tag is + * external_sharing_report_failed. (reports) Couldn't create External sharing + * report + * @property {TeamLogNoExpirationLinkGenCreateReportType} + * [no_expiration_link_gen_create_report] - Available if .tag is + * no_expiration_link_gen_create_report. (reports) Report created: Links created + * with no expiration + * @property {TeamLogNoExpirationLinkGenReportFailedType} + * [no_expiration_link_gen_report_failed] - Available if .tag is + * no_expiration_link_gen_report_failed. (reports) Couldn't create report: Links + * created with no expiration + * @property {TeamLogNoPasswordLinkGenCreateReportType} + * [no_password_link_gen_create_report] - Available if .tag is + * no_password_link_gen_create_report. (reports) Report created: Links created + * without passwords + * @property {TeamLogNoPasswordLinkGenReportFailedType} + * [no_password_link_gen_report_failed] - Available if .tag is + * no_password_link_gen_report_failed. (reports) Couldn't create report: Links + * created without passwords + * @property {TeamLogNoPasswordLinkViewCreateReportType} + * [no_password_link_view_create_report] - Available if .tag is + * no_password_link_view_create_report. (reports) Report created: Views of links + * without passwords + * @property {TeamLogNoPasswordLinkViewReportFailedType} + * [no_password_link_view_report_failed] - Available if .tag is + * no_password_link_view_report_failed. (reports) Couldn't create report: Views + * of links without passwords + * @property {TeamLogOutdatedLinkViewCreateReportType} + * [outdated_link_view_create_report] - Available if .tag is + * outdated_link_view_create_report. (reports) Report created: Views of old + * links + * @property {TeamLogOutdatedLinkViewReportFailedType} + * [outdated_link_view_report_failed] - Available if .tag is + * outdated_link_view_report_failed. (reports) Couldn't create report: Views of + * old links + * @property {TeamLogPaperAdminExportStartType} [paper_admin_export_start] - + * Available if .tag is paper_admin_export_start. (reports) Exported all team + * Paper docs + * @property {TeamLogSmartSyncCreateAdminPrivilegeReportType} + * [smart_sync_create_admin_privilege_report] - Available if .tag is + * smart_sync_create_admin_privilege_report. (reports) Created Smart Sync + * non-admin devices report + * @property {TeamLogTeamActivityCreateReportType} [team_activity_create_report] + * - Available if .tag is team_activity_create_report. (reports) Created team + * activity report + * @property {TeamLogTeamActivityCreateReportFailType} + * [team_activity_create_report_fail] - Available if .tag is + * team_activity_create_report_fail. (reports) Couldn't generate team activity + * report + * @property {TeamLogCollectionShareType} [collection_share] - Available if .tag + * is collection_share. (sharing) Shared album + * @property {TeamLogFileTransfersFileAddType} [file_transfers_file_add] - + * Available if .tag is file_transfers_file_add. (sharing) Transfer files added + * @property {TeamLogFileTransfersTransferDeleteType} + * [file_transfers_transfer_delete] - Available if .tag is + * file_transfers_transfer_delete. (sharing) Deleted transfer + * @property {TeamLogFileTransfersTransferDownloadType} + * [file_transfers_transfer_download] - Available if .tag is + * file_transfers_transfer_download. (sharing) Transfer downloaded + * @property {TeamLogFileTransfersTransferSendType} + * [file_transfers_transfer_send] - Available if .tag is + * file_transfers_transfer_send. (sharing) Sent transfer + * @property {TeamLogFileTransfersTransferViewType} + * [file_transfers_transfer_view] - Available if .tag is + * file_transfers_transfer_view. (sharing) Viewed transfer + * @property {TeamLogNoteAclInviteOnlyType} [note_acl_invite_only] - Available + * if .tag is note_acl_invite_only. (sharing) Changed Paper doc to invite-only + * (deprecated, no longer logged) + * @property {TeamLogNoteAclLinkType} [note_acl_link] - Available if .tag is + * note_acl_link. (sharing) Changed Paper doc to link-accessible (deprecated, no + * longer logged) + * @property {TeamLogNoteAclTeamLinkType} [note_acl_team_link] - Available if + * .tag is note_acl_team_link. (sharing) Changed Paper doc to link-accessible + * for team (deprecated, no longer logged) + * @property {TeamLogNoteSharedType} [note_shared] - Available if .tag is + * note_shared. (sharing) Shared Paper doc (deprecated, no longer logged) + * @property {TeamLogNoteShareReceiveType} [note_share_receive] - Available if + * .tag is note_share_receive. (sharing) Shared received Paper doc (deprecated, + * no longer logged) + * @property {TeamLogOpenNoteSharedType} [open_note_shared] - Available if .tag + * is open_note_shared. (sharing) Opened shared Paper doc (deprecated, no longer + * logged) + * @property {TeamLogSfAddGroupType} [sf_add_group] - Available if .tag is + * sf_add_group. (sharing) Added team to shared folder (deprecated, no longer + * logged) + * @property {TeamLogSfAllowNonMembersToViewSharedLinksType} + * [sf_allow_non_members_to_view_shared_links] - Available if .tag is + * sf_allow_non_members_to_view_shared_links. (sharing) Allowed + * non-collaborators to view links to files in shared folder (deprecated, no + * longer logged) + * @property {TeamLogSfExternalInviteWarnType} [sf_external_invite_warn] - + * Available if .tag is sf_external_invite_warn. (sharing) Set team members to + * see warning before sharing folders outside team (deprecated, no longer + * logged) + * @property {TeamLogSfFbInviteType} [sf_fb_invite] - Available if .tag is + * sf_fb_invite. (sharing) Invited Facebook users to shared folder (deprecated, + * no longer logged) + * @property {TeamLogSfFbInviteChangeRoleType} [sf_fb_invite_change_role] - + * Available if .tag is sf_fb_invite_change_role. (sharing) Changed Facebook + * user's role in shared folder (deprecated, no longer logged) + * @property {TeamLogSfFbUninviteType} [sf_fb_uninvite] - Available if .tag is + * sf_fb_uninvite. (sharing) Uninvited Facebook user from shared folder + * (deprecated, no longer logged) + * @property {TeamLogSfInviteGroupType} [sf_invite_group] - Available if .tag is + * sf_invite_group. (sharing) Invited group to shared folder (deprecated, no + * longer logged) + * @property {TeamLogSfTeamGrantAccessType} [sf_team_grant_access] - Available + * if .tag is sf_team_grant_access. (sharing) Granted access to shared folder + * (deprecated, no longer logged) + * @property {TeamLogSfTeamInviteType} [sf_team_invite] - Available if .tag is + * sf_team_invite. (sharing) Invited team members to shared folder (deprecated, + * replaced by 'Invited user to Dropbox and added them to shared file/folder') + * @property {TeamLogSfTeamInviteChangeRoleType} [sf_team_invite_change_role] - + * Available if .tag is sf_team_invite_change_role. (sharing) Changed team + * member's role in shared folder (deprecated, no longer logged) + * @property {TeamLogSfTeamJoinType} [sf_team_join] - Available if .tag is + * sf_team_join. (sharing) Joined team member's shared folder (deprecated, no + * longer logged) + * @property {TeamLogSfTeamJoinFromOobLinkType} [sf_team_join_from_oob_link] - + * Available if .tag is sf_team_join_from_oob_link. (sharing) Joined team + * member's shared folder from link (deprecated, no longer logged) + * @property {TeamLogSfTeamUninviteType} [sf_team_uninvite] - Available if .tag + * is sf_team_uninvite. (sharing) Unshared folder with team member (deprecated, + * replaced by 'Removed invitee from shared file/folder before invite was + * accepted') + * @property {TeamLogSharedContentAddInviteesType} [shared_content_add_invitees] + * - Available if .tag is shared_content_add_invitees. (sharing) Invited user to + * Dropbox and added them to shared file/folder + * @property {TeamLogSharedContentAddLinkExpiryType} + * [shared_content_add_link_expiry] - Available if .tag is + * shared_content_add_link_expiry. (sharing) Added expiration date to link for + * shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentAddLinkPasswordType} + * [shared_content_add_link_password] - Available if .tag is + * shared_content_add_link_password. (sharing) Added password to link for shared + * file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentAddMemberType} [shared_content_add_member] - + * Available if .tag is shared_content_add_member. (sharing) Added users and/or + * groups to shared file/folder + * @property {TeamLogSharedContentChangeDownloadsPolicyType} + * [shared_content_change_downloads_policy] - Available if .tag is + * shared_content_change_downloads_policy. (sharing) Changed whether members can + * download shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentChangeInviteeRoleType} + * [shared_content_change_invitee_role] - Available if .tag is + * shared_content_change_invitee_role. (sharing) Changed access type of invitee + * to shared file/folder before invite was accepted + * @property {TeamLogSharedContentChangeLinkAudienceType} + * [shared_content_change_link_audience] - Available if .tag is + * shared_content_change_link_audience. (sharing) Changed link audience of + * shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentChangeLinkExpiryType} + * [shared_content_change_link_expiry] - Available if .tag is + * shared_content_change_link_expiry. (sharing) Changed link expiration of + * shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentChangeLinkPasswordType} + * [shared_content_change_link_password] - Available if .tag is + * shared_content_change_link_password. (sharing) Changed link password of + * shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentChangeMemberRoleType} + * [shared_content_change_member_role] - Available if .tag is + * shared_content_change_member_role. (sharing) Changed access type of shared + * file/folder member + * @property {TeamLogSharedContentChangeViewerInfoPolicyType} + * [shared_content_change_viewer_info_policy] - Available if .tag is + * shared_content_change_viewer_info_policy. (sharing) Changed whether members + * can see who viewed shared file/folder + * @property {TeamLogSharedContentClaimInvitationType} + * [shared_content_claim_invitation] - Available if .tag is + * shared_content_claim_invitation. (sharing) Acquired membership of shared + * file/folder by accepting invite + * @property {TeamLogSharedContentCopyType} [shared_content_copy] - Available if + * .tag is shared_content_copy. (sharing) Copied shared file/folder to own + * Dropbox + * @property {TeamLogSharedContentDownloadType} [shared_content_download] - + * Available if .tag is shared_content_download. (sharing) Downloaded shared + * file/folder + * @property {TeamLogSharedContentRelinquishMembershipType} + * [shared_content_relinquish_membership] - Available if .tag is + * shared_content_relinquish_membership. (sharing) Left shared file/folder + * @property {TeamLogSharedContentRemoveInviteesType} + * [shared_content_remove_invitees] - Available if .tag is + * shared_content_remove_invitees. (sharing) Removed invitee from shared + * file/folder before invite was accepted + * @property {TeamLogSharedContentRemoveLinkExpiryType} + * [shared_content_remove_link_expiry] - Available if .tag is + * shared_content_remove_link_expiry. (sharing) Removed link expiration date of + * shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentRemoveLinkPasswordType} + * [shared_content_remove_link_password] - Available if .tag is + * shared_content_remove_link_password. (sharing) Removed link password of + * shared file/folder (deprecated, no longer logged) + * @property {TeamLogSharedContentRemoveMemberType} + * [shared_content_remove_member] - Available if .tag is + * shared_content_remove_member. (sharing) Removed user/group from shared + * file/folder + * @property {TeamLogSharedContentRequestAccessType} + * [shared_content_request_access] - Available if .tag is + * shared_content_request_access. (sharing) Requested access to shared + * file/folder + * @property {TeamLogSharedContentRestoreInviteesType} + * [shared_content_restore_invitees] - Available if .tag is + * shared_content_restore_invitees. (sharing) Restored shared file/folder + * invitees + * @property {TeamLogSharedContentRestoreMemberType} + * [shared_content_restore_member] - Available if .tag is + * shared_content_restore_member. (sharing) Restored users and/or groups to + * membership of shared file/folder + * @property {TeamLogSharedContentUnshareType} [shared_content_unshare] - + * Available if .tag is shared_content_unshare. (sharing) Unshared file/folder + * by clearing membership + * @property {TeamLogSharedContentViewType} [shared_content_view] - Available if + * .tag is shared_content_view. (sharing) Previewed shared file/folder + * @property {TeamLogSharedFolderChangeLinkPolicyType} + * [shared_folder_change_link_policy] - Available if .tag is + * shared_folder_change_link_policy. (sharing) Changed who can access shared + * folder via link + * @property {TeamLogSharedFolderChangeMembersInheritancePolicyType} + * [shared_folder_change_members_inheritance_policy] - Available if .tag is + * shared_folder_change_members_inheritance_policy. (sharing) Changed whether + * shared folder inherits members from parent folder + * @property {TeamLogSharedFolderChangeMembersManagementPolicyType} + * [shared_folder_change_members_management_policy] - Available if .tag is + * shared_folder_change_members_management_policy. (sharing) Changed who can + * add/remove members of shared folder + * @property {TeamLogSharedFolderChangeMembersPolicyType} + * [shared_folder_change_members_policy] - Available if .tag is + * shared_folder_change_members_policy. (sharing) Changed who can become member + * of shared folder + * @property {TeamLogSharedFolderCreateType} [shared_folder_create] - Available + * if .tag is shared_folder_create. (sharing) Created shared folder + * @property {TeamLogSharedFolderDeclineInvitationType} + * [shared_folder_decline_invitation] - Available if .tag is + * shared_folder_decline_invitation. (sharing) Declined team member's invite to + * shared folder + * @property {TeamLogSharedFolderMountType} [shared_folder_mount] - Available if + * .tag is shared_folder_mount. (sharing) Added shared folder to own Dropbox + * @property {TeamLogSharedFolderNestType} [shared_folder_nest] - Available if + * .tag is shared_folder_nest. (sharing) Changed parent of shared folder + * @property {TeamLogSharedFolderTransferOwnershipType} + * [shared_folder_transfer_ownership] - Available if .tag is + * shared_folder_transfer_ownership. (sharing) Transferred ownership of shared + * folder to another member + * @property {TeamLogSharedFolderUnmountType} [shared_folder_unmount] - + * Available if .tag is shared_folder_unmount. (sharing) Deleted shared folder + * from Dropbox + * @property {TeamLogSharedLinkAddExpiryType} [shared_link_add_expiry] - + * Available if .tag is shared_link_add_expiry. (sharing) Added shared link + * expiration date + * @property {TeamLogSharedLinkChangeExpiryType} [shared_link_change_expiry] - + * Available if .tag is shared_link_change_expiry. (sharing) Changed shared link + * expiration date + * @property {TeamLogSharedLinkChangeVisibilityType} + * [shared_link_change_visibility] - Available if .tag is + * shared_link_change_visibility. (sharing) Changed visibility of shared link + * @property {TeamLogSharedLinkCopyType} [shared_link_copy] - Available if .tag + * is shared_link_copy. (sharing) Added file/folder to Dropbox from shared link + * @property {TeamLogSharedLinkCreateType} [shared_link_create] - Available if + * .tag is shared_link_create. (sharing) Created shared link + * @property {TeamLogSharedLinkDisableType} [shared_link_disable] - Available if + * .tag is shared_link_disable. (sharing) Removed shared link + * @property {TeamLogSharedLinkDownloadType} [shared_link_download] - Available + * if .tag is shared_link_download. (sharing) Downloaded file/folder from shared + * link + * @property {TeamLogSharedLinkRemoveExpiryType} [shared_link_remove_expiry] - + * Available if .tag is shared_link_remove_expiry. (sharing) Removed shared link + * expiration date + * @property {TeamLogSharedLinkSettingsAddExpirationType} + * [shared_link_settings_add_expiration] - Available if .tag is + * shared_link_settings_add_expiration. (sharing) Added an expiration date to + * the shared link + * @property {TeamLogSharedLinkSettingsAddPasswordType} + * [shared_link_settings_add_password] - Available if .tag is + * shared_link_settings_add_password. (sharing) Added a password to the shared + * link + * @property {TeamLogSharedLinkSettingsAllowDownloadDisabledType} + * [shared_link_settings_allow_download_disabled] - Available if .tag is + * shared_link_settings_allow_download_disabled. (sharing) Disabled downloads + * @property {TeamLogSharedLinkSettingsAllowDownloadEnabledType} + * [shared_link_settings_allow_download_enabled] - Available if .tag is + * shared_link_settings_allow_download_enabled. (sharing) Enabled downloads + * @property {TeamLogSharedLinkSettingsChangeAudienceType} + * [shared_link_settings_change_audience] - Available if .tag is + * shared_link_settings_change_audience. (sharing) Changed the audience of the + * shared link + * @property {TeamLogSharedLinkSettingsChangeExpirationType} + * [shared_link_settings_change_expiration] - Available if .tag is + * shared_link_settings_change_expiration. (sharing) Changed the expiration date + * of the shared link + * @property {TeamLogSharedLinkSettingsChangePasswordType} + * [shared_link_settings_change_password] - Available if .tag is + * shared_link_settings_change_password. (sharing) Changed the password of the + * shared link + * @property {TeamLogSharedLinkSettingsRemoveExpirationType} + * [shared_link_settings_remove_expiration] - Available if .tag is + * shared_link_settings_remove_expiration. (sharing) Removed the expiration date + * from the shared link + * @property {TeamLogSharedLinkSettingsRemovePasswordType} + * [shared_link_settings_remove_password] - Available if .tag is + * shared_link_settings_remove_password. (sharing) Removed the password from the + * shared link + * @property {TeamLogSharedLinkShareType} [shared_link_share] - Available if + * .tag is shared_link_share. (sharing) Added members as audience of shared link + * @property {TeamLogSharedLinkViewType} [shared_link_view] - Available if .tag + * is shared_link_view. (sharing) Opened shared link + * @property {TeamLogSharedNoteOpenedType} [shared_note_opened] - Available if + * .tag is shared_note_opened. (sharing) Opened shared Paper doc (deprecated, no + * longer logged) + * @property {TeamLogShmodelDisableDownloadsType} [shmodel_disable_downloads] - + * Available if .tag is shmodel_disable_downloads. (sharing) Disabled downloads + * for link (deprecated, no longer logged) + * @property {TeamLogShmodelEnableDownloadsType} [shmodel_enable_downloads] - + * Available if .tag is shmodel_enable_downloads. (sharing) Enabled downloads + * for link (deprecated, no longer logged) + * @property {TeamLogShmodelGroupShareType} [shmodel_group_share] - Available if + * .tag is shmodel_group_share. (sharing) Shared link with group (deprecated, no + * longer logged) + * @property {TeamLogShowcaseAccessGrantedType} [showcase_access_granted] - + * Available if .tag is showcase_access_granted. (showcase) Granted access to + * showcase + * @property {TeamLogShowcaseAddMemberType} [showcase_add_member] - Available if + * .tag is showcase_add_member. (showcase) Added member to showcase + * @property {TeamLogShowcaseArchivedType} [showcase_archived] - Available if + * .tag is showcase_archived. (showcase) Archived showcase + * @property {TeamLogShowcaseCreatedType} [showcase_created] - Available if .tag + * is showcase_created. (showcase) Created showcase + * @property {TeamLogShowcaseDeleteCommentType} [showcase_delete_comment] - + * Available if .tag is showcase_delete_comment. (showcase) Deleted showcase + * comment + * @property {TeamLogShowcaseEditedType} [showcase_edited] - Available if .tag + * is showcase_edited. (showcase) Edited showcase + * @property {TeamLogShowcaseEditCommentType} [showcase_edit_comment] - + * Available if .tag is showcase_edit_comment. (showcase) Edited showcase + * comment + * @property {TeamLogShowcaseFileAddedType} [showcase_file_added] - Available if + * .tag is showcase_file_added. (showcase) Added file to showcase + * @property {TeamLogShowcaseFileDownloadType} [showcase_file_download] - + * Available if .tag is showcase_file_download. (showcase) Downloaded file from + * showcase + * @property {TeamLogShowcaseFileRemovedType} [showcase_file_removed] - + * Available if .tag is showcase_file_removed. (showcase) Removed file from + * showcase + * @property {TeamLogShowcaseFileViewType} [showcase_file_view] - Available if + * .tag is showcase_file_view. (showcase) Viewed file in showcase + * @property {TeamLogShowcasePermanentlyDeletedType} + * [showcase_permanently_deleted] - Available if .tag is + * showcase_permanently_deleted. (showcase) Permanently deleted showcase + * @property {TeamLogShowcasePostCommentType} [showcase_post_comment] - + * Available if .tag is showcase_post_comment. (showcase) Added showcase comment + * @property {TeamLogShowcaseRemoveMemberType} [showcase_remove_member] - + * Available if .tag is showcase_remove_member. (showcase) Removed member from + * showcase + * @property {TeamLogShowcaseRenamedType} [showcase_renamed] - Available if .tag + * is showcase_renamed. (showcase) Renamed showcase + * @property {TeamLogShowcaseRequestAccessType} [showcase_request_access] - + * Available if .tag is showcase_request_access. (showcase) Requested access to + * showcase + * @property {TeamLogShowcaseResolveCommentType} [showcase_resolve_comment] - + * Available if .tag is showcase_resolve_comment. (showcase) Resolved showcase + * comment + * @property {TeamLogShowcaseRestoredType} [showcase_restored] - Available if + * .tag is showcase_restored. (showcase) Unarchived showcase + * @property {TeamLogShowcaseTrashedType} [showcase_trashed] - Available if .tag + * is showcase_trashed. (showcase) Deleted showcase + * @property {TeamLogShowcaseTrashedDeprecatedType} + * [showcase_trashed_deprecated] - Available if .tag is + * showcase_trashed_deprecated. (showcase) Deleted showcase (old version) + * (deprecated, replaced by 'Deleted showcase') + * @property {TeamLogShowcaseUnresolveCommentType} [showcase_unresolve_comment] + * - Available if .tag is showcase_unresolve_comment. (showcase) Unresolved + * showcase comment + * @property {TeamLogShowcaseUntrashedType} [showcase_untrashed] - Available if + * .tag is showcase_untrashed. (showcase) Restored showcase + * @property {TeamLogShowcaseUntrashedDeprecatedType} + * [showcase_untrashed_deprecated] - Available if .tag is + * showcase_untrashed_deprecated. (showcase) Restored showcase (old version) + * (deprecated, replaced by 'Restored showcase') + * @property {TeamLogShowcaseViewType} [showcase_view] - Available if .tag is + * showcase_view. (showcase) Viewed showcase + * @property {TeamLogSsoAddCertType} [sso_add_cert] - Available if .tag is + * sso_add_cert. (sso) Added X.509 certificate for SSO + * @property {TeamLogSsoAddLoginUrlType} [sso_add_login_url] - Available if .tag + * is sso_add_login_url. (sso) Added sign-in URL for SSO + * @property {TeamLogSsoAddLogoutUrlType} [sso_add_logout_url] - Available if + * .tag is sso_add_logout_url. (sso) Added sign-out URL for SSO + * @property {TeamLogSsoChangeCertType} [sso_change_cert] - Available if .tag is + * sso_change_cert. (sso) Changed X.509 certificate for SSO + * @property {TeamLogSsoChangeLoginUrlType} [sso_change_login_url] - Available + * if .tag is sso_change_login_url. (sso) Changed sign-in URL for SSO + * @property {TeamLogSsoChangeLogoutUrlType} [sso_change_logout_url] - Available + * if .tag is sso_change_logout_url. (sso) Changed sign-out URL for SSO + * @property {TeamLogSsoChangeSamlIdentityModeType} + * [sso_change_saml_identity_mode] - Available if .tag is + * sso_change_saml_identity_mode. (sso) Changed SAML identity mode for SSO + * @property {TeamLogSsoRemoveCertType} [sso_remove_cert] - Available if .tag is + * sso_remove_cert. (sso) Removed X.509 certificate for SSO + * @property {TeamLogSsoRemoveLoginUrlType} [sso_remove_login_url] - Available + * if .tag is sso_remove_login_url. (sso) Removed sign-in URL for SSO + * @property {TeamLogSsoRemoveLogoutUrlType} [sso_remove_logout_url] - Available + * if .tag is sso_remove_logout_url. (sso) Removed sign-out URL for SSO + * @property {TeamLogTeamFolderChangeStatusType} [team_folder_change_status] - + * Available if .tag is team_folder_change_status. (team_folders) Changed + * archival status of team folder + * @property {TeamLogTeamFolderCreateType} [team_folder_create] - Available if + * .tag is team_folder_create. (team_folders) Created team folder in active + * status + * @property {TeamLogTeamFolderDowngradeType} [team_folder_downgrade] - + * Available if .tag is team_folder_downgrade. (team_folders) Downgraded team + * folder to regular shared folder + * @property {TeamLogTeamFolderPermanentlyDeleteType} + * [team_folder_permanently_delete] - Available if .tag is + * team_folder_permanently_delete. (team_folders) Permanently deleted archived + * team folder + * @property {TeamLogTeamFolderRenameType} [team_folder_rename] - Available if + * .tag is team_folder_rename. (team_folders) Renamed active/archived team + * folder + * @property {TeamLogTeamSelectiveSyncSettingsChangedType} + * [team_selective_sync_settings_changed] - Available if .tag is + * team_selective_sync_settings_changed. (team_folders) Changed sync default + * @property {TeamLogAccountCaptureChangePolicyType} + * [account_capture_change_policy] - Available if .tag is + * account_capture_change_policy. (team_policies) Changed account capture + * setting on team domain + * @property {TeamLogAdminEmailRemindersChangedType} + * [admin_email_reminders_changed] - Available if .tag is + * admin_email_reminders_changed. (team_policies) Changed admin reminder + * settings for requests to join the team + * @property {TeamLogAllowDownloadDisabledType} [allow_download_disabled] - + * Available if .tag is allow_download_disabled. (team_policies) Disabled + * downloads (deprecated, no longer logged) + * @property {TeamLogAllowDownloadEnabledType} [allow_download_enabled] - + * Available if .tag is allow_download_enabled. (team_policies) Enabled + * downloads (deprecated, no longer logged) + * @property {TeamLogAppPermissionsChangedType} [app_permissions_changed] - + * Available if .tag is app_permissions_changed. (team_policies) Changed app + * permissions + * @property {TeamLogCameraUploadsPolicyChangedType} + * [camera_uploads_policy_changed] - Available if .tag is + * camera_uploads_policy_changed. (team_policies) Changed camera uploads setting + * for team + * @property {TeamLogCaptureTranscriptPolicyChangedType} + * [capture_transcript_policy_changed] - Available if .tag is + * capture_transcript_policy_changed. (team_policies) Changed Capture + * transcription policy for team + * @property {TeamLogClassificationChangePolicyType} + * [classification_change_policy] - Available if .tag is + * classification_change_policy. (team_policies) Changed classification policy + * for team + * @property {TeamLogComputerBackupPolicyChangedType} + * [computer_backup_policy_changed] - Available if .tag is + * computer_backup_policy_changed. (team_policies) Changed computer backup + * policy for team + * @property {TeamLogContentAdministrationPolicyChangedType} + * [content_administration_policy_changed] - Available if .tag is + * content_administration_policy_changed. (team_policies) Changed content + * management setting + * @property {TeamLogDataPlacementRestrictionChangePolicyType} + * [data_placement_restriction_change_policy] - Available if .tag is + * data_placement_restriction_change_policy. (team_policies) Set restrictions on + * data center locations where team data resides + * @property {TeamLogDataPlacementRestrictionSatisfyPolicyType} + * [data_placement_restriction_satisfy_policy] - Available if .tag is + * data_placement_restriction_satisfy_policy. (team_policies) Completed + * restrictions on data center locations where team data resides + * @property {TeamLogDeviceApprovalsAddExceptionType} + * [device_approvals_add_exception] - Available if .tag is + * device_approvals_add_exception. (team_policies) Added members to device + * approvals exception list + * @property {TeamLogDeviceApprovalsChangeDesktopPolicyType} + * [device_approvals_change_desktop_policy] - Available if .tag is + * device_approvals_change_desktop_policy. (team_policies) Set/removed limit on + * number of computers member can link to team Dropbox account + * @property {TeamLogDeviceApprovalsChangeMobilePolicyType} + * [device_approvals_change_mobile_policy] - Available if .tag is + * device_approvals_change_mobile_policy. (team_policies) Set/removed limit on + * number of mobile devices member can link to team Dropbox account + * @property {TeamLogDeviceApprovalsChangeOverageActionType} + * [device_approvals_change_overage_action] - Available if .tag is + * device_approvals_change_overage_action. (team_policies) Changed device + * approvals setting when member is over limit + * @property {TeamLogDeviceApprovalsChangeUnlinkActionType} + * [device_approvals_change_unlink_action] - Available if .tag is + * device_approvals_change_unlink_action. (team_policies) Changed device + * approvals setting when member unlinks approved device + * @property {TeamLogDeviceApprovalsRemoveExceptionType} + * [device_approvals_remove_exception] - Available if .tag is + * device_approvals_remove_exception. (team_policies) Removed members from + * device approvals exception list + * @property {TeamLogDirectoryRestrictionsAddMembersType} + * [directory_restrictions_add_members] - Available if .tag is + * directory_restrictions_add_members. (team_policies) Added members to + * directory restrictions list + * @property {TeamLogDirectoryRestrictionsRemoveMembersType} + * [directory_restrictions_remove_members] - Available if .tag is + * directory_restrictions_remove_members. (team_policies) Removed members from + * directory restrictions list + * @property {TeamLogDropboxPasswordsPolicyChangedType} + * [dropbox_passwords_policy_changed] - Available if .tag is + * dropbox_passwords_policy_changed. (team_policies) Changed Dropbox Passwords + * policy for team + * @property {TeamLogEmailIngestPolicyChangedType} [email_ingest_policy_changed] + * - Available if .tag is email_ingest_policy_changed. (team_policies) Changed + * email to Dropbox policy for team + * @property {TeamLogEmmAddExceptionType} [emm_add_exception] - Available if + * .tag is emm_add_exception. (team_policies) Added members to EMM exception + * list + * @property {TeamLogEmmChangePolicyType} [emm_change_policy] - Available if + * .tag is emm_change_policy. (team_policies) Enabled/disabled enterprise + * mobility management for members + * @property {TeamLogEmmRemoveExceptionType} [emm_remove_exception] - Available + * if .tag is emm_remove_exception. (team_policies) Removed members from EMM + * exception list + * @property {TeamLogExtendedVersionHistoryChangePolicyType} + * [extended_version_history_change_policy] - Available if .tag is + * extended_version_history_change_policy. (team_policies) Accepted/opted out of + * extended version history + * @property {TeamLogExternalDriveBackupPolicyChangedType} + * [external_drive_backup_policy_changed] - Available if .tag is + * external_drive_backup_policy_changed. (team_policies) Changed external drive + * backup policy for team + * @property {TeamLogFileCommentsChangePolicyType} [file_comments_change_policy] + * - Available if .tag is file_comments_change_policy. (team_policies) + * Enabled/disabled commenting on team files + * @property {TeamLogFileLockingPolicyChangedType} [file_locking_policy_changed] + * - Available if .tag is file_locking_policy_changed. (team_policies) Changed + * file locking policy for team + * @property {TeamLogFileProviderMigrationPolicyChangedType} + * [file_provider_migration_policy_changed] - Available if .tag is + * file_provider_migration_policy_changed. (team_policies) Changed File Provider + * Migration policy for team + * @property {TeamLogFileRequestsChangePolicyType} [file_requests_change_policy] + * - Available if .tag is file_requests_change_policy. (team_policies) + * Enabled/disabled file requests + * @property {TeamLogFileRequestsEmailsEnabledType} + * [file_requests_emails_enabled] - Available if .tag is + * file_requests_emails_enabled. (team_policies) Enabled file request emails for + * everyone (deprecated, no longer logged) + * @property {TeamLogFileRequestsEmailsRestrictedToTeamOnlyType} + * [file_requests_emails_restricted_to_team_only] - Available if .tag is + * file_requests_emails_restricted_to_team_only. (team_policies) Enabled file + * request emails for team (deprecated, no longer logged) + * @property {TeamLogFileTransfersPolicyChangedType} + * [file_transfers_policy_changed] - Available if .tag is + * file_transfers_policy_changed. (team_policies) Changed file transfers policy + * for team + * @property {TeamLogFolderLinkRestrictionPolicyChangedType} + * [folder_link_restriction_policy_changed] - Available if .tag is + * folder_link_restriction_policy_changed. (team_policies) Changed folder link + * restrictions policy for team + * @property {TeamLogGoogleSsoChangePolicyType} [google_sso_change_policy] - + * Available if .tag is google_sso_change_policy. (team_policies) + * Enabled/disabled Google single sign-on for team + * @property {TeamLogGroupUserManagementChangePolicyType} + * [group_user_management_change_policy] - Available if .tag is + * group_user_management_change_policy. (team_policies) Changed who can create + * groups + * @property {TeamLogIntegrationPolicyChangedType} [integration_policy_changed] + * - Available if .tag is integration_policy_changed. (team_policies) Changed + * integration policy for team + * @property {TeamLogInviteAcceptanceEmailPolicyChangedType} + * [invite_acceptance_email_policy_changed] - Available if .tag is + * invite_acceptance_email_policy_changed. (team_policies) Changed invite accept + * email policy for team + * @property {TeamLogMemberRequestsChangePolicyType} + * [member_requests_change_policy] - Available if .tag is + * member_requests_change_policy. (team_policies) Changed whether users can find + * team when not invited + * @property {TeamLogMemberSendInvitePolicyChangedType} + * [member_send_invite_policy_changed] - Available if .tag is + * member_send_invite_policy_changed. (team_policies) Changed member send invite + * policy for team + * @property {TeamLogMemberSpaceLimitsAddExceptionType} + * [member_space_limits_add_exception] - Available if .tag is + * member_space_limits_add_exception. (team_policies) Added members to member + * space limit exception list + * @property {TeamLogMemberSpaceLimitsChangeCapsTypePolicyType} + * [member_space_limits_change_caps_type_policy] - Available if .tag is + * member_space_limits_change_caps_type_policy. (team_policies) Changed member + * space limit type for team + * @property {TeamLogMemberSpaceLimitsChangePolicyType} + * [member_space_limits_change_policy] - Available if .tag is + * member_space_limits_change_policy. (team_policies) Changed team default + * member space limit + * @property {TeamLogMemberSpaceLimitsRemoveExceptionType} + * [member_space_limits_remove_exception] - Available if .tag is + * member_space_limits_remove_exception. (team_policies) Removed members from + * member space limit exception list + * @property {TeamLogMemberSuggestionsChangePolicyType} + * [member_suggestions_change_policy] - Available if .tag is + * member_suggestions_change_policy. (team_policies) Enabled/disabled option for + * team members to suggest people to add to team + * @property {TeamLogMicrosoftOfficeAddinChangePolicyType} + * [microsoft_office_addin_change_policy] - Available if .tag is + * microsoft_office_addin_change_policy. (team_policies) Enabled/disabled + * Microsoft Office add-in + * @property {TeamLogNetworkControlChangePolicyType} + * [network_control_change_policy] - Available if .tag is + * network_control_change_policy. (team_policies) Enabled/disabled network + * control + * @property {TeamLogPaperChangeDeploymentPolicyType} + * [paper_change_deployment_policy] - Available if .tag is + * paper_change_deployment_policy. (team_policies) Changed whether Dropbox + * Paper, when enabled, is deployed to all members or to specific members + * @property {TeamLogPaperChangeMemberLinkPolicyType} + * [paper_change_member_link_policy] - Available if .tag is + * paper_change_member_link_policy. (team_policies) Changed whether non-members + * can view Paper docs with link (deprecated, no longer logged) + * @property {TeamLogPaperChangeMemberPolicyType} [paper_change_member_policy] - + * Available if .tag is paper_change_member_policy. (team_policies) Changed + * whether members can share Paper docs outside team, and if docs are accessible + * only by team members or anyone by default + * @property {TeamLogPaperChangePolicyType} [paper_change_policy] - Available if + * .tag is paper_change_policy. (team_policies) Enabled/disabled Dropbox Paper + * for team + * @property {TeamLogPaperDefaultFolderPolicyChangedType} + * [paper_default_folder_policy_changed] - Available if .tag is + * paper_default_folder_policy_changed. (team_policies) Changed Paper Default + * Folder Policy setting for team + * @property {TeamLogPaperDesktopPolicyChangedType} + * [paper_desktop_policy_changed] - Available if .tag is + * paper_desktop_policy_changed. (team_policies) Enabled/disabled Paper Desktop + * for team + * @property {TeamLogPaperEnabledUsersGroupAdditionType} + * [paper_enabled_users_group_addition] - Available if .tag is + * paper_enabled_users_group_addition. (team_policies) Added users to + * Paper-enabled users list + * @property {TeamLogPaperEnabledUsersGroupRemovalType} + * [paper_enabled_users_group_removal] - Available if .tag is + * paper_enabled_users_group_removal. (team_policies) Removed users from + * Paper-enabled users list + * @property {TeamLogPasswordStrengthRequirementsChangePolicyType} + * [password_strength_requirements_change_policy] - Available if .tag is + * password_strength_requirements_change_policy. (team_policies) Changed team + * password strength requirements + * @property {TeamLogPermanentDeleteChangePolicyType} + * [permanent_delete_change_policy] - Available if .tag is + * permanent_delete_change_policy. (team_policies) Enabled/disabled ability of + * team members to permanently delete content + * @property {TeamLogResellerSupportChangePolicyType} + * [reseller_support_change_policy] - Available if .tag is + * reseller_support_change_policy. (team_policies) Enabled/disabled reseller + * support + * @property {TeamLogRewindPolicyChangedType} [rewind_policy_changed] - + * Available if .tag is rewind_policy_changed. (team_policies) Changed Rewind + * policy for team + * @property {TeamLogSendForSignaturePolicyChangedType} + * [send_for_signature_policy_changed] - Available if .tag is + * send_for_signature_policy_changed. (team_policies) Changed send for signature + * policy for team + * @property {TeamLogSharingChangeFolderJoinPolicyType} + * [sharing_change_folder_join_policy] - Available if .tag is + * sharing_change_folder_join_policy. (team_policies) Changed whether team + * members can join shared folders owned outside team + * @property {TeamLogSharingChangeLinkAllowChangeExpirationPolicyType} + * [sharing_change_link_allow_change_expiration_policy] - Available if .tag is + * sharing_change_link_allow_change_expiration_policy. (team_policies) Changed + * the allow remove or change expiration policy for the links shared outside of + * the team + * @property {TeamLogSharingChangeLinkDefaultExpirationPolicyType} + * [sharing_change_link_default_expiration_policy] - Available if .tag is + * sharing_change_link_default_expiration_policy. (team_policies) Changed the + * default expiration for the links shared outside of the team + * @property {TeamLogSharingChangeLinkEnforcePasswordPolicyType} + * [sharing_change_link_enforce_password_policy] - Available if .tag is + * sharing_change_link_enforce_password_policy. (team_policies) Changed the + * password requirement for the links shared outside of the team + * @property {TeamLogSharingChangeLinkPolicyType} [sharing_change_link_policy] - + * Available if .tag is sharing_change_link_policy. (team_policies) Changed + * whether members can share links outside team, and if links are accessible + * only by team members or anyone by default + * @property {TeamLogSharingChangeMemberPolicyType} + * [sharing_change_member_policy] - Available if .tag is + * sharing_change_member_policy. (team_policies) Changed whether members can + * share files/folders outside team + * @property {TeamLogShowcaseChangeDownloadPolicyType} + * [showcase_change_download_policy] - Available if .tag is + * showcase_change_download_policy. (team_policies) Enabled/disabled downloading + * files from Dropbox Showcase for team + * @property {TeamLogShowcaseChangeEnabledPolicyType} + * [showcase_change_enabled_policy] - Available if .tag is + * showcase_change_enabled_policy. (team_policies) Enabled/disabled Dropbox + * Showcase for team + * @property {TeamLogShowcaseChangeExternalSharingPolicyType} + * [showcase_change_external_sharing_policy] - Available if .tag is + * showcase_change_external_sharing_policy. (team_policies) Enabled/disabled + * sharing Dropbox Showcase externally for team + * @property {TeamLogSmarterSmartSyncPolicyChangedType} + * [smarter_smart_sync_policy_changed] - Available if .tag is + * smarter_smart_sync_policy_changed. (team_policies) Changed automatic Smart + * Sync setting for team + * @property {TeamLogSmartSyncChangePolicyType} [smart_sync_change_policy] - + * Available if .tag is smart_sync_change_policy. (team_policies) Changed + * default Smart Sync setting for team members + * @property {TeamLogSmartSyncNotOptOutType} [smart_sync_not_opt_out] - + * Available if .tag is smart_sync_not_opt_out. (team_policies) Opted team into + * Smart Sync + * @property {TeamLogSmartSyncOptOutType} [smart_sync_opt_out] - Available if + * .tag is smart_sync_opt_out. (team_policies) Opted team out of Smart Sync + * @property {TeamLogSsoChangePolicyType} [sso_change_policy] - Available if + * .tag is sso_change_policy. (team_policies) Changed single sign-on setting for + * team + * @property {TeamLogTeamBrandingPolicyChangedType} + * [team_branding_policy_changed] - Available if .tag is + * team_branding_policy_changed. (team_policies) Changed team branding policy + * for team + * @property {TeamLogTeamExtensionsPolicyChangedType} + * [team_extensions_policy_changed] - Available if .tag is + * team_extensions_policy_changed. (team_policies) Changed App Integrations + * setting for team + * @property {TeamLogTeamSelectiveSyncPolicyChangedType} + * [team_selective_sync_policy_changed] - Available if .tag is + * team_selective_sync_policy_changed. (team_policies) Enabled/disabled Team + * Selective Sync for team + * @property {TeamLogTeamSharingWhitelistSubjectsChangedType} + * [team_sharing_whitelist_subjects_changed] - Available if .tag is + * team_sharing_whitelist_subjects_changed. (team_policies) Edited the approved + * list for sharing externally + * @property {TeamLogTfaAddExceptionType} [tfa_add_exception] - Available if + * .tag is tfa_add_exception. (team_policies) Added members to two factor + * authentication exception list + * @property {TeamLogTfaChangePolicyType} [tfa_change_policy] - Available if + * .tag is tfa_change_policy. (team_policies) Changed two-step verification + * setting for team + * @property {TeamLogTfaRemoveExceptionType} [tfa_remove_exception] - Available + * if .tag is tfa_remove_exception. (team_policies) Removed members from two + * factor authentication exception list + * @property {TeamLogTwoAccountChangePolicyType} [two_account_change_policy] - + * Available if .tag is two_account_change_policy. (team_policies) + * Enabled/disabled option for members to link personal Dropbox account and team + * account to same computer + * @property {TeamLogViewerInfoPolicyChangedType} [viewer_info_policy_changed] - + * Available if .tag is viewer_info_policy_changed. (team_policies) Changed team + * policy for viewer info + * @property {TeamLogWatermarkingPolicyChangedType} + * [watermarking_policy_changed] - Available if .tag is + * watermarking_policy_changed. (team_policies) Changed watermarking policy for + * team + * @property {TeamLogWebSessionsChangeActiveSessionLimitType} + * [web_sessions_change_active_session_limit] - Available if .tag is + * web_sessions_change_active_session_limit. (team_policies) Changed limit on + * active sessions per member + * @property {TeamLogWebSessionsChangeFixedLengthPolicyType} + * [web_sessions_change_fixed_length_policy] - Available if .tag is + * web_sessions_change_fixed_length_policy. (team_policies) Changed how long + * members can stay signed in to Dropbox.com + * @property {TeamLogWebSessionsChangeIdleLengthPolicyType} + * [web_sessions_change_idle_length_policy] - Available if .tag is + * web_sessions_change_idle_length_policy. (team_policies) Changed how long team + * members can be idle while signed in to Dropbox.com + * @property {TeamLogDataResidencyMigrationRequestSuccessfulType} + * [data_residency_migration_request_successful] - Available if .tag is + * data_residency_migration_request_successful. (team_profile) Requested data + * residency migration for team data + * @property {TeamLogDataResidencyMigrationRequestUnsuccessfulType} + * [data_residency_migration_request_unsuccessful] - Available if .tag is + * data_residency_migration_request_unsuccessful. (team_profile) Request for + * data residency migration for team data has failed + * @property {TeamLogTeamMergeFromType} [team_merge_from] - Available if .tag is + * team_merge_from. (team_profile) Merged another team into this team + * @property {TeamLogTeamMergeToType} [team_merge_to] - Available if .tag is + * team_merge_to. (team_profile) Merged this team into another team + * @property {TeamLogTeamProfileAddBackgroundType} [team_profile_add_background] + * - Available if .tag is team_profile_add_background. (team_profile) Added team + * background to display on shared link headers + * @property {TeamLogTeamProfileAddLogoType} [team_profile_add_logo] - Available + * if .tag is team_profile_add_logo. (team_profile) Added team logo to display + * on shared link headers + * @property {TeamLogTeamProfileChangeBackgroundType} + * [team_profile_change_background] - Available if .tag is + * team_profile_change_background. (team_profile) Changed team background + * displayed on shared link headers + * @property {TeamLogTeamProfileChangeDefaultLanguageType} + * [team_profile_change_default_language] - Available if .tag is + * team_profile_change_default_language. (team_profile) Changed default language + * for team + * @property {TeamLogTeamProfileChangeLogoType} [team_profile_change_logo] - + * Available if .tag is team_profile_change_logo. (team_profile) Changed team + * logo displayed on shared link headers + * @property {TeamLogTeamProfileChangeNameType} [team_profile_change_name] - + * Available if .tag is team_profile_change_name. (team_profile) Changed team + * name + * @property {TeamLogTeamProfileRemoveBackgroundType} + * [team_profile_remove_background] - Available if .tag is + * team_profile_remove_background. (team_profile) Removed team background + * displayed on shared link headers + * @property {TeamLogTeamProfileRemoveLogoType} [team_profile_remove_logo] - + * Available if .tag is team_profile_remove_logo. (team_profile) Removed team + * logo displayed on shared link headers + * @property {TeamLogTfaAddBackupPhoneType} [tfa_add_backup_phone] - Available + * if .tag is tfa_add_backup_phone. (tfa) Added backup phone for two-step + * verification + * @property {TeamLogTfaAddSecurityKeyType} [tfa_add_security_key] - Available + * if .tag is tfa_add_security_key. (tfa) Added security key for two-step + * verification + * @property {TeamLogTfaChangeBackupPhoneType} [tfa_change_backup_phone] - + * Available if .tag is tfa_change_backup_phone. (tfa) Changed backup phone for + * two-step verification + * @property {TeamLogTfaChangeStatusType} [tfa_change_status] - Available if + * .tag is tfa_change_status. (tfa) Enabled/disabled/changed two-step + * verification setting + * @property {TeamLogTfaRemoveBackupPhoneType} [tfa_remove_backup_phone] - + * Available if .tag is tfa_remove_backup_phone. (tfa) Removed backup phone for + * two-step verification + * @property {TeamLogTfaRemoveSecurityKeyType} [tfa_remove_security_key] - + * Available if .tag is tfa_remove_security_key. (tfa) Removed security key for + * two-step verification + * @property {TeamLogTfaResetType} [tfa_reset] - Available if .tag is tfa_reset. + * (tfa) Reset two-step verification for team member + * @property {TeamLogChangedEnterpriseAdminRoleType} + * [changed_enterprise_admin_role] - Available if .tag is + * changed_enterprise_admin_role. (trusted_teams) Changed enterprise admin role + * @property {TeamLogChangedEnterpriseConnectedTeamStatusType} + * [changed_enterprise_connected_team_status] - Available if .tag is + * changed_enterprise_connected_team_status. (trusted_teams) Changed + * enterprise-connected team status + * @property {TeamLogEndedEnterpriseAdminSessionType} + * [ended_enterprise_admin_session] - Available if .tag is + * ended_enterprise_admin_session. (trusted_teams) Ended enterprise admin + * session + * @property {TeamLogEndedEnterpriseAdminSessionDeprecatedType} + * [ended_enterprise_admin_session_deprecated] - Available if .tag is + * ended_enterprise_admin_session_deprecated. (trusted_teams) Ended enterprise + * admin session (deprecated, replaced by 'Ended enterprise admin session') + * @property {TeamLogEnterpriseSettingsLockingType} + * [enterprise_settings_locking] - Available if .tag is + * enterprise_settings_locking. (trusted_teams) Changed who can update a setting + * @property {TeamLogGuestAdminChangeStatusType} [guest_admin_change_status] - + * Available if .tag is guest_admin_change_status. (trusted_teams) Changed guest + * team admin status + * @property {TeamLogStartedEnterpriseAdminSessionType} + * [started_enterprise_admin_session] - Available if .tag is + * started_enterprise_admin_session. (trusted_teams) Started enterprise admin + * session + * @property {TeamLogTeamMergeRequestAcceptedType} [team_merge_request_accepted] + * - Available if .tag is team_merge_request_accepted. (trusted_teams) Accepted + * a team merge request + * @property {TeamLogTeamMergeRequestAcceptedShownToPrimaryTeamType} + * [team_merge_request_accepted_shown_to_primary_team] - Available if .tag is + * team_merge_request_accepted_shown_to_primary_team. (trusted_teams) Accepted a + * team merge request (deprecated, replaced by 'Accepted a team merge request') + * @property {TeamLogTeamMergeRequestAcceptedShownToSecondaryTeamType} + * [team_merge_request_accepted_shown_to_secondary_team] - Available if .tag is + * team_merge_request_accepted_shown_to_secondary_team. (trusted_teams) Accepted + * a team merge request (deprecated, replaced by 'Accepted a team merge + * request') + * @property {TeamLogTeamMergeRequestAutoCanceledType} + * [team_merge_request_auto_canceled] - Available if .tag is + * team_merge_request_auto_canceled. (trusted_teams) Automatically canceled team + * merge request + * @property {TeamLogTeamMergeRequestCanceledType} [team_merge_request_canceled] + * - Available if .tag is team_merge_request_canceled. (trusted_teams) Canceled + * a team merge request + * @property {TeamLogTeamMergeRequestCanceledShownToPrimaryTeamType} + * [team_merge_request_canceled_shown_to_primary_team] - Available if .tag is + * team_merge_request_canceled_shown_to_primary_team. (trusted_teams) Canceled a + * team merge request (deprecated, replaced by 'Canceled a team merge request') + * @property {TeamLogTeamMergeRequestCanceledShownToSecondaryTeamType} + * [team_merge_request_canceled_shown_to_secondary_team] - Available if .tag is + * team_merge_request_canceled_shown_to_secondary_team. (trusted_teams) Canceled + * a team merge request (deprecated, replaced by 'Canceled a team merge + * request') + * @property {TeamLogTeamMergeRequestExpiredType} [team_merge_request_expired] - + * Available if .tag is team_merge_request_expired. (trusted_teams) Team merge + * request expired + * @property {TeamLogTeamMergeRequestExpiredShownToPrimaryTeamType} + * [team_merge_request_expired_shown_to_primary_team] - Available if .tag is + * team_merge_request_expired_shown_to_primary_team. (trusted_teams) Team merge + * request expired (deprecated, replaced by 'Team merge request expired') + * @property {TeamLogTeamMergeRequestExpiredShownToSecondaryTeamType} + * [team_merge_request_expired_shown_to_secondary_team] - Available if .tag is + * team_merge_request_expired_shown_to_secondary_team. (trusted_teams) Team + * merge request expired (deprecated, replaced by 'Team merge request expired') + * @property {TeamLogTeamMergeRequestRejectedShownToPrimaryTeamType} + * [team_merge_request_rejected_shown_to_primary_team] - Available if .tag is + * team_merge_request_rejected_shown_to_primary_team. (trusted_teams) Rejected a + * team merge request (deprecated, no longer logged) + * @property {TeamLogTeamMergeRequestRejectedShownToSecondaryTeamType} + * [team_merge_request_rejected_shown_to_secondary_team] - Available if .tag is + * team_merge_request_rejected_shown_to_secondary_team. (trusted_teams) Rejected + * a team merge request (deprecated, no longer logged) + * @property {TeamLogTeamMergeRequestReminderType} [team_merge_request_reminder] + * - Available if .tag is team_merge_request_reminder. (trusted_teams) Sent a + * team merge request reminder + * @property {TeamLogTeamMergeRequestReminderShownToPrimaryTeamType} + * [team_merge_request_reminder_shown_to_primary_team] - Available if .tag is + * team_merge_request_reminder_shown_to_primary_team. (trusted_teams) Sent a + * team merge request reminder (deprecated, replaced by 'Sent a team merge + * request reminder') + * @property {TeamLogTeamMergeRequestReminderShownToSecondaryTeamType} + * [team_merge_request_reminder_shown_to_secondary_team] - Available if .tag is + * team_merge_request_reminder_shown_to_secondary_team. (trusted_teams) Sent a + * team merge request reminder (deprecated, replaced by 'Sent a team merge + * request reminder') + * @property {TeamLogTeamMergeRequestRevokedType} [team_merge_request_revoked] - + * Available if .tag is team_merge_request_revoked. (trusted_teams) Canceled the + * team merge + * @property {TeamLogTeamMergeRequestSentShownToPrimaryTeamType} + * [team_merge_request_sent_shown_to_primary_team] - Available if .tag is + * team_merge_request_sent_shown_to_primary_team. (trusted_teams) Requested to + * merge their Dropbox team into yours + * @property {TeamLogTeamMergeRequestSentShownToSecondaryTeamType} + * [team_merge_request_sent_shown_to_secondary_team] - Available if .tag is + * team_merge_request_sent_shown_to_secondary_team. (trusted_teams) Requested to + * merge your team into another Dropbox team + * @property {('admin_alerting_alert_state_changed'|'admin_alerting_changed_alert_config'|'admin_alerting_triggered_alert'|'app_blocked_by_permissions'|'app_link_team'|'app_link_user'|'app_unlink_team'|'app_unlink_user'|'integration_connected'|'integration_disconnected'|'file_add_comment'|'file_change_comment_subscription'|'file_delete_comment'|'file_edit_comment'|'file_like_comment'|'file_resolve_comment'|'file_unlike_comment'|'file_unresolve_comment'|'governance_policy_add_folders'|'governance_policy_add_folder_failed'|'governance_policy_content_disposed'|'governance_policy_create'|'governance_policy_delete'|'governance_policy_edit_details'|'governance_policy_edit_duration'|'governance_policy_export_created'|'governance_policy_export_removed'|'governance_policy_remove_folders'|'governance_policy_report_created'|'governance_policy_zip_part_downloaded'|'legal_holds_activate_a_hold'|'legal_holds_add_members'|'legal_holds_change_hold_details'|'legal_holds_change_hold_name'|'legal_holds_export_a_hold'|'legal_holds_export_cancelled'|'legal_holds_export_downloaded'|'legal_holds_export_removed'|'legal_holds_release_a_hold'|'legal_holds_remove_members'|'legal_holds_report_a_hold'|'device_change_ip_desktop'|'device_change_ip_mobile'|'device_change_ip_web'|'device_delete_on_unlink_fail'|'device_delete_on_unlink_success'|'device_link_fail'|'device_link_success'|'device_management_disabled'|'device_management_enabled'|'device_sync_backup_status_changed'|'device_unlink'|'dropbox_passwords_exported'|'dropbox_passwords_new_device_enrolled'|'emm_refresh_auth_token'|'external_drive_backup_eligibility_status_checked'|'external_drive_backup_status_changed'|'account_capture_change_availability'|'account_capture_migrate_account'|'account_capture_notification_emails_sent'|'account_capture_relinquish_account'|'disabled_domain_invites'|'domain_invites_approve_request_to_join_team'|'domain_invites_decline_request_to_join_team'|'domain_invites_email_existing_users'|'domain_invites_request_to_join_team'|'domain_invites_set_invite_new_user_pref_to_no'|'domain_invites_set_invite_new_user_pref_to_yes'|'domain_verification_add_domain_fail'|'domain_verification_add_domain_success'|'domain_verification_remove_domain'|'enabled_domain_invites'|'apply_naming_convention'|'create_folder'|'file_add'|'file_copy'|'file_delete'|'file_download'|'file_edit'|'file_get_copy_reference'|'file_locking_lock_status_changed'|'file_move'|'file_permanently_delete'|'file_preview'|'file_rename'|'file_restore'|'file_revert'|'file_rollback_changes'|'file_save_copy_reference'|'folder_overview_description_changed'|'folder_overview_item_pinned'|'folder_overview_item_unpinned'|'object_label_added'|'object_label_removed'|'object_label_updated_value'|'organize_folder_with_tidy'|'rewind_folder'|'undo_naming_convention'|'undo_organize_folder_with_tidy'|'user_tags_added'|'user_tags_removed'|'email_ingest_receive_file'|'file_request_change'|'file_request_close'|'file_request_create'|'file_request_delete'|'file_request_receive_file'|'group_add_external_id'|'group_add_member'|'group_change_external_id'|'group_change_management_type'|'group_change_member_role'|'group_create'|'group_delete'|'group_description_updated'|'group_join_policy_updated'|'group_moved'|'group_remove_external_id'|'group_remove_member'|'group_rename'|'account_lock_or_unlocked'|'emm_error'|'guest_admin_signed_in_via_trusted_teams'|'guest_admin_signed_out_via_trusted_teams'|'login_fail'|'login_success'|'logout'|'reseller_support_session_end'|'reseller_support_session_start'|'sign_in_as_session_end'|'sign_in_as_session_start'|'sso_error'|'create_team_invite_link'|'delete_team_invite_link'|'member_add_external_id'|'member_add_name'|'member_change_admin_role'|'member_change_email'|'member_change_external_id'|'member_change_membership_type'|'member_change_name'|'member_change_reseller_role'|'member_change_status'|'member_delete_manual_contacts'|'member_delete_profile_photo'|'member_permanently_delete_account_contents'|'member_remove_external_id'|'member_set_profile_photo'|'member_space_limits_add_custom_quota'|'member_space_limits_change_custom_quota'|'member_space_limits_change_status'|'member_space_limits_remove_custom_quota'|'member_suggest'|'member_transfer_account_contents'|'pending_secondary_email_added'|'secondary_email_deleted'|'secondary_email_verified'|'secondary_mails_policy_changed'|'binder_add_page'|'binder_add_section'|'binder_remove_page'|'binder_remove_section'|'binder_rename_page'|'binder_rename_section'|'binder_reorder_page'|'binder_reorder_section'|'paper_content_add_member'|'paper_content_add_to_folder'|'paper_content_archive'|'paper_content_create'|'paper_content_permanently_delete'|'paper_content_remove_from_folder'|'paper_content_remove_member'|'paper_content_rename'|'paper_content_restore'|'paper_doc_add_comment'|'paper_doc_change_member_role'|'paper_doc_change_sharing_policy'|'paper_doc_change_subscription'|'paper_doc_deleted'|'paper_doc_delete_comment'|'paper_doc_download'|'paper_doc_edit'|'paper_doc_edit_comment'|'paper_doc_followed'|'paper_doc_mention'|'paper_doc_ownership_changed'|'paper_doc_request_access'|'paper_doc_resolve_comment'|'paper_doc_revert'|'paper_doc_slack_share'|'paper_doc_team_invite'|'paper_doc_trashed'|'paper_doc_unresolve_comment'|'paper_doc_untrashed'|'paper_doc_view'|'paper_external_view_allow'|'paper_external_view_default_team'|'paper_external_view_forbid'|'paper_folder_change_subscription'|'paper_folder_deleted'|'paper_folder_followed'|'paper_folder_team_invite'|'paper_published_link_change_permission'|'paper_published_link_create'|'paper_published_link_disabled'|'paper_published_link_view'|'password_change'|'password_reset'|'password_reset_all'|'classification_create_report'|'classification_create_report_fail'|'emm_create_exceptions_report'|'emm_create_usage_report'|'export_members_report'|'export_members_report_fail'|'external_sharing_create_report'|'external_sharing_report_failed'|'no_expiration_link_gen_create_report'|'no_expiration_link_gen_report_failed'|'no_password_link_gen_create_report'|'no_password_link_gen_report_failed'|'no_password_link_view_create_report'|'no_password_link_view_report_failed'|'outdated_link_view_create_report'|'outdated_link_view_report_failed'|'paper_admin_export_start'|'smart_sync_create_admin_privilege_report'|'team_activity_create_report'|'team_activity_create_report_fail'|'collection_share'|'file_transfers_file_add'|'file_transfers_transfer_delete'|'file_transfers_transfer_download'|'file_transfers_transfer_send'|'file_transfers_transfer_view'|'note_acl_invite_only'|'note_acl_link'|'note_acl_team_link'|'note_shared'|'note_share_receive'|'open_note_shared'|'sf_add_group'|'sf_allow_non_members_to_view_shared_links'|'sf_external_invite_warn'|'sf_fb_invite'|'sf_fb_invite_change_role'|'sf_fb_uninvite'|'sf_invite_group'|'sf_team_grant_access'|'sf_team_invite'|'sf_team_invite_change_role'|'sf_team_join'|'sf_team_join_from_oob_link'|'sf_team_uninvite'|'shared_content_add_invitees'|'shared_content_add_link_expiry'|'shared_content_add_link_password'|'shared_content_add_member'|'shared_content_change_downloads_policy'|'shared_content_change_invitee_role'|'shared_content_change_link_audience'|'shared_content_change_link_expiry'|'shared_content_change_link_password'|'shared_content_change_member_role'|'shared_content_change_viewer_info_policy'|'shared_content_claim_invitation'|'shared_content_copy'|'shared_content_download'|'shared_content_relinquish_membership'|'shared_content_remove_invitees'|'shared_content_remove_link_expiry'|'shared_content_remove_link_password'|'shared_content_remove_member'|'shared_content_request_access'|'shared_content_restore_invitees'|'shared_content_restore_member'|'shared_content_unshare'|'shared_content_view'|'shared_folder_change_link_policy'|'shared_folder_change_members_inheritance_policy'|'shared_folder_change_members_management_policy'|'shared_folder_change_members_policy'|'shared_folder_create'|'shared_folder_decline_invitation'|'shared_folder_mount'|'shared_folder_nest'|'shared_folder_transfer_ownership'|'shared_folder_unmount'|'shared_link_add_expiry'|'shared_link_change_expiry'|'shared_link_change_visibility'|'shared_link_copy'|'shared_link_create'|'shared_link_disable'|'shared_link_download'|'shared_link_remove_expiry'|'shared_link_settings_add_expiration'|'shared_link_settings_add_password'|'shared_link_settings_allow_download_disabled'|'shared_link_settings_allow_download_enabled'|'shared_link_settings_change_audience'|'shared_link_settings_change_expiration'|'shared_link_settings_change_password'|'shared_link_settings_remove_expiration'|'shared_link_settings_remove_password'|'shared_link_share'|'shared_link_view'|'shared_note_opened'|'shmodel_disable_downloads'|'shmodel_enable_downloads'|'shmodel_group_share'|'showcase_access_granted'|'showcase_add_member'|'showcase_archived'|'showcase_created'|'showcase_delete_comment'|'showcase_edited'|'showcase_edit_comment'|'showcase_file_added'|'showcase_file_download'|'showcase_file_removed'|'showcase_file_view'|'showcase_permanently_deleted'|'showcase_post_comment'|'showcase_remove_member'|'showcase_renamed'|'showcase_request_access'|'showcase_resolve_comment'|'showcase_restored'|'showcase_trashed'|'showcase_trashed_deprecated'|'showcase_unresolve_comment'|'showcase_untrashed'|'showcase_untrashed_deprecated'|'showcase_view'|'sso_add_cert'|'sso_add_login_url'|'sso_add_logout_url'|'sso_change_cert'|'sso_change_login_url'|'sso_change_logout_url'|'sso_change_saml_identity_mode'|'sso_remove_cert'|'sso_remove_login_url'|'sso_remove_logout_url'|'team_folder_change_status'|'team_folder_create'|'team_folder_downgrade'|'team_folder_permanently_delete'|'team_folder_rename'|'team_selective_sync_settings_changed'|'account_capture_change_policy'|'admin_email_reminders_changed'|'allow_download_disabled'|'allow_download_enabled'|'app_permissions_changed'|'camera_uploads_policy_changed'|'capture_transcript_policy_changed'|'classification_change_policy'|'computer_backup_policy_changed'|'content_administration_policy_changed'|'data_placement_restriction_change_policy'|'data_placement_restriction_satisfy_policy'|'device_approvals_add_exception'|'device_approvals_change_desktop_policy'|'device_approvals_change_mobile_policy'|'device_approvals_change_overage_action'|'device_approvals_change_unlink_action'|'device_approvals_remove_exception'|'directory_restrictions_add_members'|'directory_restrictions_remove_members'|'dropbox_passwords_policy_changed'|'email_ingest_policy_changed'|'emm_add_exception'|'emm_change_policy'|'emm_remove_exception'|'extended_version_history_change_policy'|'external_drive_backup_policy_changed'|'file_comments_change_policy'|'file_locking_policy_changed'|'file_provider_migration_policy_changed'|'file_requests_change_policy'|'file_requests_emails_enabled'|'file_requests_emails_restricted_to_team_only'|'file_transfers_policy_changed'|'folder_link_restriction_policy_changed'|'google_sso_change_policy'|'group_user_management_change_policy'|'integration_policy_changed'|'invite_acceptance_email_policy_changed'|'member_requests_change_policy'|'member_send_invite_policy_changed'|'member_space_limits_add_exception'|'member_space_limits_change_caps_type_policy'|'member_space_limits_change_policy'|'member_space_limits_remove_exception'|'member_suggestions_change_policy'|'microsoft_office_addin_change_policy'|'network_control_change_policy'|'paper_change_deployment_policy'|'paper_change_member_link_policy'|'paper_change_member_policy'|'paper_change_policy'|'paper_default_folder_policy_changed'|'paper_desktop_policy_changed'|'paper_enabled_users_group_addition'|'paper_enabled_users_group_removal'|'password_strength_requirements_change_policy'|'permanent_delete_change_policy'|'reseller_support_change_policy'|'rewind_policy_changed'|'send_for_signature_policy_changed'|'sharing_change_folder_join_policy'|'sharing_change_link_allow_change_expiration_policy'|'sharing_change_link_default_expiration_policy'|'sharing_change_link_enforce_password_policy'|'sharing_change_link_policy'|'sharing_change_member_policy'|'showcase_change_download_policy'|'showcase_change_enabled_policy'|'showcase_change_external_sharing_policy'|'smarter_smart_sync_policy_changed'|'smart_sync_change_policy'|'smart_sync_not_opt_out'|'smart_sync_opt_out'|'sso_change_policy'|'team_branding_policy_changed'|'team_extensions_policy_changed'|'team_selective_sync_policy_changed'|'team_sharing_whitelist_subjects_changed'|'tfa_add_exception'|'tfa_change_policy'|'tfa_remove_exception'|'two_account_change_policy'|'viewer_info_policy_changed'|'watermarking_policy_changed'|'web_sessions_change_active_session_limit'|'web_sessions_change_fixed_length_policy'|'web_sessions_change_idle_length_policy'|'data_residency_migration_request_successful'|'data_residency_migration_request_unsuccessful'|'team_merge_from'|'team_merge_to'|'team_profile_add_background'|'team_profile_add_logo'|'team_profile_change_background'|'team_profile_change_default_language'|'team_profile_change_logo'|'team_profile_change_name'|'team_profile_remove_background'|'team_profile_remove_logo'|'tfa_add_backup_phone'|'tfa_add_security_key'|'tfa_change_backup_phone'|'tfa_change_status'|'tfa_remove_backup_phone'|'tfa_remove_security_key'|'tfa_reset'|'changed_enterprise_admin_role'|'changed_enterprise_connected_team_status'|'ended_enterprise_admin_session'|'ended_enterprise_admin_session_deprecated'|'enterprise_settings_locking'|'guest_admin_change_status'|'started_enterprise_admin_session'|'team_merge_request_accepted'|'team_merge_request_accepted_shown_to_primary_team'|'team_merge_request_accepted_shown_to_secondary_team'|'team_merge_request_auto_canceled'|'team_merge_request_canceled'|'team_merge_request_canceled_shown_to_primary_team'|'team_merge_request_canceled_shown_to_secondary_team'|'team_merge_request_expired'|'team_merge_request_expired_shown_to_primary_team'|'team_merge_request_expired_shown_to_secondary_team'|'team_merge_request_rejected_shown_to_primary_team'|'team_merge_request_rejected_shown_to_secondary_team'|'team_merge_request_reminder'|'team_merge_request_reminder_shown_to_primary_team'|'team_merge_request_reminder_shown_to_secondary_team'|'team_merge_request_revoked'|'team_merge_request_sent_shown_to_primary_team'|'team_merge_request_sent_shown_to_secondary_team'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * The type of the event. + * @typedef {Object} TeamLogEventTypeArg + * @property {('admin_alerting_alert_state_changed'|'admin_alerting_changed_alert_config'|'admin_alerting_triggered_alert'|'app_blocked_by_permissions'|'app_link_team'|'app_link_user'|'app_unlink_team'|'app_unlink_user'|'integration_connected'|'integration_disconnected'|'file_add_comment'|'file_change_comment_subscription'|'file_delete_comment'|'file_edit_comment'|'file_like_comment'|'file_resolve_comment'|'file_unlike_comment'|'file_unresolve_comment'|'governance_policy_add_folders'|'governance_policy_add_folder_failed'|'governance_policy_content_disposed'|'governance_policy_create'|'governance_policy_delete'|'governance_policy_edit_details'|'governance_policy_edit_duration'|'governance_policy_export_created'|'governance_policy_export_removed'|'governance_policy_remove_folders'|'governance_policy_report_created'|'governance_policy_zip_part_downloaded'|'legal_holds_activate_a_hold'|'legal_holds_add_members'|'legal_holds_change_hold_details'|'legal_holds_change_hold_name'|'legal_holds_export_a_hold'|'legal_holds_export_cancelled'|'legal_holds_export_downloaded'|'legal_holds_export_removed'|'legal_holds_release_a_hold'|'legal_holds_remove_members'|'legal_holds_report_a_hold'|'device_change_ip_desktop'|'device_change_ip_mobile'|'device_change_ip_web'|'device_delete_on_unlink_fail'|'device_delete_on_unlink_success'|'device_link_fail'|'device_link_success'|'device_management_disabled'|'device_management_enabled'|'device_sync_backup_status_changed'|'device_unlink'|'dropbox_passwords_exported'|'dropbox_passwords_new_device_enrolled'|'emm_refresh_auth_token'|'external_drive_backup_eligibility_status_checked'|'external_drive_backup_status_changed'|'account_capture_change_availability'|'account_capture_migrate_account'|'account_capture_notification_emails_sent'|'account_capture_relinquish_account'|'disabled_domain_invites'|'domain_invites_approve_request_to_join_team'|'domain_invites_decline_request_to_join_team'|'domain_invites_email_existing_users'|'domain_invites_request_to_join_team'|'domain_invites_set_invite_new_user_pref_to_no'|'domain_invites_set_invite_new_user_pref_to_yes'|'domain_verification_add_domain_fail'|'domain_verification_add_domain_success'|'domain_verification_remove_domain'|'enabled_domain_invites'|'apply_naming_convention'|'create_folder'|'file_add'|'file_copy'|'file_delete'|'file_download'|'file_edit'|'file_get_copy_reference'|'file_locking_lock_status_changed'|'file_move'|'file_permanently_delete'|'file_preview'|'file_rename'|'file_restore'|'file_revert'|'file_rollback_changes'|'file_save_copy_reference'|'folder_overview_description_changed'|'folder_overview_item_pinned'|'folder_overview_item_unpinned'|'object_label_added'|'object_label_removed'|'object_label_updated_value'|'organize_folder_with_tidy'|'rewind_folder'|'undo_naming_convention'|'undo_organize_folder_with_tidy'|'user_tags_added'|'user_tags_removed'|'email_ingest_receive_file'|'file_request_change'|'file_request_close'|'file_request_create'|'file_request_delete'|'file_request_receive_file'|'group_add_external_id'|'group_add_member'|'group_change_external_id'|'group_change_management_type'|'group_change_member_role'|'group_create'|'group_delete'|'group_description_updated'|'group_join_policy_updated'|'group_moved'|'group_remove_external_id'|'group_remove_member'|'group_rename'|'account_lock_or_unlocked'|'emm_error'|'guest_admin_signed_in_via_trusted_teams'|'guest_admin_signed_out_via_trusted_teams'|'login_fail'|'login_success'|'logout'|'reseller_support_session_end'|'reseller_support_session_start'|'sign_in_as_session_end'|'sign_in_as_session_start'|'sso_error'|'create_team_invite_link'|'delete_team_invite_link'|'member_add_external_id'|'member_add_name'|'member_change_admin_role'|'member_change_email'|'member_change_external_id'|'member_change_membership_type'|'member_change_name'|'member_change_reseller_role'|'member_change_status'|'member_delete_manual_contacts'|'member_delete_profile_photo'|'member_permanently_delete_account_contents'|'member_remove_external_id'|'member_set_profile_photo'|'member_space_limits_add_custom_quota'|'member_space_limits_change_custom_quota'|'member_space_limits_change_status'|'member_space_limits_remove_custom_quota'|'member_suggest'|'member_transfer_account_contents'|'pending_secondary_email_added'|'secondary_email_deleted'|'secondary_email_verified'|'secondary_mails_policy_changed'|'binder_add_page'|'binder_add_section'|'binder_remove_page'|'binder_remove_section'|'binder_rename_page'|'binder_rename_section'|'binder_reorder_page'|'binder_reorder_section'|'paper_content_add_member'|'paper_content_add_to_folder'|'paper_content_archive'|'paper_content_create'|'paper_content_permanently_delete'|'paper_content_remove_from_folder'|'paper_content_remove_member'|'paper_content_rename'|'paper_content_restore'|'paper_doc_add_comment'|'paper_doc_change_member_role'|'paper_doc_change_sharing_policy'|'paper_doc_change_subscription'|'paper_doc_deleted'|'paper_doc_delete_comment'|'paper_doc_download'|'paper_doc_edit'|'paper_doc_edit_comment'|'paper_doc_followed'|'paper_doc_mention'|'paper_doc_ownership_changed'|'paper_doc_request_access'|'paper_doc_resolve_comment'|'paper_doc_revert'|'paper_doc_slack_share'|'paper_doc_team_invite'|'paper_doc_trashed'|'paper_doc_unresolve_comment'|'paper_doc_untrashed'|'paper_doc_view'|'paper_external_view_allow'|'paper_external_view_default_team'|'paper_external_view_forbid'|'paper_folder_change_subscription'|'paper_folder_deleted'|'paper_folder_followed'|'paper_folder_team_invite'|'paper_published_link_change_permission'|'paper_published_link_create'|'paper_published_link_disabled'|'paper_published_link_view'|'password_change'|'password_reset'|'password_reset_all'|'classification_create_report'|'classification_create_report_fail'|'emm_create_exceptions_report'|'emm_create_usage_report'|'export_members_report'|'export_members_report_fail'|'external_sharing_create_report'|'external_sharing_report_failed'|'no_expiration_link_gen_create_report'|'no_expiration_link_gen_report_failed'|'no_password_link_gen_create_report'|'no_password_link_gen_report_failed'|'no_password_link_view_create_report'|'no_password_link_view_report_failed'|'outdated_link_view_create_report'|'outdated_link_view_report_failed'|'paper_admin_export_start'|'smart_sync_create_admin_privilege_report'|'team_activity_create_report'|'team_activity_create_report_fail'|'collection_share'|'file_transfers_file_add'|'file_transfers_transfer_delete'|'file_transfers_transfer_download'|'file_transfers_transfer_send'|'file_transfers_transfer_view'|'note_acl_invite_only'|'note_acl_link'|'note_acl_team_link'|'note_shared'|'note_share_receive'|'open_note_shared'|'sf_add_group'|'sf_allow_non_members_to_view_shared_links'|'sf_external_invite_warn'|'sf_fb_invite'|'sf_fb_invite_change_role'|'sf_fb_uninvite'|'sf_invite_group'|'sf_team_grant_access'|'sf_team_invite'|'sf_team_invite_change_role'|'sf_team_join'|'sf_team_join_from_oob_link'|'sf_team_uninvite'|'shared_content_add_invitees'|'shared_content_add_link_expiry'|'shared_content_add_link_password'|'shared_content_add_member'|'shared_content_change_downloads_policy'|'shared_content_change_invitee_role'|'shared_content_change_link_audience'|'shared_content_change_link_expiry'|'shared_content_change_link_password'|'shared_content_change_member_role'|'shared_content_change_viewer_info_policy'|'shared_content_claim_invitation'|'shared_content_copy'|'shared_content_download'|'shared_content_relinquish_membership'|'shared_content_remove_invitees'|'shared_content_remove_link_expiry'|'shared_content_remove_link_password'|'shared_content_remove_member'|'shared_content_request_access'|'shared_content_restore_invitees'|'shared_content_restore_member'|'shared_content_unshare'|'shared_content_view'|'shared_folder_change_link_policy'|'shared_folder_change_members_inheritance_policy'|'shared_folder_change_members_management_policy'|'shared_folder_change_members_policy'|'shared_folder_create'|'shared_folder_decline_invitation'|'shared_folder_mount'|'shared_folder_nest'|'shared_folder_transfer_ownership'|'shared_folder_unmount'|'shared_link_add_expiry'|'shared_link_change_expiry'|'shared_link_change_visibility'|'shared_link_copy'|'shared_link_create'|'shared_link_disable'|'shared_link_download'|'shared_link_remove_expiry'|'shared_link_settings_add_expiration'|'shared_link_settings_add_password'|'shared_link_settings_allow_download_disabled'|'shared_link_settings_allow_download_enabled'|'shared_link_settings_change_audience'|'shared_link_settings_change_expiration'|'shared_link_settings_change_password'|'shared_link_settings_remove_expiration'|'shared_link_settings_remove_password'|'shared_link_share'|'shared_link_view'|'shared_note_opened'|'shmodel_disable_downloads'|'shmodel_enable_downloads'|'shmodel_group_share'|'showcase_access_granted'|'showcase_add_member'|'showcase_archived'|'showcase_created'|'showcase_delete_comment'|'showcase_edited'|'showcase_edit_comment'|'showcase_file_added'|'showcase_file_download'|'showcase_file_removed'|'showcase_file_view'|'showcase_permanently_deleted'|'showcase_post_comment'|'showcase_remove_member'|'showcase_renamed'|'showcase_request_access'|'showcase_resolve_comment'|'showcase_restored'|'showcase_trashed'|'showcase_trashed_deprecated'|'showcase_unresolve_comment'|'showcase_untrashed'|'showcase_untrashed_deprecated'|'showcase_view'|'sso_add_cert'|'sso_add_login_url'|'sso_add_logout_url'|'sso_change_cert'|'sso_change_login_url'|'sso_change_logout_url'|'sso_change_saml_identity_mode'|'sso_remove_cert'|'sso_remove_login_url'|'sso_remove_logout_url'|'team_folder_change_status'|'team_folder_create'|'team_folder_downgrade'|'team_folder_permanently_delete'|'team_folder_rename'|'team_selective_sync_settings_changed'|'account_capture_change_policy'|'admin_email_reminders_changed'|'allow_download_disabled'|'allow_download_enabled'|'app_permissions_changed'|'camera_uploads_policy_changed'|'capture_transcript_policy_changed'|'classification_change_policy'|'computer_backup_policy_changed'|'content_administration_policy_changed'|'data_placement_restriction_change_policy'|'data_placement_restriction_satisfy_policy'|'device_approvals_add_exception'|'device_approvals_change_desktop_policy'|'device_approvals_change_mobile_policy'|'device_approvals_change_overage_action'|'device_approvals_change_unlink_action'|'device_approvals_remove_exception'|'directory_restrictions_add_members'|'directory_restrictions_remove_members'|'dropbox_passwords_policy_changed'|'email_ingest_policy_changed'|'emm_add_exception'|'emm_change_policy'|'emm_remove_exception'|'extended_version_history_change_policy'|'external_drive_backup_policy_changed'|'file_comments_change_policy'|'file_locking_policy_changed'|'file_provider_migration_policy_changed'|'file_requests_change_policy'|'file_requests_emails_enabled'|'file_requests_emails_restricted_to_team_only'|'file_transfers_policy_changed'|'folder_link_restriction_policy_changed'|'google_sso_change_policy'|'group_user_management_change_policy'|'integration_policy_changed'|'invite_acceptance_email_policy_changed'|'member_requests_change_policy'|'member_send_invite_policy_changed'|'member_space_limits_add_exception'|'member_space_limits_change_caps_type_policy'|'member_space_limits_change_policy'|'member_space_limits_remove_exception'|'member_suggestions_change_policy'|'microsoft_office_addin_change_policy'|'network_control_change_policy'|'paper_change_deployment_policy'|'paper_change_member_link_policy'|'paper_change_member_policy'|'paper_change_policy'|'paper_default_folder_policy_changed'|'paper_desktop_policy_changed'|'paper_enabled_users_group_addition'|'paper_enabled_users_group_removal'|'password_strength_requirements_change_policy'|'permanent_delete_change_policy'|'reseller_support_change_policy'|'rewind_policy_changed'|'send_for_signature_policy_changed'|'sharing_change_folder_join_policy'|'sharing_change_link_allow_change_expiration_policy'|'sharing_change_link_default_expiration_policy'|'sharing_change_link_enforce_password_policy'|'sharing_change_link_policy'|'sharing_change_member_policy'|'showcase_change_download_policy'|'showcase_change_enabled_policy'|'showcase_change_external_sharing_policy'|'smarter_smart_sync_policy_changed'|'smart_sync_change_policy'|'smart_sync_not_opt_out'|'smart_sync_opt_out'|'sso_change_policy'|'team_branding_policy_changed'|'team_extensions_policy_changed'|'team_selective_sync_policy_changed'|'team_sharing_whitelist_subjects_changed'|'tfa_add_exception'|'tfa_change_policy'|'tfa_remove_exception'|'two_account_change_policy'|'viewer_info_policy_changed'|'watermarking_policy_changed'|'web_sessions_change_active_session_limit'|'web_sessions_change_fixed_length_policy'|'web_sessions_change_idle_length_policy'|'data_residency_migration_request_successful'|'data_residency_migration_request_unsuccessful'|'team_merge_from'|'team_merge_to'|'team_profile_add_background'|'team_profile_add_logo'|'team_profile_change_background'|'team_profile_change_default_language'|'team_profile_change_logo'|'team_profile_change_name'|'team_profile_remove_background'|'team_profile_remove_logo'|'tfa_add_backup_phone'|'tfa_add_security_key'|'tfa_change_backup_phone'|'tfa_change_status'|'tfa_remove_backup_phone'|'tfa_remove_security_key'|'tfa_reset'|'changed_enterprise_admin_role'|'changed_enterprise_connected_team_status'|'ended_enterprise_admin_session'|'ended_enterprise_admin_session_deprecated'|'enterprise_settings_locking'|'guest_admin_change_status'|'started_enterprise_admin_session'|'team_merge_request_accepted'|'team_merge_request_accepted_shown_to_primary_team'|'team_merge_request_accepted_shown_to_secondary_team'|'team_merge_request_auto_canceled'|'team_merge_request_canceled'|'team_merge_request_canceled_shown_to_primary_team'|'team_merge_request_canceled_shown_to_secondary_team'|'team_merge_request_expired'|'team_merge_request_expired_shown_to_primary_team'|'team_merge_request_expired_shown_to_secondary_team'|'team_merge_request_rejected_shown_to_primary_team'|'team_merge_request_rejected_shown_to_secondary_team'|'team_merge_request_reminder'|'team_merge_request_reminder_shown_to_primary_team'|'team_merge_request_reminder_shown_to_secondary_team'|'team_merge_request_revoked'|'team_merge_request_sent_shown_to_primary_team'|'team_merge_request_sent_shown_to_secondary_team'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Created member data report. + * @typedef {Object} TeamLogExportMembersReportDetails + */ + +/** + * Failed to create members data report. + * @typedef {Object} TeamLogExportMembersReportFailDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ + +/** + * @typedef {Object} TeamLogExportMembersReportFailType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogExportMembersReportType + * @property {string} description + */ + +/** + * Accepted/opted out of extended version history. + * @typedef {Object} TeamLogExtendedVersionHistoryChangePolicyDetails + * @property {TeamLogExtendedVersionHistoryPolicy} new_value - New extended + * version history policy. + * @property {TeamLogExtendedVersionHistoryPolicy} [previous_value] - Previous + * extended version history policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogExtendedVersionHistoryChangePolicyType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogExtendedVersionHistoryPolicy + * @property {('explicitly_limited'|'explicitly_unlimited'|'implicitly_limited'|'implicitly_unlimited'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * External Drive Backup eligibility status + * @typedef {Object} TeamLogExternalDriveBackupEligibilityStatus + * @property {('exceed_license_cap'|'success'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Checked external drive backup eligibility status. + * @typedef {Object} TeamLogExternalDriveBackupEligibilityStatusCheckedDetails + * @property {TeamLogDesktopDeviceSessionLogInfo} desktop_device_session_info - + * Device's session logged information. + * @property {TeamLogExternalDriveBackupEligibilityStatus} status - Current + * eligibility status of external drive backup. + * @property {number} number_of_external_drive_backup - Total number of valid + * external drive backup for all the team members. + */ + +/** + * @typedef {Object} TeamLogExternalDriveBackupEligibilityStatusCheckedType + * @property {string} description + */ + +/** + * Policy for controlling team access to external drive backup feature + * @typedef {Object} TeamLogExternalDriveBackupPolicy + * @property {('default'|'disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed external drive backup policy for team. + * @typedef {Object} TeamLogExternalDriveBackupPolicyChangedDetails + * @property {TeamLogExternalDriveBackupPolicy} new_value - New external drive + * backup policy. + * @property {TeamLogExternalDriveBackupPolicy} previous_value - Previous + * external drive backup policy. + */ + +/** + * @typedef {Object} TeamLogExternalDriveBackupPolicyChangedType + * @property {string} description + */ + +/** + * External Drive Backup status + * @typedef {Object} TeamLogExternalDriveBackupStatus + * @property {('broken'|'created'|'created_or_broken'|'deleted'|'empty'|'unknown'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Modified external drive backup. + * @typedef {Object} TeamLogExternalDriveBackupStatusChangedDetails + * @property {TeamLogDesktopDeviceSessionLogInfo} desktop_device_session_info - + * Device's session logged information. + * @property {TeamLogExternalDriveBackupStatus} previous_value - Previous status + * of this external drive backup. + * @property {TeamLogExternalDriveBackupStatus} new_value - Next status of this + * external drive backup. + */ + +/** + * @typedef {Object} TeamLogExternalDriveBackupStatusChangedType + * @property {string} description + */ + +/** + * Created External sharing report. + * @typedef {Object} TeamLogExternalSharingCreateReportDetails + */ + +/** + * @typedef {Object} TeamLogExternalSharingCreateReportType + * @property {string} description + */ + +/** + * Couldn't create External sharing report. + * @typedef {Object} TeamLogExternalSharingReportFailedDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ + +/** + * @typedef {Object} TeamLogExternalSharingReportFailedType + * @property {string} description + */ + +/** + * A user without a Dropbox account. + * @typedef {Object} TeamLogExternalUserLogInfo + * @property {string} user_identifier - An external user identifier. + * @property {TeamLogIdentifierType} identifier_type - Identifier type. + */ + +/** + * Provides details about a failure + * @typedef {Object} TeamLogFailureDetailsLogInfo + * @property {string} [user_friendly_message] - A user friendly explanation of + * the error. + * @property {string} [technical_error_message] - A technical explanation of the + * error. This is relevant for some errors. + */ + +/** + * @typedef {Object} TeamLogFedAdminRole + * @property {('enterprise_admin'|'not_enterprise_admin'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * More details about the organization or team. + * @typedef {Object} TeamLogFedExtraDetails + * @property {TeamLogOrganizationDetails} [organization] - Available if .tag is + * organization. More details about the organization. + * @property {TeamLogTeamDetails} [team] - Available if .tag is team. More + * details about the team. + * @property {('organization'|'team'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLogFedHandshakeAction + * @property {('accepted_invite'|'canceled_invite'|'invite_expired'|'invited'|'rejected_invite'|'removed_team'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Additional information about the organization or connected team + * @typedef {Object} TeamLogFederationStatusChangeAdditionalInfo + * @property {TeamLogConnectedTeamName} [connected_team_name] - Available if + * .tag is connected_team_name. The name of the team. + * @property {TeamLogNonTrustedTeamDetails} [non_trusted_team_details] - + * Available if .tag is non_trusted_team_details. The email to which the request + * was sent. + * @property {TeamLogOrganizationName} [organization_name] - Available if .tag + * is organization_name. The name of the organization. + * @property {('connected_team_name'|'non_trusted_team_details'|'organization_name'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Added file comment. + * @typedef {Object} TeamLogFileAddCommentDetails + * @property {string} [comment_text] - Comment text. + */ + +/** + * @typedef {Object} TeamLogFileAddCommentType + * @property {string} description + */ + +/** + * Added files and/or folders. + * @typedef {Object} TeamLogFileAddDetails + */ + +/** + * @typedef {Object} TeamLogFileAddType + * @property {string} description + */ + +/** + * Subscribed to or unsubscribed from comment notifications for file. + * @typedef {Object} TeamLogFileChangeCommentSubscriptionDetails + * @property {TeamLogFileCommentNotificationPolicy} new_value - New file comment + * subscription. + * @property {TeamLogFileCommentNotificationPolicy} [previous_value] - Previous + * file comment subscription. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogFileChangeCommentSubscriptionType + * @property {string} description + */ + +/** + * Enable or disable file comments notifications + * @typedef {Object} TeamLogFileCommentNotificationPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Enabled/disabled commenting on team files. + * @typedef {Object} TeamLogFileCommentsChangePolicyDetails + * @property {TeamLogFileCommentsPolicy} new_value - New commenting on team + * files policy. + * @property {TeamLogFileCommentsPolicy} [previous_value] - Previous commenting + * on team files policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogFileCommentsChangePolicyType + * @property {string} description + */ + +/** + * File comments policy + * @typedef {Object} TeamLogFileCommentsPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Copied files and/or folders. + * @typedef {Object} TeamLogFileCopyDetails + * @property {Array.} + * relocate_action_details - Relocate action details. + */ + +/** + * @typedef {Object} TeamLogFileCopyType + * @property {string} description + */ + +/** + * Deleted file comment. + * @typedef {Object} TeamLogFileDeleteCommentDetails + * @property {string} [comment_text] - Comment text. + */ + +/** + * @typedef {Object} TeamLogFileDeleteCommentType + * @property {string} description + */ + +/** + * Deleted files and/or folders. + * @typedef {Object} TeamLogFileDeleteDetails + */ + +/** + * @typedef {Object} TeamLogFileDeleteType + * @property {string} description + */ + +/** + * Downloaded files and/or folders. + * @typedef {Object} TeamLogFileDownloadDetails + */ + +/** + * @typedef {Object} TeamLogFileDownloadType + * @property {string} description + */ + +/** + * Edited file comment. + * @typedef {Object} TeamLogFileEditCommentDetails + * @property {string} previous_comment_text - Previous comment text. + * @property {string} [comment_text] - Comment text. + */ + +/** + * @typedef {Object} TeamLogFileEditCommentType + * @property {string} description + */ + +/** + * Edited files. + * @typedef {Object} TeamLogFileEditDetails + */ + +/** + * @typedef {Object} TeamLogFileEditType + * @property {string} description + */ + +/** + * Created copy reference to file/folder. + * @typedef {Object} TeamLogFileGetCopyReferenceDetails + */ + +/** + * @typedef {Object} TeamLogFileGetCopyReferenceType + * @property {string} description + */ + +/** + * Liked file comment. + * @typedef {Object} TeamLogFileLikeCommentDetails + * @property {string} [comment_text] - Comment text. + */ + +/** + * @typedef {Object} TeamLogFileLikeCommentType + * @property {string} description + */ + +/** + * Locked/unlocked editing for a file. + * @typedef {Object} TeamLogFileLockingLockStatusChangedDetails + * @property {TeamLogLockStatus} previous_value - Previous lock status of the + * file. + * @property {TeamLogLockStatus} new_value - New lock status of the file. + */ + +/** + * @typedef {Object} TeamLogFileLockingLockStatusChangedType + * @property {string} description + */ + +/** + * Changed file locking policy for team. + * @typedef {Object} TeamLogFileLockingPolicyChangedDetails + * @property {TeamPoliciesFileLockingPolicyState} new_value - New file locking + * policy. + * @property {TeamPoliciesFileLockingPolicyState} previous_value - Previous file + * locking policy. + */ + +/** + * @typedef {Object} TeamLogFileLockingPolicyChangedType + * @property {string} description + */ + +/** + * File's logged information. + * @typedef {Object} TeamLogFileLogInfo + * @property {TeamLogPathLogInfo} path - Path relative to event context. + * @property {string} [display_name] - Display name. + * @property {string} [file_id] - Unique ID. + * @property {number} [file_size] - File or folder size in bytes. + */ + +/** + * Moved files and/or folders. + * @typedef {Object} TeamLogFileMoveDetails + * @property {Array.} + * relocate_action_details - Relocate action details. + */ + +/** + * @typedef {Object} TeamLogFileMoveType + * @property {string} description + */ + +/** + * Generic information relevant both for files and folders + * @typedef {Object} TeamLogFileOrFolderLogInfo + * @property {TeamLogPathLogInfo} path - Path relative to event context. + * @property {string} [display_name] - Display name. + * @property {string} [file_id] - Unique ID. + * @property {number} [file_size] - File or folder size in bytes. + */ + +/** + * Permanently deleted files and/or folders. + * @typedef {Object} TeamLogFilePermanentlyDeleteDetails + */ + +/** + * @typedef {Object} TeamLogFilePermanentlyDeleteType + * @property {string} description + */ + +/** + * Previewed files and/or folders. + * @typedef {Object} TeamLogFilePreviewDetails + */ + +/** + * @typedef {Object} TeamLogFilePreviewType + * @property {string} description + */ + +/** + * Changed File Provider Migration policy for team. + * @typedef {Object} TeamLogFileProviderMigrationPolicyChangedDetails + * @property {TeamPoliciesFileProviderMigrationPolicyState} new_value - To. + * @property {TeamPoliciesFileProviderMigrationPolicyState} previous_value - + * From. + */ + +/** + * @typedef {Object} TeamLogFileProviderMigrationPolicyChangedType + * @property {string} description + */ + +/** + * Renamed files and/or folders. + * @typedef {Object} TeamLogFileRenameDetails + * @property {Array.} + * relocate_action_details - Relocate action details. + */ + +/** + * @typedef {Object} TeamLogFileRenameType + * @property {string} description + */ + +/** + * Changed file request. + * @typedef {Object} TeamLogFileRequestChangeDetails + * @property {TeamLogFileRequestDetails} new_details - New file request details. + * @property {string} [file_request_id] - File request id. Might be missing due + * to historical data gap. + * @property {TeamLogFileRequestDetails} [previous_details] - Previous file + * request details. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogFileRequestChangeType + * @property {string} description + */ + +/** + * Closed file request. + * @typedef {Object} TeamLogFileRequestCloseDetails + * @property {string} [file_request_id] - File request id. Might be missing due + * to historical data gap. + * @property {TeamLogFileRequestDetails} [previous_details] - Previous file + * request details. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogFileRequestCloseType + * @property {string} description + */ + +/** + * Created file request. + * @typedef {Object} TeamLogFileRequestCreateDetails + * @property {string} [file_request_id] - File request id. Might be missing due + * to historical data gap. + * @property {TeamLogFileRequestDetails} [request_details] - File request + * details. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogFileRequestCreateType + * @property {string} description + */ + +/** + * File request deadline + * @typedef {Object} TeamLogFileRequestDeadline + * @property {Timestamp} [deadline] - The deadline for this file request. Might + * be missing due to historical data gap. + * @property {string} [allow_late_uploads] - If set, allow uploads after the + * deadline has passed. + */ + +/** + * Delete file request. + * @typedef {Object} TeamLogFileRequestDeleteDetails + * @property {string} [file_request_id] - File request id. Might be missing due + * to historical data gap. + * @property {TeamLogFileRequestDetails} [previous_details] - Previous file + * request details. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogFileRequestDeleteType + * @property {string} description + */ + +/** + * File request details + * @typedef {Object} TeamLogFileRequestDetails + * @property {number} asset_index - Asset position in the Assets list. + * @property {TeamLogFileRequestDeadline} [deadline] - File request deadline. + */ + +/** + * Received files for file request. + * @typedef {Object} TeamLogFileRequestReceiveFileDetails + * @property {Array.} submitted_file_names - Submitted file names. + * @property {string} [file_request_id] - File request id. Might be missing due + * to historical data gap. + * @property {TeamLogFileRequestDetails} [file_request_details] - File request + * details. Might be missing due to historical data gap. + * @property {string} [submitter_name] - The name as provided by the submitter. + * @property {string} [submitter_email] - The email as provided by the + * submitter. + */ + +/** + * @typedef {Object} TeamLogFileRequestReceiveFileType + * @property {string} description + */ + +/** + * Enabled/disabled file requests. + * @typedef {Object} TeamLogFileRequestsChangePolicyDetails + * @property {TeamLogFileRequestsPolicy} new_value - New file requests policy. + * @property {TeamLogFileRequestsPolicy} [previous_value] - Previous file + * requests policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogFileRequestsChangePolicyType + * @property {string} description + */ + +/** + * Enabled file request emails for everyone. + * @typedef {Object} TeamLogFileRequestsEmailsEnabledDetails + */ + +/** + * @typedef {Object} TeamLogFileRequestsEmailsEnabledType + * @property {string} description + */ + +/** + * Enabled file request emails for team. + * @typedef {Object} TeamLogFileRequestsEmailsRestrictedToTeamOnlyDetails + */ + +/** + * @typedef {Object} TeamLogFileRequestsEmailsRestrictedToTeamOnlyType + * @property {string} description + */ + +/** + * File requests policy + * @typedef {Object} TeamLogFileRequestsPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Resolved file comment. + * @typedef {Object} TeamLogFileResolveCommentDetails + * @property {string} [comment_text] - Comment text. + */ + +/** + * @typedef {Object} TeamLogFileResolveCommentType + * @property {string} description + */ + +/** + * Restored deleted files and/or folders. + * @typedef {Object} TeamLogFileRestoreDetails + */ + +/** + * @typedef {Object} TeamLogFileRestoreType + * @property {string} description + */ + +/** + * Reverted files to previous version. + * @typedef {Object} TeamLogFileRevertDetails + */ + +/** + * @typedef {Object} TeamLogFileRevertType + * @property {string} description + */ + +/** + * Rolled back file actions. + * @typedef {Object} TeamLogFileRollbackChangesDetails + */ + +/** + * @typedef {Object} TeamLogFileRollbackChangesType + * @property {string} description + */ + +/** + * Saved file/folder using copy reference. + * @typedef {Object} TeamLogFileSaveCopyReferenceDetails + * @property {Array.} + * relocate_action_details - Relocate action details. + */ + +/** + * @typedef {Object} TeamLogFileSaveCopyReferenceType + * @property {string} description + */ + +/** + * Transfer files added. + * @typedef {Object} TeamLogFileTransfersFileAddDetails + * @property {string} file_transfer_id - Transfer id. + */ + +/** + * @typedef {Object} TeamLogFileTransfersFileAddType + * @property {string} description + */ + +/** + * File transfers policy + * @typedef {Object} TeamLogFileTransfersPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed file transfers policy for team. + * @typedef {Object} TeamLogFileTransfersPolicyChangedDetails + * @property {TeamLogFileTransfersPolicy} new_value - New file transfers policy. + * @property {TeamLogFileTransfersPolicy} previous_value - Previous file + * transfers policy. + */ + +/** + * @typedef {Object} TeamLogFileTransfersPolicyChangedType + * @property {string} description + */ + +/** + * Deleted transfer. + * @typedef {Object} TeamLogFileTransfersTransferDeleteDetails + * @property {string} file_transfer_id - Transfer id. + */ + +/** + * @typedef {Object} TeamLogFileTransfersTransferDeleteType + * @property {string} description + */ + +/** + * Transfer downloaded. + * @typedef {Object} TeamLogFileTransfersTransferDownloadDetails + * @property {string} file_transfer_id - Transfer id. + */ + +/** + * @typedef {Object} TeamLogFileTransfersTransferDownloadType + * @property {string} description + */ + +/** + * Sent transfer. + * @typedef {Object} TeamLogFileTransfersTransferSendDetails + * @property {string} file_transfer_id - Transfer id. + */ + +/** + * @typedef {Object} TeamLogFileTransfersTransferSendType + * @property {string} description + */ + +/** + * Viewed transfer. + * @typedef {Object} TeamLogFileTransfersTransferViewDetails + * @property {string} file_transfer_id - Transfer id. + */ + +/** + * @typedef {Object} TeamLogFileTransfersTransferViewType + * @property {string} description + */ + +/** + * Unliked file comment. + * @typedef {Object} TeamLogFileUnlikeCommentDetails + * @property {string} [comment_text] - Comment text. + */ + +/** + * @typedef {Object} TeamLogFileUnlikeCommentType + * @property {string} description + */ + +/** + * Unresolved file comment. + * @typedef {Object} TeamLogFileUnresolveCommentDetails + * @property {string} [comment_text] - Comment text. + */ + +/** + * @typedef {Object} TeamLogFileUnresolveCommentType + * @property {string} description + */ + +/** + * Policy for deciding whether applying link restrictions on all team owned + * folders + * @typedef {Object} TeamLogFolderLinkRestrictionPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed folder link restrictions policy for team. + * @typedef {Object} TeamLogFolderLinkRestrictionPolicyChangedDetails + * @property {TeamLogFolderLinkRestrictionPolicy} new_value - To. + * @property {TeamLogFolderLinkRestrictionPolicy} previous_value - From. + */ + +/** + * @typedef {Object} TeamLogFolderLinkRestrictionPolicyChangedType + * @property {string} description + */ + +/** + * Folder's logged information. + * @typedef {Object} TeamLogFolderLogInfo + * @property {TeamLogPathLogInfo} path - Path relative to event context. + * @property {string} [display_name] - Display name. + * @property {string} [file_id] - Unique ID. + * @property {number} [file_size] - File or folder size in bytes. + * @property {number} [file_count] - Number of files within the folder. + */ + +/** + * Updated folder overview. + * @typedef {Object} TeamLogFolderOverviewDescriptionChangedDetails + * @property {number} folder_overview_location_asset - Folder Overview location + * position in the Assets list. + */ + +/** + * @typedef {Object} TeamLogFolderOverviewDescriptionChangedType + * @property {string} description + */ + +/** + * Pinned item to folder overview. + * @typedef {Object} TeamLogFolderOverviewItemPinnedDetails + * @property {number} folder_overview_location_asset - Folder Overview location + * position in the Assets list. + * @property {Array.} pinned_items_asset_indices - Pinned items + * positions in the Assets list. + */ + +/** + * @typedef {Object} TeamLogFolderOverviewItemPinnedType + * @property {string} description + */ + +/** + * Unpinned item from folder overview. + * @typedef {Object} TeamLogFolderOverviewItemUnpinnedDetails + * @property {number} folder_overview_location_asset - Folder Overview location + * position in the Assets list. + * @property {Array.} pinned_items_asset_indices - Pinned items + * positions in the Assets list. + */ + +/** + * @typedef {Object} TeamLogFolderOverviewItemUnpinnedType + * @property {string} description + */ + +/** + * Geographic location details. + * @typedef {Object} TeamLogGeoLocationLogInfo + * @property {string} ip_address - IP address. + * @property {string} [city] - City name. + * @property {string} [region] - Region name. + * @property {string} [country] - Country code. + */ + +/** + * @typedef {Object} TeamLogGetTeamEventsArg + * @property {number} limit - The maximal number of results to return per call. + * Note that some calls may not return limit number of events, and may even + * return no events, even with `has_more` set to true. In this case, callers + * should fetch again using get_events/continue. + * @property {string} [account_id] - Filter the events by account ID. Return + * only events with this account_id as either Actor, Context, or Participants. + * @property {TeamCommonTimeRange} [time] - Filter by time range. + * @property {TeamLogEventCategory} [category] - Filter the returned events to a + * single category. Note that category shouldn't be provided together with + * event_type. + * @property {TeamLogEventTypeArg} [event_type] - Filter the returned events to + * a single event type. Note that event_type shouldn't be provided together with + * category. + */ + +/** + * @typedef {Object} TeamLogGetTeamEventsContinueArg + * @property {string} cursor - Indicates from what point to get the next set of + * events. + */ + +/** + * Errors that can be raised when calling get_events/continue. + * @typedef {Object} TeamLogGetTeamEventsContinueError + * @property {Timestamp} [reset] - Available if .tag is reset. Cursors are + * intended to be used quickly. Individual cursor values are normally valid for + * days, but in rare cases may be reset sooner. Cursor reset errors should be + * handled by fetching a new cursor from :route:`get_events`. The associated + * value is the approximate timestamp of the most recent event returned by the + * cursor. This should be used as a resumption point when calling + * :route:`get_events` to obtain a new cursor. + * @property {('bad_cursor'|'reset'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Errors that can be raised when calling get_events. + * @typedef {Object} TeamLogGetTeamEventsError + * @property {('account_id_not_found'|'invalid_time_range'|'invalid_filters'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLogGetTeamEventsResult + * @property {Array.} events - List of events. Note that + * events are not guaranteed to be sorted by their timestamp value. + * @property {string} cursor - Pass the cursor into get_events/continue to + * obtain additional events. The value of cursor may change for each response + * from get_events/continue, regardless of the value of has_more; older cursor + * strings may expire. Thus, callers should ensure that they update their cursor + * based on the latest value of cursor after each call, and poll regularly if + * they wish to poll for new events. Callers should handle reset exceptions for + * expired cursors. + * @property {boolean} has_more - Is true if there may be additional events that + * have not been returned yet. An additional call to get_events/continue can + * retrieve them. Note that has_more may be true, even if events is empty. + */ + +/** + * Enabled/disabled Google single sign-on for team. + * @typedef {Object} TeamLogGoogleSsoChangePolicyDetails + * @property {TeamLogGoogleSsoPolicy} new_value - New Google single sign-on + * policy. + * @property {TeamLogGoogleSsoPolicy} [previous_value] - Previous Google single + * sign-on policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogGoogleSsoChangePolicyType + * @property {string} description + */ + +/** + * Google SSO policy + * @typedef {Object} TeamLogGoogleSsoPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Couldn't add a folder to a policy. + * @typedef {Object} TeamLogGovernancePolicyAddFolderFailedDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {string} folder - Folder. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + * @property {string} [reason] - Reason. + */ + +/** + * @typedef {Object} TeamLogGovernancePolicyAddFolderFailedType + * @property {string} description + */ + +/** + * Added folders to policy. + * @typedef {Object} TeamLogGovernancePolicyAddFoldersDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + * @property {Array.} [folders] - Folders. + */ + +/** + * @typedef {Object} TeamLogGovernancePolicyAddFoldersType + * @property {string} description + */ + +/** + * Content disposed. + * @typedef {Object} TeamLogGovernancePolicyContentDisposedDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogDispositionActionType} disposition_type - Disposition type. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ + +/** + * @typedef {Object} TeamLogGovernancePolicyContentDisposedType + * @property {string} description + */ + +/** + * Activated a new policy. + * @typedef {Object} TeamLogGovernancePolicyCreateDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogDurationLogInfo} duration - Duration in days. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + * @property {Array.} [folders] - Folders. + */ + +/** + * @typedef {Object} TeamLogGovernancePolicyCreateType + * @property {string} description + */ + +/** + * Deleted a policy. + * @typedef {Object} TeamLogGovernancePolicyDeleteDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ + +/** + * @typedef {Object} TeamLogGovernancePolicyDeleteType + * @property {string} description + */ + +/** + * Edited policy. + * @typedef {Object} TeamLogGovernancePolicyEditDetailsDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {string} attribute - Attribute. + * @property {string} previous_value - From. + * @property {string} new_value - To. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ + +/** + * @typedef {Object} TeamLogGovernancePolicyEditDetailsType + * @property {string} description + */ + +/** + * Changed policy duration. + * @typedef {Object} TeamLogGovernancePolicyEditDurationDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogDurationLogInfo} previous_value - From. + * @property {TeamLogDurationLogInfo} new_value - To. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ + +/** + * @typedef {Object} TeamLogGovernancePolicyEditDurationType + * @property {string} description + */ + +/** + * Created a policy download. + * @typedef {Object} TeamLogGovernancePolicyExportCreatedDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {string} export_name - Export name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ + +/** + * @typedef {Object} TeamLogGovernancePolicyExportCreatedType + * @property {string} description + */ + +/** + * Removed a policy download. + * @typedef {Object} TeamLogGovernancePolicyExportRemovedDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {string} export_name - Export name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ + +/** + * @typedef {Object} TeamLogGovernancePolicyExportRemovedType + * @property {string} description + */ + +/** + * Removed folders from policy. + * @typedef {Object} TeamLogGovernancePolicyRemoveFoldersDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + * @property {Array.} [folders] - Folders. + * @property {string} [reason] - Reason. + */ + +/** + * @typedef {Object} TeamLogGovernancePolicyRemoveFoldersType + * @property {string} description + */ + +/** + * Created a summary report for a policy. + * @typedef {Object} TeamLogGovernancePolicyReportCreatedDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + */ + +/** + * @typedef {Object} TeamLogGovernancePolicyReportCreatedType + * @property {string} description + */ + +/** + * Downloaded content from a policy. + * @typedef {Object} TeamLogGovernancePolicyZipPartDownloadedDetails + * @property {string} governance_policy_id - Policy ID. + * @property {string} name - Policy name. + * @property {string} export_name - Export name. + * @property {TeamLogPolicyType} [policy_type] - Policy type. + * @property {string} [part] - Part. + */ + +/** + * @typedef {Object} TeamLogGovernancePolicyZipPartDownloadedType + * @property {string} description + */ + +/** + * Added external ID for group. + * @typedef {Object} TeamLogGroupAddExternalIdDetails + * @property {string} new_value - Current external id. + */ + +/** + * @typedef {Object} TeamLogGroupAddExternalIdType + * @property {string} description + */ + +/** + * Added team members to group. + * @typedef {Object} TeamLogGroupAddMemberDetails + * @property {boolean} is_group_owner - Is group owner. + */ + +/** + * @typedef {Object} TeamLogGroupAddMemberType + * @property {string} description + */ + +/** + * Changed external ID for group. + * @typedef {Object} TeamLogGroupChangeExternalIdDetails + * @property {string} new_value - Current external id. + * @property {string} previous_value - Old external id. + */ + +/** + * @typedef {Object} TeamLogGroupChangeExternalIdType + * @property {string} description + */ + +/** + * Changed group management type. + * @typedef {Object} TeamLogGroupChangeManagementTypeDetails + * @property {TeamCommonGroupManagementType} new_value - New group management + * type. + * @property {TeamCommonGroupManagementType} [previous_value] - Previous group + * management type. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogGroupChangeManagementTypeType + * @property {string} description + */ + +/** + * Changed manager permissions of group member. + * @typedef {Object} TeamLogGroupChangeMemberRoleDetails + * @property {boolean} is_group_owner - Is group owner. + */ + +/** + * @typedef {Object} TeamLogGroupChangeMemberRoleType + * @property {string} description + */ + +/** + * Created group. + * @typedef {Object} TeamLogGroupCreateDetails + * @property {boolean} [is_company_managed] - Is company managed group. + * @property {TeamLogGroupJoinPolicy} [join_policy] - Group join policy. + */ + +/** + * @typedef {Object} TeamLogGroupCreateType + * @property {string} description + */ + +/** + * Deleted group. + * @typedef {Object} TeamLogGroupDeleteDetails + * @property {boolean} [is_company_managed] - Is company managed group. + */ + +/** + * @typedef {Object} TeamLogGroupDeleteType + * @property {string} description + */ + +/** + * Updated group. + * @typedef {Object} TeamLogGroupDescriptionUpdatedDetails + */ + +/** + * @typedef {Object} TeamLogGroupDescriptionUpdatedType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogGroupJoinPolicy + * @property {('open'|'request_to_join'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Updated group join policy. + * @typedef {Object} TeamLogGroupJoinPolicyUpdatedDetails + * @property {boolean} [is_company_managed] - Is company managed group. + * @property {TeamLogGroupJoinPolicy} [join_policy] - Group join policy. + */ + +/** + * @typedef {Object} TeamLogGroupJoinPolicyUpdatedType + * @property {string} description + */ + +/** + * Group's logged information. + * @typedef {Object} TeamLogGroupLogInfo + * @property {string} display_name - The name of this group. + * @property {string} [group_id] - The unique id of this group. + * @property {string} [external_id] - External group ID. + */ + +/** + * Moved group. + * @typedef {Object} TeamLogGroupMovedDetails + */ + +/** + * @typedef {Object} TeamLogGroupMovedType + * @property {string} description + */ + +/** + * Removed external ID for group. + * @typedef {Object} TeamLogGroupRemoveExternalIdDetails + * @property {string} previous_value - Old external id. + */ + +/** + * @typedef {Object} TeamLogGroupRemoveExternalIdType + * @property {string} description + */ + +/** + * Removed team members from group. + * @typedef {Object} TeamLogGroupRemoveMemberDetails + */ + +/** + * @typedef {Object} TeamLogGroupRemoveMemberType + * @property {string} description + */ + +/** + * Renamed group. + * @typedef {Object} TeamLogGroupRenameDetails + * @property {string} previous_value - Previous display name. + * @property {string} new_value - New display name. + */ + +/** + * @typedef {Object} TeamLogGroupRenameType + * @property {string} description + */ + +/** + * Changed who can create groups. + * @typedef {Object} TeamLogGroupUserManagementChangePolicyDetails + * @property {TeamPoliciesGroupCreation} new_value - New group users management + * policy. + * @property {TeamPoliciesGroupCreation} [previous_value] - Previous group users + * management policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogGroupUserManagementChangePolicyType + * @property {string} description + */ + +/** + * Changed guest team admin status. + * @typedef {Object} TeamLogGuestAdminChangeStatusDetails + * @property {boolean} is_guest - True for guest, false for host. + * @property {TeamLogTrustedTeamsRequestState} previous_value - Previous request + * state. + * @property {TeamLogTrustedTeamsRequestState} new_value - New request state. + * @property {TeamLogTrustedTeamsRequestAction} action_details - Action details. + * @property {string} [guest_team_name] - The name of the guest team. + * @property {string} [host_team_name] - The name of the host team. + */ + +/** + * @typedef {Object} TeamLogGuestAdminChangeStatusType + * @property {string} description + */ + +/** + * Started trusted team admin session. + * @typedef {Object} TeamLogGuestAdminSignedInViaTrustedTeamsDetails + * @property {string} [team_name] - Host team name. + * @property {string} [trusted_team_name] - Trusted team name. + */ + +/** + * @typedef {Object} TeamLogGuestAdminSignedInViaTrustedTeamsType + * @property {string} description + */ + +/** + * Ended trusted team admin session. + * @typedef {Object} TeamLogGuestAdminSignedOutViaTrustedTeamsDetails + * @property {string} [team_name] - Host team name. + * @property {string} [trusted_team_name] - Trusted team name. + */ + +/** + * @typedef {Object} TeamLogGuestAdminSignedOutViaTrustedTeamsType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogIdentifierType + * @property {('email'|'facebook_profile_name'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Connected integration for member. + * @typedef {Object} TeamLogIntegrationConnectedDetails + * @property {string} integration_name - Name of the third-party integration. + */ + +/** + * @typedef {Object} TeamLogIntegrationConnectedType + * @property {string} description + */ + +/** + * Disconnected integration for member. + * @typedef {Object} TeamLogIntegrationDisconnectedDetails + * @property {string} integration_name - Name of the third-party integration. + */ + +/** + * @typedef {Object} TeamLogIntegrationDisconnectedType + * @property {string} description + */ + +/** + * Policy for controlling whether a service integration is enabled for the team. + * @typedef {Object} TeamLogIntegrationPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed integration policy for team. + * @typedef {Object} TeamLogIntegrationPolicyChangedDetails + * @property {string} integration_name - Name of the third-party integration. + * @property {TeamLogIntegrationPolicy} new_value - New integration policy. + * @property {TeamLogIntegrationPolicy} previous_value - Previous integration + * policy. + */ + +/** + * @typedef {Object} TeamLogIntegrationPolicyChangedType + * @property {string} description + */ + +/** + * Policy for deciding whether team admins receive email when an invitation to + * join the team is accepted + * @typedef {Object} TeamLogInviteAcceptanceEmailPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed invite accept email policy for team. + * @typedef {Object} TeamLogInviteAcceptanceEmailPolicyChangedDetails + * @property {TeamLogInviteAcceptanceEmailPolicy} new_value - To. + * @property {TeamLogInviteAcceptanceEmailPolicy} previous_value - From. + */ + +/** + * @typedef {Object} TeamLogInviteAcceptanceEmailPolicyChangedType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogInviteMethod + * @property {('auto_approve'|'invite_link'|'member_invite'|'moved_from_another_team'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Additional information relevant when a new member joins the team. + * @typedef {Object} TeamLogJoinTeamDetails + * @property {Array.} linked_apps - Linked + * applications. (Deprecated) Please use has_linked_apps boolean field instead. + * @property {Array.} linked_devices - Linked + * devices. (Deprecated) Please use has_linked_devices boolean field instead. + * @property {Array.} linked_shared_folders - Linked + * shared folders. (Deprecated) Please use has_linked_shared_folders boolean + * field instead. + * @property {boolean} [was_linked_apps_truncated] - (Deprecated) True if the + * linked_apps list was truncated to the maximum supported length (50). + * @property {boolean} [was_linked_devices_truncated] - (Deprecated) True if the + * linked_devices list was truncated to the maximum supported length (50). + * @property {boolean} [was_linked_shared_folders_truncated] - (Deprecated) True + * if the linked_shared_folders list was truncated to the maximum supported + * length (50). + * @property {boolean} [has_linked_apps] - True if the user had linked apps at + * event time. + * @property {boolean} [has_linked_devices] - True if the user had linked apps + * at event time. + * @property {boolean} [has_linked_shared_folders] - True if the user had linked + * shared folders at event time. + */ + +/** + * Label type + * @typedef {Object} TeamLogLabelType + * @property {('personal_information'|'test_only'|'user_defined_tag'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Information on sessions, in legacy format + * @typedef {Object} TeamLogLegacyDeviceSessionLogInfo +@property {'legacy_device_session'} [.tag] - Tag identifying this subtype +variant. This field is only present when needed to discriminate between multiple +possible subtypes. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + * @property + * {(TeamLogWebSessionLogInfo|TeamLogDesktopSessionLogInfo|TeamLogMobileSessionLogInfo|TeamLogSessionLogInfo)} + * [session_info] - Session unique id. + * @property {string} [display_name] - The device name. Might be missing due to + * historical data gap. + * @property {boolean} [is_emm_managed] - Is device managed by emm. Might be + * missing due to historical data gap. + * @property {string} [platform] - Information on the hosting platform. Might be + * missing due to historical data gap. + * @property {string} [mac_address] - The mac address of the last activity from + * this session. Might be missing due to historical data gap. + * @property {string} [os_version] - The hosting OS version. Might be missing + * due to historical data gap. + * @property {string} [device_type] - Information on the hosting device type. + * Might be missing due to historical data gap. + * @property {string} [client_version] - The Dropbox client version. Might be + * missing due to historical data gap. + * @property {string} [legacy_uniq_id] - Alternative unique device session id, + * instead of session id field. Might be missing due to historical data gap. + */ + +/** + * Activated a hold. + * @typedef {Object} TeamLogLegalHoldsActivateAHoldDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + * @property {Timestamp} start_date - Hold start date. + * @property {Timestamp} [end_date] - Hold end date. + */ + +/** + * @typedef {Object} TeamLogLegalHoldsActivateAHoldType + * @property {string} description + */ + +/** + * Added members to a hold. + * @typedef {Object} TeamLogLegalHoldsAddMembersDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + */ + +/** + * @typedef {Object} TeamLogLegalHoldsAddMembersType + * @property {string} description + */ + +/** + * Edited details for a hold. + * @typedef {Object} TeamLogLegalHoldsChangeHoldDetailsDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + * @property {string} previous_value - Previous details. + * @property {string} new_value - New details. + */ + +/** + * @typedef {Object} TeamLogLegalHoldsChangeHoldDetailsType + * @property {string} description + */ + +/** + * Renamed a hold. + * @typedef {Object} TeamLogLegalHoldsChangeHoldNameDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} previous_value - Previous Name. + * @property {string} new_value - New Name. + */ + +/** + * @typedef {Object} TeamLogLegalHoldsChangeHoldNameType + * @property {string} description + */ + +/** + * Exported hold. + * @typedef {Object} TeamLogLegalHoldsExportAHoldDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + * @property {string} [export_name] - Export name. + */ + +/** + * @typedef {Object} TeamLogLegalHoldsExportAHoldType + * @property {string} description + */ + +/** + * Canceled export for a hold. + * @typedef {Object} TeamLogLegalHoldsExportCancelledDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + * @property {string} export_name - Export name. + */ + +/** + * @typedef {Object} TeamLogLegalHoldsExportCancelledType + * @property {string} description + */ + +/** + * Downloaded export for a hold. + * @typedef {Object} TeamLogLegalHoldsExportDownloadedDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + * @property {string} export_name - Export name. + * @property {string} [part] - Part. + * @property {string} [file_name] - Filename. + */ + +/** + * @typedef {Object} TeamLogLegalHoldsExportDownloadedType + * @property {string} description + */ + +/** + * Removed export for a hold. + * @typedef {Object} TeamLogLegalHoldsExportRemovedDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + * @property {string} export_name - Export name. + */ + +/** + * @typedef {Object} TeamLogLegalHoldsExportRemovedType + * @property {string} description + */ + +/** + * Released a hold. + * @typedef {Object} TeamLogLegalHoldsReleaseAHoldDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + */ + +/** + * @typedef {Object} TeamLogLegalHoldsReleaseAHoldType + * @property {string} description + */ + +/** + * Removed members from a hold. + * @typedef {Object} TeamLogLegalHoldsRemoveMembersDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + */ + +/** + * @typedef {Object} TeamLogLegalHoldsRemoveMembersType + * @property {string} description + */ + +/** + * Created a summary report for a hold. + * @typedef {Object} TeamLogLegalHoldsReportAHoldDetails + * @property {string} legal_hold_id - Hold ID. + * @property {string} name - Hold name. + */ + +/** + * @typedef {Object} TeamLogLegalHoldsReportAHoldType + * @property {string} description + */ + +/** + * The device sessions that user is linked to. + * @typedef {Object} TeamLogLinkedDeviceLogInfo + * @property {TeamLogDesktopDeviceSessionLogInfo} [desktop_device_session] - + * Available if .tag is desktop_device_session. desktop device session's + * details. + * @property {TeamLogLegacyDeviceSessionLogInfo} [legacy_device_session] - + * Available if .tag is legacy_device_session. legacy device session's details. + * @property {TeamLogMobileDeviceSessionLogInfo} [mobile_device_session] - + * Available if .tag is mobile_device_session. mobile device session's details. + * @property {TeamLogWebDeviceSessionLogInfo} [web_device_session] - Available + * if .tag is web_device_session. web device session's details. + * @property {('desktop_device_session'|'legacy_device_session'|'mobile_device_session'|'web_device_session'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * File lock status + * @typedef {Object} TeamLogLockStatus + * @property {('locked'|'unlocked'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Failed to sign in. + * @typedef {Object} TeamLogLoginFailDetails + * @property {TeamLogLoginMethod} login_method - Login method. + * @property {TeamLogFailureDetailsLogInfo} error_details - Error details. + * @property {boolean} [is_emm_managed] - Tells if the login device is EMM + * managed. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogLoginFailType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogLoginMethod + * @property {('apple_oauth'|'first_party_token_exchange'|'google_oauth'|'password'|'qr_code'|'saml'|'two_factor_authentication'|'web_session'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Signed in. + * @typedef {Object} TeamLogLoginSuccessDetails + * @property {TeamLogLoginMethod} login_method - Login method. + * @property {boolean} [is_emm_managed] - Tells if the login device is EMM + * managed. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogLoginSuccessType + * @property {string} description + */ + +/** + * Signed out. + * @typedef {Object} TeamLogLogoutDetails + * @property {string} [login_id] - Login session id. + */ + +/** + * @typedef {Object} TeamLogLogoutType + * @property {string} description + */ + +/** + * Added an external ID for team member. + * @typedef {Object} TeamLogMemberAddExternalIdDetails + * @property {string} new_value - Current external id. + */ + +/** + * @typedef {Object} TeamLogMemberAddExternalIdType + * @property {string} description + */ + +/** + * Added team member name. + * @typedef {Object} TeamLogMemberAddNameDetails + * @property {TeamLogUserNameLogInfo} new_value - New user's name. + */ + +/** + * @typedef {Object} TeamLogMemberAddNameType + * @property {string} description + */ + +/** + * Changed team member admin role. + * @typedef {Object} TeamLogMemberChangeAdminRoleDetails + * @property {TeamLogAdminRole} [new_value] - New admin role. This field is + * relevant when the admin role is changed or whenthe user role changes from no + * admin rights to with admin rights. + * @property {TeamLogAdminRole} [previous_value] - Previous admin role. This + * field is relevant when the admin role is changed or when the admin role is + * removed. + */ + +/** + * @typedef {Object} TeamLogMemberChangeAdminRoleType + * @property {string} description + */ + +/** + * Changed team member email. + * @typedef {Object} TeamLogMemberChangeEmailDetails + * @property {string} new_value - New email. + * @property {string} [previous_value] - Previous email. Might be missing due to + * historical data gap. + */ + +/** + * @typedef {Object} TeamLogMemberChangeEmailType + * @property {string} description + */ + +/** + * Changed the external ID for team member. + * @typedef {Object} TeamLogMemberChangeExternalIdDetails + * @property {string} new_value - Current external id. + * @property {string} previous_value - Old external id. + */ + +/** + * @typedef {Object} TeamLogMemberChangeExternalIdType + * @property {string} description + */ + +/** + * Changed membership type (limited/full) of member. + * @typedef {Object} TeamLogMemberChangeMembershipTypeDetails + * @property {TeamLogTeamMembershipType} prev_value - Previous membership type. + * @property {TeamLogTeamMembershipType} new_value - New membership type. + */ + +/** + * @typedef {Object} TeamLogMemberChangeMembershipTypeType + * @property {string} description + */ + +/** + * Changed team member name. + * @typedef {Object} TeamLogMemberChangeNameDetails + * @property {TeamLogUserNameLogInfo} new_value - New user's name. + * @property {TeamLogUserNameLogInfo} [previous_value] - Previous user's name. + * Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogMemberChangeNameType + * @property {string} description + */ + +/** + * Changed team member reseller role. + * @typedef {Object} TeamLogMemberChangeResellerRoleDetails + * @property {TeamLogResellerRole} new_value - New reseller role. This field is + * relevant when the reseller role is changed. + * @property {TeamLogResellerRole} previous_value - Previous reseller role. This + * field is relevant when the reseller role is changed or when the reseller role + * is removed. + */ + +/** + * @typedef {Object} TeamLogMemberChangeResellerRoleType + * @property {string} description + */ + +/** + * Changed member status (invited, joined, suspended, etc.). + * @typedef {Object} TeamLogMemberChangeStatusDetails + * @property {TeamLogMemberStatus} new_value - New member status. + * @property {TeamLogMemberStatus} [previous_value] - Previous member status. + * Might be missing due to historical data gap. + * @property {TeamLogActionDetails} [action] - Additional information indicating + * the action taken that caused status change. + * @property {string} [new_team] - The user's new team name. This field is + * relevant when the user is transferred off the team. + * @property {string} [previous_team] - The user's previous team name. This + * field is relevant when the user is transferred onto the team. + */ + +/** + * @typedef {Object} TeamLogMemberChangeStatusType + * @property {string} description + */ + +/** + * Cleared manually added contacts. + * @typedef {Object} TeamLogMemberDeleteManualContactsDetails + */ + +/** + * @typedef {Object} TeamLogMemberDeleteManualContactsType + * @property {string} description + */ + +/** + * Deleted team member profile photo. + * @typedef {Object} TeamLogMemberDeleteProfilePhotoDetails + */ + +/** + * @typedef {Object} TeamLogMemberDeleteProfilePhotoType + * @property {string} description + */ + +/** + * Permanently deleted contents of deleted team member account. + * @typedef {Object} TeamLogMemberPermanentlyDeleteAccountContentsDetails + */ + +/** + * @typedef {Object} TeamLogMemberPermanentlyDeleteAccountContentsType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogMemberRemoveActionType + * @property {('delete'|'leave'|'offboard'|'offboard_and_retain_team_folders'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Removed the external ID for team member. + * @typedef {Object} TeamLogMemberRemoveExternalIdDetails + * @property {string} previous_value - Old external id. + */ + +/** + * @typedef {Object} TeamLogMemberRemoveExternalIdType + * @property {string} description + */ + +/** + * Changed whether users can find team when not invited. + * @typedef {Object} TeamLogMemberRequestsChangePolicyDetails + * @property {TeamLogMemberRequestsPolicy} new_value - New member change + * requests policy. + * @property {TeamLogMemberRequestsPolicy} [previous_value] - Previous member + * change requests policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogMemberRequestsChangePolicyType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogMemberRequestsPolicy + * @property {('auto_accept'|'disabled'|'require_approval'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Policy for controlling whether team members can send team invites + * @typedef {Object} TeamLogMemberSendInvitePolicy + * @property {('disabled'|'everyone'|'specific_members'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed member send invite policy for team. + * @typedef {Object} TeamLogMemberSendInvitePolicyChangedDetails + * @property {TeamLogMemberSendInvitePolicy} new_value - New team member send + * invite policy. + * @property {TeamLogMemberSendInvitePolicy} previous_value - Previous team + * member send invite policy. + */ + +/** + * @typedef {Object} TeamLogMemberSendInvitePolicyChangedType + * @property {string} description + */ + +/** + * Set team member profile photo. + * @typedef {Object} TeamLogMemberSetProfilePhotoDetails + */ + +/** + * @typedef {Object} TeamLogMemberSetProfilePhotoType + * @property {string} description + */ + +/** + * Set custom member space limit. + * @typedef {Object} TeamLogMemberSpaceLimitsAddCustomQuotaDetails + * @property {number} new_value - New custom quota value in bytes. + */ + +/** + * @typedef {Object} TeamLogMemberSpaceLimitsAddCustomQuotaType + * @property {string} description + */ + +/** + * Added members to member space limit exception list. + * @typedef {Object} TeamLogMemberSpaceLimitsAddExceptionDetails + */ + +/** + * @typedef {Object} TeamLogMemberSpaceLimitsAddExceptionType + * @property {string} description + */ + +/** + * Changed member space limit type for team. + * @typedef {Object} TeamLogMemberSpaceLimitsChangeCapsTypePolicyDetails + * @property {TeamLogSpaceCapsType} previous_value - Previous space limit type. + * @property {TeamLogSpaceCapsType} new_value - New space limit type. + */ + +/** + * @typedef {Object} TeamLogMemberSpaceLimitsChangeCapsTypePolicyType + * @property {string} description + */ + +/** + * Changed custom member space limit. + * @typedef {Object} TeamLogMemberSpaceLimitsChangeCustomQuotaDetails + * @property {number} previous_value - Previous custom quota value in bytes. + * @property {number} new_value - New custom quota value in bytes. + */ + +/** + * @typedef {Object} TeamLogMemberSpaceLimitsChangeCustomQuotaType + * @property {string} description + */ + +/** + * Changed team default member space limit. + * @typedef {Object} TeamLogMemberSpaceLimitsChangePolicyDetails + * @property {number} [previous_value] - Previous team default limit value in + * bytes. Might be missing due to historical data gap. + * @property {number} [new_value] - New team default limit value in bytes. Might + * be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogMemberSpaceLimitsChangePolicyType + * @property {string} description + */ + +/** + * Changed space limit status. + * @typedef {Object} TeamLogMemberSpaceLimitsChangeStatusDetails + * @property {TeamLogSpaceLimitsStatus} previous_value - Previous storage quota + * status. + * @property {TeamLogSpaceLimitsStatus} new_value - New storage quota status. + */ + +/** + * @typedef {Object} TeamLogMemberSpaceLimitsChangeStatusType + * @property {string} description + */ + +/** + * Removed custom member space limit. + * @typedef {Object} TeamLogMemberSpaceLimitsRemoveCustomQuotaDetails + */ + +/** + * @typedef {Object} TeamLogMemberSpaceLimitsRemoveCustomQuotaType + * @property {string} description + */ + +/** + * Removed members from member space limit exception list. + * @typedef {Object} TeamLogMemberSpaceLimitsRemoveExceptionDetails + */ + +/** + * @typedef {Object} TeamLogMemberSpaceLimitsRemoveExceptionType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogMemberStatus + * @property {('active'|'invited'|'moved_to_another_team'|'not_joined'|'removed'|'suspended'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Suggested person to add to team. + * @typedef {Object} TeamLogMemberSuggestDetails + * @property {Array.} suggested_members - suggested users emails. + */ + +/** + * @typedef {Object} TeamLogMemberSuggestType + * @property {string} description + */ + +/** + * Enabled/disabled option for team members to suggest people to add to team. + * @typedef {Object} TeamLogMemberSuggestionsChangePolicyDetails + * @property {TeamLogMemberSuggestionsPolicy} new_value - New team member + * suggestions policy. + * @property {TeamLogMemberSuggestionsPolicy} [previous_value] - Previous team + * member suggestions policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogMemberSuggestionsChangePolicyType + * @property {string} description + */ + +/** + * Member suggestions policy + * @typedef {Object} TeamLogMemberSuggestionsPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Transferred contents of deleted member account to another member. + * @typedef {Object} TeamLogMemberTransferAccountContentsDetails + */ + +/** + * @typedef {Object} TeamLogMemberTransferAccountContentsType + * @property {string} description + */ + +/** + * Internal only - fields for target team computations + * @typedef {Object} TeamLogMemberTransferredInternalFields + * @property {string} source_team_id - Internal only - team user was moved from. + * @property {string} target_team_id - Internal only - team user was moved to. + */ + +/** + * Enabled/disabled Microsoft Office add-in. + * @typedef {Object} TeamLogMicrosoftOfficeAddinChangePolicyDetails + * @property {TeamLogMicrosoftOfficeAddinPolicy} new_value - New Microsoft + * Office addin policy. + * @property {TeamLogMicrosoftOfficeAddinPolicy} [previous_value] - Previous + * Microsoft Office addin policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogMicrosoftOfficeAddinChangePolicyType + * @property {string} description + */ + +/** + * Microsoft Office addin policy + * @typedef {Object} TeamLogMicrosoftOfficeAddinPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * An indication that an error occurred while retrieving the event. Some + * attributes of the event may be omitted as a result. + * @typedef {Object} TeamLogMissingDetails + * @property {string} [source_event_fields] - All the data that could be + * retrieved and converted from the source event. + */ + +/** + * Information about linked Dropbox mobile client sessions + * @typedef {Object} TeamLogMobileDeviceSessionLogInfo +@property {'mobile_device_session'} [.tag] - Tag identifying this subtype +variant. This field is only present when needed to discriminate between multiple +possible subtypes. + * @property {string} device_name - The device name. + * @property {TeamMobileClientPlatform} client_type - The mobile application + * type. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + * @property {TeamLogMobileSessionLogInfo} [session_info] - Mobile session + * unique id. + * @property {string} [client_version] - The Dropbox client version. + * @property {string} [os_version] - The hosting OS version. + * @property {string} [last_carrier] - last carrier used by the device. + */ + +/** + * Mobile session. + * @typedef {Object} TeamLogMobileSessionLogInfo +@property {'mobile'} [.tag] - Tag identifying this subtype variant. This field +is only present when needed to discriminate between multiple possible subtypes. + * @property {string} [session_id] - Session ID. + */ + +/** + * Namespace relative path details. + * @typedef {Object} TeamLogNamespaceRelativePathLogInfo + * @property {string} [ns_id] - Namespace ID. + * @property {string} [relative_path] - A path relative to the specified + * namespace ID. + * @property {boolean} [is_shared_namespace] - True if the namespace is shared. + */ + +/** + * Enabled/disabled network control. + * @typedef {Object} TeamLogNetworkControlChangePolicyDetails + * @property {TeamLogNetworkControlPolicy} new_value - New network control + * policy. + * @property {TeamLogNetworkControlPolicy} [previous_value] - Previous network + * control policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogNetworkControlChangePolicyType + * @property {string} description + */ + +/** + * Network control policy + * @typedef {Object} TeamLogNetworkControlPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Report created: Links created with no expiration. + * @typedef {Object} TeamLogNoExpirationLinkGenCreateReportDetails + * @property {Timestamp} start_date - Report start date. + * @property {Timestamp} end_date - Report end date. + */ + +/** + * @typedef {Object} TeamLogNoExpirationLinkGenCreateReportType + * @property {string} description + */ + +/** + * Couldn't create report: Links created with no expiration. + * @typedef {Object} TeamLogNoExpirationLinkGenReportFailedDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ + +/** + * @typedef {Object} TeamLogNoExpirationLinkGenReportFailedType + * @property {string} description + */ + +/** + * Report created: Links created without passwords. + * @typedef {Object} TeamLogNoPasswordLinkGenCreateReportDetails + * @property {Timestamp} start_date - Report start date. + * @property {Timestamp} end_date - Report end date. + */ + +/** + * @typedef {Object} TeamLogNoPasswordLinkGenCreateReportType + * @property {string} description + */ + +/** + * Couldn't create report: Links created without passwords. + * @typedef {Object} TeamLogNoPasswordLinkGenReportFailedDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ + +/** + * @typedef {Object} TeamLogNoPasswordLinkGenReportFailedType + * @property {string} description + */ + +/** + * Report created: Views of links without passwords. + * @typedef {Object} TeamLogNoPasswordLinkViewCreateReportDetails + * @property {Timestamp} start_date - Report start date. + * @property {Timestamp} end_date - Report end date. + */ + +/** + * @typedef {Object} TeamLogNoPasswordLinkViewCreateReportType + * @property {string} description + */ + +/** + * Couldn't create report: Views of links without passwords. + * @typedef {Object} TeamLogNoPasswordLinkViewReportFailedDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ + +/** + * @typedef {Object} TeamLogNoPasswordLinkViewReportFailedType + * @property {string} description + */ + +/** + * Non team member's logged information. + * @typedef {Object} TeamLogNonTeamMemberLogInfo +@property {'non_team_member'} [.tag] - Tag identifying this subtype variant. +This field is only present when needed to discriminate between multiple possible +subtypes. + * @property {string} [account_id] - User unique ID. + * @property {string} [display_name] - User display name. + * @property {string} [email] - User email address. + */ + +/** + * The email to which the request was sent + * @typedef {Object} TeamLogNonTrustedTeamDetails + * @property {string} team - The email to which the request was sent. + */ + +/** + * Changed Paper doc to invite-only. + * @typedef {Object} TeamLogNoteAclInviteOnlyDetails + */ + +/** + * @typedef {Object} TeamLogNoteAclInviteOnlyType + * @property {string} description + */ + +/** + * Changed Paper doc to link-accessible. + * @typedef {Object} TeamLogNoteAclLinkDetails + */ + +/** + * @typedef {Object} TeamLogNoteAclLinkType + * @property {string} description + */ + +/** + * Changed Paper doc to link-accessible for team. + * @typedef {Object} TeamLogNoteAclTeamLinkDetails + */ + +/** + * @typedef {Object} TeamLogNoteAclTeamLinkType + * @property {string} description + */ + +/** + * Shared received Paper doc. + * @typedef {Object} TeamLogNoteShareReceiveDetails + */ + +/** + * @typedef {Object} TeamLogNoteShareReceiveType + * @property {string} description + */ + +/** + * Shared Paper doc. + * @typedef {Object} TeamLogNoteSharedDetails + */ + +/** + * @typedef {Object} TeamLogNoteSharedType + * @property {string} description + */ + +/** + * Added a label. + * @typedef {Object} TeamLogObjectLabelAddedDetails + * @property {TeamLogLabelType} label_type - Labels mark a file or folder. + */ + +/** + * @typedef {Object} TeamLogObjectLabelAddedType + * @property {string} description + */ + +/** + * Removed a label. + * @typedef {Object} TeamLogObjectLabelRemovedDetails + * @property {TeamLogLabelType} label_type - Labels mark a file or folder. + */ + +/** + * @typedef {Object} TeamLogObjectLabelRemovedType + * @property {string} description + */ + +/** + * Updated a label's value. + * @typedef {Object} TeamLogObjectLabelUpdatedValueDetails + * @property {TeamLogLabelType} label_type - Labels mark a file or folder. + */ + +/** + * @typedef {Object} TeamLogObjectLabelUpdatedValueType + * @property {string} description + */ + +/** + * Opened shared Paper doc. + * @typedef {Object} TeamLogOpenNoteSharedDetails + */ + +/** + * @typedef {Object} TeamLogOpenNoteSharedType + * @property {string} description + */ + +/** + * More details about the organization. + * @typedef {Object} TeamLogOrganizationDetails + * @property {string} organization - The name of the organization. + */ + +/** + * The name of the organization + * @typedef {Object} TeamLogOrganizationName + * @property {string} organization - The name of the organization. + */ + +/** + * Organized a folder with multi-file organize. + * @typedef {Object} TeamLogOrganizeFolderWithTidyDetails + */ + +/** + * @typedef {Object} TeamLogOrganizeFolderWithTidyType + * @property {string} description + */ + +/** + * The origin from which the actor performed the action. + * @typedef {Object} TeamLogOriginLogInfo + * @property {TeamLogAccessMethodLogInfo} access_method - The method that was + * used to perform the action. + * @property {TeamLogGeoLocationLogInfo} [geo_location] - Geographic location + * details. + */ + +/** + * Report created: Views of old links. + * @typedef {Object} TeamLogOutdatedLinkViewCreateReportDetails + * @property {Timestamp} start_date - Report start date. + * @property {Timestamp} end_date - Report end date. + */ + +/** + * @typedef {Object} TeamLogOutdatedLinkViewCreateReportType + * @property {string} description + */ + +/** + * Couldn't create report: Views of old links. + * @typedef {Object} TeamLogOutdatedLinkViewReportFailedDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ + +/** + * @typedef {Object} TeamLogOutdatedLinkViewReportFailedType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogPaperAccessType + * @property {('commenter'|'editor'|'viewer'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Exported all team Paper docs. + * @typedef {Object} TeamLogPaperAdminExportStartDetails + */ + +/** + * @typedef {Object} TeamLogPaperAdminExportStartType + * @property {string} description + */ + +/** + * Changed whether Dropbox Paper, when enabled, is deployed to all members or to + * specific members. + * @typedef {Object} TeamLogPaperChangeDeploymentPolicyDetails + * @property {TeamPoliciesPaperDeploymentPolicy} new_value - New Dropbox Paper + * deployment policy. + * @property {TeamPoliciesPaperDeploymentPolicy} [previous_value] - Previous + * Dropbox Paper deployment policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogPaperChangeDeploymentPolicyType + * @property {string} description + */ + +/** + * Changed whether non-members can view Paper docs with link. + * @typedef {Object} TeamLogPaperChangeMemberLinkPolicyDetails + * @property {TeamLogPaperMemberPolicy} new_value - New paper external link + * accessibility policy. + */ + +/** + * @typedef {Object} TeamLogPaperChangeMemberLinkPolicyType + * @property {string} description + */ + +/** + * Changed whether members can share Paper docs outside team, and if docs are + * accessible only by team members or anyone by default. + * @typedef {Object} TeamLogPaperChangeMemberPolicyDetails + * @property {TeamLogPaperMemberPolicy} new_value - New paper external + * accessibility policy. + * @property {TeamLogPaperMemberPolicy} [previous_value] - Previous paper + * external accessibility policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogPaperChangeMemberPolicyType + * @property {string} description + */ + +/** + * Enabled/disabled Dropbox Paper for team. + * @typedef {Object} TeamLogPaperChangePolicyDetails + * @property {TeamPoliciesPaperEnabledPolicy} new_value - New Dropbox Paper + * policy. + * @property {TeamPoliciesPaperEnabledPolicy} [previous_value] - Previous + * Dropbox Paper policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogPaperChangePolicyType + * @property {string} description + */ + +/** + * Added users and/or groups to Paper doc/folder. + * @typedef {Object} TeamLogPaperContentAddMemberDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperContentAddMemberType + * @property {string} description + */ + +/** + * Added Paper doc/folder to folder. + * @typedef {Object} TeamLogPaperContentAddToFolderDetails + * @property {string} event_uuid - Event unique identifier. + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {number} parent_asset_index - Parent asset position in the Assets + * list. + */ + +/** + * @typedef {Object} TeamLogPaperContentAddToFolderType + * @property {string} description + */ + +/** + * Archived Paper doc/folder. + * @typedef {Object} TeamLogPaperContentArchiveDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperContentArchiveType + * @property {string} description + */ + +/** + * Created Paper doc/folder. + * @typedef {Object} TeamLogPaperContentCreateDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperContentCreateType + * @property {string} description + */ + +/** + * Permanently deleted Paper doc/folder. + * @typedef {Object} TeamLogPaperContentPermanentlyDeleteDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperContentPermanentlyDeleteType + * @property {string} description + */ + +/** + * Removed Paper doc/folder from folder. + * @typedef {Object} TeamLogPaperContentRemoveFromFolderDetails + * @property {string} event_uuid - Event unique identifier. + * @property {number} [target_asset_index] - Target asset position in the Assets + * list. + * @property {number} [parent_asset_index] - Parent asset position in the Assets + * list. + */ + +/** + * @typedef {Object} TeamLogPaperContentRemoveFromFolderType + * @property {string} description + */ + +/** + * Removed users and/or groups from Paper doc/folder. + * @typedef {Object} TeamLogPaperContentRemoveMemberDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperContentRemoveMemberType + * @property {string} description + */ + +/** + * Renamed Paper doc/folder. + * @typedef {Object} TeamLogPaperContentRenameDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperContentRenameType + * @property {string} description + */ + +/** + * Restored archived Paper doc/folder. + * @typedef {Object} TeamLogPaperContentRestoreDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperContentRestoreType + * @property {string} description + */ + +/** + * Policy to set default access for newly created Paper folders. + * @typedef {Object} TeamLogPaperDefaultFolderPolicy + * @property {('everyone_in_team'|'invite_only'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed Paper Default Folder Policy setting for team. + * @typedef {Object} TeamLogPaperDefaultFolderPolicyChangedDetails + * @property {TeamLogPaperDefaultFolderPolicy} new_value - New Paper Default + * Folder Policy. + * @property {TeamLogPaperDefaultFolderPolicy} previous_value - Previous Paper + * Default Folder Policy. + */ + +/** + * @typedef {Object} TeamLogPaperDefaultFolderPolicyChangedType + * @property {string} description + */ + +/** + * Policy for controlling if team members can use Paper Desktop + * @typedef {Object} TeamLogPaperDesktopPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Enabled/disabled Paper Desktop for team. + * @typedef {Object} TeamLogPaperDesktopPolicyChangedDetails + * @property {TeamLogPaperDesktopPolicy} new_value - New Paper Desktop policy. + * @property {TeamLogPaperDesktopPolicy} previous_value - Previous Paper Desktop + * policy. + */ + +/** + * @typedef {Object} TeamLogPaperDesktopPolicyChangedType + * @property {string} description + */ + +/** + * Added Paper doc comment. + * @typedef {Object} TeamLogPaperDocAddCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ + +/** + * @typedef {Object} TeamLogPaperDocAddCommentType + * @property {string} description + */ + +/** + * Changed member permissions for Paper doc. + * @typedef {Object} TeamLogPaperDocChangeMemberRoleDetails + * @property {string} event_uuid - Event unique identifier. + * @property {TeamLogPaperAccessType} access_type - Paper doc access type. + */ + +/** + * @typedef {Object} TeamLogPaperDocChangeMemberRoleType + * @property {string} description + */ + +/** + * Changed sharing setting for Paper doc. + * @typedef {Object} TeamLogPaperDocChangeSharingPolicyDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [public_sharing_policy] - Sharing policy with external + * users. + * @property {string} [team_sharing_policy] - Sharing policy with team. + */ + +/** + * @typedef {Object} TeamLogPaperDocChangeSharingPolicyType + * @property {string} description + */ + +/** + * Followed/unfollowed Paper doc. + * @typedef {Object} TeamLogPaperDocChangeSubscriptionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} new_subscription_level - New doc subscription level. + * @property {string} [previous_subscription_level] - Previous doc subscription + * level. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogPaperDocChangeSubscriptionType + * @property {string} description + */ + +/** + * Deleted Paper doc comment. + * @typedef {Object} TeamLogPaperDocDeleteCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ + +/** + * @typedef {Object} TeamLogPaperDocDeleteCommentType + * @property {string} description + */ + +/** + * Archived Paper doc. + * @typedef {Object} TeamLogPaperDocDeletedDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperDocDeletedType + * @property {string} description + */ + +/** + * Downloaded Paper doc in specific format. + * @typedef {Object} TeamLogPaperDocDownloadDetails + * @property {string} event_uuid - Event unique identifier. + * @property {TeamLogPaperDownloadFormat} export_file_format - Export file + * format. + */ + +/** + * @typedef {Object} TeamLogPaperDocDownloadType + * @property {string} description + */ + +/** + * Edited Paper doc comment. + * @typedef {Object} TeamLogPaperDocEditCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ + +/** + * @typedef {Object} TeamLogPaperDocEditCommentType + * @property {string} description + */ + +/** + * Edited Paper doc. + * @typedef {Object} TeamLogPaperDocEditDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperDocEditType + * @property {string} description + */ + +/** + * Followed Paper doc. + * @typedef {Object} TeamLogPaperDocFollowedDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperDocFollowedType + * @property {string} description + */ + +/** + * Mentioned user in Paper doc. + * @typedef {Object} TeamLogPaperDocMentionDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperDocMentionType + * @property {string} description + */ + +/** + * Transferred ownership of Paper doc. + * @typedef {Object} TeamLogPaperDocOwnershipChangedDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} new_owner_user_id - New owner. + * @property {string} [old_owner_user_id] - Previous owner. + */ + +/** + * @typedef {Object} TeamLogPaperDocOwnershipChangedType + * @property {string} description + */ + +/** + * Requested access to Paper doc. + * @typedef {Object} TeamLogPaperDocRequestAccessDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperDocRequestAccessType + * @property {string} description + */ + +/** + * Resolved Paper doc comment. + * @typedef {Object} TeamLogPaperDocResolveCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ + +/** + * @typedef {Object} TeamLogPaperDocResolveCommentType + * @property {string} description + */ + +/** + * Restored Paper doc to previous version. + * @typedef {Object} TeamLogPaperDocRevertDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperDocRevertType + * @property {string} description + */ + +/** + * Shared Paper doc via Slack. + * @typedef {Object} TeamLogPaperDocSlackShareDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperDocSlackShareType + * @property {string} description + */ + +/** + * Shared Paper doc with users and/or groups. + * @typedef {Object} TeamLogPaperDocTeamInviteDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperDocTeamInviteType + * @property {string} description + */ + +/** + * Deleted Paper doc. + * @typedef {Object} TeamLogPaperDocTrashedDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperDocTrashedType + * @property {string} description + */ + +/** + * Unresolved Paper doc comment. + * @typedef {Object} TeamLogPaperDocUnresolveCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ + +/** + * @typedef {Object} TeamLogPaperDocUnresolveCommentType + * @property {string} description + */ + +/** + * Restored Paper doc. + * @typedef {Object} TeamLogPaperDocUntrashedDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperDocUntrashedType + * @property {string} description + */ + +/** + * Viewed Paper doc. + * @typedef {Object} TeamLogPaperDocViewDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperDocViewType + * @property {string} description + */ + +/** + * Paper document's logged information. + * @typedef {Object} TeamLogPaperDocumentLogInfo + * @property {string} doc_id - Papers document Id. + * @property {string} doc_title - Paper document title. + */ + +/** + * @typedef {Object} TeamLogPaperDownloadFormat + * @property {('docx'|'html'|'markdown'|'pdf'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Added users to Paper-enabled users list. + * @typedef {Object} TeamLogPaperEnabledUsersGroupAdditionDetails + */ + +/** + * @typedef {Object} TeamLogPaperEnabledUsersGroupAdditionType + * @property {string} description + */ + +/** + * Removed users from Paper-enabled users list. + * @typedef {Object} TeamLogPaperEnabledUsersGroupRemovalDetails + */ + +/** + * @typedef {Object} TeamLogPaperEnabledUsersGroupRemovalType + * @property {string} description + */ + +/** + * Changed Paper external sharing setting to anyone. + * @typedef {Object} TeamLogPaperExternalViewAllowDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperExternalViewAllowType + * @property {string} description + */ + +/** + * Changed Paper external sharing setting to default team. + * @typedef {Object} TeamLogPaperExternalViewDefaultTeamDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperExternalViewDefaultTeamType + * @property {string} description + */ + +/** + * Changed Paper external sharing setting to team-only. + * @typedef {Object} TeamLogPaperExternalViewForbidDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperExternalViewForbidType + * @property {string} description + */ + +/** + * Followed/unfollowed Paper folder. + * @typedef {Object} TeamLogPaperFolderChangeSubscriptionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} new_subscription_level - New folder subscription level. + * @property {string} [previous_subscription_level] - Previous folder + * subscription level. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogPaperFolderChangeSubscriptionType + * @property {string} description + */ + +/** + * Archived Paper folder. + * @typedef {Object} TeamLogPaperFolderDeletedDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperFolderDeletedType + * @property {string} description + */ + +/** + * Followed Paper folder. + * @typedef {Object} TeamLogPaperFolderFollowedDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperFolderFollowedType + * @property {string} description + */ + +/** + * Paper folder's logged information. + * @typedef {Object} TeamLogPaperFolderLogInfo + * @property {string} folder_id - Papers folder Id. + * @property {string} folder_name - Paper folder name. + */ + +/** + * Shared Paper folder with users and/or groups. + * @typedef {Object} TeamLogPaperFolderTeamInviteDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperFolderTeamInviteType + * @property {string} description + */ + +/** + * Policy for controlling if team members can share Paper documents externally. + * @typedef {Object} TeamLogPaperMemberPolicy + * @property {('anyone_with_link'|'only_team'|'team_and_explicitly_shared'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed permissions for published doc. + * @typedef {Object} TeamLogPaperPublishedLinkChangePermissionDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} new_permission_level - New permission level. + * @property {string} previous_permission_level - Previous permission level. + */ + +/** + * @typedef {Object} TeamLogPaperPublishedLinkChangePermissionType + * @property {string} description + */ + +/** + * Published doc. + * @typedef {Object} TeamLogPaperPublishedLinkCreateDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperPublishedLinkCreateType + * @property {string} description + */ + +/** + * Unpublished doc. + * @typedef {Object} TeamLogPaperPublishedLinkDisabledDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperPublishedLinkDisabledType + * @property {string} description + */ + +/** + * Viewed published doc. + * @typedef {Object} TeamLogPaperPublishedLinkViewDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogPaperPublishedLinkViewType + * @property {string} description + */ + +/** + * A user or group + * @typedef {Object} TeamLogParticipantLogInfo + * @property {TeamLogGroupLogInfo} [group] - Available if .tag is group. Group + * details. + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [user] - Available if .tag is user. A user with a Dropbox account. + * @property {('group'|'user'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLogPassPolicy + * @property {('allow'|'disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed password. + * @typedef {Object} TeamLogPasswordChangeDetails + */ + +/** + * @typedef {Object} TeamLogPasswordChangeType + * @property {string} description + */ + +/** + * Reset all team member passwords. + * @typedef {Object} TeamLogPasswordResetAllDetails + */ + +/** + * @typedef {Object} TeamLogPasswordResetAllType + * @property {string} description + */ + +/** + * Reset password. + * @typedef {Object} TeamLogPasswordResetDetails + */ + +/** + * @typedef {Object} TeamLogPasswordResetType + * @property {string} description + */ + +/** + * Changed team password strength requirements. + * @typedef {Object} TeamLogPasswordStrengthRequirementsChangePolicyDetails + * @property {TeamPoliciesPasswordStrengthPolicy} previous_value - Old password + * strength policy. + * @property {TeamPoliciesPasswordStrengthPolicy} new_value - New password + * strength policy. + */ + +/** + * @typedef {Object} TeamLogPasswordStrengthRequirementsChangePolicyType + * @property {string} description + */ + +/** + * Path's details. + * @typedef {Object} TeamLogPathLogInfo + * @property {TeamLogNamespaceRelativePathLogInfo} namespace_relative - Path + * relative to the namespace containing the content. + * @property {string} [contextual] - Fully qualified path relative to event's + * context. + */ + +/** + * Added pending secondary email. + * @typedef {Object} TeamLogPendingSecondaryEmailAddedDetails + * @property {string} secondary_email - New pending secondary email. + */ + +/** + * @typedef {Object} TeamLogPendingSecondaryEmailAddedType + * @property {string} description + */ + +/** + * Enabled/disabled ability of team members to permanently delete content. + * @typedef {Object} TeamLogPermanentDeleteChangePolicyDetails + * @property {TeamLogContentPermanentDeletePolicy} new_value - New permanent + * delete content policy. + * @property {TeamLogContentPermanentDeletePolicy} [previous_value] - Previous + * permanent delete content policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogPermanentDeleteChangePolicyType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogPlacementRestriction + * @property {('australia_only'|'europe_only'|'japan_only'|'none'|'uk_only'|'us_s3_only'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLogPolicyType + * @property {('disposition'|'retention'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Team merge request acceptance details shown to the primary team + * @typedef {Object} TeamLogPrimaryTeamRequestAcceptedDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ + +/** + * Team merge request cancellation details shown to the primary team + * @typedef {Object} TeamLogPrimaryTeamRequestCanceledDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ + +/** + * Team merge request expiration details shown to the primary team + * @typedef {Object} TeamLogPrimaryTeamRequestExpiredDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ + +/** + * Team merge request reminder details shown to the primary team + * @typedef {Object} TeamLogPrimaryTeamRequestReminderDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_to - The name of the primary team admin the request + * was sent to. + */ + +/** + * Quick action type. + * @typedef {Object} TeamLogQuickActionType + * @property {('delete_shared_link'|'reset_password'|'restore_file_or_folder'|'unlink_app'|'unlink_device'|'unlink_session'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Recipients Configuration + * @typedef {Object} TeamLogRecipientsConfiguration + * @property {TeamLogAlertRecipientsSettingType} [recipient_setting_type] - + * Recipients setting type. + * @property {Array.} [emails] - A list of user emails to notify. + * @property {Array.} [groups] - A list of groups to notify. + */ + +/** + * Provides the indices of the source asset and the destination asset for a + * relocate action. + * @typedef {Object} TeamLogRelocateAssetReferencesLogInfo + * @property {number} src_asset_index - Source asset position in the Assets + * list. + * @property {number} dest_asset_index - Destination asset position in the + * Assets list. + */ + +/** + * Reseller information. + * @typedef {Object} TeamLogResellerLogInfo + * @property {string} reseller_name - Reseller name. + * @property {string} reseller_email - Reseller email. + */ + +/** + * @typedef {Object} TeamLogResellerRole + * @property {('not_reseller'|'reseller_admin'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Enabled/disabled reseller support. + * @typedef {Object} TeamLogResellerSupportChangePolicyDetails + * @property {TeamLogResellerSupportPolicy} new_value - New Reseller support + * policy. + * @property {TeamLogResellerSupportPolicy} previous_value - Previous Reseller + * support policy. + */ + +/** + * @typedef {Object} TeamLogResellerSupportChangePolicyType + * @property {string} description + */ + +/** + * Policy for controlling if reseller can access the admin console as + * administrator + * @typedef {Object} TeamLogResellerSupportPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Ended reseller support session. + * @typedef {Object} TeamLogResellerSupportSessionEndDetails + */ + +/** + * @typedef {Object} TeamLogResellerSupportSessionEndType + * @property {string} description + */ + +/** + * Started reseller support session. + * @typedef {Object} TeamLogResellerSupportSessionStartDetails + */ + +/** + * @typedef {Object} TeamLogResellerSupportSessionStartType + * @property {string} description + */ + +/** + * Rewound a folder. + * @typedef {Object} TeamLogRewindFolderDetails + * @property {Timestamp} rewind_folder_target_ts_ms - Folder was Rewound to this + * date. + */ + +/** + * @typedef {Object} TeamLogRewindFolderType + * @property {string} description + */ + +/** + * Policy for controlling whether team members can rewind + * @typedef {Object} TeamLogRewindPolicy + * @property {('admins_only'|'everyone'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed Rewind policy for team. + * @typedef {Object} TeamLogRewindPolicyChangedDetails + * @property {TeamLogRewindPolicy} new_value - New Dropbox Rewind policy. + * @property {TeamLogRewindPolicy} previous_value - Previous Dropbox Rewind + * policy. + */ + +/** + * @typedef {Object} TeamLogRewindPolicyChangedType + * @property {string} description + */ + +/** + * Deleted secondary email. + * @typedef {Object} TeamLogSecondaryEmailDeletedDetails + * @property {string} secondary_email - Deleted secondary email. + */ + +/** + * @typedef {Object} TeamLogSecondaryEmailDeletedType + * @property {string} description + */ + +/** + * Verified secondary email. + * @typedef {Object} TeamLogSecondaryEmailVerifiedDetails + * @property {string} secondary_email - Verified secondary email. + */ + +/** + * @typedef {Object} TeamLogSecondaryEmailVerifiedType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogSecondaryMailsPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Secondary mails policy changed. + * @typedef {Object} TeamLogSecondaryMailsPolicyChangedDetails + * @property {TeamLogSecondaryMailsPolicy} previous_value - Previous secondary + * mails policy. + * @property {TeamLogSecondaryMailsPolicy} new_value - New secondary mails + * policy. + */ + +/** + * @typedef {Object} TeamLogSecondaryMailsPolicyChangedType + * @property {string} description + */ + +/** + * Team merge request acceptance details shown to the secondary team + * @typedef {Object} TeamLogSecondaryTeamRequestAcceptedDetails + * @property {string} primary_team - The primary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ + +/** + * Team merge request cancellation details shown to the secondary team + * @typedef {Object} TeamLogSecondaryTeamRequestCanceledDetails + * @property {string} sent_to - The email of the primary team admin that the + * request was sent to. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ + +/** + * Team merge request expiration details shown to the secondary team + * @typedef {Object} TeamLogSecondaryTeamRequestExpiredDetails + * @property {string} sent_to - The email of the primary team admin the request + * was sent to. + */ + +/** + * Team merge request reminder details shown to the secondary team + * @typedef {Object} TeamLogSecondaryTeamRequestReminderDetails + * @property {string} sent_to - The email of the primary team admin the request + * was sent to. + */ + +/** + * Policy for controlling team access to send for signature feature + * @typedef {Object} TeamLogSendForSignaturePolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed send for signature policy for team. + * @typedef {Object} TeamLogSendForSignaturePolicyChangedDetails + * @property {TeamLogSendForSignaturePolicy} new_value - New send for signature + * policy. + * @property {TeamLogSendForSignaturePolicy} previous_value - Previous send for + * signature policy. + */ + +/** + * @typedef {Object} TeamLogSendForSignaturePolicyChangedType + * @property {string} description + */ + +/** + * Session's logged information. + * @typedef {Object} TeamLogSessionLogInfo +@property {("web"|"desktop"|"mobile")} .tag - Tag identifying the subtype +variant. + * @property {string} [session_id] - Session ID. + */ + +/** + * Added team to shared folder. + * @typedef {Object} TeamLogSfAddGroupDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} team_name - Team name. + * @property {string} [sharing_permission] - Sharing permission. + */ + +/** + * @typedef {Object} TeamLogSfAddGroupType + * @property {string} description + */ + +/** + * Allowed non-collaborators to view links to files in shared folder. + * @typedef {Object} TeamLogSfAllowNonMembersToViewSharedLinksDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [shared_folder_type] - Shared folder type. + */ + +/** + * @typedef {Object} TeamLogSfAllowNonMembersToViewSharedLinksType + * @property {string} description + */ + +/** + * Set team members to see warning before sharing folders outside team. + * @typedef {Object} TeamLogSfExternalInviteWarnDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [new_sharing_permission] - New sharing permission. + * @property {string} [previous_sharing_permission] - Previous sharing + * permission. + */ + +/** + * @typedef {Object} TeamLogSfExternalInviteWarnType + * @property {string} description + */ + +/** + * Changed Facebook user's role in shared folder. + * @typedef {Object} TeamLogSfFbInviteChangeRoleDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [previous_sharing_permission] - Previous sharing + * permission. + * @property {string} [new_sharing_permission] - New sharing permission. + */ + +/** + * @typedef {Object} TeamLogSfFbInviteChangeRoleType + * @property {string} description + */ + +/** + * Invited Facebook users to shared folder. + * @typedef {Object} TeamLogSfFbInviteDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [sharing_permission] - Sharing permission. + */ + +/** + * @typedef {Object} TeamLogSfFbInviteType + * @property {string} description + */ + +/** + * Uninvited Facebook user from shared folder. + * @typedef {Object} TeamLogSfFbUninviteDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + */ + +/** + * @typedef {Object} TeamLogSfFbUninviteType + * @property {string} description + */ + +/** + * Invited group to shared folder. + * @typedef {Object} TeamLogSfInviteGroupDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + */ + +/** + * @typedef {Object} TeamLogSfInviteGroupType + * @property {string} description + */ + +/** + * Granted access to shared folder. + * @typedef {Object} TeamLogSfTeamGrantAccessDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + */ + +/** + * @typedef {Object} TeamLogSfTeamGrantAccessType + * @property {string} description + */ + +/** + * Changed team member's role in shared folder. + * @typedef {Object} TeamLogSfTeamInviteChangeRoleDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [new_sharing_permission] - New sharing permission. + * @property {string} [previous_sharing_permission] - Previous sharing + * permission. + */ + +/** + * @typedef {Object} TeamLogSfTeamInviteChangeRoleType + * @property {string} description + */ + +/** + * Invited team members to shared folder. + * @typedef {Object} TeamLogSfTeamInviteDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [sharing_permission] - Sharing permission. + */ + +/** + * @typedef {Object} TeamLogSfTeamInviteType + * @property {string} description + */ + +/** + * Joined team member's shared folder. + * @typedef {Object} TeamLogSfTeamJoinDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + */ + +/** + * Joined team member's shared folder from link. + * @typedef {Object} TeamLogSfTeamJoinFromOobLinkDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + * @property {string} [token_key] - Shared link token key. + * @property {string} [sharing_permission] - Sharing permission. + */ + +/** + * @typedef {Object} TeamLogSfTeamJoinFromOobLinkType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogSfTeamJoinType + * @property {string} description + */ + +/** + * Unshared folder with team member. + * @typedef {Object} TeamLogSfTeamUninviteDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + * @property {string} original_folder_name - Original shared folder name. + */ + +/** + * @typedef {Object} TeamLogSfTeamUninviteType + * @property {string} description + */ + +/** + * Invited user to Dropbox and added them to shared file/folder. + * @typedef {Object} TeamLogSharedContentAddInviteesDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {Array.} invitees - A list of invitees. + */ + +/** + * @typedef {Object} TeamLogSharedContentAddInviteesType + * @property {string} description + */ + +/** + * Added expiration date to link for shared file/folder. + * @typedef {Object} TeamLogSharedContentAddLinkExpiryDetails + * @property {Timestamp} [new_value] - New shared content link expiration date. + * Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedContentAddLinkExpiryType + * @property {string} description + */ + +/** + * Added password to link for shared file/folder. + * @typedef {Object} TeamLogSharedContentAddLinkPasswordDetails + */ + +/** + * @typedef {Object} TeamLogSharedContentAddLinkPasswordType + * @property {string} description + */ + +/** + * Added users and/or groups to shared file/folder. + * @typedef {Object} TeamLogSharedContentAddMemberDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + */ + +/** + * @typedef {Object} TeamLogSharedContentAddMemberType + * @property {string} description + */ + +/** + * Changed whether members can download shared file/folder. + * @typedef {Object} TeamLogSharedContentChangeDownloadsPolicyDetails + * @property {TeamLogDownloadPolicyType} new_value - New downloads policy. + * @property {TeamLogDownloadPolicyType} [previous_value] - Previous downloads + * policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedContentChangeDownloadsPolicyType + * @property {string} description + */ + +/** + * Changed access type of invitee to shared file/folder before invite was + * accepted. + * @typedef {Object} TeamLogSharedContentChangeInviteeRoleDetails + * @property {SharingAccessLevel} new_access_level - New access level. + * @property {string} invitee - The invitee whose role was changed. + * @property {SharingAccessLevel} [previous_access_level] - Previous access + * level. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedContentChangeInviteeRoleType + * @property {string} description + */ + +/** + * Changed link audience of shared file/folder. + * @typedef {Object} TeamLogSharedContentChangeLinkAudienceDetails + * @property {SharingLinkAudience} new_value - New link audience value. + * @property {SharingLinkAudience} [previous_value] - Previous link audience + * value. + */ + +/** + * @typedef {Object} TeamLogSharedContentChangeLinkAudienceType + * @property {string} description + */ + +/** + * Changed link expiration of shared file/folder. + * @typedef {Object} TeamLogSharedContentChangeLinkExpiryDetails + * @property {Timestamp} [new_value] - New shared content link expiration date. + * Might be missing due to historical data gap. + * @property {Timestamp} [previous_value] - Previous shared content link + * expiration date. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedContentChangeLinkExpiryType + * @property {string} description + */ + +/** + * Changed link password of shared file/folder. + * @typedef {Object} TeamLogSharedContentChangeLinkPasswordDetails + */ + +/** + * @typedef {Object} TeamLogSharedContentChangeLinkPasswordType + * @property {string} description + */ + +/** + * Changed access type of shared file/folder member. + * @typedef {Object} TeamLogSharedContentChangeMemberRoleDetails + * @property {SharingAccessLevel} new_access_level - New access level. + * @property {SharingAccessLevel} [previous_access_level] - Previous access + * level. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedContentChangeMemberRoleType + * @property {string} description + */ + +/** + * Changed whether members can see who viewed shared file/folder. + * @typedef {Object} TeamLogSharedContentChangeViewerInfoPolicyDetails + * @property {SharingViewerInfoPolicy} new_value - New viewer info policy. + * @property {SharingViewerInfoPolicy} [previous_value] - Previous view info + * policy. + */ + +/** + * @typedef {Object} TeamLogSharedContentChangeViewerInfoPolicyType + * @property {string} description + */ + +/** + * Acquired membership of shared file/folder by accepting invite. + * @typedef {Object} TeamLogSharedContentClaimInvitationDetails + * @property {string} [shared_content_link] - Shared content link. + */ + +/** + * @typedef {Object} TeamLogSharedContentClaimInvitationType + * @property {string} description + */ + +/** + * Copied shared file/folder to own Dropbox. + * @typedef {Object} TeamLogSharedContentCopyDetails + * @property {string} shared_content_link - Shared content link. + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} destination_path - The path where the member saved the + * content. + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_content_owner] - The shared content owner. + */ + +/** + * @typedef {Object} TeamLogSharedContentCopyType + * @property {string} description + */ + +/** + * Downloaded shared file/folder. + * @typedef {Object} TeamLogSharedContentDownloadDetails + * @property {string} shared_content_link - Shared content link. + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_content_owner] - The shared content owner. + */ + +/** + * @typedef {Object} TeamLogSharedContentDownloadType + * @property {string} description + */ + +/** + * Left shared file/folder. + * @typedef {Object} TeamLogSharedContentRelinquishMembershipDetails + */ + +/** + * @typedef {Object} TeamLogSharedContentRelinquishMembershipType + * @property {string} description + */ + +/** + * Removed invitee from shared file/folder before invite was accepted. + * @typedef {Object} TeamLogSharedContentRemoveInviteesDetails + * @property {Array.} invitees - A list of invitees. + */ + +/** + * @typedef {Object} TeamLogSharedContentRemoveInviteesType + * @property {string} description + */ + +/** + * Removed link expiration date of shared file/folder. + * @typedef {Object} TeamLogSharedContentRemoveLinkExpiryDetails + * @property {Timestamp} [previous_value] - Previous shared content link + * expiration date. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedContentRemoveLinkExpiryType + * @property {string} description + */ + +/** + * Removed link password of shared file/folder. + * @typedef {Object} TeamLogSharedContentRemoveLinkPasswordDetails + */ + +/** + * @typedef {Object} TeamLogSharedContentRemoveLinkPasswordType + * @property {string} description + */ + +/** + * Removed user/group from shared file/folder. + * @typedef {Object} TeamLogSharedContentRemoveMemberDetails + * @property {SharingAccessLevel} [shared_content_access_level] - Shared content + * access level. + */ + +/** + * @typedef {Object} TeamLogSharedContentRemoveMemberType + * @property {string} description + */ + +/** + * Requested access to shared file/folder. + * @typedef {Object} TeamLogSharedContentRequestAccessDetails + * @property {string} [shared_content_link] - Shared content link. + */ + +/** + * @typedef {Object} TeamLogSharedContentRequestAccessType + * @property {string} description + */ + +/** + * Restored shared file/folder invitees. + * @typedef {Object} TeamLogSharedContentRestoreInviteesDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {Array.} invitees - A list of invitees. + */ + +/** + * @typedef {Object} TeamLogSharedContentRestoreInviteesType + * @property {string} description + */ + +/** + * Restored users and/or groups to membership of shared file/folder. + * @typedef {Object} TeamLogSharedContentRestoreMemberDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + */ + +/** + * @typedef {Object} TeamLogSharedContentRestoreMemberType + * @property {string} description + */ + +/** + * Unshared file/folder by clearing membership. + * @typedef {Object} TeamLogSharedContentUnshareDetails + */ + +/** + * @typedef {Object} TeamLogSharedContentUnshareType + * @property {string} description + */ + +/** + * Previewed shared file/folder. + * @typedef {Object} TeamLogSharedContentViewDetails + * @property {string} shared_content_link - Shared content link. + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_content_owner] - The shared content owner. + */ + +/** + * @typedef {Object} TeamLogSharedContentViewType + * @property {string} description + */ + +/** + * Changed who can access shared folder via link. + * @typedef {Object} TeamLogSharedFolderChangeLinkPolicyDetails + * @property {SharingSharedLinkPolicy} new_value - New shared folder link + * policy. + * @property {SharingSharedLinkPolicy} [previous_value] - Previous shared folder + * link policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedFolderChangeLinkPolicyType + * @property {string} description + */ + +/** + * Changed whether shared folder inherits members from parent folder. + * @typedef {Object} TeamLogSharedFolderChangeMembersInheritancePolicyDetails + * @property {TeamLogSharedFolderMembersInheritancePolicy} new_value - New + * member inheritance policy. + * @property {TeamLogSharedFolderMembersInheritancePolicy} [previous_value] - + * Previous member inheritance policy. Might be missing due to historical data + * gap. + */ + +/** + * @typedef {Object} TeamLogSharedFolderChangeMembersInheritancePolicyType + * @property {string} description + */ + +/** + * Changed who can add/remove members of shared folder. + * @typedef {Object} TeamLogSharedFolderChangeMembersManagementPolicyDetails + * @property {SharingAclUpdatePolicy} new_value - New members management policy. + * @property {SharingAclUpdatePolicy} [previous_value] - Previous members + * management policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedFolderChangeMembersManagementPolicyType + * @property {string} description + */ + +/** + * Changed who can become member of shared folder. + * @typedef {Object} TeamLogSharedFolderChangeMembersPolicyDetails + * @property {SharingMemberPolicy} new_value - New external invite policy. + * @property {SharingMemberPolicy} [previous_value] - Previous external invite + * policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedFolderChangeMembersPolicyType + * @property {string} description + */ + +/** + * Created shared folder. + * @typedef {Object} TeamLogSharedFolderCreateDetails + * @property {string} [target_ns_id] - Target namespace ID. + */ + +/** + * @typedef {Object} TeamLogSharedFolderCreateType + * @property {string} description + */ + +/** + * Declined team member's invite to shared folder. + * @typedef {Object} TeamLogSharedFolderDeclineInvitationDetails + */ + +/** + * @typedef {Object} TeamLogSharedFolderDeclineInvitationType + * @property {string} description + */ + +/** + * Specifies if a shared folder inherits its members from the parent folder. + * @typedef {Object} TeamLogSharedFolderMembersInheritancePolicy + * @property {('dont_inherit_members'|'inherit_members'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Added shared folder to own Dropbox. + * @typedef {Object} TeamLogSharedFolderMountDetails + */ + +/** + * @typedef {Object} TeamLogSharedFolderMountType + * @property {string} description + */ + +/** + * Changed parent of shared folder. + * @typedef {Object} TeamLogSharedFolderNestDetails + * @property {string} [previous_parent_ns_id] - Previous parent namespace ID. + * @property {string} [new_parent_ns_id] - New parent namespace ID. + * @property {string} [previous_ns_path] - Previous namespace path. + * @property {string} [new_ns_path] - New namespace path. + */ + +/** + * @typedef {Object} TeamLogSharedFolderNestType + * @property {string} description + */ + +/** + * Transferred ownership of shared folder to another member. + * @typedef {Object} TeamLogSharedFolderTransferOwnershipDetails + * @property {string} new_owner_email - The email address of the new shared + * folder owner. + * @property {string} [previous_owner_email] - The email address of the previous + * shared folder owner. + */ + +/** + * @typedef {Object} TeamLogSharedFolderTransferOwnershipType + * @property {string} description + */ + +/** + * Deleted shared folder from Dropbox. + * @typedef {Object} TeamLogSharedFolderUnmountDetails + */ + +/** + * @typedef {Object} TeamLogSharedFolderUnmountType + * @property {string} description + */ + +/** + * Shared link access level. + * @typedef {Object} TeamLogSharedLinkAccessLevel + * @property {('none'|'reader'|'writer'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Added shared link expiration date. + * @typedef {Object} TeamLogSharedLinkAddExpiryDetails + * @property {Timestamp} new_value - New shared link expiration date. + */ + +/** + * @typedef {Object} TeamLogSharedLinkAddExpiryType + * @property {string} description + */ + +/** + * Changed shared link expiration date. + * @typedef {Object} TeamLogSharedLinkChangeExpiryDetails + * @property {Timestamp} [new_value] - New shared link expiration date. Might be + * missing due to historical data gap. + * @property {Timestamp} [previous_value] - Previous shared link expiration + * date. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedLinkChangeExpiryType + * @property {string} description + */ + +/** + * Changed visibility of shared link. + * @typedef {Object} TeamLogSharedLinkChangeVisibilityDetails + * @property {TeamLogSharedLinkVisibility} new_value - New shared link + * visibility. + * @property {TeamLogSharedLinkVisibility} [previous_value] - Previous shared + * link visibility. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedLinkChangeVisibilityType + * @property {string} description + */ + +/** + * Added file/folder to Dropbox from shared link. + * @typedef {Object} TeamLogSharedLinkCopyDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedLinkCopyType + * @property {string} description + */ + +/** + * Created shared link. + * @typedef {Object} TeamLogSharedLinkCreateDetails + * @property {TeamLogSharedLinkAccessLevel} [shared_link_access_level] - Defines + * who can access the shared link. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedLinkCreateType + * @property {string} description + */ + +/** + * Removed shared link. + * @typedef {Object} TeamLogSharedLinkDisableDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedLinkDisableType + * @property {string} description + */ + +/** + * Downloaded file/folder from shared link. + * @typedef {Object} TeamLogSharedLinkDownloadDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedLinkDownloadType + * @property {string} description + */ + +/** + * Removed shared link expiration date. + * @typedef {Object} TeamLogSharedLinkRemoveExpiryDetails + * @property {Timestamp} [previous_value] - Previous shared link expiration + * date. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedLinkRemoveExpiryType + * @property {string} description + */ + +/** + * Added an expiration date to the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsAddExpirationDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + * @property {Timestamp} [new_value] - New shared content link expiration date. + * Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedLinkSettingsAddExpirationType + * @property {string} description + */ + +/** + * Added a password to the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsAddPasswordDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + */ + +/** + * @typedef {Object} TeamLogSharedLinkSettingsAddPasswordType + * @property {string} description + */ + +/** + * Disabled downloads. + * @typedef {Object} TeamLogSharedLinkSettingsAllowDownloadDisabledDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + */ + +/** + * @typedef {Object} TeamLogSharedLinkSettingsAllowDownloadDisabledType + * @property {string} description + */ + +/** + * Enabled downloads. + * @typedef {Object} TeamLogSharedLinkSettingsAllowDownloadEnabledDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + */ + +/** + * @typedef {Object} TeamLogSharedLinkSettingsAllowDownloadEnabledType + * @property {string} description + */ + +/** + * Changed the audience of the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsChangeAudienceDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {SharingLinkAudience} new_value - New link audience value. + * @property {string} [shared_content_link] - Shared content link. + * @property {SharingLinkAudience} [previous_value] - Previous link audience + * value. + */ + +/** + * @typedef {Object} TeamLogSharedLinkSettingsChangeAudienceType + * @property {string} description + */ + +/** + * Changed the expiration date of the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsChangeExpirationDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + * @property {Timestamp} [new_value] - New shared content link expiration date. + * Might be missing due to historical data gap. + * @property {Timestamp} [previous_value] - Previous shared content link + * expiration date. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedLinkSettingsChangeExpirationType + * @property {string} description + */ + +/** + * Changed the password of the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsChangePasswordDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + */ + +/** + * @typedef {Object} TeamLogSharedLinkSettingsChangePasswordType + * @property {string} description + */ + +/** + * Removed the expiration date from the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsRemoveExpirationDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + * @property {Timestamp} [previous_value] - Previous shared link expiration + * date. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedLinkSettingsRemoveExpirationType + * @property {string} description + */ + +/** + * Removed the password from the shared link. + * @typedef {Object} TeamLogSharedLinkSettingsRemovePasswordDetails + * @property {SharingAccessLevel} shared_content_access_level - Shared content + * access level. + * @property {string} [shared_content_link] - Shared content link. + */ + +/** + * @typedef {Object} TeamLogSharedLinkSettingsRemovePasswordType + * @property {string} description + */ + +/** + * Added members as audience of shared link. + * @typedef {Object} TeamLogSharedLinkShareDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + * @property {Array.} [external_users] - Users + * without a Dropbox account that were added as shared link audience. + */ + +/** + * @typedef {Object} TeamLogSharedLinkShareType + * @property {string} description + */ + +/** + * Opened shared link. + * @typedef {Object} TeamLogSharedLinkViewDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharedLinkViewType + * @property {string} description + */ + +/** + * Defines who has access to a shared link. + * @typedef {Object} TeamLogSharedLinkVisibility + * @property {('no_one'|'password'|'public'|'team_only'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Opened shared Paper doc. + * @typedef {Object} TeamLogSharedNoteOpenedDetails + */ + +/** + * @typedef {Object} TeamLogSharedNoteOpenedType + * @property {string} description + */ + +/** + * Changed whether team members can join shared folders owned outside team. + * @typedef {Object} TeamLogSharingChangeFolderJoinPolicyDetails + * @property {TeamLogSharingFolderJoinPolicy} new_value - New external join + * policy. + * @property {TeamLogSharingFolderJoinPolicy} [previous_value] - Previous + * external join policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharingChangeFolderJoinPolicyType + * @property {string} description + */ + +/** + * Changed the allow remove or change expiration policy for the links shared + * outside of the team. + * @typedef {Object} TeamLogSharingChangeLinkAllowChangeExpirationPolicyDetails + * @property {TeamLogEnforceLinkPasswordPolicy} new_value - To. + * @property {TeamLogEnforceLinkPasswordPolicy} [previous_value] - From. + */ + +/** + * @typedef {Object} TeamLogSharingChangeLinkAllowChangeExpirationPolicyType + * @property {string} description + */ + +/** + * Changed the default expiration for the links shared outside of the team. + * @typedef {Object} TeamLogSharingChangeLinkDefaultExpirationPolicyDetails + * @property {TeamLogDefaultLinkExpirationDaysPolicy} new_value - To. + * @property {TeamLogDefaultLinkExpirationDaysPolicy} [previous_value] - From. + */ + +/** + * @typedef {Object} TeamLogSharingChangeLinkDefaultExpirationPolicyType + * @property {string} description + */ + +/** + * Changed the password requirement for the links shared outside of the team. + * @typedef {Object} TeamLogSharingChangeLinkEnforcePasswordPolicyDetails + * @property {TeamLogChangeLinkExpirationPolicy} new_value - To. + * @property {TeamLogChangeLinkExpirationPolicy} [previous_value] - From. + */ + +/** + * @typedef {Object} TeamLogSharingChangeLinkEnforcePasswordPolicyType + * @property {string} description + */ + +/** + * Changed whether members can share links outside team, and if links are + * accessible only by team members or anyone by default. + * @typedef {Object} TeamLogSharingChangeLinkPolicyDetails + * @property {TeamLogSharingLinkPolicy} new_value - New external link + * accessibility policy. + * @property {TeamLogSharingLinkPolicy} [previous_value] - Previous external + * link accessibility policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharingChangeLinkPolicyType + * @property {string} description + */ + +/** + * Changed whether members can share files/folders outside team. + * @typedef {Object} TeamLogSharingChangeMemberPolicyDetails + * @property {TeamLogSharingMemberPolicy} new_value - New external invite + * policy. + * @property {TeamLogSharingMemberPolicy} [previous_value] - Previous external + * invite policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSharingChangeMemberPolicyType + * @property {string} description + */ + +/** + * Policy for controlling if team members can join shared folders owned by non + * team members. + * @typedef {Object} TeamLogSharingFolderJoinPolicy + * @property {('from_anyone'|'from_team_only'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Policy for controlling if team members can share links externally + * @typedef {Object} TeamLogSharingLinkPolicy + * @property {('default_no_one'|'default_private'|'default_public'|'only_private'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * External sharing policy + * @typedef {Object} TeamLogSharingMemberPolicy + * @property {('allow'|'forbid'|'forbid_with_exclusions'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Disabled downloads for link. + * @typedef {Object} TeamLogShmodelDisableDownloadsDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + */ + +/** + * @typedef {Object} TeamLogShmodelDisableDownloadsType + * @property {string} description + */ + +/** + * Enabled downloads for link. + * @typedef {Object} TeamLogShmodelEnableDownloadsDetails + * @property + * {(TeamLogTeamMemberLogInfo|TeamLogTrustedNonTeamMemberLogInfo|TeamLogNonTeamMemberLogInfo|TeamLogUserLogInfo)} + * [shared_link_owner] - Shared link owner details. Might be missing due to + * historical data gap. + */ + +/** + * @typedef {Object} TeamLogShmodelEnableDownloadsType + * @property {string} description + */ + +/** + * Shared link with group. + * @typedef {Object} TeamLogShmodelGroupShareDetails + */ + +/** + * @typedef {Object} TeamLogShmodelGroupShareType + * @property {string} description + */ + +/** + * Granted access to showcase. + * @typedef {Object} TeamLogShowcaseAccessGrantedDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogShowcaseAccessGrantedType + * @property {string} description + */ + +/** + * Added member to showcase. + * @typedef {Object} TeamLogShowcaseAddMemberDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogShowcaseAddMemberType + * @property {string} description + */ + +/** + * Archived showcase. + * @typedef {Object} TeamLogShowcaseArchivedDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogShowcaseArchivedType + * @property {string} description + */ + +/** + * Enabled/disabled downloading files from Dropbox Showcase for team. + * @typedef {Object} TeamLogShowcaseChangeDownloadPolicyDetails + * @property {TeamLogShowcaseDownloadPolicy} new_value - New Dropbox Showcase + * download policy. + * @property {TeamLogShowcaseDownloadPolicy} previous_value - Previous Dropbox + * Showcase download policy. + */ + +/** + * @typedef {Object} TeamLogShowcaseChangeDownloadPolicyType + * @property {string} description + */ + +/** + * Enabled/disabled Dropbox Showcase for team. + * @typedef {Object} TeamLogShowcaseChangeEnabledPolicyDetails + * @property {TeamLogShowcaseEnabledPolicy} new_value - New Dropbox Showcase + * policy. + * @property {TeamLogShowcaseEnabledPolicy} previous_value - Previous Dropbox + * Showcase policy. + */ + +/** + * @typedef {Object} TeamLogShowcaseChangeEnabledPolicyType + * @property {string} description + */ + +/** + * Enabled/disabled sharing Dropbox Showcase externally for team. + * @typedef {Object} TeamLogShowcaseChangeExternalSharingPolicyDetails + * @property {TeamLogShowcaseExternalSharingPolicy} new_value - New Dropbox + * Showcase external sharing policy. + * @property {TeamLogShowcaseExternalSharingPolicy} previous_value - Previous + * Dropbox Showcase external sharing policy. + */ + +/** + * @typedef {Object} TeamLogShowcaseChangeExternalSharingPolicyType + * @property {string} description + */ + +/** + * Created showcase. + * @typedef {Object} TeamLogShowcaseCreatedDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogShowcaseCreatedType + * @property {string} description + */ + +/** + * Deleted showcase comment. + * @typedef {Object} TeamLogShowcaseDeleteCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ + +/** + * @typedef {Object} TeamLogShowcaseDeleteCommentType + * @property {string} description + */ + +/** + * Showcase document's logged information. + * @typedef {Object} TeamLogShowcaseDocumentLogInfo + * @property {string} showcase_id - Showcase document Id. + * @property {string} showcase_title - Showcase document title. + */ + +/** + * Policy for controlling if files can be downloaded from Showcases by team + * members + * @typedef {Object} TeamLogShowcaseDownloadPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Edited showcase comment. + * @typedef {Object} TeamLogShowcaseEditCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ + +/** + * @typedef {Object} TeamLogShowcaseEditCommentType + * @property {string} description + */ + +/** + * Edited showcase. + * @typedef {Object} TeamLogShowcaseEditedDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogShowcaseEditedType + * @property {string} description + */ + +/** + * Policy for controlling whether Showcase is enabled. + * @typedef {Object} TeamLogShowcaseEnabledPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Policy for controlling if team members can share Showcases externally. + * @typedef {Object} TeamLogShowcaseExternalSharingPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Added file to showcase. + * @typedef {Object} TeamLogShowcaseFileAddedDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogShowcaseFileAddedType + * @property {string} description + */ + +/** + * Downloaded file from showcase. + * @typedef {Object} TeamLogShowcaseFileDownloadDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} download_type - Showcase download type. + */ + +/** + * @typedef {Object} TeamLogShowcaseFileDownloadType + * @property {string} description + */ + +/** + * Removed file from showcase. + * @typedef {Object} TeamLogShowcaseFileRemovedDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogShowcaseFileRemovedType + * @property {string} description + */ + +/** + * Viewed file in showcase. + * @typedef {Object} TeamLogShowcaseFileViewDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogShowcaseFileViewType + * @property {string} description + */ + +/** + * Permanently deleted showcase. + * @typedef {Object} TeamLogShowcasePermanentlyDeletedDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogShowcasePermanentlyDeletedType + * @property {string} description + */ + +/** + * Added showcase comment. + * @typedef {Object} TeamLogShowcasePostCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ + +/** + * @typedef {Object} TeamLogShowcasePostCommentType + * @property {string} description + */ + +/** + * Removed member from showcase. + * @typedef {Object} TeamLogShowcaseRemoveMemberDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogShowcaseRemoveMemberType + * @property {string} description + */ + +/** + * Renamed showcase. + * @typedef {Object} TeamLogShowcaseRenamedDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogShowcaseRenamedType + * @property {string} description + */ + +/** + * Requested access to showcase. + * @typedef {Object} TeamLogShowcaseRequestAccessDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogShowcaseRequestAccessType + * @property {string} description + */ + +/** + * Resolved showcase comment. + * @typedef {Object} TeamLogShowcaseResolveCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ + +/** + * @typedef {Object} TeamLogShowcaseResolveCommentType + * @property {string} description + */ + +/** + * Unarchived showcase. + * @typedef {Object} TeamLogShowcaseRestoredDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogShowcaseRestoredType + * @property {string} description + */ + +/** + * Deleted showcase (old version). + * @typedef {Object} TeamLogShowcaseTrashedDeprecatedDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogShowcaseTrashedDeprecatedType + * @property {string} description + */ + +/** + * Deleted showcase. + * @typedef {Object} TeamLogShowcaseTrashedDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogShowcaseTrashedType + * @property {string} description + */ + +/** + * Unresolved showcase comment. + * @typedef {Object} TeamLogShowcaseUnresolveCommentDetails + * @property {string} event_uuid - Event unique identifier. + * @property {string} [comment_text] - Comment text. + */ + +/** + * @typedef {Object} TeamLogShowcaseUnresolveCommentType + * @property {string} description + */ + +/** + * Restored showcase (old version). + * @typedef {Object} TeamLogShowcaseUntrashedDeprecatedDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogShowcaseUntrashedDeprecatedType + * @property {string} description + */ + +/** + * Restored showcase. + * @typedef {Object} TeamLogShowcaseUntrashedDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogShowcaseUntrashedType + * @property {string} description + */ + +/** + * Viewed showcase. + * @typedef {Object} TeamLogShowcaseViewDetails + * @property {string} event_uuid - Event unique identifier. + */ + +/** + * @typedef {Object} TeamLogShowcaseViewType + * @property {string} description + */ + +/** + * Ended admin sign-in-as session. + * @typedef {Object} TeamLogSignInAsSessionEndDetails + */ + +/** + * @typedef {Object} TeamLogSignInAsSessionEndType + * @property {string} description + */ + +/** + * Started admin sign-in-as session. + * @typedef {Object} TeamLogSignInAsSessionStartDetails + */ + +/** + * @typedef {Object} TeamLogSignInAsSessionStartType + * @property {string} description + */ + +/** + * Changed default Smart Sync setting for team members. + * @typedef {Object} TeamLogSmartSyncChangePolicyDetails + * @property {TeamPoliciesSmartSyncPolicy} [new_value] - New smart sync policy. + * @property {TeamPoliciesSmartSyncPolicy} [previous_value] - Previous smart + * sync policy. + */ + +/** + * @typedef {Object} TeamLogSmartSyncChangePolicyType + * @property {string} description + */ + +/** + * Created Smart Sync non-admin devices report. + * @typedef {Object} TeamLogSmartSyncCreateAdminPrivilegeReportDetails + */ + +/** + * @typedef {Object} TeamLogSmartSyncCreateAdminPrivilegeReportType + * @property {string} description + */ + +/** + * Opted team into Smart Sync. + * @typedef {Object} TeamLogSmartSyncNotOptOutDetails + * @property {TeamLogSmartSyncOptOutPolicy} previous_value - Previous Smart Sync + * opt out policy. + * @property {TeamLogSmartSyncOptOutPolicy} new_value - New Smart Sync opt out + * policy. + */ + +/** + * @typedef {Object} TeamLogSmartSyncNotOptOutType + * @property {string} description + */ + +/** + * Opted team out of Smart Sync. + * @typedef {Object} TeamLogSmartSyncOptOutDetails + * @property {TeamLogSmartSyncOptOutPolicy} previous_value - Previous Smart Sync + * opt out policy. + * @property {TeamLogSmartSyncOptOutPolicy} new_value - New Smart Sync opt out + * policy. + */ + +/** + * @typedef {Object} TeamLogSmartSyncOptOutPolicy + * @property {('default'|'opted_out'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLogSmartSyncOptOutType + * @property {string} description + */ + +/** + * Changed automatic Smart Sync setting for team. + * @typedef {Object} TeamLogSmarterSmartSyncPolicyChangedDetails + * @property {TeamPoliciesSmarterSmartSyncPolicyState} previous_value - Previous + * automatic Smart Sync setting. + * @property {TeamPoliciesSmarterSmartSyncPolicyState} new_value - New automatic + * Smart Sync setting. + */ + +/** + * @typedef {Object} TeamLogSmarterSmartSyncPolicyChangedType + * @property {string} description + */ + +/** + * Space limit alert policy + * @typedef {Object} TeamLogSpaceCapsType + * @property {('hard'|'off'|'soft'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLogSpaceLimitsStatus + * @property {('near_quota'|'over_quota'|'within_quota'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Added X.509 certificate for SSO. + * @typedef {Object} TeamLogSsoAddCertDetails + * @property {TeamLogCertificate} certificate_details - SSO certificate details. + */ + +/** + * @typedef {Object} TeamLogSsoAddCertType + * @property {string} description + */ + +/** + * Added sign-in URL for SSO. + * @typedef {Object} TeamLogSsoAddLoginUrlDetails + * @property {string} new_value - New single sign-on login URL. + */ + +/** + * @typedef {Object} TeamLogSsoAddLoginUrlType + * @property {string} description + */ + +/** + * Added sign-out URL for SSO. + * @typedef {Object} TeamLogSsoAddLogoutUrlDetails + * @property {string} [new_value] - New single sign-on logout URL. + */ + +/** + * @typedef {Object} TeamLogSsoAddLogoutUrlType + * @property {string} description + */ + +/** + * Changed X.509 certificate for SSO. + * @typedef {Object} TeamLogSsoChangeCertDetails + * @property {TeamLogCertificate} new_certificate_details - New SSO certificate + * details. + * @property {TeamLogCertificate} [previous_certificate_details] - Previous SSO + * certificate details. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSsoChangeCertType + * @property {string} description + */ + +/** + * Changed sign-in URL for SSO. + * @typedef {Object} TeamLogSsoChangeLoginUrlDetails + * @property {string} previous_value - Previous single sign-on login URL. + * @property {string} new_value - New single sign-on login URL. + */ + +/** + * @typedef {Object} TeamLogSsoChangeLoginUrlType + * @property {string} description + */ + +/** + * Changed sign-out URL for SSO. + * @typedef {Object} TeamLogSsoChangeLogoutUrlDetails + * @property {string} [previous_value] - Previous single sign-on logout URL. + * Might be missing due to historical data gap. + * @property {string} [new_value] - New single sign-on logout URL. + */ + +/** + * @typedef {Object} TeamLogSsoChangeLogoutUrlType + * @property {string} description + */ + +/** + * Changed single sign-on setting for team. + * @typedef {Object} TeamLogSsoChangePolicyDetails + * @property {TeamPoliciesSsoPolicy} new_value - New single sign-on policy. + * @property {TeamPoliciesSsoPolicy} [previous_value] - Previous single sign-on + * policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogSsoChangePolicyType + * @property {string} description + */ + +/** + * Changed SAML identity mode for SSO. + * @typedef {Object} TeamLogSsoChangeSamlIdentityModeDetails + * @property {number} previous_value - Previous single sign-on identity mode. + * @property {number} new_value - New single sign-on identity mode. + */ + +/** + * @typedef {Object} TeamLogSsoChangeSamlIdentityModeType + * @property {string} description + */ + +/** + * Failed to sign in via SSO. + * @typedef {Object} TeamLogSsoErrorDetails + * @property {TeamLogFailureDetailsLogInfo} error_details - Error details. + */ + +/** + * @typedef {Object} TeamLogSsoErrorType + * @property {string} description + */ + +/** + * Removed X.509 certificate for SSO. + * @typedef {Object} TeamLogSsoRemoveCertDetails + */ + +/** + * @typedef {Object} TeamLogSsoRemoveCertType + * @property {string} description + */ + +/** + * Removed sign-in URL for SSO. + * @typedef {Object} TeamLogSsoRemoveLoginUrlDetails + * @property {string} previous_value - Previous single sign-on login URL. + */ + +/** + * @typedef {Object} TeamLogSsoRemoveLoginUrlType + * @property {string} description + */ + +/** + * Removed sign-out URL for SSO. + * @typedef {Object} TeamLogSsoRemoveLogoutUrlDetails + * @property {string} previous_value - Previous single sign-on logout URL. + */ + +/** + * @typedef {Object} TeamLogSsoRemoveLogoutUrlType + * @property {string} description + */ + +/** + * Started enterprise admin session. + * @typedef {Object} TeamLogStartedEnterpriseAdminSessionDetails + * @property {TeamLogFedExtraDetails} federation_extra_details - More + * information about the organization or team. + */ + +/** + * @typedef {Object} TeamLogStartedEnterpriseAdminSessionType + * @property {string} description + */ + +/** + * Created team activity report. + * @typedef {Object} TeamLogTeamActivityCreateReportDetails + * @property {Timestamp} start_date - Report start date. + * @property {Timestamp} end_date - Report end date. + */ + +/** + * Couldn't generate team activity report. + * @typedef {Object} TeamLogTeamActivityCreateReportFailDetails + * @property {TeamTeamReportFailureReason} failure_reason - Failure reason. + */ + +/** + * @typedef {Object} TeamLogTeamActivityCreateReportFailType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogTeamActivityCreateReportType + * @property {string} description + */ + +/** + * Policy for controlling team access to setting up branding feature + * @typedef {Object} TeamLogTeamBrandingPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed team branding policy for team. + * @typedef {Object} TeamLogTeamBrandingPolicyChangedDetails + * @property {TeamLogTeamBrandingPolicy} new_value - New team branding policy. + * @property {TeamLogTeamBrandingPolicy} previous_value - Previous team branding + * policy. + */ + +/** + * @typedef {Object} TeamLogTeamBrandingPolicyChangedType + * @property {string} description + */ + +/** + * More details about the team. + * @typedef {Object} TeamLogTeamDetails + * @property {string} team - The name of the team. + */ + +/** + * An audit log event. + * @typedef {Object} TeamLogTeamEvent + * @property {Timestamp} timestamp - The Dropbox timestamp representing when the + * action was taken. + * @property {TeamLogEventCategory} event_category - The category that this type + * of action belongs to. + * @property {TeamLogEventType} event_type - The particular type of action + * taken. + * @property {TeamLogEventDetails} details - The variable event schema + * applicable to this type of action, instantiated with respect to this + * particular action. + * @property {TeamLogActorLogInfo} [actor] - The entity who actually performed + * the action. Might be missing due to historical data gap. + * @property {TeamLogOriginLogInfo} [origin] - The origin from which the actor + * performed the action including information about host, ip address, location, + * session, etc. If the action was performed programmatically via the API the + * origin represents the API client. + * @property {boolean} [involve_non_team_member] - True if the action involved a + * non team member either as the actor or as one of the affected users. Might be + * missing due to historical data gap. + * @property {TeamLogContextLogInfo} [context] - The user or team on whose + * behalf the actor performed the action. Might be missing due to historical + * data gap. + * @property {Array.} [participants] - Zero or more + * users and/or groups that are affected by the action. Note that this list + * doesn't include any actors or users in context. + * @property {Array.} [assets] - Zero or more content + * assets involved in the action. Currently these include Dropbox files and + * folders but in the future we might add other asset types such as Paper + * documents, folders, projects, etc. + */ + +/** + * Policy for controlling whether App Integrations are enabled for the team. + * @typedef {Object} TeamLogTeamExtensionsPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed App Integrations setting for team. + * @typedef {Object} TeamLogTeamExtensionsPolicyChangedDetails + * @property {TeamLogTeamExtensionsPolicy} new_value - New Extensions policy. + * @property {TeamLogTeamExtensionsPolicy} previous_value - Previous Extensions + * policy. + */ + +/** + * @typedef {Object} TeamLogTeamExtensionsPolicyChangedType + * @property {string} description + */ + +/** + * Changed archival status of team folder. + * @typedef {Object} TeamLogTeamFolderChangeStatusDetails + * @property {TeamTeamFolderStatus} new_value - New team folder status. + * @property {TeamTeamFolderStatus} [previous_value] - Previous team folder + * status. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogTeamFolderChangeStatusType + * @property {string} description + */ + +/** + * Created team folder in active status. + * @typedef {Object} TeamLogTeamFolderCreateDetails + */ + +/** + * @typedef {Object} TeamLogTeamFolderCreateType + * @property {string} description + */ + +/** + * Downgraded team folder to regular shared folder. + * @typedef {Object} TeamLogTeamFolderDowngradeDetails + * @property {number} target_asset_index - Target asset position in the Assets + * list. + */ + +/** + * @typedef {Object} TeamLogTeamFolderDowngradeType + * @property {string} description + */ + +/** + * Permanently deleted archived team folder. + * @typedef {Object} TeamLogTeamFolderPermanentlyDeleteDetails + */ + +/** + * @typedef {Object} TeamLogTeamFolderPermanentlyDeleteType + * @property {string} description + */ + +/** + * Renamed active/archived team folder. + * @typedef {Object} TeamLogTeamFolderRenameDetails + * @property {string} previous_folder_name - Previous folder name. + * @property {string} new_folder_name - New folder name. + */ + +/** + * @typedef {Object} TeamLogTeamFolderRenameType + * @property {string} description + */ + +/** + * Details about team invites + * @typedef {Object} TeamLogTeamInviteDetails + * @property {TeamLogInviteMethod} invite_method - How the user was invited to + * the team. + * @property {boolean} [additional_license_purchase] - True if the invitation + * incurred an additional license purchase. + */ + +/** + * Team linked app + * @typedef {Object} TeamLogTeamLinkedAppLogInfo +@property {'team_linked_app'} [.tag] - Tag identifying this subtype variant. +This field is only present when needed to discriminate between multiple possible +subtypes. + * @property {string} [app_id] - App unique ID. + * @property {string} [display_name] - App display name. + */ + +/** + * Team's logged information. + * @typedef {Object} TeamLogTeamLogInfo + * @property {string} display_name - Team display name. + */ + +/** + * Team member's logged information. + * @typedef {Object} TeamLogTeamMemberLogInfo +@property {'team_member'} [.tag] - Tag identifying this subtype variant. This +field is only present when needed to discriminate between multiple possible +subtypes. + * @property {string} [account_id] - User unique ID. + * @property {string} [display_name] - User display name. + * @property {string} [email] - User email address. + * @property {string} [team_member_id] - Team member ID. + * @property {string} [member_external_id] - Team member external ID. + * @property {TeamLogTeamLogInfo} [team] - Details about this user’s team + * for enterprise event. + */ + +/** + * @typedef {Object} TeamLogTeamMembershipType + * @property {('free'|'full'|'guest'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Merged another team into this team. + * @typedef {Object} TeamLogTeamMergeFromDetails + * @property {string} team_name - The name of the team that was merged into this + * team. + */ + +/** + * @typedef {Object} TeamLogTeamMergeFromType + * @property {string} description + */ + +/** + * Accepted a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestAcceptedDetails + * @property {TeamLogTeamMergeRequestAcceptedExtraDetails} + * request_accepted_details - Team merge request acceptance details. + */ + +/** + * Team merge request acceptance details + * @typedef {Object} TeamLogTeamMergeRequestAcceptedExtraDetails + * @property {TeamLogPrimaryTeamRequestAcceptedDetails} [primary_team] - + * Available if .tag is primary_team. Team merge request accepted details shown + * to the primary team. + * @property {TeamLogSecondaryTeamRequestAcceptedDetails} [secondary_team] - + * Available if .tag is secondary_team. Team merge request accepted details + * shown to the secondary team. + * @property {('primary_team'|'secondary_team'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Accepted a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestAcceptedShownToPrimaryTeamDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ + +/** + * @typedef {Object} TeamLogTeamMergeRequestAcceptedShownToPrimaryTeamType + * @property {string} description + */ + +/** + * Accepted a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestAcceptedShownToSecondaryTeamDetails + * @property {string} primary_team - The primary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ + +/** + * @typedef {Object} TeamLogTeamMergeRequestAcceptedShownToSecondaryTeamType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogTeamMergeRequestAcceptedType + * @property {string} description + */ + +/** + * Automatically canceled team merge request. + * @typedef {Object} TeamLogTeamMergeRequestAutoCanceledDetails + * @property {string} [details] - The cancellation reason. + */ + +/** + * @typedef {Object} TeamLogTeamMergeRequestAutoCanceledType + * @property {string} description + */ + +/** + * Canceled a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestCanceledDetails + * @property {TeamLogTeamMergeRequestCanceledExtraDetails} + * request_canceled_details - Team merge request cancellation details. + */ + +/** + * Team merge request cancellation details + * @typedef {Object} TeamLogTeamMergeRequestCanceledExtraDetails + * @property {TeamLogPrimaryTeamRequestCanceledDetails} [primary_team] - + * Available if .tag is primary_team. Team merge request cancellation details + * shown to the primary team. + * @property {TeamLogSecondaryTeamRequestCanceledDetails} [secondary_team] - + * Available if .tag is secondary_team. Team merge request cancellation details + * shown to the secondary team. + * @property {('primary_team'|'secondary_team'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Canceled a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestCanceledShownToPrimaryTeamDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ + +/** + * @typedef {Object} TeamLogTeamMergeRequestCanceledShownToPrimaryTeamType + * @property {string} description + */ + +/** + * Canceled a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestCanceledShownToSecondaryTeamDetails + * @property {string} sent_to - The email of the primary team admin that the + * request was sent to. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ + +/** + * @typedef {Object} TeamLogTeamMergeRequestCanceledShownToSecondaryTeamType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogTeamMergeRequestCanceledType + * @property {string} description + */ + +/** + * Team merge request expired. + * @typedef {Object} TeamLogTeamMergeRequestExpiredDetails + * @property {TeamLogTeamMergeRequestExpiredExtraDetails} + * request_expired_details - Team merge request expiration details. + */ + +/** + * Team merge request expiration details + * @typedef {Object} TeamLogTeamMergeRequestExpiredExtraDetails + * @property {TeamLogPrimaryTeamRequestExpiredDetails} [primary_team] - + * Available if .tag is primary_team. Team merge request canceled details shown + * to the primary team. + * @property {TeamLogSecondaryTeamRequestExpiredDetails} [secondary_team] - + * Available if .tag is secondary_team. Team merge request canceled details + * shown to the secondary team. + * @property {('primary_team'|'secondary_team'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Team merge request expired. + * @typedef {Object} TeamLogTeamMergeRequestExpiredShownToPrimaryTeamDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ + +/** + * @typedef {Object} TeamLogTeamMergeRequestExpiredShownToPrimaryTeamType + * @property {string} description + */ + +/** + * Team merge request expired. + * @typedef {Object} TeamLogTeamMergeRequestExpiredShownToSecondaryTeamDetails + * @property {string} sent_to - The email of the primary team admin the request + * was sent to. + */ + +/** + * @typedef {Object} TeamLogTeamMergeRequestExpiredShownToSecondaryTeamType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogTeamMergeRequestExpiredType + * @property {string} description + */ + +/** + * Rejected a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestRejectedShownToPrimaryTeamDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ + +/** + * @typedef {Object} TeamLogTeamMergeRequestRejectedShownToPrimaryTeamType + * @property {string} description + */ + +/** + * Rejected a team merge request. + * @typedef {Object} TeamLogTeamMergeRequestRejectedShownToSecondaryTeamDetails + * @property {string} sent_by - The name of the secondary team admin who sent + * the request originally. + */ + +/** + * @typedef {Object} TeamLogTeamMergeRequestRejectedShownToSecondaryTeamType + * @property {string} description + */ + +/** + * Sent a team merge request reminder. + * @typedef {Object} TeamLogTeamMergeRequestReminderDetails + * @property {TeamLogTeamMergeRequestReminderExtraDetails} + * request_reminder_details - Team merge request reminder details. + */ + +/** + * Team merge request reminder details + * @typedef {Object} TeamLogTeamMergeRequestReminderExtraDetails + * @property {TeamLogPrimaryTeamRequestReminderDetails} [primary_team] - + * Available if .tag is primary_team. Team merge request reminder details shown + * to the primary team. + * @property {TeamLogSecondaryTeamRequestReminderDetails} [secondary_team] - + * Available if .tag is secondary_team. Team merge request reminder details + * shown to the secondary team. + * @property {('primary_team'|'secondary_team'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Sent a team merge request reminder. + * @typedef {Object} TeamLogTeamMergeRequestReminderShownToPrimaryTeamDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_to - The name of the primary team admin the request + * was sent to. + */ + +/** + * @typedef {Object} TeamLogTeamMergeRequestReminderShownToPrimaryTeamType + * @property {string} description + */ + +/** + * Sent a team merge request reminder. + * @typedef {Object} TeamLogTeamMergeRequestReminderShownToSecondaryTeamDetails + * @property {string} sent_to - The email of the primary team admin the request + * was sent to. + */ + +/** + * @typedef {Object} TeamLogTeamMergeRequestReminderShownToSecondaryTeamType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogTeamMergeRequestReminderType + * @property {string} description + */ + +/** + * Canceled the team merge. + * @typedef {Object} TeamLogTeamMergeRequestRevokedDetails + * @property {string} team - The name of the other team. + */ + +/** + * @typedef {Object} TeamLogTeamMergeRequestRevokedType + * @property {string} description + */ + +/** + * Requested to merge their Dropbox team into yours. + * @typedef {Object} TeamLogTeamMergeRequestSentShownToPrimaryTeamDetails + * @property {string} secondary_team - The secondary team name. + * @property {string} sent_to - The name of the primary team admin the request + * was sent to. + */ + +/** + * @typedef {Object} TeamLogTeamMergeRequestSentShownToPrimaryTeamType + * @property {string} description + */ + +/** + * Requested to merge your team into another Dropbox team. + * @typedef {Object} TeamLogTeamMergeRequestSentShownToSecondaryTeamDetails + * @property {string} sent_to - The email of the primary team admin the request + * was sent to. + */ + +/** + * @typedef {Object} TeamLogTeamMergeRequestSentShownToSecondaryTeamType + * @property {string} description + */ + +/** + * Merged this team into another team. + * @typedef {Object} TeamLogTeamMergeToDetails + * @property {string} team_name - The name of the team that this team was merged + * into. + */ + +/** + * @typedef {Object} TeamLogTeamMergeToType + * @property {string} description + */ + +/** + * Team name details + * @typedef {Object} TeamLogTeamName + * @property {string} team_display_name - Team's display name. + * @property {string} team_legal_name - Team's legal name. + */ + +/** + * Added team background to display on shared link headers. + * @typedef {Object} TeamLogTeamProfileAddBackgroundDetails + */ + +/** + * @typedef {Object} TeamLogTeamProfileAddBackgroundType + * @property {string} description + */ + +/** + * Added team logo to display on shared link headers. + * @typedef {Object} TeamLogTeamProfileAddLogoDetails + */ + +/** + * @typedef {Object} TeamLogTeamProfileAddLogoType + * @property {string} description + */ + +/** + * Changed team background displayed on shared link headers. + * @typedef {Object} TeamLogTeamProfileChangeBackgroundDetails + */ + +/** + * @typedef {Object} TeamLogTeamProfileChangeBackgroundType + * @property {string} description + */ + +/** + * Changed default language for team. + * @typedef {Object} TeamLogTeamProfileChangeDefaultLanguageDetails + * @property {string} new_value - New team's default language. + * @property {string} previous_value - Previous team's default language. + */ + +/** + * @typedef {Object} TeamLogTeamProfileChangeDefaultLanguageType + * @property {string} description + */ + +/** + * Changed team logo displayed on shared link headers. + * @typedef {Object} TeamLogTeamProfileChangeLogoDetails + */ + +/** + * @typedef {Object} TeamLogTeamProfileChangeLogoType + * @property {string} description + */ + +/** + * Changed team name. + * @typedef {Object} TeamLogTeamProfileChangeNameDetails + * @property {TeamLogTeamName} new_value - New team name. + * @property {TeamLogTeamName} [previous_value] - Previous teams name. Might be + * missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogTeamProfileChangeNameType + * @property {string} description + */ + +/** + * Removed team background displayed on shared link headers. + * @typedef {Object} TeamLogTeamProfileRemoveBackgroundDetails + */ + +/** + * @typedef {Object} TeamLogTeamProfileRemoveBackgroundType + * @property {string} description + */ + +/** + * Removed team logo displayed on shared link headers. + * @typedef {Object} TeamLogTeamProfileRemoveLogoDetails + */ + +/** + * @typedef {Object} TeamLogTeamProfileRemoveLogoType + * @property {string} description + */ + +/** + * Policy for controlling whether team selective sync is enabled for team. + * @typedef {Object} TeamLogTeamSelectiveSyncPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Enabled/disabled Team Selective Sync for team. + * @typedef {Object} TeamLogTeamSelectiveSyncPolicyChangedDetails + * @property {TeamLogTeamSelectiveSyncPolicy} new_value - New Team Selective + * Sync policy. + * @property {TeamLogTeamSelectiveSyncPolicy} previous_value - Previous Team + * Selective Sync policy. + */ + +/** + * @typedef {Object} TeamLogTeamSelectiveSyncPolicyChangedType + * @property {string} description + */ + +/** + * Changed sync default. + * @typedef {Object} TeamLogTeamSelectiveSyncSettingsChangedDetails + * @property {FilesSyncSetting} previous_value - Previous value. + * @property {FilesSyncSetting} new_value - New value. + */ + +/** + * @typedef {Object} TeamLogTeamSelectiveSyncSettingsChangedType + * @property {string} description + */ + +/** + * Edited the approved list for sharing externally. + * @typedef {Object} TeamLogTeamSharingWhitelistSubjectsChangedDetails + * @property {Array.} added_whitelist_subjects - Domains or emails added + * to the approved list for sharing externally. + * @property {Array.} removed_whitelist_subjects - Domains or emails + * removed from the approved list for sharing externally. + */ + +/** + * @typedef {Object} TeamLogTeamSharingWhitelistSubjectsChangedType + * @property {string} description + */ + +/** + * Added backup phone for two-step verification. + * @typedef {Object} TeamLogTfaAddBackupPhoneDetails + */ + +/** + * @typedef {Object} TeamLogTfaAddBackupPhoneType + * @property {string} description + */ + +/** + * Added members to two factor authentication exception list. + * @typedef {Object} TeamLogTfaAddExceptionDetails + */ + +/** + * @typedef {Object} TeamLogTfaAddExceptionType + * @property {string} description + */ + +/** + * Added security key for two-step verification. + * @typedef {Object} TeamLogTfaAddSecurityKeyDetails + */ + +/** + * @typedef {Object} TeamLogTfaAddSecurityKeyType + * @property {string} description + */ + +/** + * Changed backup phone for two-step verification. + * @typedef {Object} TeamLogTfaChangeBackupPhoneDetails + */ + +/** + * @typedef {Object} TeamLogTfaChangeBackupPhoneType + * @property {string} description + */ + +/** + * Changed two-step verification setting for team. + * @typedef {Object} TeamLogTfaChangePolicyDetails + * @property {TeamPoliciesTwoStepVerificationPolicy} new_value - New change + * policy. + * @property {TeamPoliciesTwoStepVerificationPolicy} [previous_value] - Previous + * change policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogTfaChangePolicyType + * @property {string} description + */ + +/** + * Enabled/disabled/changed two-step verification setting. + * @typedef {Object} TeamLogTfaChangeStatusDetails + * @property {TeamLogTfaConfiguration} new_value - The new two factor + * authentication configuration. + * @property {TeamLogTfaConfiguration} [previous_value] - The previous two + * factor authentication configuration. Might be missing due to historical data + * gap. + * @property {boolean} [used_rescue_code] - Used two factor authentication + * rescue code. This flag is relevant when the two factor authentication + * configuration is disabled. + */ + +/** + * @typedef {Object} TeamLogTfaChangeStatusType + * @property {string} description + */ + +/** + * Two factor authentication configuration. Note: the enabled option is + * deprecated. + * @typedef {Object} TeamLogTfaConfiguration + * @property {('authenticator'|'disabled'|'enabled'|'sms'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Removed backup phone for two-step verification. + * @typedef {Object} TeamLogTfaRemoveBackupPhoneDetails + */ + +/** + * @typedef {Object} TeamLogTfaRemoveBackupPhoneType + * @property {string} description + */ + +/** + * Removed members from two factor authentication exception list. + * @typedef {Object} TeamLogTfaRemoveExceptionDetails + */ + +/** + * @typedef {Object} TeamLogTfaRemoveExceptionType + * @property {string} description + */ + +/** + * Removed security key for two-step verification. + * @typedef {Object} TeamLogTfaRemoveSecurityKeyDetails + */ + +/** + * @typedef {Object} TeamLogTfaRemoveSecurityKeyType + * @property {string} description + */ + +/** + * Reset two-step verification for team member. + * @typedef {Object} TeamLogTfaResetDetails + */ + +/** + * @typedef {Object} TeamLogTfaResetType + * @property {string} description + */ + +/** + * @typedef {Object} TeamLogTimeUnit + * @property {('days'|'hours'|'milliseconds'|'minutes'|'months'|'seconds'|'weeks'|'years'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * User that is not a member of the team but considered trusted. + * @typedef {Object} TeamLogTrustedNonTeamMemberLogInfo +@property {'trusted_non_team_member'} [.tag] - Tag identifying this subtype +variant. This field is only present when needed to discriminate between multiple +possible subtypes. + * @property {TeamLogTrustedNonTeamMemberType} trusted_non_team_member_type - + * Indicates the type of the member of a trusted team. + * @property {string} [account_id] - User unique ID. + * @property {string} [display_name] - User display name. + * @property {string} [email] - User email address. + * @property {TeamLogTeamLogInfo} [team] - Details about this user's trusted + * team. + */ + +/** + * @typedef {Object} TeamLogTrustedNonTeamMemberType + * @property {('enterprise_admin'|'multi_instance_admin'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLogTrustedTeamsRequestAction + * @property {('accepted'|'declined'|'expired'|'invited'|'revoked'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamLogTrustedTeamsRequestState + * @property {('invited'|'linked'|'unlinked'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Enabled/disabled option for members to link personal Dropbox account and team + * account to same computer. + * @typedef {Object} TeamLogTwoAccountChangePolicyDetails + * @property {TeamLogTwoAccountPolicy} new_value - New two account policy. + * @property {TeamLogTwoAccountPolicy} [previous_value] - Previous two account + * policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogTwoAccountChangePolicyType + * @property {string} description + */ + +/** + * Policy for pairing personal account to work account + * @typedef {Object} TeamLogTwoAccountPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Reverted naming convention. + * @typedef {Object} TeamLogUndoNamingConventionDetails + */ + +/** + * @typedef {Object} TeamLogUndoNamingConventionType + * @property {string} description + */ + +/** + * Removed multi-file organize. + * @typedef {Object} TeamLogUndoOrganizeFolderWithTidyDetails + */ + +/** + * @typedef {Object} TeamLogUndoOrganizeFolderWithTidyType + * @property {string} description + */ + +/** + * User linked app + * @typedef {Object} TeamLogUserLinkedAppLogInfo +@property {'user_linked_app'} [.tag] - Tag identifying this subtype variant. +This field is only present when needed to discriminate between multiple possible +subtypes. + * @property {string} [app_id] - App unique ID. + * @property {string} [display_name] - App display name. + */ + +/** + * User's logged information. + * @typedef {Object} TeamLogUserLogInfo +@property {("team_member"|"trusted_non_team_member"|"non_team_member")} .tag - +Tag identifying the subtype variant. + * @property {string} [account_id] - User unique ID. + * @property {string} [display_name] - User display name. + * @property {string} [email] - User email address. + */ + +/** + * User's name logged information + * @typedef {Object} TeamLogUserNameLogInfo + * @property {string} given_name - Given name. + * @property {string} surname - Surname. + * @property {string} [locale] - Locale. Might be missing due to historical data + * gap. + */ + +/** + * User or team linked app. Used when linked type is missing due to historical + * data gap. + * @typedef {Object} TeamLogUserOrTeamLinkedAppLogInfo +@property {'user_or_team_linked_app'} [.tag] - Tag identifying this subtype +variant. This field is only present when needed to discriminate between multiple +possible subtypes. + * @property {string} [app_id] - App unique ID. + * @property {string} [display_name] - App display name. + */ + +/** + * Tagged a file. + * @typedef {Object} TeamLogUserTagsAddedDetails + * @property {Array.} values - values. + */ + +/** + * @typedef {Object} TeamLogUserTagsAddedType + * @property {string} description + */ + +/** + * Removed tags. + * @typedef {Object} TeamLogUserTagsRemovedDetails + * @property {Array.} values - values. + */ + +/** + * @typedef {Object} TeamLogUserTagsRemovedType + * @property {string} description + */ + +/** + * Changed team policy for viewer info. + * @typedef {Object} TeamLogViewerInfoPolicyChangedDetails + * @property {TeamLogPassPolicy} previous_value - Previous Viewer Info policy. + * @property {TeamLogPassPolicy} new_value - New Viewer Info policy. + */ + +/** + * @typedef {Object} TeamLogViewerInfoPolicyChangedType + * @property {string} description + */ + +/** + * Policy for controlling team access to watermarking feature + * @typedef {Object} TeamLogWatermarkingPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Changed watermarking policy for team. + * @typedef {Object} TeamLogWatermarkingPolicyChangedDetails + * @property {TeamLogWatermarkingPolicy} new_value - New watermarking policy. + * @property {TeamLogWatermarkingPolicy} previous_value - Previous watermarking + * policy. + */ + +/** + * @typedef {Object} TeamLogWatermarkingPolicyChangedType + * @property {string} description + */ + +/** + * Information on active web sessions + * @typedef {Object} TeamLogWebDeviceSessionLogInfo +@property {'web_device_session'} [.tag] - Tag identifying this subtype variant. +This field is only present when needed to discriminate between multiple possible +subtypes. + * @property {string} user_agent - Information on the hosting device. + * @property {string} os - Information on the hosting operating system. + * @property {string} browser - Information on the browser used for this web + * session. + * @property {string} [ip_address] - The IP address of the last activity from + * this session. + * @property {Timestamp} [created] - The time this session was created. + * @property {Timestamp} [updated] - The time of the last activity from this + * session. + * @property {TeamLogWebSessionLogInfo} [session_info] - Web session unique id. + */ + +/** + * Web session. + * @typedef {Object} TeamLogWebSessionLogInfo +@property {'web'} [.tag] - Tag identifying this subtype variant. This field is +only present when needed to discriminate between multiple possible subtypes. + * @property {string} [session_id] - Session ID. + */ + +/** + * Changed limit on active sessions per member. + * @typedef {Object} TeamLogWebSessionsChangeActiveSessionLimitDetails + * @property {string} previous_value - Previous max number of concurrent active + * sessions policy. + * @property {string} new_value - New max number of concurrent active sessions + * policy. + */ + +/** + * @typedef {Object} TeamLogWebSessionsChangeActiveSessionLimitType + * @property {string} description + */ + +/** + * Changed how long members can stay signed in to Dropbox.com. + * @typedef {Object} TeamLogWebSessionsChangeFixedLengthPolicyDetails + * @property {TeamLogWebSessionsFixedLengthPolicy} [new_value] - New session + * length policy. Might be missing due to historical data gap. + * @property {TeamLogWebSessionsFixedLengthPolicy} [previous_value] - Previous + * session length policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogWebSessionsChangeFixedLengthPolicyType + * @property {string} description + */ + +/** + * Changed how long team members can be idle while signed in to Dropbox.com. + * @typedef {Object} TeamLogWebSessionsChangeIdleLengthPolicyDetails + * @property {TeamLogWebSessionsIdleLengthPolicy} [new_value] - New idle length + * policy. Might be missing due to historical data gap. + * @property {TeamLogWebSessionsIdleLengthPolicy} [previous_value] - Previous + * idle length policy. Might be missing due to historical data gap. + */ + +/** + * @typedef {Object} TeamLogWebSessionsChangeIdleLengthPolicyType + * @property {string} description + */ + +/** + * Web sessions fixed length policy. + * @typedef {Object} TeamLogWebSessionsFixedLengthPolicy + * @property {TeamLogDurationLogInfo} [defined] - Available if .tag is defined. + * Defined fixed session length. + * @property {('defined'|'undefined'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Web sessions idle length policy. + * @typedef {Object} TeamLogWebSessionsIdleLengthPolicy + * @property {TeamLogDurationLogInfo} [defined] - Available if .tag is defined. + * Defined idle session length. + * @property {('defined'|'undefined'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesCameraUploadsPolicyState + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesComputerBackupPolicyState + * @property {('disabled'|'enabled'|'default'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesEmmState + * @property {('disabled'|'optional'|'required'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesExternalDriveBackupPolicyState + * @property {('disabled'|'enabled'|'default'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesFileLockingPolicyState + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesFileProviderMigrationPolicyState + * @property {('disabled'|'enabled'|'default'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesGroupCreation + * @property {('admins_and_members'|'admins_only')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesOfficeAddInPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesPaperDefaultFolderPolicy + * @property {('everyone_in_team'|'invite_only'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesPaperDeploymentPolicy + * @property {('full'|'partial'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesPaperDesktopPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesPaperEnabledPolicy + * @property {('disabled'|'enabled'|'unspecified'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesPasswordControlMode + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesPasswordStrengthPolicy + * @property {('minimal_requirements'|'moderate_password'|'strong_password'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesRolloutMethod + * @property {('unlink_all'|'unlink_most_inactive'|'add_member_to_exceptions')} .tag - Tag identifying the union variant. + */ + +/** + * Policy governing which shared folders a team member can join. + * @typedef {Object} TeamPoliciesSharedFolderJoinPolicy + * @property {('from_team_only'|'from_anyone'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Policy governing who can be a member of a folder shared by a team member. + * @typedef {Object} TeamPoliciesSharedFolderMemberPolicy + * @property {('team'|'anyone'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Policy governing the visibility of shared links. This policy can apply to + * newly created shared links, or all shared links. + * @typedef {Object} TeamPoliciesSharedLinkCreatePolicy + * @property {('default_public'|'default_team_only'|'team_only'|'default_no_one'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesShowcaseDownloadPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesShowcaseEnabledPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesShowcaseExternalSharingPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesSmartSyncPolicy + * @property {('local'|'on_demand'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesSmarterSmartSyncPolicyState + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesSsoPolicy + * @property {('disabled'|'optional'|'required'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesSuggestMembersPolicy + * @property {('disabled'|'enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Policies governing team members. + * @typedef {Object} TeamPoliciesTeamMemberPolicies + * @property {TeamPoliciesTeamSharingPolicies} sharing - Policies governing + * sharing. + * @property {TeamPoliciesEmmState} emm_state - This describes the Enterprise + * Mobility Management (EMM) state for this team. This information can be used + * to understand if an organization is integrating with a third-party EMM vendor + * to further manage and apply restrictions upon the team's Dropbox usage on + * mobile devices. This is a new feature and in the future we'll be adding more + * new fields and additional documentation. + * @property {TeamPoliciesOfficeAddInPolicy} office_addin - The admin policy + * around the Dropbox Office Add-In for this team. + * @property {TeamPoliciesSuggestMembersPolicy} suggest_members_policy - The + * team policy on if teammembers are allowed to suggest users for admins to + * invite to the team. + */ + +/** + * Policies governing sharing within and outside of the team. + * @typedef {Object} TeamPoliciesTeamSharingPolicies + * @property {TeamPoliciesSharedFolderMemberPolicy} shared_folder_member_policy + * - Who can join folders shared by team members. + * @property {TeamPoliciesSharedFolderJoinPolicy} shared_folder_join_policy - + * Which shared folders team members can join. + * @property {TeamPoliciesSharedLinkCreatePolicy} shared_link_create_policy - + * Who can view shared links owned by team members. + * @property {TeamPoliciesGroupCreation} group_creation_policy - Who can create + * groups. + */ + +/** + * @typedef {Object} TeamPoliciesTwoStepVerificationPolicy + * @property {('require_tfa_enable'|'require_tfa_disable'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} TeamPoliciesTwoStepVerificationState + * @property {('required'|'optional'|'disabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * The amount of detail revealed about an account depends on the user being + * queried and the user making the query. + * @typedef {Object} UsersAccount + * @property {string} account_id - The user's unique Dropbox ID. + * @property {UsersName} name - Details of a user's name. + * @property {string} email - The user's email address. Do not rely on this + * without checking the email_verified field. Even then, it's possible that the + * user has since lost access to their email. + * @property {boolean} email_verified - Whether the user has verified their + * email address. + * @property {boolean} disabled - Whether the user has been disabled. + * @property {string} [profile_photo_url] - URL for the photo representing the + * user, if one is set. + */ + +/** + * Basic information about any account. + * @typedef {Object} UsersBasicAccount + * @property {string} account_id - The user's unique Dropbox ID. + * @property {UsersName} name - Details of a user's name. + * @property {string} email - The user's email address. Do not rely on this + * without checking the email_verified field. Even then, it's possible that the + * user has since lost access to their email. + * @property {boolean} email_verified - Whether the user has verified their + * email address. + * @property {boolean} disabled - Whether the user has been disabled. + * @property {boolean} is_teammate - Whether this user is a teammate of the + * current user. If this account is the current user's account, then this will + * be true. + * @property {string} [profile_photo_url] - URL for the photo representing the + * user, if one is set. + * @property {string} [team_member_id] - The user's unique team member id. This + * field will only be present if the user is part of a team and is_teammate is + * true. + */ + +/** + * The value for UserFeature.file_locking. + * @typedef {Object} UsersFileLockingValue + * @property {boolean} [enabled] - Available if .tag is enabled. When this value + * is True, the user can lock files in shared directories. When the value is + * False the user can unlock the files they have locked or request to unlock + * files locked by others. + * @property {('enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Detailed information about the current user's account. + * @typedef {Object} UsersFullAccount + * @property {string} account_id - The user's unique Dropbox ID. + * @property {UsersName} name - Details of a user's name. + * @property {string} email - The user's email address. Do not rely on this + * without checking the email_verified field. Even then, it's possible that the + * user has since lost access to their email. + * @property {boolean} email_verified - Whether the user has verified their + * email address. + * @property {boolean} disabled - Whether the user has been disabled. + * @property {string} locale - The language that the user specified. Locale tags + * will be IETF language tags http://en.wikipedia.org/wiki/IETF_language_tag. + * @property {string} referral_link - The user's referral link + * https://www.dropbox.com/referrals. + * @property {boolean} is_paired - Whether the user has a personal and work + * account. If the current account is personal, then team will always be null, + * but is_paired will indicate if a work account is linked. + * @property {UsersCommonAccountType} account_type - What type of account this + * user has. + * @property {(CommonTeamRootInfo|CommonUserRootInfo|CommonRootInfo)} root_info + * - The root info for this account. + * @property {string} [profile_photo_url] - URL for the photo representing the + * user, if one is set. + * @property {string} [country] - The user's two-letter country code, if + * available. Country codes are based on ISO 3166-1 + * http://en.wikipedia.org/wiki/ISO_3166-1. + * @property {UsersFullTeam} [team] - If this account is a member of a team, + * information about that team. + * @property {string} [team_member_id] - This account's unique team member id. + * This field will only be present if team is present. + */ + +/** + * Detailed information about a team. + * @typedef {Object} UsersFullTeam + * @property {string} id - The team's unique ID. + * @property {string} name - The name of the team. + * @property {TeamPoliciesTeamSharingPolicies} sharing_policies - Team policies + * governing sharing. + * @property {TeamPoliciesOfficeAddInPolicy} office_addin_policy - Team policy + * governing the use of the Office Add-In. + */ + +/** + * @typedef {Object} UsersGetAccountArg + * @property {string} account_id - A user's account identifier. + */ + +/** + * @typedef {Object} UsersGetAccountBatchArg + * @property {Array.} account_ids - List of user account identifiers. + * Should not contain any duplicate account IDs. + */ + +/** + * @typedef {Object} UsersGetAccountBatchError + * @property {string} [no_account] - Available if .tag is no_account. The value + * is an account ID specified in :field:`GetAccountBatchArg.account_ids` that + * does not exist. + * @property {('no_account'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} UsersGetAccountError + * @property {('no_account'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} UsersIndividualSpaceAllocation + * @property {number} allocated - The total space allocated to the user's + * account (bytes). + */ + +/** + * Representations for a person's name to assist with internationalization. + * @typedef {Object} UsersName + * @property {string} given_name - Also known as a first name. + * @property {string} surname - Also known as a last name or family name. + * @property {string} familiar_name - Locale-dependent name. In the US, a + * person's familiar name is their given_name, but elsewhere, it could be any + * combination of a person's given_name and surname. + * @property {string} display_name - A name that can be used directly to + * represent the name of a user's Dropbox account. + * @property {string} abbreviated_name - An abbreviated form of the person's + * name. Their initials in most locales. + */ + +/** + * The value for UserFeature.paper_as_files. + * @typedef {Object} UsersPaperAsFilesValue + * @property {boolean} [enabled] - Available if .tag is enabled. When this value + * is true, the user's Paper docs are accessible in Dropbox with the .paper + * extension and must be accessed via the /files endpoints. When this value is + * false, the user's Paper docs are stored separate from Dropbox files and + * folders and should be accessed via the /paper endpoints. + * @property {('enabled'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Space is allocated differently based on the type of account. + * @typedef {Object} UsersSpaceAllocation + * @property {UsersIndividualSpaceAllocation} [individual] - Available if .tag + * is individual. The user's space allocation applies only to their individual + * account. + * @property {UsersTeamSpaceAllocation} [team] - Available if .tag is team. The + * user shares space with other members of their team. + * @property {('individual'|'team'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Information about a user's space usage and quota. + * @typedef {Object} UsersSpaceUsage + * @property {number} used - The user's total space usage (bytes). + * @property {UsersSpaceAllocation} allocation - The user's space allocation. + */ + +/** + * Information about a team. + * @typedef {Object} UsersTeam + * @property {string} id - The team's unique ID. + * @property {string} name - The name of the team. + */ + +/** + * @typedef {Object} UsersTeamSpaceAllocation + * @property {number} used - The total space currently used by the user's team + * (bytes). + * @property {number} allocated - The total space allocated to the user's team + * (bytes). + * @property {number} user_within_team_space_allocated - The total space + * allocated to the user within its team allocated space (0 means that no + * restriction is imposed on the user's quota within its team). + * @property {TeamCommonMemberSpaceLimitType} user_within_team_space_limit_type + * - The type of the space limit imposed on the team member (off, alert_only, + * stop_sync). + * @property {number} user_within_team_space_used_cached - An accurate cached + * calculation of a team member's total space usage (bytes). + */ + +/** + * A set of features that a Dropbox User account may have configured. + * @typedef {Object} UsersUserFeature + * @property {('paper_as_files'|'file_locking'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * Values that correspond to entries in UserFeature. + * @typedef {Object} UsersUserFeatureValue + * @property {UsersPaperAsFilesValue} [paper_as_files] - Available if .tag is + * paper_as_files. + * @property {UsersFileLockingValue} [file_locking] - Available if .tag is + * file_locking. + * @property {('paper_as_files'|'file_locking'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} UsersUserFeaturesGetValuesBatchArg + * @property {Array.} features - A list of features in + * UserFeature. If the list is empty, this route will return + * UserFeaturesGetValuesBatchError. + */ + +/** + * @typedef {Object} UsersUserFeaturesGetValuesBatchError + * @property {('empty_features_list'|'other')} .tag - Tag identifying the union variant. + */ + +/** + * @typedef {Object} UsersUserFeaturesGetValuesBatchResult + * @property {Array.} values + */ + +/** + * What type of account this user has. + * @typedef {Object} UsersCommonAccountType + * @property {('basic'|'pro'|'business')} .tag - Tag identifying the union variant. + */ diff --git a/node_modules/tr46/dropbox/package.json b/node_modules/tr46/dropbox/package.json new file mode 100644 index 0000000000000000000000000000000000000000..84080f468afcae473b46b9e4467bed03408a6620 --- /dev/null +++ b/node_modules/tr46/dropbox/package.json @@ -0,0 +1,157 @@ +{ + "_from": "dropbox", + "_id": "dropbox@10.34.0", + "_inBundle": false, + "_integrity": "sha512-5jb5/XzU0fSnq36/hEpwT5/QIep7MgqKuxghEG44xCu7HruOAjPdOb3x0geXv5O/hd0nHpQpWO+r5MjYTpMvJg==", + "_location": "/dropbox", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "dropbox", + "name": "dropbox", + "escapedName": "dropbox", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/dropbox/-/dropbox-10.34.0.tgz", + "_shasum": "a4b17dad4c320855fe45b5b9786a8aaf869c3ade", + "_spec": "dropbox", + "_where": "C:\\Users\\lenovo\\TSA", + "browser": "dist/Dropbox-sdk.min.js", + "bugs": { + "url": "https://github.com/dropbox/dropbox-sdk-js/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Brad Rogers", + "email": "brad12rogers@gmail.com" + }, + { + "name": "Andrew Lawson", + "email": "alawson@dropbox.com" + }, + { + "name": "James Sidhu", + "email": "james.thomas.sidhu@gmail.com" + }, + { + "name": "John Vilk", + "email": "jvilk@cs.umass.edu" + }, + { + "name": "Steve Klebanoff", + "email": "steve.klebanoff@gmail.com" + }, + { + "name": "Bohdan Tereta", + "email": "Bohdan.Tereta@gmail.com" + } + ], + "dependencies": { + "node-fetch": "^2.6.1" + }, + "deprecated": false, + "description": "The Dropbox JavaScript SDK is a lightweight, promise based interface to the Dropbox v2 API that works in both nodejs and browser environments.", + "devDependencies": { + "@babel/cli": "^7.11.6", + "@babel/core": "^7.11.6", + "@babel/preset-env": "^7.11.5", + "@babel/register": "^7.11.5", + "@testing-library/dom": "^7.24.5", + "@types/node": "^14.11.2", + "@types/node-fetch": "^2.5.7", + "@typescript-eslint/eslint-plugin": "^4.0.0", + "@typescript-eslint/parser": "^3.10.1", + "babel-plugin-istanbul": "^6.0.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2", + "chai": "^4.2.0", + "chai-as-promised": "^7.1.1", + "cross-env": "^7.0.2", + "eslint": "^7.9.0", + "eslint-config-airbnb-base": "^14.2.0", + "eslint-plugin-import": "^2.22.0", + "express": "^4.17.1", + "express-urlrewrite": "^1.3.0", + "gh-pages": "^3.1.0", + "ink-docstrap": "^1.3.2", + "jsdoc": "^3.6.6", + "jsdom": "^16.4.0", + "mocha": "^8.1.3", + "nyc": "^15.1.0", + "prompt": "^1.0.0", + "rollup": "^2.28.2", + "rollup-endpoint": "^0.2.2", + "rollup-plugin-babel": "^4.4.0", + "rollup-plugin-terser": "^7.0.2", + "sinon": "^9.0.3", + "typescript": "^4.0.3" + }, + "directories": { + "example": "examples", + "test": "test" + }, + "engines": { + "node": ">=0.10.3" + }, + "files": [ + "*.md", + "LICENSE", + "index.js", + "src", + "lib", + "types", + "dist", + "es", + "cjs" + ], + "homepage": "https://github.com/dropbox/dropbox-sdk-js#readme", + "jsnext:main": "es/index.js", + "keywords": [ + "dropbox", + "files", + "sync", + "sdk", + "client" + ], + "license": "MIT", + "main": "cjs/index.js", + "module": "es/index.js", + "name": "dropbox", + "peerDependencies": { + "@types/node-fetch": "^2.5.7" + }, + "registry": "npm", + "repository": { + "type": "git", + "url": "git+https://github.com/dropbox/dropbox-sdk-js.git" + }, + "scripts": { + "build": "npm run build:es && npm run build:cjs && npm run build:umd && npm run build:umd:min", + "build:cjs": "cross-env BABEL_ENV=commonjs babel src -d cjs/src && cross-env BABEL_ENV=commonjs babel lib -d cjs/lib && cross-env BABEL_ENV=commonjs babel index.js -d cjs", + "build:es": "cross-env BABEL_ENV=es babel src -d es/src && cross-env BABEL_ENV=es babel lib -d es/lib && cross-env BABEL_ENV=es babel index.js -d es", + "build:umd": "cross-env BABEL_ENV=es BUNDLE_TYPE=normal rollup -c -i index.js -o dist/Dropbox-sdk.js -n Dropbox", + "build:umd:min": "cross-env BABEL_ENV=es BUNDLE_TYPE=minified rollup -c -i index.js -o dist/Dropbox-sdk.min.js -n Dropbox", + "clean": "rm -rf dist es cjs", + "coverage:integration": "cross-env BABEL_ENV=coverage nyc --reporter=lcov npm run test:integration", + "coverage:unit": "cross-env BABEL_ENV=coverage nyc --reporter=lcov npm run test:unit", + "generate-docs": "jsdoc -c ./.jsdoc.json", + "lint": "eslint --ext .js,.jsx,.ts .", + "lint-fix": "eslint --fix --ext .js,.jsx,.ts .", + "report": "nyc report --reporter=lcov --reporter=text", + "test": "npm run test:typescript && npm run test:unit", + "test:build": "mocha --timeout 100000 --require @babel/register test/build/*.js", + "test:integration": "mocha --timeout 10000 --require @babel/register test/integration/**/*.js", + "test:typescript": "tsc --build test/types", + "test:unit": "mocha --require @babel/register test/unit/**/*.js" + }, + "types": "types/index", + "typings": "types/index", + "version": "10.34.0" +} diff --git a/node_modules/tr46/dropbox/src/auth.js b/node_modules/tr46/dropbox/src/auth.js new file mode 100644 index 0000000000000000000000000000000000000000..59990f5b3a27da4a093e2356f25b3f47a4aeae09 --- /dev/null +++ b/node_modules/tr46/dropbox/src/auth.js @@ -0,0 +1,403 @@ +import { + getTokenExpiresAtDate, + isBrowserEnv, + createBrowserSafeString, + OAuth2AuthorizationUrl, + OAuth2TokenUrl, + isWorkerEnv, +} from './utils.js'; +import { parseResponse } from './response.js'; + +let fetch; +let crypto; +let Encoder; + +// Expiration is 300 seconds but needs to be in milliseconds for Date object +const TokenExpirationBuffer = 300 * 1000; +const PKCELength = 128; +const TokenAccessTypes = ['legacy', 'offline', 'online']; +const GrantTypes = ['code', 'token']; +const IncludeGrantedScopes = ['none', 'user', 'team']; + +/** + * @class DropboxAuth + * @classdesc The DropboxAuth class that provides methods to manage, acquire, and refresh tokens. + * @arg {Object} options + * @arg {Function} [options.fetch] - fetch library for making requests. + * @arg {String} [options.accessToken] - An access token for making authenticated + * requests. + * @arg {Date} [options.AccessTokenExpiresAt] - Date of the current access token's + * expiration (if available) + * @arg {String} [options.refreshToken] - A refresh token for retrieving access tokens + * @arg {String} [options.clientId] - The client id for your app. Used to create + * authentication URL. + * @arg {String} [options.clientSecret] - The client secret for your app. Used to create + * authentication URL and refresh access tokens. + * @arg {String} [options.domain] - A custom domain to use when making api requests. This + * should only be used for testing as scaffolding to avoid making network requests. + * @arg {String} [options.domainDelimiter] - A custom delimiter to use when separating domain from + * subdomain. This should only be used for testing as scaffolding. + * @arg {Object} [options.customHeaders] - An object (in the form of header: value) designed to set + * custom headers to use during a request. + * @arg {Boolean} [options.dataOnBody] - Whether request data is sent on body or as URL params. + * Defaults to false. +*/ +export default class DropboxAuth { + constructor(options) { + options = options || {}; + + if (isBrowserEnv()) { + fetch = window.fetch.bind(window); + crypto = window.crypto || window.msCrypto; // for IE11 + } else if (isWorkerEnv()) { + /* eslint-disable no-restricted-globals */ + fetch = self.fetch.bind(self); + crypto = self.crypto; + /* eslint-enable no-restricted-globals */ + } else { + fetch = require('node-fetch'); // eslint-disable-line global-require + crypto = require('crypto'); // eslint-disable-line global-require + } + + if (typeof TextEncoder === 'undefined') { + Encoder = require('util').TextEncoder; // eslint-disable-line global-require + } else { + Encoder = TextEncoder; + } + + this.fetch = options.fetch || fetch; + this.accessToken = options.accessToken; + this.accessTokenExpiresAt = options.accessTokenExpiresAt; + this.refreshToken = options.refreshToken; + this.clientId = options.clientId; + this.clientSecret = options.clientSecret; + + this.domain = options.domain; + this.domainDelimiter = options.domainDelimiter; + this.customHeaders = options.customHeaders; + this.dataOnBody = options.dataOnBody; + } + + /** + * Set the access token used to authenticate requests to the API. + * @arg {String} accessToken - An access token + * @returns {undefined} + */ + setAccessToken(accessToken) { + this.accessToken = accessToken; + } + + /** + * Get the access token + * @returns {String} Access token + */ + getAccessToken() { + return this.accessToken; + } + + /** + * Set the client id, which is used to help gain an access token. + * @arg {String} clientId - Your apps client id + * @returns {undefined} + */ + setClientId(clientId) { + this.clientId = clientId; + } + + /** + * Get the client id + * @returns {String} Client id + */ + getClientId() { + return this.clientId; + } + + /** + * Set the client secret + * @arg {String} clientSecret - Your app's client secret + * @returns {undefined} + */ + setClientSecret(clientSecret) { + this.clientSecret = clientSecret; + } + + /** + * Get the client secret + * @returns {String} Client secret + */ + getClientSecret() { + return this.clientSecret; + } + + /** + * Gets the refresh token + * @returns {String} Refresh token + */ + getRefreshToken() { + return this.refreshToken; + } + + /** + * Sets the refresh token + * @param refreshToken - A refresh token + */ + setRefreshToken(refreshToken) { + this.refreshToken = refreshToken; + } + + /** + * Gets the access token's expiration date + * @returns {Date} date of token expiration + */ + getAccessTokenExpiresAt() { + return this.accessTokenExpiresAt; + } + + /** + * Sets the access token's expiration date + * @param accessTokenExpiresAt - new expiration date + */ + setAccessTokenExpiresAt(accessTokenExpiresAt) { + this.accessTokenExpiresAt = accessTokenExpiresAt; + } + + /** + * Sets the code verifier for PKCE flow + * @param {String} codeVerifier - new code verifier + */ + setCodeVerifier(codeVerifier) { + this.codeVerifier = codeVerifier; + } + + /** + * Gets the code verifier for PKCE flow + * @returns {String} - code verifier for PKCE + */ + getCodeVerifier() { + return this.codeVerifier; + } + + generateCodeChallenge() { + const encoder = new Encoder(); + const codeData = encoder.encode(this.codeVerifier); + let codeChallenge; + if (isBrowserEnv() || isWorkerEnv()) { + return crypto.subtle.digest('SHA-256', codeData) + .then((digestedHash) => { + const base64String = btoa(String.fromCharCode.apply(null, new Uint8Array(digestedHash))); + codeChallenge = createBrowserSafeString(base64String).substr(0, 128); + this.codeChallenge = codeChallenge; + }); + } + const digestedHash = crypto.createHash('sha256').update(codeData).digest(); + codeChallenge = createBrowserSafeString(digestedHash); + this.codeChallenge = codeChallenge; + return Promise.resolve(); + } + + generatePKCECodes() { + let codeVerifier; + if (isBrowserEnv() || isWorkerEnv()) { + const array = new Uint8Array(PKCELength); + const randomValueArray = crypto.getRandomValues(array); + const base64String = btoa(randomValueArray); + codeVerifier = createBrowserSafeString(base64String).substr(0, 128); + } else { + const randomBytes = crypto.randomBytes(PKCELength); + codeVerifier = createBrowserSafeString(randomBytes).substr(0, 128); + } + this.codeVerifier = codeVerifier; + + return this.generateCodeChallenge(); + } + + /** + * Get a URL that can be used to authenticate users for the Dropbox API. + * @arg {String} redirectUri - A URL to redirect the user to after + * authenticating. This must be added to your app through the admin interface. + * @arg {String} [state] - State that will be returned in the redirect URL to help + * prevent cross site scripting attacks. + * @arg {String} [authType] - auth type, defaults to 'token', other option is 'code' + * @arg {String} [tokenAccessType] - type of token to request. From the following: + * null - creates a token with the app default (either legacy or online) + * legacy - creates one long-lived token with no expiration + * online - create one short-lived token with an expiration + * offline - create one short-lived token with an expiration with a refresh token + * @arg {Array} [scope] - scopes to request for the grant + * @arg {String} [includeGrantedScopes] - whether or not to include previously granted scopes. + * From the following: + * user - include user scopes in the grant + * team - include team scopes in the grant + * Note: if this user has never linked the app, include_granted_scopes must be None + * @arg {boolean} [usePKCE] - Whether or not to use Sha256 based PKCE. PKCE should be only use + * on client apps which doesn't call your server. It is less secure than non-PKCE flow but + * can be used if you are unable to safely retrieve your app secret + * @returns {Promise} - Url to send user to for Dropbox API authentication + * returned in a promise + */ + getAuthenticationUrl(redirectUri, state, authType = 'token', tokenAccessType = null, scope = null, includeGrantedScopes = 'none', usePKCE = false) { + const clientId = this.getClientId(); + const baseUrl = OAuth2AuthorizationUrl(this.domain); + + if (!clientId) { + throw new Error('A client id is required. You can set the client id using .setClientId().'); + } + if (authType !== 'code' && !redirectUri) { + throw new Error('A redirect uri is required.'); + } + if (!GrantTypes.includes(authType)) { + throw new Error('Authorization type must be code or token'); + } + if (tokenAccessType && !TokenAccessTypes.includes(tokenAccessType)) { + throw new Error('Token Access Type must be legacy, offline, or online'); + } + if (scope && !(scope instanceof Array)) { + throw new Error('Scope must be an array of strings'); + } + if (!IncludeGrantedScopes.includes(includeGrantedScopes)) { + throw new Error('includeGrantedScopes must be none, user, or team'); + } + + let authUrl; + if (authType === 'code') { + authUrl = `${baseUrl}?response_type=code&client_id=${clientId}`; + } else { + authUrl = `${baseUrl}?response_type=token&client_id=${clientId}`; + } + + if (redirectUri) { + authUrl += `&redirect_uri=${redirectUri}`; + } + if (state) { + authUrl += `&state=${state}`; + } + if (tokenAccessType) { + authUrl += `&token_access_type=${tokenAccessType}`; + } + if (scope) { + authUrl += `&scope=${scope.join(' ')}`; + } + if (includeGrantedScopes !== 'none') { + authUrl += `&include_granted_scopes=${includeGrantedScopes}`; + } + if (usePKCE) { + return this.generatePKCECodes() + .then(() => { + authUrl += '&code_challenge_method=S256'; + authUrl += `&code_challenge=${this.codeChallenge}`; + return authUrl; + }); + } + return Promise.resolve(authUrl); + } + + /** + * Get an OAuth2 access token from an OAuth2 Code. + * @arg {String} redirectUri - A URL to redirect the user to after + * authenticating. This must be added to your app through the admin interface. + * @arg {String} code - An OAuth2 code. + * @returns {Object} An object containing the token and related info (if applicable) + */ + getAccessTokenFromCode(redirectUri, code) { + const clientId = this.getClientId(); + const clientSecret = this.getClientSecret(); + + if (!clientId) { + throw new Error('A client id is required. You can set the client id using .setClientId().'); + } + let path = OAuth2TokenUrl(this.domain, this.domainDelimiter); + path += '?grant_type=authorization_code'; + path += `&code=${code}`; + path += `&client_id=${clientId}`; + + if (clientSecret) { + path += `&client_secret=${clientSecret}`; + } else { + if (!this.codeVerifier) { + throw new Error('You must use PKCE when generating the authorization URL to not include a client secret'); + } + path += `&code_verifier=${this.codeVerifier}`; + } + if (redirectUri) { + path += `&redirect_uri=${redirectUri}`; + } + + const fetchOptions = { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + }; + return this.fetch(path, fetchOptions) + .then((res) => parseResponse(res)); + } + + /** + * Checks if a token is needed, can be refreshed and if the token is expired. + * If so, attempts to refresh access token + * @returns {Promise<*>} + */ + checkAndRefreshAccessToken() { + const canRefresh = this.getRefreshToken() && this.getClientId(); + const needsRefresh = !this.getAccessTokenExpiresAt() + || (new Date(Date.now() + TokenExpirationBuffer)) >= this.getAccessTokenExpiresAt(); + const needsToken = !this.getAccessToken(); + if ((needsRefresh || needsToken) && canRefresh) { + return this.refreshAccessToken(); + } + return Promise.resolve(); + } + + /** + * Refreshes the access token using the refresh token, if available + * @arg {Array} scope - a subset of scopes from the original + * refresh to acquire with an access token + * @returns {Promise<*>} + */ + refreshAccessToken(scope = null) { + const clientId = this.getClientId(); + const clientSecret = this.getClientSecret(); + + if (!clientId) { + throw new Error('A client id is required. You can set the client id using .setClientId().'); + } + if (scope && !(scope instanceof Array)) { + throw new Error('Scope must be an array of strings'); + } + + let refreshUrl = OAuth2TokenUrl(this.domain, this.domainDelimiter); + const fetchOptions = { + headers: { 'Content-Type': 'application/json' }, + method: 'POST', + }; + + if (this.dataOnBody) { + const body = { grant_type: 'refresh_token', client_id: clientId, refresh_token: this.getRefreshToken() }; + + if (clientSecret) { + body.client_secret = clientSecret; + } + if (scope) { + body.scope = scope.join(' '); + } + + fetchOptions.body = body; + } else { + refreshUrl += `?grant_type=refresh_token&refresh_token=${this.getRefreshToken()}`; + refreshUrl += `&client_id=${clientId}`; + if (clientSecret) { + refreshUrl += `&client_secret=${clientSecret}`; + } + if (scope) { + refreshUrl += `&scope=${scope.join(' ')}`; + } + } + + return this.fetch(refreshUrl, fetchOptions) + .then((res) => parseResponse(res)) + .then((res) => { + this.setAccessToken(res.result.access_token); + this.setAccessTokenExpiresAt(getTokenExpiresAtDate(res.result.expires_in)); + }); + } +} diff --git a/node_modules/tr46/dropbox/src/constants.js b/node_modules/tr46/dropbox/src/constants.js new file mode 100644 index 0000000000000000000000000000000000000000..6012518bab3f5a850e724ccd98bc3815dab2a904 --- /dev/null +++ b/node_modules/tr46/dropbox/src/constants.js @@ -0,0 +1,18 @@ +export const RPC = 'rpc'; +export const UPLOAD = 'upload'; +export const DOWNLOAD = 'download'; + +export const APP_AUTH = 'app'; +export const USER_AUTH = 'user'; +export const TEAM_AUTH = 'team'; +export const NO_AUTH = 'noauth'; +export const COOKIE = 'cookie'; + +export const DEFAULT_API_DOMAIN = 'dropboxapi.com'; +export const DEFAULT_DOMAIN = 'dropbox.com'; + +export const TEST_DOMAIN_MAPPINGS = { + api: 'api', + notify: 'bolt', + content: 'api-content', +}; diff --git a/node_modules/tr46/dropbox/src/dropbox.js b/node_modules/tr46/dropbox/src/dropbox.js new file mode 100644 index 0000000000000000000000000000000000000000..fa33f58b7aa3d689030224a3cae83d3f0c5e3fe4 --- /dev/null +++ b/node_modules/tr46/dropbox/src/dropbox.js @@ -0,0 +1,211 @@ +import { + UPLOAD, + DOWNLOAD, + RPC, + APP_AUTH, + TEAM_AUTH, + USER_AUTH, + NO_AUTH, + COOKIE, +} from './constants.js'; +import { routes } from '../lib/routes.js'; +import DropboxAuth from './auth.js'; +import { baseApiUrl, httpHeaderSafeJson } from './utils.js'; +import { parseDownloadResponse, parseResponse } from './response.js'; + +const b64 = typeof btoa === 'undefined' + ? (str) => Buffer.from(str).toString('base64') + : btoa; + +/** + * @class Dropbox + * @classdesc The Dropbox SDK class that provides methods to read, write and + * create files or folders in a user or team's Dropbox. + * @arg {Object} options + * @arg {Function} [options.fetch] - fetch library for making requests. + * @arg {String} [options.selectUser] - Select user is only used for team functionality. + * It specifies which user the team access token should be acting as. + * @arg {String} [options.pathRoot] - root path to access other namespaces + * Use to access team folders for example + * @arg {String} [options.selectAdmin] - Select admin is only used by team functionality. + * It specifies which team admin the team access token should be acting as. + * @arg {DropboxAuth} [options.auth] - The DropboxAuth object used to authenticate requests. + * If this is set, the remaining parameters will be ignored. + * @arg {String} [options.accessToken] - An access token for making authenticated + * requests. + * @arg {Date} [options.accessTokenExpiresAt] - Date of the current access token's + * expiration (if available) + * @arg {String} [options.refreshToken] - A refresh token for retrieving access tokens + * @arg {String} [options.clientId] - The client id for your app. Used to create + * authentication URL. + * @arg {String} [options.clientSecret] - The client secret for your app. Used to create + * authentication URL and refresh access tokens. + * @arg {String} [options.domain] - A custom domain to use when making api requests. This + * should only be used for testing as scaffolding to avoid making network requests. + * @arg {String} [options.domainDelimiter] - A custom delimiter to use when separating domain from + * subdomain. This should only be used for testing as scaffolding. + * @arg {Object} [options.customHeaders] - An object (in the form of header: value) designed to set + * custom headers to use during a request. + */ +export default class Dropbox { + constructor(options) { + options = options || {}; + + if (options.auth) { + this.auth = options.auth; + } else { + this.auth = new DropboxAuth(options); + } + + this.fetch = options.fetch || this.auth.fetch; + this.selectUser = options.selectUser; + this.selectAdmin = options.selectAdmin; + this.pathRoot = options.pathRoot; + + this.domain = options.domain || this.auth.domain; + this.domainDelimiter = options.domainDelimiter || this.auth.domainDelimiter; + this.customHeaders = options.customHeaders || this.auth.customHeaders; + + Object.assign(this, routes); + } + + request(path, args, auth, host, style) { + // scope is provided after "style", but unused in requests, so it's not in parameters + switch (style) { + case RPC: + return this.rpcRequest(path, args, auth, host); + case DOWNLOAD: + return this.downloadRequest(path, args, auth, host); + case UPLOAD: + return this.uploadRequest(path, args, auth, host); + default: + throw new Error(`Invalid request style: ${style}`); + } + } + + rpcRequest(path, body, auth, host) { + return this.auth.checkAndRefreshAccessToken() + .then(() => { + const fetchOptions = { + method: 'POST', + body: (body) ? JSON.stringify(body) : null, + headers: {}, + }; + + if (body) { + fetchOptions.headers['Content-Type'] = 'application/json'; + } + + this.setAuthHeaders(auth, fetchOptions); + this.setCommonHeaders(fetchOptions); + + return fetchOptions; + }) + .then((fetchOptions) => this.fetch( + baseApiUrl(host, this.domain, this.domainDelimiter) + path, + fetchOptions, + )) + .then((res) => parseResponse(res)); + } + + downloadRequest(path, args, auth, host) { + return this.auth.checkAndRefreshAccessToken() + .then(() => { + const fetchOptions = { + method: 'POST', + headers: { + 'Dropbox-API-Arg': httpHeaderSafeJson(args), + }, + }; + + this.setAuthHeaders(auth, fetchOptions); + this.setCommonHeaders(fetchOptions); + + return fetchOptions; + }) + .then((fetchOptions) => this.fetch( + baseApiUrl(host, this.domain, this.domainDelimiter) + path, + fetchOptions, + )) + .then((res) => parseDownloadResponse(res)); + } + + uploadRequest(path, args, auth, host) { + return this.auth.checkAndRefreshAccessToken() + .then(() => { + const { contents } = args; + delete args.contents; + + const fetchOptions = { + body: contents, + method: 'POST', + headers: { + 'Content-Type': 'application/octet-stream', + 'Dropbox-API-Arg': httpHeaderSafeJson(args), + }, + }; + + this.setAuthHeaders(auth, fetchOptions); + this.setCommonHeaders(fetchOptions); + + return fetchOptions; + }) + .then((fetchOptions) => this.fetch( + baseApiUrl(host, this.domain, this.domainDelimiter) + path, + fetchOptions, + )) + .then((res) => parseResponse(res)); + } + + setAuthHeaders(auth, fetchOptions) { + // checks for multiauth and assigns auth based on priority to create header in switch case + if (auth.split(',').length > 1) { + const authTypes = auth.replace(' ', '').split(','); + if (authTypes.includes(USER_AUTH) && this.auth.getAccessToken()) { + auth = USER_AUTH; + } else if (authTypes.includes(TEAM_AUTH) && this.auth.getAccessToken()) { + auth = TEAM_AUTH; + } else if (authTypes.includes(APP_AUTH)) { + auth = APP_AUTH; + } + } + + switch (auth) { + case APP_AUTH: + if (this.auth.clientId && this.auth.clientSecret) { + const authHeader = b64(`${this.auth.clientId}:${this.auth.clientSecret}`); + fetchOptions.headers.Authorization = `Basic ${authHeader}`; + } + break; + case TEAM_AUTH: + case USER_AUTH: + if (this.auth.getAccessToken()) { + fetchOptions.headers.Authorization = `Bearer ${this.auth.getAccessToken()}`; + } + break; + case NO_AUTH: + case COOKIE: + break; + default: + throw new Error(`Unhandled auth type: ${auth}`); + } + } + + setCommonHeaders(options) { + if (this.selectUser) { + options.headers['Dropbox-API-Select-User'] = this.selectUser; + } + if (this.selectAdmin) { + options.headers['Dropbox-API-Select-Admin'] = this.selectAdmin; + } + if (this.pathRoot) { + options.headers['Dropbox-API-Path-Root'] = this.pathRoot; + } + if (this.customHeaders) { + const headerKeys = Object.keys(this.customHeaders); + headerKeys.forEach((header) => { + options.headers[header] = this.customHeaders[header]; + }); + } + } +} diff --git a/node_modules/tr46/dropbox/src/error.js b/node_modules/tr46/dropbox/src/error.js new file mode 100644 index 0000000000000000000000000000000000000000..d3e186d1b9453c1232c2b3b37863a6559f9ee1dd --- /dev/null +++ b/node_modules/tr46/dropbox/src/error.js @@ -0,0 +1,17 @@ +/** + * The response class of HTTP errors from API calls using the Dropbox SDK. + * @class DropboxResponseError + * @classdesc The response class of HTTP errors from API calls using the Dropbox SDK. + * @arg {number} status - HTTP Status code of the call + * @arg {Object} headers - Headers returned from the call + * @arg {Object} error - Serialized Error of the call + */ +export class DropboxResponseError extends Error { + constructor(status, headers, error) { + super(`Response failed with a ${status} code`); + this.name = 'DropboxResponseError'; + this.status = status; + this.headers = headers; + this.error = error; + } +} diff --git a/node_modules/tr46/dropbox/src/response.js b/node_modules/tr46/dropbox/src/response.js new file mode 100644 index 0000000000000000000000000000000000000000..2753bb7b05414ef1c28e14b6f13b2c1efea9c258 --- /dev/null +++ b/node_modules/tr46/dropbox/src/response.js @@ -0,0 +1,64 @@ +import { isWindowOrWorker } from './utils.js'; +import { DropboxResponseError } from './error.js'; + +export class DropboxResponse { + constructor(status, headers, result) { + this.status = status; + this.headers = headers; + this.result = result; + } +} + +function throwAsError(res) { + return res.text() + .then((data) => { + let errorObject; + try { + errorObject = JSON.parse(data); + } catch (error) { + errorObject = data; + } + + throw new DropboxResponseError(res.status, res.headers, errorObject); + }); +} + +export function parseResponse(res) { + if (!res.ok) { + return throwAsError(res); + } + return res.text() + .then((data) => { + let responseObject; + try { + responseObject = JSON.parse(data); + } catch (error) { + responseObject = data; + } + + return new DropboxResponse(res.status, res.headers, responseObject); + }); +} + +export function parseDownloadResponse(res) { + if (!res.ok) { + return throwAsError(res); + } + return new Promise((resolve) => { + if (isWindowOrWorker()) { + res.blob().then((data) => resolve(data)); + } else { + res.buffer().then((data) => resolve(data)); + } + }).then((data) => { + const result = JSON.parse(res.headers.get('dropbox-api-result')); + + if (isWindowOrWorker()) { + result.fileBlob = data; + } else { + result.fileBinary = data; + } + + return new DropboxResponse(res.status, res.headers, result); + }); +} diff --git a/node_modules/tr46/dropbox/src/utils.js b/node_modules/tr46/dropbox/src/utils.js new file mode 100644 index 0000000000000000000000000000000000000000..a4f74a5faf392daa5e2cfb3182d226d0218db2ad --- /dev/null +++ b/node_modules/tr46/dropbox/src/utils.js @@ -0,0 +1,70 @@ +import { DEFAULT_API_DOMAIN, DEFAULT_DOMAIN, TEST_DOMAIN_MAPPINGS } from './constants'; + +function getSafeUnicode(c) { + const unicode = `000${c.charCodeAt(0).toString(16)}`.slice(-4); + return `\\u${unicode}`; +} + +export const baseApiUrl = (subdomain, domain = DEFAULT_API_DOMAIN, domainDelimiter = '.') => { + if (!domainDelimiter) { + return `https://${domain}/2/`; + } + if (domain !== DEFAULT_API_DOMAIN && TEST_DOMAIN_MAPPINGS[subdomain] !== undefined) { + subdomain = TEST_DOMAIN_MAPPINGS[subdomain]; + domainDelimiter = '-'; + } + return `https://${subdomain}${domainDelimiter}${domain}/2/`; +}; +export const OAuth2AuthorizationUrl = (domain = DEFAULT_DOMAIN) => { + if (domain !== DEFAULT_DOMAIN) { + domain = `meta-${domain}`; + } + return `https://${domain}/oauth2/authorize`; +}; +export const OAuth2TokenUrl = (domain = DEFAULT_API_DOMAIN, domainDelimiter = '.') => { + let subdomain = 'api'; + if (domain !== DEFAULT_API_DOMAIN) { + subdomain = TEST_DOMAIN_MAPPINGS[subdomain]; + domainDelimiter = '-'; + } + return `https://${subdomain}${domainDelimiter}${domain}/oauth2/token`; +}; + +// source https://www.dropboxforum.com/t5/API-support/HTTP-header-quot-Dropbox-API-Arg-quot-could-not-decode-input-as/m-p/173823/highlight/true#M6786 +export function httpHeaderSafeJson(args) { + return JSON.stringify(args).replace(/[\u007f-\uffff]/g, getSafeUnicode); +} + +export function getTokenExpiresAtDate(expiresIn) { + return new Date(Date.now() + (expiresIn * 1000)); +} + +/* global WorkerGlobalScope */ +export function isWindowOrWorker() { + return ( + ( + typeof WorkerGlobalScope !== 'undefined' + && self instanceof WorkerGlobalScope // eslint-disable-line no-restricted-globals + ) + || ( + typeof module === 'undefined' + || typeof window !== 'undefined' + ) + ); +} + +export function isBrowserEnv() { + return typeof window !== 'undefined'; +} + +export function isWorkerEnv() { + return typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope; // eslint-disable-line no-restricted-globals +} + +export function createBrowserSafeString(toBeConverted) { + const convertedString = toBeConverted.toString('base64') + .replace(/\+/g, '-') + .replace(/\//g, '_') + .replace(/=/g, ''); + return convertedString; +} diff --git a/node_modules/tr46/dropbox/types/.eslintrc b/node_modules/tr46/dropbox/types/.eslintrc new file mode 100644 index 0000000000000000000000000000000000000000..6b91d5a28ab03ba23216c50bbbde1c5040fa617d --- /dev/null +++ b/node_modules/tr46/dropbox/types/.eslintrc @@ -0,0 +1,15 @@ +{ + "extends": ["airbnb-base"], + "env": { + "browser": false, + "node": true + }, + "rules": { + "func-names": 0, + "no-param-reassign": 0, + "import/prefer-default-export": 0 + }, + "plugins": ["@typescript-eslint"], + "parser": "@typescript-eslint/parser", + "parserOptions": { "ecmaVersion": 6 } +} \ No newline at end of file diff --git a/node_modules/tr46/dropbox/types/dropbox_types.d.ts b/node_modules/tr46/dropbox/types/dropbox_types.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..0023a1910f18c3fdfa9099378985e11c30bd9c70 --- /dev/null +++ b/node_modules/tr46/dropbox/types/dropbox_types.d.ts @@ -0,0 +1,37599 @@ +// Auto-generated by Stone, do not modify. + + + /** + * An Error object returned from a route. + */ + interface Error { + // Text summary of the error. + error_summary: string; + // The error object. + error: T; + // User-friendly error message. + user_message: UserMessage; + } + + /** + * User-friendly error message. + */ + interface UserMessage { + // The message. + text: string; + // The locale of the message. + locale: string; + } + + + type Timestamp = string; + + export namespace account { + /** + * Image data in base64-encoded bytes. + */ + export interface PhotoSourceArgBase64Data { + '.tag': 'base64_data'; + base64_data: string; + } + + export interface PhotoSourceArgOther { + '.tag': 'other'; + } + + export type PhotoSourceArg = PhotoSourceArgBase64Data | PhotoSourceArgOther; + + export interface SetProfilePhotoArg { + /** + * Image to set as the user's new profile photo. + */ + photo: PhotoSourceArg; + } + + /** + * File cannot be set as profile photo. + */ + export interface SetProfilePhotoErrorFileTypeError { + '.tag': 'file_type_error'; + } + + /** + * File cannot exceed 10 MB. + */ + export interface SetProfilePhotoErrorFileSizeError { + '.tag': 'file_size_error'; + } + + /** + * Image must be larger than 128 x 128. + */ + export interface SetProfilePhotoErrorDimensionError { + '.tag': 'dimension_error'; + } + + /** + * Image could not be thumbnailed. + */ + export interface SetProfilePhotoErrorThumbnailError { + '.tag': 'thumbnail_error'; + } + + /** + * Temporary infrastructure failure, please retry. + */ + export interface SetProfilePhotoErrorTransientError { + '.tag': 'transient_error'; + } + + export interface SetProfilePhotoErrorOther { + '.tag': 'other'; + } + + export type SetProfilePhotoError = SetProfilePhotoErrorFileTypeError | SetProfilePhotoErrorFileSizeError | SetProfilePhotoErrorDimensionError | SetProfilePhotoErrorThumbnailError | SetProfilePhotoErrorTransientError | SetProfilePhotoErrorOther; + + export interface SetProfilePhotoResult { + /** + * URL for the photo representing the user, if one is set. + */ + profile_photo_url: string; + } + + } + + export namespace async { + /** + * The job finished synchronously and successfully. + */ + export interface LaunchEmptyResultComplete { + '.tag': 'complete'; + } + + /** + * Result returned by methods that may either launch an asynchronous job or + * complete synchronously. Upon synchronous completion of the job, no + * additional information is returned. + */ + export type LaunchEmptyResult = LaunchResultBase | LaunchEmptyResultComplete; + + /** + * This response indicates that the processing is asynchronous. The string + * is an id that can be used to obtain the status of the asynchronous job. + */ + export interface LaunchResultBaseAsyncJobId { + '.tag': 'async_job_id'; + async_job_id: AsyncJobId; + } + + /** + * Result returned by methods that launch an asynchronous job. A method who + * may either launch an asynchronous job, or complete the request + * synchronously, can use this union by extending it, and adding a + * 'complete' field with the type of the synchronous response. See + * async.LaunchEmptyResult for an example. + */ + export type LaunchResultBase = LaunchResultBaseAsyncJobId; + + /** + * Arguments for methods that poll the status of an asynchronous job. + */ + export interface PollArg { + /** + * Id of the asynchronous job. This is the value of a response returned + * from the method that launched the job. + */ + async_job_id: AsyncJobId; + } + + /** + * The asynchronous job has completed successfully. + */ + export interface PollEmptyResultComplete { + '.tag': 'complete'; + } + + /** + * Result returned by methods that poll for the status of an asynchronous + * job. Upon completion of the job, no additional information is returned. + */ + export type PollEmptyResult = PollResultBase | PollEmptyResultComplete; + + /** + * The job ID is invalid. + */ + export interface PollErrorInvalidAsyncJobId { + '.tag': 'invalid_async_job_id'; + } + + /** + * Something went wrong with the job on Dropbox's end. You'll need to verify + * that the action you were taking succeeded, and if not, try again. This + * should happen very rarely. + */ + export interface PollErrorInternalError { + '.tag': 'internal_error'; + } + + export interface PollErrorOther { + '.tag': 'other'; + } + + /** + * Error returned by methods for polling the status of asynchronous job. + */ + export type PollError = PollErrorInvalidAsyncJobId | PollErrorInternalError | PollErrorOther; + + /** + * The asynchronous job is still in progress. + */ + export interface PollResultBaseInProgress { + '.tag': 'in_progress'; + } + + /** + * Result returned by methods that poll for the status of an asynchronous + * job. Unions that extend this union should add a 'complete' field with a + * type of the information returned upon job completion. See + * async.PollEmptyResult for an example. + */ + export type PollResultBase = PollResultBaseInProgress; + + export type AsyncJobId = string; + + } + + export namespace auth { + /** + * Current account type cannot access the resource. + */ + export interface AccessErrorInvalidAccountType { + '.tag': 'invalid_account_type'; + invalid_account_type: InvalidAccountTypeError; + } + + /** + * Current account cannot access Paper. + */ + export interface AccessErrorPaperAccessDenied { + '.tag': 'paper_access_denied'; + paper_access_denied: PaperAccessError; + } + + export interface AccessErrorOther { + '.tag': 'other'; + } + + /** + * Error occurred because the account doesn't have permission to access the + * resource. + */ + export type AccessError = AccessErrorInvalidAccountType | AccessErrorPaperAccessDenied | AccessErrorOther; + + /** + * The access token is invalid. + */ + export interface AuthErrorInvalidAccessToken { + '.tag': 'invalid_access_token'; + } + + /** + * The user specified in 'Dropbox-API-Select-User' is no longer on the team. + */ + export interface AuthErrorInvalidSelectUser { + '.tag': 'invalid_select_user'; + } + + /** + * The user specified in 'Dropbox-API-Select-Admin' is not a Dropbox + * Business team admin. + */ + export interface AuthErrorInvalidSelectAdmin { + '.tag': 'invalid_select_admin'; + } + + /** + * The user has been suspended. + */ + export interface AuthErrorUserSuspended { + '.tag': 'user_suspended'; + } + + /** + * The access token has expired. + */ + export interface AuthErrorExpiredAccessToken { + '.tag': 'expired_access_token'; + } + + /** + * The access token does not have the required scope to access the route. + */ + export interface AuthErrorMissingScope extends TokenScopeError { + '.tag': 'missing_scope'; + } + + /** + * The route is not available to public. + */ + export interface AuthErrorRouteAccessDenied { + '.tag': 'route_access_denied'; + } + + export interface AuthErrorOther { + '.tag': 'other'; + } + + /** + * Errors occurred during authentication. + */ + export type AuthError = AuthErrorInvalidAccessToken | AuthErrorInvalidSelectUser | AuthErrorInvalidSelectAdmin | AuthErrorUserSuspended | AuthErrorExpiredAccessToken | AuthErrorMissingScope | AuthErrorRouteAccessDenied | AuthErrorOther; + + /** + * Current account type doesn't have permission to access this route + * endpoint. + */ + export interface InvalidAccountTypeErrorEndpoint { + '.tag': 'endpoint'; + } + + /** + * Current account type doesn't have permission to access this feature. + */ + export interface InvalidAccountTypeErrorFeature { + '.tag': 'feature'; + } + + export interface InvalidAccountTypeErrorOther { + '.tag': 'other'; + } + + export type InvalidAccountTypeError = InvalidAccountTypeErrorEndpoint | InvalidAccountTypeErrorFeature | InvalidAccountTypeErrorOther; + + /** + * Paper is disabled. + */ + export interface PaperAccessErrorPaperDisabled { + '.tag': 'paper_disabled'; + } + + /** + * The provided user has not used Paper yet. + */ + export interface PaperAccessErrorNotPaperUser { + '.tag': 'not_paper_user'; + } + + export interface PaperAccessErrorOther { + '.tag': 'other'; + } + + export type PaperAccessError = PaperAccessErrorPaperDisabled | PaperAccessErrorNotPaperUser | PaperAccessErrorOther; + + /** + * Error occurred because the app is being rate limited. + */ + export interface RateLimitError { + /** + * The reason why the app is being rate limited. + */ + reason: RateLimitReason; + /** + * Defaults to 1. + */ + retry_after?: number; + } + + /** + * You are making too many requests in the past few minutes. + */ + export interface RateLimitReasonTooManyRequests { + '.tag': 'too_many_requests'; + } + + /** + * There are currently too many write operations happening in the user's + * Dropbox. + */ + export interface RateLimitReasonTooManyWriteOperations { + '.tag': 'too_many_write_operations'; + } + + export interface RateLimitReasonOther { + '.tag': 'other'; + } + + export type RateLimitReason = RateLimitReasonTooManyRequests | RateLimitReasonTooManyWriteOperations | RateLimitReasonOther; + + export interface TokenFromOAuth1Arg { + /** + * The supplied OAuth 1.0 access token. + */ + oauth1_token: string; + /** + * The token secret associated with the supplied access token. + */ + oauth1_token_secret: string; + } + + /** + * Part or all of the OAuth 1.0 access token info is invalid. + */ + export interface TokenFromOAuth1ErrorInvalidOauth1TokenInfo { + '.tag': 'invalid_oauth1_token_info'; + } + + /** + * The authorized app does not match the app associated with the supplied + * access token. + */ + export interface TokenFromOAuth1ErrorAppIdMismatch { + '.tag': 'app_id_mismatch'; + } + + export interface TokenFromOAuth1ErrorOther { + '.tag': 'other'; + } + + export type TokenFromOAuth1Error = TokenFromOAuth1ErrorInvalidOauth1TokenInfo | TokenFromOAuth1ErrorAppIdMismatch | TokenFromOAuth1ErrorOther; + + export interface TokenFromOAuth1Result { + /** + * The OAuth 2.0 token generated from the supplied OAuth 1.0 token. + */ + oauth2_token: string; + } + + export interface TokenScopeError { + /** + * The required scope to access the route. + */ + required_scope: string; + } + + } + + export namespace check { + /** + * EchoArg contains the arguments to be sent to the Dropbox servers. + */ + export interface EchoArg { + /** + * Defaults to . + */ + query?: string; + } + + /** + * EchoResult contains the result returned from the Dropbox servers. + */ + export interface EchoResult { + /** + * Defaults to . + */ + result?: string; + } + + } + + export namespace common { + /** + * Paths are relative to the authenticating user's home namespace, whether + * or not that user belongs to a team. + */ + export interface PathRootHome { + '.tag': 'home'; + } + + /** + * Paths are relative to the authenticating user's root namespace (This + * results in PathRootError.invalid_root if the user's root namespace has + * changed.). + */ + export interface PathRootRoot { + '.tag': 'root'; + root: NamespaceId; + } + + /** + * Paths are relative to given namespace id (This results in + * PathRootError.no_permission if you don't have access to this namespace.). + */ + export interface PathRootNamespaceId { + '.tag': 'namespace_id'; + namespace_id: NamespaceId; + } + + export interface PathRootOther { + '.tag': 'other'; + } + + export type PathRoot = PathRootHome | PathRootRoot | PathRootNamespaceId | PathRootOther; + + /** + * The root namespace id in Dropbox-API-Path-Root header is not valid. The + * value of this error is the user's latest root info. + */ + export interface PathRootErrorInvalidRoot { + '.tag': 'invalid_root'; + invalid_root: TeamRootInfoReference|UserRootInfoReference|RootInfoReference; + } + + /** + * You don't have permission to access the namespace id in + * Dropbox-API-Path-Root header. + */ + export interface PathRootErrorNoPermission { + '.tag': 'no_permission'; + } + + export interface PathRootErrorOther { + '.tag': 'other'; + } + + export type PathRootError = PathRootErrorInvalidRoot | PathRootErrorNoPermission | PathRootErrorOther; + + /** + * Information about current user's root. + */ + export interface RootInfo { + /** + * The namespace ID for user's root namespace. It will be the namespace ID + * of the shared team root if the user is member of a team with a separate + * team root. Otherwise it will be same as RootInfo.home_namespace_id. + */ + root_namespace_id: NamespaceId; + /** + * The namespace ID for user's home namespace. + */ + home_namespace_id: NamespaceId; + } + + /** + * Reference to the RootInfo polymorphic type. Contains a .tag property to + * let you discriminate between possible subtypes. + */ + export interface RootInfoReference extends RootInfo { + /** + * Tag identifying the subtype variant. + */ + '.tag': "team"|"user"; + } + + /** + * Root info when user is member of a team with a separate root namespace + * ID. + */ + export interface TeamRootInfo extends RootInfo { + /** + * The path for user's home directory under the shared team root. + */ + home_path: string; + } + + /** + * Reference to the TeamRootInfo type, identified by the value of the .tag + * property. + */ + export interface TeamRootInfoReference extends TeamRootInfo { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'team'; + } + + /** + * Root info when user is not member of a team or the user is a member of a + * team and the team does not have a separate root namespace. + */ + export interface UserRootInfo extends RootInfo { + } + + /** + * Reference to the UserRootInfo type, identified by the value of the .tag + * property. + */ + export interface UserRootInfoReference extends UserRootInfo { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'user'; + } + + export type Date = Timestamp; + + export type DisplayName = string; + + export type DisplayNameLegacy = string; + + export type DropboxTimestamp = Timestamp; + + export type EmailAddress = string; + + export type LanguageCode = string; + + export type NamePart = string; + + export type NamespaceId = string; + + export type OptionalNamePart = string; + + export type SessionId = string; + + export type SharedFolderId = NamespaceId; + + } + + export namespace contacts { + export interface DeleteManualContactsArg { + /** + * List of manually added contacts to be deleted. + */ + email_addresses: Array; + } + + /** + * Can't delete contacts from this list. Make sure the list only has + * manually added contacts. The deletion was cancelled. + */ + export interface DeleteManualContactsErrorContactsNotFound { + '.tag': 'contacts_not_found'; + contacts_not_found: Array; + } + + export interface DeleteManualContactsErrorOther { + '.tag': 'other'; + } + + export type DeleteManualContactsError = DeleteManualContactsErrorContactsNotFound | DeleteManualContactsErrorOther; + + } + + /** + * This namespace contains helpers for property and template metadata + * endpoints. These endpoints enable you to tag arbitrary key/value data to + * Dropbox files. The most basic unit in this namespace is the + * file_properties.PropertyField. These fields encapsulate the actual + * key/value data. Fields are added to a Dropbox file using a + * file_properties.PropertyGroup. Property groups contain a reference to a + * Dropbox file and a file_properties.PropertyGroupTemplate. Property groups + * are uniquely identified by the combination of their associated Dropbox file + * and template. The file_properties.PropertyGroupTemplate is a way of + * restricting the possible key names and value types of the data within a + * property group. The possible key names and value types are explicitly + * enumerated using file_properties.PropertyFieldTemplate objects. You can + * think of a property group template as a class definition for a particular + * key/value metadata object, and the property groups themselves as the + * instantiations of these objects. Templates are owned either by a user/app + * pair or team/app pair. Templates and their associated properties can't be + * accessed by any app other than the app that created them, and even then, + * only when the app is linked with the owner of the template (either a user + * or team). User-owned templates are accessed via the user-auth + * file_properties/templates/*_for_user endpoints, while team-owned templates + * are accessed via the team-auth file_properties/templates/*_for_team + * endpoints. Properties associated with either type of template can be + * accessed via the user-auth properties/* endpoints. Finally, properties can + * be accessed from a number of endpoints that return metadata, including + * `files/get_metadata`, and `files/list_folder`. Properties can also be added + * during upload, using `files/upload`. + */ + export namespace file_properties { + export interface AddPropertiesArg { + /** + * A unique identifier for the file or folder. + */ + path: PathOrId; + /** + * The property groups which are to be added to a Dropbox file. No two + * groups in the input should refer to the same template. + */ + property_groups: Array; + } + + /** + * A property group associated with this template and file already exists. + */ + export interface AddPropertiesErrorPropertyGroupAlreadyExists { + '.tag': 'property_group_already_exists'; + } + + export type AddPropertiesError = InvalidPropertyGroupError | AddPropertiesErrorPropertyGroupAlreadyExists; + + export interface AddTemplateArg extends PropertyGroupTemplate { + } + + export interface AddTemplateResult { + /** + * An identifier for template added by See templatesAddForUser() or + * templatesAddForTeam(). + */ + template_id: TemplateId; + } + + export interface GetTemplateArg { + /** + * An identifier for template added by route See templatesAddForUser() or + * templatesAddForTeam(). + */ + template_id: TemplateId; + } + + export interface GetTemplateResult extends PropertyGroupTemplate { + } + + /** + * One or more of the supplied property field values is too large. + */ + export interface InvalidPropertyGroupErrorPropertyFieldTooLarge { + '.tag': 'property_field_too_large'; + } + + /** + * One or more of the supplied property fields does not conform to the + * template specifications. + */ + export interface InvalidPropertyGroupErrorDoesNotFitTemplate { + '.tag': 'does_not_fit_template'; + } + + /** + * There are 2 or more property groups referring to the same templates in + * the input. + */ + export interface InvalidPropertyGroupErrorDuplicatePropertyGroups { + '.tag': 'duplicate_property_groups'; + } + + export type InvalidPropertyGroupError = PropertiesError | InvalidPropertyGroupErrorPropertyFieldTooLarge | InvalidPropertyGroupErrorDoesNotFitTemplate | InvalidPropertyGroupErrorDuplicatePropertyGroups; + + export interface ListTemplateResult { + /** + * List of identifiers for templates added by See templatesAddForUser() + * or templatesAddForTeam(). + */ + template_ids: Array; + } + + /** + * Append a query with an "or" operator. + */ + export interface LogicalOperatorOrOperator { + '.tag': 'or_operator'; + } + + export interface LogicalOperatorOther { + '.tag': 'other'; + } + + /** + * Logical operator to join search queries together. + */ + export type LogicalOperator = LogicalOperatorOrOperator | LogicalOperatorOther; + + /** + * No property group was found. + */ + export interface LookUpPropertiesErrorPropertyGroupNotFound { + '.tag': 'property_group_not_found'; + } + + export interface LookUpPropertiesErrorOther { + '.tag': 'other'; + } + + export type LookUpPropertiesError = LookUpPropertiesErrorPropertyGroupNotFound | LookUpPropertiesErrorOther; + + export interface LookupErrorMalformedPath { + '.tag': 'malformed_path'; + malformed_path: string; + } + + /** + * There is nothing at the given path. + */ + export interface LookupErrorNotFound { + '.tag': 'not_found'; + } + + /** + * We were expecting a file, but the given path refers to something that + * isn't a file. + */ + export interface LookupErrorNotFile { + '.tag': 'not_file'; + } + + /** + * We were expecting a folder, but the given path refers to something that + * isn't a folder. + */ + export interface LookupErrorNotFolder { + '.tag': 'not_folder'; + } + + /** + * The file cannot be transferred because the content is restricted. For + * example, we might restrict a file due to legal requirements. + */ + export interface LookupErrorRestrictedContent { + '.tag': 'restricted_content'; + } + + export interface LookupErrorOther { + '.tag': 'other'; + } + + export type LookupError = LookupErrorMalformedPath | LookupErrorNotFound | LookupErrorNotFile | LookupErrorNotFolder | LookupErrorRestrictedContent | LookupErrorOther; + + /** + * A property field key with that name already exists in the template. + */ + export interface ModifyTemplateErrorConflictingPropertyNames { + '.tag': 'conflicting_property_names'; + } + + /** + * There are too many properties in the changed template. The maximum number + * of properties per template is 32. + */ + export interface ModifyTemplateErrorTooManyProperties { + '.tag': 'too_many_properties'; + } + + /** + * There are too many templates for the team. + */ + export interface ModifyTemplateErrorTooManyTemplates { + '.tag': 'too_many_templates'; + } + + /** + * The template name, description or one or more of the property field keys + * is too large. + */ + export interface ModifyTemplateErrorTemplateAttributeTooLarge { + '.tag': 'template_attribute_too_large'; + } + + export type ModifyTemplateError = TemplateError | ModifyTemplateErrorConflictingPropertyNames | ModifyTemplateErrorTooManyProperties | ModifyTemplateErrorTooManyTemplates | ModifyTemplateErrorTemplateAttributeTooLarge; + + export interface OverwritePropertyGroupArg { + /** + * A unique identifier for the file or folder. + */ + path: PathOrId; + /** + * The property groups "snapshot" updates to force apply. No two groups in + * the input should refer to the same template. + */ + property_groups: Array; + } + + export interface PropertiesErrorPath { + '.tag': 'path'; + path: LookupError; + } + + /** + * This folder cannot be tagged. Tagging folders is not supported for + * team-owned templates. + */ + export interface PropertiesErrorUnsupportedFolder { + '.tag': 'unsupported_folder'; + } + + export type PropertiesError = TemplateError | PropertiesErrorPath | PropertiesErrorUnsupportedFolder; + + export interface PropertiesSearchArg { + /** + * Queries to search. + */ + queries: Array; + /** + * Defaults to TagRef(Union('TemplateFilter', [UnionField('filter_none', + * Void, False, None)]), 'filter_none'). + */ + template_filter?: TemplateFilter; + } + + export interface PropertiesSearchContinueArg { + /** + * The cursor returned by your last call to propertiesSearch() or + * propertiesSearchContinue(). + */ + cursor: PropertiesSearchCursor; + } + + /** + * Indicates that the cursor has been invalidated. Call propertiesSearch() + * to obtain a new cursor. + */ + export interface PropertiesSearchContinueErrorReset { + '.tag': 'reset'; + } + + export interface PropertiesSearchContinueErrorOther { + '.tag': 'other'; + } + + export type PropertiesSearchContinueError = PropertiesSearchContinueErrorReset | PropertiesSearchContinueErrorOther; + + export interface PropertiesSearchErrorPropertyGroupLookup { + '.tag': 'property_group_lookup'; + property_group_lookup: LookUpPropertiesError; + } + + export interface PropertiesSearchErrorOther { + '.tag': 'other'; + } + + export type PropertiesSearchError = PropertiesSearchErrorPropertyGroupLookup | PropertiesSearchErrorOther; + + export interface PropertiesSearchMatch { + /** + * The ID for the matched file or folder. + */ + id: Id; + /** + * The path for the matched file or folder. + */ + path: string; + /** + * Whether the file or folder is deleted. + */ + is_deleted: boolean; + /** + * List of custom property groups associated with the file. + */ + property_groups: Array; + } + + /** + * Search for a value associated with this field name. + */ + export interface PropertiesSearchModeFieldName { + '.tag': 'field_name'; + field_name: string; + } + + export interface PropertiesSearchModeOther { + '.tag': 'other'; + } + + export type PropertiesSearchMode = PropertiesSearchModeFieldName | PropertiesSearchModeOther; + + export interface PropertiesSearchQuery { + /** + * The property field value for which to search across templates. + */ + query: string; + /** + * The mode with which to perform the search. + */ + mode: PropertiesSearchMode; + /** + * Defaults to TagRef(Union('LogicalOperator', [UnionField('or_operator', + * Void, False, None), UnionField('other', Void, True, None)]), + * 'or_operator'). + */ + logical_operator?: LogicalOperator; + } + + export interface PropertiesSearchResult { + /** + * A list (possibly empty) of matches for the query. + */ + matches: Array; + /** + * Pass the cursor into propertiesSearchContinue() to continue to receive + * search results. Cursor will be null when there are no more results. + */ + cursor?: PropertiesSearchCursor; + } + + /** + * Raw key/value data to be associated with a Dropbox file. Property fields + * are added to Dropbox files as a file_properties.PropertyGroup. + */ + export interface PropertyField { + /** + * Key of the property field associated with a file and template. Keys can + * be up to 256 bytes. + */ + name: string; + /** + * Value of the property field associated with a file and template. Values + * can be up to 1024 bytes. + */ + value: string; + } + + /** + * Defines how a single property field may be structured. Used exclusively + * by file_properties.PropertyGroupTemplate. + */ + export interface PropertyFieldTemplate { + /** + * Key of the property field being described. Property field keys can be + * up to 256 bytes. + */ + name: string; + /** + * Description of the property field. Property field descriptions can be + * up to 1024 bytes. + */ + description: string; + /** + * Data type of the value of this property field. This type will be + * enforced upon property creation and modifications. + */ + type: PropertyType; + } + + /** + * A subset of the property fields described by the corresponding + * file_properties.PropertyGroupTemplate. Properties are always added to a + * Dropbox file as a file_properties.PropertyGroup. The possible key names + * and value types in this group are defined by the corresponding + * file_properties.PropertyGroupTemplate. + */ + export interface PropertyGroup { + /** + * A unique identifier for the associated template. + */ + template_id: TemplateId; + /** + * The actual properties associated with the template. There can be up to + * 32 property types per template. + */ + fields: Array; + } + + /** + * Defines how a property group may be structured. + */ + export interface PropertyGroupTemplate { + /** + * Display name for the template. Template names can be up to 256 bytes. + */ + name: string; + /** + * Description for the template. Template descriptions can be up to 1024 + * bytes. + */ + description: string; + /** + * Definitions of the property fields associated with this template. There + * can be up to 32 properties in a single template. + */ + fields: Array; + } + + export interface PropertyGroupUpdate { + /** + * A unique identifier for a property template. + */ + template_id: TemplateId; + /** + * Property fields to update. If the property field already exists, it is + * updated. If the property field doesn't exist, the property group is + * added. + */ + add_or_update_fields?: Array; + /** + * Property fields to remove (by name), provided they exist. + */ + remove_fields?: Array; + } + + /** + * The associated property field will be of type string. Unicode is + * supported. + */ + export interface PropertyTypeString { + '.tag': 'string'; + } + + export interface PropertyTypeOther { + '.tag': 'other'; + } + + /** + * Data type of the given property field added. + */ + export type PropertyType = PropertyTypeString | PropertyTypeOther; + + export interface RemovePropertiesArg { + /** + * A unique identifier for the file or folder. + */ + path: PathOrId; + /** + * A list of identifiers for a template created by templatesAddForUser() + * or templatesAddForTeam(). + */ + property_template_ids: Array; + } + + export interface RemovePropertiesErrorPropertyGroupLookup { + '.tag': 'property_group_lookup'; + property_group_lookup: LookUpPropertiesError; + } + + export type RemovePropertiesError = PropertiesError | RemovePropertiesErrorPropertyGroupLookup; + + export interface RemoveTemplateArg { + /** + * An identifier for a template created by templatesAddForUser() or + * templatesAddForTeam(). + */ + template_id: TemplateId; + } + + /** + * Template does not exist for the given identifier. + */ + export interface TemplateErrorTemplateNotFound { + '.tag': 'template_not_found'; + template_not_found: TemplateId; + } + + /** + * You do not have permission to modify this template. + */ + export interface TemplateErrorRestrictedContent { + '.tag': 'restricted_content'; + } + + export interface TemplateErrorOther { + '.tag': 'other'; + } + + export type TemplateError = TemplateErrorTemplateNotFound | TemplateErrorRestrictedContent | TemplateErrorOther; + + /** + * No templates will be filtered from the result (all templates will be + * returned). + */ + export interface TemplateFilterFilterNone { + '.tag': 'filter_none'; + } + + export type TemplateFilter = TemplateFilterBase | TemplateFilterFilterNone; + + /** + * Only templates with an ID in the supplied list will be returned (a subset + * of templates will be returned). + */ + export interface TemplateFilterBaseFilterSome { + '.tag': 'filter_some'; + filter_some: Array; + } + + export interface TemplateFilterBaseOther { + '.tag': 'other'; + } + + export type TemplateFilterBase = TemplateFilterBaseFilterSome | TemplateFilterBaseOther; + + /** + * Template will be associated with a user. + */ + export interface TemplateOwnerTypeUser { + '.tag': 'user'; + } + + /** + * Template will be associated with a team. + */ + export interface TemplateOwnerTypeTeam { + '.tag': 'team'; + } + + export interface TemplateOwnerTypeOther { + '.tag': 'other'; + } + + export type TemplateOwnerType = TemplateOwnerTypeUser | TemplateOwnerTypeTeam | TemplateOwnerTypeOther; + + export interface UpdatePropertiesArg { + /** + * A unique identifier for the file or folder. + */ + path: PathOrId; + /** + * The property groups "delta" updates to apply. + */ + update_property_groups: Array; + } + + export interface UpdatePropertiesErrorPropertyGroupLookup { + '.tag': 'property_group_lookup'; + property_group_lookup: LookUpPropertiesError; + } + + export type UpdatePropertiesError = InvalidPropertyGroupError | UpdatePropertiesErrorPropertyGroupLookup; + + export interface UpdateTemplateArg { + /** + * An identifier for template added by See templatesAddForUser() or + * templatesAddForTeam(). + */ + template_id: TemplateId; + /** + * A display name for the template. template names can be up to 256 bytes. + */ + name?: string; + /** + * Description for the new template. Template descriptions can be up to + * 1024 bytes. + */ + description?: string; + /** + * Property field templates to be added to the group template. There can + * be up to 32 properties in a single template. + */ + add_fields?: Array; + } + + export interface UpdateTemplateResult { + /** + * An identifier for template added by route See templatesAddForUser() or + * templatesAddForTeam(). + */ + template_id: TemplateId; + } + + export type Id = string; + + export type PathOrId = string; + + export type PropertiesSearchCursor = string; + + export type TemplateId = string; + + } + + /** + * This namespace contains endpoints and data types for file request + * operations. + */ + export namespace file_requests { + /** + * There was an error counting the file requests. + */ + export type CountFileRequestsError = GeneralFileRequestsError; + + /** + * Result for count(). + */ + export interface CountFileRequestsResult { + /** + * The number file requests owner by this user. + */ + file_request_count: number; + } + + /** + * Arguments for create(). + */ + export interface CreateFileRequestArgs { + /** + * The title of the file request. Must not be empty. + */ + title: string; + /** + * The path of the folder in the Dropbox where uploaded files will be + * sent. For apps with the app folder permission, this will be relative to + * the app folder. + */ + destination: files.Path; + /** + * The deadline for the file request. Deadlines can only be set by + * Professional and Business accounts. + */ + deadline?: FileRequestDeadline; + /** + * Defaults to True. + */ + open?: boolean; + /** + * A description of the file request. + */ + description?: string; + } + + /** + * File requests are not available on the specified folder. + */ + export interface CreateFileRequestErrorInvalidLocation { + '.tag': 'invalid_location'; + } + + /** + * The user has reached the rate limit for creating file requests. The limit + * is currently 4000 file requests total. + */ + export interface CreateFileRequestErrorRateLimit { + '.tag': 'rate_limit'; + } + + /** + * There was an error creating the file request. + */ + export type CreateFileRequestError = FileRequestError | CreateFileRequestErrorInvalidLocation | CreateFileRequestErrorRateLimit; + + /** + * There was an error deleting all closed file requests. + */ + export type DeleteAllClosedFileRequestsError = FileRequestError; + + /** + * Result for deleteAllClosed(). + */ + export interface DeleteAllClosedFileRequestsResult { + /** + * The file requests deleted for this user. + */ + file_requests: Array; + } + + /** + * Arguments for delete(). + */ + export interface DeleteFileRequestArgs { + /** + * List IDs of the file requests to delete. + */ + ids: Array; + } + + /** + * One or more file requests currently open. + */ + export interface DeleteFileRequestErrorFileRequestOpen { + '.tag': 'file_request_open'; + } + + /** + * There was an error deleting these file requests. + */ + export type DeleteFileRequestError = FileRequestError | DeleteFileRequestErrorFileRequestOpen; + + /** + * Result for delete(). + */ + export interface DeleteFileRequestsResult { + /** + * The file requests deleted by the request. + */ + file_requests: Array; + } + + /** + * A [file request]{@link https://www.dropbox.com/help/9090} for receiving + * files into the user's Dropbox account. + */ + export interface FileRequest { + /** + * The ID of the file request. + */ + id: FileRequestId; + /** + * The URL of the file request. + */ + url: string; + /** + * The title of the file request. + */ + title: string; + /** + * The path of the folder in the Dropbox where uploaded files will be + * sent. This can be null if the destination was removed. For apps with + * the app folder permission, this will be relative to the app folder. + */ + destination?: files.Path; + /** + * When this file request was created. + */ + created: common.DropboxTimestamp; + /** + * The deadline for this file request. Only set if the request has a + * deadline. + */ + deadline?: FileRequestDeadline; + /** + * Whether or not the file request is open. If the file request is closed, + * it will not accept any more file submissions. + */ + is_open: boolean; + /** + * The number of files this file request has received. + */ + file_count: number; + /** + * A description of the file request. + */ + description?: string; + } + + export interface FileRequestDeadline { + /** + * The deadline for this file request. + */ + deadline: common.DropboxTimestamp; + /** + * If set, allow uploads after the deadline has passed. These uploads + * will be marked overdue. + */ + allow_late_uploads?: GracePeriod; + } + + /** + * This file request ID was not found. + */ + export interface FileRequestErrorNotFound { + '.tag': 'not_found'; + } + + /** + * The specified path is not a folder. + */ + export interface FileRequestErrorNotAFolder { + '.tag': 'not_a_folder'; + } + + /** + * This file request is not accessible to this app. Apps with the app folder + * permission can only access file requests in their app folder. + */ + export interface FileRequestErrorAppLacksAccess { + '.tag': 'app_lacks_access'; + } + + /** + * This user doesn't have permission to access or modify this file request. + */ + export interface FileRequestErrorNoPermission { + '.tag': 'no_permission'; + } + + /** + * This user's email address is not verified. File requests are only + * available on accounts with a verified email address. Users can verify + * their email address [here]{@link https://www.dropbox.com/help/317}. + */ + export interface FileRequestErrorEmailUnverified { + '.tag': 'email_unverified'; + } + + /** + * There was an error validating the request. For example, the title was + * invalid, or there were disallowed characters in the destination path. + */ + export interface FileRequestErrorValidationError { + '.tag': 'validation_error'; + } + + /** + * There is an error with the file request. + */ + export type FileRequestError = GeneralFileRequestsError | FileRequestErrorNotFound | FileRequestErrorNotAFolder | FileRequestErrorAppLacksAccess | FileRequestErrorNoPermission | FileRequestErrorEmailUnverified | FileRequestErrorValidationError; + + /** + * This user's Dropbox Business team doesn't allow file requests. + */ + export interface GeneralFileRequestsErrorDisabledForTeam { + '.tag': 'disabled_for_team'; + } + + export interface GeneralFileRequestsErrorOther { + '.tag': 'other'; + } + + /** + * There is an error accessing the file requests functionality. + */ + export type GeneralFileRequestsError = GeneralFileRequestsErrorDisabledForTeam | GeneralFileRequestsErrorOther; + + /** + * Arguments for get(). + */ + export interface GetFileRequestArgs { + /** + * The ID of the file request to retrieve. + */ + id: FileRequestId; + } + + /** + * There was an error retrieving the specified file request. + */ + export type GetFileRequestError = FileRequestError; + + export interface GracePeriodOneDay { + '.tag': 'one_day'; + } + + export interface GracePeriodTwoDays { + '.tag': 'two_days'; + } + + export interface GracePeriodSevenDays { + '.tag': 'seven_days'; + } + + export interface GracePeriodThirtyDays { + '.tag': 'thirty_days'; + } + + export interface GracePeriodAlways { + '.tag': 'always'; + } + + export interface GracePeriodOther { + '.tag': 'other'; + } + + export type GracePeriod = GracePeriodOneDay | GracePeriodTwoDays | GracePeriodSevenDays | GracePeriodThirtyDays | GracePeriodAlways | GracePeriodOther; + + /** + * Arguments for listV2(). + */ + export interface ListFileRequestsArg { + /** + * Defaults to 1000. + */ + limit?: number; + } + + export interface ListFileRequestsContinueArg { + /** + * The cursor returned by the previous API call specified in the endpoint + * description. + */ + cursor: string; + } + + /** + * The cursor is invalid. + */ + export interface ListFileRequestsContinueErrorInvalidCursor { + '.tag': 'invalid_cursor'; + } + + /** + * There was an error retrieving the file requests. + */ + export type ListFileRequestsContinueError = GeneralFileRequestsError | ListFileRequestsContinueErrorInvalidCursor; + + /** + * There was an error retrieving the file requests. + */ + export type ListFileRequestsError = GeneralFileRequestsError; + + /** + * Result for list(). + */ + export interface ListFileRequestsResult { + /** + * The file requests owned by this user. Apps with the app folder + * permission will only see file requests in their app folder. + */ + file_requests: Array; + } + + /** + * Result for listV2() and listContinue(). + */ + export interface ListFileRequestsV2Result { + /** + * The file requests owned by this user. Apps with the app folder + * permission will only see file requests in their app folder. + */ + file_requests: Array; + /** + * Pass the cursor into listContinue() to obtain additional file requests. + */ + cursor: string; + /** + * Is true if there are additional file requests that have not been + * returned yet. An additional call to :route:list/continue` can retrieve + * them. + */ + has_more: boolean; + } + + /** + * Arguments for update(). + */ + export interface UpdateFileRequestArgs { + /** + * The ID of the file request to update. + */ + id: FileRequestId; + /** + * The new title of the file request. Must not be empty. + */ + title?: string; + /** + * The new path of the folder in the Dropbox where uploaded files will be + * sent. For apps with the app folder permission, this will be relative to + * the app folder. + */ + destination?: files.Path; + /** + * Defaults to TagRef(Union('UpdateFileRequestDeadline', + * [UnionField('no_update', Void, False, None), UnionField('update', + * Nullable, False, None), UnionField('other', Void, True, None)]), + * 'no_update'). + */ + deadline?: UpdateFileRequestDeadline; + /** + * Whether to set this file request as open or closed. + */ + open?: boolean; + /** + * The description of the file request. + */ + description?: string; + } + + /** + * Do not change the file request's deadline. + */ + export interface UpdateFileRequestDeadlineNoUpdate { + '.tag': 'no_update'; + } + + /** + * If null, the file request's deadline is cleared. + */ + export interface UpdateFileRequestDeadlineUpdate { + '.tag': 'update'; + update: Object; + } + + export interface UpdateFileRequestDeadlineOther { + '.tag': 'other'; + } + + export type UpdateFileRequestDeadline = UpdateFileRequestDeadlineNoUpdate | UpdateFileRequestDeadlineUpdate | UpdateFileRequestDeadlineOther; + + /** + * There is an error updating the file request. + */ + export type UpdateFileRequestError = FileRequestError; + + export type FileRequestId = string; + + export type FileRequestValidationError = Object; + + } + + /** + * This namespace contains endpoints and data types for basic file operations. + */ + export namespace files { + export interface AddTagArg { + /** + * Path to the item to be tagged. + */ + path: Path; + /** + * The value of the tag to add. Will be automatically converted to + * lowercase letters. + */ + tag_text: TagText; + } + + /** + * The item already has the maximum supported number of tags. + */ + export interface AddTagErrorTooManyTags { + '.tag': 'too_many_tags'; + } + + export type AddTagError = BaseTagError | AddTagErrorTooManyTags; + + export interface AlphaGetMetadataArg extends GetMetadataArg { + /** + * If set to a valid list of template IDs, FileMetadata.property_groups is + * set for files with custom properties. + */ + include_property_templates?: Array; + } + + export interface AlphaGetMetadataErrorPropertiesError { + '.tag': 'properties_error'; + properties_error: file_properties.LookUpPropertiesError; + } + + export type AlphaGetMetadataError = GetMetadataError | AlphaGetMetadataErrorPropertiesError; + + export interface BaseTagErrorPath { + '.tag': 'path'; + path: LookupError; + } + + export interface BaseTagErrorOther { + '.tag': 'other'; + } + + export type BaseTagError = BaseTagErrorPath | BaseTagErrorOther; + + export interface CommitInfo { + /** + * Path in the user's Dropbox to save the file. + */ + path: WritePathOrId; + /** + * Defaults to TagRef(Union('WriteMode', [UnionField('add', Void, False, + * None), UnionField('overwrite', Void, False, None), UnionField('update', + * Alias('Rev', String), False, None)]), 'add'). + */ + mode?: WriteMode; + /** + * Defaults to False. + */ + autorename?: boolean; + /** + * The value to store as the client_modified timestamp. Dropbox + * automatically records the time at which the file was written to the + * Dropbox servers. It can also record an additional timestamp, provided + * by Dropbox desktop clients, mobile clients, and API apps of when the + * file was actually created or modified. + */ + client_modified?: common.DropboxTimestamp; + /** + * Defaults to False. + */ + mute?: boolean; + /** + * List of custom properties to add to file. + */ + property_groups?: Array; + /** + * Defaults to False. + */ + strict_conflict?: boolean; + } + + export interface ContentSyncSetting { + /** + * Id of the item this setting is applied to. + */ + id: FileId; + /** + * Setting for this item. + */ + sync_setting: SyncSetting; + } + + export interface ContentSyncSettingArg { + /** + * Id of the item this setting is applied to. + */ + id: FileId; + /** + * Setting for this item. + */ + sync_setting: SyncSettingArg; + } + + export interface CreateFolderArg { + /** + * Path in the user's Dropbox to create. + */ + path: WritePath; + /** + * Defaults to False. + */ + autorename?: boolean; + } + + export interface CreateFolderBatchArg { + /** + * List of paths to be created in the user's Dropbox. Duplicate path + * arguments in the batch are considered only once. + */ + paths: Array; + /** + * Defaults to False. + */ + autorename?: boolean; + /** + * Defaults to False. + */ + force_async?: boolean; + } + + /** + * The operation would involve too many files or folders. + */ + export interface CreateFolderBatchErrorTooManyFiles { + '.tag': 'too_many_files'; + } + + export interface CreateFolderBatchErrorOther { + '.tag': 'other'; + } + + export type CreateFolderBatchError = CreateFolderBatchErrorTooManyFiles | CreateFolderBatchErrorOther; + + /** + * The batch create folder has finished. + */ + export interface CreateFolderBatchJobStatusComplete extends CreateFolderBatchResult { + '.tag': 'complete'; + } + + /** + * The batch create folder has failed. + */ + export interface CreateFolderBatchJobStatusFailed { + '.tag': 'failed'; + failed: CreateFolderBatchError; + } + + export interface CreateFolderBatchJobStatusOther { + '.tag': 'other'; + } + + export type CreateFolderBatchJobStatus = async.PollResultBase | CreateFolderBatchJobStatusComplete | CreateFolderBatchJobStatusFailed | CreateFolderBatchJobStatusOther; + + export interface CreateFolderBatchLaunchComplete extends CreateFolderBatchResult { + '.tag': 'complete'; + } + + export interface CreateFolderBatchLaunchOther { + '.tag': 'other'; + } + + /** + * Result returned by createFolderBatch() that may either launch an + * asynchronous job or complete synchronously. + */ + export type CreateFolderBatchLaunch = async.LaunchResultBase | CreateFolderBatchLaunchComplete | CreateFolderBatchLaunchOther; + + export interface CreateFolderBatchResult extends FileOpsResult { + /** + * Each entry in CreateFolderBatchArg.paths will appear at the same + * position inside CreateFolderBatchResult.entries. + */ + entries: Array; + } + + export interface CreateFolderBatchResultEntrySuccess extends CreateFolderEntryResult { + '.tag': 'success'; + } + + export interface CreateFolderBatchResultEntryFailure { + '.tag': 'failure'; + failure: CreateFolderEntryError; + } + + export type CreateFolderBatchResultEntry = CreateFolderBatchResultEntrySuccess | CreateFolderBatchResultEntryFailure; + + export interface CreateFolderEntryErrorPath { + '.tag': 'path'; + path: WriteError; + } + + export interface CreateFolderEntryErrorOther { + '.tag': 'other'; + } + + export type CreateFolderEntryError = CreateFolderEntryErrorPath | CreateFolderEntryErrorOther; + + export interface CreateFolderEntryResult { + /** + * Metadata of the created folder. + */ + metadata: FolderMetadata; + } + + export interface CreateFolderErrorPath { + '.tag': 'path'; + path: WriteError; + } + + export type CreateFolderError = CreateFolderErrorPath; + + export interface CreateFolderResult extends FileOpsResult { + /** + * Metadata of the created folder. + */ + metadata: FolderMetadata; + } + + export interface DeleteArg { + /** + * Path in the user's Dropbox to delete. + */ + path: WritePathOrId; + /** + * Perform delete if given "rev" matches the existing file's latest "rev". + * This field does not support deleting a folder. + */ + parent_rev?: Rev; + } + + export interface DeleteBatchArg { + entries: Array; + } + + /** + * Use DeleteError.too_many_write_operations. deleteBatch() now provides + * smaller granularity about which entry has failed because of this. + */ + export interface DeleteBatchErrorTooManyWriteOperations { + '.tag': 'too_many_write_operations'; + } + + export interface DeleteBatchErrorOther { + '.tag': 'other'; + } + + export type DeleteBatchError = DeleteBatchErrorTooManyWriteOperations | DeleteBatchErrorOther; + + /** + * The batch delete has finished. + */ + export interface DeleteBatchJobStatusComplete extends DeleteBatchResult { + '.tag': 'complete'; + } + + /** + * The batch delete has failed. + */ + export interface DeleteBatchJobStatusFailed { + '.tag': 'failed'; + failed: DeleteBatchError; + } + + export interface DeleteBatchJobStatusOther { + '.tag': 'other'; + } + + export type DeleteBatchJobStatus = async.PollResultBase | DeleteBatchJobStatusComplete | DeleteBatchJobStatusFailed | DeleteBatchJobStatusOther; + + export interface DeleteBatchLaunchComplete extends DeleteBatchResult { + '.tag': 'complete'; + } + + export interface DeleteBatchLaunchOther { + '.tag': 'other'; + } + + /** + * Result returned by deleteBatch() that may either launch an asynchronous + * job or complete synchronously. + */ + export type DeleteBatchLaunch = async.LaunchResultBase | DeleteBatchLaunchComplete | DeleteBatchLaunchOther; + + export interface DeleteBatchResult extends FileOpsResult { + /** + * Each entry in DeleteBatchArg.entries will appear at the same position + * inside DeleteBatchResult.entries. + */ + entries: Array; + } + + export interface DeleteBatchResultData { + /** + * Metadata of the deleted object. + */ + metadata: FileMetadataReference|FolderMetadataReference|DeletedMetadataReference; + } + + export interface DeleteBatchResultEntrySuccess extends DeleteBatchResultData { + '.tag': 'success'; + } + + export interface DeleteBatchResultEntryFailure { + '.tag': 'failure'; + failure: DeleteError; + } + + export type DeleteBatchResultEntry = DeleteBatchResultEntrySuccess | DeleteBatchResultEntryFailure; + + export interface DeleteErrorPathLookup { + '.tag': 'path_lookup'; + path_lookup: LookupError; + } + + export interface DeleteErrorPathWrite { + '.tag': 'path_write'; + path_write: WriteError; + } + + /** + * There are too many write operations in user's Dropbox. Please retry this + * request. + */ + export interface DeleteErrorTooManyWriteOperations { + '.tag': 'too_many_write_operations'; + } + + /** + * There are too many files in one request. Please retry with fewer files. + */ + export interface DeleteErrorTooManyFiles { + '.tag': 'too_many_files'; + } + + export interface DeleteErrorOther { + '.tag': 'other'; + } + + export type DeleteError = DeleteErrorPathLookup | DeleteErrorPathWrite | DeleteErrorTooManyWriteOperations | DeleteErrorTooManyFiles | DeleteErrorOther; + + export interface DeleteResult extends FileOpsResult { + /** + * Metadata of the deleted object. + */ + metadata: FileMetadataReference|FolderMetadataReference|DeletedMetadataReference; + } + + /** + * Indicates that there used to be a file or folder at this path, but it no + * longer exists. + */ + export interface DeletedMetadata extends Metadata { + } + + /** + * Reference to the DeletedMetadata type, identified by the value of the + * .tag property. + */ + export interface DeletedMetadataReference extends DeletedMetadata { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'deleted'; + } + + /** + * Dimensions for a photo or video. + */ + export interface Dimensions { + /** + * Height of the photo/video. + */ + height: number; + /** + * Width of the photo/video. + */ + width: number; + } + + export interface DownloadArg { + /** + * The path of the file to download. + */ + path: ReadPath; + /** + * Please specify revision in path instead. + */ + rev?: Rev; + } + + export interface DownloadErrorPath { + '.tag': 'path'; + path: LookupError; + } + + /** + * This file type cannot be downloaded directly; use export() instead. + */ + export interface DownloadErrorUnsupportedFile { + '.tag': 'unsupported_file'; + } + + export interface DownloadErrorOther { + '.tag': 'other'; + } + + export type DownloadError = DownloadErrorPath | DownloadErrorUnsupportedFile | DownloadErrorOther; + + export interface DownloadZipArg { + /** + * The path of the folder to download. + */ + path: ReadPath; + } + + export interface DownloadZipErrorPath { + '.tag': 'path'; + path: LookupError; + } + + /** + * The folder or a file is too large to download. + */ + export interface DownloadZipErrorTooLarge { + '.tag': 'too_large'; + } + + /** + * The folder has too many files to download. + */ + export interface DownloadZipErrorTooManyFiles { + '.tag': 'too_many_files'; + } + + export interface DownloadZipErrorOther { + '.tag': 'other'; + } + + export type DownloadZipError = DownloadZipErrorPath | DownloadZipErrorTooLarge | DownloadZipErrorTooManyFiles | DownloadZipErrorOther; + + export interface DownloadZipResult { + metadata: FolderMetadata; + } + + export interface ExportArg { + /** + * The path of the file to be exported. + */ + path: ReadPath; + /** + * The file format to which the file should be exported. This must be one + * of the formats listed in the file's export_options returned by + * getMetadata(). If none is specified, the default format (specified in + * export_as in file metadata) will be used. + */ + export_format?: string; + } + + export interface ExportErrorPath { + '.tag': 'path'; + path: LookupError; + } + + /** + * This file type cannot be exported. Use download() instead. + */ + export interface ExportErrorNonExportable { + '.tag': 'non_exportable'; + } + + /** + * The specified export format is not a valid option for this file type. + */ + export interface ExportErrorInvalidExportFormat { + '.tag': 'invalid_export_format'; + } + + /** + * The exportable content is not yet available. Please retry later. + */ + export interface ExportErrorRetryError { + '.tag': 'retry_error'; + } + + export interface ExportErrorOther { + '.tag': 'other'; + } + + export type ExportError = ExportErrorPath | ExportErrorNonExportable | ExportErrorInvalidExportFormat | ExportErrorRetryError | ExportErrorOther; + + /** + * Export information for a file. + */ + export interface ExportInfo { + /** + * Format to which the file can be exported to. + */ + export_as?: string; + /** + * Additional formats to which the file can be exported. These values can + * be specified as the export_format in /files/export. + */ + export_options?: Array; + } + + export interface ExportMetadata { + /** + * The last component of the path (including extension). This never + * contains a slash. + */ + name: string; + /** + * The file size in bytes. + */ + size: number; + /** + * A hash based on the exported file content. This field can be used to + * verify data integrity. Similar to content hash. For more information + * see our [Content hash]{@link + * https://www.dropbox.com/developers/reference/content-hash} page. + */ + export_hash?: Sha256HexHash; + /** + * If the file is a Paper doc, this gives the latest doc revision which + * can be used in paperUpdate(). + */ + paper_revision?: number; + } + + export interface ExportResult { + /** + * Metadata for the exported version of the file. + */ + export_metadata: ExportMetadata; + /** + * Metadata for the original file. + */ + file_metadata: FileMetadata; + } + + /** + * jpg, png, gif, and more. + */ + export interface FileCategoryImage { + '.tag': 'image'; + } + + /** + * doc, docx, txt, and more. + */ + export interface FileCategoryDocument { + '.tag': 'document'; + } + + /** + * pdf. + */ + export interface FileCategoryPdf { + '.tag': 'pdf'; + } + + /** + * xlsx, xls, csv, and more. + */ + export interface FileCategorySpreadsheet { + '.tag': 'spreadsheet'; + } + + /** + * ppt, pptx, key, and more. + */ + export interface FileCategoryPresentation { + '.tag': 'presentation'; + } + + /** + * mp3, wav, mid, and more. + */ + export interface FileCategoryAudio { + '.tag': 'audio'; + } + + /** + * mov, wmv, mp4, and more. + */ + export interface FileCategoryVideo { + '.tag': 'video'; + } + + /** + * dropbox folder. + */ + export interface FileCategoryFolder { + '.tag': 'folder'; + } + + /** + * dropbox paper doc. + */ + export interface FileCategoryPaper { + '.tag': 'paper'; + } + + /** + * any file not in one of the categories above. + */ + export interface FileCategoryOthers { + '.tag': 'others'; + } + + export interface FileCategoryOther { + '.tag': 'other'; + } + + export type FileCategory = FileCategoryImage | FileCategoryDocument | FileCategoryPdf | FileCategorySpreadsheet | FileCategoryPresentation | FileCategoryAudio | FileCategoryVideo | FileCategoryFolder | FileCategoryPaper | FileCategoryOthers | FileCategoryOther; + + export interface FileLock { + /** + * The lock description. + */ + content: FileLockContent; + } + + /** + * Empty type to indicate no lock. + */ + export interface FileLockContentUnlocked { + '.tag': 'unlocked'; + } + + /** + * A lock held by a single user. + */ + export interface FileLockContentSingleUser extends SingleUserLock { + '.tag': 'single_user'; + } + + export interface FileLockContentOther { + '.tag': 'other'; + } + + export type FileLockContent = FileLockContentUnlocked | FileLockContentSingleUser | FileLockContentOther; + + export interface FileLockMetadata { + /** + * True if caller holds the file lock. + */ + is_lockholder?: boolean; + /** + * The display name of the lock holder. + */ + lockholder_name?: string; + /** + * The account ID of the lock holder if known. + */ + lockholder_account_id?: users_common.AccountId; + /** + * The timestamp of the lock was created. + */ + created?: common.DropboxTimestamp; + } + + export interface FileMetadata extends Metadata { + /** + * A unique identifier for the file. + */ + id: Id; + /** + * For files, this is the modification time set by the desktop client when + * the file was added to Dropbox. Since this time is not verified (the + * Dropbox server stores whatever the desktop client sends up), this + * should only be used for display purposes (such as sorting) and not, for + * example, to determine if a file has changed or not. + */ + client_modified: common.DropboxTimestamp; + /** + * The last time the file was modified on Dropbox. + */ + server_modified: common.DropboxTimestamp; + /** + * A unique identifier for the current revision of a file. This field is + * the same rev as elsewhere in the API and can be used to detect changes + * and avoid conflicts. + */ + rev: Rev; + /** + * The file size in bytes. + */ + size: number; + /** + * Additional information if the file is a photo or video. This field will + * not be set on entries returned by listFolder(), listFolderContinue(), + * or getThumbnailBatch(), starting December 2, 2019. + */ + media_info?: MediaInfo; + /** + * Set if this file is a symlink. + */ + symlink_info?: SymlinkInfo; + /** + * Set if this file is contained in a shared folder. + */ + sharing_info?: FileSharingInfo; + /** + * Defaults to True. + */ + is_downloadable?: boolean; + /** + * Information about format this file can be exported to. This filed must + * be set if is_downloadable is set to false. + */ + export_info?: ExportInfo; + /** + * Additional information if the file has custom properties with the + * property template specified. + */ + property_groups?: Array; + /** + * This flag will only be present if include_has_explicit_shared_members + * is true in listFolder() or getMetadata(). If this flag is present, it + * will be true if this file has any explicit shared members. This is + * different from sharing_info in that this could be true in the case + * where a file has explicit members but is not contained within a shared + * folder. + */ + has_explicit_shared_members?: boolean; + /** + * A hash of the file content. This field can be used to verify data + * integrity. For more information see our [Content hash]{@link + * https://www.dropbox.com/developers/reference/content-hash} page. + */ + content_hash?: Sha256HexHash; + /** + * If present, the metadata associated with the file's current lock. + */ + file_lock_info?: FileLockMetadata; + } + + /** + * Reference to the FileMetadata type, identified by the value of the .tag + * property. + */ + export interface FileMetadataReference extends FileMetadata { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'file'; + } + + export interface FileOpsResult { + } + + /** + * Sharing info for a file which is contained by a shared folder. + */ + export interface FileSharingInfo extends SharingInfo { + /** + * ID of shared folder that holds this file. + */ + parent_shared_folder_id: common.SharedFolderId; + /** + * The last user who modified the file. This field will be null if the + * user's account has been deleted. + */ + modified_by?: users_common.AccountId; + } + + export interface FileStatusActive { + '.tag': 'active'; + } + + export interface FileStatusDeleted { + '.tag': 'deleted'; + } + + export interface FileStatusOther { + '.tag': 'other'; + } + + export type FileStatus = FileStatusActive | FileStatusDeleted | FileStatusOther; + + export interface FolderMetadata extends Metadata { + /** + * A unique identifier for the folder. + */ + id: Id; + /** + * Please use sharing_info instead. + */ + shared_folder_id?: common.SharedFolderId; + /** + * Set if the folder is contained in a shared folder or is a shared folder + * mount point. + */ + sharing_info?: FolderSharingInfo; + /** + * Additional information if the file has custom properties with the + * property template specified. Note that only properties associated with + * user-owned templates, not team-owned templates, can be attached to + * folders. + */ + property_groups?: Array; + } + + /** + * Reference to the FolderMetadata type, identified by the value of the .tag + * property. + */ + export interface FolderMetadataReference extends FolderMetadata { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'folder'; + } + + /** + * Sharing info for a folder which is contained in a shared folder or is a + * shared folder mount point. + */ + export interface FolderSharingInfo extends SharingInfo { + /** + * Set if the folder is contained by a shared folder. + */ + parent_shared_folder_id?: common.SharedFolderId; + /** + * If this folder is a shared folder mount point, the ID of the shared + * folder mounted at this location. + */ + shared_folder_id?: common.SharedFolderId; + /** + * Defaults to False. + */ + traverse_only?: boolean; + /** + * Defaults to False. + */ + no_access?: boolean; + } + + export interface GetCopyReferenceArg { + /** + * The path to the file or folder you want to get a copy reference to. + */ + path: ReadPath; + } + + export interface GetCopyReferenceErrorPath { + '.tag': 'path'; + path: LookupError; + } + + export interface GetCopyReferenceErrorOther { + '.tag': 'other'; + } + + export type GetCopyReferenceError = GetCopyReferenceErrorPath | GetCopyReferenceErrorOther; + + export interface GetCopyReferenceResult { + /** + * Metadata of the file or folder. + */ + metadata: FileMetadataReference|FolderMetadataReference|DeletedMetadataReference; + /** + * A copy reference to the file or folder. + */ + copy_reference: string; + /** + * The expiration date of the copy reference. This value is currently set + * to be far enough in the future so that expiration is effectively not an + * issue. + */ + expires: common.DropboxTimestamp; + } + + export interface GetMetadataArg { + /** + * The path of a file or folder on Dropbox. + */ + path: ReadPath; + /** + * Defaults to False. + */ + include_media_info?: boolean; + /** + * Defaults to False. + */ + include_deleted?: boolean; + /** + * Defaults to False. + */ + include_has_explicit_shared_members?: boolean; + /** + * If set to a valid list of template IDs, FileMetadata.property_groups is + * set if there exists property data associated with the file and each of + * the listed templates. + */ + include_property_groups?: file_properties.TemplateFilterBase; + } + + export interface GetMetadataErrorPath { + '.tag': 'path'; + path: LookupError; + } + + export type GetMetadataError = GetMetadataErrorPath; + + export interface GetTagsArg { + /** + * Path to the items. + */ + paths: Array; + } + + export interface GetTagsResult { + /** + * List of paths and their corresponding tags. + */ + paths_to_tags: Array; + } + + export interface GetTemporaryLinkArg { + /** + * The path to the file you want a temporary link to. + */ + path: ReadPath; + } + + export interface GetTemporaryLinkErrorPath { + '.tag': 'path'; + path: LookupError; + } + + /** + * This user's email address is not verified. This functionality is only + * available on accounts with a verified email address. Users can verify + * their email address [here]{@link https://www.dropbox.com/help/317}. + */ + export interface GetTemporaryLinkErrorEmailNotVerified { + '.tag': 'email_not_verified'; + } + + /** + * Cannot get temporary link to this file type; use export() instead. + */ + export interface GetTemporaryLinkErrorUnsupportedFile { + '.tag': 'unsupported_file'; + } + + /** + * The user is not allowed to request a temporary link to the specified + * file. For example, this can occur if the file is restricted or if the + * user's links are [banned]{@link + * https://help.dropbox.com/files-folders/share/banned-links}. + */ + export interface GetTemporaryLinkErrorNotAllowed { + '.tag': 'not_allowed'; + } + + export interface GetTemporaryLinkErrorOther { + '.tag': 'other'; + } + + export type GetTemporaryLinkError = GetTemporaryLinkErrorPath | GetTemporaryLinkErrorEmailNotVerified | GetTemporaryLinkErrorUnsupportedFile | GetTemporaryLinkErrorNotAllowed | GetTemporaryLinkErrorOther; + + export interface GetTemporaryLinkResult { + /** + * Metadata of the file. + */ + metadata: FileMetadata; + /** + * The temporary link which can be used to stream content the file. + */ + link: string; + } + + export interface GetTemporaryUploadLinkArg { + /** + * Contains the path and other optional modifiers for the future upload + * commit. Equivalent to the parameters provided to upload(). + */ + commit_info: CommitInfo; + /** + * Defaults to 14400.0. + */ + duration?: number; + } + + export interface GetTemporaryUploadLinkResult { + /** + * The temporary link which can be used to stream a file to a Dropbox + * location. + */ + link: string; + } + + /** + * Arguments for getThumbnailBatch(). + */ + export interface GetThumbnailBatchArg { + /** + * List of files to get thumbnails. + */ + entries: Array; + } + + /** + * The operation involves more than 25 files. + */ + export interface GetThumbnailBatchErrorTooManyFiles { + '.tag': 'too_many_files'; + } + + export interface GetThumbnailBatchErrorOther { + '.tag': 'other'; + } + + export type GetThumbnailBatchError = GetThumbnailBatchErrorTooManyFiles | GetThumbnailBatchErrorOther; + + export interface GetThumbnailBatchResult { + /** + * List of files and their thumbnails. + */ + entries: Array; + } + + export interface GetThumbnailBatchResultData { + metadata: FileMetadata; + /** + * A string containing the base64-encoded thumbnail data for this file. + */ + thumbnail: string; + } + + export interface GetThumbnailBatchResultEntrySuccess extends GetThumbnailBatchResultData { + '.tag': 'success'; + } + + /** + * The result for this file if it was an error. + */ + export interface GetThumbnailBatchResultEntryFailure { + '.tag': 'failure'; + failure: ThumbnailError; + } + + export interface GetThumbnailBatchResultEntryOther { + '.tag': 'other'; + } + + export type GetThumbnailBatchResultEntry = GetThumbnailBatchResultEntrySuccess | GetThumbnailBatchResultEntryFailure | GetThumbnailBatchResultEntryOther; + + /** + * GPS coordinates for a photo or video. + */ + export interface GpsCoordinates { + /** + * Latitude of the GPS coordinates. + */ + latitude: number; + /** + * Longitude of the GPS coordinates. + */ + longitude: number; + } + + export interface HighlightSpan { + /** + * String to be determined whether it should be highlighted or not. + */ + highlight_str: string; + /** + * The string should be highlighted or not. + */ + is_highlighted: boolean; + } + + /** + * The provided data is interpreted as standard HTML. + */ + export interface ImportFormatHtml { + '.tag': 'html'; + } + + /** + * The provided data is interpreted as markdown. + */ + export interface ImportFormatMarkdown { + '.tag': 'markdown'; + } + + /** + * The provided data is interpreted as plain text. + */ + export interface ImportFormatPlainText { + '.tag': 'plain_text'; + } + + export interface ImportFormatOther { + '.tag': 'other'; + } + + /** + * The import format of the incoming Paper doc content. + */ + export type ImportFormat = ImportFormatHtml | ImportFormatMarkdown | ImportFormatPlainText | ImportFormatOther; + + export interface ListFolderArg { + /** + * A unique identifier for the file. + */ + path: PathROrId; + /** + * Defaults to False. + */ + recursive?: boolean; + /** + * Defaults to False. + */ + include_media_info?: boolean; + /** + * Defaults to False. + */ + include_deleted?: boolean; + /** + * Defaults to False. + */ + include_has_explicit_shared_members?: boolean; + /** + * Defaults to True. + */ + include_mounted_folders?: boolean; + /** + * The maximum number of results to return per request. Note: This is an + * approximate number and there can be slightly more entries returned in + * some cases. + */ + limit?: number; + /** + * A shared link to list the contents of. If the link is + * password-protected, the password must be provided. If this field is + * present, ListFolderArg.path will be relative to root of the shared + * link. Only non-recursive mode is supported for shared link. + */ + shared_link?: SharedLink; + /** + * If set to a valid list of template IDs, FileMetadata.property_groups is + * set if there exists property data associated with the file and each of + * the listed templates. + */ + include_property_groups?: file_properties.TemplateFilterBase; + /** + * Defaults to True. + */ + include_non_downloadable_files?: boolean; + } + + export interface ListFolderContinueArg { + /** + * The cursor returned by your last call to listFolder() or + * listFolderContinue(). + */ + cursor: ListFolderCursor; + } + + export interface ListFolderContinueErrorPath { + '.tag': 'path'; + path: LookupError; + } + + /** + * Indicates that the cursor has been invalidated. Call listFolder() to + * obtain a new cursor. + */ + export interface ListFolderContinueErrorReset { + '.tag': 'reset'; + } + + export interface ListFolderContinueErrorOther { + '.tag': 'other'; + } + + export type ListFolderContinueError = ListFolderContinueErrorPath | ListFolderContinueErrorReset | ListFolderContinueErrorOther; + + export interface ListFolderErrorPath { + '.tag': 'path'; + path: LookupError; + } + + export interface ListFolderErrorTemplateError { + '.tag': 'template_error'; + template_error: file_properties.TemplateError; + } + + export interface ListFolderErrorOther { + '.tag': 'other'; + } + + export type ListFolderError = ListFolderErrorPath | ListFolderErrorTemplateError | ListFolderErrorOther; + + export interface ListFolderGetLatestCursorResult { + /** + * Pass the cursor into listFolderContinue() to see what's changed in the + * folder since your previous query. + */ + cursor: ListFolderCursor; + } + + export interface ListFolderLongpollArg { + /** + * A cursor as returned by listFolder() or listFolderContinue(). Cursors + * retrieved by setting ListFolderArg.include_media_info to true are not + * supported. + */ + cursor: ListFolderCursor; + /** + * Defaults to 30. + */ + timeout?: number; + } + + /** + * Indicates that the cursor has been invalidated. Call listFolder() to + * obtain a new cursor. + */ + export interface ListFolderLongpollErrorReset { + '.tag': 'reset'; + } + + export interface ListFolderLongpollErrorOther { + '.tag': 'other'; + } + + export type ListFolderLongpollError = ListFolderLongpollErrorReset | ListFolderLongpollErrorOther; + + export interface ListFolderLongpollResult { + /** + * Indicates whether new changes are available. If true, call + * listFolderContinue() to retrieve the changes. + */ + changes: boolean; + /** + * If present, backoff for at least this many seconds before calling + * listFolderLongpoll() again. + */ + backoff?: number; + } + + export interface ListFolderResult { + /** + * The files and (direct) subfolders in the folder. + */ + entries: Array; + /** + * Pass the cursor into listFolderContinue() to see what's changed in the + * folder since your previous query. + */ + cursor: ListFolderCursor; + /** + * If true, then there are more entries available. Pass the cursor to + * listFolderContinue() to retrieve the rest. + */ + has_more: boolean; + } + + export interface ListRevisionsArg { + /** + * The path to the file you want to see the revisions of. + */ + path: PathOrId; + /** + * Defaults to TagRef(Union('ListRevisionsMode', [UnionField('path', Void, + * False, None), UnionField('id', Void, False, None), UnionField('other', + * Void, True, None)]), 'path'). + */ + mode?: ListRevisionsMode; + /** + * Defaults to 10. + */ + limit?: number; + } + + export interface ListRevisionsErrorPath { + '.tag': 'path'; + path: LookupError; + } + + export interface ListRevisionsErrorOther { + '.tag': 'other'; + } + + export type ListRevisionsError = ListRevisionsErrorPath | ListRevisionsErrorOther; + + /** + * Returns revisions with the same file path as identified by the latest + * file entry at the given file path or id. + */ + export interface ListRevisionsModePath { + '.tag': 'path'; + } + + /** + * Returns revisions with the same file id as identified by the latest file + * entry at the given file path or id. + */ + export interface ListRevisionsModeId { + '.tag': 'id'; + } + + export interface ListRevisionsModeOther { + '.tag': 'other'; + } + + export type ListRevisionsMode = ListRevisionsModePath | ListRevisionsModeId | ListRevisionsModeOther; + + export interface ListRevisionsResult { + /** + * If the file identified by the latest revision in the response is either + * deleted or moved. + */ + is_deleted: boolean; + /** + * The time of deletion if the file was deleted. + */ + server_deleted?: common.DropboxTimestamp; + /** + * The revisions for the file. Only revisions that are not deleted will + * show up here. + */ + entries: Array; + } + + export interface LockConflictError { + /** + * The lock that caused the conflict. + */ + lock: FileLock; + } + + export interface LockFileArg { + /** + * Path in the user's Dropbox to a file. + */ + path: WritePathOrId; + } + + export interface LockFileBatchArg { + /** + * List of 'entries'. Each 'entry' contains a path of the file which will + * be locked or queried. Duplicate path arguments in the batch are + * considered only once. + */ + entries: Array; + } + + export interface LockFileBatchResult extends FileOpsResult { + /** + * Each Entry in the 'entries' will have '.tag' with the operation status + * (e.g. success), the metadata for the file and the lock state after the + * operation. + */ + entries: Array; + } + + /** + * Could not find the specified resource. + */ + export interface LockFileErrorPathLookup { + '.tag': 'path_lookup'; + path_lookup: LookupError; + } + + /** + * There are too many write operations in user's Dropbox. Please retry this + * request. + */ + export interface LockFileErrorTooManyWriteOperations { + '.tag': 'too_many_write_operations'; + } + + /** + * There are too many files in one request. Please retry with fewer files. + */ + export interface LockFileErrorTooManyFiles { + '.tag': 'too_many_files'; + } + + /** + * The user does not have permissions to change the lock state or access the + * file. + */ + export interface LockFileErrorNoWritePermission { + '.tag': 'no_write_permission'; + } + + /** + * Item is a type that cannot be locked. + */ + export interface LockFileErrorCannotBeLocked { + '.tag': 'cannot_be_locked'; + } + + /** + * Requested file is not currently shared. + */ + export interface LockFileErrorFileNotShared { + '.tag': 'file_not_shared'; + } + + /** + * The user action conflicts with an existing lock on the file. + */ + export interface LockFileErrorLockConflict extends LockConflictError { + '.tag': 'lock_conflict'; + } + + /** + * Something went wrong with the job on Dropbox's end. You'll need to verify + * that the action you were taking succeeded, and if not, try again. This + * should happen very rarely. + */ + export interface LockFileErrorInternalError { + '.tag': 'internal_error'; + } + + export interface LockFileErrorOther { + '.tag': 'other'; + } + + export type LockFileError = LockFileErrorPathLookup | LockFileErrorTooManyWriteOperations | LockFileErrorTooManyFiles | LockFileErrorNoWritePermission | LockFileErrorCannotBeLocked | LockFileErrorFileNotShared | LockFileErrorLockConflict | LockFileErrorInternalError | LockFileErrorOther; + + export interface LockFileResult { + /** + * Metadata of the file. + */ + metadata: FileMetadataReference|FolderMetadataReference|DeletedMetadataReference; + /** + * The file lock state after the operation. + */ + lock: FileLock; + } + + export interface LockFileResultEntrySuccess extends LockFileResult { + '.tag': 'success'; + } + + export interface LockFileResultEntryFailure { + '.tag': 'failure'; + failure: LockFileError; + } + + export type LockFileResultEntry = LockFileResultEntrySuccess | LockFileResultEntryFailure; + + /** + * The given path does not satisfy the required path format. Please refer to + * the [Path formats documentation]{@link + * https://www.dropbox.com/developers/documentation/http/documentation#path-formats} + * for more information. + */ + export interface LookupErrorMalformedPath { + '.tag': 'malformed_path'; + malformed_path: MalformedPathError; + } + + /** + * There is nothing at the given path. + */ + export interface LookupErrorNotFound { + '.tag': 'not_found'; + } + + /** + * We were expecting a file, but the given path refers to something that + * isn't a file. + */ + export interface LookupErrorNotFile { + '.tag': 'not_file'; + } + + /** + * We were expecting a folder, but the given path refers to something that + * isn't a folder. + */ + export interface LookupErrorNotFolder { + '.tag': 'not_folder'; + } + + /** + * The file cannot be transferred because the content is restricted. For + * example, we might restrict a file due to legal requirements. + */ + export interface LookupErrorRestrictedContent { + '.tag': 'restricted_content'; + } + + /** + * This operation is not supported for this content type. + */ + export interface LookupErrorUnsupportedContentType { + '.tag': 'unsupported_content_type'; + } + + /** + * The given path is locked. + */ + export interface LookupErrorLocked { + '.tag': 'locked'; + } + + export interface LookupErrorOther { + '.tag': 'other'; + } + + export type LookupError = LookupErrorMalformedPath | LookupErrorNotFound | LookupErrorNotFile | LookupErrorNotFolder | LookupErrorRestrictedContent | LookupErrorUnsupportedContentType | LookupErrorLocked | LookupErrorOther; + + /** + * Indicate the photo/video is still under processing and metadata is not + * available yet. + */ + export interface MediaInfoPending { + '.tag': 'pending'; + } + + /** + * The metadata for the photo/video. + */ + export interface MediaInfoMetadata { + '.tag': 'metadata'; + metadata: PhotoMetadataReference|VideoMetadataReference; + } + + export type MediaInfo = MediaInfoPending | MediaInfoMetadata; + + /** + * Metadata for a photo or video. + */ + export interface MediaMetadata { + /** + * Dimension of the photo/video. + */ + dimensions?: Dimensions; + /** + * The GPS coordinate of the photo/video. + */ + location?: GpsCoordinates; + /** + * The timestamp when the photo/video is taken. + */ + time_taken?: common.DropboxTimestamp; + } + + /** + * Reference to the MediaMetadata polymorphic type. Contains a .tag property + * to let you discriminate between possible subtypes. + */ + export interface MediaMetadataReference extends MediaMetadata { + /** + * Tag identifying the subtype variant. + */ + '.tag': "photo"|"video"; + } + + /** + * Metadata for a file or folder. + */ + export interface Metadata { + /** + * The last component of the path (including extension). This never + * contains a slash. + */ + name: string; + /** + * The lowercased full path in the user's Dropbox. This always starts with + * a slash. This field will be null if the file or folder is not mounted. + */ + path_lower?: string; + /** + * The cased path to be used for display purposes only. In rare instances + * the casing will not correctly match the user's filesystem, but this + * behavior will match the path provided in the Core API v1, and at least + * the last path component will have the correct casing. Changes to only + * the casing of paths won't be returned by listFolderContinue(). This + * field will be null if the file or folder is not mounted. + */ + path_display?: string; + /** + * Please use FileSharingInfo.parent_shared_folder_id or + * FolderSharingInfo.parent_shared_folder_id instead. + */ + parent_shared_folder_id?: common.SharedFolderId; + /** + * The preview URL of the file. + */ + preview_url?: string; + } + + /** + * Reference to the Metadata polymorphic type. Contains a .tag property to + * let you discriminate between possible subtypes. + */ + export interface MetadataReference extends Metadata { + /** + * Tag identifying the subtype variant. + */ + '.tag': "file"|"folder"|"deleted"; + } + + export interface MetadataV2Metadata { + '.tag': 'metadata'; + metadata: FileMetadataReference|FolderMetadataReference|DeletedMetadataReference; + } + + export interface MetadataV2Other { + '.tag': 'other'; + } + + /** + * Metadata for a file, folder or other resource types. + */ + export type MetadataV2 = MetadataV2Metadata | MetadataV2Other; + + export interface MinimalFileLinkMetadata { + /** + * URL of the shared link. + */ + url: string; + /** + * Unique identifier for the linked file. + */ + id?: Id; + /** + * Full path in the user's Dropbox. This always starts with a slash. This + * field will only be present only if the linked file is in the + * authenticated user's Dropbox. + */ + path?: string; + /** + * A unique identifier for the current revision of a file. This field is + * the same rev as elsewhere in the API and can be used to detect changes + * and avoid conflicts. + */ + rev: Rev; + } + + export interface MoveBatchArg extends RelocationBatchArgBase { + /** + * Defaults to False. + */ + allow_ownership_transfer?: boolean; + } + + /** + * Moving shared folder into Family Room folder is not allowed. + */ + export interface MoveIntoFamilyErrorIsSharedFolder { + '.tag': 'is_shared_folder'; + } + + export interface MoveIntoFamilyErrorOther { + '.tag': 'other'; + } + + export type MoveIntoFamilyError = MoveIntoFamilyErrorIsSharedFolder | MoveIntoFamilyErrorOther; + + /** + * Moving shared folder into Vault is not allowed. + */ + export interface MoveIntoVaultErrorIsSharedFolder { + '.tag': 'is_shared_folder'; + } + + export interface MoveIntoVaultErrorOther { + '.tag': 'other'; + } + + export type MoveIntoVaultError = MoveIntoVaultErrorIsSharedFolder | MoveIntoVaultErrorOther; + + /** + * Your account does not have permissions to edit Paper docs. + */ + export interface PaperContentErrorInsufficientPermissions { + '.tag': 'insufficient_permissions'; + } + + /** + * The provided content was malformed and cannot be imported to Paper. + */ + export interface PaperContentErrorContentMalformed { + '.tag': 'content_malformed'; + } + + /** + * The Paper doc would be too large, split the content into multiple docs. + */ + export interface PaperContentErrorDocLengthExceeded { + '.tag': 'doc_length_exceeded'; + } + + /** + * The imported document contains an image that is too large. The current + * limit is 1MB. This only applies to HTML with data URI. + */ + export interface PaperContentErrorImageSizeExceeded { + '.tag': 'image_size_exceeded'; + } + + export interface PaperContentErrorOther { + '.tag': 'other'; + } + + export type PaperContentError = PaperContentErrorInsufficientPermissions | PaperContentErrorContentMalformed | PaperContentErrorDocLengthExceeded | PaperContentErrorImageSizeExceeded | PaperContentErrorOther; + + export interface PaperCreateArg { + /** + * The file contents to be uploaded. + */ + contents?: Object; + /** + * The fully qualified path to the location in the user's Dropbox where + * the Paper Doc should be created. This should include the document's + * title and end with .paper. + */ + path: Path; + /** + * The format of the provided data. + */ + import_format: ImportFormat; + } + + /** + * The file could not be saved to the specified location. + */ + export interface PaperCreateErrorInvalidPath { + '.tag': 'invalid_path'; + } + + /** + * The user's email must be verified to create Paper docs. + */ + export interface PaperCreateErrorEmailUnverified { + '.tag': 'email_unverified'; + } + + /** + * The file path must end in .paper. + */ + export interface PaperCreateErrorInvalidFileExtension { + '.tag': 'invalid_file_extension'; + } + + /** + * Paper is disabled for your team. + */ + export interface PaperCreateErrorPaperDisabled { + '.tag': 'paper_disabled'; + } + + export type PaperCreateError = PaperContentError | PaperCreateErrorInvalidPath | PaperCreateErrorEmailUnverified | PaperCreateErrorInvalidFileExtension | PaperCreateErrorPaperDisabled; + + export interface PaperCreateResult { + /** + * URL to open the Paper Doc. + */ + url: string; + /** + * The fully qualified path the Paper Doc was actually created at. + */ + result_path: string; + /** + * The id to use in Dropbox APIs when referencing the Paper Doc. + */ + file_id: FileId; + /** + * The current doc revision. + */ + paper_revision: number; + } + + /** + * Sets the doc content to the provided content if the provided + * paper_revision matches the latest doc revision. Otherwise, returns an + * error. + */ + export interface PaperDocUpdatePolicyUpdate { + '.tag': 'update'; + } + + /** + * Sets the doc content to the provided content without checking + * paper_revision. + */ + export interface PaperDocUpdatePolicyOverwrite { + '.tag': 'overwrite'; + } + + /** + * Adds the provided content to the beginning of the doc without checking + * paper_revision. + */ + export interface PaperDocUpdatePolicyPrepend { + '.tag': 'prepend'; + } + + /** + * Adds the provided content to the end of the doc without checking + * paper_revision. + */ + export interface PaperDocUpdatePolicyAppend { + '.tag': 'append'; + } + + export interface PaperDocUpdatePolicyOther { + '.tag': 'other'; + } + + export type PaperDocUpdatePolicy = PaperDocUpdatePolicyUpdate | PaperDocUpdatePolicyOverwrite | PaperDocUpdatePolicyPrepend | PaperDocUpdatePolicyAppend | PaperDocUpdatePolicyOther; + + export interface PaperUpdateArg { + /** + * The file contents to be uploaded. + */ + contents?: Object; + /** + * Path in the user's Dropbox to update. The path must correspond to a + * Paper doc or an error will be returned. + */ + path: WritePathOrId; + /** + * The format of the provided data. + */ + import_format: ImportFormat; + /** + * How the provided content should be applied to the doc. + */ + doc_update_policy: PaperDocUpdatePolicy; + /** + * The latest doc revision. Required when doc_update_policy is update. + * This value must match the current revision of the doc or error + * revision_mismatch will be returned. + */ + paper_revision?: number; + } + + export interface PaperUpdateErrorPath { + '.tag': 'path'; + path: LookupError; + } + + /** + * The provided revision does not match the document head. + */ + export interface PaperUpdateErrorRevisionMismatch { + '.tag': 'revision_mismatch'; + } + + /** + * This operation is not allowed on archived Paper docs. + */ + export interface PaperUpdateErrorDocArchived { + '.tag': 'doc_archived'; + } + + /** + * This operation is not allowed on deleted Paper docs. + */ + export interface PaperUpdateErrorDocDeleted { + '.tag': 'doc_deleted'; + } + + export type PaperUpdateError = PaperContentError | PaperUpdateErrorPath | PaperUpdateErrorRevisionMismatch | PaperUpdateErrorDocArchived | PaperUpdateErrorDocDeleted; + + export interface PaperUpdateResult { + /** + * The current doc revision. + */ + paper_revision: number; + } + + export interface PathOrLinkPath { + '.tag': 'path'; + path: ReadPath; + } + + export interface PathOrLinkLink extends SharedLinkFileInfo { + '.tag': 'link'; + } + + export interface PathOrLinkOther { + '.tag': 'other'; + } + + export type PathOrLink = PathOrLinkPath | PathOrLinkLink | PathOrLinkOther; + + export interface PathToTags { + /** + * Path of the item. + */ + path: Path; + /** + * Tags assigned to this item. + */ + tags: Array; + } + + /** + * Metadata for a photo. + */ + export interface PhotoMetadata extends MediaMetadata { + } + + /** + * Reference to the PhotoMetadata type, identified by the value of the .tag + * property. + */ + export interface PhotoMetadataReference extends PhotoMetadata { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'photo'; + } + + export interface PreviewArg { + /** + * The path of the file to preview. + */ + path: ReadPath; + /** + * Please specify revision in path instead. + */ + rev?: Rev; + } + + /** + * An error occurs when downloading metadata for the file. + */ + export interface PreviewErrorPath { + '.tag': 'path'; + path: LookupError; + } + + /** + * This preview generation is still in progress and the file is not ready + * for preview yet. + */ + export interface PreviewErrorInProgress { + '.tag': 'in_progress'; + } + + /** + * The file extension is not supported preview generation. + */ + export interface PreviewErrorUnsupportedExtension { + '.tag': 'unsupported_extension'; + } + + /** + * The file content is not supported for preview generation. + */ + export interface PreviewErrorUnsupportedContent { + '.tag': 'unsupported_content'; + } + + export type PreviewError = PreviewErrorPath | PreviewErrorInProgress | PreviewErrorUnsupportedExtension | PreviewErrorUnsupportedContent; + + export interface PreviewResult { + /** + * Metadata corresponding to the file received as an argument. Will be + * populated if the endpoint is called with a path (ReadPath). + */ + file_metadata?: FileMetadata; + /** + * Minimal metadata corresponding to the file received as an argument. + * Will be populated if the endpoint is called using a shared link + * (SharedLinkFileInfo). + */ + link_metadata?: MinimalFileLinkMetadata; + } + + export interface RelocationArg extends RelocationPath { + /** + * Defaults to False. + */ + allow_shared_folder?: boolean; + /** + * Defaults to False. + */ + autorename?: boolean; + /** + * Defaults to False. + */ + allow_ownership_transfer?: boolean; + } + + export interface RelocationBatchArg extends RelocationBatchArgBase { + /** + * Defaults to False. + */ + allow_shared_folder?: boolean; + /** + * Defaults to False. + */ + allow_ownership_transfer?: boolean; + } + + export interface RelocationBatchArgBase { + /** + * List of entries to be moved or copied. Each entry is + * files.RelocationPath. + */ + entries: Array; + /** + * Defaults to False. + */ + autorename?: boolean; + } + + /** + * There are too many write operations in user's Dropbox. Please retry this + * request. + */ + export interface RelocationBatchErrorTooManyWriteOperations { + '.tag': 'too_many_write_operations'; + } + + export type RelocationBatchError = RelocationError | RelocationBatchErrorTooManyWriteOperations; + + /** + * User errors that retry won't help. + */ + export interface RelocationBatchErrorEntryRelocationError { + '.tag': 'relocation_error'; + relocation_error: RelocationError; + } + + /** + * Something went wrong with the job on Dropbox's end. You'll need to verify + * that the action you were taking succeeded, and if not, try again. This + * should happen very rarely. + */ + export interface RelocationBatchErrorEntryInternalError { + '.tag': 'internal_error'; + } + + /** + * There are too many write operations in user's Dropbox. Please retry this + * request. + */ + export interface RelocationBatchErrorEntryTooManyWriteOperations { + '.tag': 'too_many_write_operations'; + } + + export interface RelocationBatchErrorEntryOther { + '.tag': 'other'; + } + + export type RelocationBatchErrorEntry = RelocationBatchErrorEntryRelocationError | RelocationBatchErrorEntryInternalError | RelocationBatchErrorEntryTooManyWriteOperations | RelocationBatchErrorEntryOther; + + /** + * The copy or move batch job has finished. + */ + export interface RelocationBatchJobStatusComplete extends RelocationBatchResult { + '.tag': 'complete'; + } + + /** + * The copy or move batch job has failed with exception. + */ + export interface RelocationBatchJobStatusFailed { + '.tag': 'failed'; + failed: RelocationBatchError; + } + + export type RelocationBatchJobStatus = async.PollResultBase | RelocationBatchJobStatusComplete | RelocationBatchJobStatusFailed; + + export interface RelocationBatchLaunchComplete extends RelocationBatchResult { + '.tag': 'complete'; + } + + export interface RelocationBatchLaunchOther { + '.tag': 'other'; + } + + /** + * Result returned by copyBatch() or moveBatch() that may either launch an + * asynchronous job or complete synchronously. + */ + export type RelocationBatchLaunch = async.LaunchResultBase | RelocationBatchLaunchComplete | RelocationBatchLaunchOther; + + export interface RelocationBatchResult extends FileOpsResult { + entries: Array; + } + + export interface RelocationBatchResultData { + /** + * Metadata of the relocated object. + */ + metadata: FileMetadataReference|FolderMetadataReference|DeletedMetadataReference; + } + + export interface RelocationBatchResultEntrySuccess { + '.tag': 'success'; + success: FileMetadataReference|FolderMetadataReference|DeletedMetadataReference; + } + + export interface RelocationBatchResultEntryFailure { + '.tag': 'failure'; + failure: RelocationBatchErrorEntry; + } + + export interface RelocationBatchResultEntryOther { + '.tag': 'other'; + } + + export type RelocationBatchResultEntry = RelocationBatchResultEntrySuccess | RelocationBatchResultEntryFailure | RelocationBatchResultEntryOther; + + /** + * The copy or move batch job has finished. + */ + export interface RelocationBatchV2JobStatusComplete extends RelocationBatchV2Result { + '.tag': 'complete'; + } + + /** + * Result returned by copyBatchCheckV2() or moveBatchCheckV2() that may + * either be in progress or completed with result for each entry. + */ + export type RelocationBatchV2JobStatus = async.PollResultBase | RelocationBatchV2JobStatusComplete; + + export interface RelocationBatchV2LaunchComplete extends RelocationBatchV2Result { + '.tag': 'complete'; + } + + /** + * Result returned by copyBatchV2() or moveBatchV2() that may either launch + * an asynchronous job or complete synchronously. + */ + export type RelocationBatchV2Launch = async.LaunchResultBase | RelocationBatchV2LaunchComplete; + + export interface RelocationBatchV2Result extends FileOpsResult { + /** + * Each entry in CopyBatchArg.entries or MoveBatchArg.entries will appear + * at the same position inside RelocationBatchV2Result.entries. + */ + entries: Array; + } + + export interface RelocationErrorFromLookup { + '.tag': 'from_lookup'; + from_lookup: LookupError; + } + + export interface RelocationErrorFromWrite { + '.tag': 'from_write'; + from_write: WriteError; + } + + export interface RelocationErrorTo { + '.tag': 'to'; + to: WriteError; + } + + /** + * Shared folders can't be copied. + */ + export interface RelocationErrorCantCopySharedFolder { + '.tag': 'cant_copy_shared_folder'; + } + + /** + * Your move operation would result in nested shared folders. This is not + * allowed. + */ + export interface RelocationErrorCantNestSharedFolder { + '.tag': 'cant_nest_shared_folder'; + } + + /** + * You cannot move a folder into itself. + */ + export interface RelocationErrorCantMoveFolderIntoItself { + '.tag': 'cant_move_folder_into_itself'; + } + + /** + * The operation would involve more than 10,000 files and folders. + */ + export interface RelocationErrorTooManyFiles { + '.tag': 'too_many_files'; + } + + /** + * There are duplicated/nested paths among RelocationArg.from_path and + * RelocationArg.to_path. + */ + export interface RelocationErrorDuplicatedOrNestedPaths { + '.tag': 'duplicated_or_nested_paths'; + } + + /** + * Your move operation would result in an ownership transfer. You may + * reissue the request with the field RelocationArg.allow_ownership_transfer + * to true. + */ + export interface RelocationErrorCantTransferOwnership { + '.tag': 'cant_transfer_ownership'; + } + + /** + * The current user does not have enough space to move or copy the files. + */ + export interface RelocationErrorInsufficientQuota { + '.tag': 'insufficient_quota'; + } + + /** + * Something went wrong with the job on Dropbox's end. You'll need to verify + * that the action you were taking succeeded, and if not, try again. This + * should happen very rarely. + */ + export interface RelocationErrorInternalError { + '.tag': 'internal_error'; + } + + /** + * Can't move the shared folder to the given destination. + */ + export interface RelocationErrorCantMoveSharedFolder { + '.tag': 'cant_move_shared_folder'; + } + + /** + * Some content cannot be moved into Vault under certain circumstances, see + * detailed error. + */ + export interface RelocationErrorCantMoveIntoVault { + '.tag': 'cant_move_into_vault'; + cant_move_into_vault: MoveIntoVaultError; + } + + /** + * Some content cannot be moved into the Family Room folder under certain + * circumstances, see detailed error. + */ + export interface RelocationErrorCantMoveIntoFamily { + '.tag': 'cant_move_into_family'; + cant_move_into_family: MoveIntoFamilyError; + } + + export interface RelocationErrorOther { + '.tag': 'other'; + } + + export type RelocationError = RelocationErrorFromLookup | RelocationErrorFromWrite | RelocationErrorTo | RelocationErrorCantCopySharedFolder | RelocationErrorCantNestSharedFolder | RelocationErrorCantMoveFolderIntoItself | RelocationErrorTooManyFiles | RelocationErrorDuplicatedOrNestedPaths | RelocationErrorCantTransferOwnership | RelocationErrorInsufficientQuota | RelocationErrorInternalError | RelocationErrorCantMoveSharedFolder | RelocationErrorCantMoveIntoVault | RelocationErrorCantMoveIntoFamily | RelocationErrorOther; + + export interface RelocationPath { + /** + * Path in the user's Dropbox to be copied or moved. + */ + from_path: WritePathOrId; + /** + * Path in the user's Dropbox that is the destination. + */ + to_path: WritePathOrId; + } + + export interface RelocationResult extends FileOpsResult { + /** + * Metadata of the relocated object. + */ + metadata: FileMetadataReference|FolderMetadataReference|DeletedMetadataReference; + } + + export interface RemoveTagArg { + /** + * Path to the item to tag. + */ + path: Path; + /** + * The tag to remove. Will be automatically converted to lowercase + * letters. + */ + tag_text: TagText; + } + + /** + * That tag doesn't exist at this path. + */ + export interface RemoveTagErrorTagNotPresent { + '.tag': 'tag_not_present'; + } + + export type RemoveTagError = BaseTagError | RemoveTagErrorTagNotPresent; + + export interface RestoreArg { + /** + * The path to save the restored file. + */ + path: WritePath; + /** + * The revision to restore. + */ + rev: Rev; + } + + /** + * An error occurs when downloading metadata for the file. + */ + export interface RestoreErrorPathLookup { + '.tag': 'path_lookup'; + path_lookup: LookupError; + } + + /** + * An error occurs when trying to restore the file to that path. + */ + export interface RestoreErrorPathWrite { + '.tag': 'path_write'; + path_write: WriteError; + } + + /** + * The revision is invalid. It may not exist or may point to a deleted file. + */ + export interface RestoreErrorInvalidRevision { + '.tag': 'invalid_revision'; + } + + /** + * The restore is currently executing, but has not yet completed. + */ + export interface RestoreErrorInProgress { + '.tag': 'in_progress'; + } + + export interface RestoreErrorOther { + '.tag': 'other'; + } + + export type RestoreError = RestoreErrorPathLookup | RestoreErrorPathWrite | RestoreErrorInvalidRevision | RestoreErrorInProgress | RestoreErrorOther; + + export interface SaveCopyReferenceArg { + /** + * A copy reference returned by copyReferenceGet(). + */ + copy_reference: string; + /** + * Path in the user's Dropbox that is the destination. + */ + path: Path; + } + + export interface SaveCopyReferenceErrorPath { + '.tag': 'path'; + path: WriteError; + } + + /** + * The copy reference is invalid. + */ + export interface SaveCopyReferenceErrorInvalidCopyReference { + '.tag': 'invalid_copy_reference'; + } + + /** + * You don't have permission to save the given copy reference. Please make + * sure this app is same app which created the copy reference and the source + * user is still linked to the app. + */ + export interface SaveCopyReferenceErrorNoPermission { + '.tag': 'no_permission'; + } + + /** + * The file referenced by the copy reference cannot be found. + */ + export interface SaveCopyReferenceErrorNotFound { + '.tag': 'not_found'; + } + + /** + * The operation would involve more than 10,000 files and folders. + */ + export interface SaveCopyReferenceErrorTooManyFiles { + '.tag': 'too_many_files'; + } + + export interface SaveCopyReferenceErrorOther { + '.tag': 'other'; + } + + export type SaveCopyReferenceError = SaveCopyReferenceErrorPath | SaveCopyReferenceErrorInvalidCopyReference | SaveCopyReferenceErrorNoPermission | SaveCopyReferenceErrorNotFound | SaveCopyReferenceErrorTooManyFiles | SaveCopyReferenceErrorOther; + + export interface SaveCopyReferenceResult { + /** + * The metadata of the saved file or folder in the user's Dropbox. + */ + metadata: FileMetadataReference|FolderMetadataReference|DeletedMetadataReference; + } + + export interface SaveUrlArg { + /** + * The path in Dropbox where the URL will be saved to. + */ + path: Path; + /** + * The URL to be saved. + */ + url: string; + } + + export interface SaveUrlErrorPath { + '.tag': 'path'; + path: WriteError; + } + + /** + * Failed downloading the given URL. The URL may be password-protected and + * the password provided was incorrect, or the link may be disabled. + */ + export interface SaveUrlErrorDownloadFailed { + '.tag': 'download_failed'; + } + + /** + * The given URL is invalid. + */ + export interface SaveUrlErrorInvalidUrl { + '.tag': 'invalid_url'; + } + + /** + * The file where the URL is saved to no longer exists. + */ + export interface SaveUrlErrorNotFound { + '.tag': 'not_found'; + } + + export interface SaveUrlErrorOther { + '.tag': 'other'; + } + + export type SaveUrlError = SaveUrlErrorPath | SaveUrlErrorDownloadFailed | SaveUrlErrorInvalidUrl | SaveUrlErrorNotFound | SaveUrlErrorOther; + + /** + * Metadata of the file where the URL is saved to. + */ + export interface SaveUrlJobStatusComplete extends FileMetadata { + '.tag': 'complete'; + } + + export interface SaveUrlJobStatusFailed { + '.tag': 'failed'; + failed: SaveUrlError; + } + + export type SaveUrlJobStatus = async.PollResultBase | SaveUrlJobStatusComplete | SaveUrlJobStatusFailed; + + /** + * Metadata of the file where the URL is saved to. + */ + export interface SaveUrlResultComplete extends FileMetadata { + '.tag': 'complete'; + } + + export type SaveUrlResult = async.LaunchResultBase | SaveUrlResultComplete; + + export interface SearchArg { + /** + * The path in the user's Dropbox to search. Should probably be a folder. + */ + path: PathROrId; + /** + * The string to search for. Query string may be rewritten to improve + * relevance of results. The string is split on spaces into multiple + * tokens. For file name searching, the last token is used for prefix + * matching (i.e. "bat c" matches "bat cave" but not "batman car"). + */ + query: string; + /** + * Defaults to 0. + */ + start?: number; + /** + * Defaults to 100. + */ + max_results?: number; + /** + * Defaults to TagRef(Union('SearchMode', [UnionField('filename', Void, + * False, None), UnionField('filename_and_content', Void, False, None), + * UnionField('deleted_filename', Void, False, None)]), 'filename'). + */ + mode?: SearchMode; + } + + export interface SearchErrorPath { + '.tag': 'path'; + path: LookupError; + } + + export interface SearchErrorInvalidArgument { + '.tag': 'invalid_argument'; + invalid_argument: Object; + } + + /** + * Something went wrong, please try again. + */ + export interface SearchErrorInternalError { + '.tag': 'internal_error'; + } + + export interface SearchErrorOther { + '.tag': 'other'; + } + + export type SearchError = SearchErrorPath | SearchErrorInvalidArgument | SearchErrorInternalError | SearchErrorOther; + + export interface SearchMatch { + /** + * The type of the match. + */ + match_type: SearchMatchType; + /** + * The metadata for the matched file or folder. + */ + metadata: FileMetadataReference|FolderMetadataReference|DeletedMetadataReference; + } + + export interface SearchMatchFieldOptions { + /** + * Defaults to False. + */ + include_highlights?: boolean; + } + + /** + * This item was matched on its file or folder name. + */ + export interface SearchMatchTypeFilename { + '.tag': 'filename'; + } + + /** + * This item was matched based on its file contents. + */ + export interface SearchMatchTypeContent { + '.tag': 'content'; + } + + /** + * This item was matched based on both its contents and its file name. + */ + export interface SearchMatchTypeBoth { + '.tag': 'both'; + } + + /** + * Indicates what type of match was found for a given item. + */ + export type SearchMatchType = SearchMatchTypeFilename | SearchMatchTypeContent | SearchMatchTypeBoth; + + /** + * This item was matched on its file or folder name. + */ + export interface SearchMatchTypeV2Filename { + '.tag': 'filename'; + } + + /** + * This item was matched based on its file contents. + */ + export interface SearchMatchTypeV2FileContent { + '.tag': 'file_content'; + } + + /** + * This item was matched based on both its contents and its file name. + */ + export interface SearchMatchTypeV2FilenameAndContent { + '.tag': 'filename_and_content'; + } + + /** + * This item was matched on image content. + */ + export interface SearchMatchTypeV2ImageContent { + '.tag': 'image_content'; + } + + export interface SearchMatchTypeV2Other { + '.tag': 'other'; + } + + /** + * Indicates what type of match was found for a given item. + */ + export type SearchMatchTypeV2 = SearchMatchTypeV2Filename | SearchMatchTypeV2FileContent | SearchMatchTypeV2FilenameAndContent | SearchMatchTypeV2ImageContent | SearchMatchTypeV2Other; + + export interface SearchMatchV2 { + /** + * The metadata for the matched file or folder. + */ + metadata: MetadataV2; + /** + * The type of the match. + */ + match_type?: SearchMatchTypeV2; + /** + * The list of HighlightSpan determines which parts of the file title + * should be highlighted. + */ + highlight_spans?: Array; + } + + /** + * Search file and folder names. + */ + export interface SearchModeFilename { + '.tag': 'filename'; + } + + /** + * Search file and folder names as well as file contents. + */ + export interface SearchModeFilenameAndContent { + '.tag': 'filename_and_content'; + } + + /** + * Search for deleted file and folder names. + */ + export interface SearchModeDeletedFilename { + '.tag': 'deleted_filename'; + } + + export type SearchMode = SearchModeFilename | SearchModeFilenameAndContent | SearchModeDeletedFilename; + + export interface SearchOptions { + /** + * Scopes the search to a path in the user's Dropbox. Searches the entire + * Dropbox if not specified. + */ + path?: PathROrId; + /** + * Defaults to 100. + */ + max_results?: number; + /** + * Specified property of the order of search results. By default, results + * are sorted by relevance. + */ + order_by?: SearchOrderBy; + /** + * Defaults to TagRef(Union('FileStatus', [UnionField('active', Void, + * False, None), UnionField('deleted', Void, False, None), + * UnionField('other', Void, True, None)]), 'active'). + */ + file_status?: FileStatus; + /** + * Defaults to False. + */ + filename_only?: boolean; + /** + * Restricts search to only the extensions specified. Only supported for + * active file search. + */ + file_extensions?: Array; + /** + * Restricts search to only the file categories specified. Only supported + * for active file search. + */ + file_categories?: Array; + /** + * Restricts results to the given account id. + */ + account_id?: users_common.AccountId; + } + + export interface SearchOrderByRelevance { + '.tag': 'relevance'; + } + + export interface SearchOrderByLastModifiedTime { + '.tag': 'last_modified_time'; + } + + export interface SearchOrderByOther { + '.tag': 'other'; + } + + export type SearchOrderBy = SearchOrderByRelevance | SearchOrderByLastModifiedTime | SearchOrderByOther; + + export interface SearchResult { + /** + * A list (possibly empty) of matches for the query. + */ + matches: Array; + /** + * Used for paging. If true, indicates there is another page of results + * available that can be fetched by calling search() again. + */ + more: boolean; + /** + * Used for paging. Value to set the start argument to when calling + * search() to fetch the next page of results. + */ + start: number; + } + + export interface SearchV2Arg { + /** + * The string to search for. May match across multiple fields based on the + * request arguments. + */ + query: string; + /** + * Options for more targeted search results. + */ + options?: SearchOptions; + /** + * Options for search results match fields. + */ + match_field_options?: SearchMatchFieldOptions; + /** + * Deprecated and moved this option to SearchMatchFieldOptions. + */ + include_highlights?: boolean; + } + + export interface SearchV2ContinueArg { + /** + * The cursor returned by your last call to searchV2(). Used to fetch the + * next page of results. + */ + cursor: SearchV2Cursor; + } + + export interface SearchV2Result { + /** + * A list (possibly empty) of matches for the query. + */ + matches: Array; + /** + * Used for paging. If true, indicates there is another page of results + * available that can be fetched by calling searchContinueV2() with the + * cursor. + */ + has_more: boolean; + /** + * Pass the cursor into searchContinueV2() to fetch the next page of + * results. + */ + cursor?: SearchV2Cursor; + } + + export interface SharedLink { + /** + * Shared link url. + */ + url: SharedLinkUrl; + /** + * Password for the shared link. + */ + password?: string; + } + + export interface SharedLinkFileInfo { + /** + * The shared link corresponding to either a file or shared link to a + * folder. If it is for a folder shared link, we use the path param to + * determine for which file in the folder the view is for. + */ + url: string; + /** + * The path corresponding to a file in a shared link to a folder. Required + * for shared links to folders. + */ + path?: string; + /** + * Password for the shared link. Required for password-protected shared + * links to files unless it can be read from a cookie. + */ + password?: string; + } + + /** + * Sharing info for a file or folder. + */ + export interface SharingInfo { + /** + * True if the file or folder is inside a read-only shared folder. + */ + read_only: boolean; + } + + export interface SingleUserLock { + /** + * The time the lock was created. + */ + created: common.DropboxTimestamp; + /** + * The account ID of the lock holder if known. + */ + lock_holder_account_id: users_common.AccountId; + /** + * The id of the team of the account holder if it exists. + */ + lock_holder_team_id?: string; + } + + export interface SymlinkInfo { + /** + * The target this symlink points to. + */ + target: string; + } + + /** + * On first sync to members' computers, the specified folder will follow its + * parent folder's setting or otherwise follow default sync behavior. + */ + export interface SyncSettingDefault { + '.tag': 'default'; + } + + /** + * On first sync to members' computers, the specified folder will be set to + * not sync with selective sync. + */ + export interface SyncSettingNotSynced { + '.tag': 'not_synced'; + } + + /** + * The specified folder's not_synced setting is inactive due to its location + * or other configuration changes. It will follow its parent folder's + * setting. + */ + export interface SyncSettingNotSyncedInactive { + '.tag': 'not_synced_inactive'; + } + + export interface SyncSettingOther { + '.tag': 'other'; + } + + export type SyncSetting = SyncSettingDefault | SyncSettingNotSynced | SyncSettingNotSyncedInactive | SyncSettingOther; + + /** + * On first sync to members' computers, the specified folder will follow its + * parent folder's setting or otherwise follow default sync behavior. + */ + export interface SyncSettingArgDefault { + '.tag': 'default'; + } + + /** + * On first sync to members' computers, the specified folder will be set to + * not sync with selective sync. + */ + export interface SyncSettingArgNotSynced { + '.tag': 'not_synced'; + } + + export interface SyncSettingArgOther { + '.tag': 'other'; + } + + export type SyncSettingArg = SyncSettingArgDefault | SyncSettingArgNotSynced | SyncSettingArgOther; + + export interface SyncSettingsErrorPath { + '.tag': 'path'; + path: LookupError; + } + + /** + * Setting this combination of sync settings simultaneously is not + * supported. + */ + export interface SyncSettingsErrorUnsupportedCombination { + '.tag': 'unsupported_combination'; + } + + /** + * The specified configuration is not supported. + */ + export interface SyncSettingsErrorUnsupportedConfiguration { + '.tag': 'unsupported_configuration'; + } + + export interface SyncSettingsErrorOther { + '.tag': 'other'; + } + + export type SyncSettingsError = SyncSettingsErrorPath | SyncSettingsErrorUnsupportedCombination | SyncSettingsErrorUnsupportedConfiguration | SyncSettingsErrorOther; + + /** + * Tag generated by the user. + */ + export interface TagUserGeneratedTag extends UserGeneratedTag { + '.tag': 'user_generated_tag'; + } + + export interface TagOther { + '.tag': 'other'; + } + + /** + * Tag that can be added in multiple ways. + */ + export type Tag = TagUserGeneratedTag | TagOther; + + export interface ThumbnailArg { + /** + * The path to the image file you want to thumbnail. + */ + path: ReadPath; + /** + * Defaults to TagRef(Union('ThumbnailFormat', [UnionField('jpeg', Void, + * False, None), UnionField('png', Void, False, None)]), 'jpeg'). + */ + format?: ThumbnailFormat; + /** + * Defaults to TagRef(Union('ThumbnailSize', [UnionField('w32h32', Void, + * False, None), UnionField('w64h64', Void, False, None), + * UnionField('w128h128', Void, False, None), UnionField('w256h256', Void, + * False, None), UnionField('w480h320', Void, False, None), + * UnionField('w640h480', Void, False, None), UnionField('w960h640', Void, + * False, None), UnionField('w1024h768', Void, False, None), + * UnionField('w2048h1536', Void, False, None)]), 'w64h64'). + */ + size?: ThumbnailSize; + /** + * Defaults to TagRef(Union('ThumbnailMode', [UnionField('strict', Void, + * False, None), UnionField('bestfit', Void, False, None), + * UnionField('fitone_bestfit', Void, False, None)]), 'strict'). + */ + mode?: ThumbnailMode; + } + + /** + * An error occurs when downloading metadata for the image. + */ + export interface ThumbnailErrorPath { + '.tag': 'path'; + path: LookupError; + } + + /** + * The file extension doesn't allow conversion to a thumbnail. + */ + export interface ThumbnailErrorUnsupportedExtension { + '.tag': 'unsupported_extension'; + } + + /** + * The image cannot be converted to a thumbnail. + */ + export interface ThumbnailErrorUnsupportedImage { + '.tag': 'unsupported_image'; + } + + /** + * An error occurs during thumbnail conversion. + */ + export interface ThumbnailErrorConversionError { + '.tag': 'conversion_error'; + } + + export type ThumbnailError = ThumbnailErrorPath | ThumbnailErrorUnsupportedExtension | ThumbnailErrorUnsupportedImage | ThumbnailErrorConversionError; + + export interface ThumbnailFormatJpeg { + '.tag': 'jpeg'; + } + + export interface ThumbnailFormatPng { + '.tag': 'png'; + } + + export type ThumbnailFormat = ThumbnailFormatJpeg | ThumbnailFormatPng; + + /** + * Scale down the image to fit within the given size. + */ + export interface ThumbnailModeStrict { + '.tag': 'strict'; + } + + /** + * Scale down the image to fit within the given size or its transpose. + */ + export interface ThumbnailModeBestfit { + '.tag': 'bestfit'; + } + + /** + * Scale down the image to completely cover the given size or its transpose. + */ + export interface ThumbnailModeFitoneBestfit { + '.tag': 'fitone_bestfit'; + } + + export type ThumbnailMode = ThumbnailModeStrict | ThumbnailModeBestfit | ThumbnailModeFitoneBestfit; + + /** + * 32 by 32 px. + */ + export interface ThumbnailSizeW32h32 { + '.tag': 'w32h32'; + } + + /** + * 64 by 64 px. + */ + export interface ThumbnailSizeW64h64 { + '.tag': 'w64h64'; + } + + /** + * 128 by 128 px. + */ + export interface ThumbnailSizeW128h128 { + '.tag': 'w128h128'; + } + + /** + * 256 by 256 px. + */ + export interface ThumbnailSizeW256h256 { + '.tag': 'w256h256'; + } + + /** + * 480 by 320 px. + */ + export interface ThumbnailSizeW480h320 { + '.tag': 'w480h320'; + } + + /** + * 640 by 480 px. + */ + export interface ThumbnailSizeW640h480 { + '.tag': 'w640h480'; + } + + /** + * 960 by 640 px. + */ + export interface ThumbnailSizeW960h640 { + '.tag': 'w960h640'; + } + + /** + * 1024 by 768 px. + */ + export interface ThumbnailSizeW1024h768 { + '.tag': 'w1024h768'; + } + + /** + * 2048 by 1536 px. + */ + export interface ThumbnailSizeW2048h1536 { + '.tag': 'w2048h1536'; + } + + export type ThumbnailSize = ThumbnailSizeW32h32 | ThumbnailSizeW64h64 | ThumbnailSizeW128h128 | ThumbnailSizeW256h256 | ThumbnailSizeW480h320 | ThumbnailSizeW640h480 | ThumbnailSizeW960h640 | ThumbnailSizeW1024h768 | ThumbnailSizeW2048h1536; + + export interface ThumbnailV2Arg { + /** + * Information specifying which file to preview. This could be a path to a + * file, a shared link pointing to a file, or a shared link pointing to a + * folder, with a relative path. + */ + resource: PathOrLink; + /** + * Defaults to TagRef(Union('ThumbnailFormat', [UnionField('jpeg', Void, + * False, None), UnionField('png', Void, False, None)]), 'jpeg'). + */ + format?: ThumbnailFormat; + /** + * Defaults to TagRef(Union('ThumbnailSize', [UnionField('w32h32', Void, + * False, None), UnionField('w64h64', Void, False, None), + * UnionField('w128h128', Void, False, None), UnionField('w256h256', Void, + * False, None), UnionField('w480h320', Void, False, None), + * UnionField('w640h480', Void, False, None), UnionField('w960h640', Void, + * False, None), UnionField('w1024h768', Void, False, None), + * UnionField('w2048h1536', Void, False, None)]), 'w64h64'). + */ + size?: ThumbnailSize; + /** + * Defaults to TagRef(Union('ThumbnailMode', [UnionField('strict', Void, + * False, None), UnionField('bestfit', Void, False, None), + * UnionField('fitone_bestfit', Void, False, None)]), 'strict'). + */ + mode?: ThumbnailMode; + } + + /** + * An error occurred when downloading metadata for the image. + */ + export interface ThumbnailV2ErrorPath { + '.tag': 'path'; + path: LookupError; + } + + /** + * The file extension doesn't allow conversion to a thumbnail. + */ + export interface ThumbnailV2ErrorUnsupportedExtension { + '.tag': 'unsupported_extension'; + } + + /** + * The image cannot be converted to a thumbnail. + */ + export interface ThumbnailV2ErrorUnsupportedImage { + '.tag': 'unsupported_image'; + } + + /** + * An error occurred during thumbnail conversion. + */ + export interface ThumbnailV2ErrorConversionError { + '.tag': 'conversion_error'; + } + + /** + * Access to this shared link is forbidden. + */ + export interface ThumbnailV2ErrorAccessDenied { + '.tag': 'access_denied'; + } + + /** + * The shared link does not exist. + */ + export interface ThumbnailV2ErrorNotFound { + '.tag': 'not_found'; + } + + export interface ThumbnailV2ErrorOther { + '.tag': 'other'; + } + + export type ThumbnailV2Error = ThumbnailV2ErrorPath | ThumbnailV2ErrorUnsupportedExtension | ThumbnailV2ErrorUnsupportedImage | ThumbnailV2ErrorConversionError | ThumbnailV2ErrorAccessDenied | ThumbnailV2ErrorNotFound | ThumbnailV2ErrorOther; + + export interface UnlockFileArg { + /** + * Path in the user's Dropbox to a file. + */ + path: WritePathOrId; + } + + export interface UnlockFileBatchArg { + /** + * List of 'entries'. Each 'entry' contains a path of the file which will + * be unlocked. Duplicate path arguments in the batch are considered only + * once. + */ + entries: Array; + } + + export interface UploadArg extends CommitInfo { + /** + * The file contents to be uploaded. + */ + contents?: Object; + /** + * A hash of the file content uploaded in this call. If provided and the + * uploaded content does not match this hash, an error will be returned. + * For more information see our [Content hash]{@link + * https://www.dropbox.com/developers/reference/content-hash} page. + */ + content_hash?: Sha256HexHash; + } + + /** + * Unable to save the uploaded contents to a file. + */ + export interface UploadErrorPath extends UploadWriteFailed { + '.tag': 'path'; + } + + /** + * The supplied property group is invalid. The file has uploaded without + * property groups. + */ + export interface UploadErrorPropertiesError { + '.tag': 'properties_error'; + properties_error: file_properties.InvalidPropertyGroupError; + } + + /** + * The request payload must be at most 150 MB. + */ + export interface UploadErrorPayloadTooLarge { + '.tag': 'payload_too_large'; + } + + /** + * The content received by the Dropbox server in this call does not match + * the provided content hash. + */ + export interface UploadErrorContentHashMismatch { + '.tag': 'content_hash_mismatch'; + } + + export interface UploadErrorOther { + '.tag': 'other'; + } + + export type UploadError = UploadErrorPath | UploadErrorPropertiesError | UploadErrorPayloadTooLarge | UploadErrorContentHashMismatch | UploadErrorOther; + + export interface UploadSessionAppendArg { + /** + * The file contents to be uploaded. + */ + contents?: Object; + /** + * Contains the upload session ID and the offset. + */ + cursor: UploadSessionCursor; + /** + * Defaults to False. + */ + close?: boolean; + /** + * A hash of the file content uploaded in this call. If provided and the + * uploaded content does not match this hash, an error will be returned. + * For more information see our [Content hash]{@link + * https://www.dropbox.com/developers/reference/content-hash} page. + */ + content_hash?: Sha256HexHash; + } + + /** + * The content received by the Dropbox server in this call does not match + * the provided content hash. + */ + export interface UploadSessionAppendErrorContentHashMismatch { + '.tag': 'content_hash_mismatch'; + } + + export type UploadSessionAppendError = UploadSessionLookupError | UploadSessionAppendErrorContentHashMismatch; + + export interface UploadSessionCursor { + /** + * The file contents to be uploaded. + */ + contents?: Object; + /** + * The upload session ID (returned by uploadSessionStart()). + */ + session_id: string; + /** + * Offset in bytes at which data should be appended. We use this to make + * sure upload data isn't lost or duplicated in the event of a network + * error. + */ + offset: number; + } + + export interface UploadSessionFinishArg { + /** + * The file contents to be uploaded. + */ + contents?: Object; + /** + * Contains the upload session ID and the offset. + */ + cursor: UploadSessionCursor; + /** + * Contains the path and other optional modifiers for the commit. + */ + commit: CommitInfo; + /** + * A hash of the file content uploaded in this call. If provided and the + * uploaded content does not match this hash, an error will be returned. + * For more information see our [Content hash]{@link + * https://www.dropbox.com/developers/reference/content-hash} page. + */ + content_hash?: Sha256HexHash; + } + + export interface UploadSessionFinishBatchArg { + /** + * Commit information for each file in the batch. + */ + entries: Array; + } + + /** + * The uploadSessionFinishBatch() has finished. + */ + export interface UploadSessionFinishBatchJobStatusComplete extends UploadSessionFinishBatchResult { + '.tag': 'complete'; + } + + export type UploadSessionFinishBatchJobStatus = async.PollResultBase | UploadSessionFinishBatchJobStatusComplete; + + export interface UploadSessionFinishBatchLaunchComplete extends UploadSessionFinishBatchResult { + '.tag': 'complete'; + } + + export interface UploadSessionFinishBatchLaunchOther { + '.tag': 'other'; + } + + /** + * Result returned by uploadSessionFinishBatch() that may either launch an + * asynchronous job or complete synchronously. + */ + export type UploadSessionFinishBatchLaunch = async.LaunchResultBase | UploadSessionFinishBatchLaunchComplete | UploadSessionFinishBatchLaunchOther; + + export interface UploadSessionFinishBatchResult { + /** + * Each entry in UploadSessionFinishBatchArg.entries will appear at the + * same position inside UploadSessionFinishBatchResult.entries. + */ + entries: Array; + } + + export interface UploadSessionFinishBatchResultEntrySuccess extends FileMetadata { + '.tag': 'success'; + } + + export interface UploadSessionFinishBatchResultEntryFailure { + '.tag': 'failure'; + failure: UploadSessionFinishError; + } + + export type UploadSessionFinishBatchResultEntry = UploadSessionFinishBatchResultEntrySuccess | UploadSessionFinishBatchResultEntryFailure; + + /** + * The session arguments are incorrect; the value explains the reason. + */ + export interface UploadSessionFinishErrorLookupFailed { + '.tag': 'lookup_failed'; + lookup_failed: UploadSessionLookupError; + } + + /** + * Unable to save the uploaded contents to a file. Data has already been + * appended to the upload session. Please retry with empty data body and + * updated offset. + */ + export interface UploadSessionFinishErrorPath { + '.tag': 'path'; + path: WriteError; + } + + /** + * The supplied property group is invalid. The file has uploaded without + * property groups. + */ + export interface UploadSessionFinishErrorPropertiesError { + '.tag': 'properties_error'; + properties_error: file_properties.InvalidPropertyGroupError; + } + + /** + * The batch request commits files into too many different shared folders. + * Please limit your batch request to files contained in a single shared + * folder. + */ + export interface UploadSessionFinishErrorTooManySharedFolderTargets { + '.tag': 'too_many_shared_folder_targets'; + } + + /** + * There are too many write operations happening in the user's Dropbox. You + * should retry uploading this file. + */ + export interface UploadSessionFinishErrorTooManyWriteOperations { + '.tag': 'too_many_write_operations'; + } + + /** + * Uploading data not allowed when finishing concurrent upload session. + */ + export interface UploadSessionFinishErrorConcurrentSessionDataNotAllowed { + '.tag': 'concurrent_session_data_not_allowed'; + } + + /** + * Concurrent upload sessions need to be closed before finishing. + */ + export interface UploadSessionFinishErrorConcurrentSessionNotClosed { + '.tag': 'concurrent_session_not_closed'; + } + + /** + * Not all pieces of data were uploaded before trying to finish the session. + */ + export interface UploadSessionFinishErrorConcurrentSessionMissingData { + '.tag': 'concurrent_session_missing_data'; + } + + /** + * The request payload must be at most 150 MB. + */ + export interface UploadSessionFinishErrorPayloadTooLarge { + '.tag': 'payload_too_large'; + } + + /** + * The content received by the Dropbox server in this call does not match + * the provided content hash. + */ + export interface UploadSessionFinishErrorContentHashMismatch { + '.tag': 'content_hash_mismatch'; + } + + export interface UploadSessionFinishErrorOther { + '.tag': 'other'; + } + + export type UploadSessionFinishError = UploadSessionFinishErrorLookupFailed | UploadSessionFinishErrorPath | UploadSessionFinishErrorPropertiesError | UploadSessionFinishErrorTooManySharedFolderTargets | UploadSessionFinishErrorTooManyWriteOperations | UploadSessionFinishErrorConcurrentSessionDataNotAllowed | UploadSessionFinishErrorConcurrentSessionNotClosed | UploadSessionFinishErrorConcurrentSessionMissingData | UploadSessionFinishErrorPayloadTooLarge | UploadSessionFinishErrorContentHashMismatch | UploadSessionFinishErrorOther; + + /** + * The upload session ID was not found or has expired. Upload sessions are + * valid for 7 days. + */ + export interface UploadSessionLookupErrorNotFound { + '.tag': 'not_found'; + } + + /** + * The specified offset was incorrect. See the value for the correct offset. + * This error may occur when a previous request was received and processed + * successfully but the client did not receive the response, e.g. due to a + * network error. + */ + export interface UploadSessionLookupErrorIncorrectOffset extends UploadSessionOffsetError { + '.tag': 'incorrect_offset'; + } + + /** + * You are attempting to append data to an upload session that has already + * been closed (i.e. committed). + */ + export interface UploadSessionLookupErrorClosed { + '.tag': 'closed'; + } + + /** + * The session must be closed before calling upload_session/finish_batch. + */ + export interface UploadSessionLookupErrorNotClosed { + '.tag': 'not_closed'; + } + + /** + * You can not append to the upload session because the size of a file + * should not reach the max file size limit (i.e. 350GB). + */ + export interface UploadSessionLookupErrorTooLarge { + '.tag': 'too_large'; + } + + /** + * For concurrent upload sessions, offset needs to be multiple of 4194304 + * bytes. + */ + export interface UploadSessionLookupErrorConcurrentSessionInvalidOffset { + '.tag': 'concurrent_session_invalid_offset'; + } + + /** + * For concurrent upload sessions, only chunks with size multiple of 4194304 + * bytes can be uploaded. + */ + export interface UploadSessionLookupErrorConcurrentSessionInvalidDataSize { + '.tag': 'concurrent_session_invalid_data_size'; + } + + /** + * The request payload must be at most 150 MB. + */ + export interface UploadSessionLookupErrorPayloadTooLarge { + '.tag': 'payload_too_large'; + } + + export interface UploadSessionLookupErrorOther { + '.tag': 'other'; + } + + export type UploadSessionLookupError = UploadSessionLookupErrorNotFound | UploadSessionLookupErrorIncorrectOffset | UploadSessionLookupErrorClosed | UploadSessionLookupErrorNotClosed | UploadSessionLookupErrorTooLarge | UploadSessionLookupErrorConcurrentSessionInvalidOffset | UploadSessionLookupErrorConcurrentSessionInvalidDataSize | UploadSessionLookupErrorPayloadTooLarge | UploadSessionLookupErrorOther; + + export interface UploadSessionOffsetError { + /** + * The offset up to which data has been collected. + */ + correct_offset: number; + } + + export interface UploadSessionStartArg { + /** + * The file contents to be uploaded. + */ + contents?: Object; + /** + * Defaults to False. + */ + close?: boolean; + /** + * Type of upload session you want to start. If not specified, default is + * UploadSessionType.sequential. + */ + session_type?: UploadSessionType; + /** + * A hash of the file content uploaded in this call. If provided and the + * uploaded content does not match this hash, an error will be returned. + * For more information see our [Content hash]{@link + * https://www.dropbox.com/developers/reference/content-hash} page. + */ + content_hash?: Sha256HexHash; + } + + export interface UploadSessionStartBatchArg { + /** + * Type of upload session you want to start. If not specified, default is + * UploadSessionType.sequential. + */ + session_type?: UploadSessionType; + /** + * The number of upload sessions to start. + */ + num_sessions: number; + } + + export interface UploadSessionStartBatchResult { + /** + * A List of unique identifiers for the upload session. Pass each + * session_id to uploadSessionAppendV2() and uploadSessionFinish(). + */ + session_ids: Array; + } + + /** + * Uploading data not allowed when starting concurrent upload session. + */ + export interface UploadSessionStartErrorConcurrentSessionDataNotAllowed { + '.tag': 'concurrent_session_data_not_allowed'; + } + + /** + * Can not start a closed concurrent upload session. + */ + export interface UploadSessionStartErrorConcurrentSessionCloseNotAllowed { + '.tag': 'concurrent_session_close_not_allowed'; + } + + /** + * The request payload must be at most 150 MB. + */ + export interface UploadSessionStartErrorPayloadTooLarge { + '.tag': 'payload_too_large'; + } + + /** + * The content received by the Dropbox server in this call does not match + * the provided content hash. + */ + export interface UploadSessionStartErrorContentHashMismatch { + '.tag': 'content_hash_mismatch'; + } + + export interface UploadSessionStartErrorOther { + '.tag': 'other'; + } + + export type UploadSessionStartError = UploadSessionStartErrorConcurrentSessionDataNotAllowed | UploadSessionStartErrorConcurrentSessionCloseNotAllowed | UploadSessionStartErrorPayloadTooLarge | UploadSessionStartErrorContentHashMismatch | UploadSessionStartErrorOther; + + export interface UploadSessionStartResult { + /** + * A unique identifier for the upload session. Pass this to + * uploadSessionAppendV2() and uploadSessionFinish(). + */ + session_id: string; + } + + /** + * Pieces of data are uploaded sequentially one after another. This is the + * default behavior. + */ + export interface UploadSessionTypeSequential { + '.tag': 'sequential'; + } + + /** + * Pieces of data can be uploaded in concurrent RPCs in any order. + */ + export interface UploadSessionTypeConcurrent { + '.tag': 'concurrent'; + } + + export interface UploadSessionTypeOther { + '.tag': 'other'; + } + + export type UploadSessionType = UploadSessionTypeSequential | UploadSessionTypeConcurrent | UploadSessionTypeOther; + + export interface UploadWriteFailed { + /** + * The reason why the file couldn't be saved. + */ + reason: WriteError; + /** + * The upload session ID; data has already been uploaded to the + * corresponding upload session and this ID may be used to retry the + * commit with uploadSessionFinish(). + */ + upload_session_id: string; + } + + export interface UserGeneratedTag { + tag_text: TagText; + } + + /** + * Metadata for a video. + */ + export interface VideoMetadata extends MediaMetadata { + /** + * The duration of the video in milliseconds. + */ + duration?: number; + } + + /** + * Reference to the VideoMetadata type, identified by the value of the .tag + * property. + */ + export interface VideoMetadataReference extends VideoMetadata { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'video'; + } + + /** + * There's a file in the way. + */ + export interface WriteConflictErrorFile { + '.tag': 'file'; + } + + /** + * There's a folder in the way. + */ + export interface WriteConflictErrorFolder { + '.tag': 'folder'; + } + + /** + * There's a file at an ancestor path, so we couldn't create the required + * parent folders. + */ + export interface WriteConflictErrorFileAncestor { + '.tag': 'file_ancestor'; + } + + export interface WriteConflictErrorOther { + '.tag': 'other'; + } + + export type WriteConflictError = WriteConflictErrorFile | WriteConflictErrorFolder | WriteConflictErrorFileAncestor | WriteConflictErrorOther; + + /** + * The given path does not satisfy the required path format. Please refer to + * the [Path formats documentation]{@link + * https://www.dropbox.com/developers/documentation/http/documentation#path-formats} + * for more information. + */ + export interface WriteErrorMalformedPath { + '.tag': 'malformed_path'; + malformed_path: MalformedPathError; + } + + /** + * Couldn't write to the target path because there was something in the way. + */ + export interface WriteErrorConflict { + '.tag': 'conflict'; + conflict: WriteConflictError; + } + + /** + * The user doesn't have permissions to write to the target location. + */ + export interface WriteErrorNoWritePermission { + '.tag': 'no_write_permission'; + } + + /** + * The user doesn't have enough available space (bytes) to write more data. + */ + export interface WriteErrorInsufficientSpace { + '.tag': 'insufficient_space'; + } + + /** + * Dropbox will not save the file or folder because of its name. + */ + export interface WriteErrorDisallowedName { + '.tag': 'disallowed_name'; + } + + /** + * This endpoint cannot move or delete team folders. + */ + export interface WriteErrorTeamFolder { + '.tag': 'team_folder'; + } + + /** + * This file operation is not allowed at this path. + */ + export interface WriteErrorOperationSuppressed { + '.tag': 'operation_suppressed'; + } + + /** + * There are too many write operations in user's Dropbox. Please retry this + * request. + */ + export interface WriteErrorTooManyWriteOperations { + '.tag': 'too_many_write_operations'; + } + + export interface WriteErrorOther { + '.tag': 'other'; + } + + export type WriteError = WriteErrorMalformedPath | WriteErrorConflict | WriteErrorNoWritePermission | WriteErrorInsufficientSpace | WriteErrorDisallowedName | WriteErrorTeamFolder | WriteErrorOperationSuppressed | WriteErrorTooManyWriteOperations | WriteErrorOther; + + /** + * Do not overwrite an existing file if there is a conflict. The autorename + * strategy is to append a number to the file name. For example, + * "document.txt" might become "document (2).txt". + */ + export interface WriteModeAdd { + '.tag': 'add'; + } + + /** + * Always overwrite the existing file. The autorename strategy is the same + * as it is for add. + */ + export interface WriteModeOverwrite { + '.tag': 'overwrite'; + } + + /** + * Overwrite if the given "rev" matches the existing file's "rev". The + * supplied value should be the latest known "rev" of the file, for example, + * from files.FileMetadata, from when the file was last downloaded by the + * app. This will cause the file on the Dropbox servers to be overwritten if + * the given "rev" matches the existing file's current "rev" on the Dropbox + * servers. The autorename strategy is to append the string "conflicted + * copy" to the file name. For example, "document.txt" might become + * "document (conflicted copy).txt" or "document (Panda's conflicted + * copy).txt". + */ + export interface WriteModeUpdate { + '.tag': 'update'; + update: Rev; + } + + /** + * Your intent when writing a file to some path. This is used to determine + * what constitutes a conflict and what the autorename strategy is. In some + * situations, the conflict behavior is identical: (a) If the target path + * doesn't refer to anything, the file is always written; no conflict. (b) + * If the target path refers to a folder, it's always a conflict. (c) If the + * target path refers to a file with identical contents, nothing gets + * written; no conflict. The conflict checking differs in the case where + * there's a file at the target path with contents different from the + * contents you're trying to write. + */ + export type WriteMode = WriteModeAdd | WriteModeOverwrite | WriteModeUpdate; + + export type CopyBatchArg = RelocationBatchArgBase; + + export type FileId = string; + + export type Id = string; + + export type ListFolderCursor = string; + + export type MalformedPathError = Object; + + export type Path = string; + + export type PathOrId = string; + + export type PathR = string; + + export type PathROrId = string; + + export type ReadPath = string; + + export type Rev = string; + + export type SearchV2Cursor = string; + + export type Sha256HexHash = string; + + export type SharedLinkUrl = string; + + export type TagText = string; + + export type WritePath = string; + + export type WritePathOrId = string; + + } + + export namespace openid { + /** + * Missing openid claims for the associated access token. + */ + export interface OpenIdErrorIncorrectOpenidScopes { + '.tag': 'incorrect_openid_scopes'; + } + + export interface OpenIdErrorOther { + '.tag': 'other'; + } + + export type OpenIdError = OpenIdErrorIncorrectOpenidScopes | OpenIdErrorOther; + + /** + * No Parameters + */ + export interface UserInfoArgs { + } + + export interface UserInfoErrorOpenidError { + '.tag': 'openid_error'; + openid_error: OpenIdError; + } + + export interface UserInfoErrorOther { + '.tag': 'other'; + } + + export type UserInfoError = UserInfoErrorOpenidError | UserInfoErrorOther; + + export interface UserInfoResult { + /** + * Last name of user. + */ + family_name?: string; + /** + * First name of user. + */ + given_name?: string; + /** + * Email address of user. + */ + email?: string; + /** + * If user is email verified. + */ + email_verified?: boolean; + /** + * Defaults to . + */ + iss?: string; + /** + * Defaults to . + */ + sub?: string; + } + + } + + /** + * This namespace contains endpoints and data types for managing docs and + * folders in Dropbox Paper. New Paper users will see docs they create in + * their filesystem as '.paper' files alongside their other Dropbox content. + * The /paper endpoints are being deprecated and you'll need to use /files and + * /sharing endpoints to interact with their Paper content. Read more in the + * [Paper Migration Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide}. + */ + export namespace paper { + export interface AddMember { + /** + * Defaults to TagRef(Union('PaperDocPermissionLevel', [UnionField('edit', + * Void, False, None), UnionField('view_and_comment', Void, False, None), + * UnionField('other', Void, True, None)]), 'edit'). + */ + permission_level?: PaperDocPermissionLevel; + /** + * User which should be added to the Paper doc. Specify only email address + * or Dropbox account ID. + */ + member: sharing.MemberSelector; + } + + export interface AddPaperDocUser extends RefPaperDoc { + /** + * User which should be added to the Paper doc. Specify only email address + * or Dropbox account ID. + */ + members: Array; + /** + * A personal message that will be emailed to each successfully added + * member. + */ + custom_message?: string; + /** + * Defaults to False. + */ + quiet?: boolean; + } + + /** + * Per-member result for docsUsersAdd(). + */ + export interface AddPaperDocUserMemberResult { + /** + * One of specified input members. + */ + member: sharing.MemberSelector; + /** + * The outcome of the action on this member. + */ + result: AddPaperDocUserResult; + } + + /** + * User was successfully added to the Paper doc. + */ + export interface AddPaperDocUserResultSuccess { + '.tag': 'success'; + } + + /** + * Something unexpected happened when trying to add the user to the Paper + * doc. + */ + export interface AddPaperDocUserResultUnknownError { + '.tag': 'unknown_error'; + } + + /** + * The Paper doc can be shared only with team members. + */ + export interface AddPaperDocUserResultSharingOutsideTeamDisabled { + '.tag': 'sharing_outside_team_disabled'; + } + + /** + * The daily limit of how many users can be added to the Paper doc was + * reached. + */ + export interface AddPaperDocUserResultDailyLimitReached { + '.tag': 'daily_limit_reached'; + } + + /** + * Owner's permissions cannot be changed. + */ + export interface AddPaperDocUserResultUserIsOwner { + '.tag': 'user_is_owner'; + } + + /** + * User data could not be retrieved. Clients should retry. + */ + export interface AddPaperDocUserResultFailedUserDataRetrieval { + '.tag': 'failed_user_data_retrieval'; + } + + /** + * This user already has the correct permission to the Paper doc. + */ + export interface AddPaperDocUserResultPermissionAlreadyGranted { + '.tag': 'permission_already_granted'; + } + + export interface AddPaperDocUserResultOther { + '.tag': 'other'; + } + + export type AddPaperDocUserResult = AddPaperDocUserResultSuccess | AddPaperDocUserResultUnknownError | AddPaperDocUserResultSharingOutsideTeamDisabled | AddPaperDocUserResultDailyLimitReached | AddPaperDocUserResultUserIsOwner | AddPaperDocUserResultFailedUserDataRetrieval | AddPaperDocUserResultPermissionAlreadyGranted | AddPaperDocUserResultOther; + + export interface Cursor { + /** + * The actual cursor value. + */ + value: string; + /** + * Expiration time of value. Some cursors might have expiration time + * assigned. This is a UTC value after which the cursor is no longer valid + * and the API starts returning an error. If cursor expires a new one + * needs to be obtained and pagination needs to be restarted. Some cursors + * might be short-lived some cursors might be long-lived. This really + * depends on the sorting type and order, e.g.: 1. on one hand, listing + * docs created by the user, sorted by the created time ascending will + * have undefinite expiration because the results cannot change while the + * iteration is happening. This cursor would be suitable for long term + * polling. 2. on the other hand, listing docs sorted by the last modified + * time will have a very short expiration as docs do get modified very + * often and the modified time can be changed while the iteration is + * happening thus altering the results. + */ + expiration?: common.DropboxTimestamp; + } + + /** + * The required doc was not found. + */ + export interface DocLookupErrorDocNotFound { + '.tag': 'doc_not_found'; + } + + export type DocLookupError = PaperApiBaseError | DocLookupErrorDocNotFound; + + /** + * No change email messages unless you're the creator. + */ + export interface DocSubscriptionLevelDefault { + '.tag': 'default'; + } + + /** + * Ignored: Not shown in pad lists or activity and no email message is sent. + */ + export interface DocSubscriptionLevelIgnore { + '.tag': 'ignore'; + } + + /** + * Subscribed: Shown in pad lists and activity and change email messages are + * sent. + */ + export interface DocSubscriptionLevelEvery { + '.tag': 'every'; + } + + /** + * Unsubscribed: Shown in pad lists, but not in activity and no change email + * messages are sent. + */ + export interface DocSubscriptionLevelNoEmail { + '.tag': 'no_email'; + } + + /** + * The subscription level of a Paper doc. + */ + export type DocSubscriptionLevel = DocSubscriptionLevelDefault | DocSubscriptionLevelIgnore | DocSubscriptionLevelEvery | DocSubscriptionLevelNoEmail; + + /** + * The HTML export format. + */ + export interface ExportFormatHtml { + '.tag': 'html'; + } + + /** + * The markdown export format. + */ + export interface ExportFormatMarkdown { + '.tag': 'markdown'; + } + + export interface ExportFormatOther { + '.tag': 'other'; + } + + /** + * The desired export format of the Paper doc. + */ + export type ExportFormat = ExportFormatHtml | ExportFormatMarkdown | ExportFormatOther; + + /** + * Data structure representing a Paper folder. + */ + export interface Folder { + /** + * Paper folder ID. This ID uniquely identifies the folder. + */ + id: string; + /** + * Paper folder name. + */ + name: string; + } + + /** + * Everyone in your team and anyone directly invited can access this folder. + */ + export interface FolderSharingPolicyTypeTeam { + '.tag': 'team'; + } + + /** + * Only people directly invited can access this folder. + */ + export interface FolderSharingPolicyTypeInviteOnly { + '.tag': 'invite_only'; + } + + /** + * The sharing policy of a Paper folder. The sharing policy of subfolders is + * inherited from the root folder. + */ + export type FolderSharingPolicyType = FolderSharingPolicyTypeTeam | FolderSharingPolicyTypeInviteOnly; + + /** + * Not shown in activity, no email messages. + */ + export interface FolderSubscriptionLevelNone { + '.tag': 'none'; + } + + /** + * Shown in activity, no email messages. + */ + export interface FolderSubscriptionLevelActivityOnly { + '.tag': 'activity_only'; + } + + /** + * Shown in activity, daily email messages. + */ + export interface FolderSubscriptionLevelDailyEmails { + '.tag': 'daily_emails'; + } + + /** + * Shown in activity, weekly email messages. + */ + export interface FolderSubscriptionLevelWeeklyEmails { + '.tag': 'weekly_emails'; + } + + /** + * The subscription level of a Paper folder. + */ + export type FolderSubscriptionLevel = FolderSubscriptionLevelNone | FolderSubscriptionLevelActivityOnly | FolderSubscriptionLevelDailyEmails | FolderSubscriptionLevelWeeklyEmails; + + /** + * Metadata about Paper folders containing the specififed Paper doc. + */ + export interface FoldersContainingPaperDoc { + /** + * The sharing policy of the folder containing the Paper doc. + */ + folder_sharing_policy_type?: FolderSharingPolicyType; + /** + * The folder path. If present the first folder is the root folder. + */ + folders?: Array; + } + + /** + * The provided data is interpreted as standard HTML. + */ + export interface ImportFormatHtml { + '.tag': 'html'; + } + + /** + * The provided data is interpreted as markdown. The first line of the + * provided document will be used as the doc title. + */ + export interface ImportFormatMarkdown { + '.tag': 'markdown'; + } + + /** + * The provided data is interpreted as plain text. The first line of the + * provided document will be used as the doc title. + */ + export interface ImportFormatPlainText { + '.tag': 'plain_text'; + } + + export interface ImportFormatOther { + '.tag': 'other'; + } + + /** + * The import format of the incoming data. + */ + export type ImportFormat = ImportFormatHtml | ImportFormatMarkdown | ImportFormatPlainText | ImportFormatOther; + + export interface InviteeInfoWithPermissionLevel { + /** + * Email address invited to the Paper doc. + */ + invitee: sharing.InviteeInfo; + /** + * Permission level for the invitee. + */ + permission_level: PaperDocPermissionLevel; + } + + export interface ListDocsCursorErrorCursorError { + '.tag': 'cursor_error'; + cursor_error: PaperApiCursorError; + } + + export interface ListDocsCursorErrorOther { + '.tag': 'other'; + } + + export type ListDocsCursorError = ListDocsCursorErrorCursorError | ListDocsCursorErrorOther; + + export interface ListPaperDocsArgs { + /** + * Defaults to TagRef(Union('ListPaperDocsFilterBy', + * [UnionField('docs_accessed', Void, False, None), + * UnionField('docs_created', Void, False, None), UnionField('other', + * Void, True, None)]), 'docs_accessed'). + */ + filter_by?: ListPaperDocsFilterBy; + /** + * Defaults to TagRef(Union('ListPaperDocsSortBy', [UnionField('accessed', + * Void, False, None), UnionField('modified', Void, False, None), + * UnionField('created', Void, False, None), UnionField('other', Void, + * True, None)]), 'accessed'). + */ + sort_by?: ListPaperDocsSortBy; + /** + * Defaults to TagRef(Union('ListPaperDocsSortOrder', + * [UnionField('ascending', Void, False, None), UnionField('descending', + * Void, False, None), UnionField('other', Void, True, None)]), + * 'ascending'). + */ + sort_order?: ListPaperDocsSortOrder; + /** + * Defaults to 1000. + */ + limit?: number; + } + + export interface ListPaperDocsContinueArgs { + /** + * The cursor obtained from docsList() or docsListContinue(). Allows for + * pagination. + */ + cursor: string; + } + + /** + * Fetches all Paper doc IDs that the user has ever accessed. + */ + export interface ListPaperDocsFilterByDocsAccessed { + '.tag': 'docs_accessed'; + } + + /** + * Fetches only the Paper doc IDs that the user has created. + */ + export interface ListPaperDocsFilterByDocsCreated { + '.tag': 'docs_created'; + } + + export interface ListPaperDocsFilterByOther { + '.tag': 'other'; + } + + export type ListPaperDocsFilterBy = ListPaperDocsFilterByDocsAccessed | ListPaperDocsFilterByDocsCreated | ListPaperDocsFilterByOther; + + export interface ListPaperDocsResponse { + /** + * The list of Paper doc IDs that can be used to access the given Paper + * docs or supplied to other API methods. The list is sorted in the order + * specified by the initial call to docsList(). + */ + doc_ids: Array; + /** + * Pass the cursor into docsListContinue() to paginate through all files. + * The cursor preserves all properties as specified in the original call + * to docsList(). + */ + cursor: Cursor; + /** + * Will be set to True if a subsequent call with the provided cursor to + * docsListContinue() returns immediately with some results. If set to + * False please allow some delay before making another call to + * docsListContinue(). + */ + has_more: boolean; + } + + /** + * Sorts the Paper docs by the time they were last accessed. + */ + export interface ListPaperDocsSortByAccessed { + '.tag': 'accessed'; + } + + /** + * Sorts the Paper docs by the time they were last modified. + */ + export interface ListPaperDocsSortByModified { + '.tag': 'modified'; + } + + /** + * Sorts the Paper docs by the creation time. + */ + export interface ListPaperDocsSortByCreated { + '.tag': 'created'; + } + + export interface ListPaperDocsSortByOther { + '.tag': 'other'; + } + + export type ListPaperDocsSortBy = ListPaperDocsSortByAccessed | ListPaperDocsSortByModified | ListPaperDocsSortByCreated | ListPaperDocsSortByOther; + + /** + * Sorts the search result in ascending order. + */ + export interface ListPaperDocsSortOrderAscending { + '.tag': 'ascending'; + } + + /** + * Sorts the search result in descending order. + */ + export interface ListPaperDocsSortOrderDescending { + '.tag': 'descending'; + } + + export interface ListPaperDocsSortOrderOther { + '.tag': 'other'; + } + + export type ListPaperDocsSortOrder = ListPaperDocsSortOrderAscending | ListPaperDocsSortOrderDescending | ListPaperDocsSortOrderOther; + + /** + * The required doc was not found. + */ + export interface ListUsersCursorErrorDocNotFound { + '.tag': 'doc_not_found'; + } + + export interface ListUsersCursorErrorCursorError { + '.tag': 'cursor_error'; + cursor_error: PaperApiCursorError; + } + + export type ListUsersCursorError = PaperApiBaseError | ListUsersCursorErrorDocNotFound | ListUsersCursorErrorCursorError; + + export interface ListUsersOnFolderArgs extends RefPaperDoc { + /** + * Defaults to 1000. + */ + limit?: number; + } + + export interface ListUsersOnFolderContinueArgs extends RefPaperDoc { + /** + * The cursor obtained from docsFolderUsersList() or + * docsFolderUsersListContinue(). Allows for pagination. + */ + cursor: string; + } + + export interface ListUsersOnFolderResponse { + /** + * List of email addresses that are invited on the Paper folder. + */ + invitees: Array; + /** + * List of users that are invited on the Paper folder. + */ + users: Array; + /** + * Pass the cursor into docsFolderUsersListContinue() to paginate through + * all users. The cursor preserves all properties as specified in the + * original call to docsFolderUsersList(). + */ + cursor: Cursor; + /** + * Will be set to True if a subsequent call with the provided cursor to + * docsFolderUsersListContinue() returns immediately with some results. If + * set to False please allow some delay before making another call to + * docsFolderUsersListContinue(). + */ + has_more: boolean; + } + + export interface ListUsersOnPaperDocArgs extends RefPaperDoc { + /** + * Defaults to 1000. + */ + limit?: number; + /** + * Defaults to TagRef(Union('UserOnPaperDocFilter', [UnionField('visited', + * Void, False, None), UnionField('shared', Void, False, None), + * UnionField('other', Void, True, None)]), 'shared'). + */ + filter_by?: UserOnPaperDocFilter; + } + + export interface ListUsersOnPaperDocContinueArgs extends RefPaperDoc { + /** + * The cursor obtained from docsUsersList() or docsUsersListContinue(). + * Allows for pagination. + */ + cursor: string; + } + + export interface ListUsersOnPaperDocResponse { + /** + * List of email addresses with their respective permission levels that + * are invited on the Paper doc. + */ + invitees: Array; + /** + * List of users with their respective permission levels that are invited + * on the Paper folder. + */ + users: Array; + /** + * The Paper doc owner. This field is populated on every single response. + */ + doc_owner: sharing.UserInfo; + /** + * Pass the cursor into docsUsersListContinue() to paginate through all + * users. The cursor preserves all properties as specified in the original + * call to docsUsersList(). + */ + cursor: Cursor; + /** + * Will be set to True if a subsequent call with the provided cursor to + * docsUsersListContinue() returns immediately with some results. If set + * to False please allow some delay before making another call to + * docsUsersListContinue(). + */ + has_more: boolean; + } + + /** + * Your account does not have permissions to perform this action. This may + * be due to it only having access to Paper as files in the Dropbox + * filesystem. For more information, refer to the [Paper Migration + * Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide}. + */ + export interface PaperApiBaseErrorInsufficientPermissions { + '.tag': 'insufficient_permissions'; + } + + export interface PaperApiBaseErrorOther { + '.tag': 'other'; + } + + export type PaperApiBaseError = PaperApiBaseErrorInsufficientPermissions | PaperApiBaseErrorOther; + + /** + * The provided cursor is expired. + */ + export interface PaperApiCursorErrorExpiredCursor { + '.tag': 'expired_cursor'; + } + + /** + * The provided cursor is invalid. + */ + export interface PaperApiCursorErrorInvalidCursor { + '.tag': 'invalid_cursor'; + } + + /** + * The provided cursor contains invalid user. + */ + export interface PaperApiCursorErrorWrongUserInCursor { + '.tag': 'wrong_user_in_cursor'; + } + + /** + * Indicates that the cursor has been invalidated. Call the corresponding + * non-continue endpoint to obtain a new cursor. + */ + export interface PaperApiCursorErrorReset { + '.tag': 'reset'; + } + + export interface PaperApiCursorErrorOther { + '.tag': 'other'; + } + + export type PaperApiCursorError = PaperApiCursorErrorExpiredCursor | PaperApiCursorErrorInvalidCursor | PaperApiCursorErrorWrongUserInCursor | PaperApiCursorErrorReset | PaperApiCursorErrorOther; + + export interface PaperDocCreateArgs { + /** + * The file contents to be uploaded. + */ + contents?: Object; + /** + * The Paper folder ID where the Paper document should be created. The API + * user has to have write access to this folder or error is thrown. + */ + parent_folder_id?: string; + /** + * The format of provided data. + */ + import_format: ImportFormat; + } + + /** + * The provided content was malformed and cannot be imported to Paper. + */ + export interface PaperDocCreateErrorContentMalformed { + '.tag': 'content_malformed'; + } + + /** + * The specified Paper folder is cannot be found. + */ + export interface PaperDocCreateErrorFolderNotFound { + '.tag': 'folder_not_found'; + } + + /** + * The newly created Paper doc would be too large. Please split the content + * into multiple docs. + */ + export interface PaperDocCreateErrorDocLengthExceeded { + '.tag': 'doc_length_exceeded'; + } + + /** + * The imported document contains an image that is too large. The current + * limit is 1MB. This only applies to HTML with data URI. + */ + export interface PaperDocCreateErrorImageSizeExceeded { + '.tag': 'image_size_exceeded'; + } + + export type PaperDocCreateError = PaperApiBaseError | PaperDocCreateErrorContentMalformed | PaperDocCreateErrorFolderNotFound | PaperDocCreateErrorDocLengthExceeded | PaperDocCreateErrorImageSizeExceeded; + + export interface PaperDocCreateUpdateResult { + /** + * Doc ID of the newly created doc. + */ + doc_id: string; + /** + * The Paper doc revision. Simply an ever increasing number. + */ + revision: number; + /** + * The Paper doc title. + */ + title: string; + } + + export interface PaperDocExport extends RefPaperDoc { + export_format: ExportFormat; + } + + export interface PaperDocExportResult { + /** + * The Paper doc owner's email address. + */ + owner: string; + /** + * The Paper doc title. + */ + title: string; + /** + * The Paper doc revision. Simply an ever increasing number. + */ + revision: number; + /** + * MIME type of the export. This corresponds to paper.ExportFormat + * specified in the request. + */ + mime_type: string; + } + + /** + * User will be granted edit permissions. + */ + export interface PaperDocPermissionLevelEdit { + '.tag': 'edit'; + } + + /** + * User will be granted view and comment permissions. + */ + export interface PaperDocPermissionLevelViewAndComment { + '.tag': 'view_and_comment'; + } + + export interface PaperDocPermissionLevelOther { + '.tag': 'other'; + } + + export type PaperDocPermissionLevel = PaperDocPermissionLevelEdit | PaperDocPermissionLevelViewAndComment | PaperDocPermissionLevelOther; + + export interface PaperDocSharingPolicy extends RefPaperDoc { + /** + * The default sharing policy to be set for the Paper doc. + */ + sharing_policy: SharingPolicy; + } + + export interface PaperDocUpdateArgs extends RefPaperDoc { + /** + * The file contents to be uploaded. + */ + contents?: Object; + /** + * The policy used for the current update call. + */ + doc_update_policy: PaperDocUpdatePolicy; + /** + * The latest doc revision. This value must match the head revision or an + * error code will be returned. This is to prevent colliding writes. + */ + revision: number; + /** + * The format of provided data. + */ + import_format: ImportFormat; + } + + /** + * The provided content was malformed and cannot be imported to Paper. + */ + export interface PaperDocUpdateErrorContentMalformed { + '.tag': 'content_malformed'; + } + + /** + * The provided revision does not match the document head. + */ + export interface PaperDocUpdateErrorRevisionMismatch { + '.tag': 'revision_mismatch'; + } + + /** + * The newly created Paper doc would be too large, split the content into + * multiple docs. + */ + export interface PaperDocUpdateErrorDocLengthExceeded { + '.tag': 'doc_length_exceeded'; + } + + /** + * The imported document contains an image that is too large. The current + * limit is 1MB. This only applies to HTML with data URI. + */ + export interface PaperDocUpdateErrorImageSizeExceeded { + '.tag': 'image_size_exceeded'; + } + + /** + * This operation is not allowed on archived Paper docs. + */ + export interface PaperDocUpdateErrorDocArchived { + '.tag': 'doc_archived'; + } + + /** + * This operation is not allowed on deleted Paper docs. + */ + export interface PaperDocUpdateErrorDocDeleted { + '.tag': 'doc_deleted'; + } + + export type PaperDocUpdateError = DocLookupError | PaperDocUpdateErrorContentMalformed | PaperDocUpdateErrorRevisionMismatch | PaperDocUpdateErrorDocLengthExceeded | PaperDocUpdateErrorImageSizeExceeded | PaperDocUpdateErrorDocArchived | PaperDocUpdateErrorDocDeleted; + + /** + * The content will be appended to the doc. + */ + export interface PaperDocUpdatePolicyAppend { + '.tag': 'append'; + } + + /** + * The content will be prepended to the doc. The doc title will not be + * affected. + */ + export interface PaperDocUpdatePolicyPrepend { + '.tag': 'prepend'; + } + + /** + * The document will be overwitten at the head with the provided content. + */ + export interface PaperDocUpdatePolicyOverwriteAll { + '.tag': 'overwrite_all'; + } + + export interface PaperDocUpdatePolicyOther { + '.tag': 'other'; + } + + export type PaperDocUpdatePolicy = PaperDocUpdatePolicyAppend | PaperDocUpdatePolicyPrepend | PaperDocUpdatePolicyOverwriteAll | PaperDocUpdatePolicyOther; + + export interface PaperFolderCreateArg { + /** + * The name of the new Paper folder. + */ + name: string; + /** + * The encrypted Paper folder Id where the new Paper folder should be + * created. The API user has to have write access to this folder or error + * is thrown. If not supplied, the new folder will be created at top + * level. + */ + parent_folder_id?: string; + /** + * Whether the folder to be created should be a team folder. This value + * will be ignored if parent_folder_id is supplied, as the new folder will + * inherit the type (private or team folder) from its parent. We will by + * default create a top-level private folder if both parent_folder_id and + * is_team_folder are not supplied. + */ + is_team_folder?: boolean; + } + + /** + * The specified parent Paper folder cannot be found. + */ + export interface PaperFolderCreateErrorFolderNotFound { + '.tag': 'folder_not_found'; + } + + /** + * The folder id cannot be decrypted to valid folder id. + */ + export interface PaperFolderCreateErrorInvalidFolderId { + '.tag': 'invalid_folder_id'; + } + + export type PaperFolderCreateError = PaperApiBaseError | PaperFolderCreateErrorFolderNotFound | PaperFolderCreateErrorInvalidFolderId; + + export interface PaperFolderCreateResult { + /** + * Folder ID of the newly created folder. + */ + folder_id: string; + } + + export interface RefPaperDoc { + /** + * The Paper doc ID. + */ + doc_id: PaperDocId; + } + + export interface RemovePaperDocUser extends RefPaperDoc { + /** + * User which should be removed from the Paper doc. Specify only email + * address or Dropbox account ID. + */ + member: sharing.MemberSelector; + } + + /** + * Sharing policy of Paper doc. + */ + export interface SharingPolicy { + /** + * This value applies to the non-team members. + */ + public_sharing_policy?: SharingPublicPolicyType; + /** + * This value applies to the team members only. The value is null for all + * personal accounts. + */ + team_sharing_policy?: SharingTeamPolicyType; + } + + /** + * Value used to indicate that doc sharing is enabled only within team. + */ + export interface SharingPublicPolicyTypeDisabled { + '.tag': 'disabled'; + } + + export type SharingPublicPolicyType = SharingTeamPolicyType | SharingPublicPolicyTypeDisabled; + + /** + * Users who have a link to this doc can edit it. + */ + export interface SharingTeamPolicyTypePeopleWithLinkCanEdit { + '.tag': 'people_with_link_can_edit'; + } + + /** + * Users who have a link to this doc can view and comment on it. + */ + export interface SharingTeamPolicyTypePeopleWithLinkCanViewAndComment { + '.tag': 'people_with_link_can_view_and_comment'; + } + + /** + * Users must be explicitly invited to this doc. + */ + export interface SharingTeamPolicyTypeInviteOnly { + '.tag': 'invite_only'; + } + + /** + * The sharing policy type of the Paper doc. + */ + export type SharingTeamPolicyType = SharingTeamPolicyTypePeopleWithLinkCanEdit | SharingTeamPolicyTypePeopleWithLinkCanViewAndComment | SharingTeamPolicyTypeInviteOnly; + + export interface UserInfoWithPermissionLevel { + /** + * User shared on the Paper doc. + */ + user: sharing.UserInfo; + /** + * Permission level for the user. + */ + permission_level: PaperDocPermissionLevel; + } + + /** + * all users who have visited the Paper doc. + */ + export interface UserOnPaperDocFilterVisited { + '.tag': 'visited'; + } + + /** + * All uses who are shared on the Paper doc. This includes all users who + * have visited the Paper doc as well as those who have not. + */ + export interface UserOnPaperDocFilterShared { + '.tag': 'shared'; + } + + export interface UserOnPaperDocFilterOther { + '.tag': 'other'; + } + + export type UserOnPaperDocFilter = UserOnPaperDocFilterVisited | UserOnPaperDocFilterShared | UserOnPaperDocFilterOther; + + export type PaperDocId = string; + + } + + export namespace secondary_emails { + export interface SecondaryEmail { + /** + * Secondary email address. + */ + email: common.EmailAddress; + /** + * Whether or not the secondary email address is verified to be owned by a + * user. + */ + is_verified: boolean; + } + + } + + export namespace seen_state { + /** + * The content was viewed on the web. + */ + export interface PlatformTypeWeb { + '.tag': 'web'; + } + + /** + * The content was viewed on a desktop client. + */ + export interface PlatformTypeDesktop { + '.tag': 'desktop'; + } + + /** + * The content was viewed on a mobile iOS client. + */ + export interface PlatformTypeMobileIos { + '.tag': 'mobile_ios'; + } + + /** + * The content was viewed on a mobile android client. + */ + export interface PlatformTypeMobileAndroid { + '.tag': 'mobile_android'; + } + + /** + * The content was viewed from an API client. + */ + export interface PlatformTypeApi { + '.tag': 'api'; + } + + /** + * The content was viewed on an unknown platform. + */ + export interface PlatformTypeUnknown { + '.tag': 'unknown'; + } + + /** + * The content was viewed on a mobile client. DEPRECATED: Use mobile_ios or + * mobile_android instead. + */ + export interface PlatformTypeMobile { + '.tag': 'mobile'; + } + + export interface PlatformTypeOther { + '.tag': 'other'; + } + + /** + * Possible platforms on which a user may view content. + */ + export type PlatformType = PlatformTypeWeb | PlatformTypeDesktop | PlatformTypeMobileIos | PlatformTypeMobileAndroid | PlatformTypeApi | PlatformTypeUnknown | PlatformTypeMobile | PlatformTypeOther; + + } + + /** + * This namespace contains endpoints and data types for creating and managing + * shared links and shared folders. + */ + export namespace sharing { + /** + * The shared folder inherits its members from the parent folder. + */ + export interface AccessInheritanceInherit { + '.tag': 'inherit'; + } + + /** + * The shared folder does not inherit its members from the parent folder. + */ + export interface AccessInheritanceNoInherit { + '.tag': 'no_inherit'; + } + + export interface AccessInheritanceOther { + '.tag': 'other'; + } + + /** + * Information about the inheritance policy of a shared folder. + */ + export type AccessInheritance = AccessInheritanceInherit | AccessInheritanceNoInherit | AccessInheritanceOther; + + /** + * The collaborator is the owner of the shared folder. Owners can view and + * edit the shared folder as well as set the folder's policies using + * updateFolderPolicy(). + */ + export interface AccessLevelOwner { + '.tag': 'owner'; + } + + /** + * The collaborator can both view and edit the shared folder. + */ + export interface AccessLevelEditor { + '.tag': 'editor'; + } + + /** + * The collaborator can only view the shared folder. + */ + export interface AccessLevelViewer { + '.tag': 'viewer'; + } + + /** + * The collaborator can only view the shared folder and does not have any + * access to comments. + */ + export interface AccessLevelViewerNoComment { + '.tag': 'viewer_no_comment'; + } + + /** + * The collaborator can only view the shared folder that they have access + * to. + */ + export interface AccessLevelTraverse { + '.tag': 'traverse'; + } + + export interface AccessLevelOther { + '.tag': 'other'; + } + + /** + * Defines the access levels for collaborators. + */ + export type AccessLevel = AccessLevelOwner | AccessLevelEditor | AccessLevelViewer | AccessLevelViewerNoComment | AccessLevelTraverse | AccessLevelOther; + + /** + * Only the owner can update the ACL. + */ + export interface AclUpdatePolicyOwner { + '.tag': 'owner'; + } + + /** + * Any editor can update the ACL. This may be further restricted to editors + * on the same team. + */ + export interface AclUpdatePolicyEditors { + '.tag': 'editors'; + } + + export interface AclUpdatePolicyOther { + '.tag': 'other'; + } + + /** + * Who can change a shared folder's access control list (ACL). In other + * words, who can add, remove, or change the privileges of members. + */ + export type AclUpdatePolicy = AclUpdatePolicyOwner | AclUpdatePolicyEditors | AclUpdatePolicyOther; + + /** + * Arguments for addFileMember(). + */ + export interface AddFileMemberArgs { + /** + * File to which to add members. + */ + file: PathOrId; + /** + * Members to add. Note that even an email address is given, this may + * result in a user being directly added to the membership if that email + * is the user's main account email. + */ + members: Array; + /** + * Message to send to added members in their invitation. + */ + custom_message?: string; + /** + * Defaults to False. + */ + quiet?: boolean; + /** + * Defaults to TagRef(Union('AccessLevel', [UnionField('owner', Void, + * False, None), UnionField('editor', Void, False, None), + * UnionField('viewer', Void, False, None), + * UnionField('viewer_no_comment', Void, False, None), + * UnionField('traverse', Void, False, None), UnionField('other', Void, + * True, None)]), 'viewer'). + */ + access_level?: AccessLevel; + /** + * Defaults to False. + */ + add_message_as_comment?: boolean; + } + + export interface AddFileMemberErrorUserError { + '.tag': 'user_error'; + user_error: SharingUserError; + } + + export interface AddFileMemberErrorAccessError { + '.tag': 'access_error'; + access_error: SharingFileAccessError; + } + + /** + * The user has reached the rate limit for invitations. + */ + export interface AddFileMemberErrorRateLimit { + '.tag': 'rate_limit'; + } + + /** + * The custom message did not pass comment permissions checks. + */ + export interface AddFileMemberErrorInvalidComment { + '.tag': 'invalid_comment'; + } + + export interface AddFileMemberErrorOther { + '.tag': 'other'; + } + + /** + * Errors for addFileMember(). + */ + export type AddFileMemberError = AddFileMemberErrorUserError | AddFileMemberErrorAccessError | AddFileMemberErrorRateLimit | AddFileMemberErrorInvalidComment | AddFileMemberErrorOther; + + export interface AddFolderMemberArg { + /** + * The ID for the shared folder. + */ + shared_folder_id: common.SharedFolderId; + /** + * The intended list of members to add. Added members will receive + * invites to join the shared folder. + */ + members: Array; + /** + * Defaults to False. + */ + quiet?: boolean; + /** + * Optional message to display to added members in their invitation. + */ + custom_message?: string; + } + + /** + * Unable to access shared folder. + */ + export interface AddFolderMemberErrorAccessError { + '.tag': 'access_error'; + access_error: SharedFolderAccessError; + } + + /** + * This user's email address is not verified. This functionality is only + * available on accounts with a verified email address. Users can verify + * their email address [here]{@link https://www.dropbox.com/help/317}. + */ + export interface AddFolderMemberErrorEmailUnverified { + '.tag': 'email_unverified'; + } + + /** + * The current user has been banned. + */ + export interface AddFolderMemberErrorBannedMember { + '.tag': 'banned_member'; + } + + /** + * AddFolderMemberArg.members contains a bad invitation recipient. + */ + export interface AddFolderMemberErrorBadMember { + '.tag': 'bad_member'; + bad_member: AddMemberSelectorError; + } + + /** + * Your team policy does not allow sharing outside of the team. + */ + export interface AddFolderMemberErrorCantShareOutsideTeam { + '.tag': 'cant_share_outside_team'; + } + + /** + * The value is the member limit that was reached. + */ + export interface AddFolderMemberErrorTooManyMembers { + '.tag': 'too_many_members'; + too_many_members: number; + } + + /** + * The value is the pending invite limit that was reached. + */ + export interface AddFolderMemberErrorTooManyPendingInvites { + '.tag': 'too_many_pending_invites'; + too_many_pending_invites: number; + } + + /** + * The current user has hit the limit of invites they can send per day. Try + * again in 24 hours. + */ + export interface AddFolderMemberErrorRateLimit { + '.tag': 'rate_limit'; + } + + /** + * The current user is trying to share with too many people at once. + */ + export interface AddFolderMemberErrorTooManyInvitees { + '.tag': 'too_many_invitees'; + } + + /** + * The current user's account doesn't support this action. An example of + * this is when adding a read-only member. This action can only be performed + * by users that have upgraded to a Pro or Business plan. + */ + export interface AddFolderMemberErrorInsufficientPlan { + '.tag': 'insufficient_plan'; + } + + /** + * This action cannot be performed on a team shared folder. + */ + export interface AddFolderMemberErrorTeamFolder { + '.tag': 'team_folder'; + } + + /** + * The current user does not have permission to perform this action. + */ + export interface AddFolderMemberErrorNoPermission { + '.tag': 'no_permission'; + } + + /** + * Invalid shared folder error will be returned as an access_error. + */ + export interface AddFolderMemberErrorInvalidSharedFolder { + '.tag': 'invalid_shared_folder'; + } + + export interface AddFolderMemberErrorOther { + '.tag': 'other'; + } + + export type AddFolderMemberError = AddFolderMemberErrorAccessError | AddFolderMemberErrorEmailUnverified | AddFolderMemberErrorBannedMember | AddFolderMemberErrorBadMember | AddFolderMemberErrorCantShareOutsideTeam | AddFolderMemberErrorTooManyMembers | AddFolderMemberErrorTooManyPendingInvites | AddFolderMemberErrorRateLimit | AddFolderMemberErrorTooManyInvitees | AddFolderMemberErrorInsufficientPlan | AddFolderMemberErrorTeamFolder | AddFolderMemberErrorNoPermission | AddFolderMemberErrorInvalidSharedFolder | AddFolderMemberErrorOther; + + /** + * The member and type of access the member should have when added to a + * shared folder. + */ + export interface AddMember { + /** + * The member to add to the shared folder. + */ + member: MemberSelector; + /** + * Defaults to TagRef(Union('AccessLevel', [UnionField('owner', Void, + * False, None), UnionField('editor', Void, False, None), + * UnionField('viewer', Void, False, None), + * UnionField('viewer_no_comment', Void, False, None), + * UnionField('traverse', Void, False, None), UnionField('other', Void, + * True, None)]), 'viewer'). + */ + access_level?: AccessLevel; + } + + /** + * Automatically created groups can only be added to team folders. + */ + export interface AddMemberSelectorErrorAutomaticGroup { + '.tag': 'automatic_group'; + } + + /** + * The value is the ID that could not be identified. + */ + export interface AddMemberSelectorErrorInvalidDropboxId { + '.tag': 'invalid_dropbox_id'; + invalid_dropbox_id: DropboxId; + } + + /** + * The value is the e-email address that is malformed. + */ + export interface AddMemberSelectorErrorInvalidEmail { + '.tag': 'invalid_email'; + invalid_email: common.EmailAddress; + } + + /** + * The value is the ID of the Dropbox user with an unverified email address. + * Invite unverified users by email address instead of by their Dropbox ID. + */ + export interface AddMemberSelectorErrorUnverifiedDropboxId { + '.tag': 'unverified_dropbox_id'; + unverified_dropbox_id: DropboxId; + } + + /** + * At least one of the specified groups in AddFolderMemberArg.members is + * deleted. + */ + export interface AddMemberSelectorErrorGroupDeleted { + '.tag': 'group_deleted'; + } + + /** + * Sharing to a group that is not on the current user's team. + */ + export interface AddMemberSelectorErrorGroupNotOnTeam { + '.tag': 'group_not_on_team'; + } + + export interface AddMemberSelectorErrorOther { + '.tag': 'other'; + } + + export type AddMemberSelectorError = AddMemberSelectorErrorAutomaticGroup | AddMemberSelectorErrorInvalidDropboxId | AddMemberSelectorErrorInvalidEmail | AddMemberSelectorErrorUnverifiedDropboxId | AddMemberSelectorErrorGroupDeleted | AddMemberSelectorErrorGroupNotOnTeam | AddMemberSelectorErrorOther; + + /** + * check documentation for ResolvedVisibility. + */ + export type AlphaResolvedVisibility = ResolvedVisibility; + + /** + * Information about the content that has a link audience different than + * that of this folder. + */ + export interface AudienceExceptionContentInfo { + /** + * The name of the content, which is either a file or a folder. + */ + name: string; + } + + /** + * The total count and truncated list of information of content inside this + * folder that has a different audience than the link on this folder. This + * is only returned for folders. + */ + export interface AudienceExceptions { + count: number; + /** + * A truncated list of some of the content that is an exception. The + * length of this list could be smaller than the count since it is only a + * sample but will not be empty as long as count is not 0. + */ + exceptions: Array; + } + + /** + * Information about the shared folder that prevents the link audience for + * this link from being more restrictive. + */ + export interface AudienceRestrictingSharedFolder { + /** + * The ID of the shared folder. + */ + shared_folder_id: common.SharedFolderId; + /** + * The name of the shared folder. + */ + name: string; + /** + * The link audience of the shared folder. + */ + audience: LinkAudience; + } + + /** + * Metadata for a collection-based shared link. + */ + export interface CollectionLinkMetadata extends LinkMetadata { + } + + /** + * Reference to the CollectionLinkMetadata type, identified by the value of + * the .tag property. + */ + export interface CollectionLinkMetadataReference extends CollectionLinkMetadata { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'collection'; + } + + export interface CreateSharedLinkArg { + /** + * The path to share. + */ + path: string; + /** + * Defaults to False. + */ + short_url?: boolean; + /** + * If it's okay to share a path that does not yet exist, set this to + * either PendingUploadMode.file or PendingUploadMode.folder to indicate + * whether to assume it's a file or folder. + */ + pending_upload?: PendingUploadMode; + } + + export interface CreateSharedLinkErrorPath { + '.tag': 'path'; + path: files.LookupError; + } + + export interface CreateSharedLinkErrorOther { + '.tag': 'other'; + } + + export type CreateSharedLinkError = CreateSharedLinkErrorPath | CreateSharedLinkErrorOther; + + export interface CreateSharedLinkWithSettingsArg { + /** + * The path to be shared by the shared link. + */ + path: ReadPath; + /** + * The requested settings for the newly created shared link. + */ + settings?: SharedLinkSettings; + } + + export interface CreateSharedLinkWithSettingsErrorPath { + '.tag': 'path'; + path: files.LookupError; + } + + /** + * This user's email address is not verified. This functionality is only + * available on accounts with a verified email address. Users can verify + * their email address [here]{@link https://www.dropbox.com/help/317}. + */ + export interface CreateSharedLinkWithSettingsErrorEmailNotVerified { + '.tag': 'email_not_verified'; + } + + /** + * The shared link already exists. You can call listSharedLinks() to get the + * existing link, or use the provided metadata if it is returned. + */ + export interface CreateSharedLinkWithSettingsErrorSharedLinkAlreadyExists { + '.tag': 'shared_link_already_exists'; + shared_link_already_exists: Object; + } + + /** + * There is an error with the given settings. + */ + export interface CreateSharedLinkWithSettingsErrorSettingsError { + '.tag': 'settings_error'; + settings_error: SharedLinkSettingsError; + } + + /** + * The user is not allowed to create a shared link to the specified file. + * For example, this can occur if the file is restricted or if the user's + * links are [banned]{@link + * https://help.dropbox.com/files-folders/share/banned-links}. + */ + export interface CreateSharedLinkWithSettingsErrorAccessDenied { + '.tag': 'access_denied'; + } + + export type CreateSharedLinkWithSettingsError = CreateSharedLinkWithSettingsErrorPath | CreateSharedLinkWithSettingsErrorEmailNotVerified | CreateSharedLinkWithSettingsErrorSharedLinkAlreadyExists | CreateSharedLinkWithSettingsErrorSettingsError | CreateSharedLinkWithSettingsErrorAccessDenied; + + /** + * The expected metadata of a shared link for a file or folder when a link + * is first created for the content. Absent if the link already exists. + */ + export interface ExpectedSharedContentLinkMetadata extends SharedContentLinkMetadataBase { + } + + /** + * Disable viewer information on the file. + */ + export interface FileActionDisableViewerInfo { + '.tag': 'disable_viewer_info'; + } + + /** + * Change or edit contents of the file. + */ + export interface FileActionEditContents { + '.tag': 'edit_contents'; + } + + /** + * Enable viewer information on the file. + */ + export interface FileActionEnableViewerInfo { + '.tag': 'enable_viewer_info'; + } + + /** + * Add a member with view permissions. + */ + export interface FileActionInviteViewer { + '.tag': 'invite_viewer'; + } + + /** + * Add a member with view permissions but no comment permissions. + */ + export interface FileActionInviteViewerNoComment { + '.tag': 'invite_viewer_no_comment'; + } + + /** + * Add a member with edit permissions. + */ + export interface FileActionInviteEditor { + '.tag': 'invite_editor'; + } + + /** + * Stop sharing this file. + */ + export interface FileActionUnshare { + '.tag': 'unshare'; + } + + /** + * Relinquish one's own membership to the file. + */ + export interface FileActionRelinquishMembership { + '.tag': 'relinquish_membership'; + } + + /** + * Use create_view_link and create_edit_link instead. + */ + export interface FileActionShareLink { + '.tag': 'share_link'; + } + + /** + * Use create_view_link and create_edit_link instead. + */ + export interface FileActionCreateLink { + '.tag': 'create_link'; + } + + /** + * Create a shared link to a file that only allows users to view the + * content. + */ + export interface FileActionCreateViewLink { + '.tag': 'create_view_link'; + } + + /** + * Create a shared link to a file that allows users to edit the content. + */ + export interface FileActionCreateEditLink { + '.tag': 'create_edit_link'; + } + + export interface FileActionOther { + '.tag': 'other'; + } + + /** + * Sharing actions that may be taken on files. + */ + export type FileAction = FileActionDisableViewerInfo | FileActionEditContents | FileActionEnableViewerInfo | FileActionInviteViewer | FileActionInviteViewerNoComment | FileActionInviteEditor | FileActionUnshare | FileActionRelinquishMembership | FileActionShareLink | FileActionCreateLink | FileActionCreateViewLink | FileActionCreateEditLink | FileActionOther; + + /** + * File specified by id was not found. + */ + export interface FileErrorResultFileNotFoundError { + '.tag': 'file_not_found_error'; + file_not_found_error: files.Id; + } + + /** + * User does not have permission to take the specified action on the file. + */ + export interface FileErrorResultInvalidFileActionError { + '.tag': 'invalid_file_action_error'; + invalid_file_action_error: files.Id; + } + + /** + * User does not have permission to access file specified by file.Id. + */ + export interface FileErrorResultPermissionDeniedError { + '.tag': 'permission_denied_error'; + permission_denied_error: files.Id; + } + + export interface FileErrorResultOther { + '.tag': 'other'; + } + + export type FileErrorResult = FileErrorResultFileNotFoundError | FileErrorResultInvalidFileActionError | FileErrorResultPermissionDeniedError | FileErrorResultOther; + + /** + * The metadata of a file shared link. + */ + export interface FileLinkMetadata extends SharedLinkMetadata { + /** + * The modification time set by the desktop client when the file was added + * to Dropbox. Since this time is not verified (the Dropbox server stores + * whatever the desktop client sends up), this should only be used for + * display purposes (such as sorting) and not, for example, to determine + * if a file has changed or not. + */ + client_modified: common.DropboxTimestamp; + /** + * The last time the file was modified on Dropbox. + */ + server_modified: common.DropboxTimestamp; + /** + * A unique identifier for the current revision of a file. This field is + * the same rev as elsewhere in the API and can be used to detect changes + * and avoid conflicts. + */ + rev: Rev; + /** + * The file size in bytes. + */ + size: number; + } + + /** + * Reference to the FileLinkMetadata type, identified by the value of the + * .tag property. + */ + export interface FileLinkMetadataReference extends FileLinkMetadata { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'file'; + } + + /** + * Specified member was not found. + */ + export interface FileMemberActionErrorInvalidMember { + '.tag': 'invalid_member'; + } + + /** + * User does not have permission to perform this action on this member. + */ + export interface FileMemberActionErrorNoPermission { + '.tag': 'no_permission'; + } + + /** + * Specified file was invalid or user does not have access. + */ + export interface FileMemberActionErrorAccessError { + '.tag': 'access_error'; + access_error: SharingFileAccessError; + } + + /** + * The action cannot be completed because the target member does not have + * explicit access to the file. The return value is the access that the + * member has to the file from a parent folder. + */ + export interface FileMemberActionErrorNoExplicitAccess extends MemberAccessLevelResult { + '.tag': 'no_explicit_access'; + } + + export interface FileMemberActionErrorOther { + '.tag': 'other'; + } + + export type FileMemberActionError = FileMemberActionErrorInvalidMember | FileMemberActionErrorNoPermission | FileMemberActionErrorAccessError | FileMemberActionErrorNoExplicitAccess | FileMemberActionErrorOther; + + /** + * Part of the response for both add_file_member and remove_file_member_v1 + * (deprecated). For add_file_member, indicates giving access was successful + * and at what AccessLevel. For remove_file_member_v1, indicates member was + * successfully removed from the file. If AccessLevel is given, the member + * still has access via a parent shared folder. + */ + export interface FileMemberActionIndividualResultSuccess { + '.tag': 'success'; + success: Object; + } + + /** + * User was not able to perform this action. + */ + export interface FileMemberActionIndividualResultMemberError { + '.tag': 'member_error'; + member_error: FileMemberActionError; + } + + export type FileMemberActionIndividualResult = FileMemberActionIndividualResultSuccess | FileMemberActionIndividualResultMemberError; + + /** + * Per-member result for addFileMember(). + */ + export interface FileMemberActionResult { + /** + * One of specified input members. + */ + member: MemberSelector; + /** + * The outcome of the action on this member. + */ + result: FileMemberActionIndividualResult; + /** + * The SHA-1 encrypted shared content key. + */ + sckey_sha1?: string; + /** + * The sharing sender-recipient invitation signatures for the input + * member_id. A member_id can be a group and thus have multiple users and + * multiple invitation signatures. + */ + invitation_signature?: Array; + } + + /** + * Member was successfully removed from this file. + */ + export interface FileMemberRemoveActionResultSuccess extends MemberAccessLevelResult { + '.tag': 'success'; + } + + /** + * User was not able to remove this member. + */ + export interface FileMemberRemoveActionResultMemberError { + '.tag': 'member_error'; + member_error: FileMemberActionError; + } + + export interface FileMemberRemoveActionResultOther { + '.tag': 'other'; + } + + export type FileMemberRemoveActionResult = FileMemberRemoveActionResultSuccess | FileMemberRemoveActionResultMemberError | FileMemberRemoveActionResultOther; + + /** + * Whether the user is allowed to take the sharing action on the file. + */ + export interface FilePermission { + /** + * The action that the user may wish to take on the file. + */ + action: FileAction; + /** + * True if the user is allowed to take the action. + */ + allow: boolean; + /** + * The reason why the user is denied the permission. Not present if the + * action is allowed. + */ + reason?: PermissionDeniedReason; + } + + /** + * Change folder options, such as who can be invited to join the folder. + */ + export interface FolderActionChangeOptions { + '.tag': 'change_options'; + } + + /** + * Disable viewer information for this folder. + */ + export interface FolderActionDisableViewerInfo { + '.tag': 'disable_viewer_info'; + } + + /** + * Change or edit contents of the folder. + */ + export interface FolderActionEditContents { + '.tag': 'edit_contents'; + } + + /** + * Enable viewer information on the folder. + */ + export interface FolderActionEnableViewerInfo { + '.tag': 'enable_viewer_info'; + } + + /** + * Invite a user or group to join the folder with read and write permission. + */ + export interface FolderActionInviteEditor { + '.tag': 'invite_editor'; + } + + /** + * Invite a user or group to join the folder with read permission. + */ + export interface FolderActionInviteViewer { + '.tag': 'invite_viewer'; + } + + /** + * Invite a user or group to join the folder with read permission but no + * comment permissions. + */ + export interface FolderActionInviteViewerNoComment { + '.tag': 'invite_viewer_no_comment'; + } + + /** + * Relinquish one's own membership in the folder. + */ + export interface FolderActionRelinquishMembership { + '.tag': 'relinquish_membership'; + } + + /** + * Unmount the folder. + */ + export interface FolderActionUnmount { + '.tag': 'unmount'; + } + + /** + * Stop sharing this folder. + */ + export interface FolderActionUnshare { + '.tag': 'unshare'; + } + + /** + * Keep a copy of the contents upon leaving or being kicked from the folder. + */ + export interface FolderActionLeaveACopy { + '.tag': 'leave_a_copy'; + } + + /** + * Use create_link instead. + */ + export interface FolderActionShareLink { + '.tag': 'share_link'; + } + + /** + * Create a shared link for folder. + */ + export interface FolderActionCreateLink { + '.tag': 'create_link'; + } + + /** + * Set whether the folder inherits permissions from its parent. + */ + export interface FolderActionSetAccessInheritance { + '.tag': 'set_access_inheritance'; + } + + export interface FolderActionOther { + '.tag': 'other'; + } + + /** + * Actions that may be taken on shared folders. + */ + export type FolderAction = FolderActionChangeOptions | FolderActionDisableViewerInfo | FolderActionEditContents | FolderActionEnableViewerInfo | FolderActionInviteEditor | FolderActionInviteViewer | FolderActionInviteViewerNoComment | FolderActionRelinquishMembership | FolderActionUnmount | FolderActionUnshare | FolderActionLeaveACopy | FolderActionShareLink | FolderActionCreateLink | FolderActionSetAccessInheritance | FolderActionOther; + + /** + * The metadata of a folder shared link. + */ + export interface FolderLinkMetadata extends SharedLinkMetadata { + } + + /** + * Reference to the FolderLinkMetadata type, identified by the value of the + * .tag property. + */ + export interface FolderLinkMetadataReference extends FolderLinkMetadata { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'folder'; + } + + /** + * Whether the user is allowed to take the action on the shared folder. + */ + export interface FolderPermission { + /** + * The action that the user may wish to take on the folder. + */ + action: FolderAction; + /** + * True if the user is allowed to take the action. + */ + allow: boolean; + /** + * The reason why the user is denied the permission. Not present if the + * action is allowed, or if no reason is available. + */ + reason?: PermissionDeniedReason; + } + + /** + * A set of policies governing membership and privileges for a shared + * folder. + */ + export interface FolderPolicy { + /** + * Who can be a member of this shared folder, as set on the folder itself. + * The effective policy may differ from this value if the team-wide policy + * is more restrictive. Present only if the folder is owned by a team. + */ + member_policy?: MemberPolicy; + /** + * Who can be a member of this shared folder, taking into account both the + * folder and the team-wide policy. This value may differ from that of + * member_policy if the team-wide policy is more restrictive than the + * folder policy. Present only if the folder is owned by a team. + */ + resolved_member_policy?: MemberPolicy; + /** + * Who can add and remove members from this shared folder. + */ + acl_update_policy: AclUpdatePolicy; + /** + * Who links can be shared with. + */ + shared_link_policy: SharedLinkPolicy; + /** + * Who can enable/disable viewer info for this shared folder. + */ + viewer_info_policy?: ViewerInfoPolicy; + } + + /** + * Arguments of getFileMetadata(). + */ + export interface GetFileMetadataArg { + /** + * The file to query. + */ + file: PathOrId; + /** + * A list of `FileAction`s corresponding to `FilePermission`s that should + * appear in the response's SharedFileMetadata.permissions field + * describing the actions the authenticated user can perform on the file. + */ + actions?: Array; + } + + /** + * Arguments of getFileMetadataBatch(). + */ + export interface GetFileMetadataBatchArg { + /** + * The files to query. + */ + files: Array; + /** + * A list of `FileAction`s corresponding to `FilePermission`s that should + * appear in the response's SharedFileMetadata.permissions field + * describing the actions the authenticated user can perform on the file. + */ + actions?: Array; + } + + /** + * Per file results of getFileMetadataBatch(). + */ + export interface GetFileMetadataBatchResult { + /** + * This is the input file identifier corresponding to one of + * GetFileMetadataBatchArg.files. + */ + file: PathOrId; + /** + * The result for this particular file. + */ + result: GetFileMetadataIndividualResult; + } + + export interface GetFileMetadataErrorUserError { + '.tag': 'user_error'; + user_error: SharingUserError; + } + + export interface GetFileMetadataErrorAccessError { + '.tag': 'access_error'; + access_error: SharingFileAccessError; + } + + export interface GetFileMetadataErrorOther { + '.tag': 'other'; + } + + /** + * Error result for getFileMetadata(). + */ + export type GetFileMetadataError = GetFileMetadataErrorUserError | GetFileMetadataErrorAccessError | GetFileMetadataErrorOther; + + /** + * The result for this file if it was successful. + */ + export interface GetFileMetadataIndividualResultMetadata extends SharedFileMetadata { + '.tag': 'metadata'; + } + + /** + * The result for this file if it was an error. + */ + export interface GetFileMetadataIndividualResultAccessError { + '.tag': 'access_error'; + access_error: SharingFileAccessError; + } + + export interface GetFileMetadataIndividualResultOther { + '.tag': 'other'; + } + + export type GetFileMetadataIndividualResult = GetFileMetadataIndividualResultMetadata | GetFileMetadataIndividualResultAccessError | GetFileMetadataIndividualResultOther; + + export interface GetMetadataArgs { + /** + * The ID for the shared folder. + */ + shared_folder_id: common.SharedFolderId; + /** + * A list of `FolderAction`s corresponding to `FolderPermission`s that + * should appear in the response's SharedFolderMetadata.permissions field + * describing the actions the authenticated user can perform on the + * folder. + */ + actions?: Array; + } + + /** + * Directories cannot be retrieved by this endpoint. + */ + export interface GetSharedLinkFileErrorSharedLinkIsDirectory { + '.tag': 'shared_link_is_directory'; + } + + export type GetSharedLinkFileError = SharedLinkError | GetSharedLinkFileErrorSharedLinkIsDirectory; + + export interface GetSharedLinkMetadataArg { + /** + * URL of the shared link. + */ + url: string; + /** + * If the shared link is to a folder, this parameter can be used to + * retrieve the metadata for a specific file or sub-folder in this folder. + * A relative path should be used. + */ + path?: Path; + /** + * If the shared link has a password, this parameter can be used. + */ + link_password?: string; + } + + export interface GetSharedLinksArg { + /** + * See getSharedLinks() description. + */ + path?: string; + } + + export interface GetSharedLinksErrorPath { + '.tag': 'path'; + path: files.MalformedPathError; + } + + export interface GetSharedLinksErrorOther { + '.tag': 'other'; + } + + export type GetSharedLinksError = GetSharedLinksErrorPath | GetSharedLinksErrorOther; + + export interface GetSharedLinksResult { + /** + * Shared links applicable to the path argument. + */ + links: Array; + } + + /** + * The information about a group. Groups is a way to manage a list of users + * who need same access permission to the shared folder. + */ + export interface GroupInfo extends team_common.GroupSummary { + /** + * The type of group. + */ + group_type: team_common.GroupType; + /** + * If the current user is a member of the group. + */ + is_member: boolean; + /** + * If the current user is an owner of the group. + */ + is_owner: boolean; + /** + * If the group is owned by the current user's team. + */ + same_team: boolean; + } + + /** + * The information about a group member of the shared content. + */ + export interface GroupMembershipInfo extends MembershipInfo { + /** + * The information about the membership group. + */ + group: GroupInfo; + } + + export interface InsufficientPlan { + /** + * A message to tell the user to upgrade in order to support expected + * action. + */ + message: string; + /** + * A URL to send the user to in order to obtain the account type they + * need, e.g. upgrading. Absent if there is no action the user can take to + * upgrade. + */ + upsell_url?: string; + } + + export interface InsufficientQuotaAmounts { + /** + * The amount of space needed to add the item (the size of the item). + */ + space_needed: number; + /** + * The amount of extra space needed to add the item. + */ + space_shortage: number; + /** + * The amount of space left in the user's Dropbox, less than space_needed. + */ + space_left: number; + } + + /** + * Email address of invited user. + */ + export interface InviteeInfoEmail { + '.tag': 'email'; + email: common.EmailAddress; + } + + export interface InviteeInfoOther { + '.tag': 'other'; + } + + /** + * Information about the recipient of a shared content invitation. + */ + export type InviteeInfo = InviteeInfoEmail | InviteeInfoOther; + + /** + * Information about an invited member of a shared content. + */ + export interface InviteeMembershipInfo extends MembershipInfo { + /** + * Recipient of the invitation. + */ + invitee: InviteeInfo; + /** + * The user this invitation is tied to, if available. + */ + user?: UserInfo; + } + + /** + * Error occurred while performing unshareFolder() action. + */ + export interface JobErrorUnshareFolderError { + '.tag': 'unshare_folder_error'; + unshare_folder_error: UnshareFolderError; + } + + /** + * Error occurred while performing removeFolderMember() action. + */ + export interface JobErrorRemoveFolderMemberError { + '.tag': 'remove_folder_member_error'; + remove_folder_member_error: RemoveFolderMemberError; + } + + /** + * Error occurred while performing relinquishFolderMembership() action. + */ + export interface JobErrorRelinquishFolderMembershipError { + '.tag': 'relinquish_folder_membership_error'; + relinquish_folder_membership_error: RelinquishFolderMembershipError; + } + + export interface JobErrorOther { + '.tag': 'other'; + } + + /** + * Error occurred while performing an asynchronous job from unshareFolder() + * or removeFolderMember(). + */ + export type JobError = JobErrorUnshareFolderError | JobErrorRemoveFolderMemberError | JobErrorRelinquishFolderMembershipError | JobErrorOther; + + /** + * The asynchronous job has finished. + */ + export interface JobStatusComplete { + '.tag': 'complete'; + } + + /** + * The asynchronous job returned an error. + */ + export interface JobStatusFailed { + '.tag': 'failed'; + failed: JobError; + } + + export type JobStatus = async.PollResultBase | JobStatusComplete | JobStatusFailed; + + /** + * Users who use the link can view and comment on the content. + */ + export interface LinkAccessLevelViewer { + '.tag': 'viewer'; + } + + /** + * Users who use the link can edit, view and comment on the content. + */ + export interface LinkAccessLevelEditor { + '.tag': 'editor'; + } + + export interface LinkAccessLevelOther { + '.tag': 'other'; + } + + export type LinkAccessLevel = LinkAccessLevelViewer | LinkAccessLevelEditor | LinkAccessLevelOther; + + /** + * Change the access level of the link. + */ + export interface LinkActionChangeAccessLevel { + '.tag': 'change_access_level'; + } + + /** + * Change the audience of the link. + */ + export interface LinkActionChangeAudience { + '.tag': 'change_audience'; + } + + /** + * Remove the expiry date of the link. + */ + export interface LinkActionRemoveExpiry { + '.tag': 'remove_expiry'; + } + + /** + * Remove the password of the link. + */ + export interface LinkActionRemovePassword { + '.tag': 'remove_password'; + } + + /** + * Create or modify the expiry date of the link. + */ + export interface LinkActionSetExpiry { + '.tag': 'set_expiry'; + } + + /** + * Create or modify the password of the link. + */ + export interface LinkActionSetPassword { + '.tag': 'set_password'; + } + + export interface LinkActionOther { + '.tag': 'other'; + } + + /** + * Actions that can be performed on a link. + */ + export type LinkAction = LinkActionChangeAccessLevel | LinkActionChangeAudience | LinkActionRemoveExpiry | LinkActionRemovePassword | LinkActionSetExpiry | LinkActionSetPassword | LinkActionOther; + + /** + * Link is accessible by anyone. + */ + export interface LinkAudiencePublic { + '.tag': 'public'; + } + + /** + * Link is accessible only by team members. + */ + export interface LinkAudienceTeam { + '.tag': 'team'; + } + + /** + * The link can be used by no one. The link merely points the user to the + * content, and does not grant additional rights to the user. Members of the + * content who use this link can only access the content with their + * pre-existing access rights. + */ + export interface LinkAudienceNoOne { + '.tag': 'no_one'; + } + + /** + * Use `require_password` instead. A link-specific password is required to + * access the link. Login is not required. + */ + export interface LinkAudiencePassword { + '.tag': 'password'; + } + + /** + * Link is accessible only by members of the content. + */ + export interface LinkAudienceMembers { + '.tag': 'members'; + } + + export interface LinkAudienceOther { + '.tag': 'other'; + } + + export type LinkAudience = LinkAudiencePublic | LinkAudienceTeam | LinkAudienceNoOne | LinkAudiencePassword | LinkAudienceMembers | LinkAudienceOther; + + /** + * check documentation for VisibilityPolicyDisallowedReason. + */ + export type LinkAudienceDisallowedReason = VisibilityPolicyDisallowedReason; + + export interface LinkAudienceOption { + /** + * Specifies who can access the link. + */ + audience: LinkAudience; + /** + * Whether the user calling this API can select this audience option. + */ + allowed: boolean; + /** + * If allowed is false, this will provide the reason that the user is not + * permitted to set the visibility to this policy. + */ + disallowed_reason?: LinkAudienceDisallowedReason; + } + + /** + * Remove the currently set expiry for the link. + */ + export interface LinkExpiryRemoveExpiry { + '.tag': 'remove_expiry'; + } + + /** + * Set a new expiry or change an existing expiry. + */ + export interface LinkExpirySetExpiry { + '.tag': 'set_expiry'; + set_expiry: common.DropboxTimestamp; + } + + export interface LinkExpiryOther { + '.tag': 'other'; + } + + export type LinkExpiry = LinkExpiryRemoveExpiry | LinkExpirySetExpiry | LinkExpiryOther; + + /** + * Metadata for a shared link. This can be either a sharing.PathLinkMetadata + * or sharing.CollectionLinkMetadata. + */ + export interface LinkMetadata { + /** + * URL of the shared link. + */ + url: string; + /** + * Who can access the link. + */ + visibility: Visibility; + /** + * Expiration time, if set. By default the link won't expire. + */ + expires?: common.DropboxTimestamp; + } + + /** + * Reference to the LinkMetadata polymorphic type. Contains a .tag property + * to let you discriminate between possible subtypes. + */ + export interface LinkMetadataReference extends LinkMetadata { + /** + * Tag identifying the subtype variant. + */ + '.tag': "path"|"collection"; + } + + /** + * Remove the currently set password for the link. + */ + export interface LinkPasswordRemovePassword { + '.tag': 'remove_password'; + } + + /** + * Set a new password or change an existing password. + */ + export interface LinkPasswordSetPassword { + '.tag': 'set_password'; + set_password: string; + } + + export interface LinkPasswordOther { + '.tag': 'other'; + } + + export type LinkPassword = LinkPasswordRemovePassword | LinkPasswordSetPassword | LinkPasswordOther; + + /** + * Permissions for actions that can be performed on a link. + */ + export interface LinkPermission { + action: LinkAction; + allow: boolean; + reason?: PermissionDeniedReason; + } + + export interface LinkPermissions { + /** + * The current visibility of the link after considering the shared links + * policies of the the team (in case the link's owner is part of a team) + * and the shared folder (in case the linked file is part of a shared + * folder). This field is shown only if the caller has access to this info + * (the link's owner always has access to this data). For some links, an + * effective_audience value is returned instead. + */ + resolved_visibility?: ResolvedVisibility; + /** + * The shared link's requested visibility. This can be overridden by the + * team and shared folder policies. The final visibility, after + * considering these policies, can be found in resolved_visibility. This + * is shown only if the caller is the link's owner and resolved_visibility + * is returned instead of effective_audience. + */ + requested_visibility?: RequestedVisibility; + /** + * Whether the caller can revoke the shared link. + */ + can_revoke: boolean; + /** + * The failure reason for revoking the link. This field will only be + * present if the can_revoke is false. + */ + revoke_failure_reason?: SharedLinkAccessFailureReason; + /** + * The type of audience who can benefit from the access level specified by + * the `link_access_level` field. + */ + effective_audience?: LinkAudience; + /** + * The access level that the link will grant to its users. A link can + * grant additional rights to a user beyond their current access level. + * For example, if a user was invited as a viewer to a file, and then + * opens a link with `link_access_level` set to `editor`, then they will + * gain editor privileges. The `link_access_level` is a property of the + * link, and does not depend on who is calling this API. In particular, + * `link_access_level` does not take into account the API caller's current + * permissions to the content. + */ + link_access_level?: LinkAccessLevel; + /** + * A list of policies that the user might be able to set for the + * visibility. + */ + visibility_policies: Array; + /** + * Whether the user can set the expiry settings of the link. This refers + * to the ability to create a new expiry and modify an existing expiry. + */ + can_set_expiry: boolean; + /** + * Whether the user can remove the expiry of the link. + */ + can_remove_expiry: boolean; + /** + * Whether the link can be downloaded or not. + */ + allow_download: boolean; + /** + * Whether the user can allow downloads via the link. This refers to the + * ability to remove a no-download restriction on the link. + */ + can_allow_download: boolean; + /** + * Whether the user can disallow downloads via the link. This refers to + * the ability to impose a no-download restriction on the link. + */ + can_disallow_download: boolean; + /** + * Whether comments are enabled for the linked file. This takes the team + * commenting policy into account. + */ + allow_comments: boolean; + /** + * Whether the team has disabled commenting globally. + */ + team_restricts_comments: boolean; + /** + * A list of link audience options the user might be able to set as the + * new audience. + */ + audience_options?: Array; + /** + * Whether the user can set a password for the link. + */ + can_set_password?: boolean; + /** + * Whether the user can remove the password of the link. + */ + can_remove_password?: boolean; + /** + * Whether the user is required to provide a password to view the link. + */ + require_password?: boolean; + /** + * Whether the user can use extended sharing controls, based on their + * account type. + */ + can_use_extended_sharing_controls?: boolean; + } + + /** + * Settings that apply to a link. + */ + export interface LinkSettings { + /** + * The access level on the link for this file. Currently, it only accepts + * 'viewer' and 'viewer_no_comment'. + */ + access_level?: AccessLevel; + /** + * The type of audience on the link for this file. + */ + audience?: LinkAudience; + /** + * An expiry timestamp to set on a link. + */ + expiry?: LinkExpiry; + /** + * The password for the link. + */ + password?: LinkPassword; + } + + /** + * Arguments for listFileMembers(). + */ + export interface ListFileMembersArg { + /** + * The file for which you want to see members. + */ + file: PathOrId; + /** + * The actions for which to return permissions on a member. + */ + actions?: Array; + /** + * Defaults to True. + */ + include_inherited?: boolean; + /** + * Defaults to 100. + */ + limit?: number; + } + + /** + * Arguments for listFileMembersBatch(). + */ + export interface ListFileMembersBatchArg { + /** + * Files for which to return members. + */ + files: Array; + /** + * Defaults to 10. + */ + limit?: number; + } + + /** + * Per-file result for listFileMembersBatch(). + */ + export interface ListFileMembersBatchResult { + /** + * This is the input file identifier, whether an ID or a path. + */ + file: PathOrId; + /** + * The result for this particular file. + */ + result: ListFileMembersIndividualResult; + } + + /** + * Arguments for listFileMembersContinue(). + */ + export interface ListFileMembersContinueArg { + /** + * The cursor returned by your last call to listFileMembers(), + * listFileMembersContinue(), or listFileMembersBatch(). + */ + cursor: string; + } + + export interface ListFileMembersContinueErrorUserError { + '.tag': 'user_error'; + user_error: SharingUserError; + } + + export interface ListFileMembersContinueErrorAccessError { + '.tag': 'access_error'; + access_error: SharingFileAccessError; + } + + /** + * ListFileMembersContinueArg.cursor is invalid. + */ + export interface ListFileMembersContinueErrorInvalidCursor { + '.tag': 'invalid_cursor'; + } + + export interface ListFileMembersContinueErrorOther { + '.tag': 'other'; + } + + /** + * Error for listFileMembersContinue(). + */ + export type ListFileMembersContinueError = ListFileMembersContinueErrorUserError | ListFileMembersContinueErrorAccessError | ListFileMembersContinueErrorInvalidCursor | ListFileMembersContinueErrorOther; + + export interface ListFileMembersCountResult { + /** + * A list of members on this file. + */ + members: SharedFileMembers; + /** + * The number of members on this file. This does not include inherited + * members. + */ + member_count: number; + } + + export interface ListFileMembersErrorUserError { + '.tag': 'user_error'; + user_error: SharingUserError; + } + + export interface ListFileMembersErrorAccessError { + '.tag': 'access_error'; + access_error: SharingFileAccessError; + } + + export interface ListFileMembersErrorOther { + '.tag': 'other'; + } + + /** + * Error for listFileMembers(). + */ + export type ListFileMembersError = ListFileMembersErrorUserError | ListFileMembersErrorAccessError | ListFileMembersErrorOther; + + /** + * The results of the query for this file if it was successful. + */ + export interface ListFileMembersIndividualResultResult extends ListFileMembersCountResult { + '.tag': 'result'; + } + + /** + * The result of the query for this file if it was an error. + */ + export interface ListFileMembersIndividualResultAccessError { + '.tag': 'access_error'; + access_error: SharingFileAccessError; + } + + export interface ListFileMembersIndividualResultOther { + '.tag': 'other'; + } + + export type ListFileMembersIndividualResult = ListFileMembersIndividualResultResult | ListFileMembersIndividualResultAccessError | ListFileMembersIndividualResultOther; + + /** + * Arguments for listReceivedFiles(). + */ + export interface ListFilesArg { + /** + * Defaults to 100. + */ + limit?: number; + /** + * A list of `FileAction`s corresponding to `FilePermission`s that should + * appear in the response's SharedFileMetadata.permissions field + * describing the actions the authenticated user can perform on the file. + */ + actions?: Array; + } + + /** + * Arguments for listReceivedFilesContinue(). + */ + export interface ListFilesContinueArg { + /** + * Cursor in ListFilesResult.cursor. + */ + cursor: string; + } + + /** + * User account had a problem. + */ + export interface ListFilesContinueErrorUserError { + '.tag': 'user_error'; + user_error: SharingUserError; + } + + /** + * ListFilesContinueArg.cursor is invalid. + */ + export interface ListFilesContinueErrorInvalidCursor { + '.tag': 'invalid_cursor'; + } + + export interface ListFilesContinueErrorOther { + '.tag': 'other'; + } + + /** + * Error results for listReceivedFilesContinue(). + */ + export type ListFilesContinueError = ListFilesContinueErrorUserError | ListFilesContinueErrorInvalidCursor | ListFilesContinueErrorOther; + + /** + * Success results for listReceivedFiles(). + */ + export interface ListFilesResult { + /** + * Information about the files shared with current user. + */ + entries: Array; + /** + * Cursor used to obtain additional shared files. + */ + cursor?: string; + } + + export interface ListFolderMembersArgs extends ListFolderMembersCursorArg { + /** + * The ID for the shared folder. + */ + shared_folder_id: common.SharedFolderId; + } + + export interface ListFolderMembersContinueArg { + /** + * The cursor returned by your last call to listFolderMembers() or + * listFolderMembersContinue(). + */ + cursor: string; + } + + export interface ListFolderMembersContinueErrorAccessError { + '.tag': 'access_error'; + access_error: SharedFolderAccessError; + } + + /** + * ListFolderMembersContinueArg.cursor is invalid. + */ + export interface ListFolderMembersContinueErrorInvalidCursor { + '.tag': 'invalid_cursor'; + } + + export interface ListFolderMembersContinueErrorOther { + '.tag': 'other'; + } + + export type ListFolderMembersContinueError = ListFolderMembersContinueErrorAccessError | ListFolderMembersContinueErrorInvalidCursor | ListFolderMembersContinueErrorOther; + + export interface ListFolderMembersCursorArg { + /** + * This is a list indicating whether each returned member will include a + * boolean value MemberPermission.allow that describes whether the current + * user can perform the MemberAction on the member. + */ + actions?: Array; + /** + * Defaults to 1000. + */ + limit?: number; + } + + export interface ListFoldersArgs { + /** + * Defaults to 1000. + */ + limit?: number; + /** + * A list of `FolderAction`s corresponding to `FolderPermission`s that + * should appear in the response's SharedFolderMetadata.permissions field + * describing the actions the authenticated user can perform on the + * folder. + */ + actions?: Array; + } + + export interface ListFoldersContinueArg { + /** + * The cursor returned by the previous API call specified in the endpoint + * description. + */ + cursor: string; + } + + /** + * ListFoldersContinueArg.cursor is invalid. + */ + export interface ListFoldersContinueErrorInvalidCursor { + '.tag': 'invalid_cursor'; + } + + export interface ListFoldersContinueErrorOther { + '.tag': 'other'; + } + + export type ListFoldersContinueError = ListFoldersContinueErrorInvalidCursor | ListFoldersContinueErrorOther; + + /** + * Result for listFolders() or listMountableFolders(), depending on which + * endpoint was requested. Unmounted shared folders can be identified by the + * absence of SharedFolderMetadata.path_lower. + */ + export interface ListFoldersResult { + /** + * List of all shared folders the authenticated user has access to. + */ + entries: Array; + /** + * Present if there are additional shared folders that have not been + * returned yet. Pass the cursor into the corresponding continue endpoint + * (either listFoldersContinue() or listMountableFoldersContinue()) to + * list additional folders. + */ + cursor?: string; + } + + export interface ListSharedLinksArg { + /** + * See listSharedLinks() description. + */ + path?: ReadPath; + /** + * The cursor returned by your last call to listSharedLinks(). + */ + cursor?: string; + /** + * See listSharedLinks() description. + */ + direct_only?: boolean; + } + + export interface ListSharedLinksErrorPath { + '.tag': 'path'; + path: files.LookupError; + } + + /** + * Indicates that the cursor has been invalidated. Call listSharedLinks() to + * obtain a new cursor. + */ + export interface ListSharedLinksErrorReset { + '.tag': 'reset'; + } + + export interface ListSharedLinksErrorOther { + '.tag': 'other'; + } + + export type ListSharedLinksError = ListSharedLinksErrorPath | ListSharedLinksErrorReset | ListSharedLinksErrorOther; + + export interface ListSharedLinksResult { + /** + * Shared links applicable to the path argument. + */ + links: Array; + /** + * Is true if there are additional shared links that have not been + * returned yet. Pass the cursor into listSharedLinks() to retrieve them. + */ + has_more: boolean; + /** + * Pass the cursor into listSharedLinks() to obtain the additional links. + * Cursor is returned only if no path is given. + */ + cursor?: string; + } + + /** + * Contains information about a member's access level to content after an + * operation. + */ + export interface MemberAccessLevelResult { + /** + * The member still has this level of access to the content through a + * parent folder. + */ + access_level?: AccessLevel; + /** + * A localized string with additional information about why the user has + * this access level to the content. + */ + warning?: string; + /** + * The parent folders that a member has access to. The field is present if + * the user has access to the first parent folder where the member gains + * access. + */ + access_details?: Array; + } + + /** + * Allow the member to keep a copy of the folder when removing. + */ + export interface MemberActionLeaveACopy { + '.tag': 'leave_a_copy'; + } + + /** + * Make the member an editor of the folder. + */ + export interface MemberActionMakeEditor { + '.tag': 'make_editor'; + } + + /** + * Make the member an owner of the folder. + */ + export interface MemberActionMakeOwner { + '.tag': 'make_owner'; + } + + /** + * Make the member a viewer of the folder. + */ + export interface MemberActionMakeViewer { + '.tag': 'make_viewer'; + } + + /** + * Make the member a viewer of the folder without commenting permissions. + */ + export interface MemberActionMakeViewerNoComment { + '.tag': 'make_viewer_no_comment'; + } + + /** + * Remove the member from the folder. + */ + export interface MemberActionRemove { + '.tag': 'remove'; + } + + export interface MemberActionOther { + '.tag': 'other'; + } + + /** + * Actions that may be taken on members of a shared folder. + */ + export type MemberAction = MemberActionLeaveACopy | MemberActionMakeEditor | MemberActionMakeOwner | MemberActionMakeViewer | MemberActionMakeViewerNoComment | MemberActionRemove | MemberActionOther; + + /** + * Whether the user is allowed to take the action on the associated member. + */ + export interface MemberPermission { + /** + * The action that the user may wish to take on the member. + */ + action: MemberAction; + /** + * True if the user is allowed to take the action. + */ + allow: boolean; + /** + * The reason why the user is denied the permission. Not present if the + * action is allowed. + */ + reason?: PermissionDeniedReason; + } + + /** + * Only a teammate can become a member. + */ + export interface MemberPolicyTeam { + '.tag': 'team'; + } + + /** + * Anyone can become a member. + */ + export interface MemberPolicyAnyone { + '.tag': 'anyone'; + } + + export interface MemberPolicyOther { + '.tag': 'other'; + } + + /** + * Policy governing who can be a member of a shared folder. Only applicable + * to folders owned by a user on a team. + */ + export type MemberPolicy = MemberPolicyTeam | MemberPolicyAnyone | MemberPolicyOther; + + /** + * Dropbox account, team member, or group ID of member. + */ + export interface MemberSelectorDropboxId { + '.tag': 'dropbox_id'; + dropbox_id: DropboxId; + } + + /** + * Email address of member. + */ + export interface MemberSelectorEmail { + '.tag': 'email'; + email: common.EmailAddress; + } + + export interface MemberSelectorOther { + '.tag': 'other'; + } + + /** + * Includes different ways to identify a member of a shared folder. + */ + export type MemberSelector = MemberSelectorDropboxId | MemberSelectorEmail | MemberSelectorOther; + + /** + * The information about a member of the shared content. + */ + export interface MembershipInfo { + /** + * The access type for this member. It contains inherited access type from + * parent folder, and acquired access type from this folder. + */ + access_type: AccessLevel; + /** + * The permissions that requesting user has on this member. The set of + * permissions corresponds to the MemberActions in the request. + */ + permissions?: Array; + /** + * Never set. + */ + initials?: string; + /** + * Defaults to False. + */ + is_inherited?: boolean; + } + + export interface ModifySharedLinkSettingsArgs { + /** + * URL of the shared link to change its settings. + */ + url: string; + /** + * Set of settings for the shared link. + */ + settings: SharedLinkSettings; + /** + * Defaults to False. + */ + remove_expiration?: boolean; + } + + /** + * There is an error with the given settings. + */ + export interface ModifySharedLinkSettingsErrorSettingsError { + '.tag': 'settings_error'; + settings_error: SharedLinkSettingsError; + } + + /** + * This user's email address is not verified. This functionality is only + * available on accounts with a verified email address. Users can verify + * their email address [here]{@link https://www.dropbox.com/help/317}. + */ + export interface ModifySharedLinkSettingsErrorEmailNotVerified { + '.tag': 'email_not_verified'; + } + + export type ModifySharedLinkSettingsError = SharedLinkError | ModifySharedLinkSettingsErrorSettingsError | ModifySharedLinkSettingsErrorEmailNotVerified; + + export interface MountFolderArg { + /** + * The ID of the shared folder to mount. + */ + shared_folder_id: common.SharedFolderId; + } + + export interface MountFolderErrorAccessError { + '.tag': 'access_error'; + access_error: SharedFolderAccessError; + } + + /** + * Mounting would cause a shared folder to be inside another, which is + * disallowed. + */ + export interface MountFolderErrorInsideSharedFolder { + '.tag': 'inside_shared_folder'; + } + + /** + * The current user does not have enough space to mount the shared folder. + */ + export interface MountFolderErrorInsufficientQuota extends InsufficientQuotaAmounts { + '.tag': 'insufficient_quota'; + } + + /** + * The shared folder is already mounted. + */ + export interface MountFolderErrorAlreadyMounted { + '.tag': 'already_mounted'; + } + + /** + * The current user does not have permission to perform this action. + */ + export interface MountFolderErrorNoPermission { + '.tag': 'no_permission'; + } + + /** + * The shared folder is not mountable. One example where this can occur is + * when the shared folder belongs within a team folder in the user's + * Dropbox. + */ + export interface MountFolderErrorNotMountable { + '.tag': 'not_mountable'; + } + + export interface MountFolderErrorOther { + '.tag': 'other'; + } + + export type MountFolderError = MountFolderErrorAccessError | MountFolderErrorInsideSharedFolder | MountFolderErrorInsufficientQuota | MountFolderErrorAlreadyMounted | MountFolderErrorNoPermission | MountFolderErrorNotMountable | MountFolderErrorOther; + + /** + * Contains information about a parent folder that a member has access to. + */ + export interface ParentFolderAccessInfo { + /** + * Display name for the folder. + */ + folder_name: string; + /** + * The identifier of the parent shared folder. + */ + shared_folder_id: common.SharedFolderId; + /** + * The user's permissions for the parent shared folder. + */ + permissions: Array; + /** + * The full path to the parent shared folder relative to the acting user's + * root. + */ + path: string; + } + + /** + * Metadata for a path-based shared link. + */ + export interface PathLinkMetadata extends LinkMetadata { + /** + * Path in user's Dropbox. + */ + path: string; + } + + /** + * Reference to the PathLinkMetadata type, identified by the value of the + * .tag property. + */ + export interface PathLinkMetadataReference extends PathLinkMetadata { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'path'; + } + + /** + * Assume pending uploads are files. + */ + export interface PendingUploadModeFile { + '.tag': 'file'; + } + + /** + * Assume pending uploads are folders. + */ + export interface PendingUploadModeFolder { + '.tag': 'folder'; + } + + /** + * Flag to indicate pending upload default (for linking to not-yet-existing + * paths). + */ + export type PendingUploadMode = PendingUploadModeFile | PendingUploadModeFolder; + + /** + * User is not on the same team as the folder owner. + */ + export interface PermissionDeniedReasonUserNotSameTeamAsOwner { + '.tag': 'user_not_same_team_as_owner'; + } + + /** + * User is prohibited by the owner from taking the action. + */ + export interface PermissionDeniedReasonUserNotAllowedByOwner { + '.tag': 'user_not_allowed_by_owner'; + } + + /** + * Target is indirectly a member of the folder, for example by being part of + * a group. + */ + export interface PermissionDeniedReasonTargetIsIndirectMember { + '.tag': 'target_is_indirect_member'; + } + + /** + * Target is the owner of the folder. + */ + export interface PermissionDeniedReasonTargetIsOwner { + '.tag': 'target_is_owner'; + } + + /** + * Target is the user itself. + */ + export interface PermissionDeniedReasonTargetIsSelf { + '.tag': 'target_is_self'; + } + + /** + * Target is not an active member of the team. + */ + export interface PermissionDeniedReasonTargetNotActive { + '.tag': 'target_not_active'; + } + + /** + * Folder is team folder for a limited team. + */ + export interface PermissionDeniedReasonFolderIsLimitedTeamFolder { + '.tag': 'folder_is_limited_team_folder'; + } + + /** + * The content owner needs to be on a Dropbox team to perform this action. + */ + export interface PermissionDeniedReasonOwnerNotOnTeam { + '.tag': 'owner_not_on_team'; + } + + /** + * The user does not have permission to perform this action on the link. + */ + export interface PermissionDeniedReasonPermissionDenied { + '.tag': 'permission_denied'; + } + + /** + * The user's team policy prevents performing this action on the link. + */ + export interface PermissionDeniedReasonRestrictedByTeam { + '.tag': 'restricted_by_team'; + } + + /** + * The user's account type does not support this action. + */ + export interface PermissionDeniedReasonUserAccountType { + '.tag': 'user_account_type'; + } + + /** + * The user needs to be on a Dropbox team to perform this action. + */ + export interface PermissionDeniedReasonUserNotOnTeam { + '.tag': 'user_not_on_team'; + } + + /** + * Folder is inside of another shared folder. + */ + export interface PermissionDeniedReasonFolderIsInsideSharedFolder { + '.tag': 'folder_is_inside_shared_folder'; + } + + /** + * Policy cannot be changed due to restrictions from parent folder. + */ + export interface PermissionDeniedReasonRestrictedByParentFolder { + '.tag': 'restricted_by_parent_folder'; + } + + export interface PermissionDeniedReasonInsufficientPlan extends InsufficientPlan { + '.tag': 'insufficient_plan'; + } + + export interface PermissionDeniedReasonOther { + '.tag': 'other'; + } + + /** + * Possible reasons the user is denied a permission. + */ + export type PermissionDeniedReason = PermissionDeniedReasonUserNotSameTeamAsOwner | PermissionDeniedReasonUserNotAllowedByOwner | PermissionDeniedReasonTargetIsIndirectMember | PermissionDeniedReasonTargetIsOwner | PermissionDeniedReasonTargetIsSelf | PermissionDeniedReasonTargetNotActive | PermissionDeniedReasonFolderIsLimitedTeamFolder | PermissionDeniedReasonOwnerNotOnTeam | PermissionDeniedReasonPermissionDenied | PermissionDeniedReasonRestrictedByTeam | PermissionDeniedReasonUserAccountType | PermissionDeniedReasonUserNotOnTeam | PermissionDeniedReasonFolderIsInsideSharedFolder | PermissionDeniedReasonRestrictedByParentFolder | PermissionDeniedReasonInsufficientPlan | PermissionDeniedReasonOther; + + export interface RelinquishFileMembershipArg { + /** + * The path or id for the file. + */ + file: PathOrId; + } + + export interface RelinquishFileMembershipErrorAccessError { + '.tag': 'access_error'; + access_error: SharingFileAccessError; + } + + /** + * The current user has access to the shared file via a group. You can't + * relinquish membership to a file shared via groups. + */ + export interface RelinquishFileMembershipErrorGroupAccess { + '.tag': 'group_access'; + } + + /** + * The current user does not have permission to perform this action. + */ + export interface RelinquishFileMembershipErrorNoPermission { + '.tag': 'no_permission'; + } + + export interface RelinquishFileMembershipErrorOther { + '.tag': 'other'; + } + + export type RelinquishFileMembershipError = RelinquishFileMembershipErrorAccessError | RelinquishFileMembershipErrorGroupAccess | RelinquishFileMembershipErrorNoPermission | RelinquishFileMembershipErrorOther; + + export interface RelinquishFolderMembershipArg { + /** + * The ID for the shared folder. + */ + shared_folder_id: common.SharedFolderId; + /** + * Defaults to False. + */ + leave_a_copy?: boolean; + } + + export interface RelinquishFolderMembershipErrorAccessError { + '.tag': 'access_error'; + access_error: SharedFolderAccessError; + } + + /** + * The current user is the owner of the shared folder. Owners cannot + * relinquish membership to their own folders. Try unsharing or transferring + * ownership first. + */ + export interface RelinquishFolderMembershipErrorFolderOwner { + '.tag': 'folder_owner'; + } + + /** + * The shared folder is currently mounted. Unmount the shared folder before + * relinquishing membership. + */ + export interface RelinquishFolderMembershipErrorMounted { + '.tag': 'mounted'; + } + + /** + * The current user has access to the shared folder via a group. You can't + * relinquish membership to folders shared via groups. + */ + export interface RelinquishFolderMembershipErrorGroupAccess { + '.tag': 'group_access'; + } + + /** + * This action cannot be performed on a team shared folder. + */ + export interface RelinquishFolderMembershipErrorTeamFolder { + '.tag': 'team_folder'; + } + + /** + * The current user does not have permission to perform this action. + */ + export interface RelinquishFolderMembershipErrorNoPermission { + '.tag': 'no_permission'; + } + + /** + * The current user only has inherited access to the shared folder. You + * can't relinquish inherited membership to folders. + */ + export interface RelinquishFolderMembershipErrorNoExplicitAccess { + '.tag': 'no_explicit_access'; + } + + export interface RelinquishFolderMembershipErrorOther { + '.tag': 'other'; + } + + export type RelinquishFolderMembershipError = RelinquishFolderMembershipErrorAccessError | RelinquishFolderMembershipErrorFolderOwner | RelinquishFolderMembershipErrorMounted | RelinquishFolderMembershipErrorGroupAccess | RelinquishFolderMembershipErrorTeamFolder | RelinquishFolderMembershipErrorNoPermission | RelinquishFolderMembershipErrorNoExplicitAccess | RelinquishFolderMembershipErrorOther; + + /** + * Arguments for removeFileMember2(). + */ + export interface RemoveFileMemberArg { + /** + * File from which to remove members. + */ + file: PathOrId; + /** + * Member to remove from this file. Note that even if an email is + * specified, it may result in the removal of a user (not an invitee) if + * the user's main account corresponds to that email address. + */ + member: MemberSelector; + } + + export interface RemoveFileMemberErrorUserError { + '.tag': 'user_error'; + user_error: SharingUserError; + } + + export interface RemoveFileMemberErrorAccessError { + '.tag': 'access_error'; + access_error: SharingFileAccessError; + } + + /** + * This member does not have explicit access to the file and therefore + * cannot be removed. The return value is the access that a user might have + * to the file from a parent folder. + */ + export interface RemoveFileMemberErrorNoExplicitAccess extends MemberAccessLevelResult { + '.tag': 'no_explicit_access'; + } + + export interface RemoveFileMemberErrorOther { + '.tag': 'other'; + } + + /** + * Errors for removeFileMember2(). + */ + export type RemoveFileMemberError = RemoveFileMemberErrorUserError | RemoveFileMemberErrorAccessError | RemoveFileMemberErrorNoExplicitAccess | RemoveFileMemberErrorOther; + + export interface RemoveFolderMemberArg { + /** + * The ID for the shared folder. + */ + shared_folder_id: common.SharedFolderId; + /** + * The member to remove from the folder. + */ + member: MemberSelector; + /** + * If true, the removed user will keep their copy of the folder after it's + * unshared, assuming it was mounted. Otherwise, it will be removed from + * their Dropbox. This must be set to false when removing a group, or when + * the folder is within a team folder or another shared folder. + */ + leave_a_copy: boolean; + } + + export interface RemoveFolderMemberErrorAccessError { + '.tag': 'access_error'; + access_error: SharedFolderAccessError; + } + + export interface RemoveFolderMemberErrorMemberError { + '.tag': 'member_error'; + member_error: SharedFolderMemberError; + } + + /** + * The target user is the owner of the shared folder. You can't remove this + * user until ownership has been transferred to another member. + */ + export interface RemoveFolderMemberErrorFolderOwner { + '.tag': 'folder_owner'; + } + + /** + * The target user has access to the shared folder via a group. + */ + export interface RemoveFolderMemberErrorGroupAccess { + '.tag': 'group_access'; + } + + /** + * This action cannot be performed on a team shared folder. + */ + export interface RemoveFolderMemberErrorTeamFolder { + '.tag': 'team_folder'; + } + + /** + * The current user does not have permission to perform this action. + */ + export interface RemoveFolderMemberErrorNoPermission { + '.tag': 'no_permission'; + } + + /** + * This shared folder has too many files for leaving a copy. You can still + * remove this user without leaving a copy. + */ + export interface RemoveFolderMemberErrorTooManyFiles { + '.tag': 'too_many_files'; + } + + export interface RemoveFolderMemberErrorOther { + '.tag': 'other'; + } + + export type RemoveFolderMemberError = RemoveFolderMemberErrorAccessError | RemoveFolderMemberErrorMemberError | RemoveFolderMemberErrorFolderOwner | RemoveFolderMemberErrorGroupAccess | RemoveFolderMemberErrorTeamFolder | RemoveFolderMemberErrorNoPermission | RemoveFolderMemberErrorTooManyFiles | RemoveFolderMemberErrorOther; + + /** + * Removing the folder member has finished. The value is information about + * whether the member has another form of access. + */ + export interface RemoveMemberJobStatusComplete extends MemberAccessLevelResult { + '.tag': 'complete'; + } + + export interface RemoveMemberJobStatusFailed { + '.tag': 'failed'; + failed: RemoveFolderMemberError; + } + + export type RemoveMemberJobStatus = async.PollResultBase | RemoveMemberJobStatusComplete | RemoveMemberJobStatusFailed; + + /** + * Users who use the link can view and comment on the content. + */ + export interface RequestedLinkAccessLevelViewer { + '.tag': 'viewer'; + } + + /** + * Users who use the link can edit, view and comment on the content. Note + * not all file types support edit links yet. + */ + export interface RequestedLinkAccessLevelEditor { + '.tag': 'editor'; + } + + /** + * Request for the maximum access level you can set the link to. + */ + export interface RequestedLinkAccessLevelMax { + '.tag': 'max'; + } + + /** + * Request for the default access level the user has set. + */ + export interface RequestedLinkAccessLevelDefault { + '.tag': 'default'; + } + + export interface RequestedLinkAccessLevelOther { + '.tag': 'other'; + } + + export type RequestedLinkAccessLevel = RequestedLinkAccessLevelViewer | RequestedLinkAccessLevelEditor | RequestedLinkAccessLevelMax | RequestedLinkAccessLevelDefault | RequestedLinkAccessLevelOther; + + /** + * Anyone who has received the link can access it. No login required. + */ + export interface RequestedVisibilityPublic { + '.tag': 'public'; + } + + /** + * Only members of the same team can access the link. Login is required. + */ + export interface RequestedVisibilityTeamOnly { + '.tag': 'team_only'; + } + + /** + * A link-specific password is required to access the link. Login is not + * required. + */ + export interface RequestedVisibilityPassword { + '.tag': 'password'; + } + + /** + * The access permission that can be requested by the caller for the shared + * link. Note that the final resolved visibility of the shared link takes + * into account other aspects, such as team and shared folder settings. + * Check the sharing.ResolvedVisibility for more info on the possible + * resolved visibility values of shared links. + */ + export type RequestedVisibility = RequestedVisibilityPublic | RequestedVisibilityTeamOnly | RequestedVisibilityPassword; + + /** + * Only members of the same team who have the link-specific password can + * access the link. Login is required. + */ + export interface ResolvedVisibilityTeamAndPassword { + '.tag': 'team_and_password'; + } + + /** + * Only members of the shared folder containing the linked file can access + * the link. Login is required. + */ + export interface ResolvedVisibilitySharedFolderOnly { + '.tag': 'shared_folder_only'; + } + + /** + * The link merely points the user to the content, and does not grant any + * additional rights. Existing members of the content who use this link can + * only access the content with their pre-existing access rights. Either on + * the file directly, or inherited from a parent folder. + */ + export interface ResolvedVisibilityNoOne { + '.tag': 'no_one'; + } + + /** + * Only the current user can view this link. + */ + export interface ResolvedVisibilityOnlyYou { + '.tag': 'only_you'; + } + + export interface ResolvedVisibilityOther { + '.tag': 'other'; + } + + /** + * The actual access permissions values of shared links after taking into + * account user preferences and the team and shared folder settings. Check + * the sharing.RequestedVisibility for more info on the possible visibility + * values that can be set by the shared link's owner. + */ + export type ResolvedVisibility = RequestedVisibility | ResolvedVisibilityTeamAndPassword | ResolvedVisibilitySharedFolderOnly | ResolvedVisibilityNoOne | ResolvedVisibilityOnlyYou | ResolvedVisibilityOther; + + export interface RevokeSharedLinkArg { + /** + * URL of the shared link. + */ + url: string; + } + + /** + * Shared link is malformed. + */ + export interface RevokeSharedLinkErrorSharedLinkMalformed { + '.tag': 'shared_link_malformed'; + } + + export type RevokeSharedLinkError = SharedLinkError | RevokeSharedLinkErrorSharedLinkMalformed; + + export interface SetAccessInheritanceArg { + /** + * Defaults to TagRef(Union('AccessInheritance', [UnionField('inherit', + * Void, False, None), UnionField('no_inherit', Void, False, None), + * UnionField('other', Void, True, None)]), 'inherit'). + */ + access_inheritance?: AccessInheritance; + /** + * The ID for the shared folder. + */ + shared_folder_id: common.SharedFolderId; + } + + /** + * Unable to access shared folder. + */ + export interface SetAccessInheritanceErrorAccessError { + '.tag': 'access_error'; + access_error: SharedFolderAccessError; + } + + /** + * The current user does not have permission to perform this action. + */ + export interface SetAccessInheritanceErrorNoPermission { + '.tag': 'no_permission'; + } + + export interface SetAccessInheritanceErrorOther { + '.tag': 'other'; + } + + export type SetAccessInheritanceError = SetAccessInheritanceErrorAccessError | SetAccessInheritanceErrorNoPermission | SetAccessInheritanceErrorOther; + + export interface ShareFolderArg extends ShareFolderArgBase { + /** + * A list of `FolderAction`s corresponding to `FolderPermission`s that + * should appear in the response's SharedFolderMetadata.permissions field + * describing the actions the authenticated user can perform on the + * folder. + */ + actions?: Array; + /** + * Settings on the link for this folder. + */ + link_settings?: LinkSettings; + } + + export interface ShareFolderArgBase { + /** + * Who can add and remove members of this shared folder. + */ + acl_update_policy?: AclUpdatePolicy; + /** + * Defaults to False. + */ + force_async?: boolean; + /** + * Who can be a member of this shared folder. Only applicable if the + * current user is on a team. + */ + member_policy?: MemberPolicy; + /** + * The path to the folder to share. If it does not exist, then a new one + * is created. + */ + path: files.WritePath; + /** + * The policy to apply to shared links created for content inside this + * shared folder. The current user must be on a team to set this policy + * to SharedLinkPolicy.members. + */ + shared_link_policy?: SharedLinkPolicy; + /** + * Who can enable/disable viewer info for this shared folder. + */ + viewer_info_policy?: ViewerInfoPolicy; + /** + * Defaults to TagRef(Union('AccessInheritance', [UnionField('inherit', + * Void, False, None), UnionField('no_inherit', Void, False, None), + * UnionField('other', Void, True, None)]), 'inherit'). + */ + access_inheritance?: AccessInheritance; + } + + /** + * The current user does not have permission to perform this action. + */ + export interface ShareFolderErrorNoPermission { + '.tag': 'no_permission'; + } + + export type ShareFolderError = ShareFolderErrorBase | ShareFolderErrorNoPermission; + + /** + * This user's email address is not verified. This functionality is only + * available on accounts with a verified email address. Users can verify + * their email address [here]{@link https://www.dropbox.com/help/317}. + */ + export interface ShareFolderErrorBaseEmailUnverified { + '.tag': 'email_unverified'; + } + + /** + * ShareFolderArg.path is invalid. + */ + export interface ShareFolderErrorBaseBadPath { + '.tag': 'bad_path'; + bad_path: SharePathError; + } + + /** + * Team policy is more restrictive than ShareFolderArg.member_policy. + */ + export interface ShareFolderErrorBaseTeamPolicyDisallowsMemberPolicy { + '.tag': 'team_policy_disallows_member_policy'; + } + + /** + * The current user's account is not allowed to select the specified + * ShareFolderArg.shared_link_policy. + */ + export interface ShareFolderErrorBaseDisallowedSharedLinkPolicy { + '.tag': 'disallowed_shared_link_policy'; + } + + export interface ShareFolderErrorBaseOther { + '.tag': 'other'; + } + + export type ShareFolderErrorBase = ShareFolderErrorBaseEmailUnverified | ShareFolderErrorBaseBadPath | ShareFolderErrorBaseTeamPolicyDisallowsMemberPolicy | ShareFolderErrorBaseDisallowedSharedLinkPolicy | ShareFolderErrorBaseOther; + + /** + * The share job has finished. The value is the metadata for the folder. + */ + export interface ShareFolderJobStatusComplete extends SharedFolderMetadata { + '.tag': 'complete'; + } + + export interface ShareFolderJobStatusFailed { + '.tag': 'failed'; + failed: ShareFolderError; + } + + export type ShareFolderJobStatus = async.PollResultBase | ShareFolderJobStatusComplete | ShareFolderJobStatusFailed; + + export interface ShareFolderLaunchComplete extends SharedFolderMetadata { + '.tag': 'complete'; + } + + export type ShareFolderLaunch = async.LaunchResultBase | ShareFolderLaunchComplete; + + /** + * A file is at the specified path. + */ + export interface SharePathErrorIsFile { + '.tag': 'is_file'; + } + + /** + * We do not support sharing a folder inside a shared folder. + */ + export interface SharePathErrorInsideSharedFolder { + '.tag': 'inside_shared_folder'; + } + + /** + * We do not support shared folders that contain shared folders. + */ + export interface SharePathErrorContainsSharedFolder { + '.tag': 'contains_shared_folder'; + } + + /** + * We do not support shared folders that contain app folders. + */ + export interface SharePathErrorContainsAppFolder { + '.tag': 'contains_app_folder'; + } + + /** + * We do not support shared folders that contain team folders. + */ + export interface SharePathErrorContainsTeamFolder { + '.tag': 'contains_team_folder'; + } + + /** + * We do not support sharing an app folder. + */ + export interface SharePathErrorIsAppFolder { + '.tag': 'is_app_folder'; + } + + /** + * We do not support sharing a folder inside an app folder. + */ + export interface SharePathErrorInsideAppFolder { + '.tag': 'inside_app_folder'; + } + + /** + * A public folder can't be shared this way. Use a public link instead. + */ + export interface SharePathErrorIsPublicFolder { + '.tag': 'is_public_folder'; + } + + /** + * A folder inside a public folder can't be shared this way. Use a public + * link instead. + */ + export interface SharePathErrorInsidePublicFolder { + '.tag': 'inside_public_folder'; + } + + /** + * Folder is already shared. Contains metadata about the existing shared + * folder. + */ + export interface SharePathErrorAlreadyShared extends SharedFolderMetadata { + '.tag': 'already_shared'; + } + + /** + * Path is not valid. + */ + export interface SharePathErrorInvalidPath { + '.tag': 'invalid_path'; + } + + /** + * We do not support sharing a Mac OS X package. + */ + export interface SharePathErrorIsOsxPackage { + '.tag': 'is_osx_package'; + } + + /** + * We do not support sharing a folder inside a Mac OS X package. + */ + export interface SharePathErrorInsideOsxPackage { + '.tag': 'inside_osx_package'; + } + + /** + * We do not support sharing the Vault folder. + */ + export interface SharePathErrorIsVault { + '.tag': 'is_vault'; + } + + /** + * We do not support sharing a folder inside a locked Vault. + */ + export interface SharePathErrorIsVaultLocked { + '.tag': 'is_vault_locked'; + } + + /** + * We do not support sharing the Family folder. + */ + export interface SharePathErrorIsFamily { + '.tag': 'is_family'; + } + + export interface SharePathErrorOther { + '.tag': 'other'; + } + + export type SharePathError = SharePathErrorIsFile | SharePathErrorInsideSharedFolder | SharePathErrorContainsSharedFolder | SharePathErrorContainsAppFolder | SharePathErrorContainsTeamFolder | SharePathErrorIsAppFolder | SharePathErrorInsideAppFolder | SharePathErrorIsPublicFolder | SharePathErrorInsidePublicFolder | SharePathErrorAlreadyShared | SharePathErrorInvalidPath | SharePathErrorIsOsxPackage | SharePathErrorInsideOsxPackage | SharePathErrorIsVault | SharePathErrorIsVaultLocked | SharePathErrorIsFamily | SharePathErrorOther; + + /** + * Metadata of a shared link for a file or folder. + */ + export interface SharedContentLinkMetadata extends SharedContentLinkMetadataBase { + /** + * The content inside this folder with link audience different than this + * folder's. This is only returned when an endpoint that returns metadata + * for a single shared folder is called, e.g. /get_folder_metadata. + */ + audience_exceptions?: AudienceExceptions; + /** + * The URL of the link. + */ + url: string; + } + + export interface SharedContentLinkMetadataBase { + /** + * The access level on the link for this file. + */ + access_level?: AccessLevel; + /** + * The audience options that are available for the content. Some audience + * options may be unavailable. For example, team_only may be unavailable + * if the content is not owned by a user on a team. The 'default' audience + * option is always available if the user can modify link settings. + */ + audience_options: Array; + /** + * The shared folder that prevents the link audience for this link from + * being more restrictive. + */ + audience_restricting_shared_folder?: AudienceRestrictingSharedFolder; + /** + * The current audience of the link. + */ + current_audience: LinkAudience; + /** + * Whether the link has an expiry set on it. A link with an expiry will + * have its audience changed to members when the expiry is reached. + */ + expiry?: common.DropboxTimestamp; + /** + * A list of permissions for actions you can perform on the link. + */ + link_permissions: Array; + /** + * Whether the link is protected by a password. + */ + password_protected: boolean; + } + + /** + * Shared file user, group, and invitee membership. Used for the results of + * listFileMembers() and listFileMembersContinue(), and used as part of the + * results for listFileMembersBatch(). + */ + export interface SharedFileMembers { + /** + * The list of user members of the shared file. + */ + users: Array; + /** + * The list of group members of the shared file. + */ + groups: Array; + /** + * The list of invited members of a file, but have not logged in and + * claimed this. + */ + invitees: Array; + /** + * Present if there are additional shared file members that have not been + * returned yet. Pass the cursor into listFileMembersContinue() to list + * additional members. + */ + cursor?: string; + } + + /** + * Properties of the shared file. + */ + export interface SharedFileMetadata { + /** + * The current user's access level for this shared file. + */ + access_type?: AccessLevel; + /** + * The ID of the file. + */ + id: files.FileId; + /** + * The expected metadata of the link associated for the file when it is + * first shared. Absent if the link already exists. This is for an + * unreleased feature so it may not be returned yet. + */ + expected_link_metadata?: ExpectedSharedContentLinkMetadata; + /** + * The metadata of the link associated for the file. This is for an + * unreleased feature so it may not be returned yet. + */ + link_metadata?: SharedContentLinkMetadata; + /** + * The name of this file. + */ + name: string; + /** + * The display names of the users that own the file. If the file is part + * of a team folder, the display names of the team admins are also + * included. Absent if the owner display names cannot be fetched. + */ + owner_display_names?: Array; + /** + * The team that owns the file. This field is not present if the file is + * not owned by a team. + */ + owner_team?: users.Team; + /** + * The ID of the parent shared folder. This field is present only if the + * file is contained within a shared folder. + */ + parent_shared_folder_id?: common.SharedFolderId; + /** + * The cased path to be used for display purposes only. In rare instances + * the casing will not correctly match the user's filesystem, but this + * behavior will match the path provided in the Core API v1. Absent for + * unmounted files. + */ + path_display?: string; + /** + * The lower-case full path of this file. Absent for unmounted files. + */ + path_lower?: string; + /** + * The sharing permissions that requesting user has on this file. This + * corresponds to the entries given in GetFileMetadataBatchArg.actions or + * GetFileMetadataArg.actions. + */ + permissions?: Array; + /** + * Policies governing this shared file. + */ + policy: FolderPolicy; + /** + * URL for displaying a web preview of the shared file. + */ + preview_url: string; + /** + * Timestamp indicating when the current user was invited to this shared + * file. If the user was not invited to the shared file, the timestamp + * will indicate when the user was invited to the parent shared folder. + * This value may be absent. + */ + time_invited?: common.DropboxTimestamp; + } + + /** + * This shared folder ID is invalid. + */ + export interface SharedFolderAccessErrorInvalidId { + '.tag': 'invalid_id'; + } + + /** + * The user is not a member of the shared folder thus cannot access it. + */ + export interface SharedFolderAccessErrorNotAMember { + '.tag': 'not_a_member'; + } + + /** + * Never set. + */ + export interface SharedFolderAccessErrorEmailUnverified { + '.tag': 'email_unverified'; + } + + /** + * The shared folder is unmounted. + */ + export interface SharedFolderAccessErrorUnmounted { + '.tag': 'unmounted'; + } + + export interface SharedFolderAccessErrorOther { + '.tag': 'other'; + } + + /** + * There is an error accessing the shared folder. + */ + export type SharedFolderAccessError = SharedFolderAccessErrorInvalidId | SharedFolderAccessErrorNotAMember | SharedFolderAccessErrorEmailUnverified | SharedFolderAccessErrorUnmounted | SharedFolderAccessErrorOther; + + /** + * The target dropbox_id is invalid. + */ + export interface SharedFolderMemberErrorInvalidDropboxId { + '.tag': 'invalid_dropbox_id'; + } + + /** + * The target dropbox_id is not a member of the shared folder. + */ + export interface SharedFolderMemberErrorNotAMember { + '.tag': 'not_a_member'; + } + + /** + * The target member only has inherited access to the shared folder. + */ + export interface SharedFolderMemberErrorNoExplicitAccess extends MemberAccessLevelResult { + '.tag': 'no_explicit_access'; + } + + export interface SharedFolderMemberErrorOther { + '.tag': 'other'; + } + + export type SharedFolderMemberError = SharedFolderMemberErrorInvalidDropboxId | SharedFolderMemberErrorNotAMember | SharedFolderMemberErrorNoExplicitAccess | SharedFolderMemberErrorOther; + + /** + * Shared folder user and group membership. + */ + export interface SharedFolderMembers { + /** + * The list of user members of the shared folder. + */ + users: Array; + /** + * The list of group members of the shared folder. + */ + groups: Array; + /** + * The list of invitees to the shared folder. + */ + invitees: Array; + /** + * Present if there are additional shared folder members that have not + * been returned yet. Pass the cursor into listFolderMembersContinue() to + * list additional members. + */ + cursor?: string; + } + + /** + * The metadata which includes basic information about the shared folder. + */ + export interface SharedFolderMetadata extends SharedFolderMetadataBase { + /** + * The metadata of the shared content link to this shared folder. Absent + * if there is no link on the folder. This is for an unreleased feature so + * it may not be returned yet. + */ + link_metadata?: SharedContentLinkMetadata; + /** + * The name of the this shared folder. + */ + name: string; + /** + * Actions the current user may perform on the folder and its contents. + * The set of permissions corresponds to the FolderActions in the request. + */ + permissions?: Array; + /** + * Policies governing this shared folder. + */ + policy: FolderPolicy; + /** + * URL for displaying a web preview of the shared folder. + */ + preview_url: string; + /** + * The ID of the shared folder. + */ + shared_folder_id: common.SharedFolderId; + /** + * Timestamp indicating when the current user was invited to this shared + * folder. + */ + time_invited: common.DropboxTimestamp; + /** + * Defaults to TagRef(Union('AccessInheritance', [UnionField('inherit', + * Void, False, None), UnionField('no_inherit', Void, False, None), + * UnionField('other', Void, True, None)]), 'inherit'). + */ + access_inheritance?: AccessInheritance; + } + + /** + * Properties of the shared folder. + */ + export interface SharedFolderMetadataBase { + /** + * The current user's access level for this shared folder. + */ + access_type: AccessLevel; + /** + * Whether this folder is inside of a team folder. + */ + is_inside_team_folder: boolean; + /** + * Whether this folder is a [team folder]{@link + * https://www.dropbox.com/en/help/986}. + */ + is_team_folder: boolean; + /** + * The display names of the users that own the folder. If the folder is + * part of a team folder, the display names of the team admins are also + * included. Absent if the owner display names cannot be fetched. + */ + owner_display_names?: Array; + /** + * The team that owns the folder. This field is not present if the folder + * is not owned by a team. + */ + owner_team?: users.Team; + /** + * The ID of the parent shared folder. This field is present only if the + * folder is contained within another shared folder. + */ + parent_shared_folder_id?: common.SharedFolderId; + /** + * The lower-cased full path of this shared folder. Absent for unmounted + * folders. + */ + path_lower?: string; + /** + * Display name for the parent folder. + */ + parent_folder_name?: string; + } + + /** + * User is not logged in. + */ + export interface SharedLinkAccessFailureReasonLoginRequired { + '.tag': 'login_required'; + } + + /** + * This user's email address is not verified. This functionality is only + * available on accounts with a verified email address. Users can verify + * their email address [here]{@link https://www.dropbox.com/help/317}. + */ + export interface SharedLinkAccessFailureReasonEmailVerifyRequired { + '.tag': 'email_verify_required'; + } + + /** + * The link is password protected. + */ + export interface SharedLinkAccessFailureReasonPasswordRequired { + '.tag': 'password_required'; + } + + /** + * Access is allowed for team members only. + */ + export interface SharedLinkAccessFailureReasonTeamOnly { + '.tag': 'team_only'; + } + + /** + * Access is allowed for the shared link's owner only. + */ + export interface SharedLinkAccessFailureReasonOwnerOnly { + '.tag': 'owner_only'; + } + + export interface SharedLinkAccessFailureReasonOther { + '.tag': 'other'; + } + + export type SharedLinkAccessFailureReason = SharedLinkAccessFailureReasonLoginRequired | SharedLinkAccessFailureReasonEmailVerifyRequired | SharedLinkAccessFailureReasonPasswordRequired | SharedLinkAccessFailureReasonTeamOnly | SharedLinkAccessFailureReasonOwnerOnly | SharedLinkAccessFailureReasonOther; + + /** + * Metadata of the shared link that already exists. + */ + export interface SharedLinkAlreadyExistsMetadataMetadata { + '.tag': 'metadata'; + metadata: FileLinkMetadataReference|FolderLinkMetadataReference|SharedLinkMetadataReference; + } + + export interface SharedLinkAlreadyExistsMetadataOther { + '.tag': 'other'; + } + + export type SharedLinkAlreadyExistsMetadata = SharedLinkAlreadyExistsMetadataMetadata | SharedLinkAlreadyExistsMetadataOther; + + /** + * The shared link wasn't found. + */ + export interface SharedLinkErrorSharedLinkNotFound { + '.tag': 'shared_link_not_found'; + } + + /** + * The caller is not allowed to access this shared link. + */ + export interface SharedLinkErrorSharedLinkAccessDenied { + '.tag': 'shared_link_access_denied'; + } + + /** + * This type of link is not supported; use files() instead. + */ + export interface SharedLinkErrorUnsupportedLinkType { + '.tag': 'unsupported_link_type'; + } + + export interface SharedLinkErrorOther { + '.tag': 'other'; + } + + export type SharedLinkError = SharedLinkErrorSharedLinkNotFound | SharedLinkErrorSharedLinkAccessDenied | SharedLinkErrorUnsupportedLinkType | SharedLinkErrorOther; + + /** + * The metadata of a shared link. + */ + export interface SharedLinkMetadata { + /** + * URL of the shared link. + */ + url: string; + /** + * A unique identifier for the linked file. + */ + id?: Id; + /** + * The linked file name (including extension). This never contains a + * slash. + */ + name: string; + /** + * Expiration time, if set. By default the link won't expire. + */ + expires?: common.DropboxTimestamp; + /** + * The lowercased full path in the user's Dropbox. This always starts with + * a slash. This field will only be present only if the linked file is in + * the authenticated user's dropbox. + */ + path_lower?: string; + /** + * The link's access permissions. + */ + link_permissions: LinkPermissions; + /** + * The team membership information of the link's owner. This field will + * only be present if the link's owner is a team member. + */ + team_member_info?: TeamMemberInfo; + /** + * The team information of the content's owner. This field will only be + * present if the content's owner is a team member and the content's owner + * team is different from the link's owner team. + */ + content_owner_team_info?: TeamInfo; + } + + /** + * Reference to the SharedLinkMetadata polymorphic type. Contains a .tag + * property to let you discriminate between possible subtypes. + */ + export interface SharedLinkMetadataReference extends SharedLinkMetadata { + /** + * Tag identifying the subtype variant. + */ + '.tag': "file"|"folder"; + } + + /** + * Links can be shared with anyone. + */ + export interface SharedLinkPolicyAnyone { + '.tag': 'anyone'; + } + + /** + * Links can be shared with anyone on the same team as the owner. + */ + export interface SharedLinkPolicyTeam { + '.tag': 'team'; + } + + /** + * Links can only be shared among members of the shared folder. + */ + export interface SharedLinkPolicyMembers { + '.tag': 'members'; + } + + export interface SharedLinkPolicyOther { + '.tag': 'other'; + } + + /** + * Who can view shared links in this folder. + */ + export type SharedLinkPolicy = SharedLinkPolicyAnyone | SharedLinkPolicyTeam | SharedLinkPolicyMembers | SharedLinkPolicyOther; + + export interface SharedLinkSettings { + /** + * Boolean flag to enable or disable password protection. + */ + require_password?: boolean; + /** + * If require_password is true, this is needed to specify the password to + * access the link. + */ + link_password?: string; + /** + * Expiration time of the shared link. By default the link won't expire. + */ + expires?: common.DropboxTimestamp; + /** + * The new audience who can benefit from the access level specified by the + * link's access level specified in the `link_access_level` field of + * `LinkPermissions`. This is used in conjunction with team policies and + * shared folder policies to determine the final effective audience type + * in the `effective_audience` field of `LinkPermissions. + */ + audience?: LinkAudience; + /** + * Requested access level you want the audience to gain from this link. + * Note, modifying access level for an existing link is not supported. + */ + access?: RequestedLinkAccessLevel; + /** + * Use audience instead. The requested access for this shared link. + */ + requested_visibility?: RequestedVisibility; + /** + * Boolean flag to allow or not download capabilities for shared links. + */ + allow_download?: boolean; + } + + /** + * The given settings are invalid (for example, all attributes of the + * sharing.SharedLinkSettings are empty, the requested visibility is + * RequestedVisibility.password but the SharedLinkSettings.link_password is + * missing, SharedLinkSettings.expires is set to the past, etc.). + */ + export interface SharedLinkSettingsErrorInvalidSettings { + '.tag': 'invalid_settings'; + } + + /** + * User is not allowed to modify the settings of this link. Note that basic + * users can only set RequestedVisibility.public as the + * SharedLinkSettings.requested_visibility and cannot set + * SharedLinkSettings.expires. + */ + export interface SharedLinkSettingsErrorNotAuthorized { + '.tag': 'not_authorized'; + } + + export type SharedLinkSettingsError = SharedLinkSettingsErrorInvalidSettings | SharedLinkSettingsErrorNotAuthorized; + + /** + * Current user does not have sufficient privileges to perform the desired + * action. + */ + export interface SharingFileAccessErrorNoPermission { + '.tag': 'no_permission'; + } + + /** + * File specified was not found. + */ + export interface SharingFileAccessErrorInvalidFile { + '.tag': 'invalid_file'; + } + + /** + * A folder can't be shared this way. Use folder sharing or a shared link + * instead. + */ + export interface SharingFileAccessErrorIsFolder { + '.tag': 'is_folder'; + } + + /** + * A file inside a public folder can't be shared this way. Use a public link + * instead. + */ + export interface SharingFileAccessErrorInsidePublicFolder { + '.tag': 'inside_public_folder'; + } + + /** + * A Mac OS X package can't be shared this way. Use a shared link instead. + */ + export interface SharingFileAccessErrorInsideOsxPackage { + '.tag': 'inside_osx_package'; + } + + export interface SharingFileAccessErrorOther { + '.tag': 'other'; + } + + /** + * User could not access this file. + */ + export type SharingFileAccessError = SharingFileAccessErrorNoPermission | SharingFileAccessErrorInvalidFile | SharingFileAccessErrorIsFolder | SharingFileAccessErrorInsidePublicFolder | SharingFileAccessErrorInsideOsxPackage | SharingFileAccessErrorOther; + + /** + * This user's email address is not verified. This functionality is only + * available on accounts with a verified email address. Users can verify + * their email address [here]{@link https://www.dropbox.com/help/317}. + */ + export interface SharingUserErrorEmailUnverified { + '.tag': 'email_unverified'; + } + + export interface SharingUserErrorOther { + '.tag': 'other'; + } + + /** + * User account had a problem preventing this action. + */ + export type SharingUserError = SharingUserErrorEmailUnverified | SharingUserErrorOther; + + /** + * Information about a team member. + */ + export interface TeamMemberInfo { + /** + * Information about the member's team. + */ + team_info: TeamInfo; + /** + * The display name of the user. + */ + display_name: string; + /** + * ID of user as a member of a team. This field will only be present if + * the member is in the same team as current user. + */ + member_id?: string; + } + + export interface TransferFolderArg { + /** + * The ID for the shared folder. + */ + shared_folder_id: common.SharedFolderId; + /** + * A account or team member ID to transfer ownership to. + */ + to_dropbox_id: DropboxId; + } + + export interface TransferFolderErrorAccessError { + '.tag': 'access_error'; + access_error: SharedFolderAccessError; + } + + /** + * TransferFolderArg.to_dropbox_id is invalid. + */ + export interface TransferFolderErrorInvalidDropboxId { + '.tag': 'invalid_dropbox_id'; + } + + /** + * The new designated owner is not currently a member of the shared folder. + */ + export interface TransferFolderErrorNewOwnerNotAMember { + '.tag': 'new_owner_not_a_member'; + } + + /** + * The new designated owner has not added the folder to their Dropbox. + */ + export interface TransferFolderErrorNewOwnerUnmounted { + '.tag': 'new_owner_unmounted'; + } + + /** + * The new designated owner's email address is not verified. This + * functionality is only available on accounts with a verified email + * address. Users can verify their email address [here]{@link + * https://www.dropbox.com/help/317}. + */ + export interface TransferFolderErrorNewOwnerEmailUnverified { + '.tag': 'new_owner_email_unverified'; + } + + /** + * This action cannot be performed on a team shared folder. + */ + export interface TransferFolderErrorTeamFolder { + '.tag': 'team_folder'; + } + + /** + * The current user does not have permission to perform this action. + */ + export interface TransferFolderErrorNoPermission { + '.tag': 'no_permission'; + } + + export interface TransferFolderErrorOther { + '.tag': 'other'; + } + + export type TransferFolderError = TransferFolderErrorAccessError | TransferFolderErrorInvalidDropboxId | TransferFolderErrorNewOwnerNotAMember | TransferFolderErrorNewOwnerUnmounted | TransferFolderErrorNewOwnerEmailUnverified | TransferFolderErrorTeamFolder | TransferFolderErrorNoPermission | TransferFolderErrorOther; + + export interface UnmountFolderArg { + /** + * The ID for the shared folder. + */ + shared_folder_id: common.SharedFolderId; + } + + export interface UnmountFolderErrorAccessError { + '.tag': 'access_error'; + access_error: SharedFolderAccessError; + } + + /** + * The current user does not have permission to perform this action. + */ + export interface UnmountFolderErrorNoPermission { + '.tag': 'no_permission'; + } + + /** + * The shared folder can't be unmounted. One example where this can occur is + * when the shared folder's parent folder is also a shared folder that + * resides in the current user's Dropbox. + */ + export interface UnmountFolderErrorNotUnmountable { + '.tag': 'not_unmountable'; + } + + export interface UnmountFolderErrorOther { + '.tag': 'other'; + } + + export type UnmountFolderError = UnmountFolderErrorAccessError | UnmountFolderErrorNoPermission | UnmountFolderErrorNotUnmountable | UnmountFolderErrorOther; + + /** + * Arguments for unshareFile(). + */ + export interface UnshareFileArg { + /** + * The file to unshare. + */ + file: PathOrId; + } + + export interface UnshareFileErrorUserError { + '.tag': 'user_error'; + user_error: SharingUserError; + } + + export interface UnshareFileErrorAccessError { + '.tag': 'access_error'; + access_error: SharingFileAccessError; + } + + export interface UnshareFileErrorOther { + '.tag': 'other'; + } + + /** + * Error result for unshareFile(). + */ + export type UnshareFileError = UnshareFileErrorUserError | UnshareFileErrorAccessError | UnshareFileErrorOther; + + export interface UnshareFolderArg { + /** + * The ID for the shared folder. + */ + shared_folder_id: common.SharedFolderId; + /** + * Defaults to False. + */ + leave_a_copy?: boolean; + } + + export interface UnshareFolderErrorAccessError { + '.tag': 'access_error'; + access_error: SharedFolderAccessError; + } + + /** + * This action cannot be performed on a team shared folder. + */ + export interface UnshareFolderErrorTeamFolder { + '.tag': 'team_folder'; + } + + /** + * The current user does not have permission to perform this action. + */ + export interface UnshareFolderErrorNoPermission { + '.tag': 'no_permission'; + } + + /** + * This shared folder has too many files to be unshared. + */ + export interface UnshareFolderErrorTooManyFiles { + '.tag': 'too_many_files'; + } + + export interface UnshareFolderErrorOther { + '.tag': 'other'; + } + + export type UnshareFolderError = UnshareFolderErrorAccessError | UnshareFolderErrorTeamFolder | UnshareFolderErrorNoPermission | UnshareFolderErrorTooManyFiles | UnshareFolderErrorOther; + + /** + * Arguments for updateFileMember(). + */ + export interface UpdateFileMemberArgs { + /** + * File for which we are changing a member's access. + */ + file: PathOrId; + /** + * The member whose access we are changing. + */ + member: MemberSelector; + /** + * The new access level for the member. + */ + access_level: AccessLevel; + } + + export interface UpdateFolderMemberArg { + /** + * The ID for the shared folder. + */ + shared_folder_id: common.SharedFolderId; + /** + * The member of the shared folder to update. Only the + * MemberSelector.dropbox_id may be set at this time. + */ + member: MemberSelector; + /** + * The new access level for member. AccessLevel.owner is disallowed. + */ + access_level: AccessLevel; + } + + export interface UpdateFolderMemberErrorAccessError { + '.tag': 'access_error'; + access_error: SharedFolderAccessError; + } + + export interface UpdateFolderMemberErrorMemberError { + '.tag': 'member_error'; + member_error: SharedFolderMemberError; + } + + /** + * If updating the access type required the member to be added to the shared + * folder and there was an error when adding the member. + */ + export interface UpdateFolderMemberErrorNoExplicitAccess { + '.tag': 'no_explicit_access'; + no_explicit_access: AddFolderMemberError; + } + + /** + * The current user's account doesn't support this action. An example of + * this is when downgrading a member from editor to viewer. This action can + * only be performed by users that have upgraded to a Pro or Business plan. + */ + export interface UpdateFolderMemberErrorInsufficientPlan { + '.tag': 'insufficient_plan'; + } + + /** + * The current user does not have permission to perform this action. + */ + export interface UpdateFolderMemberErrorNoPermission { + '.tag': 'no_permission'; + } + + export interface UpdateFolderMemberErrorOther { + '.tag': 'other'; + } + + export type UpdateFolderMemberError = UpdateFolderMemberErrorAccessError | UpdateFolderMemberErrorMemberError | UpdateFolderMemberErrorNoExplicitAccess | UpdateFolderMemberErrorInsufficientPlan | UpdateFolderMemberErrorNoPermission | UpdateFolderMemberErrorOther; + + /** + * If any of the policies are unset, then they retain their current setting. + */ + export interface UpdateFolderPolicyArg { + /** + * The ID for the shared folder. + */ + shared_folder_id: common.SharedFolderId; + /** + * Who can be a member of this shared folder. Only applicable if the + * current user is on a team. + */ + member_policy?: MemberPolicy; + /** + * Who can add and remove members of this shared folder. + */ + acl_update_policy?: AclUpdatePolicy; + /** + * Who can enable/disable viewer info for this shared folder. + */ + viewer_info_policy?: ViewerInfoPolicy; + /** + * The policy to apply to shared links created for content inside this + * shared folder. The current user must be on a team to set this policy to + * SharedLinkPolicy.members. + */ + shared_link_policy?: SharedLinkPolicy; + /** + * Settings on the link for this folder. + */ + link_settings?: LinkSettings; + /** + * A list of `FolderAction`s corresponding to `FolderPermission`s that + * should appear in the response's SharedFolderMetadata.permissions field + * describing the actions the authenticated user can perform on the + * folder. + */ + actions?: Array; + } + + export interface UpdateFolderPolicyErrorAccessError { + '.tag': 'access_error'; + access_error: SharedFolderAccessError; + } + + /** + * UpdateFolderPolicyArg.member_policy was set even though user is not on a + * team. + */ + export interface UpdateFolderPolicyErrorNotOnTeam { + '.tag': 'not_on_team'; + } + + /** + * Team policy is more restrictive than ShareFolderArg.member_policy. + */ + export interface UpdateFolderPolicyErrorTeamPolicyDisallowsMemberPolicy { + '.tag': 'team_policy_disallows_member_policy'; + } + + /** + * The current account is not allowed to select the specified + * ShareFolderArg.shared_link_policy. + */ + export interface UpdateFolderPolicyErrorDisallowedSharedLinkPolicy { + '.tag': 'disallowed_shared_link_policy'; + } + + /** + * The current user does not have permission to perform this action. + */ + export interface UpdateFolderPolicyErrorNoPermission { + '.tag': 'no_permission'; + } + + /** + * This action cannot be performed on a team shared folder. + */ + export interface UpdateFolderPolicyErrorTeamFolder { + '.tag': 'team_folder'; + } + + export interface UpdateFolderPolicyErrorOther { + '.tag': 'other'; + } + + export type UpdateFolderPolicyError = UpdateFolderPolicyErrorAccessError | UpdateFolderPolicyErrorNotOnTeam | UpdateFolderPolicyErrorTeamPolicyDisallowsMemberPolicy | UpdateFolderPolicyErrorDisallowedSharedLinkPolicy | UpdateFolderPolicyErrorNoPermission | UpdateFolderPolicyErrorTeamFolder | UpdateFolderPolicyErrorOther; + + /** + * The information about a user member of the shared content with an + * appended last seen timestamp. + */ + export interface UserFileMembershipInfo extends UserMembershipInfo { + /** + * The UTC timestamp of when the user has last seen the content. Only + * populated if the user has seen the content and the caller has a plan + * that includes viewer history. + */ + time_last_seen?: common.DropboxTimestamp; + /** + * The platform on which the user has last seen the content, or unknown. + */ + platform_type?: seen_state.PlatformType; + } + + /** + * Basic information about a user. Use usersAccount() and + * usersAccountBatch() to obtain more detailed information. + */ + export interface UserInfo { + /** + * The account ID of the user. + */ + account_id: users_common.AccountId; + /** + * Email address of user. + */ + email: string; + /** + * The display name of the user. + */ + display_name: string; + /** + * If the user is in the same team as current user. + */ + same_team: boolean; + /** + * The team member ID of the shared folder member. Only present if + * same_team is true. + */ + team_member_id?: string; + } + + /** + * The information about a user member of the shared content. + */ + export interface UserMembershipInfo extends MembershipInfo { + /** + * The account information for the membership user. + */ + user: UserInfo; + } + + /** + * Viewer information is available on this file. + */ + export interface ViewerInfoPolicyEnabled { + '.tag': 'enabled'; + } + + /** + * Viewer information is disabled on this file. + */ + export interface ViewerInfoPolicyDisabled { + '.tag': 'disabled'; + } + + export interface ViewerInfoPolicyOther { + '.tag': 'other'; + } + + export type ViewerInfoPolicy = ViewerInfoPolicyEnabled | ViewerInfoPolicyDisabled | ViewerInfoPolicyOther; + + /** + * Anyone who has received the link can access it. No login required. + */ + export interface VisibilityPublic { + '.tag': 'public'; + } + + /** + * Only members of the same team can access the link. Login is required. + */ + export interface VisibilityTeamOnly { + '.tag': 'team_only'; + } + + /** + * A link-specific password is required to access the link. Login is not + * required. + */ + export interface VisibilityPassword { + '.tag': 'password'; + } + + /** + * Only members of the same team who have the link-specific password can + * access the link. + */ + export interface VisibilityTeamAndPassword { + '.tag': 'team_and_password'; + } + + /** + * Only members of the shared folder containing the linked file can access + * the link. Login is required. + */ + export interface VisibilitySharedFolderOnly { + '.tag': 'shared_folder_only'; + } + + export interface VisibilityOther { + '.tag': 'other'; + } + + /** + * Who can access a shared link. The most open visibility is public. The + * default depends on many aspects, such as team and user preferences and + * shared folder settings. + */ + export type Visibility = VisibilityPublic | VisibilityTeamOnly | VisibilityPassword | VisibilityTeamAndPassword | VisibilitySharedFolderOnly | VisibilityOther; + + export interface VisibilityPolicy { + /** + * This is the value to submit when saving the visibility setting. + */ + policy: RequestedVisibility; + /** + * This is what the effective policy would be, if you selected this + * option. The resolved policy is obtained after considering external + * effects such as shared folder settings and team policy. This value is + * guaranteed to be provided. + */ + resolved_policy: AlphaResolvedVisibility; + /** + * Whether the user is permitted to set the visibility to this policy. + */ + allowed: boolean; + /** + * If allowed is false, this will provide the reason that the user is not + * permitted to set the visibility to this policy. + */ + disallowed_reason?: VisibilityPolicyDisallowedReason; + } + + /** + * The user needs to delete and recreate the link to change the visibility + * policy. + */ + export interface VisibilityPolicyDisallowedReasonDeleteAndRecreate { + '.tag': 'delete_and_recreate'; + } + + /** + * The parent shared folder restricts sharing of links outside the shared + * folder. To change the visibility policy, remove the restriction from the + * parent shared folder. + */ + export interface VisibilityPolicyDisallowedReasonRestrictedBySharedFolder { + '.tag': 'restricted_by_shared_folder'; + } + + /** + * The team policy prevents links being shared outside the team. + */ + export interface VisibilityPolicyDisallowedReasonRestrictedByTeam { + '.tag': 'restricted_by_team'; + } + + /** + * The user needs to be on a team to set this policy. + */ + export interface VisibilityPolicyDisallowedReasonUserNotOnTeam { + '.tag': 'user_not_on_team'; + } + + /** + * The user is a basic user or is on a limited team. + */ + export interface VisibilityPolicyDisallowedReasonUserAccountType { + '.tag': 'user_account_type'; + } + + /** + * The user does not have permission. + */ + export interface VisibilityPolicyDisallowedReasonPermissionDenied { + '.tag': 'permission_denied'; + } + + export interface VisibilityPolicyDisallowedReasonOther { + '.tag': 'other'; + } + + export type VisibilityPolicyDisallowedReason = VisibilityPolicyDisallowedReasonDeleteAndRecreate | VisibilityPolicyDisallowedReasonRestrictedBySharedFolder | VisibilityPolicyDisallowedReasonRestrictedByTeam | VisibilityPolicyDisallowedReasonUserNotOnTeam | VisibilityPolicyDisallowedReasonUserAccountType | VisibilityPolicyDisallowedReasonPermissionDenied | VisibilityPolicyDisallowedReasonOther; + + export type DropboxId = string; + + export type GetSharedLinkFileArg = GetSharedLinkMetadataArg; + + export type Id = files.Id; + + export type Path = files.Path; + + export type PathOrId = string; + + export type ReadPath = files.ReadPath; + + export type Rev = files.Rev; + + export type TeamInfo = users.Team; + + } + + export namespace team { + /** + * Information on active web sessions. + */ + export interface ActiveWebSession extends DeviceSession { + /** + * Information on the hosting device. + */ + user_agent: string; + /** + * Information on the hosting operating system. + */ + os: string; + /** + * Information on the browser used for this web session. + */ + browser: string; + /** + * The time this session expires. + */ + expires?: common.DropboxTimestamp; + } + + /** + * Describes a secondary email that was successfully added to a user. + */ + export interface AddSecondaryEmailResultSuccess { + '.tag': 'success'; + success: SecondaryEmail; + } + + /** + * Secondary email is not available to be claimed by the user. + */ + export interface AddSecondaryEmailResultUnavailable { + '.tag': 'unavailable'; + unavailable: common.EmailAddress; + } + + /** + * Secondary email is already a pending email for the user. + */ + export interface AddSecondaryEmailResultAlreadyPending { + '.tag': 'already_pending'; + already_pending: common.EmailAddress; + } + + /** + * Secondary email is already a verified email for the user. + */ + export interface AddSecondaryEmailResultAlreadyOwnedByUser { + '.tag': 'already_owned_by_user'; + already_owned_by_user: common.EmailAddress; + } + + /** + * User already has the maximum number of secondary emails allowed. + */ + export interface AddSecondaryEmailResultReachedLimit { + '.tag': 'reached_limit'; + reached_limit: common.EmailAddress; + } + + /** + * A transient error occurred. Please try again later. + */ + export interface AddSecondaryEmailResultTransientError { + '.tag': 'transient_error'; + transient_error: common.EmailAddress; + } + + /** + * An error occurred due to conflicting updates. Please try again later. + */ + export interface AddSecondaryEmailResultTooManyUpdates { + '.tag': 'too_many_updates'; + too_many_updates: common.EmailAddress; + } + + /** + * An unknown error occurred. + */ + export interface AddSecondaryEmailResultUnknownError { + '.tag': 'unknown_error'; + unknown_error: common.EmailAddress; + } + + /** + * Too many emails are being sent to this email address. Please try again + * later. + */ + export interface AddSecondaryEmailResultRateLimited { + '.tag': 'rate_limited'; + rate_limited: common.EmailAddress; + } + + export interface AddSecondaryEmailResultOther { + '.tag': 'other'; + } + + /** + * Result of trying to add a secondary email to a user. 'success' is the + * only value indicating that a secondary email was successfully added to a + * user. The other values explain the type of error that occurred, and + * include the email for which the error occurred. + */ + export type AddSecondaryEmailResult = AddSecondaryEmailResultSuccess | AddSecondaryEmailResultUnavailable | AddSecondaryEmailResultAlreadyPending | AddSecondaryEmailResultAlreadyOwnedByUser | AddSecondaryEmailResultReachedLimit | AddSecondaryEmailResultTransientError | AddSecondaryEmailResultTooManyUpdates | AddSecondaryEmailResultUnknownError | AddSecondaryEmailResultRateLimited | AddSecondaryEmailResultOther; + + export interface AddSecondaryEmailsArg { + /** + * List of users and secondary emails to add. + */ + new_secondary_emails: Array; + } + + /** + * Secondary emails are disabled for the team. + */ + export interface AddSecondaryEmailsErrorSecondaryEmailsDisabled { + '.tag': 'secondary_emails_disabled'; + } + + /** + * A maximum of 20 secondary emails can be added in a single call. + */ + export interface AddSecondaryEmailsErrorTooManyEmails { + '.tag': 'too_many_emails'; + } + + export interface AddSecondaryEmailsErrorOther { + '.tag': 'other'; + } + + /** + * Error returned when adding secondary emails fails. + */ + export type AddSecondaryEmailsError = AddSecondaryEmailsErrorSecondaryEmailsDisabled | AddSecondaryEmailsErrorTooManyEmails | AddSecondaryEmailsErrorOther; + + export interface AddSecondaryEmailsResult { + /** + * List of users and secondary email results. + */ + results: Array; + } + + /** + * User is an administrator of the team - has all permissions. + */ + export interface AdminTierTeamAdmin { + '.tag': 'team_admin'; + } + + /** + * User can do most user provisioning, de-provisioning and management. + */ + export interface AdminTierUserManagementAdmin { + '.tag': 'user_management_admin'; + } + + /** + * User can do a limited set of common support tasks for existing users. + * Note: Dropbox is adding new types of admin roles; these may display as + * support_admin. + */ + export interface AdminTierSupportAdmin { + '.tag': 'support_admin'; + } + + /** + * User is not an admin of the team. + */ + export interface AdminTierMemberOnly { + '.tag': 'member_only'; + } + + /** + * Describes which team-related admin permissions a user has. + */ + export type AdminTier = AdminTierTeamAdmin | AdminTierUserManagementAdmin | AdminTierSupportAdmin | AdminTierMemberOnly; + + /** + * Information on linked third party applications. + */ + export interface ApiApp { + /** + * The application unique id. + */ + app_id: string; + /** + * The application name. + */ + app_name: string; + /** + * The application publisher name. + */ + publisher?: string; + /** + * The publisher's URL. + */ + publisher_url?: string; + /** + * The time this application was linked. + */ + linked?: common.DropboxTimestamp; + /** + * Whether the linked application uses a dedicated folder. + */ + is_app_folder: boolean; + } + + /** + * Base report structure. + */ + export interface BaseDfbReport { + /** + * First date present in the results as 'YYYY-MM-DD' or None. + */ + start_date: string; + } + + export interface BaseTeamFolderErrorAccessError { + '.tag': 'access_error'; + access_error: TeamFolderAccessError; + } + + export interface BaseTeamFolderErrorStatusError { + '.tag': 'status_error'; + status_error: TeamFolderInvalidStatusError; + } + + export interface BaseTeamFolderErrorTeamSharedDropboxError { + '.tag': 'team_shared_dropbox_error'; + team_shared_dropbox_error: TeamFolderTeamSharedDropboxError; + } + + export interface BaseTeamFolderErrorOther { + '.tag': 'other'; + } + + /** + * Base error that all errors for existing team folders should extend. + */ + export type BaseTeamFolderError = BaseTeamFolderErrorAccessError | BaseTeamFolderErrorStatusError | BaseTeamFolderErrorTeamSharedDropboxError | BaseTeamFolderErrorOther; + + /** + * A maximum of 1000 users can be set for a single call. + */ + export interface CustomQuotaErrorTooManyUsers { + '.tag': 'too_many_users'; + } + + export interface CustomQuotaErrorOther { + '.tag': 'other'; + } + + /** + * Error returned when getting member custom quota. + */ + export type CustomQuotaError = CustomQuotaErrorTooManyUsers | CustomQuotaErrorOther; + + /** + * User's custom quota. + */ + export interface CustomQuotaResultSuccess extends UserCustomQuotaResult { + '.tag': 'success'; + } + + /** + * Invalid user (not in team). + */ + export interface CustomQuotaResultInvalidUser { + '.tag': 'invalid_user'; + invalid_user: UserSelectorArg; + } + + export interface CustomQuotaResultOther { + '.tag': 'other'; + } + + /** + * User custom quota. + */ + export type CustomQuotaResult = CustomQuotaResultSuccess | CustomQuotaResultInvalidUser | CustomQuotaResultOther; + + export interface CustomQuotaUsersArg { + /** + * List of users. + */ + users: Array; + } + + /** + * Input arguments that can be provided for most reports. + */ + export interface DateRange { + /** + * Optional starting date (inclusive). If start_date is None or too long + * ago, this field will be set to 6 months ago. + */ + start_date?: common.Date; + /** + * Optional ending date (exclusive). + */ + end_date?: common.Date; + } + + export interface DateRangeErrorOther { + '.tag': 'other'; + } + + /** + * Errors that can originate from problems in input arguments to reports. + */ + export type DateRangeError = DateRangeErrorOther; + + /** + * The secondary email was successfully deleted. + */ + export interface DeleteSecondaryEmailResultSuccess { + '.tag': 'success'; + success: common.EmailAddress; + } + + /** + * The email address was not found for the user. + */ + export interface DeleteSecondaryEmailResultNotFound { + '.tag': 'not_found'; + not_found: common.EmailAddress; + } + + /** + * The email address is the primary email address of the user, and cannot be + * removed. + */ + export interface DeleteSecondaryEmailResultCannotRemovePrimary { + '.tag': 'cannot_remove_primary'; + cannot_remove_primary: common.EmailAddress; + } + + export interface DeleteSecondaryEmailResultOther { + '.tag': 'other'; + } + + /** + * Result of trying to delete a secondary email address. 'success' is the + * only value indicating that a secondary email was successfully deleted. + * The other values explain the type of error that occurred, and include the + * email for which the error occurred. + */ + export type DeleteSecondaryEmailResult = DeleteSecondaryEmailResultSuccess | DeleteSecondaryEmailResultNotFound | DeleteSecondaryEmailResultCannotRemovePrimary | DeleteSecondaryEmailResultOther; + + export interface DeleteSecondaryEmailsArg { + /** + * List of users and their secondary emails to delete. + */ + emails_to_delete: Array; + } + + export interface DeleteSecondaryEmailsResult { + results: Array; + } + + /** + * Information about linked Dropbox desktop client sessions. + */ + export interface DesktopClientSession extends DeviceSession { + /** + * Name of the hosting desktop. + */ + host_name: string; + /** + * The Dropbox desktop client type. + */ + client_type: DesktopPlatform; + /** + * The Dropbox client version. + */ + client_version: string; + /** + * Information on the hosting platform. + */ + platform: string; + /** + * Whether it's possible to delete all of the account files upon + * unlinking. + */ + is_delete_on_unlink_supported: boolean; + } + + /** + * Official Windows Dropbox desktop client. + */ + export interface DesktopPlatformWindows { + '.tag': 'windows'; + } + + /** + * Official Mac Dropbox desktop client. + */ + export interface DesktopPlatformMac { + '.tag': 'mac'; + } + + /** + * Official Linux Dropbox desktop client. + */ + export interface DesktopPlatformLinux { + '.tag': 'linux'; + } + + export interface DesktopPlatformOther { + '.tag': 'other'; + } + + export type DesktopPlatform = DesktopPlatformWindows | DesktopPlatformMac | DesktopPlatformLinux | DesktopPlatformOther; + + export interface DeviceSession { + /** + * The session id. + */ + session_id: string; + /** + * The IP address of the last activity from this session. + */ + ip_address?: string; + /** + * The country from which the last activity from this session was made. + */ + country?: string; + /** + * The time this session was created. + */ + created?: common.DropboxTimestamp; + /** + * The time of the last activity from this session. + */ + updated?: common.DropboxTimestamp; + } + + export interface DeviceSessionArg { + /** + * The session id. + */ + session_id: string; + /** + * The unique id of the member owning the device. + */ + team_member_id: string; + } + + /** + * Each of the items is an array of values, one value per day. The value is + * the number of devices active within a time window, ending with that day. + * If there is no data for a day, then the value will be None. + */ + export interface DevicesActive { + /** + * Array of number of linked windows (desktop) clients with activity. + */ + windows: NumberPerDay; + /** + * Array of number of linked mac (desktop) clients with activity. + */ + macos: NumberPerDay; + /** + * Array of number of linked linus (desktop) clients with activity. + */ + linux: NumberPerDay; + /** + * Array of number of linked ios devices with activity. + */ + ios: NumberPerDay; + /** + * Array of number of linked android devices with activity. + */ + android: NumberPerDay; + /** + * Array of number of other linked devices (blackberry, windows phone, + * etc) with activity. + */ + other: NumberPerDay; + /** + * Array of total number of linked clients with activity. + */ + total: NumberPerDay; + } + + /** + * Excluded users list argument. + */ + export interface ExcludedUsersListArg { + /** + * Defaults to 1000. + */ + limit?: number; + } + + /** + * Excluded users list continue argument. + */ + export interface ExcludedUsersListContinueArg { + /** + * Indicates from what point to get the next set of users. + */ + cursor: string; + } + + /** + * The cursor is invalid. + */ + export interface ExcludedUsersListContinueErrorInvalidCursor { + '.tag': 'invalid_cursor'; + } + + export interface ExcludedUsersListContinueErrorOther { + '.tag': 'other'; + } + + /** + * Excluded users list continue error. + */ + export type ExcludedUsersListContinueError = ExcludedUsersListContinueErrorInvalidCursor | ExcludedUsersListContinueErrorOther; + + /** + * An error occurred. + */ + export interface ExcludedUsersListErrorListError { + '.tag': 'list_error'; + } + + export interface ExcludedUsersListErrorOther { + '.tag': 'other'; + } + + /** + * Excluded users list error. + */ + export type ExcludedUsersListError = ExcludedUsersListErrorListError | ExcludedUsersListErrorOther; + + /** + * Excluded users list result. + */ + export interface ExcludedUsersListResult { + users: Array; + /** + * Pass the cursor into memberSpaceLimitsExcludedUsersListContinue() to + * obtain additional excluded users. + */ + cursor?: string; + /** + * Is true if there are additional excluded users that have not been + * returned yet. An additional call to + * memberSpaceLimitsExcludedUsersListContinue() can retrieve them. + */ + has_more: boolean; + } + + /** + * Argument of excluded users update operation. Should include a list of + * users to add/remove (according to endpoint), Maximum size of the list is + * 1000 users. + */ + export interface ExcludedUsersUpdateArg { + /** + * List of users to be added/removed. + */ + users?: Array; + } + + /** + * At least one of the users is not part of your team. + */ + export interface ExcludedUsersUpdateErrorUsersNotInTeam { + '.tag': 'users_not_in_team'; + } + + /** + * A maximum of 1000 users for each of addition/removal can be supplied. + */ + export interface ExcludedUsersUpdateErrorTooManyUsers { + '.tag': 'too_many_users'; + } + + export interface ExcludedUsersUpdateErrorOther { + '.tag': 'other'; + } + + /** + * Excluded users update error. + */ + export type ExcludedUsersUpdateError = ExcludedUsersUpdateErrorUsersNotInTeam | ExcludedUsersUpdateErrorTooManyUsers | ExcludedUsersUpdateErrorOther; + + /** + * Excluded users update result. + */ + export interface ExcludedUsersUpdateResult { + /** + * Update status. + */ + status: ExcludedUsersUpdateStatus; + } + + /** + * Update successful. + */ + export interface ExcludedUsersUpdateStatusSuccess { + '.tag': 'success'; + } + + export interface ExcludedUsersUpdateStatusOther { + '.tag': 'other'; + } + + /** + * Excluded users update operation status. + */ + export type ExcludedUsersUpdateStatus = ExcludedUsersUpdateStatusSuccess | ExcludedUsersUpdateStatusOther; + + /** + * The number of upload API calls allowed per month. + */ + export interface FeatureUploadApiRateLimit { + '.tag': 'upload_api_rate_limit'; + } + + /** + * Does this team have a shared team root. + */ + export interface FeatureHasTeamSharedDropbox { + '.tag': 'has_team_shared_dropbox'; + } + + /** + * Does this team have file events. + */ + export interface FeatureHasTeamFileEvents { + '.tag': 'has_team_file_events'; + } + + /** + * Does this team have team selective sync enabled. + */ + export interface FeatureHasTeamSelectiveSync { + '.tag': 'has_team_selective_sync'; + } + + export interface FeatureOther { + '.tag': 'other'; + } + + /** + * A set of features that a Dropbox Business account may support. + */ + export type Feature = FeatureUploadApiRateLimit | FeatureHasTeamSharedDropbox | FeatureHasTeamFileEvents | FeatureHasTeamSelectiveSync | FeatureOther; + + export interface FeatureValueUploadApiRateLimit { + '.tag': 'upload_api_rate_limit'; + upload_api_rate_limit: UploadApiRateLimitValue; + } + + export interface FeatureValueHasTeamSharedDropbox { + '.tag': 'has_team_shared_dropbox'; + has_team_shared_dropbox: HasTeamSharedDropboxValue; + } + + export interface FeatureValueHasTeamFileEvents { + '.tag': 'has_team_file_events'; + has_team_file_events: HasTeamFileEventsValue; + } + + export interface FeatureValueHasTeamSelectiveSync { + '.tag': 'has_team_selective_sync'; + has_team_selective_sync: HasTeamSelectiveSyncValue; + } + + export interface FeatureValueOther { + '.tag': 'other'; + } + + /** + * The values correspond to entries in team.Feature. You may get different + * value according to your Dropbox Business plan. + */ + export type FeatureValue = FeatureValueUploadApiRateLimit | FeatureValueHasTeamSharedDropbox | FeatureValueHasTeamFileEvents | FeatureValueHasTeamSelectiveSync | FeatureValueOther; + + export interface FeaturesGetValuesBatchArg { + /** + * A list of features in team.Feature. If the list is empty, this route + * will return team.FeaturesGetValuesBatchError. + */ + features: Array; + } + + /** + * At least one team.Feature must be included in the + * team.FeaturesGetValuesBatchArg.features list. + */ + export interface FeaturesGetValuesBatchErrorEmptyFeaturesList { + '.tag': 'empty_features_list'; + } + + export interface FeaturesGetValuesBatchErrorOther { + '.tag': 'other'; + } + + export type FeaturesGetValuesBatchError = FeaturesGetValuesBatchErrorEmptyFeaturesList | FeaturesGetValuesBatchErrorOther; + + export interface FeaturesGetValuesBatchResult { + values: Array; + } + + /** + * Activity Report Result. Each of the items in the storage report is an + * array of values, one value per day. If there is no data for a day, then + * the value will be None. + */ + export interface GetActivityReport extends BaseDfbReport { + /** + * Array of total number of adds by team members. + */ + adds: NumberPerDay; + /** + * Array of number of edits by team members. If the same user edits the + * same file multiple times this is counted as a single edit. + */ + edits: NumberPerDay; + /** + * Array of total number of deletes by team members. + */ + deletes: NumberPerDay; + /** + * Array of the number of users who have been active in the last 28 days. + */ + active_users_28_day: NumberPerDay; + /** + * Array of the number of users who have been active in the last week. + */ + active_users_7_day: NumberPerDay; + /** + * Array of the number of users who have been active in the last day. + */ + active_users_1_day: NumberPerDay; + /** + * Array of the number of shared folders with some activity in the last 28 + * days. + */ + active_shared_folders_28_day: NumberPerDay; + /** + * Array of the number of shared folders with some activity in the last + * week. + */ + active_shared_folders_7_day: NumberPerDay; + /** + * Array of the number of shared folders with some activity in the last + * day. + */ + active_shared_folders_1_day: NumberPerDay; + /** + * Array of the number of shared links created. + */ + shared_links_created: NumberPerDay; + /** + * Array of the number of views by team users to shared links created by + * the team. + */ + shared_links_viewed_by_team: NumberPerDay; + /** + * Array of the number of views by users outside of the team to shared + * links created by the team. + */ + shared_links_viewed_by_outside_user: NumberPerDay; + /** + * Array of the number of views by non-logged-in users to shared links + * created by the team. + */ + shared_links_viewed_by_not_logged_in: NumberPerDay; + /** + * Array of the total number of views to shared links created by the team. + */ + shared_links_viewed_total: NumberPerDay; + } + + /** + * Devices Report Result. Contains subsections for different time ranges of + * activity. Each of the items in each subsection of the storage report is + * an array of values, one value per day. If there is no data for a day, + * then the value will be None. + */ + export interface GetDevicesReport extends BaseDfbReport { + /** + * Report of the number of devices active in the last day. + */ + active_1_day: DevicesActive; + /** + * Report of the number of devices active in the last 7 days. + */ + active_7_day: DevicesActive; + /** + * Report of the number of devices active in the last 28 days. + */ + active_28_day: DevicesActive; + } + + /** + * Membership Report Result. Each of the items in the storage report is an + * array of values, one value per day. If there is no data for a day, then + * the value will be None. + */ + export interface GetMembershipReport extends BaseDfbReport { + /** + * Team size, for each day. + */ + team_size: NumberPerDay; + /** + * The number of pending invites to the team, for each day. + */ + pending_invites: NumberPerDay; + /** + * The number of members that joined the team, for each day. + */ + members_joined: NumberPerDay; + /** + * The number of suspended team members, for each day. + */ + suspended_members: NumberPerDay; + /** + * The total number of licenses the team has, for each day. + */ + licenses: NumberPerDay; + } + + /** + * Storage Report Result. Each of the items in the storage report is an + * array of values, one value per day. If there is no data for a day, then + * the value will be None. + */ + export interface GetStorageReport extends BaseDfbReport { + /** + * Sum of the shared, unshared, and datastore usages, for each day. + */ + total_usage: NumberPerDay; + /** + * Array of the combined size (bytes) of team members' shared folders, for + * each day. + */ + shared_usage: NumberPerDay; + /** + * Array of the combined size (bytes) of team members' root namespaces, + * for each day. + */ + unshared_usage: NumberPerDay; + /** + * Array of the number of shared folders owned by team members, for each + * day. + */ + shared_folders: NumberPerDay; + /** + * Array of storage summaries of team members' account sizes. Each storage + * summary is an array of key, value pairs, where each pair describes a + * storage bucket. The key indicates the upper bound of the bucket and the + * value is the number of users in that bucket. There is one such summary + * per day. If there is no data for a day, the storage summary will be + * empty. + */ + member_storage_map: Array>; + } + + /** + * User is a member of the group, but has no special permissions. + */ + export interface GroupAccessTypeMember { + '.tag': 'member'; + } + + /** + * User can rename the group, and add/remove members. + */ + export interface GroupAccessTypeOwner { + '.tag': 'owner'; + } + + /** + * Role of a user in group. + */ + export type GroupAccessType = GroupAccessTypeMember | GroupAccessTypeOwner; + + export interface GroupCreateArg { + /** + * Group name. + */ + group_name: string; + /** + * Defaults to False. + */ + add_creator_as_owner?: boolean; + /** + * The creator of a team can associate an arbitrary external ID to the + * group. + */ + group_external_id?: team_common.GroupExternalId; + /** + * Whether the team can be managed by selected users, or only by team + * admins. + */ + group_management_type?: team_common.GroupManagementType; + } + + /** + * The requested group name is already being used by another group. + */ + export interface GroupCreateErrorGroupNameAlreadyUsed { + '.tag': 'group_name_already_used'; + } + + /** + * Group name is empty or has invalid characters. + */ + export interface GroupCreateErrorGroupNameInvalid { + '.tag': 'group_name_invalid'; + } + + /** + * The requested external ID is already being used by another group. + */ + export interface GroupCreateErrorExternalIdAlreadyInUse { + '.tag': 'external_id_already_in_use'; + } + + /** + * System-managed group cannot be manually created. + */ + export interface GroupCreateErrorSystemManagedGroupDisallowed { + '.tag': 'system_managed_group_disallowed'; + } + + export interface GroupCreateErrorOther { + '.tag': 'other'; + } + + export type GroupCreateError = GroupCreateErrorGroupNameAlreadyUsed | GroupCreateErrorGroupNameInvalid | GroupCreateErrorExternalIdAlreadyInUse | GroupCreateErrorSystemManagedGroupDisallowed | GroupCreateErrorOther; + + /** + * This group has already been deleted. + */ + export interface GroupDeleteErrorGroupAlreadyDeleted { + '.tag': 'group_already_deleted'; + } + + export type GroupDeleteError = GroupSelectorWithTeamGroupError | GroupDeleteErrorGroupAlreadyDeleted; + + /** + * Full description of a group. + */ + export interface GroupFullInfo extends team_common.GroupSummary { + /** + * List of group members. + */ + members?: Array; + /** + * The group creation time as a UTC timestamp in milliseconds since the + * Unix epoch. + */ + created: number; + } + + /** + * Profile of group member, and role in group. + */ + export interface GroupMemberInfo { + /** + * Profile of group member. + */ + profile: MemberProfile; + /** + * The role that the user has in the group. + */ + access_type: GroupAccessType; + } + + /** + * Argument for selecting a group and a single user. + */ + export interface GroupMemberSelector { + /** + * Specify a group. + */ + group: GroupSelector; + /** + * Identity of a user that is a member of group. + */ + user: UserSelectorArg; + } + + /** + * The specified user is not a member of this group. + */ + export interface GroupMemberSelectorErrorMemberNotInGroup { + '.tag': 'member_not_in_group'; + } + + /** + * Error that can be raised when team.GroupMemberSelector is used, and the + * user is required to be a member of the specified group. + */ + export type GroupMemberSelectorError = GroupSelectorWithTeamGroupError | GroupMemberSelectorErrorMemberNotInGroup; + + /** + * A company managed group cannot be managed by a user. + */ + export interface GroupMemberSetAccessTypeErrorUserCannotBeManagerOfCompanyManagedGroup { + '.tag': 'user_cannot_be_manager_of_company_managed_group'; + } + + export type GroupMemberSetAccessTypeError = GroupMemberSelectorError | GroupMemberSetAccessTypeErrorUserCannotBeManagerOfCompanyManagedGroup; + + export interface GroupMembersAddArg extends IncludeMembersArg { + /** + * Group to which users will be added. + */ + group: GroupSelector; + /** + * List of users to be added to the group. + */ + members: Array; + } + + /** + * You cannot add duplicate users. One or more of the members you are trying + * to add is already a member of the group. + */ + export interface GroupMembersAddErrorDuplicateUser { + '.tag': 'duplicate_user'; + } + + /** + * Group is not in this team. You cannot add members to a group that is + * outside of your team. + */ + export interface GroupMembersAddErrorGroupNotInTeam { + '.tag': 'group_not_in_team'; + } + + /** + * These members are not part of your team. Currently, you cannot add + * members to a group if they are not part of your team, though this may + * change in a subsequent version. To add new members to your Dropbox + * Business team, use the membersAdd() endpoint. + */ + export interface GroupMembersAddErrorMembersNotInTeam { + '.tag': 'members_not_in_team'; + members_not_in_team: Array; + } + + /** + * These users were not found in Dropbox. + */ + export interface GroupMembersAddErrorUsersNotFound { + '.tag': 'users_not_found'; + users_not_found: Array; + } + + /** + * A suspended user cannot be added to a group as GroupAccessType.owner. + */ + export interface GroupMembersAddErrorUserMustBeActiveToBeOwner { + '.tag': 'user_must_be_active_to_be_owner'; + } + + /** + * A company-managed group cannot be managed by a user. + */ + export interface GroupMembersAddErrorUserCannotBeManagerOfCompanyManagedGroup { + '.tag': 'user_cannot_be_manager_of_company_managed_group'; + user_cannot_be_manager_of_company_managed_group: Array; + } + + export type GroupMembersAddError = GroupSelectorWithTeamGroupError | GroupMembersAddErrorDuplicateUser | GroupMembersAddErrorGroupNotInTeam | GroupMembersAddErrorMembersNotInTeam | GroupMembersAddErrorUsersNotFound | GroupMembersAddErrorUserMustBeActiveToBeOwner | GroupMembersAddErrorUserCannotBeManagerOfCompanyManagedGroup; + + /** + * Result returned by groupsMembersAdd() and groupsMembersRemove(). + */ + export interface GroupMembersChangeResult { + /** + * The group info after member change operation has been performed. + */ + group_info: GroupFullInfo; + /** + * For legacy purposes async_job_id will always return one space ' '. + * Formerly, it was an ID that was used to obtain the status of + * granting/revoking group-owned resources. It's no longer necessary + * because the async processing now happens automatically. + */ + async_job_id: async.AsyncJobId; + } + + export interface GroupMembersRemoveArg extends IncludeMembersArg { + /** + * Group from which users will be removed. + */ + group: GroupSelector; + /** + * List of users to be removed from the group. + */ + users: Array; + } + + /** + * Group is not in this team. You cannot remove members from a group that is + * outside of your team. + */ + export interface GroupMembersRemoveErrorGroupNotInTeam { + '.tag': 'group_not_in_team'; + } + + /** + * These members are not part of your team. + */ + export interface GroupMembersRemoveErrorMembersNotInTeam { + '.tag': 'members_not_in_team'; + members_not_in_team: Array; + } + + /** + * These users were not found in Dropbox. + */ + export interface GroupMembersRemoveErrorUsersNotFound { + '.tag': 'users_not_found'; + users_not_found: Array; + } + + export type GroupMembersRemoveError = GroupMembersSelectorError | GroupMembersRemoveErrorGroupNotInTeam | GroupMembersRemoveErrorMembersNotInTeam | GroupMembersRemoveErrorUsersNotFound; + + /** + * Argument for selecting a group and a list of users. + */ + export interface GroupMembersSelector { + /** + * Specify a group. + */ + group: GroupSelector; + /** + * A list of users that are members of group. + */ + users: UsersSelectorArg; + } + + /** + * At least one of the specified users is not a member of the group. + */ + export interface GroupMembersSelectorErrorMemberNotInGroup { + '.tag': 'member_not_in_group'; + } + + /** + * Error that can be raised when team.GroupMembersSelector is used, and the + * users are required to be members of the specified group. + */ + export type GroupMembersSelectorError = GroupSelectorWithTeamGroupError | GroupMembersSelectorErrorMemberNotInGroup; + + export interface GroupMembersSetAccessTypeArg extends GroupMemberSelector { + /** + * New group access type the user will have. + */ + access_type: GroupAccessType; + /** + * Defaults to True. + */ + return_members?: boolean; + } + + /** + * Group ID. + */ + export interface GroupSelectorGroupId { + '.tag': 'group_id'; + group_id: team_common.GroupId; + } + + /** + * External ID of the group. + */ + export interface GroupSelectorGroupExternalId { + '.tag': 'group_external_id'; + group_external_id: team_common.GroupExternalId; + } + + /** + * Argument for selecting a single group, either by group_id or by external + * group ID. + */ + export type GroupSelector = GroupSelectorGroupId | GroupSelectorGroupExternalId; + + /** + * No matching group found. No groups match the specified group ID. + */ + export interface GroupSelectorErrorGroupNotFound { + '.tag': 'group_not_found'; + } + + export interface GroupSelectorErrorOther { + '.tag': 'other'; + } + + /** + * Error that can be raised when team.GroupSelector is used. + */ + export type GroupSelectorError = GroupSelectorErrorGroupNotFound | GroupSelectorErrorOther; + + /** + * This operation is not supported on system-managed groups. + */ + export interface GroupSelectorWithTeamGroupErrorSystemManagedGroupDisallowed { + '.tag': 'system_managed_group_disallowed'; + } + + /** + * Error that can be raised when team.GroupSelector is used and team groups + * are disallowed from being used. + */ + export type GroupSelectorWithTeamGroupError = GroupSelectorError | GroupSelectorWithTeamGroupErrorSystemManagedGroupDisallowed; + + export interface GroupUpdateArgs extends IncludeMembersArg { + /** + * Specify a group. + */ + group: GroupSelector; + /** + * Optional argument. Set group name to this if provided. + */ + new_group_name?: string; + /** + * Optional argument. New group external ID. If the argument is None, the + * group's external_id won't be updated. If the argument is empty string, + * the group's external id will be cleared. + */ + new_group_external_id?: team_common.GroupExternalId; + /** + * Set new group management type, if provided. + */ + new_group_management_type?: team_common.GroupManagementType; + } + + /** + * The requested group name is already being used by another group. + */ + export interface GroupUpdateErrorGroupNameAlreadyUsed { + '.tag': 'group_name_already_used'; + } + + /** + * Group name is empty or has invalid characters. + */ + export interface GroupUpdateErrorGroupNameInvalid { + '.tag': 'group_name_invalid'; + } + + /** + * The requested external ID is already being used by another group. + */ + export interface GroupUpdateErrorExternalIdAlreadyInUse { + '.tag': 'external_id_already_in_use'; + } + + export type GroupUpdateError = GroupSelectorWithTeamGroupError | GroupUpdateErrorGroupNameAlreadyUsed | GroupUpdateErrorGroupNameInvalid | GroupUpdateErrorExternalIdAlreadyInUse; + + /** + * The group is not on your team. + */ + export interface GroupsGetInfoErrorGroupNotOnTeam { + '.tag': 'group_not_on_team'; + } + + export interface GroupsGetInfoErrorOther { + '.tag': 'other'; + } + + export type GroupsGetInfoError = GroupsGetInfoErrorGroupNotOnTeam | GroupsGetInfoErrorOther; + + /** + * An ID that was provided as a parameter to groupsGetInfo(), and did not + * match a corresponding group. The ID can be a group ID, or an external ID, + * depending on how the method was called. + */ + export interface GroupsGetInfoItemIdNotFound { + '.tag': 'id_not_found'; + id_not_found: string; + } + + /** + * Info about a group. + */ + export interface GroupsGetInfoItemGroupInfo extends GroupFullInfo { + '.tag': 'group_info'; + } + + export type GroupsGetInfoItem = GroupsGetInfoItemIdNotFound | GroupsGetInfoItemGroupInfo; + + export interface GroupsListArg { + /** + * Defaults to 1000. + */ + limit?: number; + } + + export interface GroupsListContinueArg { + /** + * Indicates from what point to get the next set of groups. + */ + cursor: string; + } + + /** + * The cursor is invalid. + */ + export interface GroupsListContinueErrorInvalidCursor { + '.tag': 'invalid_cursor'; + } + + export interface GroupsListContinueErrorOther { + '.tag': 'other'; + } + + export type GroupsListContinueError = GroupsListContinueErrorInvalidCursor | GroupsListContinueErrorOther; + + export interface GroupsListResult { + groups: Array; + /** + * Pass the cursor into groupsListContinue() to obtain the additional + * groups. + */ + cursor: string; + /** + * Is true if there are additional groups that have not been returned yet. + * An additional call to groupsListContinue() can retrieve them. + */ + has_more: boolean; + } + + export interface GroupsMembersListArg { + /** + * The group whose members are to be listed. + */ + group: GroupSelector; + /** + * Defaults to 1000. + */ + limit?: number; + } + + export interface GroupsMembersListContinueArg { + /** + * Indicates from what point to get the next set of groups. + */ + cursor: string; + } + + /** + * The cursor is invalid. + */ + export interface GroupsMembersListContinueErrorInvalidCursor { + '.tag': 'invalid_cursor'; + } + + export interface GroupsMembersListContinueErrorOther { + '.tag': 'other'; + } + + export type GroupsMembersListContinueError = GroupsMembersListContinueErrorInvalidCursor | GroupsMembersListContinueErrorOther; + + export interface GroupsMembersListResult { + members: Array; + /** + * Pass the cursor into groupsMembersListContinue() to obtain additional + * group members. + */ + cursor: string; + /** + * Is true if there are additional group members that have not been + * returned yet. An additional call to groupsMembersListContinue() can + * retrieve them. + */ + has_more: boolean; + } + + /** + * You are not allowed to poll this job. + */ + export interface GroupsPollErrorAccessDenied { + '.tag': 'access_denied'; + } + + export type GroupsPollError = async.PollError | GroupsPollErrorAccessDenied; + + /** + * List of group IDs. + */ + export interface GroupsSelectorGroupIds { + '.tag': 'group_ids'; + group_ids: Array; + } + + /** + * List of external IDs of groups. + */ + export interface GroupsSelectorGroupExternalIds { + '.tag': 'group_external_ids'; + group_external_ids: Array; + } + + /** + * Argument for selecting a list of groups, either by group_ids, or external + * group IDs. + */ + export type GroupsSelector = GroupsSelectorGroupIds | GroupsSelectorGroupExternalIds; + + /** + * Does this team have file events. + */ + export interface HasTeamFileEventsValueEnabled { + '.tag': 'enabled'; + enabled: boolean; + } + + export interface HasTeamFileEventsValueOther { + '.tag': 'other'; + } + + /** + * The value for Feature.has_team_file_events. + */ + export type HasTeamFileEventsValue = HasTeamFileEventsValueEnabled | HasTeamFileEventsValueOther; + + /** + * Does this team have team selective sync enabled. + */ + export interface HasTeamSelectiveSyncValueHasTeamSelectiveSync { + '.tag': 'has_team_selective_sync'; + has_team_selective_sync: boolean; + } + + export interface HasTeamSelectiveSyncValueOther { + '.tag': 'other'; + } + + /** + * The value for Feature.has_team_selective_sync. + */ + export type HasTeamSelectiveSyncValue = HasTeamSelectiveSyncValueHasTeamSelectiveSync | HasTeamSelectiveSyncValueOther; + + /** + * Does this team have a shared team root. + */ + export interface HasTeamSharedDropboxValueHasTeamSharedDropbox { + '.tag': 'has_team_shared_dropbox'; + has_team_shared_dropbox: boolean; + } + + export interface HasTeamSharedDropboxValueOther { + '.tag': 'other'; + } + + /** + * The value for Feature.has_team_shared_dropbox. + */ + export type HasTeamSharedDropboxValue = HasTeamSharedDropboxValueHasTeamSharedDropbox | HasTeamSharedDropboxValueOther; + + export interface IncludeMembersArg { + /** + * Defaults to True. + */ + return_members?: boolean; + } + + export interface LegalHoldHeldRevisionMetadata { + /** + * The held revision filename. + */ + new_filename: string; + /** + * The id of the held revision. + */ + original_revision_id: files.Rev; + /** + * The original path of the held revision. + */ + original_file_path: Path; + /** + * The last time the file was modified on Dropbox. + */ + server_modified: common.DropboxTimestamp; + /** + * The member id of the revision's author. + */ + author_member_id: team_common.TeamMemberId; + /** + * The member status of the revision's author. + */ + author_member_status: TeamMemberStatus; + /** + * The email address of the held revision author. + */ + author_email: common.EmailAddress; + /** + * The type of the held revision's file. + */ + file_type: string; + /** + * The file size in bytes. + */ + size: number; + /** + * A hash of the file content. This field can be used to verify data + * integrity. For more information see our [Content hash]{@link + * https://www.dropbox.com/developers/reference/content-hash} page. + */ + content_hash: files.Sha256HexHash; + } + + export interface LegalHoldPolicy { + /** + * The legal hold id. + */ + id: LegalHoldId; + /** + * Policy name. + */ + name: LegalHoldPolicyName; + /** + * A description of the legal hold policy. + */ + description?: LegalHoldPolicyDescription; + /** + * The time at which the legal hold was activated. + */ + activation_time?: common.DropboxTimestamp; + /** + * Team members IDs and number of permanently deleted members under hold. + */ + members: MembersInfo; + /** + * The current state of the hold. + */ + status: LegalHoldStatus; + /** + * Start date of the legal hold policy. + */ + start_date: common.DropboxTimestamp; + /** + * End date of the legal hold policy. + */ + end_date?: common.DropboxTimestamp; + } + + /** + * The legal hold policy is active. + */ + export interface LegalHoldStatusActive { + '.tag': 'active'; + } + + /** + * The legal hold policy was released. + */ + export interface LegalHoldStatusReleased { + '.tag': 'released'; + } + + /** + * The legal hold policy is activating. + */ + export interface LegalHoldStatusActivating { + '.tag': 'activating'; + } + + /** + * The legal hold policy is updating. + */ + export interface LegalHoldStatusUpdating { + '.tag': 'updating'; + } + + /** + * The legal hold policy is exporting. + */ + export interface LegalHoldStatusExporting { + '.tag': 'exporting'; + } + + /** + * The legal hold policy is releasing. + */ + export interface LegalHoldStatusReleasing { + '.tag': 'releasing'; + } + + export interface LegalHoldStatusOther { + '.tag': 'other'; + } + + export type LegalHoldStatus = LegalHoldStatusActive | LegalHoldStatusReleased | LegalHoldStatusActivating | LegalHoldStatusUpdating | LegalHoldStatusExporting | LegalHoldStatusReleasing | LegalHoldStatusOther; + + /** + * There has been an unknown legal hold error. + */ + export interface LegalHoldsErrorUnknownLegalHoldError { + '.tag': 'unknown_legal_hold_error'; + } + + /** + * You don't have permissions to perform this action. + */ + export interface LegalHoldsErrorInsufficientPermissions { + '.tag': 'insufficient_permissions'; + } + + export interface LegalHoldsErrorOther { + '.tag': 'other'; + } + + export type LegalHoldsError = LegalHoldsErrorUnknownLegalHoldError | LegalHoldsErrorInsufficientPermissions | LegalHoldsErrorOther; + + export interface LegalHoldsGetPolicyArg { + /** + * The legal hold Id. + */ + id: LegalHoldId; + } + + /** + * Legal hold policy does not exist for LegalHoldsGetPolicyArg.id. + */ + export interface LegalHoldsGetPolicyErrorLegalHoldPolicyNotFound { + '.tag': 'legal_hold_policy_not_found'; + } + + export type LegalHoldsGetPolicyError = LegalHoldsError | LegalHoldsGetPolicyErrorLegalHoldPolicyNotFound; + + export interface LegalHoldsListHeldRevisionResult { + /** + * List of file entries that under the hold. + */ + entries: Array; + /** + * The cursor idicates where to continue reading file metadata entries for + * the next API call. When there are no more entries, the cursor will + * return none. Pass the cursor into + * /2/team/legal_holds/list_held_revisions/continue. + */ + cursor?: ListHeldRevisionCursor; + /** + * True if there are more file entries that haven't been returned. You can + * retrieve them with a call to /legal_holds/list_held_revisions_continue. + */ + has_more: boolean; + } + + export interface LegalHoldsListHeldRevisionsArg { + /** + * The legal hold Id. + */ + id: LegalHoldId; + } + + export interface LegalHoldsListHeldRevisionsContinueArg { + /** + * The legal hold Id. + */ + id: LegalHoldId; + /** + * The cursor idicates where to continue reading file metadata entries for + * the next API call. When there are no more entries, the cursor will + * return none. + */ + cursor?: ListHeldRevisionCursor; + } + + /** + * There has been an unknown legal hold error. + */ + export interface LegalHoldsListHeldRevisionsContinueErrorUnknownLegalHoldError { + '.tag': 'unknown_legal_hold_error'; + } + + /** + * Temporary infrastructure failure, please retry. + */ + export interface LegalHoldsListHeldRevisionsContinueErrorTransientError { + '.tag': 'transient_error'; + } + + /** + * Indicates that the cursor has been invalidated. Call + * legalHoldsListHeldRevisionsContinue() again with an empty cursor to + * obtain a new cursor. + */ + export interface LegalHoldsListHeldRevisionsContinueErrorReset { + '.tag': 'reset'; + } + + export interface LegalHoldsListHeldRevisionsContinueErrorOther { + '.tag': 'other'; + } + + export type LegalHoldsListHeldRevisionsContinueError = LegalHoldsListHeldRevisionsContinueErrorUnknownLegalHoldError | LegalHoldsListHeldRevisionsContinueErrorTransientError | LegalHoldsListHeldRevisionsContinueErrorReset | LegalHoldsListHeldRevisionsContinueErrorOther; + + /** + * Temporary infrastructure failure, please retry. + */ + export interface LegalHoldsListHeldRevisionsErrorTransientError { + '.tag': 'transient_error'; + } + + /** + * The legal hold is not holding any revisions yet. + */ + export interface LegalHoldsListHeldRevisionsErrorLegalHoldStillEmpty { + '.tag': 'legal_hold_still_empty'; + } + + /** + * Trying to list revisions for an inactive legal hold. + */ + export interface LegalHoldsListHeldRevisionsErrorInactiveLegalHold { + '.tag': 'inactive_legal_hold'; + } + + export type LegalHoldsListHeldRevisionsError = LegalHoldsError | LegalHoldsListHeldRevisionsErrorTransientError | LegalHoldsListHeldRevisionsErrorLegalHoldStillEmpty | LegalHoldsListHeldRevisionsErrorInactiveLegalHold; + + export interface LegalHoldsListPoliciesArg { + /** + * Defaults to False. + */ + include_released?: boolean; + } + + /** + * Temporary infrastructure failure, please retry. + */ + export interface LegalHoldsListPoliciesErrorTransientError { + '.tag': 'transient_error'; + } + + export type LegalHoldsListPoliciesError = LegalHoldsError | LegalHoldsListPoliciesErrorTransientError; + + export interface LegalHoldsListPoliciesResult { + policies: Array; + } + + export interface LegalHoldsPolicyCreateArg { + /** + * Policy name. + */ + name: LegalHoldPolicyName; + /** + * A description of the legal hold policy. + */ + description?: LegalHoldPolicyDescription; + /** + * List of team member IDs added to the hold. + */ + members: Array; + /** + * start date of the legal hold policy. + */ + start_date?: common.DropboxTimestamp; + /** + * end date of the legal hold policy. + */ + end_date?: common.DropboxTimestamp; + } + + /** + * Start date must be earlier than end date. + */ + export interface LegalHoldsPolicyCreateErrorStartDateIsLaterThanEndDate { + '.tag': 'start_date_is_later_than_end_date'; + } + + /** + * The users list must have at least one user. + */ + export interface LegalHoldsPolicyCreateErrorEmptyMembersList { + '.tag': 'empty_members_list'; + } + + /** + * Some members in the members list are not valid to be placed under legal + * hold. + */ + export interface LegalHoldsPolicyCreateErrorInvalidMembers { + '.tag': 'invalid_members'; + } + + /** + * You cannot add more than 5 users in a legal hold. + */ + export interface LegalHoldsPolicyCreateErrorNumberOfUsersOnHoldIsGreaterThanHoldLimitation { + '.tag': 'number_of_users_on_hold_is_greater_than_hold_limitation'; + } + + /** + * Temporary infrastructure failure, please retry. + */ + export interface LegalHoldsPolicyCreateErrorTransientError { + '.tag': 'transient_error'; + } + + /** + * The name provided is already in use by another legal hold. + */ + export interface LegalHoldsPolicyCreateErrorNameMustBeUnique { + '.tag': 'name_must_be_unique'; + } + + /** + * Team exceeded legal hold quota. + */ + export interface LegalHoldsPolicyCreateErrorTeamExceededLegalHoldQuota { + '.tag': 'team_exceeded_legal_hold_quota'; + } + + /** + * The provided date is invalid. + */ + export interface LegalHoldsPolicyCreateErrorInvalidDate { + '.tag': 'invalid_date'; + } + + export type LegalHoldsPolicyCreateError = LegalHoldsError | LegalHoldsPolicyCreateErrorStartDateIsLaterThanEndDate | LegalHoldsPolicyCreateErrorEmptyMembersList | LegalHoldsPolicyCreateErrorInvalidMembers | LegalHoldsPolicyCreateErrorNumberOfUsersOnHoldIsGreaterThanHoldLimitation | LegalHoldsPolicyCreateErrorTransientError | LegalHoldsPolicyCreateErrorNameMustBeUnique | LegalHoldsPolicyCreateErrorTeamExceededLegalHoldQuota | LegalHoldsPolicyCreateErrorInvalidDate; + + export interface LegalHoldsPolicyReleaseArg { + /** + * The legal hold Id. + */ + id: LegalHoldId; + } + + /** + * Legal hold is currently performing another operation. + */ + export interface LegalHoldsPolicyReleaseErrorLegalHoldPerformingAnotherOperation { + '.tag': 'legal_hold_performing_another_operation'; + } + + /** + * Legal hold is currently performing a release or is already released. + */ + export interface LegalHoldsPolicyReleaseErrorLegalHoldAlreadyReleasing { + '.tag': 'legal_hold_already_releasing'; + } + + /** + * Legal hold policy does not exist for LegalHoldsPolicyReleaseArg.id. + */ + export interface LegalHoldsPolicyReleaseErrorLegalHoldPolicyNotFound { + '.tag': 'legal_hold_policy_not_found'; + } + + export type LegalHoldsPolicyReleaseError = LegalHoldsError | LegalHoldsPolicyReleaseErrorLegalHoldPerformingAnotherOperation | LegalHoldsPolicyReleaseErrorLegalHoldAlreadyReleasing | LegalHoldsPolicyReleaseErrorLegalHoldPolicyNotFound; + + export interface LegalHoldsPolicyUpdateArg { + /** + * The legal hold Id. + */ + id: LegalHoldId; + /** + * Policy new name. + */ + name?: LegalHoldPolicyName; + /** + * Policy new description. + */ + description?: LegalHoldPolicyDescription; + /** + * List of team member IDs to apply the policy on. + */ + members?: Array; + } + + /** + * Temporary infrastructure failure, please retry. + */ + export interface LegalHoldsPolicyUpdateErrorTransientError { + '.tag': 'transient_error'; + } + + /** + * Trying to release an inactive legal hold. + */ + export interface LegalHoldsPolicyUpdateErrorInactiveLegalHold { + '.tag': 'inactive_legal_hold'; + } + + /** + * Legal hold is currently performing another operation. + */ + export interface LegalHoldsPolicyUpdateErrorLegalHoldPerformingAnotherOperation { + '.tag': 'legal_hold_performing_another_operation'; + } + + /** + * Some members in the members list are not valid to be placed under legal + * hold. + */ + export interface LegalHoldsPolicyUpdateErrorInvalidMembers { + '.tag': 'invalid_members'; + } + + /** + * You cannot add more than 5 users in a legal hold. + */ + export interface LegalHoldsPolicyUpdateErrorNumberOfUsersOnHoldIsGreaterThanHoldLimitation { + '.tag': 'number_of_users_on_hold_is_greater_than_hold_limitation'; + } + + /** + * The users list must have at least one user. + */ + export interface LegalHoldsPolicyUpdateErrorEmptyMembersList { + '.tag': 'empty_members_list'; + } + + /** + * The name provided is already in use by another legal hold. + */ + export interface LegalHoldsPolicyUpdateErrorNameMustBeUnique { + '.tag': 'name_must_be_unique'; + } + + /** + * Legal hold policy does not exist for LegalHoldsPolicyUpdateArg.id. + */ + export interface LegalHoldsPolicyUpdateErrorLegalHoldPolicyNotFound { + '.tag': 'legal_hold_policy_not_found'; + } + + export type LegalHoldsPolicyUpdateError = LegalHoldsError | LegalHoldsPolicyUpdateErrorTransientError | LegalHoldsPolicyUpdateErrorInactiveLegalHold | LegalHoldsPolicyUpdateErrorLegalHoldPerformingAnotherOperation | LegalHoldsPolicyUpdateErrorInvalidMembers | LegalHoldsPolicyUpdateErrorNumberOfUsersOnHoldIsGreaterThanHoldLimitation | LegalHoldsPolicyUpdateErrorEmptyMembersList | LegalHoldsPolicyUpdateErrorNameMustBeUnique | LegalHoldsPolicyUpdateErrorLegalHoldPolicyNotFound; + + export interface ListMemberAppsArg { + /** + * The team member id. + */ + team_member_id: string; + } + + /** + * Member not found. + */ + export interface ListMemberAppsErrorMemberNotFound { + '.tag': 'member_not_found'; + } + + export interface ListMemberAppsErrorOther { + '.tag': 'other'; + } + + /** + * Error returned by linkedAppsListMemberLinkedApps(). + */ + export type ListMemberAppsError = ListMemberAppsErrorMemberNotFound | ListMemberAppsErrorOther; + + export interface ListMemberAppsResult { + /** + * List of third party applications linked by this team member. + */ + linked_api_apps: Array; + } + + export interface ListMemberDevicesArg { + /** + * The team's member id. + */ + team_member_id: string; + /** + * Defaults to True. + */ + include_web_sessions?: boolean; + /** + * Defaults to True. + */ + include_desktop_clients?: boolean; + /** + * Defaults to True. + */ + include_mobile_clients?: boolean; + } + + /** + * Member not found. + */ + export interface ListMemberDevicesErrorMemberNotFound { + '.tag': 'member_not_found'; + } + + export interface ListMemberDevicesErrorOther { + '.tag': 'other'; + } + + export type ListMemberDevicesError = ListMemberDevicesErrorMemberNotFound | ListMemberDevicesErrorOther; + + export interface ListMemberDevicesResult { + /** + * List of web sessions made by this team member. + */ + active_web_sessions?: Array; + /** + * List of desktop clients used by this team member. + */ + desktop_client_sessions?: Array; + /** + * List of mobile client used by this team member. + */ + mobile_client_sessions?: Array; + } + + /** + * Arguments for linkedAppsListMembersLinkedApps(). + */ + export interface ListMembersAppsArg { + /** + * At the first call to the linkedAppsListMembersLinkedApps() the cursor + * shouldn't be passed. Then, if the result of the call includes a cursor, + * the following requests should include the received cursors in order to + * receive the next sub list of the team applications. + */ + cursor?: string; + } + + /** + * Indicates that the cursor has been invalidated. Call + * linkedAppsListMembersLinkedApps() again with an empty cursor to obtain a + * new cursor. + */ + export interface ListMembersAppsErrorReset { + '.tag': 'reset'; + } + + export interface ListMembersAppsErrorOther { + '.tag': 'other'; + } + + /** + * Error returned by linkedAppsListMembersLinkedApps(). + */ + export type ListMembersAppsError = ListMembersAppsErrorReset | ListMembersAppsErrorOther; + + /** + * Information returned by linkedAppsListMembersLinkedApps(). + */ + export interface ListMembersAppsResult { + /** + * The linked applications of each member of the team. + */ + apps: Array; + /** + * If true, then there are more apps available. Pass the cursor to + * linkedAppsListMembersLinkedApps() to retrieve the rest. + */ + has_more: boolean; + /** + * Pass the cursor into linkedAppsListMembersLinkedApps() to receive the + * next sub list of team's applications. + */ + cursor?: string; + } + + export interface ListMembersDevicesArg { + /** + * At the first call to the devicesListMembersDevices() the cursor + * shouldn't be passed. Then, if the result of the call includes a cursor, + * the following requests should include the received cursors in order to + * receive the next sub list of team devices. + */ + cursor?: string; + /** + * Defaults to True. + */ + include_web_sessions?: boolean; + /** + * Defaults to True. + */ + include_desktop_clients?: boolean; + /** + * Defaults to True. + */ + include_mobile_clients?: boolean; + } + + /** + * Indicates that the cursor has been invalidated. Call + * devicesListMembersDevices() again with an empty cursor to obtain a new + * cursor. + */ + export interface ListMembersDevicesErrorReset { + '.tag': 'reset'; + } + + export interface ListMembersDevicesErrorOther { + '.tag': 'other'; + } + + export type ListMembersDevicesError = ListMembersDevicesErrorReset | ListMembersDevicesErrorOther; + + export interface ListMembersDevicesResult { + /** + * The devices of each member of the team. + */ + devices: Array; + /** + * If true, then there are more devices available. Pass the cursor to + * devicesListMembersDevices() to retrieve the rest. + */ + has_more: boolean; + /** + * Pass the cursor into devicesListMembersDevices() to receive the next + * sub list of team's devices. + */ + cursor?: string; + } + + /** + * Arguments for linkedAppsListTeamLinkedApps(). + */ + export interface ListTeamAppsArg { + /** + * At the first call to the linkedAppsListTeamLinkedApps() the cursor + * shouldn't be passed. Then, if the result of the call includes a cursor, + * the following requests should include the received cursors in order to + * receive the next sub list of the team applications. + */ + cursor?: string; + } + + /** + * Indicates that the cursor has been invalidated. Call + * linkedAppsListTeamLinkedApps() again with an empty cursor to obtain a new + * cursor. + */ + export interface ListTeamAppsErrorReset { + '.tag': 'reset'; + } + + export interface ListTeamAppsErrorOther { + '.tag': 'other'; + } + + /** + * Error returned by linkedAppsListTeamLinkedApps(). + */ + export type ListTeamAppsError = ListTeamAppsErrorReset | ListTeamAppsErrorOther; + + /** + * Information returned by linkedAppsListTeamLinkedApps(). + */ + export interface ListTeamAppsResult { + /** + * The linked applications of each member of the team. + */ + apps: Array; + /** + * If true, then there are more apps available. Pass the cursor to + * linkedAppsListTeamLinkedApps() to retrieve the rest. + */ + has_more: boolean; + /** + * Pass the cursor into linkedAppsListTeamLinkedApps() to receive the next + * sub list of team's applications. + */ + cursor?: string; + } + + export interface ListTeamDevicesArg { + /** + * At the first call to the devicesListTeamDevices() the cursor shouldn't + * be passed. Then, if the result of the call includes a cursor, the + * following requests should include the received cursors in order to + * receive the next sub list of team devices. + */ + cursor?: string; + /** + * Defaults to True. + */ + include_web_sessions?: boolean; + /** + * Defaults to True. + */ + include_desktop_clients?: boolean; + /** + * Defaults to True. + */ + include_mobile_clients?: boolean; + } + + /** + * Indicates that the cursor has been invalidated. Call + * devicesListTeamDevices() again with an empty cursor to obtain a new + * cursor. + */ + export interface ListTeamDevicesErrorReset { + '.tag': 'reset'; + } + + export interface ListTeamDevicesErrorOther { + '.tag': 'other'; + } + + export type ListTeamDevicesError = ListTeamDevicesErrorReset | ListTeamDevicesErrorOther; + + export interface ListTeamDevicesResult { + /** + * The devices of each member of the team. + */ + devices: Array; + /** + * If true, then there are more devices available. Pass the cursor to + * devicesListTeamDevices() to retrieve the rest. + */ + has_more: boolean; + /** + * Pass the cursor into devicesListTeamDevices() to receive the next sub + * list of team's devices. + */ + cursor?: string; + } + + /** + * Specify access type a member should have when joined to a group. + */ + export interface MemberAccess { + /** + * Identity of a user. + */ + user: UserSelectorArg; + /** + * Access type. + */ + access_type: GroupAccessType; + } + + export interface MemberAddArg extends MemberAddArgBase { + /** + * Defaults to TagRef(Union('AdminTier', [UnionField('team_admin', Void, + * False, None), UnionField('user_management_admin', Void, False, None), + * UnionField('support_admin', Void, False, None), + * UnionField('member_only', Void, False, None)]), 'member_only'). + */ + role?: AdminTier; + } + + export interface MemberAddArgBase { + member_email: common.EmailAddress; + /** + * Member's first name. + */ + member_given_name?: common.OptionalNamePart; + /** + * Member's last name. + */ + member_surname?: common.OptionalNamePart; + /** + * External ID for member. + */ + member_external_id?: team_common.MemberExternalId; + /** + * Persistent ID for member. This field is only available to teams using + * persistent ID SAML configuration. + */ + member_persistent_id?: string; + /** + * Defaults to True. + */ + send_welcome_email?: boolean; + /** + * Whether a user is directory restricted. + */ + is_directory_restricted?: boolean; + } + + /** + * Describes a user that was successfully added to the team. + */ + export interface MemberAddResultSuccess extends TeamMemberInfo { + '.tag': 'success'; + } + + /** + * Describes the result of attempting to add a single user to the team. + * 'success' is the only value indicating that a user was indeed added to + * the team - the other values explain the type of failure that occurred, + * and include the email of the user for which the operation has failed. + */ + export type MemberAddResult = MemberAddResultBase | MemberAddResultSuccess; + + /** + * Team is already full. The organization has no available licenses. + */ + export interface MemberAddResultBaseTeamLicenseLimit { + '.tag': 'team_license_limit'; + team_license_limit: common.EmailAddress; + } + + /** + * Team is already full. The free team member limit has been reached. + */ + export interface MemberAddResultBaseFreeTeamMemberLimitReached { + '.tag': 'free_team_member_limit_reached'; + free_team_member_limit_reached: common.EmailAddress; + } + + /** + * User is already on this team. The provided email address is associated + * with a user who is already a member of (including in recoverable state) + * or invited to the team. + */ + export interface MemberAddResultBaseUserAlreadyOnTeam { + '.tag': 'user_already_on_team'; + user_already_on_team: common.EmailAddress; + } + + /** + * User is already on another team. The provided email address is associated + * with a user that is already a member or invited to another team. + */ + export interface MemberAddResultBaseUserOnAnotherTeam { + '.tag': 'user_on_another_team'; + user_on_another_team: common.EmailAddress; + } + + /** + * User is already paired. + */ + export interface MemberAddResultBaseUserAlreadyPaired { + '.tag': 'user_already_paired'; + user_already_paired: common.EmailAddress; + } + + /** + * User migration has failed. + */ + export interface MemberAddResultBaseUserMigrationFailed { + '.tag': 'user_migration_failed'; + user_migration_failed: common.EmailAddress; + } + + /** + * A user with the given external member ID already exists on the team + * (including in recoverable state). + */ + export interface MemberAddResultBaseDuplicateExternalMemberId { + '.tag': 'duplicate_external_member_id'; + duplicate_external_member_id: common.EmailAddress; + } + + /** + * A user with the given persistent ID already exists on the team (including + * in recoverable state). + */ + export interface MemberAddResultBaseDuplicateMemberPersistentId { + '.tag': 'duplicate_member_persistent_id'; + duplicate_member_persistent_id: common.EmailAddress; + } + + /** + * Persistent ID is only available to teams with persistent ID SAML + * configuration. Please contact Dropbox for more information. + */ + export interface MemberAddResultBasePersistentIdDisabled { + '.tag': 'persistent_id_disabled'; + persistent_id_disabled: common.EmailAddress; + } + + /** + * User creation has failed. + */ + export interface MemberAddResultBaseUserCreationFailed { + '.tag': 'user_creation_failed'; + user_creation_failed: common.EmailAddress; + } + + export type MemberAddResultBase = MemberAddResultBaseTeamLicenseLimit | MemberAddResultBaseFreeTeamMemberLimitReached | MemberAddResultBaseUserAlreadyOnTeam | MemberAddResultBaseUserOnAnotherTeam | MemberAddResultBaseUserAlreadyPaired | MemberAddResultBaseUserMigrationFailed | MemberAddResultBaseDuplicateExternalMemberId | MemberAddResultBaseDuplicateMemberPersistentId | MemberAddResultBasePersistentIdDisabled | MemberAddResultBaseUserCreationFailed; + + export interface MemberAddV2Arg extends MemberAddArgBase { + role_ids?: Array; + } + + /** + * Describes a user that was successfully added to the team. + */ + export interface MemberAddV2ResultSuccess extends TeamMemberInfoV2 { + '.tag': 'success'; + } + + export interface MemberAddV2ResultOther { + '.tag': 'other'; + } + + /** + * Describes the result of attempting to add a single user to the team. + * 'success' is the only value indicating that a user was indeed added to + * the team - the other values explain the type of failure that occurred, + * and include the email of the user for which the operation has failed. + */ + export type MemberAddV2Result = MemberAddResultBase | MemberAddV2ResultSuccess | MemberAddV2ResultOther; + + /** + * Information on devices of a team's member. + */ + export interface MemberDevices { + /** + * The member unique Id. + */ + team_member_id: string; + /** + * List of web sessions made by this team member. + */ + web_sessions?: Array; + /** + * List of desktop clients by this team member. + */ + desktop_clients?: Array; + /** + * List of mobile clients by this team member. + */ + mobile_clients?: Array; + } + + /** + * Information on linked applications of a team member. + */ + export interface MemberLinkedApps { + /** + * The member unique Id. + */ + team_member_id: string; + /** + * List of third party applications linked by this team member. + */ + linked_api_apps: Array; + } + + /** + * Basic member profile. + */ + export interface MemberProfile { + /** + * ID of user as a member of a team. + */ + team_member_id: team_common.TeamMemberId; + /** + * External ID that a team can attach to the user. An application using + * the API may find it easier to use their own IDs instead of Dropbox IDs + * like account_id or team_member_id. + */ + external_id?: string; + /** + * A user's account identifier. + */ + account_id?: users_common.AccountId; + /** + * Email address of user. + */ + email: string; + /** + * Is true if the user's email is verified to be owned by the user. + */ + email_verified: boolean; + /** + * Secondary emails of a user. + */ + secondary_emails?: Array; + /** + * The user's status as a member of a specific team. + */ + status: TeamMemberStatus; + /** + * Representations for a person's name. + */ + name: users.Name; + /** + * The user's membership type: full (normal team member) vs limited (does + * not use a license; no access to the team's shared quota). + */ + membership_type: TeamMembershipType; + /** + * The date and time the user was invited to the team (contains value only + * when the member's status matches TeamMemberStatus.invited). + */ + invited_on?: common.DropboxTimestamp; + /** + * The date and time the user joined as a member of a specific team. + */ + joined_on?: common.DropboxTimestamp; + /** + * The date and time the user was suspended from the team (contains value + * only when the member's status matches TeamMemberStatus.suspended). + */ + suspended_on?: common.DropboxTimestamp; + /** + * Persistent ID that a team can attach to the user. The persistent ID is + * unique ID to be used for SAML authentication. + */ + persistent_id?: string; + /** + * Whether the user is a directory restricted user. + */ + is_directory_restricted?: boolean; + /** + * URL for the photo representing the user, if one is set. + */ + profile_photo_url?: string; + } + + /** + * The user is not a member of the team. + */ + export interface MemberSelectorErrorUserNotInTeam { + '.tag': 'user_not_in_team'; + } + + export type MemberSelectorError = UserSelectorError | MemberSelectorErrorUserNotInTeam; + + export interface MembersAddArg extends MembersAddArgBase { + /** + * Details of new members to be added to the team. + */ + new_members: Array; + } + + export interface MembersAddArgBase { + /** + * Defaults to False. + */ + force_async?: boolean; + } + + /** + * The asynchronous job has finished. For each member that was specified in + * the parameter team.MembersAddArg that was provided to membersAdd(), a + * corresponding item is returned in this list. + */ + export interface MembersAddJobStatusComplete { + '.tag': 'complete'; + complete: Array; + } + + /** + * The asynchronous job returned an error. The string contains an error + * message. + */ + export interface MembersAddJobStatusFailed { + '.tag': 'failed'; + failed: string; + } + + export type MembersAddJobStatus = async.PollResultBase | MembersAddJobStatusComplete | MembersAddJobStatusFailed; + + /** + * The asynchronous job has finished. For each member that was specified in + * the parameter team.MembersAddArg that was provided to membersAddV2(), a + * corresponding item is returned in this list. + */ + export interface MembersAddJobStatusV2ResultComplete { + '.tag': 'complete'; + complete: Array; + } + + /** + * The asynchronous job returned an error. The string contains an error + * message. + */ + export interface MembersAddJobStatusV2ResultFailed { + '.tag': 'failed'; + failed: string; + } + + export interface MembersAddJobStatusV2ResultOther { + '.tag': 'other'; + } + + export type MembersAddJobStatusV2Result = async.PollResultBase | MembersAddJobStatusV2ResultComplete | MembersAddJobStatusV2ResultFailed | MembersAddJobStatusV2ResultOther; + + export interface MembersAddLaunchComplete { + '.tag': 'complete'; + complete: Array; + } + + export type MembersAddLaunch = async.LaunchResultBase | MembersAddLaunchComplete; + + export interface MembersAddLaunchV2ResultComplete { + '.tag': 'complete'; + complete: Array; + } + + export interface MembersAddLaunchV2ResultOther { + '.tag': 'other'; + } + + export type MembersAddLaunchV2Result = async.LaunchResultBase | MembersAddLaunchV2ResultComplete | MembersAddLaunchV2ResultOther; + + export interface MembersAddV2Arg extends MembersAddArgBase { + /** + * Details of new members to be added to the team. + */ + new_members: Array; + } + + export interface MembersDataTransferArg extends MembersDeactivateBaseArg { + /** + * Files from the deleted member account will be transferred to this user. + */ + transfer_dest_id: UserSelectorArg; + /** + * Errors during the transfer process will be sent via email to this user. + */ + transfer_admin_id: UserSelectorArg; + } + + export interface MembersDeactivateArg extends MembersDeactivateBaseArg { + /** + * Defaults to True. + */ + wipe_data?: boolean; + } + + /** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + */ + export interface MembersDeactivateBaseArg { + /** + * Identity of user to remove/suspend/have their files moved. + */ + user: UserSelectorArg; + } + + /** + * The user is not a member of the team. + */ + export interface MembersDeactivateErrorUserNotInTeam { + '.tag': 'user_not_in_team'; + } + + export interface MembersDeactivateErrorOther { + '.tag': 'other'; + } + + export type MembersDeactivateError = UserSelectorError | MembersDeactivateErrorUserNotInTeam | MembersDeactivateErrorOther; + + export interface MembersDeleteProfilePhotoArg { + /** + * Identity of the user whose profile photo will be deleted. + */ + user: UserSelectorArg; + } + + /** + * Modifying deleted users is not allowed. + */ + export interface MembersDeleteProfilePhotoErrorSetProfileDisallowed { + '.tag': 'set_profile_disallowed'; + } + + export interface MembersDeleteProfilePhotoErrorOther { + '.tag': 'other'; + } + + export type MembersDeleteProfilePhotoError = MemberSelectorError | MembersDeleteProfilePhotoErrorSetProfileDisallowed | MembersDeleteProfilePhotoErrorOther; + + /** + * Available TeamMemberRole for the connected team. To be used with + * membersSetAdminPermissionsV2(). + */ + export interface MembersGetAvailableTeamMemberRolesResult { + /** + * Available roles. + */ + roles: Array; + } + + export interface MembersGetInfoArgs { + /** + * List of team members. + */ + members: Array; + } + + export interface MembersGetInfoErrorOther { + '.tag': 'other'; + } + + export type MembersGetInfoError = MembersGetInfoErrorOther; + + /** + * Info about a team member. + */ + export interface MembersGetInfoItemMemberInfo extends TeamMemberInfo { + '.tag': 'member_info'; + } + + /** + * Describes a result obtained for a single user whose id was specified in + * the parameter of membersGetInfo(). + */ + export type MembersGetInfoItem = MembersGetInfoItemBase | MembersGetInfoItemMemberInfo; + + /** + * An ID that was provided as a parameter to membersGetInfo() or + * membersGetInfoV2(), and did not match a corresponding user. This might be + * a team_member_id, an email, or an external ID, depending on how the + * method was called. + */ + export interface MembersGetInfoItemBaseIdNotFound { + '.tag': 'id_not_found'; + id_not_found: string; + } + + export type MembersGetInfoItemBase = MembersGetInfoItemBaseIdNotFound; + + /** + * Info about a team member. + */ + export interface MembersGetInfoItemV2MemberInfo extends TeamMemberInfoV2 { + '.tag': 'member_info'; + } + + export interface MembersGetInfoItemV2Other { + '.tag': 'other'; + } + + /** + * Describes a result obtained for a single user whose id was specified in + * the parameter of membersGetInfoV2(). + */ + export type MembersGetInfoItemV2 = MembersGetInfoItemBase | MembersGetInfoItemV2MemberInfo | MembersGetInfoItemV2Other; + + export interface MembersGetInfoV2Arg { + /** + * List of team members. + */ + members: Array; + } + + export interface MembersGetInfoV2Result { + /** + * List of team members info. + */ + members_info: Array; + } + + export interface MembersInfo { + /** + * Team member IDs of the users under this hold. + */ + team_member_ids: Array; + /** + * The number of permanently deleted users that were under this hold. + */ + permanently_deleted_users: number; + } + + export interface MembersListArg { + /** + * Defaults to 1000. + */ + limit?: number; + /** + * Defaults to False. + */ + include_removed?: boolean; + } + + export interface MembersListContinueArg { + /** + * Indicates from what point to get the next set of members. + */ + cursor: string; + } + + /** + * The cursor is invalid. + */ + export interface MembersListContinueErrorInvalidCursor { + '.tag': 'invalid_cursor'; + } + + export interface MembersListContinueErrorOther { + '.tag': 'other'; + } + + export type MembersListContinueError = MembersListContinueErrorInvalidCursor | MembersListContinueErrorOther; + + export interface MembersListErrorOther { + '.tag': 'other'; + } + + export type MembersListError = MembersListErrorOther; + + export interface MembersListResult { + /** + * List of team members. + */ + members: Array; + /** + * Pass the cursor into membersListContinue() to obtain the additional + * members. + */ + cursor: string; + /** + * Is true if there are additional team members that have not been + * returned yet. An additional call to membersListContinue() can retrieve + * them. + */ + has_more: boolean; + } + + export interface MembersListV2Result { + /** + * List of team members. + */ + members: Array; + /** + * Pass the cursor into membersListContinueV2() to obtain the additional + * members. + */ + cursor: string; + /** + * Is true if there are additional team members that have not been + * returned yet. An additional call to membersListContinueV2() can + * retrieve them. + */ + has_more: boolean; + } + + /** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + */ + export interface MembersRecoverArg { + /** + * Identity of user to recover. + */ + user: UserSelectorArg; + } + + /** + * The user is not recoverable. + */ + export interface MembersRecoverErrorUserUnrecoverable { + '.tag': 'user_unrecoverable'; + } + + /** + * The user is not a member of the team. + */ + export interface MembersRecoverErrorUserNotInTeam { + '.tag': 'user_not_in_team'; + } + + /** + * Team is full. The organization has no available licenses. + */ + export interface MembersRecoverErrorTeamLicenseLimit { + '.tag': 'team_license_limit'; + } + + export interface MembersRecoverErrorOther { + '.tag': 'other'; + } + + export type MembersRecoverError = UserSelectorError | MembersRecoverErrorUserUnrecoverable | MembersRecoverErrorUserNotInTeam | MembersRecoverErrorTeamLicenseLimit | MembersRecoverErrorOther; + + export interface MembersRemoveArg extends MembersDeactivateArg { + /** + * If provided, files from the deleted member account will be transferred + * to this user. + */ + transfer_dest_id?: UserSelectorArg; + /** + * If provided, errors during the transfer process will be sent via email + * to this user. If the transfer_dest_id argument was provided, then this + * argument must be provided as well. + */ + transfer_admin_id?: UserSelectorArg; + /** + * Defaults to False. + */ + keep_account?: boolean; + /** + * Defaults to False. + */ + retain_team_shares?: boolean; + } + + /** + * The user is the last admin of the team, so it cannot be removed from it. + */ + export interface MembersRemoveErrorRemoveLastAdmin { + '.tag': 'remove_last_admin'; + } + + /** + * Cannot keep account and transfer the data to another user at the same + * time. + */ + export interface MembersRemoveErrorCannotKeepAccountAndTransfer { + '.tag': 'cannot_keep_account_and_transfer'; + } + + /** + * Cannot keep account and delete the data at the same time. To keep the + * account the argument wipe_data should be set to false. + */ + export interface MembersRemoveErrorCannotKeepAccountAndDeleteData { + '.tag': 'cannot_keep_account_and_delete_data'; + } + + /** + * The email address of the user is too long to be disabled. + */ + export interface MembersRemoveErrorEmailAddressTooLongToBeDisabled { + '.tag': 'email_address_too_long_to_be_disabled'; + } + + /** + * Cannot keep account of an invited user. + */ + export interface MembersRemoveErrorCannotKeepInvitedUserAccount { + '.tag': 'cannot_keep_invited_user_account'; + } + + /** + * Cannot retain team shares when the user's data is marked for deletion on + * their linked devices. The argument wipe_data should be set to false. + */ + export interface MembersRemoveErrorCannotRetainSharesWhenDataWiped { + '.tag': 'cannot_retain_shares_when_data_wiped'; + } + + /** + * The user's account must be kept in order to retain team shares. The + * argument keep_account should be set to true. + */ + export interface MembersRemoveErrorCannotRetainSharesWhenNoAccountKept { + '.tag': 'cannot_retain_shares_when_no_account_kept'; + } + + /** + * Externally sharing files, folders, and links must be enabled in team + * settings in order to retain team shares for the user. + */ + export interface MembersRemoveErrorCannotRetainSharesWhenTeamExternalSharingOff { + '.tag': 'cannot_retain_shares_when_team_external_sharing_off'; + } + + /** + * Only a team admin, can convert this account to a Basic account. + */ + export interface MembersRemoveErrorCannotKeepAccount { + '.tag': 'cannot_keep_account'; + } + + /** + * This user content is currently being held. To convert this member's + * account to a Basic account, you'll first need to remove them from the + * hold. + */ + export interface MembersRemoveErrorCannotKeepAccountUnderLegalHold { + '.tag': 'cannot_keep_account_under_legal_hold'; + } + + /** + * To convert this member to a Basic account, they'll first need to sign in + * to Dropbox and agree to the terms of service. + */ + export interface MembersRemoveErrorCannotKeepAccountRequiredToSignTos { + '.tag': 'cannot_keep_account_required_to_sign_tos'; + } + + export type MembersRemoveError = MembersTransferFilesError | MembersRemoveErrorRemoveLastAdmin | MembersRemoveErrorCannotKeepAccountAndTransfer | MembersRemoveErrorCannotKeepAccountAndDeleteData | MembersRemoveErrorEmailAddressTooLongToBeDisabled | MembersRemoveErrorCannotKeepInvitedUserAccount | MembersRemoveErrorCannotRetainSharesWhenDataWiped | MembersRemoveErrorCannotRetainSharesWhenNoAccountKept | MembersRemoveErrorCannotRetainSharesWhenTeamExternalSharingOff | MembersRemoveErrorCannotKeepAccount | MembersRemoveErrorCannotKeepAccountUnderLegalHold | MembersRemoveErrorCannotKeepAccountRequiredToSignTos; + + export interface MembersSendWelcomeErrorOther { + '.tag': 'other'; + } + + export type MembersSendWelcomeError = MemberSelectorError | MembersSendWelcomeErrorOther; + + /** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + */ + export interface MembersSetPermissions2Arg { + /** + * Identity of user whose role will be set. + */ + user: UserSelectorArg; + /** + * The new roles for the member. Send empty list to make user member only. + * For now, only up to one role is allowed. + */ + new_roles?: Array; + } + + /** + * Cannot remove the admin setting of the last admin. + */ + export interface MembersSetPermissions2ErrorLastAdmin { + '.tag': 'last_admin'; + } + + /** + * The user is not a member of the team. + */ + export interface MembersSetPermissions2ErrorUserNotInTeam { + '.tag': 'user_not_in_team'; + } + + /** + * Cannot remove/grant permissions. This can happen if the team member is + * suspended. + */ + export interface MembersSetPermissions2ErrorCannotSetPermissions { + '.tag': 'cannot_set_permissions'; + } + + /** + * No matching role found. At least one of the provided new_roles does not + * exist on this team. + */ + export interface MembersSetPermissions2ErrorRoleNotFound { + '.tag': 'role_not_found'; + } + + export interface MembersSetPermissions2ErrorOther { + '.tag': 'other'; + } + + export type MembersSetPermissions2Error = UserSelectorError | MembersSetPermissions2ErrorLastAdmin | MembersSetPermissions2ErrorUserNotInTeam | MembersSetPermissions2ErrorCannotSetPermissions | MembersSetPermissions2ErrorRoleNotFound | MembersSetPermissions2ErrorOther; + + export interface MembersSetPermissions2Result { + /** + * The member ID of the user to which the change was applied. + */ + team_member_id: team_common.TeamMemberId; + /** + * The roles after the change. Empty in case the user become a non-admin. + */ + roles?: Array; + } + + /** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + */ + export interface MembersSetPermissionsArg { + /** + * Identity of user whose role will be set. + */ + user: UserSelectorArg; + /** + * The new role of the member. + */ + new_role: AdminTier; + } + + /** + * Cannot remove the admin setting of the last admin. + */ + export interface MembersSetPermissionsErrorLastAdmin { + '.tag': 'last_admin'; + } + + /** + * The user is not a member of the team. + */ + export interface MembersSetPermissionsErrorUserNotInTeam { + '.tag': 'user_not_in_team'; + } + + /** + * Cannot remove/grant permissions. + */ + export interface MembersSetPermissionsErrorCannotSetPermissions { + '.tag': 'cannot_set_permissions'; + } + + /** + * Team is full. The organization has no available licenses. + */ + export interface MembersSetPermissionsErrorTeamLicenseLimit { + '.tag': 'team_license_limit'; + } + + export interface MembersSetPermissionsErrorOther { + '.tag': 'other'; + } + + export type MembersSetPermissionsError = UserSelectorError | MembersSetPermissionsErrorLastAdmin | MembersSetPermissionsErrorUserNotInTeam | MembersSetPermissionsErrorCannotSetPermissions | MembersSetPermissionsErrorTeamLicenseLimit | MembersSetPermissionsErrorOther; + + export interface MembersSetPermissionsResult { + /** + * The member ID of the user to which the change was applied. + */ + team_member_id: team_common.TeamMemberId; + /** + * The role after the change. + */ + role: AdminTier; + } + + /** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. At least one of new_email, new_external_id, + * new_given_name, and/or new_surname must be provided. + */ + export interface MembersSetProfileArg { + /** + * Identity of user whose profile will be set. + */ + user: UserSelectorArg; + /** + * New email for member. + */ + new_email?: common.EmailAddress; + /** + * New external ID for member. + */ + new_external_id?: team_common.MemberExternalId; + /** + * New given name for member. + */ + new_given_name?: common.OptionalNamePart; + /** + * New surname for member. + */ + new_surname?: common.OptionalNamePart; + /** + * New persistent ID. This field only available to teams using persistent + * ID SAML configuration. + */ + new_persistent_id?: string; + /** + * New value for whether the user is a directory restricted user. + */ + new_is_directory_restricted?: boolean; + } + + /** + * It is unsafe to use both external_id and new_external_id. + */ + export interface MembersSetProfileErrorExternalIdAndNewExternalIdUnsafe { + '.tag': 'external_id_and_new_external_id_unsafe'; + } + + /** + * None of new_email, new_given_name, new_surname, or new_external_id are + * specified. + */ + export interface MembersSetProfileErrorNoNewDataSpecified { + '.tag': 'no_new_data_specified'; + } + + /** + * Email is already reserved for another user. + */ + export interface MembersSetProfileErrorEmailReservedForOtherUser { + '.tag': 'email_reserved_for_other_user'; + } + + /** + * The external ID is already in use by another team member. + */ + export interface MembersSetProfileErrorExternalIdUsedByOtherUser { + '.tag': 'external_id_used_by_other_user'; + } + + /** + * Modifying deleted users is not allowed. + */ + export interface MembersSetProfileErrorSetProfileDisallowed { + '.tag': 'set_profile_disallowed'; + } + + /** + * Parameter new_email cannot be empty. + */ + export interface MembersSetProfileErrorParamCannotBeEmpty { + '.tag': 'param_cannot_be_empty'; + } + + /** + * Persistent ID is only available to teams with persistent ID SAML + * configuration. Please contact Dropbox for more information. + */ + export interface MembersSetProfileErrorPersistentIdDisabled { + '.tag': 'persistent_id_disabled'; + } + + /** + * The persistent ID is already in use by another team member. + */ + export interface MembersSetProfileErrorPersistentIdUsedByOtherUser { + '.tag': 'persistent_id_used_by_other_user'; + } + + /** + * Directory Restrictions option is not available. + */ + export interface MembersSetProfileErrorDirectoryRestrictedOff { + '.tag': 'directory_restricted_off'; + } + + export interface MembersSetProfileErrorOther { + '.tag': 'other'; + } + + export type MembersSetProfileError = MemberSelectorError | MembersSetProfileErrorExternalIdAndNewExternalIdUnsafe | MembersSetProfileErrorNoNewDataSpecified | MembersSetProfileErrorEmailReservedForOtherUser | MembersSetProfileErrorExternalIdUsedByOtherUser | MembersSetProfileErrorSetProfileDisallowed | MembersSetProfileErrorParamCannotBeEmpty | MembersSetProfileErrorPersistentIdDisabled | MembersSetProfileErrorPersistentIdUsedByOtherUser | MembersSetProfileErrorDirectoryRestrictedOff | MembersSetProfileErrorOther; + + export interface MembersSetProfilePhotoArg { + /** + * Identity of the user whose profile photo will be set. + */ + user: UserSelectorArg; + /** + * Image to set as the member's new profile photo. + */ + photo: account.PhotoSourceArg; + } + + /** + * Modifying deleted users is not allowed. + */ + export interface MembersSetProfilePhotoErrorSetProfileDisallowed { + '.tag': 'set_profile_disallowed'; + } + + export interface MembersSetProfilePhotoErrorPhotoError { + '.tag': 'photo_error'; + photo_error: account.SetProfilePhotoError; + } + + export interface MembersSetProfilePhotoErrorOther { + '.tag': 'other'; + } + + export type MembersSetProfilePhotoError = MemberSelectorError | MembersSetProfilePhotoErrorSetProfileDisallowed | MembersSetProfilePhotoErrorPhotoError | MembersSetProfilePhotoErrorOther; + + /** + * The user is not active, so it cannot be suspended. + */ + export interface MembersSuspendErrorSuspendInactiveUser { + '.tag': 'suspend_inactive_user'; + } + + /** + * The user is the last admin of the team, so it cannot be suspended. + */ + export interface MembersSuspendErrorSuspendLastAdmin { + '.tag': 'suspend_last_admin'; + } + + /** + * Team is full. The organization has no available licenses. + */ + export interface MembersSuspendErrorTeamLicenseLimit { + '.tag': 'team_license_limit'; + } + + export type MembersSuspendError = MembersDeactivateError | MembersSuspendErrorSuspendInactiveUser | MembersSuspendErrorSuspendLastAdmin | MembersSuspendErrorTeamLicenseLimit; + + /** + * Expected removed user and transfer_dest user to be different. + */ + export interface MembersTransferFilesErrorRemovedAndTransferDestShouldDiffer { + '.tag': 'removed_and_transfer_dest_should_differ'; + } + + /** + * Expected removed user and transfer_admin user to be different. + */ + export interface MembersTransferFilesErrorRemovedAndTransferAdminShouldDiffer { + '.tag': 'removed_and_transfer_admin_should_differ'; + } + + /** + * No matching user found for the argument transfer_dest_id. + */ + export interface MembersTransferFilesErrorTransferDestUserNotFound { + '.tag': 'transfer_dest_user_not_found'; + } + + /** + * The provided transfer_dest_id does not exist on this team. + */ + export interface MembersTransferFilesErrorTransferDestUserNotInTeam { + '.tag': 'transfer_dest_user_not_in_team'; + } + + /** + * The provided transfer_admin_id does not exist on this team. + */ + export interface MembersTransferFilesErrorTransferAdminUserNotInTeam { + '.tag': 'transfer_admin_user_not_in_team'; + } + + /** + * No matching user found for the argument transfer_admin_id. + */ + export interface MembersTransferFilesErrorTransferAdminUserNotFound { + '.tag': 'transfer_admin_user_not_found'; + } + + /** + * The transfer_admin_id argument must be provided when file transfer is + * requested. + */ + export interface MembersTransferFilesErrorUnspecifiedTransferAdminId { + '.tag': 'unspecified_transfer_admin_id'; + } + + /** + * Specified transfer_admin user is not a team admin. + */ + export interface MembersTransferFilesErrorTransferAdminIsNotAdmin { + '.tag': 'transfer_admin_is_not_admin'; + } + + /** + * The recipient user's email is not verified. + */ + export interface MembersTransferFilesErrorRecipientNotVerified { + '.tag': 'recipient_not_verified'; + } + + export type MembersTransferFilesError = MembersDeactivateError | MembersTransferFilesErrorRemovedAndTransferDestShouldDiffer | MembersTransferFilesErrorRemovedAndTransferAdminShouldDiffer | MembersTransferFilesErrorTransferDestUserNotFound | MembersTransferFilesErrorTransferDestUserNotInTeam | MembersTransferFilesErrorTransferAdminUserNotInTeam | MembersTransferFilesErrorTransferAdminUserNotFound | MembersTransferFilesErrorUnspecifiedTransferAdminId | MembersTransferFilesErrorTransferAdminIsNotAdmin | MembersTransferFilesErrorRecipientNotVerified; + + /** + * The user's data is being transferred. Please wait some time before + * retrying. + */ + export interface MembersTransferFormerMembersFilesErrorUserDataIsBeingTransferred { + '.tag': 'user_data_is_being_transferred'; + } + + /** + * No matching removed user found for the argument user. + */ + export interface MembersTransferFormerMembersFilesErrorUserNotRemoved { + '.tag': 'user_not_removed'; + } + + /** + * User files aren't transferable anymore. + */ + export interface MembersTransferFormerMembersFilesErrorUserDataCannotBeTransferred { + '.tag': 'user_data_cannot_be_transferred'; + } + + /** + * User's data has already been transferred to another user. + */ + export interface MembersTransferFormerMembersFilesErrorUserDataAlreadyTransferred { + '.tag': 'user_data_already_transferred'; + } + + export type MembersTransferFormerMembersFilesError = MembersTransferFilesError | MembersTransferFormerMembersFilesErrorUserDataIsBeingTransferred | MembersTransferFormerMembersFilesErrorUserNotRemoved | MembersTransferFormerMembersFilesErrorUserDataCannotBeTransferred | MembersTransferFormerMembersFilesErrorUserDataAlreadyTransferred; + + /** + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + */ + export interface MembersUnsuspendArg { + /** + * Identity of user to unsuspend. + */ + user: UserSelectorArg; + } + + /** + * The user is unsuspended, so it cannot be unsuspended again. + */ + export interface MembersUnsuspendErrorUnsuspendNonSuspendedMember { + '.tag': 'unsuspend_non_suspended_member'; + } + + /** + * Team is full. The organization has no available licenses. + */ + export interface MembersUnsuspendErrorTeamLicenseLimit { + '.tag': 'team_license_limit'; + } + + export type MembersUnsuspendError = MembersDeactivateError | MembersUnsuspendErrorUnsuspendNonSuspendedMember | MembersUnsuspendErrorTeamLicenseLimit; + + /** + * Official Dropbox iPhone client. + */ + export interface MobileClientPlatformIphone { + '.tag': 'iphone'; + } + + /** + * Official Dropbox iPad client. + */ + export interface MobileClientPlatformIpad { + '.tag': 'ipad'; + } + + /** + * Official Dropbox Android client. + */ + export interface MobileClientPlatformAndroid { + '.tag': 'android'; + } + + /** + * Official Dropbox Windows phone client. + */ + export interface MobileClientPlatformWindowsPhone { + '.tag': 'windows_phone'; + } + + /** + * Official Dropbox Blackberry client. + */ + export interface MobileClientPlatformBlackberry { + '.tag': 'blackberry'; + } + + export interface MobileClientPlatformOther { + '.tag': 'other'; + } + + export type MobileClientPlatform = MobileClientPlatformIphone | MobileClientPlatformIpad | MobileClientPlatformAndroid | MobileClientPlatformWindowsPhone | MobileClientPlatformBlackberry | MobileClientPlatformOther; + + /** + * Information about linked Dropbox mobile client sessions. + */ + export interface MobileClientSession extends DeviceSession { + /** + * The device name. + */ + device_name: string; + /** + * The mobile application type. + */ + client_type: MobileClientPlatform; + /** + * The dropbox client version. + */ + client_version?: string; + /** + * The hosting OS version. + */ + os_version?: string; + /** + * last carrier used by the device. + */ + last_carrier?: string; + } + + /** + * Properties of a namespace. + */ + export interface NamespaceMetadata { + /** + * The name of this namespace. + */ + name: string; + /** + * The ID of this namespace. + */ + namespace_id: common.SharedFolderId; + /** + * The type of this namespace. + */ + namespace_type: NamespaceType; + /** + * If this is a team member or app folder, the ID of the owning team + * member. Otherwise, this field is not present. + */ + team_member_id?: team_common.TeamMemberId; + } + + /** + * App sandbox folder. + */ + export interface NamespaceTypeAppFolder { + '.tag': 'app_folder'; + } + + /** + * Shared folder. + */ + export interface NamespaceTypeSharedFolder { + '.tag': 'shared_folder'; + } + + /** + * Top-level team-owned folder. + */ + export interface NamespaceTypeTeamFolder { + '.tag': 'team_folder'; + } + + /** + * Team member's home folder. + */ + export interface NamespaceTypeTeamMemberFolder { + '.tag': 'team_member_folder'; + } + + export interface NamespaceTypeOther { + '.tag': 'other'; + } + + export type NamespaceType = NamespaceTypeAppFolder | NamespaceTypeSharedFolder | NamespaceTypeTeamFolder | NamespaceTypeTeamMemberFolder | NamespaceTypeOther; + + /** + * Successfully removed user. + */ + export interface RemoveCustomQuotaResultSuccess { + '.tag': 'success'; + success: UserSelectorArg; + } + + /** + * Invalid user (not in team). + */ + export interface RemoveCustomQuotaResultInvalidUser { + '.tag': 'invalid_user'; + invalid_user: UserSelectorArg; + } + + export interface RemoveCustomQuotaResultOther { + '.tag': 'other'; + } + + /** + * User result for setting member custom quota. + */ + export type RemoveCustomQuotaResult = RemoveCustomQuotaResultSuccess | RemoveCustomQuotaResultInvalidUser | RemoveCustomQuotaResultOther; + + export interface RemovedStatus { + /** + * True if the removed team member is recoverable. + */ + is_recoverable: boolean; + /** + * True if the team member's account was converted to individual account. + */ + is_disconnected: boolean; + } + + /** + * A verification email was successfully sent to the secondary email + * address. + */ + export interface ResendSecondaryEmailResultSuccess { + '.tag': 'success'; + success: common.EmailAddress; + } + + /** + * This secondary email address is not pending for the user. + */ + export interface ResendSecondaryEmailResultNotPending { + '.tag': 'not_pending'; + not_pending: common.EmailAddress; + } + + /** + * Too many emails are being sent to this email address. Please try again + * later. + */ + export interface ResendSecondaryEmailResultRateLimited { + '.tag': 'rate_limited'; + rate_limited: common.EmailAddress; + } + + export interface ResendSecondaryEmailResultOther { + '.tag': 'other'; + } + + /** + * Result of trying to resend verification email to a secondary email + * address. 'success' is the only value indicating that a verification email + * was successfully sent. The other values explain the type of error that + * occurred, and include the email for which the error occurred. + */ + export type ResendSecondaryEmailResult = ResendSecondaryEmailResultSuccess | ResendSecondaryEmailResultNotPending | ResendSecondaryEmailResultRateLimited | ResendSecondaryEmailResultOther; + + export interface ResendVerificationEmailArg { + /** + * List of users and secondary emails to resend verification emails to. + */ + emails_to_resend: Array; + } + + /** + * List of users and resend results. + */ + export interface ResendVerificationEmailResult { + results: Array; + } + + export interface RevokeDesktopClientArg extends DeviceSessionArg { + /** + * Defaults to False. + */ + delete_on_unlink?: boolean; + } + + /** + * End an active session. + */ + export interface RevokeDeviceSessionArgWebSession extends DeviceSessionArg { + '.tag': 'web_session'; + } + + /** + * Unlink a linked desktop device. + */ + export interface RevokeDeviceSessionArgDesktopClient extends RevokeDesktopClientArg { + '.tag': 'desktop_client'; + } + + /** + * Unlink a linked mobile device. + */ + export interface RevokeDeviceSessionArgMobileClient extends DeviceSessionArg { + '.tag': 'mobile_client'; + } + + export type RevokeDeviceSessionArg = RevokeDeviceSessionArgWebSession | RevokeDeviceSessionArgDesktopClient | RevokeDeviceSessionArgMobileClient; + + export interface RevokeDeviceSessionBatchArg { + revoke_devices: Array; + } + + export interface RevokeDeviceSessionBatchErrorOther { + '.tag': 'other'; + } + + export type RevokeDeviceSessionBatchError = RevokeDeviceSessionBatchErrorOther; + + export interface RevokeDeviceSessionBatchResult { + revoke_devices_status: Array; + } + + /** + * Device session not found. + */ + export interface RevokeDeviceSessionErrorDeviceSessionNotFound { + '.tag': 'device_session_not_found'; + } + + /** + * Member not found. + */ + export interface RevokeDeviceSessionErrorMemberNotFound { + '.tag': 'member_not_found'; + } + + export interface RevokeDeviceSessionErrorOther { + '.tag': 'other'; + } + + export type RevokeDeviceSessionError = RevokeDeviceSessionErrorDeviceSessionNotFound | RevokeDeviceSessionErrorMemberNotFound | RevokeDeviceSessionErrorOther; + + export interface RevokeDeviceSessionStatus { + /** + * Result of the revoking request. + */ + success: boolean; + /** + * The error cause in case of a failure. + */ + error_type?: RevokeDeviceSessionError; + } + + export interface RevokeLinkedApiAppArg { + /** + * The application's unique id. + */ + app_id: string; + /** + * The unique id of the member owning the device. + */ + team_member_id: string; + /** + * Defaults to True. + */ + keep_app_folder?: boolean; + } + + export interface RevokeLinkedApiAppBatchArg { + revoke_linked_app: Array; + } + + export interface RevokeLinkedAppBatchErrorOther { + '.tag': 'other'; + } + + /** + * Error returned by linkedAppsRevokeLinkedAppBatch(). + */ + export type RevokeLinkedAppBatchError = RevokeLinkedAppBatchErrorOther; + + export interface RevokeLinkedAppBatchResult { + revoke_linked_app_status: Array; + } + + /** + * Application not found. + */ + export interface RevokeLinkedAppErrorAppNotFound { + '.tag': 'app_not_found'; + } + + /** + * Member not found. + */ + export interface RevokeLinkedAppErrorMemberNotFound { + '.tag': 'member_not_found'; + } + + /** + * App folder removal is not supported. + */ + export interface RevokeLinkedAppErrorAppFolderRemovalNotSupported { + '.tag': 'app_folder_removal_not_supported'; + } + + export interface RevokeLinkedAppErrorOther { + '.tag': 'other'; + } + + /** + * Error returned by linkedAppsRevokeLinkedApp(). + */ + export type RevokeLinkedAppError = RevokeLinkedAppErrorAppNotFound | RevokeLinkedAppErrorMemberNotFound | RevokeLinkedAppErrorAppFolderRemovalNotSupported | RevokeLinkedAppErrorOther; + + export interface RevokeLinkedAppStatus { + /** + * Result of the revoking request. + */ + success: boolean; + /** + * The error cause in case of a failure. + */ + error_type?: RevokeLinkedAppError; + } + + export interface SetCustomQuotaArg { + /** + * List of users and their custom quotas. + */ + users_and_quotas: Array; + } + + /** + * Some of the users are on the excluded users list and can't have custom + * quota set. + */ + export interface SetCustomQuotaErrorSomeUsersAreExcluded { + '.tag': 'some_users_are_excluded'; + } + + /** + * Error returned when setting member custom quota. + */ + export type SetCustomQuotaError = CustomQuotaError | SetCustomQuotaErrorSomeUsersAreExcluded; + + /** + * Structure representing Approve List entries. Domain and emails are + * supported. At least one entry of any supported type is required. + */ + export interface SharingAllowlistAddArgs { + /** + * List of domains represented by valid string representation + * (RFC-1034/5). + */ + domains?: Array; + /** + * List of emails represented by valid string representation + * (RFC-5322/822). + */ + emails?: Array; + } + + /** + * One of provided values is not valid. + */ + export interface SharingAllowlistAddErrorMalformedEntry { + '.tag': 'malformed_entry'; + malformed_entry: string; + } + + /** + * Neither single domain nor email provided. + */ + export interface SharingAllowlistAddErrorNoEntriesProvided { + '.tag': 'no_entries_provided'; + } + + /** + * Too many entries provided within one call. + */ + export interface SharingAllowlistAddErrorTooManyEntriesProvided { + '.tag': 'too_many_entries_provided'; + } + + /** + * Team entries limit reached. + */ + export interface SharingAllowlistAddErrorTeamLimitReached { + '.tag': 'team_limit_reached'; + } + + /** + * Unknown error. + */ + export interface SharingAllowlistAddErrorUnknownError { + '.tag': 'unknown_error'; + } + + /** + * Entries already exists. + */ + export interface SharingAllowlistAddErrorEntriesAlreadyExist { + '.tag': 'entries_already_exist'; + entries_already_exist: string; + } + + export interface SharingAllowlistAddErrorOther { + '.tag': 'other'; + } + + export type SharingAllowlistAddError = SharingAllowlistAddErrorMalformedEntry | SharingAllowlistAddErrorNoEntriesProvided | SharingAllowlistAddErrorTooManyEntriesProvided | SharingAllowlistAddErrorTeamLimitReached | SharingAllowlistAddErrorUnknownError | SharingAllowlistAddErrorEntriesAlreadyExist | SharingAllowlistAddErrorOther; + + /** + * This struct is empty. The comment here is intentionally emitted to avoid + * indentation issues with Stone. + */ + export interface SharingAllowlistAddResponse { + } + + export interface SharingAllowlistListArg { + /** + * Defaults to 1000. + */ + limit?: number; + } + + export interface SharingAllowlistListContinueArg { + /** + * The cursor returned from a previous call to sharingAllowlistList() or + * sharingAllowlistListContinue(). + */ + cursor: string; + } + + /** + * Provided cursor is not valid. + */ + export interface SharingAllowlistListContinueErrorInvalidCursor { + '.tag': 'invalid_cursor'; + } + + export interface SharingAllowlistListContinueErrorOther { + '.tag': 'other'; + } + + export type SharingAllowlistListContinueError = SharingAllowlistListContinueErrorInvalidCursor | SharingAllowlistListContinueErrorOther; + + /** + * This struct is empty. The comment here is intentionally emitted to avoid + * indentation issues with Stone. + */ + export interface SharingAllowlistListError { + } + + export interface SharingAllowlistListResponse { + /** + * List of domains represented by valid string representation + * (RFC-1034/5). + */ + domains: Array; + /** + * List of emails represented by valid string representation + * (RFC-5322/822). + */ + emails: Array; + /** + * Defaults to . + */ + cursor?: string; + /** + * Defaults to False. + */ + has_more?: boolean; + } + + export interface SharingAllowlistRemoveArgs { + /** + * List of domains represented by valid string representation + * (RFC-1034/5). + */ + domains?: Array; + /** + * List of emails represented by valid string representation + * (RFC-5322/822). + */ + emails?: Array; + } + + /** + * One of provided values is not valid. + */ + export interface SharingAllowlistRemoveErrorMalformedEntry { + '.tag': 'malformed_entry'; + malformed_entry: string; + } + + /** + * One or more provided values do not exist. + */ + export interface SharingAllowlistRemoveErrorEntriesDoNotExist { + '.tag': 'entries_do_not_exist'; + entries_do_not_exist: string; + } + + /** + * Neither single domain nor email provided. + */ + export interface SharingAllowlistRemoveErrorNoEntriesProvided { + '.tag': 'no_entries_provided'; + } + + /** + * Too many entries provided within one call. + */ + export interface SharingAllowlistRemoveErrorTooManyEntriesProvided { + '.tag': 'too_many_entries_provided'; + } + + /** + * Unknown error. + */ + export interface SharingAllowlistRemoveErrorUnknownError { + '.tag': 'unknown_error'; + } + + export interface SharingAllowlistRemoveErrorOther { + '.tag': 'other'; + } + + export type SharingAllowlistRemoveError = SharingAllowlistRemoveErrorMalformedEntry | SharingAllowlistRemoveErrorEntriesDoNotExist | SharingAllowlistRemoveErrorNoEntriesProvided | SharingAllowlistRemoveErrorTooManyEntriesProvided | SharingAllowlistRemoveErrorUnknownError | SharingAllowlistRemoveErrorOther; + + /** + * This struct is empty. The comment here is intentionally emitted to avoid + * indentation issues with Stone. + */ + export interface SharingAllowlistRemoveResponse { + } + + /** + * Describes the number of users in a specific storage bucket. + */ + export interface StorageBucket { + /** + * The name of the storage bucket. For example, '1G' is a bucket of users + * with storage size up to 1 Giga. + */ + bucket: string; + /** + * The number of people whose storage is in the range of this storage + * bucket. + */ + users: number; + } + + /** + * The team folder ID is invalid. + */ + export interface TeamFolderAccessErrorInvalidTeamFolderId { + '.tag': 'invalid_team_folder_id'; + } + + /** + * The authenticated app does not have permission to manage that team + * folder. + */ + export interface TeamFolderAccessErrorNoAccess { + '.tag': 'no_access'; + } + + export interface TeamFolderAccessErrorOther { + '.tag': 'other'; + } + + export type TeamFolderAccessError = TeamFolderAccessErrorInvalidTeamFolderId | TeamFolderAccessErrorNoAccess | TeamFolderAccessErrorOther; + + export type TeamFolderActivateError = BaseTeamFolderError; + + export interface TeamFolderArchiveArg extends TeamFolderIdArg { + /** + * Defaults to False. + */ + force_async_off?: boolean; + } + + export type TeamFolderArchiveError = BaseTeamFolderError; + + /** + * The archive job has finished. The value is the metadata for the resulting + * team folder. + */ + export interface TeamFolderArchiveJobStatusComplete extends TeamFolderMetadata { + '.tag': 'complete'; + } + + /** + * Error occurred while performing an asynchronous job from + * teamFolderArchive(). + */ + export interface TeamFolderArchiveJobStatusFailed { + '.tag': 'failed'; + failed: TeamFolderArchiveError; + } + + export type TeamFolderArchiveJobStatus = async.PollResultBase | TeamFolderArchiveJobStatusComplete | TeamFolderArchiveJobStatusFailed; + + export interface TeamFolderArchiveLaunchComplete extends TeamFolderMetadata { + '.tag': 'complete'; + } + + export type TeamFolderArchiveLaunch = async.LaunchResultBase | TeamFolderArchiveLaunchComplete; + + export interface TeamFolderCreateArg { + /** + * Name for the new team folder. + */ + name: string; + /** + * The sync setting to apply to this team folder. Only permitted if the + * team has team selective sync enabled. + */ + sync_setting?: files.SyncSettingArg; + } + + /** + * The provided name cannot be used. + */ + export interface TeamFolderCreateErrorInvalidFolderName { + '.tag': 'invalid_folder_name'; + } + + /** + * There is already a team folder with the provided name. + */ + export interface TeamFolderCreateErrorFolderNameAlreadyUsed { + '.tag': 'folder_name_already_used'; + } + + /** + * The provided name cannot be used because it is reserved. + */ + export interface TeamFolderCreateErrorFolderNameReserved { + '.tag': 'folder_name_reserved'; + } + + /** + * An error occurred setting the sync settings. + */ + export interface TeamFolderCreateErrorSyncSettingsError { + '.tag': 'sync_settings_error'; + sync_settings_error: files.SyncSettingsError; + } + + export interface TeamFolderCreateErrorOther { + '.tag': 'other'; + } + + export type TeamFolderCreateError = TeamFolderCreateErrorInvalidFolderName | TeamFolderCreateErrorFolderNameAlreadyUsed | TeamFolderCreateErrorFolderNameReserved | TeamFolderCreateErrorSyncSettingsError | TeamFolderCreateErrorOther; + + /** + * An ID that was provided as a parameter to teamFolderGetInfo() did not + * match any of the team's team folders. + */ + export interface TeamFolderGetInfoItemIdNotFound { + '.tag': 'id_not_found'; + id_not_found: string; + } + + /** + * Properties of a team folder. + */ + export interface TeamFolderGetInfoItemTeamFolderMetadata extends TeamFolderMetadata { + '.tag': 'team_folder_metadata'; + } + + export type TeamFolderGetInfoItem = TeamFolderGetInfoItemIdNotFound | TeamFolderGetInfoItemTeamFolderMetadata; + + export interface TeamFolderIdArg { + /** + * The ID of the team folder. + */ + team_folder_id: common.SharedFolderId; + } + + export interface TeamFolderIdListArg { + /** + * The list of team folder IDs. + */ + team_folder_ids: Array; + } + + /** + * The folder is active and the operation did not succeed. + */ + export interface TeamFolderInvalidStatusErrorActive { + '.tag': 'active'; + } + + /** + * The folder is archived and the operation did not succeed. + */ + export interface TeamFolderInvalidStatusErrorArchived { + '.tag': 'archived'; + } + + /** + * The folder is being archived and the operation did not succeed. + */ + export interface TeamFolderInvalidStatusErrorArchiveInProgress { + '.tag': 'archive_in_progress'; + } + + export interface TeamFolderInvalidStatusErrorOther { + '.tag': 'other'; + } + + export type TeamFolderInvalidStatusError = TeamFolderInvalidStatusErrorActive | TeamFolderInvalidStatusErrorArchived | TeamFolderInvalidStatusErrorArchiveInProgress | TeamFolderInvalidStatusErrorOther; + + export interface TeamFolderListArg { + /** + * Defaults to 1000. + */ + limit?: number; + } + + export interface TeamFolderListContinueArg { + /** + * Indicates from what point to get the next set of team folders. + */ + cursor: string; + } + + /** + * The cursor is invalid. + */ + export interface TeamFolderListContinueErrorInvalidCursor { + '.tag': 'invalid_cursor'; + } + + export interface TeamFolderListContinueErrorOther { + '.tag': 'other'; + } + + export type TeamFolderListContinueError = TeamFolderListContinueErrorInvalidCursor | TeamFolderListContinueErrorOther; + + export interface TeamFolderListError { + access_error: TeamFolderAccessError; + } + + /** + * Result for teamFolderList() and teamFolderListContinue(). + */ + export interface TeamFolderListResult { + /** + * List of all team folders in the authenticated team. + */ + team_folders: Array; + /** + * Pass the cursor into teamFolderListContinue() to obtain additional team + * folders. + */ + cursor: string; + /** + * Is true if there are additional team folders that have not been + * returned yet. An additional call to teamFolderListContinue() can + * retrieve them. + */ + has_more: boolean; + } + + /** + * Properties of a team folder. + */ + export interface TeamFolderMetadata { + /** + * The ID of the team folder. + */ + team_folder_id: common.SharedFolderId; + /** + * The name of the team folder. + */ + name: string; + /** + * The status of the team folder. + */ + status: TeamFolderStatus; + /** + * True if this team folder is a shared team root. + */ + is_team_shared_dropbox: boolean; + /** + * The sync setting applied to this team folder. + */ + sync_setting: files.SyncSetting; + /** + * Sync settings applied to contents of this team folder. + */ + content_sync_settings: Array; + } + + export type TeamFolderPermanentlyDeleteError = BaseTeamFolderError; + + export interface TeamFolderRenameArg extends TeamFolderIdArg { + /** + * New team folder name. + */ + name: string; + } + + /** + * The provided folder name cannot be used. + */ + export interface TeamFolderRenameErrorInvalidFolderName { + '.tag': 'invalid_folder_name'; + } + + /** + * There is already a team folder with the same name. + */ + export interface TeamFolderRenameErrorFolderNameAlreadyUsed { + '.tag': 'folder_name_already_used'; + } + + /** + * The provided name cannot be used because it is reserved. + */ + export interface TeamFolderRenameErrorFolderNameReserved { + '.tag': 'folder_name_reserved'; + } + + export type TeamFolderRenameError = BaseTeamFolderError | TeamFolderRenameErrorInvalidFolderName | TeamFolderRenameErrorFolderNameAlreadyUsed | TeamFolderRenameErrorFolderNameReserved; + + /** + * The team folder and sub-folders are available to all members. + */ + export interface TeamFolderStatusActive { + '.tag': 'active'; + } + + /** + * The team folder is not accessible outside of the team folder manager. + */ + export interface TeamFolderStatusArchived { + '.tag': 'archived'; + } + + /** + * The team folder is not accessible outside of the team folder manager. + */ + export interface TeamFolderStatusArchiveInProgress { + '.tag': 'archive_in_progress'; + } + + export interface TeamFolderStatusOther { + '.tag': 'other'; + } + + export type TeamFolderStatus = TeamFolderStatusActive | TeamFolderStatusArchived | TeamFolderStatusArchiveInProgress | TeamFolderStatusOther; + + /** + * This action is not allowed for a shared team root. + */ + export interface TeamFolderTeamSharedDropboxErrorDisallowed { + '.tag': 'disallowed'; + } + + export interface TeamFolderTeamSharedDropboxErrorOther { + '.tag': 'other'; + } + + export type TeamFolderTeamSharedDropboxError = TeamFolderTeamSharedDropboxErrorDisallowed | TeamFolderTeamSharedDropboxErrorOther; + + export interface TeamFolderUpdateSyncSettingsArg extends TeamFolderIdArg { + /** + * Sync setting to apply to the team folder itself. Only meaningful if the + * team folder is not a shared team root. + */ + sync_setting?: files.SyncSettingArg; + /** + * Sync settings to apply to contents of this team folder. + */ + content_sync_settings?: Array; + } + + /** + * An error occurred setting the sync settings. + */ + export interface TeamFolderUpdateSyncSettingsErrorSyncSettingsError { + '.tag': 'sync_settings_error'; + sync_settings_error: files.SyncSettingsError; + } + + export type TeamFolderUpdateSyncSettingsError = BaseTeamFolderError | TeamFolderUpdateSyncSettingsErrorSyncSettingsError; + + export interface TeamGetInfoResult { + /** + * The name of the team. + */ + name: string; + /** + * The ID of the team. + */ + team_id: string; + /** + * The number of licenses available to the team. + */ + num_licensed_users: number; + /** + * The number of accounts that have been invited or are already active + * members of the team. + */ + num_provisioned_users: number; + /** + * The number of licenses used on the team. + */ + num_used_licenses: number; + policies: team_policies.TeamMemberPolicies; + } + + /** + * Information about a team member. + */ + export interface TeamMemberInfo { + /** + * Profile of a user as a member of a team. + */ + profile: TeamMemberProfile; + /** + * The user's role in the team. + */ + role: AdminTier; + } + + /** + * Information about a team member. + */ + export interface TeamMemberInfoV2 { + /** + * Profile of a user as a member of a team. + */ + profile: TeamMemberProfile; + /** + * The user's roles in the team. + */ + roles?: Array; + } + + /** + * Information about a team member, after the change, like at + * membersSetProfileV2(). + */ + export interface TeamMemberInfoV2Result { + /** + * Member info, after the change. + */ + member_info: TeamMemberInfoV2; + } + + /** + * Profile of a user as a member of a team. + */ + export interface TeamMemberProfile extends MemberProfile { + /** + * List of group IDs of groups that the user belongs to. + */ + groups: Array; + /** + * The namespace id of the user's root folder. + */ + member_folder_id: common.NamespaceId; + } + + /** + * A role which can be attached to a team member. This replaces AdminTier; + * each AdminTier corresponds to a new TeamMemberRole with a matching name. + */ + export interface TeamMemberRole { + /** + * A string containing encoded role ID. For roles defined by Dropbox, this + * is the same across all teams. + */ + role_id: TeamMemberRoleId; + /** + * The role display name. + */ + name: string; + /** + * Role description. Describes which permissions come with this role. + */ + description: string; + } + + /** + * User has successfully joined the team. + */ + export interface TeamMemberStatusActive { + '.tag': 'active'; + } + + /** + * User has been invited to a team, but has not joined the team yet. + */ + export interface TeamMemberStatusInvited { + '.tag': 'invited'; + } + + /** + * User is no longer a member of the team, but the account can be + * un-suspended, re-establishing the user as a team member. + */ + export interface TeamMemberStatusSuspended { + '.tag': 'suspended'; + } + + /** + * User is no longer a member of the team. Removed users are only listed + * when include_removed is true in members/list. + */ + export interface TeamMemberStatusRemoved extends RemovedStatus { + '.tag': 'removed'; + } + + /** + * The user's status as a member of a specific team. + */ + export type TeamMemberStatus = TeamMemberStatusActive | TeamMemberStatusInvited | TeamMemberStatusSuspended | TeamMemberStatusRemoved; + + /** + * User uses a license and has full access to team resources like the shared + * quota. + */ + export interface TeamMembershipTypeFull { + '.tag': 'full'; + } + + /** + * User does not have access to the shared quota and team admins have + * restricted administrative control. + */ + export interface TeamMembershipTypeLimited { + '.tag': 'limited'; + } + + export type TeamMembershipType = TeamMembershipTypeFull | TeamMembershipTypeLimited; + + export interface TeamNamespacesListArg { + /** + * Defaults to 1000. + */ + limit?: number; + } + + export interface TeamNamespacesListContinueArg { + /** + * Indicates from what point to get the next set of team-accessible + * namespaces. + */ + cursor: string; + } + + /** + * The cursor is invalid. + */ + export interface TeamNamespacesListContinueErrorInvalidCursor { + '.tag': 'invalid_cursor'; + } + + export type TeamNamespacesListContinueError = TeamNamespacesListError | TeamNamespacesListContinueErrorInvalidCursor; + + /** + * Argument passed in is invalid. + */ + export interface TeamNamespacesListErrorInvalidArg { + '.tag': 'invalid_arg'; + } + + export interface TeamNamespacesListErrorOther { + '.tag': 'other'; + } + + export type TeamNamespacesListError = TeamNamespacesListErrorInvalidArg | TeamNamespacesListErrorOther; + + /** + * Result for namespacesList(). + */ + export interface TeamNamespacesListResult { + /** + * List of all namespaces the team can access. + */ + namespaces: Array; + /** + * Pass the cursor into namespacesListContinue() to obtain additional + * namespaces. Note that duplicate namespaces may be returned. + */ + cursor: string; + /** + * Is true if there are additional namespaces that have not been returned + * yet. + */ + has_more: boolean; + } + + /** + * We couldn't create the report, but we think this was a fluke. Everything + * should work if you try it again. + */ + export interface TeamReportFailureReasonTemporaryError { + '.tag': 'temporary_error'; + } + + /** + * Too many other reports are being created right now. Try creating this + * report again once the others finish. + */ + export interface TeamReportFailureReasonManyReportsAtOnce { + '.tag': 'many_reports_at_once'; + } + + /** + * We couldn't create the report. Try creating the report again with less + * data. + */ + export interface TeamReportFailureReasonTooMuchData { + '.tag': 'too_much_data'; + } + + export interface TeamReportFailureReasonOther { + '.tag': 'other'; + } + + export type TeamReportFailureReason = TeamReportFailureReasonTemporaryError | TeamReportFailureReasonManyReportsAtOnce | TeamReportFailureReasonTooMuchData | TeamReportFailureReasonOther; + + /** + * The current token is not associated with a team admin, because mappings + * were not recorded when the token was created. Consider re-authorizing a + * new access token to record its authenticating admin. + */ + export interface TokenGetAuthenticatedAdminErrorMappingNotFound { + '.tag': 'mapping_not_found'; + } + + /** + * Either the team admin that authorized this token is no longer an active + * member of the team or no longer a team admin. + */ + export interface TokenGetAuthenticatedAdminErrorAdminNotActive { + '.tag': 'admin_not_active'; + } + + export interface TokenGetAuthenticatedAdminErrorOther { + '.tag': 'other'; + } + + /** + * Error returned by tokenGetAuthenticatedAdmin(). + */ + export type TokenGetAuthenticatedAdminError = TokenGetAuthenticatedAdminErrorMappingNotFound | TokenGetAuthenticatedAdminErrorAdminNotActive | TokenGetAuthenticatedAdminErrorOther; + + /** + * Results for tokenGetAuthenticatedAdmin(). + */ + export interface TokenGetAuthenticatedAdminResult { + /** + * The admin who authorized the token. + */ + admin_profile: TeamMemberProfile; + } + + /** + * This team has unlimited upload API quota. So far both server version + * account and legacy account type have unlimited monthly upload api quota. + */ + export interface UploadApiRateLimitValueUnlimited { + '.tag': 'unlimited'; + } + + /** + * The number of upload API calls allowed per month. + */ + export interface UploadApiRateLimitValueLimit { + '.tag': 'limit'; + limit: number; + } + + export interface UploadApiRateLimitValueOther { + '.tag': 'other'; + } + + /** + * The value for Feature.upload_api_rate_limit. + */ + export type UploadApiRateLimitValue = UploadApiRateLimitValueUnlimited | UploadApiRateLimitValueLimit | UploadApiRateLimitValueOther; + + /** + * Describes a user and the results for each attempt to add a secondary + * email. + */ + export interface UserAddResultSuccess extends UserSecondaryEmailsResult { + '.tag': 'success'; + } + + /** + * Specified user is not a valid target for adding secondary emails. + */ + export interface UserAddResultInvalidUser { + '.tag': 'invalid_user'; + invalid_user: UserSelectorArg; + } + + /** + * Secondary emails can only be added to verified users. + */ + export interface UserAddResultUnverified { + '.tag': 'unverified'; + unverified: UserSelectorArg; + } + + /** + * Secondary emails cannot be added to placeholder users. + */ + export interface UserAddResultPlaceholderUser { + '.tag': 'placeholder_user'; + placeholder_user: UserSelectorArg; + } + + export interface UserAddResultOther { + '.tag': 'other'; + } + + /** + * Result of trying to add secondary emails to a user. 'success' is the only + * value indicating that a user was successfully retrieved for adding + * secondary emails. The other values explain the type of error that + * occurred, and include the user for which the error occurred. + */ + export type UserAddResult = UserAddResultSuccess | UserAddResultInvalidUser | UserAddResultUnverified | UserAddResultPlaceholderUser | UserAddResultOther; + + /** + * User and their required custom quota in GB (1 TB = 1024 GB). + */ + export interface UserCustomQuotaArg { + user: UserSelectorArg; + quota_gb: UserQuota; + } + + /** + * User and their custom quota in GB (1 TB = 1024 GB). No quota returns if + * the user has no custom quota set. + */ + export interface UserCustomQuotaResult { + user: UserSelectorArg; + quota_gb?: UserQuota; + } + + export interface UserDeleteEmailsResult { + user: UserSelectorArg; + results: Array; + } + + /** + * Describes a user and the results for each attempt to delete a secondary + * email. + */ + export interface UserDeleteResultSuccess extends UserDeleteEmailsResult { + '.tag': 'success'; + } + + /** + * Specified user is not a valid target for deleting secondary emails. + */ + export interface UserDeleteResultInvalidUser { + '.tag': 'invalid_user'; + invalid_user: UserSelectorArg; + } + + export interface UserDeleteResultOther { + '.tag': 'other'; + } + + /** + * Result of trying to delete a user's secondary emails. 'success' is the + * only value indicating that a user was successfully retrieved for deleting + * secondary emails. The other values explain the type of error that + * occurred, and include the user for which the error occurred. + */ + export type UserDeleteResult = UserDeleteResultSuccess | UserDeleteResultInvalidUser | UserDeleteResultOther; + + export interface UserResendEmailsResult { + user: UserSelectorArg; + results: Array; + } + + /** + * Describes a user and the results for each attempt to resend verification + * emails. + */ + export interface UserResendResultSuccess extends UserResendEmailsResult { + '.tag': 'success'; + } + + /** + * Specified user is not a valid target for resending verification emails. + */ + export interface UserResendResultInvalidUser { + '.tag': 'invalid_user'; + invalid_user: UserSelectorArg; + } + + export interface UserResendResultOther { + '.tag': 'other'; + } + + /** + * Result of trying to resend verification emails to a user. 'success' is + * the only value indicating that a user was successfully retrieved for + * sending verification emails. The other values explain the type of error + * that occurred, and include the user for which the error occurred. + */ + export type UserResendResult = UserResendResultSuccess | UserResendResultInvalidUser | UserResendResultOther; + + /** + * User and a list of secondary emails. + */ + export interface UserSecondaryEmailsArg { + user: UserSelectorArg; + secondary_emails: Array; + } + + export interface UserSecondaryEmailsResult { + user: UserSelectorArg; + results: Array; + } + + export interface UserSelectorArgTeamMemberId { + '.tag': 'team_member_id'; + team_member_id: team_common.TeamMemberId; + } + + export interface UserSelectorArgExternalId { + '.tag': 'external_id'; + external_id: team_common.MemberExternalId; + } + + export interface UserSelectorArgEmail { + '.tag': 'email'; + email: common.EmailAddress; + } + + /** + * Argument for selecting a single user, either by team_member_id, + * external_id or email. + */ + export type UserSelectorArg = UserSelectorArgTeamMemberId | UserSelectorArgExternalId | UserSelectorArgEmail; + + /** + * No matching user found. The provided team_member_id, email, or + * external_id does not exist on this team. + */ + export interface UserSelectorErrorUserNotFound { + '.tag': 'user_not_found'; + } + + /** + * Error that can be returned whenever a struct derived from + * team.UserSelectorArg is used. + */ + export type UserSelectorError = UserSelectorErrorUserNotFound; + + /** + * List of member IDs. + */ + export interface UsersSelectorArgTeamMemberIds { + '.tag': 'team_member_ids'; + team_member_ids: Array; + } + + /** + * List of external user IDs. + */ + export interface UsersSelectorArgExternalIds { + '.tag': 'external_ids'; + external_ids: Array; + } + + /** + * List of email addresses. + */ + export interface UsersSelectorArgEmails { + '.tag': 'emails'; + emails: Array; + } + + /** + * Argument for selecting a list of users, either by team_member_ids, + * external_ids or emails. + */ + export type UsersSelectorArg = UsersSelectorArgTeamMemberIds | UsersSelectorArgExternalIds | UsersSelectorArgEmails; + + export type GroupsGetInfoResult = Array; + + export type LegalHoldId = string; + + export type LegalHoldPolicyDescription = string; + + export type LegalHoldPolicyName = string; + + export type LegalHoldsGetPolicyResult = LegalHoldPolicy; + + export type LegalHoldsPolicyCreateResult = LegalHoldPolicy; + + export type LegalHoldsPolicyUpdateResult = LegalHoldPolicy; + + export type ListHeldRevisionCursor = string; + + export type MembersGetInfoResult = Array; + + export type NumberPerDay = Array; + + export type Path = string; + + export type SecondaryEmail = secondary_emails.SecondaryEmail; + + export type TeamMemberRoleId = string; + + export type UserQuota = number; + + } + + export namespace team_common { + /** + * A group which is managed by selected users. + */ + export interface GroupManagementTypeUserManaged { + '.tag': 'user_managed'; + } + + /** + * A group which is managed by team admins only. + */ + export interface GroupManagementTypeCompanyManaged { + '.tag': 'company_managed'; + } + + /** + * A group which is managed automatically by Dropbox. + */ + export interface GroupManagementTypeSystemManaged { + '.tag': 'system_managed'; + } + + export interface GroupManagementTypeOther { + '.tag': 'other'; + } + + /** + * The group type determines how a group is managed. + */ + export type GroupManagementType = GroupManagementTypeUserManaged | GroupManagementTypeCompanyManaged | GroupManagementTypeSystemManaged | GroupManagementTypeOther; + + /** + * Information about a group. + */ + export interface GroupSummary { + group_name: string; + group_id: GroupId; + /** + * External ID of group. This is an arbitrary ID that an admin can attach + * to a group. + */ + group_external_id?: GroupExternalId; + /** + * The number of members in the group. + */ + member_count?: number; + /** + * Who is allowed to manage the group. + */ + group_management_type: GroupManagementType; + } + + /** + * A group to which team members are automatically added. Applicable to + * [team folders]{@link https://www.dropbox.com/help/986} only. + */ + export interface GroupTypeTeam { + '.tag': 'team'; + } + + /** + * A group is created and managed by a user. + */ + export interface GroupTypeUserManaged { + '.tag': 'user_managed'; + } + + export interface GroupTypeOther { + '.tag': 'other'; + } + + /** + * The group type determines how a group is created and managed. + */ + export type GroupType = GroupTypeTeam | GroupTypeUserManaged | GroupTypeOther; + + /** + * The team member does not have imposed space limit. + */ + export interface MemberSpaceLimitTypeOff { + '.tag': 'off'; + } + + /** + * The team member has soft imposed space limit - the limit is used for + * display and for notifications. + */ + export interface MemberSpaceLimitTypeAlertOnly { + '.tag': 'alert_only'; + } + + /** + * The team member has hard imposed space limit - Dropbox file sync will + * stop after the limit is reached. + */ + export interface MemberSpaceLimitTypeStopSync { + '.tag': 'stop_sync'; + } + + export interface MemberSpaceLimitTypeOther { + '.tag': 'other'; + } + + /** + * The type of the space limit imposed on a team member. + */ + export type MemberSpaceLimitType = MemberSpaceLimitTypeOff | MemberSpaceLimitTypeAlertOnly | MemberSpaceLimitTypeStopSync | MemberSpaceLimitTypeOther; + + /** + * Time range. + */ + export interface TimeRange { + /** + * Optional starting time (inclusive). + */ + start_time?: common.DropboxTimestamp; + /** + * Optional ending time (exclusive). + */ + end_time?: common.DropboxTimestamp; + } + + export type GroupExternalId = string; + + export type GroupId = string; + + export type MemberExternalId = string; + + export type ResellerId = string; + + export type TeamId = string; + + export type TeamMemberId = string; + + } + + export namespace team_log { + /** + * Admin console session details. + */ + export interface AccessMethodLogInfoAdminConsole extends WebSessionLogInfo { + '.tag': 'admin_console'; + } + + /** + * Api session details. + */ + export interface AccessMethodLogInfoApi extends ApiSessionLogInfo { + '.tag': 'api'; + } + + /** + * Content manager session details. + */ + export interface AccessMethodLogInfoContentManager extends WebSessionLogInfo { + '.tag': 'content_manager'; + } + + /** + * End user session details. + */ + export interface AccessMethodLogInfoEndUser { + '.tag': 'end_user'; + end_user: WebSessionLogInfoReference|DesktopSessionLogInfoReference|MobileSessionLogInfoReference|SessionLogInfoReference; + } + + /** + * Enterprise console session details. + */ + export interface AccessMethodLogInfoEnterpriseConsole extends WebSessionLogInfo { + '.tag': 'enterprise_console'; + } + + /** + * Sign in as session details. + */ + export interface AccessMethodLogInfoSignInAs extends WebSessionLogInfo { + '.tag': 'sign_in_as'; + } + + export interface AccessMethodLogInfoOther { + '.tag': 'other'; + } + + /** + * Indicates the method in which the action was performed. + */ + export type AccessMethodLogInfo = AccessMethodLogInfoAdminConsole | AccessMethodLogInfoApi | AccessMethodLogInfoContentManager | AccessMethodLogInfoEndUser | AccessMethodLogInfoEnterpriseConsole | AccessMethodLogInfoSignInAs | AccessMethodLogInfoOther; + + export interface AccountCaptureAvailabilityAvailable { + '.tag': 'available'; + } + + export interface AccountCaptureAvailabilityUnavailable { + '.tag': 'unavailable'; + } + + export interface AccountCaptureAvailabilityOther { + '.tag': 'other'; + } + + export type AccountCaptureAvailability = AccountCaptureAvailabilityAvailable | AccountCaptureAvailabilityUnavailable | AccountCaptureAvailabilityOther; + + /** + * Granted/revoked option to enable account capture on team domains. + */ + export interface AccountCaptureChangeAvailabilityDetails { + /** + * New account capture availabilty value. + */ + new_value: AccountCaptureAvailability; + /** + * Previous account capture availabilty value. Might be missing due to + * historical data gap. + */ + previous_value?: AccountCaptureAvailability; + } + + export interface AccountCaptureChangeAvailabilityType { + description: string; + } + + /** + * Changed account capture setting on team domain. + */ + export interface AccountCaptureChangePolicyDetails { + /** + * New account capture policy. + */ + new_value: AccountCapturePolicy; + /** + * Previous account capture policy. Might be missing due to historical + * data gap. + */ + previous_value?: AccountCapturePolicy; + } + + export interface AccountCaptureChangePolicyType { + description: string; + } + + /** + * Account-captured user migrated account to team. + */ + export interface AccountCaptureMigrateAccountDetails { + /** + * Domain name. + */ + domain_name: string; + } + + export interface AccountCaptureMigrateAccountType { + description: string; + } + + /** + * Sent account capture email to all unmanaged members. + */ + export interface AccountCaptureNotificationEmailsSentDetails { + /** + * Domain name. + */ + domain_name: string; + /** + * Account-capture email notification type. + */ + notification_type?: AccountCaptureNotificationType; + } + + export interface AccountCaptureNotificationEmailsSentType { + description: string; + } + + export interface AccountCaptureNotificationTypeActionableNotification { + '.tag': 'actionable_notification'; + } + + export interface AccountCaptureNotificationTypeProactiveWarningNotification { + '.tag': 'proactive_warning_notification'; + } + + export interface AccountCaptureNotificationTypeOther { + '.tag': 'other'; + } + + export type AccountCaptureNotificationType = AccountCaptureNotificationTypeActionableNotification | AccountCaptureNotificationTypeProactiveWarningNotification | AccountCaptureNotificationTypeOther; + + export interface AccountCapturePolicyAllUsers { + '.tag': 'all_users'; + } + + export interface AccountCapturePolicyDisabled { + '.tag': 'disabled'; + } + + export interface AccountCapturePolicyInvitedUsers { + '.tag': 'invited_users'; + } + + export interface AccountCapturePolicyOther { + '.tag': 'other'; + } + + export type AccountCapturePolicy = AccountCapturePolicyAllUsers | AccountCapturePolicyDisabled | AccountCapturePolicyInvitedUsers | AccountCapturePolicyOther; + + /** + * Account-captured user changed account email to personal email. + */ + export interface AccountCaptureRelinquishAccountDetails { + /** + * Domain name. + */ + domain_name: string; + } + + export interface AccountCaptureRelinquishAccountType { + description: string; + } + + /** + * Unlocked/locked account after failed sign in attempts. + */ + export interface AccountLockOrUnlockedDetails { + /** + * The previous account status. + */ + previous_value: AccountState; + /** + * The new account status. + */ + new_value: AccountState; + } + + export interface AccountLockOrUnlockedType { + description: string; + } + + export interface AccountStateLocked { + '.tag': 'locked'; + } + + export interface AccountStateUnlocked { + '.tag': 'unlocked'; + } + + export interface AccountStateOther { + '.tag': 'other'; + } + + export type AccountState = AccountStateLocked | AccountStateUnlocked | AccountStateOther; + + /** + * Define how the user was removed from the team. + */ + export interface ActionDetailsRemoveAction { + '.tag': 'remove_action'; + remove_action: MemberRemoveActionType; + } + + /** + * Additional information relevant when someone is invited to the team. + */ + export interface ActionDetailsTeamInviteDetails extends TeamInviteDetails { + '.tag': 'team_invite_details'; + } + + /** + * Additional information relevant when a new member joins the team. + */ + export interface ActionDetailsTeamJoinDetails extends JoinTeamDetails { + '.tag': 'team_join_details'; + } + + export interface ActionDetailsOther { + '.tag': 'other'; + } + + /** + * Additional information indicating the action taken that caused status + * change. + */ + export type ActionDetails = ActionDetailsRemoveAction | ActionDetailsTeamInviteDetails | ActionDetailsTeamJoinDetails | ActionDetailsOther; + + /** + * The admin who did the action. + */ + export interface ActorLogInfoAdmin { + '.tag': 'admin'; + admin: TeamMemberLogInfoReference|TrustedNonTeamMemberLogInfoReference|NonTeamMemberLogInfoReference|UserLogInfoReference; + } + + /** + * Anonymous actor. + */ + export interface ActorLogInfoAnonymous { + '.tag': 'anonymous'; + } + + /** + * The application who did the action. + */ + export interface ActorLogInfoApp { + '.tag': 'app'; + app: UserOrTeamLinkedAppLogInfoReference|UserLinkedAppLogInfoReference|TeamLinkedAppLogInfoReference|AppLogInfoReference; + } + + /** + * Action done by Dropbox. + */ + export interface ActorLogInfoDropbox { + '.tag': 'dropbox'; + } + + /** + * Action done by reseller. + */ + export interface ActorLogInfoReseller extends ResellerLogInfo { + '.tag': 'reseller'; + } + + /** + * The user who did the action. + */ + export interface ActorLogInfoUser { + '.tag': 'user'; + user: TeamMemberLogInfoReference|TrustedNonTeamMemberLogInfoReference|NonTeamMemberLogInfoReference|UserLogInfoReference; + } + + export interface ActorLogInfoOther { + '.tag': 'other'; + } + + /** + * The entity who performed the action. + */ + export type ActorLogInfo = ActorLogInfoAdmin | ActorLogInfoAnonymous | ActorLogInfoApp | ActorLogInfoDropbox | ActorLogInfoReseller | ActorLogInfoUser | ActorLogInfoOther; + + export interface AdminAlertCategoryEnumAccountTakeover { + '.tag': 'account_takeover'; + } + + export interface AdminAlertCategoryEnumDataLossProtection { + '.tag': 'data_loss_protection'; + } + + export interface AdminAlertCategoryEnumInformationGovernance { + '.tag': 'information_governance'; + } + + export interface AdminAlertCategoryEnumMalwareSharing { + '.tag': 'malware_sharing'; + } + + export interface AdminAlertCategoryEnumMassiveFileOperation { + '.tag': 'massive_file_operation'; + } + + export interface AdminAlertCategoryEnumNa { + '.tag': 'na'; + } + + export interface AdminAlertCategoryEnumThreatManagement { + '.tag': 'threat_management'; + } + + export interface AdminAlertCategoryEnumOther { + '.tag': 'other'; + } + + /** + * Alert category + */ + export type AdminAlertCategoryEnum = AdminAlertCategoryEnumAccountTakeover | AdminAlertCategoryEnumDataLossProtection | AdminAlertCategoryEnumInformationGovernance | AdminAlertCategoryEnumMalwareSharing | AdminAlertCategoryEnumMassiveFileOperation | AdminAlertCategoryEnumNa | AdminAlertCategoryEnumThreatManagement | AdminAlertCategoryEnumOther; + + export interface AdminAlertGeneralStateEnumActive { + '.tag': 'active'; + } + + export interface AdminAlertGeneralStateEnumDismissed { + '.tag': 'dismissed'; + } + + export interface AdminAlertGeneralStateEnumInProgress { + '.tag': 'in_progress'; + } + + export interface AdminAlertGeneralStateEnumNa { + '.tag': 'na'; + } + + export interface AdminAlertGeneralStateEnumResolved { + '.tag': 'resolved'; + } + + export interface AdminAlertGeneralStateEnumOther { + '.tag': 'other'; + } + + /** + * Alert state + */ + export type AdminAlertGeneralStateEnum = AdminAlertGeneralStateEnumActive | AdminAlertGeneralStateEnumDismissed | AdminAlertGeneralStateEnumInProgress | AdminAlertGeneralStateEnumNa | AdminAlertGeneralStateEnumResolved | AdminAlertGeneralStateEnumOther; + + export interface AdminAlertSeverityEnumHigh { + '.tag': 'high'; + } + + export interface AdminAlertSeverityEnumInfo { + '.tag': 'info'; + } + + export interface AdminAlertSeverityEnumLow { + '.tag': 'low'; + } + + export interface AdminAlertSeverityEnumMedium { + '.tag': 'medium'; + } + + export interface AdminAlertSeverityEnumNa { + '.tag': 'na'; + } + + export interface AdminAlertSeverityEnumOther { + '.tag': 'other'; + } + + /** + * Alert severity + */ + export type AdminAlertSeverityEnum = AdminAlertSeverityEnumHigh | AdminAlertSeverityEnumInfo | AdminAlertSeverityEnumLow | AdminAlertSeverityEnumMedium | AdminAlertSeverityEnumNa | AdminAlertSeverityEnumOther; + + /** + * Alert configurations + */ + export interface AdminAlertingAlertConfiguration { + /** + * Alert state. + */ + alert_state?: AdminAlertingAlertStatePolicy; + /** + * Sensitivity level. + */ + sensitivity_level?: AdminAlertingAlertSensitivity; + /** + * Recipient settings. + */ + recipients_settings?: RecipientsConfiguration; + /** + * Text. + */ + text?: string; + /** + * Excluded file extensions. + */ + excluded_file_extensions?: string; + } + + export interface AdminAlertingAlertSensitivityHigh { + '.tag': 'high'; + } + + export interface AdminAlertingAlertSensitivityHighest { + '.tag': 'highest'; + } + + export interface AdminAlertingAlertSensitivityInvalid { + '.tag': 'invalid'; + } + + export interface AdminAlertingAlertSensitivityLow { + '.tag': 'low'; + } + + export interface AdminAlertingAlertSensitivityLowest { + '.tag': 'lowest'; + } + + export interface AdminAlertingAlertSensitivityMedium { + '.tag': 'medium'; + } + + export interface AdminAlertingAlertSensitivityOther { + '.tag': 'other'; + } + + /** + * Alert sensitivity + */ + export type AdminAlertingAlertSensitivity = AdminAlertingAlertSensitivityHigh | AdminAlertingAlertSensitivityHighest | AdminAlertingAlertSensitivityInvalid | AdminAlertingAlertSensitivityLow | AdminAlertingAlertSensitivityLowest | AdminAlertingAlertSensitivityMedium | AdminAlertingAlertSensitivityOther; + + /** + * Changed an alert state. + */ + export interface AdminAlertingAlertStateChangedDetails { + /** + * Alert name. + */ + alert_name: string; + /** + * Alert severity. + */ + alert_severity: AdminAlertSeverityEnum; + /** + * Alert category. + */ + alert_category: AdminAlertCategoryEnum; + /** + * Alert ID. + */ + alert_instance_id: string; + /** + * Alert state before the change. + */ + previous_value: AdminAlertGeneralStateEnum; + /** + * Alert state after the change. + */ + new_value: AdminAlertGeneralStateEnum; + } + + export interface AdminAlertingAlertStateChangedType { + description: string; + } + + export interface AdminAlertingAlertStatePolicyOff { + '.tag': 'off'; + } + + export interface AdminAlertingAlertStatePolicyOn { + '.tag': 'on'; + } + + export interface AdminAlertingAlertStatePolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling whether an alert can be triggered or not + */ + export type AdminAlertingAlertStatePolicy = AdminAlertingAlertStatePolicyOff | AdminAlertingAlertStatePolicyOn | AdminAlertingAlertStatePolicyOther; + + /** + * Changed an alert setting. + */ + export interface AdminAlertingChangedAlertConfigDetails { + /** + * Alert Name. + */ + alert_name: string; + /** + * Previous alert configuration. + */ + previous_alert_config: AdminAlertingAlertConfiguration; + /** + * New alert configuration. + */ + new_alert_config: AdminAlertingAlertConfiguration; + } + + export interface AdminAlertingChangedAlertConfigType { + description: string; + } + + /** + * Triggered security alert. + */ + export interface AdminAlertingTriggeredAlertDetails { + /** + * Alert name. + */ + alert_name: string; + /** + * Alert severity. + */ + alert_severity: AdminAlertSeverityEnum; + /** + * Alert category. + */ + alert_category: AdminAlertCategoryEnum; + /** + * Alert ID. + */ + alert_instance_id: string; + } + + export interface AdminAlertingTriggeredAlertType { + description: string; + } + + export interface AdminConsoleAppPermissionDefaultForListedApps { + '.tag': 'default_for_listed_apps'; + } + + export interface AdminConsoleAppPermissionDefaultForUnlistedApps { + '.tag': 'default_for_unlisted_apps'; + } + + export interface AdminConsoleAppPermissionOther { + '.tag': 'other'; + } + + export type AdminConsoleAppPermission = AdminConsoleAppPermissionDefaultForListedApps | AdminConsoleAppPermissionDefaultForUnlistedApps | AdminConsoleAppPermissionOther; + + export interface AdminConsoleAppPolicyAllow { + '.tag': 'allow'; + } + + export interface AdminConsoleAppPolicyBlock { + '.tag': 'block'; + } + + export interface AdminConsoleAppPolicyDefault { + '.tag': 'default'; + } + + export interface AdminConsoleAppPolicyOther { + '.tag': 'other'; + } + + export type AdminConsoleAppPolicy = AdminConsoleAppPolicyAllow | AdminConsoleAppPolicyBlock | AdminConsoleAppPolicyDefault | AdminConsoleAppPolicyOther; + + /** + * Changed admin reminder settings for requests to join the team. + */ + export interface AdminEmailRemindersChangedDetails { + /** + * To. + */ + new_value: AdminEmailRemindersPolicy; + /** + * From. + */ + previous_value: AdminEmailRemindersPolicy; + } + + export interface AdminEmailRemindersChangedType { + description: string; + } + + export interface AdminEmailRemindersPolicyDefault { + '.tag': 'default'; + } + + export interface AdminEmailRemindersPolicyDisabled { + '.tag': 'disabled'; + } + + export interface AdminEmailRemindersPolicyEnabled { + '.tag': 'enabled'; + } + + export interface AdminEmailRemindersPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for deciding whether team admins receive reminder emails for + * requests to join the team + */ + export type AdminEmailRemindersPolicy = AdminEmailRemindersPolicyDefault | AdminEmailRemindersPolicyDisabled | AdminEmailRemindersPolicyEnabled | AdminEmailRemindersPolicyOther; + + export interface AdminRoleBillingAdmin { + '.tag': 'billing_admin'; + } + + export interface AdminRoleComplianceAdmin { + '.tag': 'compliance_admin'; + } + + export interface AdminRoleContentAdmin { + '.tag': 'content_admin'; + } + + export interface AdminRoleLimitedAdmin { + '.tag': 'limited_admin'; + } + + export interface AdminRoleMemberOnly { + '.tag': 'member_only'; + } + + export interface AdminRoleReportingAdmin { + '.tag': 'reporting_admin'; + } + + export interface AdminRoleSecurityAdmin { + '.tag': 'security_admin'; + } + + export interface AdminRoleSupportAdmin { + '.tag': 'support_admin'; + } + + export interface AdminRoleTeamAdmin { + '.tag': 'team_admin'; + } + + export interface AdminRoleUserManagementAdmin { + '.tag': 'user_management_admin'; + } + + export interface AdminRoleOther { + '.tag': 'other'; + } + + export type AdminRole = AdminRoleBillingAdmin | AdminRoleComplianceAdmin | AdminRoleContentAdmin | AdminRoleLimitedAdmin | AdminRoleMemberOnly | AdminRoleReportingAdmin | AdminRoleSecurityAdmin | AdminRoleSupportAdmin | AdminRoleTeamAdmin | AdminRoleUserManagementAdmin | AdminRoleOther; + + export interface AlertRecipientsSettingTypeCustomList { + '.tag': 'custom_list'; + } + + export interface AlertRecipientsSettingTypeInvalid { + '.tag': 'invalid'; + } + + export interface AlertRecipientsSettingTypeNone { + '.tag': 'none'; + } + + export interface AlertRecipientsSettingTypeTeamAdmins { + '.tag': 'team_admins'; + } + + export interface AlertRecipientsSettingTypeOther { + '.tag': 'other'; + } + + /** + * Alert recipients setting type + */ + export type AlertRecipientsSettingType = AlertRecipientsSettingTypeCustomList | AlertRecipientsSettingTypeInvalid | AlertRecipientsSettingTypeNone | AlertRecipientsSettingTypeTeamAdmins | AlertRecipientsSettingTypeOther; + + /** + * Disabled downloads. + */ + export interface AllowDownloadDisabledDetails { + } + + export interface AllowDownloadDisabledType { + description: string; + } + + /** + * Enabled downloads. + */ + export interface AllowDownloadEnabledDetails { + } + + export interface AllowDownloadEnabledType { + description: string; + } + + /** + * Api session. + */ + export interface ApiSessionLogInfo { + /** + * Api request ID. + */ + request_id: RequestId; + } + + /** + * Failed to connect app for member. + */ + export interface AppBlockedByPermissionsDetails { + /** + * Relevant application details. + */ + app_info: UserOrTeamLinkedAppLogInfoReference|UserLinkedAppLogInfoReference|TeamLinkedAppLogInfoReference|AppLogInfoReference; + } + + export interface AppBlockedByPermissionsType { + description: string; + } + + /** + * Linked app for team. + */ + export interface AppLinkTeamDetails { + /** + * Relevant application details. + */ + app_info: UserOrTeamLinkedAppLogInfoReference|UserLinkedAppLogInfoReference|TeamLinkedAppLogInfoReference|AppLogInfoReference; + } + + export interface AppLinkTeamType { + description: string; + } + + /** + * Linked app for member. + */ + export interface AppLinkUserDetails { + /** + * Relevant application details. + */ + app_info: UserOrTeamLinkedAppLogInfoReference|UserLinkedAppLogInfoReference|TeamLinkedAppLogInfoReference|AppLogInfoReference; + } + + export interface AppLinkUserType { + description: string; + } + + /** + * App's logged information. + */ + export interface AppLogInfo { + /** + * App unique ID. + */ + app_id?: AppId; + /** + * App display name. + */ + display_name?: string; + } + + /** + * Reference to the AppLogInfo polymorphic type. Contains a .tag property to + * let you discriminate between possible subtypes. + */ + export interface AppLogInfoReference extends AppLogInfo { + /** + * Tag identifying the subtype variant. + */ + '.tag': "user_or_team_linked_app"|"user_linked_app"|"team_linked_app"; + } + + /** + * Changed app permissions. + */ + export interface AppPermissionsChangedDetails { + /** + * Name of the app. + */ + app_name?: string; + /** + * Permission that was changed. + */ + permission?: AdminConsoleAppPermission; + /** + * Previous policy. + */ + previous_value: AdminConsoleAppPolicy; + /** + * New policy. + */ + new_value: AdminConsoleAppPolicy; + } + + export interface AppPermissionsChangedType { + description: string; + } + + /** + * Unlinked app for team. + */ + export interface AppUnlinkTeamDetails { + /** + * Relevant application details. + */ + app_info: UserOrTeamLinkedAppLogInfoReference|UserLinkedAppLogInfoReference|TeamLinkedAppLogInfoReference|AppLogInfoReference; + } + + export interface AppUnlinkTeamType { + description: string; + } + + /** + * Unlinked app for member. + */ + export interface AppUnlinkUserDetails { + /** + * Relevant application details. + */ + app_info: UserOrTeamLinkedAppLogInfoReference|UserLinkedAppLogInfoReference|TeamLinkedAppLogInfoReference|AppLogInfoReference; + } + + export interface AppUnlinkUserType { + description: string; + } + + /** + * Applied naming convention. + */ + export interface ApplyNamingConventionDetails { + } + + export interface ApplyNamingConventionType { + description: string; + } + + /** + * File's details. + */ + export interface AssetLogInfoFile extends FileLogInfo { + '.tag': 'file'; + } + + /** + * Folder's details. + */ + export interface AssetLogInfoFolder extends FolderLogInfo { + '.tag': 'folder'; + } + + /** + * Paper document's details. + */ + export interface AssetLogInfoPaperDocument extends PaperDocumentLogInfo { + '.tag': 'paper_document'; + } + + /** + * Paper folder's details. + */ + export interface AssetLogInfoPaperFolder extends PaperFolderLogInfo { + '.tag': 'paper_folder'; + } + + /** + * Showcase document's details. + */ + export interface AssetLogInfoShowcaseDocument extends ShowcaseDocumentLogInfo { + '.tag': 'showcase_document'; + } + + export interface AssetLogInfoOther { + '.tag': 'other'; + } + + /** + * Asset details. + */ + export type AssetLogInfo = AssetLogInfoFile | AssetLogInfoFolder | AssetLogInfoPaperDocument | AssetLogInfoPaperFolder | AssetLogInfoShowcaseDocument | AssetLogInfoOther; + + export interface BackupStatusDisabled { + '.tag': 'disabled'; + } + + export interface BackupStatusEnabled { + '.tag': 'enabled'; + } + + export interface BackupStatusOther { + '.tag': 'other'; + } + + /** + * Backup status + */ + export type BackupStatus = BackupStatusDisabled | BackupStatusEnabled | BackupStatusOther; + + /** + * Added Binder page. + */ + export interface BinderAddPageDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Title of the Binder doc. + */ + doc_title: string; + /** + * Name of the Binder page/section. + */ + binder_item_name: string; + } + + export interface BinderAddPageType { + description: string; + } + + /** + * Added Binder section. + */ + export interface BinderAddSectionDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Title of the Binder doc. + */ + doc_title: string; + /** + * Name of the Binder page/section. + */ + binder_item_name: string; + } + + export interface BinderAddSectionType { + description: string; + } + + /** + * Removed Binder page. + */ + export interface BinderRemovePageDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Title of the Binder doc. + */ + doc_title: string; + /** + * Name of the Binder page/section. + */ + binder_item_name: string; + } + + export interface BinderRemovePageType { + description: string; + } + + /** + * Removed Binder section. + */ + export interface BinderRemoveSectionDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Title of the Binder doc. + */ + doc_title: string; + /** + * Name of the Binder page/section. + */ + binder_item_name: string; + } + + export interface BinderRemoveSectionType { + description: string; + } + + /** + * Renamed Binder page. + */ + export interface BinderRenamePageDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Title of the Binder doc. + */ + doc_title: string; + /** + * Name of the Binder page/section. + */ + binder_item_name: string; + /** + * Previous name of the Binder page/section. + */ + previous_binder_item_name?: string; + } + + export interface BinderRenamePageType { + description: string; + } + + /** + * Renamed Binder section. + */ + export interface BinderRenameSectionDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Title of the Binder doc. + */ + doc_title: string; + /** + * Name of the Binder page/section. + */ + binder_item_name: string; + /** + * Previous name of the Binder page/section. + */ + previous_binder_item_name?: string; + } + + export interface BinderRenameSectionType { + description: string; + } + + /** + * Reordered Binder page. + */ + export interface BinderReorderPageDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Title of the Binder doc. + */ + doc_title: string; + /** + * Name of the Binder page/section. + */ + binder_item_name: string; + } + + export interface BinderReorderPageType { + description: string; + } + + /** + * Reordered Binder section. + */ + export interface BinderReorderSectionDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Title of the Binder doc. + */ + doc_title: string; + /** + * Name of the Binder page/section. + */ + binder_item_name: string; + } + + export interface BinderReorderSectionType { + description: string; + } + + export interface CameraUploadsPolicyDisabled { + '.tag': 'disabled'; + } + + export interface CameraUploadsPolicyEnabled { + '.tag': 'enabled'; + } + + export interface CameraUploadsPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling if team members can activate camera uploads + */ + export type CameraUploadsPolicy = CameraUploadsPolicyDisabled | CameraUploadsPolicyEnabled | CameraUploadsPolicyOther; + + /** + * Changed camera uploads setting for team. + */ + export interface CameraUploadsPolicyChangedDetails { + /** + * New camera uploads setting. + */ + new_value: CameraUploadsPolicy; + /** + * Previous camera uploads setting. + */ + previous_value: CameraUploadsPolicy; + } + + export interface CameraUploadsPolicyChangedType { + description: string; + } + + export interface CaptureTranscriptPolicyDefault { + '.tag': 'default'; + } + + export interface CaptureTranscriptPolicyDisabled { + '.tag': 'disabled'; + } + + export interface CaptureTranscriptPolicyEnabled { + '.tag': 'enabled'; + } + + export interface CaptureTranscriptPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for deciding whether team users can transcription in Capture + */ + export type CaptureTranscriptPolicy = CaptureTranscriptPolicyDefault | CaptureTranscriptPolicyDisabled | CaptureTranscriptPolicyEnabled | CaptureTranscriptPolicyOther; + + /** + * Changed Capture transcription policy for team. + */ + export interface CaptureTranscriptPolicyChangedDetails { + /** + * To. + */ + new_value: CaptureTranscriptPolicy; + /** + * From. + */ + previous_value: CaptureTranscriptPolicy; + } + + export interface CaptureTranscriptPolicyChangedType { + description: string; + } + + /** + * Certificate details. + */ + export interface Certificate { + /** + * Certificate subject. + */ + subject: string; + /** + * Certificate issuer. + */ + issuer: string; + /** + * Certificate issue date. + */ + issue_date: string; + /** + * Certificate expiration date. + */ + expiration_date: string; + /** + * Certificate serial number. + */ + serial_number: string; + /** + * Certificate sha1 fingerprint. + */ + sha1_fingerprint: string; + /** + * Certificate common name. + */ + common_name?: string; + } + + export interface ChangeLinkExpirationPolicyAllowed { + '.tag': 'allowed'; + } + + export interface ChangeLinkExpirationPolicyNotAllowed { + '.tag': 'not_allowed'; + } + + export interface ChangeLinkExpirationPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for deciding whether the team's default expiration days policy + * must be enforced when an externally shared link is updated + */ + export type ChangeLinkExpirationPolicy = ChangeLinkExpirationPolicyAllowed | ChangeLinkExpirationPolicyNotAllowed | ChangeLinkExpirationPolicyOther; + + /** + * Changed enterprise admin role. + */ + export interface ChangedEnterpriseAdminRoleDetails { + /** + * The member’s previous enterprise admin role. + */ + previous_value: FedAdminRole; + /** + * The member’s new enterprise admin role. + */ + new_value: FedAdminRole; + /** + * The name of the member’s team. + */ + team_name: string; + } + + export interface ChangedEnterpriseAdminRoleType { + description: string; + } + + /** + * Changed enterprise-connected team status. + */ + export interface ChangedEnterpriseConnectedTeamStatusDetails { + /** + * The preformed change in the team’s connection status. + */ + action: FedHandshakeAction; + /** + * Additional information about the organization or team. + */ + additional_info: FederationStatusChangeAdditionalInfo; + /** + * Previous request state. + */ + previous_value: TrustedTeamsRequestState; + /** + * New request state. + */ + new_value: TrustedTeamsRequestState; + } + + export interface ChangedEnterpriseConnectedTeamStatusType { + description: string; + } + + /** + * Changed classification policy for team. + */ + export interface ClassificationChangePolicyDetails { + /** + * Previous classification policy. + */ + previous_value: ClassificationPolicyEnumWrapper; + /** + * New classification policy. + */ + new_value: ClassificationPolicyEnumWrapper; + /** + * Policy type. + */ + classification_type: ClassificationType; + } + + export interface ClassificationChangePolicyType { + description: string; + } + + /** + * Created Classification report. + */ + export interface ClassificationCreateReportDetails { + } + + /** + * Couldn't create Classification report. + */ + export interface ClassificationCreateReportFailDetails { + /** + * Failure reason. + */ + failure_reason: team.TeamReportFailureReason; + } + + export interface ClassificationCreateReportFailType { + description: string; + } + + export interface ClassificationCreateReportType { + description: string; + } + + export interface ClassificationPolicyEnumWrapperDisabled { + '.tag': 'disabled'; + } + + export interface ClassificationPolicyEnumWrapperEnabled { + '.tag': 'enabled'; + } + + export interface ClassificationPolicyEnumWrapperMemberAndTeamFolders { + '.tag': 'member_and_team_folders'; + } + + export interface ClassificationPolicyEnumWrapperTeamFolders { + '.tag': 'team_folders'; + } + + export interface ClassificationPolicyEnumWrapperOther { + '.tag': 'other'; + } + + /** + * Policy for controlling team access to the classification feature + */ + export type ClassificationPolicyEnumWrapper = ClassificationPolicyEnumWrapperDisabled | ClassificationPolicyEnumWrapperEnabled | ClassificationPolicyEnumWrapperMemberAndTeamFolders | ClassificationPolicyEnumWrapperTeamFolders | ClassificationPolicyEnumWrapperOther; + + export interface ClassificationTypePersonalInformation { + '.tag': 'personal_information'; + } + + export interface ClassificationTypePii { + '.tag': 'pii'; + } + + export interface ClassificationTypeOther { + '.tag': 'other'; + } + + /** + * The type of classification (currently only personal information) + */ + export type ClassificationType = ClassificationTypePersonalInformation | ClassificationTypePii | ClassificationTypeOther; + + /** + * Shared album. + */ + export interface CollectionShareDetails { + /** + * Album name. + */ + album_name: string; + } + + export interface CollectionShareType { + description: string; + } + + export interface ComputerBackupPolicyDefault { + '.tag': 'default'; + } + + export interface ComputerBackupPolicyDisabled { + '.tag': 'disabled'; + } + + export interface ComputerBackupPolicyEnabled { + '.tag': 'enabled'; + } + + export interface ComputerBackupPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling team access to computer backup feature + */ + export type ComputerBackupPolicy = ComputerBackupPolicyDefault | ComputerBackupPolicyDisabled | ComputerBackupPolicyEnabled | ComputerBackupPolicyOther; + + /** + * Changed computer backup policy for team. + */ + export interface ComputerBackupPolicyChangedDetails { + /** + * New computer backup policy. + */ + new_value: ComputerBackupPolicy; + /** + * Previous computer backup policy. + */ + previous_value: ComputerBackupPolicy; + } + + export interface ComputerBackupPolicyChangedType { + description: string; + } + + /** + * The name of the team + */ + export interface ConnectedTeamName { + /** + * The name of the team. + */ + team: string; + } + + /** + * Changed content management setting. + */ + export interface ContentAdministrationPolicyChangedDetails { + /** + * New content administration policy. + */ + new_value: string; + /** + * Previous content administration policy. + */ + previous_value: string; + } + + export interface ContentAdministrationPolicyChangedType { + description: string; + } + + export interface ContentPermanentDeletePolicyDisabled { + '.tag': 'disabled'; + } + + export interface ContentPermanentDeletePolicyEnabled { + '.tag': 'enabled'; + } + + export interface ContentPermanentDeletePolicyOther { + '.tag': 'other'; + } + + /** + * Policy for pemanent content deletion + */ + export type ContentPermanentDeletePolicy = ContentPermanentDeletePolicyDisabled | ContentPermanentDeletePolicyEnabled | ContentPermanentDeletePolicyOther; + + /** + * Anonymous context. + */ + export interface ContextLogInfoAnonymous { + '.tag': 'anonymous'; + } + + /** + * Action was done on behalf of a non team member. + */ + export interface ContextLogInfoNonTeamMember extends NonTeamMemberLogInfo { + '.tag': 'non_team_member'; + } + + /** + * Action was done on behalf of a team that's part of an organization. + */ + export interface ContextLogInfoOrganizationTeam extends TeamLogInfo { + '.tag': 'organization_team'; + } + + /** + * Action was done on behalf of the team. + */ + export interface ContextLogInfoTeam { + '.tag': 'team'; + } + + /** + * Action was done on behalf of a team member. + */ + export interface ContextLogInfoTeamMember extends TeamMemberLogInfo { + '.tag': 'team_member'; + } + + /** + * Action was done on behalf of a trusted non team member. + */ + export interface ContextLogInfoTrustedNonTeamMember extends TrustedNonTeamMemberLogInfo { + '.tag': 'trusted_non_team_member'; + } + + export interface ContextLogInfoOther { + '.tag': 'other'; + } + + /** + * The primary entity on which the action was done. + */ + export type ContextLogInfo = ContextLogInfoAnonymous | ContextLogInfoNonTeamMember | ContextLogInfoOrganizationTeam | ContextLogInfoTeam | ContextLogInfoTeamMember | ContextLogInfoTrustedNonTeamMember | ContextLogInfoOther; + + /** + * Created folders. + */ + export interface CreateFolderDetails { + } + + export interface CreateFolderType { + description: string; + } + + /** + * Created team invite link. + */ + export interface CreateTeamInviteLinkDetails { + /** + * The invite link url that was created. + */ + link_url: string; + /** + * The expiration date of the invite link. + */ + expiry_date: string; + } + + export interface CreateTeamInviteLinkType { + description: string; + } + + /** + * Set restrictions on data center locations where team data resides. + */ + export interface DataPlacementRestrictionChangePolicyDetails { + /** + * Previous placement restriction. + */ + previous_value: PlacementRestriction; + /** + * New placement restriction. + */ + new_value: PlacementRestriction; + } + + export interface DataPlacementRestrictionChangePolicyType { + description: string; + } + + /** + * Completed restrictions on data center locations where team data resides. + */ + export interface DataPlacementRestrictionSatisfyPolicyDetails { + /** + * Placement restriction. + */ + placement_restriction: PlacementRestriction; + } + + export interface DataPlacementRestrictionSatisfyPolicyType { + description: string; + } + + /** + * Requested data residency migration for team data. + */ + export interface DataResidencyMigrationRequestSuccessfulDetails { + } + + export interface DataResidencyMigrationRequestSuccessfulType { + description: string; + } + + /** + * Request for data residency migration for team data has failed. + */ + export interface DataResidencyMigrationRequestUnsuccessfulDetails { + } + + export interface DataResidencyMigrationRequestUnsuccessfulType { + description: string; + } + + export interface DefaultLinkExpirationDaysPolicyDay1 { + '.tag': 'day_1'; + } + + export interface DefaultLinkExpirationDaysPolicyDay180 { + '.tag': 'day_180'; + } + + export interface DefaultLinkExpirationDaysPolicyDay3 { + '.tag': 'day_3'; + } + + export interface DefaultLinkExpirationDaysPolicyDay30 { + '.tag': 'day_30'; + } + + export interface DefaultLinkExpirationDaysPolicyDay7 { + '.tag': 'day_7'; + } + + export interface DefaultLinkExpirationDaysPolicyDay90 { + '.tag': 'day_90'; + } + + export interface DefaultLinkExpirationDaysPolicyNone { + '.tag': 'none'; + } + + export interface DefaultLinkExpirationDaysPolicyYear1 { + '.tag': 'year_1'; + } + + export interface DefaultLinkExpirationDaysPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for the default number of days until an externally shared link + * expires + */ + export type DefaultLinkExpirationDaysPolicy = DefaultLinkExpirationDaysPolicyDay1 | DefaultLinkExpirationDaysPolicyDay180 | DefaultLinkExpirationDaysPolicyDay3 | DefaultLinkExpirationDaysPolicyDay30 | DefaultLinkExpirationDaysPolicyDay7 | DefaultLinkExpirationDaysPolicyDay90 | DefaultLinkExpirationDaysPolicyNone | DefaultLinkExpirationDaysPolicyYear1 | DefaultLinkExpirationDaysPolicyOther; + + /** + * Deleted team invite link. + */ + export interface DeleteTeamInviteLinkDetails { + /** + * The invite link url that was deleted. + */ + link_url: string; + } + + export interface DeleteTeamInviteLinkType { + description: string; + } + + /** + * Information about linked Dropbox desktop client sessions + */ + export interface DesktopDeviceSessionLogInfo extends DeviceSessionLogInfo { + /** + * Desktop session unique id. + */ + session_info?: DesktopSessionLogInfo; + /** + * Name of the hosting desktop. + */ + host_name: string; + /** + * The Dropbox desktop client type. + */ + client_type: team.DesktopPlatform; + /** + * The Dropbox client version. + */ + client_version?: string; + /** + * Information on the hosting platform. + */ + platform: string; + /** + * Whether itu2019s possible to delete all of the account files upon + * unlinking. + */ + is_delete_on_unlink_supported: boolean; + } + + /** + * Reference to the DesktopDeviceSessionLogInfo type, identified by the + * value of the .tag property. + */ + export interface DesktopDeviceSessionLogInfoReference extends DesktopDeviceSessionLogInfo { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'desktop_device_session'; + } + + /** + * Desktop session. + */ + export interface DesktopSessionLogInfo extends SessionLogInfo { + } + + /** + * Reference to the DesktopSessionLogInfo type, identified by the value of + * the .tag property. + */ + export interface DesktopSessionLogInfoReference extends DesktopSessionLogInfo { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'desktop'; + } + + /** + * Added members to device approvals exception list. + */ + export interface DeviceApprovalsAddExceptionDetails { + } + + export interface DeviceApprovalsAddExceptionType { + description: string; + } + + /** + * Set/removed limit on number of computers member can link to team Dropbox + * account. + */ + export interface DeviceApprovalsChangeDesktopPolicyDetails { + /** + * New desktop device approvals policy. Might be missing due to historical + * data gap. + */ + new_value?: DeviceApprovalsPolicy; + /** + * Previous desktop device approvals policy. Might be missing due to + * historical data gap. + */ + previous_value?: DeviceApprovalsPolicy; + } + + export interface DeviceApprovalsChangeDesktopPolicyType { + description: string; + } + + /** + * Set/removed limit on number of mobile devices member can link to team + * Dropbox account. + */ + export interface DeviceApprovalsChangeMobilePolicyDetails { + /** + * New mobile device approvals policy. Might be missing due to historical + * data gap. + */ + new_value?: DeviceApprovalsPolicy; + /** + * Previous mobile device approvals policy. Might be missing due to + * historical data gap. + */ + previous_value?: DeviceApprovalsPolicy; + } + + export interface DeviceApprovalsChangeMobilePolicyType { + description: string; + } + + /** + * Changed device approvals setting when member is over limit. + */ + export interface DeviceApprovalsChangeOverageActionDetails { + /** + * New over the limits policy. Might be missing due to historical data + * gap. + */ + new_value?: team_policies.RolloutMethod; + /** + * Previous over the limit policy. Might be missing due to historical data + * gap. + */ + previous_value?: team_policies.RolloutMethod; + } + + export interface DeviceApprovalsChangeOverageActionType { + description: string; + } + + /** + * Changed device approvals setting when member unlinks approved device. + */ + export interface DeviceApprovalsChangeUnlinkActionDetails { + /** + * New device unlink policy. Might be missing due to historical data gap. + */ + new_value?: DeviceUnlinkPolicy; + /** + * Previous device unlink policy. Might be missing due to historical data + * gap. + */ + previous_value?: DeviceUnlinkPolicy; + } + + export interface DeviceApprovalsChangeUnlinkActionType { + description: string; + } + + export interface DeviceApprovalsPolicyLimited { + '.tag': 'limited'; + } + + export interface DeviceApprovalsPolicyUnlimited { + '.tag': 'unlimited'; + } + + export interface DeviceApprovalsPolicyOther { + '.tag': 'other'; + } + + export type DeviceApprovalsPolicy = DeviceApprovalsPolicyLimited | DeviceApprovalsPolicyUnlimited | DeviceApprovalsPolicyOther; + + /** + * Removed members from device approvals exception list. + */ + export interface DeviceApprovalsRemoveExceptionDetails { + } + + export interface DeviceApprovalsRemoveExceptionType { + description: string; + } + + /** + * Changed IP address associated with active desktop session. + */ + export interface DeviceChangeIpDesktopDetails { + /** + * Device's session logged information. + */ + device_session_info: DesktopDeviceSessionLogInfoReference|MobileDeviceSessionLogInfoReference|WebDeviceSessionLogInfoReference|LegacyDeviceSessionLogInfoReference|DeviceSessionLogInfoReference; + } + + export interface DeviceChangeIpDesktopType { + description: string; + } + + /** + * Changed IP address associated with active mobile session. + */ + export interface DeviceChangeIpMobileDetails { + /** + * Device's session logged information. + */ + device_session_info?: DesktopDeviceSessionLogInfoReference|MobileDeviceSessionLogInfoReference|WebDeviceSessionLogInfoReference|LegacyDeviceSessionLogInfoReference|DeviceSessionLogInfoReference; + } + + export interface DeviceChangeIpMobileType { + description: string; + } + + /** + * Changed IP address associated with active web session. + */ + export interface DeviceChangeIpWebDetails { + /** + * Web browser name. + */ + user_agent: string; + } + + export interface DeviceChangeIpWebType { + description: string; + } + + /** + * Failed to delete all files from unlinked device. + */ + export interface DeviceDeleteOnUnlinkFailDetails { + /** + * Session unique id. + */ + session_info?: WebSessionLogInfoReference|DesktopSessionLogInfoReference|MobileSessionLogInfoReference|SessionLogInfoReference; + /** + * The device name. Might be missing due to historical data gap. + */ + display_name?: string; + /** + * The number of times that remote file deletion failed. + */ + num_failures: number; + } + + export interface DeviceDeleteOnUnlinkFailType { + description: string; + } + + /** + * Deleted all files from unlinked device. + */ + export interface DeviceDeleteOnUnlinkSuccessDetails { + /** + * Session unique id. + */ + session_info?: WebSessionLogInfoReference|DesktopSessionLogInfoReference|MobileSessionLogInfoReference|SessionLogInfoReference; + /** + * The device name. Might be missing due to historical data gap. + */ + display_name?: string; + } + + export interface DeviceDeleteOnUnlinkSuccessType { + description: string; + } + + /** + * Failed to link device. + */ + export interface DeviceLinkFailDetails { + /** + * IP address. Might be missing due to historical data gap. + */ + ip_address?: IpAddress; + /** + * A description of the device used while user approval blocked. + */ + device_type: DeviceType; + } + + export interface DeviceLinkFailType { + description: string; + } + + /** + * Linked device. + */ + export interface DeviceLinkSuccessDetails { + /** + * Device's session logged information. + */ + device_session_info?: DesktopDeviceSessionLogInfoReference|MobileDeviceSessionLogInfoReference|WebDeviceSessionLogInfoReference|LegacyDeviceSessionLogInfoReference|DeviceSessionLogInfoReference; + } + + export interface DeviceLinkSuccessType { + description: string; + } + + /** + * Disabled device management. + */ + export interface DeviceManagementDisabledDetails { + } + + export interface DeviceManagementDisabledType { + description: string; + } + + /** + * Enabled device management. + */ + export interface DeviceManagementEnabledDetails { + } + + export interface DeviceManagementEnabledType { + description: string; + } + + /** + * Device's session logged information. + */ + export interface DeviceSessionLogInfo { + /** + * The IP address of the last activity from this session. + */ + ip_address?: IpAddress; + /** + * The time this session was created. + */ + created?: common.DropboxTimestamp; + /** + * The time of the last activity from this session. + */ + updated?: common.DropboxTimestamp; + } + + /** + * Reference to the DeviceSessionLogInfo polymorphic type. Contains a .tag + * property to let you discriminate between possible subtypes. + */ + export interface DeviceSessionLogInfoReference extends DeviceSessionLogInfo { + /** + * Tag identifying the subtype variant. + */ + '.tag': "desktop_device_session"|"mobile_device_session"|"web_device_session"|"legacy_device_session"; + } + + /** + * Enabled/disabled backup for computer. + */ + export interface DeviceSyncBackupStatusChangedDetails { + /** + * Device's session logged information. + */ + desktop_device_session_info: DesktopDeviceSessionLogInfo; + /** + * Previous status of computer backup on the device. + */ + previous_value: BackupStatus; + /** + * Next status of computer backup on the device. + */ + new_value: BackupStatus; + } + + export interface DeviceSyncBackupStatusChangedType { + description: string; + } + + export interface DeviceTypeDesktop { + '.tag': 'desktop'; + } + + export interface DeviceTypeMobile { + '.tag': 'mobile'; + } + + export interface DeviceTypeOther { + '.tag': 'other'; + } + + export type DeviceType = DeviceTypeDesktop | DeviceTypeMobile | DeviceTypeOther; + + /** + * Disconnected device. + */ + export interface DeviceUnlinkDetails { + /** + * Session unique id. + */ + session_info?: WebSessionLogInfoReference|DesktopSessionLogInfoReference|MobileSessionLogInfoReference|SessionLogInfoReference; + /** + * The device name. Might be missing due to historical data gap. + */ + display_name?: string; + /** + * True if the user requested to delete data after device unlink, false + * otherwise. + */ + delete_data: boolean; + } + + export interface DeviceUnlinkPolicyKeep { + '.tag': 'keep'; + } + + export interface DeviceUnlinkPolicyRemove { + '.tag': 'remove'; + } + + export interface DeviceUnlinkPolicyOther { + '.tag': 'other'; + } + + export type DeviceUnlinkPolicy = DeviceUnlinkPolicyKeep | DeviceUnlinkPolicyRemove | DeviceUnlinkPolicyOther; + + export interface DeviceUnlinkType { + description: string; + } + + /** + * Added members to directory restrictions list. + */ + export interface DirectoryRestrictionsAddMembersDetails { + } + + export interface DirectoryRestrictionsAddMembersType { + description: string; + } + + /** + * Removed members from directory restrictions list. + */ + export interface DirectoryRestrictionsRemoveMembersDetails { + } + + export interface DirectoryRestrictionsRemoveMembersType { + description: string; + } + + /** + * Disabled domain invites. + */ + export interface DisabledDomainInvitesDetails { + } + + export interface DisabledDomainInvitesType { + description: string; + } + + export interface DispositionActionTypeAutomaticDelete { + '.tag': 'automatic_delete'; + } + + export interface DispositionActionTypeAutomaticPermanentlyDelete { + '.tag': 'automatic_permanently_delete'; + } + + export interface DispositionActionTypeOther { + '.tag': 'other'; + } + + export type DispositionActionType = DispositionActionTypeAutomaticDelete | DispositionActionTypeAutomaticPermanentlyDelete | DispositionActionTypeOther; + + /** + * Approved user's request to join team. + */ + export interface DomainInvitesApproveRequestToJoinTeamDetails { + } + + export interface DomainInvitesApproveRequestToJoinTeamType { + description: string; + } + + /** + * Declined user's request to join team. + */ + export interface DomainInvitesDeclineRequestToJoinTeamDetails { + } + + export interface DomainInvitesDeclineRequestToJoinTeamType { + description: string; + } + + /** + * Sent domain invites to existing domain accounts. + */ + export interface DomainInvitesEmailExistingUsersDetails { + /** + * Domain names. + */ + domain_name: string; + /** + * Number of recipients. + */ + num_recipients: number; + } + + export interface DomainInvitesEmailExistingUsersType { + description: string; + } + + /** + * Requested to join team. + */ + export interface DomainInvitesRequestToJoinTeamDetails { + } + + export interface DomainInvitesRequestToJoinTeamType { + description: string; + } + + /** + * Disabled "Automatically invite new users". + */ + export interface DomainInvitesSetInviteNewUserPrefToNoDetails { + } + + export interface DomainInvitesSetInviteNewUserPrefToNoType { + description: string; + } + + /** + * Enabled "Automatically invite new users". + */ + export interface DomainInvitesSetInviteNewUserPrefToYesDetails { + } + + export interface DomainInvitesSetInviteNewUserPrefToYesType { + description: string; + } + + /** + * Failed to verify team domain. + */ + export interface DomainVerificationAddDomainFailDetails { + /** + * Domain name. + */ + domain_name: string; + /** + * Domain name verification method. Might be missing due to historical + * data gap. + */ + verification_method?: string; + } + + export interface DomainVerificationAddDomainFailType { + description: string; + } + + /** + * Verified team domain. + */ + export interface DomainVerificationAddDomainSuccessDetails { + /** + * Domain names. + */ + domain_names: Array; + /** + * Domain name verification method. Might be missing due to historical + * data gap. + */ + verification_method?: string; + } + + export interface DomainVerificationAddDomainSuccessType { + description: string; + } + + /** + * Removed domain from list of verified team domains. + */ + export interface DomainVerificationRemoveDomainDetails { + /** + * Domain names. + */ + domain_names: Array; + } + + export interface DomainVerificationRemoveDomainType { + description: string; + } + + export interface DownloadPolicyTypeAllow { + '.tag': 'allow'; + } + + export interface DownloadPolicyTypeDisallow { + '.tag': 'disallow'; + } + + export interface DownloadPolicyTypeOther { + '.tag': 'other'; + } + + /** + * Shared content downloads policy + */ + export type DownloadPolicyType = DownloadPolicyTypeAllow | DownloadPolicyTypeDisallow | DownloadPolicyTypeOther; + + /** + * Exported passwords. + */ + export interface DropboxPasswordsExportedDetails { + /** + * The platform the device runs export. + */ + platform: string; + } + + export interface DropboxPasswordsExportedType { + description: string; + } + + /** + * Enrolled new Dropbox Passwords device. + */ + export interface DropboxPasswordsNewDeviceEnrolledDetails { + /** + * Whether it's a first device enrolled. + */ + is_first_device: boolean; + /** + * The platform the device is enrolled. + */ + platform: string; + } + + export interface DropboxPasswordsNewDeviceEnrolledType { + description: string; + } + + export interface DropboxPasswordsPolicyDefault { + '.tag': 'default'; + } + + export interface DropboxPasswordsPolicyDisabled { + '.tag': 'disabled'; + } + + export interface DropboxPasswordsPolicyEnabled { + '.tag': 'enabled'; + } + + export interface DropboxPasswordsPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for deciding whether team users can use Dropbox Passwords + */ + export type DropboxPasswordsPolicy = DropboxPasswordsPolicyDefault | DropboxPasswordsPolicyDisabled | DropboxPasswordsPolicyEnabled | DropboxPasswordsPolicyOther; + + /** + * Changed Dropbox Passwords policy for team. + */ + export interface DropboxPasswordsPolicyChangedDetails { + /** + * To. + */ + new_value: DropboxPasswordsPolicy; + /** + * From. + */ + previous_value: DropboxPasswordsPolicy; + } + + export interface DropboxPasswordsPolicyChangedType { + description: string; + } + + /** + * Represents a time duration: unit and amount + */ + export interface DurationLogInfo { + /** + * Time unit. + */ + unit: TimeUnit; + /** + * Amount of time. + */ + amount: number; + } + + export interface EmailIngestPolicyDisabled { + '.tag': 'disabled'; + } + + export interface EmailIngestPolicyEnabled { + '.tag': 'enabled'; + } + + export interface EmailIngestPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for deciding whether a team can use Email to Dropbox feature + */ + export type EmailIngestPolicy = EmailIngestPolicyDisabled | EmailIngestPolicyEnabled | EmailIngestPolicyOther; + + /** + * Changed email to Dropbox policy for team. + */ + export interface EmailIngestPolicyChangedDetails { + /** + * To. + */ + new_value: EmailIngestPolicy; + /** + * From. + */ + previous_value: EmailIngestPolicy; + } + + export interface EmailIngestPolicyChangedType { + description: string; + } + + /** + * Received files via Email to Dropbox. + */ + export interface EmailIngestReceiveFileDetails { + /** + * Inbox name. + */ + inbox_name: string; + /** + * Submitted file names. + */ + attachment_names: Array; + /** + * Subject of the email. + */ + subject?: string; + /** + * The name as provided by the submitter. + */ + from_name?: common.DisplayNameLegacy; + /** + * The email as provided by the submitter. + */ + from_email?: EmailAddress; + } + + export interface EmailIngestReceiveFileType { + description: string; + } + + /** + * Added members to EMM exception list. + */ + export interface EmmAddExceptionDetails { + } + + export interface EmmAddExceptionType { + description: string; + } + + /** + * Enabled/disabled enterprise mobility management for members. + */ + export interface EmmChangePolicyDetails { + /** + * New enterprise mobility management policy. + */ + new_value: team_policies.EmmState; + /** + * Previous enterprise mobility management policy. Might be missing due to + * historical data gap. + */ + previous_value?: team_policies.EmmState; + } + + export interface EmmChangePolicyType { + description: string; + } + + /** + * Created EMM-excluded users report. + */ + export interface EmmCreateExceptionsReportDetails { + } + + export interface EmmCreateExceptionsReportType { + description: string; + } + + /** + * Created EMM mobile app usage report. + */ + export interface EmmCreateUsageReportDetails { + } + + export interface EmmCreateUsageReportType { + description: string; + } + + /** + * Failed to sign in via EMM. + */ + export interface EmmErrorDetails { + /** + * Error details. + */ + error_details: FailureDetailsLogInfo; + } + + export interface EmmErrorType { + description: string; + } + + /** + * Refreshed auth token used for setting up EMM. + */ + export interface EmmRefreshAuthTokenDetails { + } + + export interface EmmRefreshAuthTokenType { + description: string; + } + + /** + * Removed members from EMM exception list. + */ + export interface EmmRemoveExceptionDetails { + } + + export interface EmmRemoveExceptionType { + description: string; + } + + /** + * Enabled domain invites. + */ + export interface EnabledDomainInvitesDetails { + } + + export interface EnabledDomainInvitesType { + description: string; + } + + /** + * Ended enterprise admin session. + */ + export interface EndedEnterpriseAdminSessionDeprecatedDetails { + /** + * More information about the organization or team. + */ + federation_extra_details: FedExtraDetails; + } + + export interface EndedEnterpriseAdminSessionDeprecatedType { + description: string; + } + + /** + * Ended enterprise admin session. + */ + export interface EndedEnterpriseAdminSessionDetails { + } + + export interface EndedEnterpriseAdminSessionType { + description: string; + } + + export interface EnforceLinkPasswordPolicyOptional { + '.tag': 'optional'; + } + + export interface EnforceLinkPasswordPolicyRequired { + '.tag': 'required'; + } + + export interface EnforceLinkPasswordPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for deciding whether password must be enforced when an externally + * shared link is updated + */ + export type EnforceLinkPasswordPolicy = EnforceLinkPasswordPolicyOptional | EnforceLinkPasswordPolicyRequired | EnforceLinkPasswordPolicyOther; + + /** + * Changed who can update a setting. + */ + export interface EnterpriseSettingsLockingDetails { + /** + * The secondary team name. + */ + team_name: string; + /** + * Settings page name. + */ + settings_page_name: string; + /** + * Previous locked settings page state. + */ + previous_settings_page_locking_state: string; + /** + * New locked settings page state. + */ + new_settings_page_locking_state: string; + } + + export interface EnterpriseSettingsLockingType { + description: string; + } + + /** + * Events that involve team related alerts. + */ + export interface EventCategoryAdminAlerting { + '.tag': 'admin_alerting'; + } + + /** + * Events that apply to management of linked apps. + */ + export interface EventCategoryApps { + '.tag': 'apps'; + } + + /** + * Events that have to do with comments on files and Paper documents. + */ + export interface EventCategoryComments { + '.tag': 'comments'; + } + + /** + * Events that involve data governance actions + */ + export interface EventCategoryDataGovernance { + '.tag': 'data_governance'; + } + + /** + * Events that apply to linked devices on mobile, desktop and Web platforms. + */ + export interface EventCategoryDevices { + '.tag': 'devices'; + } + + /** + * Events that involve domain management feature: domain verification, + * invite enforcement and account capture. + */ + export interface EventCategoryDomains { + '.tag': 'domains'; + } + + /** + * Events that have to do with filesystem operations on files and folders: + * copy, move, delete, etc. + */ + export interface EventCategoryFileOperations { + '.tag': 'file_operations'; + } + + /** + * Events that apply to the file requests feature. + */ + export interface EventCategoryFileRequests { + '.tag': 'file_requests'; + } + + /** + * Events that involve group management. + */ + export interface EventCategoryGroups { + '.tag': 'groups'; + } + + /** + * Events that involve users signing in to or out of Dropbox. + */ + export interface EventCategoryLogins { + '.tag': 'logins'; + } + + /** + * Events that involve team member management. + */ + export interface EventCategoryMembers { + '.tag': 'members'; + } + + /** + * Events that apply to Dropbox Paper. + */ + export interface EventCategoryPaper { + '.tag': 'paper'; + } + + /** + * Events that involve using, changing or resetting passwords. + */ + export interface EventCategoryPasswords { + '.tag': 'passwords'; + } + + /** + * Events that concern generation of admin reports, including team activity + * and device usage. + */ + export interface EventCategoryReports { + '.tag': 'reports'; + } + + /** + * Events that apply to all types of sharing and collaboration. + */ + export interface EventCategorySharing { + '.tag': 'sharing'; + } + + /** + * Events that apply to Dropbox Showcase. + */ + export interface EventCategoryShowcase { + '.tag': 'showcase'; + } + + /** + * Events that involve using or configuring single sign-on as well as + * administrative policies concerning single sign-on. + */ + export interface EventCategorySso { + '.tag': 'sso'; + } + + /** + * Events that involve team folder management. + */ + export interface EventCategoryTeamFolders { + '.tag': 'team_folders'; + } + + /** + * Events that involve a change in team-wide policies. + */ + export interface EventCategoryTeamPolicies { + '.tag': 'team_policies'; + } + + /** + * Events that involve a change in the team profile. + */ + export interface EventCategoryTeamProfile { + '.tag': 'team_profile'; + } + + /** + * Events that involve using or configuring two factor authentication as + * well as administrative policies concerning two factor authentication. + */ + export interface EventCategoryTfa { + '.tag': 'tfa'; + } + + /** + * Events that apply to cross-team trust establishment. + */ + export interface EventCategoryTrustedTeams { + '.tag': 'trusted_teams'; + } + + export interface EventCategoryOther { + '.tag': 'other'; + } + + /** + * Category of events in event audit log. + */ + export type EventCategory = EventCategoryAdminAlerting | EventCategoryApps | EventCategoryComments | EventCategoryDataGovernance | EventCategoryDevices | EventCategoryDomains | EventCategoryFileOperations | EventCategoryFileRequests | EventCategoryGroups | EventCategoryLogins | EventCategoryMembers | EventCategoryPaper | EventCategoryPasswords | EventCategoryReports | EventCategorySharing | EventCategoryShowcase | EventCategorySso | EventCategoryTeamFolders | EventCategoryTeamPolicies | EventCategoryTeamProfile | EventCategoryTfa | EventCategoryTrustedTeams | EventCategoryOther; + + export interface EventDetailsAdminAlertingAlertStateChangedDetails extends AdminAlertingAlertStateChangedDetails { + '.tag': 'admin_alerting_alert_state_changed_details'; + } + + export interface EventDetailsAdminAlertingChangedAlertConfigDetails extends AdminAlertingChangedAlertConfigDetails { + '.tag': 'admin_alerting_changed_alert_config_details'; + } + + export interface EventDetailsAdminAlertingTriggeredAlertDetails extends AdminAlertingTriggeredAlertDetails { + '.tag': 'admin_alerting_triggered_alert_details'; + } + + export interface EventDetailsAppBlockedByPermissionsDetails extends AppBlockedByPermissionsDetails { + '.tag': 'app_blocked_by_permissions_details'; + } + + export interface EventDetailsAppLinkTeamDetails extends AppLinkTeamDetails { + '.tag': 'app_link_team_details'; + } + + export interface EventDetailsAppLinkUserDetails extends AppLinkUserDetails { + '.tag': 'app_link_user_details'; + } + + export interface EventDetailsAppUnlinkTeamDetails extends AppUnlinkTeamDetails { + '.tag': 'app_unlink_team_details'; + } + + export interface EventDetailsAppUnlinkUserDetails extends AppUnlinkUserDetails { + '.tag': 'app_unlink_user_details'; + } + + export interface EventDetailsIntegrationConnectedDetails extends IntegrationConnectedDetails { + '.tag': 'integration_connected_details'; + } + + export interface EventDetailsIntegrationDisconnectedDetails extends IntegrationDisconnectedDetails { + '.tag': 'integration_disconnected_details'; + } + + export interface EventDetailsFileAddCommentDetails extends FileAddCommentDetails { + '.tag': 'file_add_comment_details'; + } + + export interface EventDetailsFileChangeCommentSubscriptionDetails extends FileChangeCommentSubscriptionDetails { + '.tag': 'file_change_comment_subscription_details'; + } + + export interface EventDetailsFileDeleteCommentDetails extends FileDeleteCommentDetails { + '.tag': 'file_delete_comment_details'; + } + + export interface EventDetailsFileEditCommentDetails extends FileEditCommentDetails { + '.tag': 'file_edit_comment_details'; + } + + export interface EventDetailsFileLikeCommentDetails extends FileLikeCommentDetails { + '.tag': 'file_like_comment_details'; + } + + export interface EventDetailsFileResolveCommentDetails extends FileResolveCommentDetails { + '.tag': 'file_resolve_comment_details'; + } + + export interface EventDetailsFileUnlikeCommentDetails extends FileUnlikeCommentDetails { + '.tag': 'file_unlike_comment_details'; + } + + export interface EventDetailsFileUnresolveCommentDetails extends FileUnresolveCommentDetails { + '.tag': 'file_unresolve_comment_details'; + } + + export interface EventDetailsGovernancePolicyAddFoldersDetails extends GovernancePolicyAddFoldersDetails { + '.tag': 'governance_policy_add_folders_details'; + } + + export interface EventDetailsGovernancePolicyAddFolderFailedDetails extends GovernancePolicyAddFolderFailedDetails { + '.tag': 'governance_policy_add_folder_failed_details'; + } + + export interface EventDetailsGovernancePolicyContentDisposedDetails extends GovernancePolicyContentDisposedDetails { + '.tag': 'governance_policy_content_disposed_details'; + } + + export interface EventDetailsGovernancePolicyCreateDetails extends GovernancePolicyCreateDetails { + '.tag': 'governance_policy_create_details'; + } + + export interface EventDetailsGovernancePolicyDeleteDetails extends GovernancePolicyDeleteDetails { + '.tag': 'governance_policy_delete_details'; + } + + export interface EventDetailsGovernancePolicyEditDetailsDetails extends GovernancePolicyEditDetailsDetails { + '.tag': 'governance_policy_edit_details_details'; + } + + export interface EventDetailsGovernancePolicyEditDurationDetails extends GovernancePolicyEditDurationDetails { + '.tag': 'governance_policy_edit_duration_details'; + } + + export interface EventDetailsGovernancePolicyExportCreatedDetails extends GovernancePolicyExportCreatedDetails { + '.tag': 'governance_policy_export_created_details'; + } + + export interface EventDetailsGovernancePolicyExportRemovedDetails extends GovernancePolicyExportRemovedDetails { + '.tag': 'governance_policy_export_removed_details'; + } + + export interface EventDetailsGovernancePolicyRemoveFoldersDetails extends GovernancePolicyRemoveFoldersDetails { + '.tag': 'governance_policy_remove_folders_details'; + } + + export interface EventDetailsGovernancePolicyReportCreatedDetails extends GovernancePolicyReportCreatedDetails { + '.tag': 'governance_policy_report_created_details'; + } + + export interface EventDetailsGovernancePolicyZipPartDownloadedDetails extends GovernancePolicyZipPartDownloadedDetails { + '.tag': 'governance_policy_zip_part_downloaded_details'; + } + + export interface EventDetailsLegalHoldsActivateAHoldDetails extends LegalHoldsActivateAHoldDetails { + '.tag': 'legal_holds_activate_a_hold_details'; + } + + export interface EventDetailsLegalHoldsAddMembersDetails extends LegalHoldsAddMembersDetails { + '.tag': 'legal_holds_add_members_details'; + } + + export interface EventDetailsLegalHoldsChangeHoldDetailsDetails extends LegalHoldsChangeHoldDetailsDetails { + '.tag': 'legal_holds_change_hold_details_details'; + } + + export interface EventDetailsLegalHoldsChangeHoldNameDetails extends LegalHoldsChangeHoldNameDetails { + '.tag': 'legal_holds_change_hold_name_details'; + } + + export interface EventDetailsLegalHoldsExportAHoldDetails extends LegalHoldsExportAHoldDetails { + '.tag': 'legal_holds_export_a_hold_details'; + } + + export interface EventDetailsLegalHoldsExportCancelledDetails extends LegalHoldsExportCancelledDetails { + '.tag': 'legal_holds_export_cancelled_details'; + } + + export interface EventDetailsLegalHoldsExportDownloadedDetails extends LegalHoldsExportDownloadedDetails { + '.tag': 'legal_holds_export_downloaded_details'; + } + + export interface EventDetailsLegalHoldsExportRemovedDetails extends LegalHoldsExportRemovedDetails { + '.tag': 'legal_holds_export_removed_details'; + } + + export interface EventDetailsLegalHoldsReleaseAHoldDetails extends LegalHoldsReleaseAHoldDetails { + '.tag': 'legal_holds_release_a_hold_details'; + } + + export interface EventDetailsLegalHoldsRemoveMembersDetails extends LegalHoldsRemoveMembersDetails { + '.tag': 'legal_holds_remove_members_details'; + } + + export interface EventDetailsLegalHoldsReportAHoldDetails extends LegalHoldsReportAHoldDetails { + '.tag': 'legal_holds_report_a_hold_details'; + } + + export interface EventDetailsDeviceChangeIpDesktopDetails extends DeviceChangeIpDesktopDetails { + '.tag': 'device_change_ip_desktop_details'; + } + + export interface EventDetailsDeviceChangeIpMobileDetails extends DeviceChangeIpMobileDetails { + '.tag': 'device_change_ip_mobile_details'; + } + + export interface EventDetailsDeviceChangeIpWebDetails extends DeviceChangeIpWebDetails { + '.tag': 'device_change_ip_web_details'; + } + + export interface EventDetailsDeviceDeleteOnUnlinkFailDetails extends DeviceDeleteOnUnlinkFailDetails { + '.tag': 'device_delete_on_unlink_fail_details'; + } + + export interface EventDetailsDeviceDeleteOnUnlinkSuccessDetails extends DeviceDeleteOnUnlinkSuccessDetails { + '.tag': 'device_delete_on_unlink_success_details'; + } + + export interface EventDetailsDeviceLinkFailDetails extends DeviceLinkFailDetails { + '.tag': 'device_link_fail_details'; + } + + export interface EventDetailsDeviceLinkSuccessDetails extends DeviceLinkSuccessDetails { + '.tag': 'device_link_success_details'; + } + + export interface EventDetailsDeviceManagementDisabledDetails extends DeviceManagementDisabledDetails { + '.tag': 'device_management_disabled_details'; + } + + export interface EventDetailsDeviceManagementEnabledDetails extends DeviceManagementEnabledDetails { + '.tag': 'device_management_enabled_details'; + } + + export interface EventDetailsDeviceSyncBackupStatusChangedDetails extends DeviceSyncBackupStatusChangedDetails { + '.tag': 'device_sync_backup_status_changed_details'; + } + + export interface EventDetailsDeviceUnlinkDetails extends DeviceUnlinkDetails { + '.tag': 'device_unlink_details'; + } + + export interface EventDetailsDropboxPasswordsExportedDetails extends DropboxPasswordsExportedDetails { + '.tag': 'dropbox_passwords_exported_details'; + } + + export interface EventDetailsDropboxPasswordsNewDeviceEnrolledDetails extends DropboxPasswordsNewDeviceEnrolledDetails { + '.tag': 'dropbox_passwords_new_device_enrolled_details'; + } + + export interface EventDetailsEmmRefreshAuthTokenDetails extends EmmRefreshAuthTokenDetails { + '.tag': 'emm_refresh_auth_token_details'; + } + + export interface EventDetailsExternalDriveBackupEligibilityStatusCheckedDetails extends ExternalDriveBackupEligibilityStatusCheckedDetails { + '.tag': 'external_drive_backup_eligibility_status_checked_details'; + } + + export interface EventDetailsExternalDriveBackupStatusChangedDetails extends ExternalDriveBackupStatusChangedDetails { + '.tag': 'external_drive_backup_status_changed_details'; + } + + export interface EventDetailsAccountCaptureChangeAvailabilityDetails extends AccountCaptureChangeAvailabilityDetails { + '.tag': 'account_capture_change_availability_details'; + } + + export interface EventDetailsAccountCaptureMigrateAccountDetails extends AccountCaptureMigrateAccountDetails { + '.tag': 'account_capture_migrate_account_details'; + } + + export interface EventDetailsAccountCaptureNotificationEmailsSentDetails extends AccountCaptureNotificationEmailsSentDetails { + '.tag': 'account_capture_notification_emails_sent_details'; + } + + export interface EventDetailsAccountCaptureRelinquishAccountDetails extends AccountCaptureRelinquishAccountDetails { + '.tag': 'account_capture_relinquish_account_details'; + } + + export interface EventDetailsDisabledDomainInvitesDetails extends DisabledDomainInvitesDetails { + '.tag': 'disabled_domain_invites_details'; + } + + export interface EventDetailsDomainInvitesApproveRequestToJoinTeamDetails extends DomainInvitesApproveRequestToJoinTeamDetails { + '.tag': 'domain_invites_approve_request_to_join_team_details'; + } + + export interface EventDetailsDomainInvitesDeclineRequestToJoinTeamDetails extends DomainInvitesDeclineRequestToJoinTeamDetails { + '.tag': 'domain_invites_decline_request_to_join_team_details'; + } + + export interface EventDetailsDomainInvitesEmailExistingUsersDetails extends DomainInvitesEmailExistingUsersDetails { + '.tag': 'domain_invites_email_existing_users_details'; + } + + export interface EventDetailsDomainInvitesRequestToJoinTeamDetails extends DomainInvitesRequestToJoinTeamDetails { + '.tag': 'domain_invites_request_to_join_team_details'; + } + + export interface EventDetailsDomainInvitesSetInviteNewUserPrefToNoDetails extends DomainInvitesSetInviteNewUserPrefToNoDetails { + '.tag': 'domain_invites_set_invite_new_user_pref_to_no_details'; + } + + export interface EventDetailsDomainInvitesSetInviteNewUserPrefToYesDetails extends DomainInvitesSetInviteNewUserPrefToYesDetails { + '.tag': 'domain_invites_set_invite_new_user_pref_to_yes_details'; + } + + export interface EventDetailsDomainVerificationAddDomainFailDetails extends DomainVerificationAddDomainFailDetails { + '.tag': 'domain_verification_add_domain_fail_details'; + } + + export interface EventDetailsDomainVerificationAddDomainSuccessDetails extends DomainVerificationAddDomainSuccessDetails { + '.tag': 'domain_verification_add_domain_success_details'; + } + + export interface EventDetailsDomainVerificationRemoveDomainDetails extends DomainVerificationRemoveDomainDetails { + '.tag': 'domain_verification_remove_domain_details'; + } + + export interface EventDetailsEnabledDomainInvitesDetails extends EnabledDomainInvitesDetails { + '.tag': 'enabled_domain_invites_details'; + } + + export interface EventDetailsApplyNamingConventionDetails extends ApplyNamingConventionDetails { + '.tag': 'apply_naming_convention_details'; + } + + export interface EventDetailsCreateFolderDetails extends CreateFolderDetails { + '.tag': 'create_folder_details'; + } + + export interface EventDetailsFileAddDetails extends FileAddDetails { + '.tag': 'file_add_details'; + } + + export interface EventDetailsFileCopyDetails extends FileCopyDetails { + '.tag': 'file_copy_details'; + } + + export interface EventDetailsFileDeleteDetails extends FileDeleteDetails { + '.tag': 'file_delete_details'; + } + + export interface EventDetailsFileDownloadDetails extends FileDownloadDetails { + '.tag': 'file_download_details'; + } + + export interface EventDetailsFileEditDetails extends FileEditDetails { + '.tag': 'file_edit_details'; + } + + export interface EventDetailsFileGetCopyReferenceDetails extends FileGetCopyReferenceDetails { + '.tag': 'file_get_copy_reference_details'; + } + + export interface EventDetailsFileLockingLockStatusChangedDetails extends FileLockingLockStatusChangedDetails { + '.tag': 'file_locking_lock_status_changed_details'; + } + + export interface EventDetailsFileMoveDetails extends FileMoveDetails { + '.tag': 'file_move_details'; + } + + export interface EventDetailsFilePermanentlyDeleteDetails extends FilePermanentlyDeleteDetails { + '.tag': 'file_permanently_delete_details'; + } + + export interface EventDetailsFilePreviewDetails extends FilePreviewDetails { + '.tag': 'file_preview_details'; + } + + export interface EventDetailsFileRenameDetails extends FileRenameDetails { + '.tag': 'file_rename_details'; + } + + export interface EventDetailsFileRestoreDetails extends FileRestoreDetails { + '.tag': 'file_restore_details'; + } + + export interface EventDetailsFileRevertDetails extends FileRevertDetails { + '.tag': 'file_revert_details'; + } + + export interface EventDetailsFileRollbackChangesDetails extends FileRollbackChangesDetails { + '.tag': 'file_rollback_changes_details'; + } + + export interface EventDetailsFileSaveCopyReferenceDetails extends FileSaveCopyReferenceDetails { + '.tag': 'file_save_copy_reference_details'; + } + + export interface EventDetailsFolderOverviewDescriptionChangedDetails extends FolderOverviewDescriptionChangedDetails { + '.tag': 'folder_overview_description_changed_details'; + } + + export interface EventDetailsFolderOverviewItemPinnedDetails extends FolderOverviewItemPinnedDetails { + '.tag': 'folder_overview_item_pinned_details'; + } + + export interface EventDetailsFolderOverviewItemUnpinnedDetails extends FolderOverviewItemUnpinnedDetails { + '.tag': 'folder_overview_item_unpinned_details'; + } + + export interface EventDetailsObjectLabelAddedDetails extends ObjectLabelAddedDetails { + '.tag': 'object_label_added_details'; + } + + export interface EventDetailsObjectLabelRemovedDetails extends ObjectLabelRemovedDetails { + '.tag': 'object_label_removed_details'; + } + + export interface EventDetailsObjectLabelUpdatedValueDetails extends ObjectLabelUpdatedValueDetails { + '.tag': 'object_label_updated_value_details'; + } + + export interface EventDetailsOrganizeFolderWithTidyDetails extends OrganizeFolderWithTidyDetails { + '.tag': 'organize_folder_with_tidy_details'; + } + + export interface EventDetailsRewindFolderDetails extends RewindFolderDetails { + '.tag': 'rewind_folder_details'; + } + + export interface EventDetailsUndoNamingConventionDetails extends UndoNamingConventionDetails { + '.tag': 'undo_naming_convention_details'; + } + + export interface EventDetailsUndoOrganizeFolderWithTidyDetails extends UndoOrganizeFolderWithTidyDetails { + '.tag': 'undo_organize_folder_with_tidy_details'; + } + + export interface EventDetailsUserTagsAddedDetails extends UserTagsAddedDetails { + '.tag': 'user_tags_added_details'; + } + + export interface EventDetailsUserTagsRemovedDetails extends UserTagsRemovedDetails { + '.tag': 'user_tags_removed_details'; + } + + export interface EventDetailsEmailIngestReceiveFileDetails extends EmailIngestReceiveFileDetails { + '.tag': 'email_ingest_receive_file_details'; + } + + export interface EventDetailsFileRequestChangeDetails extends FileRequestChangeDetails { + '.tag': 'file_request_change_details'; + } + + export interface EventDetailsFileRequestCloseDetails extends FileRequestCloseDetails { + '.tag': 'file_request_close_details'; + } + + export interface EventDetailsFileRequestCreateDetails extends FileRequestCreateDetails { + '.tag': 'file_request_create_details'; + } + + export interface EventDetailsFileRequestDeleteDetails extends FileRequestDeleteDetails { + '.tag': 'file_request_delete_details'; + } + + export interface EventDetailsFileRequestReceiveFileDetails extends FileRequestReceiveFileDetails { + '.tag': 'file_request_receive_file_details'; + } + + export interface EventDetailsGroupAddExternalIdDetails extends GroupAddExternalIdDetails { + '.tag': 'group_add_external_id_details'; + } + + export interface EventDetailsGroupAddMemberDetails extends GroupAddMemberDetails { + '.tag': 'group_add_member_details'; + } + + export interface EventDetailsGroupChangeExternalIdDetails extends GroupChangeExternalIdDetails { + '.tag': 'group_change_external_id_details'; + } + + export interface EventDetailsGroupChangeManagementTypeDetails extends GroupChangeManagementTypeDetails { + '.tag': 'group_change_management_type_details'; + } + + export interface EventDetailsGroupChangeMemberRoleDetails extends GroupChangeMemberRoleDetails { + '.tag': 'group_change_member_role_details'; + } + + export interface EventDetailsGroupCreateDetails extends GroupCreateDetails { + '.tag': 'group_create_details'; + } + + export interface EventDetailsGroupDeleteDetails extends GroupDeleteDetails { + '.tag': 'group_delete_details'; + } + + export interface EventDetailsGroupDescriptionUpdatedDetails extends GroupDescriptionUpdatedDetails { + '.tag': 'group_description_updated_details'; + } + + export interface EventDetailsGroupJoinPolicyUpdatedDetails extends GroupJoinPolicyUpdatedDetails { + '.tag': 'group_join_policy_updated_details'; + } + + export interface EventDetailsGroupMovedDetails extends GroupMovedDetails { + '.tag': 'group_moved_details'; + } + + export interface EventDetailsGroupRemoveExternalIdDetails extends GroupRemoveExternalIdDetails { + '.tag': 'group_remove_external_id_details'; + } + + export interface EventDetailsGroupRemoveMemberDetails extends GroupRemoveMemberDetails { + '.tag': 'group_remove_member_details'; + } + + export interface EventDetailsGroupRenameDetails extends GroupRenameDetails { + '.tag': 'group_rename_details'; + } + + export interface EventDetailsAccountLockOrUnlockedDetails extends AccountLockOrUnlockedDetails { + '.tag': 'account_lock_or_unlocked_details'; + } + + export interface EventDetailsEmmErrorDetails extends EmmErrorDetails { + '.tag': 'emm_error_details'; + } + + export interface EventDetailsGuestAdminSignedInViaTrustedTeamsDetails extends GuestAdminSignedInViaTrustedTeamsDetails { + '.tag': 'guest_admin_signed_in_via_trusted_teams_details'; + } + + export interface EventDetailsGuestAdminSignedOutViaTrustedTeamsDetails extends GuestAdminSignedOutViaTrustedTeamsDetails { + '.tag': 'guest_admin_signed_out_via_trusted_teams_details'; + } + + export interface EventDetailsLoginFailDetails extends LoginFailDetails { + '.tag': 'login_fail_details'; + } + + export interface EventDetailsLoginSuccessDetails extends LoginSuccessDetails { + '.tag': 'login_success_details'; + } + + export interface EventDetailsLogoutDetails extends LogoutDetails { + '.tag': 'logout_details'; + } + + export interface EventDetailsResellerSupportSessionEndDetails extends ResellerSupportSessionEndDetails { + '.tag': 'reseller_support_session_end_details'; + } + + export interface EventDetailsResellerSupportSessionStartDetails extends ResellerSupportSessionStartDetails { + '.tag': 'reseller_support_session_start_details'; + } + + export interface EventDetailsSignInAsSessionEndDetails extends SignInAsSessionEndDetails { + '.tag': 'sign_in_as_session_end_details'; + } + + export interface EventDetailsSignInAsSessionStartDetails extends SignInAsSessionStartDetails { + '.tag': 'sign_in_as_session_start_details'; + } + + export interface EventDetailsSsoErrorDetails extends SsoErrorDetails { + '.tag': 'sso_error_details'; + } + + export interface EventDetailsCreateTeamInviteLinkDetails extends CreateTeamInviteLinkDetails { + '.tag': 'create_team_invite_link_details'; + } + + export interface EventDetailsDeleteTeamInviteLinkDetails extends DeleteTeamInviteLinkDetails { + '.tag': 'delete_team_invite_link_details'; + } + + export interface EventDetailsMemberAddExternalIdDetails extends MemberAddExternalIdDetails { + '.tag': 'member_add_external_id_details'; + } + + export interface EventDetailsMemberAddNameDetails extends MemberAddNameDetails { + '.tag': 'member_add_name_details'; + } + + export interface EventDetailsMemberChangeAdminRoleDetails extends MemberChangeAdminRoleDetails { + '.tag': 'member_change_admin_role_details'; + } + + export interface EventDetailsMemberChangeEmailDetails extends MemberChangeEmailDetails { + '.tag': 'member_change_email_details'; + } + + export interface EventDetailsMemberChangeExternalIdDetails extends MemberChangeExternalIdDetails { + '.tag': 'member_change_external_id_details'; + } + + export interface EventDetailsMemberChangeMembershipTypeDetails extends MemberChangeMembershipTypeDetails { + '.tag': 'member_change_membership_type_details'; + } + + export interface EventDetailsMemberChangeNameDetails extends MemberChangeNameDetails { + '.tag': 'member_change_name_details'; + } + + export interface EventDetailsMemberChangeResellerRoleDetails extends MemberChangeResellerRoleDetails { + '.tag': 'member_change_reseller_role_details'; + } + + export interface EventDetailsMemberChangeStatusDetails extends MemberChangeStatusDetails { + '.tag': 'member_change_status_details'; + } + + export interface EventDetailsMemberDeleteManualContactsDetails extends MemberDeleteManualContactsDetails { + '.tag': 'member_delete_manual_contacts_details'; + } + + export interface EventDetailsMemberDeleteProfilePhotoDetails extends MemberDeleteProfilePhotoDetails { + '.tag': 'member_delete_profile_photo_details'; + } + + export interface EventDetailsMemberPermanentlyDeleteAccountContentsDetails extends MemberPermanentlyDeleteAccountContentsDetails { + '.tag': 'member_permanently_delete_account_contents_details'; + } + + export interface EventDetailsMemberRemoveExternalIdDetails extends MemberRemoveExternalIdDetails { + '.tag': 'member_remove_external_id_details'; + } + + export interface EventDetailsMemberSetProfilePhotoDetails extends MemberSetProfilePhotoDetails { + '.tag': 'member_set_profile_photo_details'; + } + + export interface EventDetailsMemberSpaceLimitsAddCustomQuotaDetails extends MemberSpaceLimitsAddCustomQuotaDetails { + '.tag': 'member_space_limits_add_custom_quota_details'; + } + + export interface EventDetailsMemberSpaceLimitsChangeCustomQuotaDetails extends MemberSpaceLimitsChangeCustomQuotaDetails { + '.tag': 'member_space_limits_change_custom_quota_details'; + } + + export interface EventDetailsMemberSpaceLimitsChangeStatusDetails extends MemberSpaceLimitsChangeStatusDetails { + '.tag': 'member_space_limits_change_status_details'; + } + + export interface EventDetailsMemberSpaceLimitsRemoveCustomQuotaDetails extends MemberSpaceLimitsRemoveCustomQuotaDetails { + '.tag': 'member_space_limits_remove_custom_quota_details'; + } + + export interface EventDetailsMemberSuggestDetails extends MemberSuggestDetails { + '.tag': 'member_suggest_details'; + } + + export interface EventDetailsMemberTransferAccountContentsDetails extends MemberTransferAccountContentsDetails { + '.tag': 'member_transfer_account_contents_details'; + } + + export interface EventDetailsPendingSecondaryEmailAddedDetails extends PendingSecondaryEmailAddedDetails { + '.tag': 'pending_secondary_email_added_details'; + } + + export interface EventDetailsSecondaryEmailDeletedDetails extends SecondaryEmailDeletedDetails { + '.tag': 'secondary_email_deleted_details'; + } + + export interface EventDetailsSecondaryEmailVerifiedDetails extends SecondaryEmailVerifiedDetails { + '.tag': 'secondary_email_verified_details'; + } + + export interface EventDetailsSecondaryMailsPolicyChangedDetails extends SecondaryMailsPolicyChangedDetails { + '.tag': 'secondary_mails_policy_changed_details'; + } + + export interface EventDetailsBinderAddPageDetails extends BinderAddPageDetails { + '.tag': 'binder_add_page_details'; + } + + export interface EventDetailsBinderAddSectionDetails extends BinderAddSectionDetails { + '.tag': 'binder_add_section_details'; + } + + export interface EventDetailsBinderRemovePageDetails extends BinderRemovePageDetails { + '.tag': 'binder_remove_page_details'; + } + + export interface EventDetailsBinderRemoveSectionDetails extends BinderRemoveSectionDetails { + '.tag': 'binder_remove_section_details'; + } + + export interface EventDetailsBinderRenamePageDetails extends BinderRenamePageDetails { + '.tag': 'binder_rename_page_details'; + } + + export interface EventDetailsBinderRenameSectionDetails extends BinderRenameSectionDetails { + '.tag': 'binder_rename_section_details'; + } + + export interface EventDetailsBinderReorderPageDetails extends BinderReorderPageDetails { + '.tag': 'binder_reorder_page_details'; + } + + export interface EventDetailsBinderReorderSectionDetails extends BinderReorderSectionDetails { + '.tag': 'binder_reorder_section_details'; + } + + export interface EventDetailsPaperContentAddMemberDetails extends PaperContentAddMemberDetails { + '.tag': 'paper_content_add_member_details'; + } + + export interface EventDetailsPaperContentAddToFolderDetails extends PaperContentAddToFolderDetails { + '.tag': 'paper_content_add_to_folder_details'; + } + + export interface EventDetailsPaperContentArchiveDetails extends PaperContentArchiveDetails { + '.tag': 'paper_content_archive_details'; + } + + export interface EventDetailsPaperContentCreateDetails extends PaperContentCreateDetails { + '.tag': 'paper_content_create_details'; + } + + export interface EventDetailsPaperContentPermanentlyDeleteDetails extends PaperContentPermanentlyDeleteDetails { + '.tag': 'paper_content_permanently_delete_details'; + } + + export interface EventDetailsPaperContentRemoveFromFolderDetails extends PaperContentRemoveFromFolderDetails { + '.tag': 'paper_content_remove_from_folder_details'; + } + + export interface EventDetailsPaperContentRemoveMemberDetails extends PaperContentRemoveMemberDetails { + '.tag': 'paper_content_remove_member_details'; + } + + export interface EventDetailsPaperContentRenameDetails extends PaperContentRenameDetails { + '.tag': 'paper_content_rename_details'; + } + + export interface EventDetailsPaperContentRestoreDetails extends PaperContentRestoreDetails { + '.tag': 'paper_content_restore_details'; + } + + export interface EventDetailsPaperDocAddCommentDetails extends PaperDocAddCommentDetails { + '.tag': 'paper_doc_add_comment_details'; + } + + export interface EventDetailsPaperDocChangeMemberRoleDetails extends PaperDocChangeMemberRoleDetails { + '.tag': 'paper_doc_change_member_role_details'; + } + + export interface EventDetailsPaperDocChangeSharingPolicyDetails extends PaperDocChangeSharingPolicyDetails { + '.tag': 'paper_doc_change_sharing_policy_details'; + } + + export interface EventDetailsPaperDocChangeSubscriptionDetails extends PaperDocChangeSubscriptionDetails { + '.tag': 'paper_doc_change_subscription_details'; + } + + export interface EventDetailsPaperDocDeletedDetails extends PaperDocDeletedDetails { + '.tag': 'paper_doc_deleted_details'; + } + + export interface EventDetailsPaperDocDeleteCommentDetails extends PaperDocDeleteCommentDetails { + '.tag': 'paper_doc_delete_comment_details'; + } + + export interface EventDetailsPaperDocDownloadDetails extends PaperDocDownloadDetails { + '.tag': 'paper_doc_download_details'; + } + + export interface EventDetailsPaperDocEditDetails extends PaperDocEditDetails { + '.tag': 'paper_doc_edit_details'; + } + + export interface EventDetailsPaperDocEditCommentDetails extends PaperDocEditCommentDetails { + '.tag': 'paper_doc_edit_comment_details'; + } + + export interface EventDetailsPaperDocFollowedDetails extends PaperDocFollowedDetails { + '.tag': 'paper_doc_followed_details'; + } + + export interface EventDetailsPaperDocMentionDetails extends PaperDocMentionDetails { + '.tag': 'paper_doc_mention_details'; + } + + export interface EventDetailsPaperDocOwnershipChangedDetails extends PaperDocOwnershipChangedDetails { + '.tag': 'paper_doc_ownership_changed_details'; + } + + export interface EventDetailsPaperDocRequestAccessDetails extends PaperDocRequestAccessDetails { + '.tag': 'paper_doc_request_access_details'; + } + + export interface EventDetailsPaperDocResolveCommentDetails extends PaperDocResolveCommentDetails { + '.tag': 'paper_doc_resolve_comment_details'; + } + + export interface EventDetailsPaperDocRevertDetails extends PaperDocRevertDetails { + '.tag': 'paper_doc_revert_details'; + } + + export interface EventDetailsPaperDocSlackShareDetails extends PaperDocSlackShareDetails { + '.tag': 'paper_doc_slack_share_details'; + } + + export interface EventDetailsPaperDocTeamInviteDetails extends PaperDocTeamInviteDetails { + '.tag': 'paper_doc_team_invite_details'; + } + + export interface EventDetailsPaperDocTrashedDetails extends PaperDocTrashedDetails { + '.tag': 'paper_doc_trashed_details'; + } + + export interface EventDetailsPaperDocUnresolveCommentDetails extends PaperDocUnresolveCommentDetails { + '.tag': 'paper_doc_unresolve_comment_details'; + } + + export interface EventDetailsPaperDocUntrashedDetails extends PaperDocUntrashedDetails { + '.tag': 'paper_doc_untrashed_details'; + } + + export interface EventDetailsPaperDocViewDetails extends PaperDocViewDetails { + '.tag': 'paper_doc_view_details'; + } + + export interface EventDetailsPaperExternalViewAllowDetails extends PaperExternalViewAllowDetails { + '.tag': 'paper_external_view_allow_details'; + } + + export interface EventDetailsPaperExternalViewDefaultTeamDetails extends PaperExternalViewDefaultTeamDetails { + '.tag': 'paper_external_view_default_team_details'; + } + + export interface EventDetailsPaperExternalViewForbidDetails extends PaperExternalViewForbidDetails { + '.tag': 'paper_external_view_forbid_details'; + } + + export interface EventDetailsPaperFolderChangeSubscriptionDetails extends PaperFolderChangeSubscriptionDetails { + '.tag': 'paper_folder_change_subscription_details'; + } + + export interface EventDetailsPaperFolderDeletedDetails extends PaperFolderDeletedDetails { + '.tag': 'paper_folder_deleted_details'; + } + + export interface EventDetailsPaperFolderFollowedDetails extends PaperFolderFollowedDetails { + '.tag': 'paper_folder_followed_details'; + } + + export interface EventDetailsPaperFolderTeamInviteDetails extends PaperFolderTeamInviteDetails { + '.tag': 'paper_folder_team_invite_details'; + } + + export interface EventDetailsPaperPublishedLinkChangePermissionDetails extends PaperPublishedLinkChangePermissionDetails { + '.tag': 'paper_published_link_change_permission_details'; + } + + export interface EventDetailsPaperPublishedLinkCreateDetails extends PaperPublishedLinkCreateDetails { + '.tag': 'paper_published_link_create_details'; + } + + export interface EventDetailsPaperPublishedLinkDisabledDetails extends PaperPublishedLinkDisabledDetails { + '.tag': 'paper_published_link_disabled_details'; + } + + export interface EventDetailsPaperPublishedLinkViewDetails extends PaperPublishedLinkViewDetails { + '.tag': 'paper_published_link_view_details'; + } + + export interface EventDetailsPasswordChangeDetails extends PasswordChangeDetails { + '.tag': 'password_change_details'; + } + + export interface EventDetailsPasswordResetDetails extends PasswordResetDetails { + '.tag': 'password_reset_details'; + } + + export interface EventDetailsPasswordResetAllDetails extends PasswordResetAllDetails { + '.tag': 'password_reset_all_details'; + } + + export interface EventDetailsClassificationCreateReportDetails extends ClassificationCreateReportDetails { + '.tag': 'classification_create_report_details'; + } + + export interface EventDetailsClassificationCreateReportFailDetails extends ClassificationCreateReportFailDetails { + '.tag': 'classification_create_report_fail_details'; + } + + export interface EventDetailsEmmCreateExceptionsReportDetails extends EmmCreateExceptionsReportDetails { + '.tag': 'emm_create_exceptions_report_details'; + } + + export interface EventDetailsEmmCreateUsageReportDetails extends EmmCreateUsageReportDetails { + '.tag': 'emm_create_usage_report_details'; + } + + export interface EventDetailsExportMembersReportDetails extends ExportMembersReportDetails { + '.tag': 'export_members_report_details'; + } + + export interface EventDetailsExportMembersReportFailDetails extends ExportMembersReportFailDetails { + '.tag': 'export_members_report_fail_details'; + } + + export interface EventDetailsExternalSharingCreateReportDetails extends ExternalSharingCreateReportDetails { + '.tag': 'external_sharing_create_report_details'; + } + + export interface EventDetailsExternalSharingReportFailedDetails extends ExternalSharingReportFailedDetails { + '.tag': 'external_sharing_report_failed_details'; + } + + export interface EventDetailsNoExpirationLinkGenCreateReportDetails extends NoExpirationLinkGenCreateReportDetails { + '.tag': 'no_expiration_link_gen_create_report_details'; + } + + export interface EventDetailsNoExpirationLinkGenReportFailedDetails extends NoExpirationLinkGenReportFailedDetails { + '.tag': 'no_expiration_link_gen_report_failed_details'; + } + + export interface EventDetailsNoPasswordLinkGenCreateReportDetails extends NoPasswordLinkGenCreateReportDetails { + '.tag': 'no_password_link_gen_create_report_details'; + } + + export interface EventDetailsNoPasswordLinkGenReportFailedDetails extends NoPasswordLinkGenReportFailedDetails { + '.tag': 'no_password_link_gen_report_failed_details'; + } + + export interface EventDetailsNoPasswordLinkViewCreateReportDetails extends NoPasswordLinkViewCreateReportDetails { + '.tag': 'no_password_link_view_create_report_details'; + } + + export interface EventDetailsNoPasswordLinkViewReportFailedDetails extends NoPasswordLinkViewReportFailedDetails { + '.tag': 'no_password_link_view_report_failed_details'; + } + + export interface EventDetailsOutdatedLinkViewCreateReportDetails extends OutdatedLinkViewCreateReportDetails { + '.tag': 'outdated_link_view_create_report_details'; + } + + export interface EventDetailsOutdatedLinkViewReportFailedDetails extends OutdatedLinkViewReportFailedDetails { + '.tag': 'outdated_link_view_report_failed_details'; + } + + export interface EventDetailsPaperAdminExportStartDetails extends PaperAdminExportStartDetails { + '.tag': 'paper_admin_export_start_details'; + } + + export interface EventDetailsSmartSyncCreateAdminPrivilegeReportDetails extends SmartSyncCreateAdminPrivilegeReportDetails { + '.tag': 'smart_sync_create_admin_privilege_report_details'; + } + + export interface EventDetailsTeamActivityCreateReportDetails extends TeamActivityCreateReportDetails { + '.tag': 'team_activity_create_report_details'; + } + + export interface EventDetailsTeamActivityCreateReportFailDetails extends TeamActivityCreateReportFailDetails { + '.tag': 'team_activity_create_report_fail_details'; + } + + export interface EventDetailsCollectionShareDetails extends CollectionShareDetails { + '.tag': 'collection_share_details'; + } + + export interface EventDetailsFileTransfersFileAddDetails extends FileTransfersFileAddDetails { + '.tag': 'file_transfers_file_add_details'; + } + + export interface EventDetailsFileTransfersTransferDeleteDetails extends FileTransfersTransferDeleteDetails { + '.tag': 'file_transfers_transfer_delete_details'; + } + + export interface EventDetailsFileTransfersTransferDownloadDetails extends FileTransfersTransferDownloadDetails { + '.tag': 'file_transfers_transfer_download_details'; + } + + export interface EventDetailsFileTransfersTransferSendDetails extends FileTransfersTransferSendDetails { + '.tag': 'file_transfers_transfer_send_details'; + } + + export interface EventDetailsFileTransfersTransferViewDetails extends FileTransfersTransferViewDetails { + '.tag': 'file_transfers_transfer_view_details'; + } + + export interface EventDetailsNoteAclInviteOnlyDetails extends NoteAclInviteOnlyDetails { + '.tag': 'note_acl_invite_only_details'; + } + + export interface EventDetailsNoteAclLinkDetails extends NoteAclLinkDetails { + '.tag': 'note_acl_link_details'; + } + + export interface EventDetailsNoteAclTeamLinkDetails extends NoteAclTeamLinkDetails { + '.tag': 'note_acl_team_link_details'; + } + + export interface EventDetailsNoteSharedDetails extends NoteSharedDetails { + '.tag': 'note_shared_details'; + } + + export interface EventDetailsNoteShareReceiveDetails extends NoteShareReceiveDetails { + '.tag': 'note_share_receive_details'; + } + + export interface EventDetailsOpenNoteSharedDetails extends OpenNoteSharedDetails { + '.tag': 'open_note_shared_details'; + } + + export interface EventDetailsSfAddGroupDetails extends SfAddGroupDetails { + '.tag': 'sf_add_group_details'; + } + + export interface EventDetailsSfAllowNonMembersToViewSharedLinksDetails extends SfAllowNonMembersToViewSharedLinksDetails { + '.tag': 'sf_allow_non_members_to_view_shared_links_details'; + } + + export interface EventDetailsSfExternalInviteWarnDetails extends SfExternalInviteWarnDetails { + '.tag': 'sf_external_invite_warn_details'; + } + + export interface EventDetailsSfFbInviteDetails extends SfFbInviteDetails { + '.tag': 'sf_fb_invite_details'; + } + + export interface EventDetailsSfFbInviteChangeRoleDetails extends SfFbInviteChangeRoleDetails { + '.tag': 'sf_fb_invite_change_role_details'; + } + + export interface EventDetailsSfFbUninviteDetails extends SfFbUninviteDetails { + '.tag': 'sf_fb_uninvite_details'; + } + + export interface EventDetailsSfInviteGroupDetails extends SfInviteGroupDetails { + '.tag': 'sf_invite_group_details'; + } + + export interface EventDetailsSfTeamGrantAccessDetails extends SfTeamGrantAccessDetails { + '.tag': 'sf_team_grant_access_details'; + } + + export interface EventDetailsSfTeamInviteDetails extends SfTeamInviteDetails { + '.tag': 'sf_team_invite_details'; + } + + export interface EventDetailsSfTeamInviteChangeRoleDetails extends SfTeamInviteChangeRoleDetails { + '.tag': 'sf_team_invite_change_role_details'; + } + + export interface EventDetailsSfTeamJoinDetails extends SfTeamJoinDetails { + '.tag': 'sf_team_join_details'; + } + + export interface EventDetailsSfTeamJoinFromOobLinkDetails extends SfTeamJoinFromOobLinkDetails { + '.tag': 'sf_team_join_from_oob_link_details'; + } + + export interface EventDetailsSfTeamUninviteDetails extends SfTeamUninviteDetails { + '.tag': 'sf_team_uninvite_details'; + } + + export interface EventDetailsSharedContentAddInviteesDetails extends SharedContentAddInviteesDetails { + '.tag': 'shared_content_add_invitees_details'; + } + + export interface EventDetailsSharedContentAddLinkExpiryDetails extends SharedContentAddLinkExpiryDetails { + '.tag': 'shared_content_add_link_expiry_details'; + } + + export interface EventDetailsSharedContentAddLinkPasswordDetails extends SharedContentAddLinkPasswordDetails { + '.tag': 'shared_content_add_link_password_details'; + } + + export interface EventDetailsSharedContentAddMemberDetails extends SharedContentAddMemberDetails { + '.tag': 'shared_content_add_member_details'; + } + + export interface EventDetailsSharedContentChangeDownloadsPolicyDetails extends SharedContentChangeDownloadsPolicyDetails { + '.tag': 'shared_content_change_downloads_policy_details'; + } + + export interface EventDetailsSharedContentChangeInviteeRoleDetails extends SharedContentChangeInviteeRoleDetails { + '.tag': 'shared_content_change_invitee_role_details'; + } + + export interface EventDetailsSharedContentChangeLinkAudienceDetails extends SharedContentChangeLinkAudienceDetails { + '.tag': 'shared_content_change_link_audience_details'; + } + + export interface EventDetailsSharedContentChangeLinkExpiryDetails extends SharedContentChangeLinkExpiryDetails { + '.tag': 'shared_content_change_link_expiry_details'; + } + + export interface EventDetailsSharedContentChangeLinkPasswordDetails extends SharedContentChangeLinkPasswordDetails { + '.tag': 'shared_content_change_link_password_details'; + } + + export interface EventDetailsSharedContentChangeMemberRoleDetails extends SharedContentChangeMemberRoleDetails { + '.tag': 'shared_content_change_member_role_details'; + } + + export interface EventDetailsSharedContentChangeViewerInfoPolicyDetails extends SharedContentChangeViewerInfoPolicyDetails { + '.tag': 'shared_content_change_viewer_info_policy_details'; + } + + export interface EventDetailsSharedContentClaimInvitationDetails extends SharedContentClaimInvitationDetails { + '.tag': 'shared_content_claim_invitation_details'; + } + + export interface EventDetailsSharedContentCopyDetails extends SharedContentCopyDetails { + '.tag': 'shared_content_copy_details'; + } + + export interface EventDetailsSharedContentDownloadDetails extends SharedContentDownloadDetails { + '.tag': 'shared_content_download_details'; + } + + export interface EventDetailsSharedContentRelinquishMembershipDetails extends SharedContentRelinquishMembershipDetails { + '.tag': 'shared_content_relinquish_membership_details'; + } + + export interface EventDetailsSharedContentRemoveInviteesDetails extends SharedContentRemoveInviteesDetails { + '.tag': 'shared_content_remove_invitees_details'; + } + + export interface EventDetailsSharedContentRemoveLinkExpiryDetails extends SharedContentRemoveLinkExpiryDetails { + '.tag': 'shared_content_remove_link_expiry_details'; + } + + export interface EventDetailsSharedContentRemoveLinkPasswordDetails extends SharedContentRemoveLinkPasswordDetails { + '.tag': 'shared_content_remove_link_password_details'; + } + + export interface EventDetailsSharedContentRemoveMemberDetails extends SharedContentRemoveMemberDetails { + '.tag': 'shared_content_remove_member_details'; + } + + export interface EventDetailsSharedContentRequestAccessDetails extends SharedContentRequestAccessDetails { + '.tag': 'shared_content_request_access_details'; + } + + export interface EventDetailsSharedContentRestoreInviteesDetails extends SharedContentRestoreInviteesDetails { + '.tag': 'shared_content_restore_invitees_details'; + } + + export interface EventDetailsSharedContentRestoreMemberDetails extends SharedContentRestoreMemberDetails { + '.tag': 'shared_content_restore_member_details'; + } + + export interface EventDetailsSharedContentUnshareDetails extends SharedContentUnshareDetails { + '.tag': 'shared_content_unshare_details'; + } + + export interface EventDetailsSharedContentViewDetails extends SharedContentViewDetails { + '.tag': 'shared_content_view_details'; + } + + export interface EventDetailsSharedFolderChangeLinkPolicyDetails extends SharedFolderChangeLinkPolicyDetails { + '.tag': 'shared_folder_change_link_policy_details'; + } + + export interface EventDetailsSharedFolderChangeMembersInheritancePolicyDetails extends SharedFolderChangeMembersInheritancePolicyDetails { + '.tag': 'shared_folder_change_members_inheritance_policy_details'; + } + + export interface EventDetailsSharedFolderChangeMembersManagementPolicyDetails extends SharedFolderChangeMembersManagementPolicyDetails { + '.tag': 'shared_folder_change_members_management_policy_details'; + } + + export interface EventDetailsSharedFolderChangeMembersPolicyDetails extends SharedFolderChangeMembersPolicyDetails { + '.tag': 'shared_folder_change_members_policy_details'; + } + + export interface EventDetailsSharedFolderCreateDetails extends SharedFolderCreateDetails { + '.tag': 'shared_folder_create_details'; + } + + export interface EventDetailsSharedFolderDeclineInvitationDetails extends SharedFolderDeclineInvitationDetails { + '.tag': 'shared_folder_decline_invitation_details'; + } + + export interface EventDetailsSharedFolderMountDetails extends SharedFolderMountDetails { + '.tag': 'shared_folder_mount_details'; + } + + export interface EventDetailsSharedFolderNestDetails extends SharedFolderNestDetails { + '.tag': 'shared_folder_nest_details'; + } + + export interface EventDetailsSharedFolderTransferOwnershipDetails extends SharedFolderTransferOwnershipDetails { + '.tag': 'shared_folder_transfer_ownership_details'; + } + + export interface EventDetailsSharedFolderUnmountDetails extends SharedFolderUnmountDetails { + '.tag': 'shared_folder_unmount_details'; + } + + export interface EventDetailsSharedLinkAddExpiryDetails extends SharedLinkAddExpiryDetails { + '.tag': 'shared_link_add_expiry_details'; + } + + export interface EventDetailsSharedLinkChangeExpiryDetails extends SharedLinkChangeExpiryDetails { + '.tag': 'shared_link_change_expiry_details'; + } + + export interface EventDetailsSharedLinkChangeVisibilityDetails extends SharedLinkChangeVisibilityDetails { + '.tag': 'shared_link_change_visibility_details'; + } + + export interface EventDetailsSharedLinkCopyDetails extends SharedLinkCopyDetails { + '.tag': 'shared_link_copy_details'; + } + + export interface EventDetailsSharedLinkCreateDetails extends SharedLinkCreateDetails { + '.tag': 'shared_link_create_details'; + } + + export interface EventDetailsSharedLinkDisableDetails extends SharedLinkDisableDetails { + '.tag': 'shared_link_disable_details'; + } + + export interface EventDetailsSharedLinkDownloadDetails extends SharedLinkDownloadDetails { + '.tag': 'shared_link_download_details'; + } + + export interface EventDetailsSharedLinkRemoveExpiryDetails extends SharedLinkRemoveExpiryDetails { + '.tag': 'shared_link_remove_expiry_details'; + } + + export interface EventDetailsSharedLinkSettingsAddExpirationDetails extends SharedLinkSettingsAddExpirationDetails { + '.tag': 'shared_link_settings_add_expiration_details'; + } + + export interface EventDetailsSharedLinkSettingsAddPasswordDetails extends SharedLinkSettingsAddPasswordDetails { + '.tag': 'shared_link_settings_add_password_details'; + } + + export interface EventDetailsSharedLinkSettingsAllowDownloadDisabledDetails extends SharedLinkSettingsAllowDownloadDisabledDetails { + '.tag': 'shared_link_settings_allow_download_disabled_details'; + } + + export interface EventDetailsSharedLinkSettingsAllowDownloadEnabledDetails extends SharedLinkSettingsAllowDownloadEnabledDetails { + '.tag': 'shared_link_settings_allow_download_enabled_details'; + } + + export interface EventDetailsSharedLinkSettingsChangeAudienceDetails extends SharedLinkSettingsChangeAudienceDetails { + '.tag': 'shared_link_settings_change_audience_details'; + } + + export interface EventDetailsSharedLinkSettingsChangeExpirationDetails extends SharedLinkSettingsChangeExpirationDetails { + '.tag': 'shared_link_settings_change_expiration_details'; + } + + export interface EventDetailsSharedLinkSettingsChangePasswordDetails extends SharedLinkSettingsChangePasswordDetails { + '.tag': 'shared_link_settings_change_password_details'; + } + + export interface EventDetailsSharedLinkSettingsRemoveExpirationDetails extends SharedLinkSettingsRemoveExpirationDetails { + '.tag': 'shared_link_settings_remove_expiration_details'; + } + + export interface EventDetailsSharedLinkSettingsRemovePasswordDetails extends SharedLinkSettingsRemovePasswordDetails { + '.tag': 'shared_link_settings_remove_password_details'; + } + + export interface EventDetailsSharedLinkShareDetails extends SharedLinkShareDetails { + '.tag': 'shared_link_share_details'; + } + + export interface EventDetailsSharedLinkViewDetails extends SharedLinkViewDetails { + '.tag': 'shared_link_view_details'; + } + + export interface EventDetailsSharedNoteOpenedDetails extends SharedNoteOpenedDetails { + '.tag': 'shared_note_opened_details'; + } + + export interface EventDetailsShmodelDisableDownloadsDetails extends ShmodelDisableDownloadsDetails { + '.tag': 'shmodel_disable_downloads_details'; + } + + export interface EventDetailsShmodelEnableDownloadsDetails extends ShmodelEnableDownloadsDetails { + '.tag': 'shmodel_enable_downloads_details'; + } + + export interface EventDetailsShmodelGroupShareDetails extends ShmodelGroupShareDetails { + '.tag': 'shmodel_group_share_details'; + } + + export interface EventDetailsShowcaseAccessGrantedDetails extends ShowcaseAccessGrantedDetails { + '.tag': 'showcase_access_granted_details'; + } + + export interface EventDetailsShowcaseAddMemberDetails extends ShowcaseAddMemberDetails { + '.tag': 'showcase_add_member_details'; + } + + export interface EventDetailsShowcaseArchivedDetails extends ShowcaseArchivedDetails { + '.tag': 'showcase_archived_details'; + } + + export interface EventDetailsShowcaseCreatedDetails extends ShowcaseCreatedDetails { + '.tag': 'showcase_created_details'; + } + + export interface EventDetailsShowcaseDeleteCommentDetails extends ShowcaseDeleteCommentDetails { + '.tag': 'showcase_delete_comment_details'; + } + + export interface EventDetailsShowcaseEditedDetails extends ShowcaseEditedDetails { + '.tag': 'showcase_edited_details'; + } + + export interface EventDetailsShowcaseEditCommentDetails extends ShowcaseEditCommentDetails { + '.tag': 'showcase_edit_comment_details'; + } + + export interface EventDetailsShowcaseFileAddedDetails extends ShowcaseFileAddedDetails { + '.tag': 'showcase_file_added_details'; + } + + export interface EventDetailsShowcaseFileDownloadDetails extends ShowcaseFileDownloadDetails { + '.tag': 'showcase_file_download_details'; + } + + export interface EventDetailsShowcaseFileRemovedDetails extends ShowcaseFileRemovedDetails { + '.tag': 'showcase_file_removed_details'; + } + + export interface EventDetailsShowcaseFileViewDetails extends ShowcaseFileViewDetails { + '.tag': 'showcase_file_view_details'; + } + + export interface EventDetailsShowcasePermanentlyDeletedDetails extends ShowcasePermanentlyDeletedDetails { + '.tag': 'showcase_permanently_deleted_details'; + } + + export interface EventDetailsShowcasePostCommentDetails extends ShowcasePostCommentDetails { + '.tag': 'showcase_post_comment_details'; + } + + export interface EventDetailsShowcaseRemoveMemberDetails extends ShowcaseRemoveMemberDetails { + '.tag': 'showcase_remove_member_details'; + } + + export interface EventDetailsShowcaseRenamedDetails extends ShowcaseRenamedDetails { + '.tag': 'showcase_renamed_details'; + } + + export interface EventDetailsShowcaseRequestAccessDetails extends ShowcaseRequestAccessDetails { + '.tag': 'showcase_request_access_details'; + } + + export interface EventDetailsShowcaseResolveCommentDetails extends ShowcaseResolveCommentDetails { + '.tag': 'showcase_resolve_comment_details'; + } + + export interface EventDetailsShowcaseRestoredDetails extends ShowcaseRestoredDetails { + '.tag': 'showcase_restored_details'; + } + + export interface EventDetailsShowcaseTrashedDetails extends ShowcaseTrashedDetails { + '.tag': 'showcase_trashed_details'; + } + + export interface EventDetailsShowcaseTrashedDeprecatedDetails extends ShowcaseTrashedDeprecatedDetails { + '.tag': 'showcase_trashed_deprecated_details'; + } + + export interface EventDetailsShowcaseUnresolveCommentDetails extends ShowcaseUnresolveCommentDetails { + '.tag': 'showcase_unresolve_comment_details'; + } + + export interface EventDetailsShowcaseUntrashedDetails extends ShowcaseUntrashedDetails { + '.tag': 'showcase_untrashed_details'; + } + + export interface EventDetailsShowcaseUntrashedDeprecatedDetails extends ShowcaseUntrashedDeprecatedDetails { + '.tag': 'showcase_untrashed_deprecated_details'; + } + + export interface EventDetailsShowcaseViewDetails extends ShowcaseViewDetails { + '.tag': 'showcase_view_details'; + } + + export interface EventDetailsSsoAddCertDetails extends SsoAddCertDetails { + '.tag': 'sso_add_cert_details'; + } + + export interface EventDetailsSsoAddLoginUrlDetails extends SsoAddLoginUrlDetails { + '.tag': 'sso_add_login_url_details'; + } + + export interface EventDetailsSsoAddLogoutUrlDetails extends SsoAddLogoutUrlDetails { + '.tag': 'sso_add_logout_url_details'; + } + + export interface EventDetailsSsoChangeCertDetails extends SsoChangeCertDetails { + '.tag': 'sso_change_cert_details'; + } + + export interface EventDetailsSsoChangeLoginUrlDetails extends SsoChangeLoginUrlDetails { + '.tag': 'sso_change_login_url_details'; + } + + export interface EventDetailsSsoChangeLogoutUrlDetails extends SsoChangeLogoutUrlDetails { + '.tag': 'sso_change_logout_url_details'; + } + + export interface EventDetailsSsoChangeSamlIdentityModeDetails extends SsoChangeSamlIdentityModeDetails { + '.tag': 'sso_change_saml_identity_mode_details'; + } + + export interface EventDetailsSsoRemoveCertDetails extends SsoRemoveCertDetails { + '.tag': 'sso_remove_cert_details'; + } + + export interface EventDetailsSsoRemoveLoginUrlDetails extends SsoRemoveLoginUrlDetails { + '.tag': 'sso_remove_login_url_details'; + } + + export interface EventDetailsSsoRemoveLogoutUrlDetails extends SsoRemoveLogoutUrlDetails { + '.tag': 'sso_remove_logout_url_details'; + } + + export interface EventDetailsTeamFolderChangeStatusDetails extends TeamFolderChangeStatusDetails { + '.tag': 'team_folder_change_status_details'; + } + + export interface EventDetailsTeamFolderCreateDetails extends TeamFolderCreateDetails { + '.tag': 'team_folder_create_details'; + } + + export interface EventDetailsTeamFolderDowngradeDetails extends TeamFolderDowngradeDetails { + '.tag': 'team_folder_downgrade_details'; + } + + export interface EventDetailsTeamFolderPermanentlyDeleteDetails extends TeamFolderPermanentlyDeleteDetails { + '.tag': 'team_folder_permanently_delete_details'; + } + + export interface EventDetailsTeamFolderRenameDetails extends TeamFolderRenameDetails { + '.tag': 'team_folder_rename_details'; + } + + export interface EventDetailsTeamSelectiveSyncSettingsChangedDetails extends TeamSelectiveSyncSettingsChangedDetails { + '.tag': 'team_selective_sync_settings_changed_details'; + } + + export interface EventDetailsAccountCaptureChangePolicyDetails extends AccountCaptureChangePolicyDetails { + '.tag': 'account_capture_change_policy_details'; + } + + export interface EventDetailsAdminEmailRemindersChangedDetails extends AdminEmailRemindersChangedDetails { + '.tag': 'admin_email_reminders_changed_details'; + } + + export interface EventDetailsAllowDownloadDisabledDetails extends AllowDownloadDisabledDetails { + '.tag': 'allow_download_disabled_details'; + } + + export interface EventDetailsAllowDownloadEnabledDetails extends AllowDownloadEnabledDetails { + '.tag': 'allow_download_enabled_details'; + } + + export interface EventDetailsAppPermissionsChangedDetails extends AppPermissionsChangedDetails { + '.tag': 'app_permissions_changed_details'; + } + + export interface EventDetailsCameraUploadsPolicyChangedDetails extends CameraUploadsPolicyChangedDetails { + '.tag': 'camera_uploads_policy_changed_details'; + } + + export interface EventDetailsCaptureTranscriptPolicyChangedDetails extends CaptureTranscriptPolicyChangedDetails { + '.tag': 'capture_transcript_policy_changed_details'; + } + + export interface EventDetailsClassificationChangePolicyDetails extends ClassificationChangePolicyDetails { + '.tag': 'classification_change_policy_details'; + } + + export interface EventDetailsComputerBackupPolicyChangedDetails extends ComputerBackupPolicyChangedDetails { + '.tag': 'computer_backup_policy_changed_details'; + } + + export interface EventDetailsContentAdministrationPolicyChangedDetails extends ContentAdministrationPolicyChangedDetails { + '.tag': 'content_administration_policy_changed_details'; + } + + export interface EventDetailsDataPlacementRestrictionChangePolicyDetails extends DataPlacementRestrictionChangePolicyDetails { + '.tag': 'data_placement_restriction_change_policy_details'; + } + + export interface EventDetailsDataPlacementRestrictionSatisfyPolicyDetails extends DataPlacementRestrictionSatisfyPolicyDetails { + '.tag': 'data_placement_restriction_satisfy_policy_details'; + } + + export interface EventDetailsDeviceApprovalsAddExceptionDetails extends DeviceApprovalsAddExceptionDetails { + '.tag': 'device_approvals_add_exception_details'; + } + + export interface EventDetailsDeviceApprovalsChangeDesktopPolicyDetails extends DeviceApprovalsChangeDesktopPolicyDetails { + '.tag': 'device_approvals_change_desktop_policy_details'; + } + + export interface EventDetailsDeviceApprovalsChangeMobilePolicyDetails extends DeviceApprovalsChangeMobilePolicyDetails { + '.tag': 'device_approvals_change_mobile_policy_details'; + } + + export interface EventDetailsDeviceApprovalsChangeOverageActionDetails extends DeviceApprovalsChangeOverageActionDetails { + '.tag': 'device_approvals_change_overage_action_details'; + } + + export interface EventDetailsDeviceApprovalsChangeUnlinkActionDetails extends DeviceApprovalsChangeUnlinkActionDetails { + '.tag': 'device_approvals_change_unlink_action_details'; + } + + export interface EventDetailsDeviceApprovalsRemoveExceptionDetails extends DeviceApprovalsRemoveExceptionDetails { + '.tag': 'device_approvals_remove_exception_details'; + } + + export interface EventDetailsDirectoryRestrictionsAddMembersDetails extends DirectoryRestrictionsAddMembersDetails { + '.tag': 'directory_restrictions_add_members_details'; + } + + export interface EventDetailsDirectoryRestrictionsRemoveMembersDetails extends DirectoryRestrictionsRemoveMembersDetails { + '.tag': 'directory_restrictions_remove_members_details'; + } + + export interface EventDetailsDropboxPasswordsPolicyChangedDetails extends DropboxPasswordsPolicyChangedDetails { + '.tag': 'dropbox_passwords_policy_changed_details'; + } + + export interface EventDetailsEmailIngestPolicyChangedDetails extends EmailIngestPolicyChangedDetails { + '.tag': 'email_ingest_policy_changed_details'; + } + + export interface EventDetailsEmmAddExceptionDetails extends EmmAddExceptionDetails { + '.tag': 'emm_add_exception_details'; + } + + export interface EventDetailsEmmChangePolicyDetails extends EmmChangePolicyDetails { + '.tag': 'emm_change_policy_details'; + } + + export interface EventDetailsEmmRemoveExceptionDetails extends EmmRemoveExceptionDetails { + '.tag': 'emm_remove_exception_details'; + } + + export interface EventDetailsExtendedVersionHistoryChangePolicyDetails extends ExtendedVersionHistoryChangePolicyDetails { + '.tag': 'extended_version_history_change_policy_details'; + } + + export interface EventDetailsExternalDriveBackupPolicyChangedDetails extends ExternalDriveBackupPolicyChangedDetails { + '.tag': 'external_drive_backup_policy_changed_details'; + } + + export interface EventDetailsFileCommentsChangePolicyDetails extends FileCommentsChangePolicyDetails { + '.tag': 'file_comments_change_policy_details'; + } + + export interface EventDetailsFileLockingPolicyChangedDetails extends FileLockingPolicyChangedDetails { + '.tag': 'file_locking_policy_changed_details'; + } + + export interface EventDetailsFileProviderMigrationPolicyChangedDetails extends FileProviderMigrationPolicyChangedDetails { + '.tag': 'file_provider_migration_policy_changed_details'; + } + + export interface EventDetailsFileRequestsChangePolicyDetails extends FileRequestsChangePolicyDetails { + '.tag': 'file_requests_change_policy_details'; + } + + export interface EventDetailsFileRequestsEmailsEnabledDetails extends FileRequestsEmailsEnabledDetails { + '.tag': 'file_requests_emails_enabled_details'; + } + + export interface EventDetailsFileRequestsEmailsRestrictedToTeamOnlyDetails extends FileRequestsEmailsRestrictedToTeamOnlyDetails { + '.tag': 'file_requests_emails_restricted_to_team_only_details'; + } + + export interface EventDetailsFileTransfersPolicyChangedDetails extends FileTransfersPolicyChangedDetails { + '.tag': 'file_transfers_policy_changed_details'; + } + + export interface EventDetailsFolderLinkRestrictionPolicyChangedDetails extends FolderLinkRestrictionPolicyChangedDetails { + '.tag': 'folder_link_restriction_policy_changed_details'; + } + + export interface EventDetailsGoogleSsoChangePolicyDetails extends GoogleSsoChangePolicyDetails { + '.tag': 'google_sso_change_policy_details'; + } + + export interface EventDetailsGroupUserManagementChangePolicyDetails extends GroupUserManagementChangePolicyDetails { + '.tag': 'group_user_management_change_policy_details'; + } + + export interface EventDetailsIntegrationPolicyChangedDetails extends IntegrationPolicyChangedDetails { + '.tag': 'integration_policy_changed_details'; + } + + export interface EventDetailsInviteAcceptanceEmailPolicyChangedDetails extends InviteAcceptanceEmailPolicyChangedDetails { + '.tag': 'invite_acceptance_email_policy_changed_details'; + } + + export interface EventDetailsMemberRequestsChangePolicyDetails extends MemberRequestsChangePolicyDetails { + '.tag': 'member_requests_change_policy_details'; + } + + export interface EventDetailsMemberSendInvitePolicyChangedDetails extends MemberSendInvitePolicyChangedDetails { + '.tag': 'member_send_invite_policy_changed_details'; + } + + export interface EventDetailsMemberSpaceLimitsAddExceptionDetails extends MemberSpaceLimitsAddExceptionDetails { + '.tag': 'member_space_limits_add_exception_details'; + } + + export interface EventDetailsMemberSpaceLimitsChangeCapsTypePolicyDetails extends MemberSpaceLimitsChangeCapsTypePolicyDetails { + '.tag': 'member_space_limits_change_caps_type_policy_details'; + } + + export interface EventDetailsMemberSpaceLimitsChangePolicyDetails extends MemberSpaceLimitsChangePolicyDetails { + '.tag': 'member_space_limits_change_policy_details'; + } + + export interface EventDetailsMemberSpaceLimitsRemoveExceptionDetails extends MemberSpaceLimitsRemoveExceptionDetails { + '.tag': 'member_space_limits_remove_exception_details'; + } + + export interface EventDetailsMemberSuggestionsChangePolicyDetails extends MemberSuggestionsChangePolicyDetails { + '.tag': 'member_suggestions_change_policy_details'; + } + + export interface EventDetailsMicrosoftOfficeAddinChangePolicyDetails extends MicrosoftOfficeAddinChangePolicyDetails { + '.tag': 'microsoft_office_addin_change_policy_details'; + } + + export interface EventDetailsNetworkControlChangePolicyDetails extends NetworkControlChangePolicyDetails { + '.tag': 'network_control_change_policy_details'; + } + + export interface EventDetailsPaperChangeDeploymentPolicyDetails extends PaperChangeDeploymentPolicyDetails { + '.tag': 'paper_change_deployment_policy_details'; + } + + export interface EventDetailsPaperChangeMemberLinkPolicyDetails extends PaperChangeMemberLinkPolicyDetails { + '.tag': 'paper_change_member_link_policy_details'; + } + + export interface EventDetailsPaperChangeMemberPolicyDetails extends PaperChangeMemberPolicyDetails { + '.tag': 'paper_change_member_policy_details'; + } + + export interface EventDetailsPaperChangePolicyDetails extends PaperChangePolicyDetails { + '.tag': 'paper_change_policy_details'; + } + + export interface EventDetailsPaperDefaultFolderPolicyChangedDetails extends PaperDefaultFolderPolicyChangedDetails { + '.tag': 'paper_default_folder_policy_changed_details'; + } + + export interface EventDetailsPaperDesktopPolicyChangedDetails extends PaperDesktopPolicyChangedDetails { + '.tag': 'paper_desktop_policy_changed_details'; + } + + export interface EventDetailsPaperEnabledUsersGroupAdditionDetails extends PaperEnabledUsersGroupAdditionDetails { + '.tag': 'paper_enabled_users_group_addition_details'; + } + + export interface EventDetailsPaperEnabledUsersGroupRemovalDetails extends PaperEnabledUsersGroupRemovalDetails { + '.tag': 'paper_enabled_users_group_removal_details'; + } + + export interface EventDetailsPasswordStrengthRequirementsChangePolicyDetails extends PasswordStrengthRequirementsChangePolicyDetails { + '.tag': 'password_strength_requirements_change_policy_details'; + } + + export interface EventDetailsPermanentDeleteChangePolicyDetails extends PermanentDeleteChangePolicyDetails { + '.tag': 'permanent_delete_change_policy_details'; + } + + export interface EventDetailsResellerSupportChangePolicyDetails extends ResellerSupportChangePolicyDetails { + '.tag': 'reseller_support_change_policy_details'; + } + + export interface EventDetailsRewindPolicyChangedDetails extends RewindPolicyChangedDetails { + '.tag': 'rewind_policy_changed_details'; + } + + export interface EventDetailsSendForSignaturePolicyChangedDetails extends SendForSignaturePolicyChangedDetails { + '.tag': 'send_for_signature_policy_changed_details'; + } + + export interface EventDetailsSharingChangeFolderJoinPolicyDetails extends SharingChangeFolderJoinPolicyDetails { + '.tag': 'sharing_change_folder_join_policy_details'; + } + + export interface EventDetailsSharingChangeLinkAllowChangeExpirationPolicyDetails extends SharingChangeLinkAllowChangeExpirationPolicyDetails { + '.tag': 'sharing_change_link_allow_change_expiration_policy_details'; + } + + export interface EventDetailsSharingChangeLinkDefaultExpirationPolicyDetails extends SharingChangeLinkDefaultExpirationPolicyDetails { + '.tag': 'sharing_change_link_default_expiration_policy_details'; + } + + export interface EventDetailsSharingChangeLinkEnforcePasswordPolicyDetails extends SharingChangeLinkEnforcePasswordPolicyDetails { + '.tag': 'sharing_change_link_enforce_password_policy_details'; + } + + export interface EventDetailsSharingChangeLinkPolicyDetails extends SharingChangeLinkPolicyDetails { + '.tag': 'sharing_change_link_policy_details'; + } + + export interface EventDetailsSharingChangeMemberPolicyDetails extends SharingChangeMemberPolicyDetails { + '.tag': 'sharing_change_member_policy_details'; + } + + export interface EventDetailsShowcaseChangeDownloadPolicyDetails extends ShowcaseChangeDownloadPolicyDetails { + '.tag': 'showcase_change_download_policy_details'; + } + + export interface EventDetailsShowcaseChangeEnabledPolicyDetails extends ShowcaseChangeEnabledPolicyDetails { + '.tag': 'showcase_change_enabled_policy_details'; + } + + export interface EventDetailsShowcaseChangeExternalSharingPolicyDetails extends ShowcaseChangeExternalSharingPolicyDetails { + '.tag': 'showcase_change_external_sharing_policy_details'; + } + + export interface EventDetailsSmarterSmartSyncPolicyChangedDetails extends SmarterSmartSyncPolicyChangedDetails { + '.tag': 'smarter_smart_sync_policy_changed_details'; + } + + export interface EventDetailsSmartSyncChangePolicyDetails extends SmartSyncChangePolicyDetails { + '.tag': 'smart_sync_change_policy_details'; + } + + export interface EventDetailsSmartSyncNotOptOutDetails extends SmartSyncNotOptOutDetails { + '.tag': 'smart_sync_not_opt_out_details'; + } + + export interface EventDetailsSmartSyncOptOutDetails extends SmartSyncOptOutDetails { + '.tag': 'smart_sync_opt_out_details'; + } + + export interface EventDetailsSsoChangePolicyDetails extends SsoChangePolicyDetails { + '.tag': 'sso_change_policy_details'; + } + + export interface EventDetailsTeamBrandingPolicyChangedDetails extends TeamBrandingPolicyChangedDetails { + '.tag': 'team_branding_policy_changed_details'; + } + + export interface EventDetailsTeamExtensionsPolicyChangedDetails extends TeamExtensionsPolicyChangedDetails { + '.tag': 'team_extensions_policy_changed_details'; + } + + export interface EventDetailsTeamSelectiveSyncPolicyChangedDetails extends TeamSelectiveSyncPolicyChangedDetails { + '.tag': 'team_selective_sync_policy_changed_details'; + } + + export interface EventDetailsTeamSharingWhitelistSubjectsChangedDetails extends TeamSharingWhitelistSubjectsChangedDetails { + '.tag': 'team_sharing_whitelist_subjects_changed_details'; + } + + export interface EventDetailsTfaAddExceptionDetails extends TfaAddExceptionDetails { + '.tag': 'tfa_add_exception_details'; + } + + export interface EventDetailsTfaChangePolicyDetails extends TfaChangePolicyDetails { + '.tag': 'tfa_change_policy_details'; + } + + export interface EventDetailsTfaRemoveExceptionDetails extends TfaRemoveExceptionDetails { + '.tag': 'tfa_remove_exception_details'; + } + + export interface EventDetailsTwoAccountChangePolicyDetails extends TwoAccountChangePolicyDetails { + '.tag': 'two_account_change_policy_details'; + } + + export interface EventDetailsViewerInfoPolicyChangedDetails extends ViewerInfoPolicyChangedDetails { + '.tag': 'viewer_info_policy_changed_details'; + } + + export interface EventDetailsWatermarkingPolicyChangedDetails extends WatermarkingPolicyChangedDetails { + '.tag': 'watermarking_policy_changed_details'; + } + + export interface EventDetailsWebSessionsChangeActiveSessionLimitDetails extends WebSessionsChangeActiveSessionLimitDetails { + '.tag': 'web_sessions_change_active_session_limit_details'; + } + + export interface EventDetailsWebSessionsChangeFixedLengthPolicyDetails extends WebSessionsChangeFixedLengthPolicyDetails { + '.tag': 'web_sessions_change_fixed_length_policy_details'; + } + + export interface EventDetailsWebSessionsChangeIdleLengthPolicyDetails extends WebSessionsChangeIdleLengthPolicyDetails { + '.tag': 'web_sessions_change_idle_length_policy_details'; + } + + export interface EventDetailsDataResidencyMigrationRequestSuccessfulDetails extends DataResidencyMigrationRequestSuccessfulDetails { + '.tag': 'data_residency_migration_request_successful_details'; + } + + export interface EventDetailsDataResidencyMigrationRequestUnsuccessfulDetails extends DataResidencyMigrationRequestUnsuccessfulDetails { + '.tag': 'data_residency_migration_request_unsuccessful_details'; + } + + export interface EventDetailsTeamMergeFromDetails extends TeamMergeFromDetails { + '.tag': 'team_merge_from_details'; + } + + export interface EventDetailsTeamMergeToDetails extends TeamMergeToDetails { + '.tag': 'team_merge_to_details'; + } + + export interface EventDetailsTeamProfileAddBackgroundDetails extends TeamProfileAddBackgroundDetails { + '.tag': 'team_profile_add_background_details'; + } + + export interface EventDetailsTeamProfileAddLogoDetails extends TeamProfileAddLogoDetails { + '.tag': 'team_profile_add_logo_details'; + } + + export interface EventDetailsTeamProfileChangeBackgroundDetails extends TeamProfileChangeBackgroundDetails { + '.tag': 'team_profile_change_background_details'; + } + + export interface EventDetailsTeamProfileChangeDefaultLanguageDetails extends TeamProfileChangeDefaultLanguageDetails { + '.tag': 'team_profile_change_default_language_details'; + } + + export interface EventDetailsTeamProfileChangeLogoDetails extends TeamProfileChangeLogoDetails { + '.tag': 'team_profile_change_logo_details'; + } + + export interface EventDetailsTeamProfileChangeNameDetails extends TeamProfileChangeNameDetails { + '.tag': 'team_profile_change_name_details'; + } + + export interface EventDetailsTeamProfileRemoveBackgroundDetails extends TeamProfileRemoveBackgroundDetails { + '.tag': 'team_profile_remove_background_details'; + } + + export interface EventDetailsTeamProfileRemoveLogoDetails extends TeamProfileRemoveLogoDetails { + '.tag': 'team_profile_remove_logo_details'; + } + + export interface EventDetailsTfaAddBackupPhoneDetails extends TfaAddBackupPhoneDetails { + '.tag': 'tfa_add_backup_phone_details'; + } + + export interface EventDetailsTfaAddSecurityKeyDetails extends TfaAddSecurityKeyDetails { + '.tag': 'tfa_add_security_key_details'; + } + + export interface EventDetailsTfaChangeBackupPhoneDetails extends TfaChangeBackupPhoneDetails { + '.tag': 'tfa_change_backup_phone_details'; + } + + export interface EventDetailsTfaChangeStatusDetails extends TfaChangeStatusDetails { + '.tag': 'tfa_change_status_details'; + } + + export interface EventDetailsTfaRemoveBackupPhoneDetails extends TfaRemoveBackupPhoneDetails { + '.tag': 'tfa_remove_backup_phone_details'; + } + + export interface EventDetailsTfaRemoveSecurityKeyDetails extends TfaRemoveSecurityKeyDetails { + '.tag': 'tfa_remove_security_key_details'; + } + + export interface EventDetailsTfaResetDetails extends TfaResetDetails { + '.tag': 'tfa_reset_details'; + } + + export interface EventDetailsChangedEnterpriseAdminRoleDetails extends ChangedEnterpriseAdminRoleDetails { + '.tag': 'changed_enterprise_admin_role_details'; + } + + export interface EventDetailsChangedEnterpriseConnectedTeamStatusDetails extends ChangedEnterpriseConnectedTeamStatusDetails { + '.tag': 'changed_enterprise_connected_team_status_details'; + } + + export interface EventDetailsEndedEnterpriseAdminSessionDetails extends EndedEnterpriseAdminSessionDetails { + '.tag': 'ended_enterprise_admin_session_details'; + } + + export interface EventDetailsEndedEnterpriseAdminSessionDeprecatedDetails extends EndedEnterpriseAdminSessionDeprecatedDetails { + '.tag': 'ended_enterprise_admin_session_deprecated_details'; + } + + export interface EventDetailsEnterpriseSettingsLockingDetails extends EnterpriseSettingsLockingDetails { + '.tag': 'enterprise_settings_locking_details'; + } + + export interface EventDetailsGuestAdminChangeStatusDetails extends GuestAdminChangeStatusDetails { + '.tag': 'guest_admin_change_status_details'; + } + + export interface EventDetailsStartedEnterpriseAdminSessionDetails extends StartedEnterpriseAdminSessionDetails { + '.tag': 'started_enterprise_admin_session_details'; + } + + export interface EventDetailsTeamMergeRequestAcceptedDetails extends TeamMergeRequestAcceptedDetails { + '.tag': 'team_merge_request_accepted_details'; + } + + export interface EventDetailsTeamMergeRequestAcceptedShownToPrimaryTeamDetails extends TeamMergeRequestAcceptedShownToPrimaryTeamDetails { + '.tag': 'team_merge_request_accepted_shown_to_primary_team_details'; + } + + export interface EventDetailsTeamMergeRequestAcceptedShownToSecondaryTeamDetails extends TeamMergeRequestAcceptedShownToSecondaryTeamDetails { + '.tag': 'team_merge_request_accepted_shown_to_secondary_team_details'; + } + + export interface EventDetailsTeamMergeRequestAutoCanceledDetails extends TeamMergeRequestAutoCanceledDetails { + '.tag': 'team_merge_request_auto_canceled_details'; + } + + export interface EventDetailsTeamMergeRequestCanceledDetails extends TeamMergeRequestCanceledDetails { + '.tag': 'team_merge_request_canceled_details'; + } + + export interface EventDetailsTeamMergeRequestCanceledShownToPrimaryTeamDetails extends TeamMergeRequestCanceledShownToPrimaryTeamDetails { + '.tag': 'team_merge_request_canceled_shown_to_primary_team_details'; + } + + export interface EventDetailsTeamMergeRequestCanceledShownToSecondaryTeamDetails extends TeamMergeRequestCanceledShownToSecondaryTeamDetails { + '.tag': 'team_merge_request_canceled_shown_to_secondary_team_details'; + } + + export interface EventDetailsTeamMergeRequestExpiredDetails extends TeamMergeRequestExpiredDetails { + '.tag': 'team_merge_request_expired_details'; + } + + export interface EventDetailsTeamMergeRequestExpiredShownToPrimaryTeamDetails extends TeamMergeRequestExpiredShownToPrimaryTeamDetails { + '.tag': 'team_merge_request_expired_shown_to_primary_team_details'; + } + + export interface EventDetailsTeamMergeRequestExpiredShownToSecondaryTeamDetails extends TeamMergeRequestExpiredShownToSecondaryTeamDetails { + '.tag': 'team_merge_request_expired_shown_to_secondary_team_details'; + } + + export interface EventDetailsTeamMergeRequestRejectedShownToPrimaryTeamDetails extends TeamMergeRequestRejectedShownToPrimaryTeamDetails { + '.tag': 'team_merge_request_rejected_shown_to_primary_team_details'; + } + + export interface EventDetailsTeamMergeRequestRejectedShownToSecondaryTeamDetails extends TeamMergeRequestRejectedShownToSecondaryTeamDetails { + '.tag': 'team_merge_request_rejected_shown_to_secondary_team_details'; + } + + export interface EventDetailsTeamMergeRequestReminderDetails extends TeamMergeRequestReminderDetails { + '.tag': 'team_merge_request_reminder_details'; + } + + export interface EventDetailsTeamMergeRequestReminderShownToPrimaryTeamDetails extends TeamMergeRequestReminderShownToPrimaryTeamDetails { + '.tag': 'team_merge_request_reminder_shown_to_primary_team_details'; + } + + export interface EventDetailsTeamMergeRequestReminderShownToSecondaryTeamDetails extends TeamMergeRequestReminderShownToSecondaryTeamDetails { + '.tag': 'team_merge_request_reminder_shown_to_secondary_team_details'; + } + + export interface EventDetailsTeamMergeRequestRevokedDetails extends TeamMergeRequestRevokedDetails { + '.tag': 'team_merge_request_revoked_details'; + } + + export interface EventDetailsTeamMergeRequestSentShownToPrimaryTeamDetails extends TeamMergeRequestSentShownToPrimaryTeamDetails { + '.tag': 'team_merge_request_sent_shown_to_primary_team_details'; + } + + export interface EventDetailsTeamMergeRequestSentShownToSecondaryTeamDetails extends TeamMergeRequestSentShownToSecondaryTeamDetails { + '.tag': 'team_merge_request_sent_shown_to_secondary_team_details'; + } + + /** + * Hints that this event was returned with missing details due to an + * internal error. + */ + export interface EventDetailsMissingDetails extends MissingDetails { + '.tag': 'missing_details'; + } + + export interface EventDetailsOther { + '.tag': 'other'; + } + + /** + * Additional fields depending on the event type. + */ + export type EventDetails = EventDetailsAdminAlertingAlertStateChangedDetails | EventDetailsAdminAlertingChangedAlertConfigDetails | EventDetailsAdminAlertingTriggeredAlertDetails | EventDetailsAppBlockedByPermissionsDetails | EventDetailsAppLinkTeamDetails | EventDetailsAppLinkUserDetails | EventDetailsAppUnlinkTeamDetails | EventDetailsAppUnlinkUserDetails | EventDetailsIntegrationConnectedDetails | EventDetailsIntegrationDisconnectedDetails | EventDetailsFileAddCommentDetails | EventDetailsFileChangeCommentSubscriptionDetails | EventDetailsFileDeleteCommentDetails | EventDetailsFileEditCommentDetails | EventDetailsFileLikeCommentDetails | EventDetailsFileResolveCommentDetails | EventDetailsFileUnlikeCommentDetails | EventDetailsFileUnresolveCommentDetails | EventDetailsGovernancePolicyAddFoldersDetails | EventDetailsGovernancePolicyAddFolderFailedDetails | EventDetailsGovernancePolicyContentDisposedDetails | EventDetailsGovernancePolicyCreateDetails | EventDetailsGovernancePolicyDeleteDetails | EventDetailsGovernancePolicyEditDetailsDetails | EventDetailsGovernancePolicyEditDurationDetails | EventDetailsGovernancePolicyExportCreatedDetails | EventDetailsGovernancePolicyExportRemovedDetails | EventDetailsGovernancePolicyRemoveFoldersDetails | EventDetailsGovernancePolicyReportCreatedDetails | EventDetailsGovernancePolicyZipPartDownloadedDetails | EventDetailsLegalHoldsActivateAHoldDetails | EventDetailsLegalHoldsAddMembersDetails | EventDetailsLegalHoldsChangeHoldDetailsDetails | EventDetailsLegalHoldsChangeHoldNameDetails | EventDetailsLegalHoldsExportAHoldDetails | EventDetailsLegalHoldsExportCancelledDetails | EventDetailsLegalHoldsExportDownloadedDetails | EventDetailsLegalHoldsExportRemovedDetails | EventDetailsLegalHoldsReleaseAHoldDetails | EventDetailsLegalHoldsRemoveMembersDetails | EventDetailsLegalHoldsReportAHoldDetails | EventDetailsDeviceChangeIpDesktopDetails | EventDetailsDeviceChangeIpMobileDetails | EventDetailsDeviceChangeIpWebDetails | EventDetailsDeviceDeleteOnUnlinkFailDetails | EventDetailsDeviceDeleteOnUnlinkSuccessDetails | EventDetailsDeviceLinkFailDetails | EventDetailsDeviceLinkSuccessDetails | EventDetailsDeviceManagementDisabledDetails | EventDetailsDeviceManagementEnabledDetails | EventDetailsDeviceSyncBackupStatusChangedDetails | EventDetailsDeviceUnlinkDetails | EventDetailsDropboxPasswordsExportedDetails | EventDetailsDropboxPasswordsNewDeviceEnrolledDetails | EventDetailsEmmRefreshAuthTokenDetails | EventDetailsExternalDriveBackupEligibilityStatusCheckedDetails | EventDetailsExternalDriveBackupStatusChangedDetails | EventDetailsAccountCaptureChangeAvailabilityDetails | EventDetailsAccountCaptureMigrateAccountDetails | EventDetailsAccountCaptureNotificationEmailsSentDetails | EventDetailsAccountCaptureRelinquishAccountDetails | EventDetailsDisabledDomainInvitesDetails | EventDetailsDomainInvitesApproveRequestToJoinTeamDetails | EventDetailsDomainInvitesDeclineRequestToJoinTeamDetails | EventDetailsDomainInvitesEmailExistingUsersDetails | EventDetailsDomainInvitesRequestToJoinTeamDetails | EventDetailsDomainInvitesSetInviteNewUserPrefToNoDetails | EventDetailsDomainInvitesSetInviteNewUserPrefToYesDetails | EventDetailsDomainVerificationAddDomainFailDetails | EventDetailsDomainVerificationAddDomainSuccessDetails | EventDetailsDomainVerificationRemoveDomainDetails | EventDetailsEnabledDomainInvitesDetails | EventDetailsApplyNamingConventionDetails | EventDetailsCreateFolderDetails | EventDetailsFileAddDetails | EventDetailsFileCopyDetails | EventDetailsFileDeleteDetails | EventDetailsFileDownloadDetails | EventDetailsFileEditDetails | EventDetailsFileGetCopyReferenceDetails | EventDetailsFileLockingLockStatusChangedDetails | EventDetailsFileMoveDetails | EventDetailsFilePermanentlyDeleteDetails | EventDetailsFilePreviewDetails | EventDetailsFileRenameDetails | EventDetailsFileRestoreDetails | EventDetailsFileRevertDetails | EventDetailsFileRollbackChangesDetails | EventDetailsFileSaveCopyReferenceDetails | EventDetailsFolderOverviewDescriptionChangedDetails | EventDetailsFolderOverviewItemPinnedDetails | EventDetailsFolderOverviewItemUnpinnedDetails | EventDetailsObjectLabelAddedDetails | EventDetailsObjectLabelRemovedDetails | EventDetailsObjectLabelUpdatedValueDetails | EventDetailsOrganizeFolderWithTidyDetails | EventDetailsRewindFolderDetails | EventDetailsUndoNamingConventionDetails | EventDetailsUndoOrganizeFolderWithTidyDetails | EventDetailsUserTagsAddedDetails | EventDetailsUserTagsRemovedDetails | EventDetailsEmailIngestReceiveFileDetails | EventDetailsFileRequestChangeDetails | EventDetailsFileRequestCloseDetails | EventDetailsFileRequestCreateDetails | EventDetailsFileRequestDeleteDetails | EventDetailsFileRequestReceiveFileDetails | EventDetailsGroupAddExternalIdDetails | EventDetailsGroupAddMemberDetails | EventDetailsGroupChangeExternalIdDetails | EventDetailsGroupChangeManagementTypeDetails | EventDetailsGroupChangeMemberRoleDetails | EventDetailsGroupCreateDetails | EventDetailsGroupDeleteDetails | EventDetailsGroupDescriptionUpdatedDetails | EventDetailsGroupJoinPolicyUpdatedDetails | EventDetailsGroupMovedDetails | EventDetailsGroupRemoveExternalIdDetails | EventDetailsGroupRemoveMemberDetails | EventDetailsGroupRenameDetails | EventDetailsAccountLockOrUnlockedDetails | EventDetailsEmmErrorDetails | EventDetailsGuestAdminSignedInViaTrustedTeamsDetails | EventDetailsGuestAdminSignedOutViaTrustedTeamsDetails | EventDetailsLoginFailDetails | EventDetailsLoginSuccessDetails | EventDetailsLogoutDetails | EventDetailsResellerSupportSessionEndDetails | EventDetailsResellerSupportSessionStartDetails | EventDetailsSignInAsSessionEndDetails | EventDetailsSignInAsSessionStartDetails | EventDetailsSsoErrorDetails | EventDetailsCreateTeamInviteLinkDetails | EventDetailsDeleteTeamInviteLinkDetails | EventDetailsMemberAddExternalIdDetails | EventDetailsMemberAddNameDetails | EventDetailsMemberChangeAdminRoleDetails | EventDetailsMemberChangeEmailDetails | EventDetailsMemberChangeExternalIdDetails | EventDetailsMemberChangeMembershipTypeDetails | EventDetailsMemberChangeNameDetails | EventDetailsMemberChangeResellerRoleDetails | EventDetailsMemberChangeStatusDetails | EventDetailsMemberDeleteManualContactsDetails | EventDetailsMemberDeleteProfilePhotoDetails | EventDetailsMemberPermanentlyDeleteAccountContentsDetails | EventDetailsMemberRemoveExternalIdDetails | EventDetailsMemberSetProfilePhotoDetails | EventDetailsMemberSpaceLimitsAddCustomQuotaDetails | EventDetailsMemberSpaceLimitsChangeCustomQuotaDetails | EventDetailsMemberSpaceLimitsChangeStatusDetails | EventDetailsMemberSpaceLimitsRemoveCustomQuotaDetails | EventDetailsMemberSuggestDetails | EventDetailsMemberTransferAccountContentsDetails | EventDetailsPendingSecondaryEmailAddedDetails | EventDetailsSecondaryEmailDeletedDetails | EventDetailsSecondaryEmailVerifiedDetails | EventDetailsSecondaryMailsPolicyChangedDetails | EventDetailsBinderAddPageDetails | EventDetailsBinderAddSectionDetails | EventDetailsBinderRemovePageDetails | EventDetailsBinderRemoveSectionDetails | EventDetailsBinderRenamePageDetails | EventDetailsBinderRenameSectionDetails | EventDetailsBinderReorderPageDetails | EventDetailsBinderReorderSectionDetails | EventDetailsPaperContentAddMemberDetails | EventDetailsPaperContentAddToFolderDetails | EventDetailsPaperContentArchiveDetails | EventDetailsPaperContentCreateDetails | EventDetailsPaperContentPermanentlyDeleteDetails | EventDetailsPaperContentRemoveFromFolderDetails | EventDetailsPaperContentRemoveMemberDetails | EventDetailsPaperContentRenameDetails | EventDetailsPaperContentRestoreDetails | EventDetailsPaperDocAddCommentDetails | EventDetailsPaperDocChangeMemberRoleDetails | EventDetailsPaperDocChangeSharingPolicyDetails | EventDetailsPaperDocChangeSubscriptionDetails | EventDetailsPaperDocDeletedDetails | EventDetailsPaperDocDeleteCommentDetails | EventDetailsPaperDocDownloadDetails | EventDetailsPaperDocEditDetails | EventDetailsPaperDocEditCommentDetails | EventDetailsPaperDocFollowedDetails | EventDetailsPaperDocMentionDetails | EventDetailsPaperDocOwnershipChangedDetails | EventDetailsPaperDocRequestAccessDetails | EventDetailsPaperDocResolveCommentDetails | EventDetailsPaperDocRevertDetails | EventDetailsPaperDocSlackShareDetails | EventDetailsPaperDocTeamInviteDetails | EventDetailsPaperDocTrashedDetails | EventDetailsPaperDocUnresolveCommentDetails | EventDetailsPaperDocUntrashedDetails | EventDetailsPaperDocViewDetails | EventDetailsPaperExternalViewAllowDetails | EventDetailsPaperExternalViewDefaultTeamDetails | EventDetailsPaperExternalViewForbidDetails | EventDetailsPaperFolderChangeSubscriptionDetails | EventDetailsPaperFolderDeletedDetails | EventDetailsPaperFolderFollowedDetails | EventDetailsPaperFolderTeamInviteDetails | EventDetailsPaperPublishedLinkChangePermissionDetails | EventDetailsPaperPublishedLinkCreateDetails | EventDetailsPaperPublishedLinkDisabledDetails | EventDetailsPaperPublishedLinkViewDetails | EventDetailsPasswordChangeDetails | EventDetailsPasswordResetDetails | EventDetailsPasswordResetAllDetails | EventDetailsClassificationCreateReportDetails | EventDetailsClassificationCreateReportFailDetails | EventDetailsEmmCreateExceptionsReportDetails | EventDetailsEmmCreateUsageReportDetails | EventDetailsExportMembersReportDetails | EventDetailsExportMembersReportFailDetails | EventDetailsExternalSharingCreateReportDetails | EventDetailsExternalSharingReportFailedDetails | EventDetailsNoExpirationLinkGenCreateReportDetails | EventDetailsNoExpirationLinkGenReportFailedDetails | EventDetailsNoPasswordLinkGenCreateReportDetails | EventDetailsNoPasswordLinkGenReportFailedDetails | EventDetailsNoPasswordLinkViewCreateReportDetails | EventDetailsNoPasswordLinkViewReportFailedDetails | EventDetailsOutdatedLinkViewCreateReportDetails | EventDetailsOutdatedLinkViewReportFailedDetails | EventDetailsPaperAdminExportStartDetails | EventDetailsSmartSyncCreateAdminPrivilegeReportDetails | EventDetailsTeamActivityCreateReportDetails | EventDetailsTeamActivityCreateReportFailDetails | EventDetailsCollectionShareDetails | EventDetailsFileTransfersFileAddDetails | EventDetailsFileTransfersTransferDeleteDetails | EventDetailsFileTransfersTransferDownloadDetails | EventDetailsFileTransfersTransferSendDetails | EventDetailsFileTransfersTransferViewDetails | EventDetailsNoteAclInviteOnlyDetails | EventDetailsNoteAclLinkDetails | EventDetailsNoteAclTeamLinkDetails | EventDetailsNoteSharedDetails | EventDetailsNoteShareReceiveDetails | EventDetailsOpenNoteSharedDetails | EventDetailsSfAddGroupDetails | EventDetailsSfAllowNonMembersToViewSharedLinksDetails | EventDetailsSfExternalInviteWarnDetails | EventDetailsSfFbInviteDetails | EventDetailsSfFbInviteChangeRoleDetails | EventDetailsSfFbUninviteDetails | EventDetailsSfInviteGroupDetails | EventDetailsSfTeamGrantAccessDetails | EventDetailsSfTeamInviteDetails | EventDetailsSfTeamInviteChangeRoleDetails | EventDetailsSfTeamJoinDetails | EventDetailsSfTeamJoinFromOobLinkDetails | EventDetailsSfTeamUninviteDetails | EventDetailsSharedContentAddInviteesDetails | EventDetailsSharedContentAddLinkExpiryDetails | EventDetailsSharedContentAddLinkPasswordDetails | EventDetailsSharedContentAddMemberDetails | EventDetailsSharedContentChangeDownloadsPolicyDetails | EventDetailsSharedContentChangeInviteeRoleDetails | EventDetailsSharedContentChangeLinkAudienceDetails | EventDetailsSharedContentChangeLinkExpiryDetails | EventDetailsSharedContentChangeLinkPasswordDetails | EventDetailsSharedContentChangeMemberRoleDetails | EventDetailsSharedContentChangeViewerInfoPolicyDetails | EventDetailsSharedContentClaimInvitationDetails | EventDetailsSharedContentCopyDetails | EventDetailsSharedContentDownloadDetails | EventDetailsSharedContentRelinquishMembershipDetails | EventDetailsSharedContentRemoveInviteesDetails | EventDetailsSharedContentRemoveLinkExpiryDetails | EventDetailsSharedContentRemoveLinkPasswordDetails | EventDetailsSharedContentRemoveMemberDetails | EventDetailsSharedContentRequestAccessDetails | EventDetailsSharedContentRestoreInviteesDetails | EventDetailsSharedContentRestoreMemberDetails | EventDetailsSharedContentUnshareDetails | EventDetailsSharedContentViewDetails | EventDetailsSharedFolderChangeLinkPolicyDetails | EventDetailsSharedFolderChangeMembersInheritancePolicyDetails | EventDetailsSharedFolderChangeMembersManagementPolicyDetails | EventDetailsSharedFolderChangeMembersPolicyDetails | EventDetailsSharedFolderCreateDetails | EventDetailsSharedFolderDeclineInvitationDetails | EventDetailsSharedFolderMountDetails | EventDetailsSharedFolderNestDetails | EventDetailsSharedFolderTransferOwnershipDetails | EventDetailsSharedFolderUnmountDetails | EventDetailsSharedLinkAddExpiryDetails | EventDetailsSharedLinkChangeExpiryDetails | EventDetailsSharedLinkChangeVisibilityDetails | EventDetailsSharedLinkCopyDetails | EventDetailsSharedLinkCreateDetails | EventDetailsSharedLinkDisableDetails | EventDetailsSharedLinkDownloadDetails | EventDetailsSharedLinkRemoveExpiryDetails | EventDetailsSharedLinkSettingsAddExpirationDetails | EventDetailsSharedLinkSettingsAddPasswordDetails | EventDetailsSharedLinkSettingsAllowDownloadDisabledDetails | EventDetailsSharedLinkSettingsAllowDownloadEnabledDetails | EventDetailsSharedLinkSettingsChangeAudienceDetails | EventDetailsSharedLinkSettingsChangeExpirationDetails | EventDetailsSharedLinkSettingsChangePasswordDetails | EventDetailsSharedLinkSettingsRemoveExpirationDetails | EventDetailsSharedLinkSettingsRemovePasswordDetails | EventDetailsSharedLinkShareDetails | EventDetailsSharedLinkViewDetails | EventDetailsSharedNoteOpenedDetails | EventDetailsShmodelDisableDownloadsDetails | EventDetailsShmodelEnableDownloadsDetails | EventDetailsShmodelGroupShareDetails | EventDetailsShowcaseAccessGrantedDetails | EventDetailsShowcaseAddMemberDetails | EventDetailsShowcaseArchivedDetails | EventDetailsShowcaseCreatedDetails | EventDetailsShowcaseDeleteCommentDetails | EventDetailsShowcaseEditedDetails | EventDetailsShowcaseEditCommentDetails | EventDetailsShowcaseFileAddedDetails | EventDetailsShowcaseFileDownloadDetails | EventDetailsShowcaseFileRemovedDetails | EventDetailsShowcaseFileViewDetails | EventDetailsShowcasePermanentlyDeletedDetails | EventDetailsShowcasePostCommentDetails | EventDetailsShowcaseRemoveMemberDetails | EventDetailsShowcaseRenamedDetails | EventDetailsShowcaseRequestAccessDetails | EventDetailsShowcaseResolveCommentDetails | EventDetailsShowcaseRestoredDetails | EventDetailsShowcaseTrashedDetails | EventDetailsShowcaseTrashedDeprecatedDetails | EventDetailsShowcaseUnresolveCommentDetails | EventDetailsShowcaseUntrashedDetails | EventDetailsShowcaseUntrashedDeprecatedDetails | EventDetailsShowcaseViewDetails | EventDetailsSsoAddCertDetails | EventDetailsSsoAddLoginUrlDetails | EventDetailsSsoAddLogoutUrlDetails | EventDetailsSsoChangeCertDetails | EventDetailsSsoChangeLoginUrlDetails | EventDetailsSsoChangeLogoutUrlDetails | EventDetailsSsoChangeSamlIdentityModeDetails | EventDetailsSsoRemoveCertDetails | EventDetailsSsoRemoveLoginUrlDetails | EventDetailsSsoRemoveLogoutUrlDetails | EventDetailsTeamFolderChangeStatusDetails | EventDetailsTeamFolderCreateDetails | EventDetailsTeamFolderDowngradeDetails | EventDetailsTeamFolderPermanentlyDeleteDetails | EventDetailsTeamFolderRenameDetails | EventDetailsTeamSelectiveSyncSettingsChangedDetails | EventDetailsAccountCaptureChangePolicyDetails | EventDetailsAdminEmailRemindersChangedDetails | EventDetailsAllowDownloadDisabledDetails | EventDetailsAllowDownloadEnabledDetails | EventDetailsAppPermissionsChangedDetails | EventDetailsCameraUploadsPolicyChangedDetails | EventDetailsCaptureTranscriptPolicyChangedDetails | EventDetailsClassificationChangePolicyDetails | EventDetailsComputerBackupPolicyChangedDetails | EventDetailsContentAdministrationPolicyChangedDetails | EventDetailsDataPlacementRestrictionChangePolicyDetails | EventDetailsDataPlacementRestrictionSatisfyPolicyDetails | EventDetailsDeviceApprovalsAddExceptionDetails | EventDetailsDeviceApprovalsChangeDesktopPolicyDetails | EventDetailsDeviceApprovalsChangeMobilePolicyDetails | EventDetailsDeviceApprovalsChangeOverageActionDetails | EventDetailsDeviceApprovalsChangeUnlinkActionDetails | EventDetailsDeviceApprovalsRemoveExceptionDetails | EventDetailsDirectoryRestrictionsAddMembersDetails | EventDetailsDirectoryRestrictionsRemoveMembersDetails | EventDetailsDropboxPasswordsPolicyChangedDetails | EventDetailsEmailIngestPolicyChangedDetails | EventDetailsEmmAddExceptionDetails | EventDetailsEmmChangePolicyDetails | EventDetailsEmmRemoveExceptionDetails | EventDetailsExtendedVersionHistoryChangePolicyDetails | EventDetailsExternalDriveBackupPolicyChangedDetails | EventDetailsFileCommentsChangePolicyDetails | EventDetailsFileLockingPolicyChangedDetails | EventDetailsFileProviderMigrationPolicyChangedDetails | EventDetailsFileRequestsChangePolicyDetails | EventDetailsFileRequestsEmailsEnabledDetails | EventDetailsFileRequestsEmailsRestrictedToTeamOnlyDetails | EventDetailsFileTransfersPolicyChangedDetails | EventDetailsFolderLinkRestrictionPolicyChangedDetails | EventDetailsGoogleSsoChangePolicyDetails | EventDetailsGroupUserManagementChangePolicyDetails | EventDetailsIntegrationPolicyChangedDetails | EventDetailsInviteAcceptanceEmailPolicyChangedDetails | EventDetailsMemberRequestsChangePolicyDetails | EventDetailsMemberSendInvitePolicyChangedDetails | EventDetailsMemberSpaceLimitsAddExceptionDetails | EventDetailsMemberSpaceLimitsChangeCapsTypePolicyDetails | EventDetailsMemberSpaceLimitsChangePolicyDetails | EventDetailsMemberSpaceLimitsRemoveExceptionDetails | EventDetailsMemberSuggestionsChangePolicyDetails | EventDetailsMicrosoftOfficeAddinChangePolicyDetails | EventDetailsNetworkControlChangePolicyDetails | EventDetailsPaperChangeDeploymentPolicyDetails | EventDetailsPaperChangeMemberLinkPolicyDetails | EventDetailsPaperChangeMemberPolicyDetails | EventDetailsPaperChangePolicyDetails | EventDetailsPaperDefaultFolderPolicyChangedDetails | EventDetailsPaperDesktopPolicyChangedDetails | EventDetailsPaperEnabledUsersGroupAdditionDetails | EventDetailsPaperEnabledUsersGroupRemovalDetails | EventDetailsPasswordStrengthRequirementsChangePolicyDetails | EventDetailsPermanentDeleteChangePolicyDetails | EventDetailsResellerSupportChangePolicyDetails | EventDetailsRewindPolicyChangedDetails | EventDetailsSendForSignaturePolicyChangedDetails | EventDetailsSharingChangeFolderJoinPolicyDetails | EventDetailsSharingChangeLinkAllowChangeExpirationPolicyDetails | EventDetailsSharingChangeLinkDefaultExpirationPolicyDetails | EventDetailsSharingChangeLinkEnforcePasswordPolicyDetails | EventDetailsSharingChangeLinkPolicyDetails | EventDetailsSharingChangeMemberPolicyDetails | EventDetailsShowcaseChangeDownloadPolicyDetails | EventDetailsShowcaseChangeEnabledPolicyDetails | EventDetailsShowcaseChangeExternalSharingPolicyDetails | EventDetailsSmarterSmartSyncPolicyChangedDetails | EventDetailsSmartSyncChangePolicyDetails | EventDetailsSmartSyncNotOptOutDetails | EventDetailsSmartSyncOptOutDetails | EventDetailsSsoChangePolicyDetails | EventDetailsTeamBrandingPolicyChangedDetails | EventDetailsTeamExtensionsPolicyChangedDetails | EventDetailsTeamSelectiveSyncPolicyChangedDetails | EventDetailsTeamSharingWhitelistSubjectsChangedDetails | EventDetailsTfaAddExceptionDetails | EventDetailsTfaChangePolicyDetails | EventDetailsTfaRemoveExceptionDetails | EventDetailsTwoAccountChangePolicyDetails | EventDetailsViewerInfoPolicyChangedDetails | EventDetailsWatermarkingPolicyChangedDetails | EventDetailsWebSessionsChangeActiveSessionLimitDetails | EventDetailsWebSessionsChangeFixedLengthPolicyDetails | EventDetailsWebSessionsChangeIdleLengthPolicyDetails | EventDetailsDataResidencyMigrationRequestSuccessfulDetails | EventDetailsDataResidencyMigrationRequestUnsuccessfulDetails | EventDetailsTeamMergeFromDetails | EventDetailsTeamMergeToDetails | EventDetailsTeamProfileAddBackgroundDetails | EventDetailsTeamProfileAddLogoDetails | EventDetailsTeamProfileChangeBackgroundDetails | EventDetailsTeamProfileChangeDefaultLanguageDetails | EventDetailsTeamProfileChangeLogoDetails | EventDetailsTeamProfileChangeNameDetails | EventDetailsTeamProfileRemoveBackgroundDetails | EventDetailsTeamProfileRemoveLogoDetails | EventDetailsTfaAddBackupPhoneDetails | EventDetailsTfaAddSecurityKeyDetails | EventDetailsTfaChangeBackupPhoneDetails | EventDetailsTfaChangeStatusDetails | EventDetailsTfaRemoveBackupPhoneDetails | EventDetailsTfaRemoveSecurityKeyDetails | EventDetailsTfaResetDetails | EventDetailsChangedEnterpriseAdminRoleDetails | EventDetailsChangedEnterpriseConnectedTeamStatusDetails | EventDetailsEndedEnterpriseAdminSessionDetails | EventDetailsEndedEnterpriseAdminSessionDeprecatedDetails | EventDetailsEnterpriseSettingsLockingDetails | EventDetailsGuestAdminChangeStatusDetails | EventDetailsStartedEnterpriseAdminSessionDetails | EventDetailsTeamMergeRequestAcceptedDetails | EventDetailsTeamMergeRequestAcceptedShownToPrimaryTeamDetails | EventDetailsTeamMergeRequestAcceptedShownToSecondaryTeamDetails | EventDetailsTeamMergeRequestAutoCanceledDetails | EventDetailsTeamMergeRequestCanceledDetails | EventDetailsTeamMergeRequestCanceledShownToPrimaryTeamDetails | EventDetailsTeamMergeRequestCanceledShownToSecondaryTeamDetails | EventDetailsTeamMergeRequestExpiredDetails | EventDetailsTeamMergeRequestExpiredShownToPrimaryTeamDetails | EventDetailsTeamMergeRequestExpiredShownToSecondaryTeamDetails | EventDetailsTeamMergeRequestRejectedShownToPrimaryTeamDetails | EventDetailsTeamMergeRequestRejectedShownToSecondaryTeamDetails | EventDetailsTeamMergeRequestReminderDetails | EventDetailsTeamMergeRequestReminderShownToPrimaryTeamDetails | EventDetailsTeamMergeRequestReminderShownToSecondaryTeamDetails | EventDetailsTeamMergeRequestRevokedDetails | EventDetailsTeamMergeRequestSentShownToPrimaryTeamDetails | EventDetailsTeamMergeRequestSentShownToSecondaryTeamDetails | EventDetailsMissingDetails | EventDetailsOther; + + /** + * (admin_alerting) Changed an alert state + */ + export interface EventTypeAdminAlertingAlertStateChanged extends AdminAlertingAlertStateChangedType { + '.tag': 'admin_alerting_alert_state_changed'; + } + + /** + * (admin_alerting) Changed an alert setting + */ + export interface EventTypeAdminAlertingChangedAlertConfig extends AdminAlertingChangedAlertConfigType { + '.tag': 'admin_alerting_changed_alert_config'; + } + + /** + * (admin_alerting) Triggered security alert + */ + export interface EventTypeAdminAlertingTriggeredAlert extends AdminAlertingTriggeredAlertType { + '.tag': 'admin_alerting_triggered_alert'; + } + + /** + * (apps) Failed to connect app for member + */ + export interface EventTypeAppBlockedByPermissions extends AppBlockedByPermissionsType { + '.tag': 'app_blocked_by_permissions'; + } + + /** + * (apps) Linked app for team + */ + export interface EventTypeAppLinkTeam extends AppLinkTeamType { + '.tag': 'app_link_team'; + } + + /** + * (apps) Linked app for member + */ + export interface EventTypeAppLinkUser extends AppLinkUserType { + '.tag': 'app_link_user'; + } + + /** + * (apps) Unlinked app for team + */ + export interface EventTypeAppUnlinkTeam extends AppUnlinkTeamType { + '.tag': 'app_unlink_team'; + } + + /** + * (apps) Unlinked app for member + */ + export interface EventTypeAppUnlinkUser extends AppUnlinkUserType { + '.tag': 'app_unlink_user'; + } + + /** + * (apps) Connected integration for member + */ + export interface EventTypeIntegrationConnected extends IntegrationConnectedType { + '.tag': 'integration_connected'; + } + + /** + * (apps) Disconnected integration for member + */ + export interface EventTypeIntegrationDisconnected extends IntegrationDisconnectedType { + '.tag': 'integration_disconnected'; + } + + /** + * (comments) Added file comment + */ + export interface EventTypeFileAddComment extends FileAddCommentType { + '.tag': 'file_add_comment'; + } + + /** + * (comments) Subscribed to or unsubscribed from comment notifications for + * file + */ + export interface EventTypeFileChangeCommentSubscription extends FileChangeCommentSubscriptionType { + '.tag': 'file_change_comment_subscription'; + } + + /** + * (comments) Deleted file comment + */ + export interface EventTypeFileDeleteComment extends FileDeleteCommentType { + '.tag': 'file_delete_comment'; + } + + /** + * (comments) Edited file comment + */ + export interface EventTypeFileEditComment extends FileEditCommentType { + '.tag': 'file_edit_comment'; + } + + /** + * (comments) Liked file comment (deprecated, no longer logged) + */ + export interface EventTypeFileLikeComment extends FileLikeCommentType { + '.tag': 'file_like_comment'; + } + + /** + * (comments) Resolved file comment + */ + export interface EventTypeFileResolveComment extends FileResolveCommentType { + '.tag': 'file_resolve_comment'; + } + + /** + * (comments) Unliked file comment (deprecated, no longer logged) + */ + export interface EventTypeFileUnlikeComment extends FileUnlikeCommentType { + '.tag': 'file_unlike_comment'; + } + + /** + * (comments) Unresolved file comment + */ + export interface EventTypeFileUnresolveComment extends FileUnresolveCommentType { + '.tag': 'file_unresolve_comment'; + } + + /** + * (data_governance) Added folders to policy + */ + export interface EventTypeGovernancePolicyAddFolders extends GovernancePolicyAddFoldersType { + '.tag': 'governance_policy_add_folders'; + } + + /** + * (data_governance) Couldn't add a folder to a policy + */ + export interface EventTypeGovernancePolicyAddFolderFailed extends GovernancePolicyAddFolderFailedType { + '.tag': 'governance_policy_add_folder_failed'; + } + + /** + * (data_governance) Content disposed + */ + export interface EventTypeGovernancePolicyContentDisposed extends GovernancePolicyContentDisposedType { + '.tag': 'governance_policy_content_disposed'; + } + + /** + * (data_governance) Activated a new policy + */ + export interface EventTypeGovernancePolicyCreate extends GovernancePolicyCreateType { + '.tag': 'governance_policy_create'; + } + + /** + * (data_governance) Deleted a policy + */ + export interface EventTypeGovernancePolicyDelete extends GovernancePolicyDeleteType { + '.tag': 'governance_policy_delete'; + } + + /** + * (data_governance) Edited policy + */ + export interface EventTypeGovernancePolicyEditDetails extends GovernancePolicyEditDetailsType { + '.tag': 'governance_policy_edit_details'; + } + + /** + * (data_governance) Changed policy duration + */ + export interface EventTypeGovernancePolicyEditDuration extends GovernancePolicyEditDurationType { + '.tag': 'governance_policy_edit_duration'; + } + + /** + * (data_governance) Created a policy download + */ + export interface EventTypeGovernancePolicyExportCreated extends GovernancePolicyExportCreatedType { + '.tag': 'governance_policy_export_created'; + } + + /** + * (data_governance) Removed a policy download + */ + export interface EventTypeGovernancePolicyExportRemoved extends GovernancePolicyExportRemovedType { + '.tag': 'governance_policy_export_removed'; + } + + /** + * (data_governance) Removed folders from policy + */ + export interface EventTypeGovernancePolicyRemoveFolders extends GovernancePolicyRemoveFoldersType { + '.tag': 'governance_policy_remove_folders'; + } + + /** + * (data_governance) Created a summary report for a policy + */ + export interface EventTypeGovernancePolicyReportCreated extends GovernancePolicyReportCreatedType { + '.tag': 'governance_policy_report_created'; + } + + /** + * (data_governance) Downloaded content from a policy + */ + export interface EventTypeGovernancePolicyZipPartDownloaded extends GovernancePolicyZipPartDownloadedType { + '.tag': 'governance_policy_zip_part_downloaded'; + } + + /** + * (data_governance) Activated a hold + */ + export interface EventTypeLegalHoldsActivateAHold extends LegalHoldsActivateAHoldType { + '.tag': 'legal_holds_activate_a_hold'; + } + + /** + * (data_governance) Added members to a hold + */ + export interface EventTypeLegalHoldsAddMembers extends LegalHoldsAddMembersType { + '.tag': 'legal_holds_add_members'; + } + + /** + * (data_governance) Edited details for a hold + */ + export interface EventTypeLegalHoldsChangeHoldDetails extends LegalHoldsChangeHoldDetailsType { + '.tag': 'legal_holds_change_hold_details'; + } + + /** + * (data_governance) Renamed a hold + */ + export interface EventTypeLegalHoldsChangeHoldName extends LegalHoldsChangeHoldNameType { + '.tag': 'legal_holds_change_hold_name'; + } + + /** + * (data_governance) Exported hold + */ + export interface EventTypeLegalHoldsExportAHold extends LegalHoldsExportAHoldType { + '.tag': 'legal_holds_export_a_hold'; + } + + /** + * (data_governance) Canceled export for a hold + */ + export interface EventTypeLegalHoldsExportCancelled extends LegalHoldsExportCancelledType { + '.tag': 'legal_holds_export_cancelled'; + } + + /** + * (data_governance) Downloaded export for a hold + */ + export interface EventTypeLegalHoldsExportDownloaded extends LegalHoldsExportDownloadedType { + '.tag': 'legal_holds_export_downloaded'; + } + + /** + * (data_governance) Removed export for a hold + */ + export interface EventTypeLegalHoldsExportRemoved extends LegalHoldsExportRemovedType { + '.tag': 'legal_holds_export_removed'; + } + + /** + * (data_governance) Released a hold + */ + export interface EventTypeLegalHoldsReleaseAHold extends LegalHoldsReleaseAHoldType { + '.tag': 'legal_holds_release_a_hold'; + } + + /** + * (data_governance) Removed members from a hold + */ + export interface EventTypeLegalHoldsRemoveMembers extends LegalHoldsRemoveMembersType { + '.tag': 'legal_holds_remove_members'; + } + + /** + * (data_governance) Created a summary report for a hold + */ + export interface EventTypeLegalHoldsReportAHold extends LegalHoldsReportAHoldType { + '.tag': 'legal_holds_report_a_hold'; + } + + /** + * (devices) Changed IP address associated with active desktop session + */ + export interface EventTypeDeviceChangeIpDesktop extends DeviceChangeIpDesktopType { + '.tag': 'device_change_ip_desktop'; + } + + /** + * (devices) Changed IP address associated with active mobile session + */ + export interface EventTypeDeviceChangeIpMobile extends DeviceChangeIpMobileType { + '.tag': 'device_change_ip_mobile'; + } + + /** + * (devices) Changed IP address associated with active web session + */ + export interface EventTypeDeviceChangeIpWeb extends DeviceChangeIpWebType { + '.tag': 'device_change_ip_web'; + } + + /** + * (devices) Failed to delete all files from unlinked device + */ + export interface EventTypeDeviceDeleteOnUnlinkFail extends DeviceDeleteOnUnlinkFailType { + '.tag': 'device_delete_on_unlink_fail'; + } + + /** + * (devices) Deleted all files from unlinked device + */ + export interface EventTypeDeviceDeleteOnUnlinkSuccess extends DeviceDeleteOnUnlinkSuccessType { + '.tag': 'device_delete_on_unlink_success'; + } + + /** + * (devices) Failed to link device + */ + export interface EventTypeDeviceLinkFail extends DeviceLinkFailType { + '.tag': 'device_link_fail'; + } + + /** + * (devices) Linked device + */ + export interface EventTypeDeviceLinkSuccess extends DeviceLinkSuccessType { + '.tag': 'device_link_success'; + } + + /** + * (devices) Disabled device management (deprecated, no longer logged) + */ + export interface EventTypeDeviceManagementDisabled extends DeviceManagementDisabledType { + '.tag': 'device_management_disabled'; + } + + /** + * (devices) Enabled device management (deprecated, no longer logged) + */ + export interface EventTypeDeviceManagementEnabled extends DeviceManagementEnabledType { + '.tag': 'device_management_enabled'; + } + + /** + * (devices) Enabled/disabled backup for computer + */ + export interface EventTypeDeviceSyncBackupStatusChanged extends DeviceSyncBackupStatusChangedType { + '.tag': 'device_sync_backup_status_changed'; + } + + /** + * (devices) Disconnected device + */ + export interface EventTypeDeviceUnlink extends DeviceUnlinkType { + '.tag': 'device_unlink'; + } + + /** + * (devices) Exported passwords + */ + export interface EventTypeDropboxPasswordsExported extends DropboxPasswordsExportedType { + '.tag': 'dropbox_passwords_exported'; + } + + /** + * (devices) Enrolled new Dropbox Passwords device + */ + export interface EventTypeDropboxPasswordsNewDeviceEnrolled extends DropboxPasswordsNewDeviceEnrolledType { + '.tag': 'dropbox_passwords_new_device_enrolled'; + } + + /** + * (devices) Refreshed auth token used for setting up EMM + */ + export interface EventTypeEmmRefreshAuthToken extends EmmRefreshAuthTokenType { + '.tag': 'emm_refresh_auth_token'; + } + + /** + * (devices) Checked external drive backup eligibility status + */ + export interface EventTypeExternalDriveBackupEligibilityStatusChecked extends ExternalDriveBackupEligibilityStatusCheckedType { + '.tag': 'external_drive_backup_eligibility_status_checked'; + } + + /** + * (devices) Modified external drive backup + */ + export interface EventTypeExternalDriveBackupStatusChanged extends ExternalDriveBackupStatusChangedType { + '.tag': 'external_drive_backup_status_changed'; + } + + /** + * (domains) Granted/revoked option to enable account capture on team + * domains + */ + export interface EventTypeAccountCaptureChangeAvailability extends AccountCaptureChangeAvailabilityType { + '.tag': 'account_capture_change_availability'; + } + + /** + * (domains) Account-captured user migrated account to team + */ + export interface EventTypeAccountCaptureMigrateAccount extends AccountCaptureMigrateAccountType { + '.tag': 'account_capture_migrate_account'; + } + + /** + * (domains) Sent account capture email to all unmanaged members + */ + export interface EventTypeAccountCaptureNotificationEmailsSent extends AccountCaptureNotificationEmailsSentType { + '.tag': 'account_capture_notification_emails_sent'; + } + + /** + * (domains) Account-captured user changed account email to personal email + */ + export interface EventTypeAccountCaptureRelinquishAccount extends AccountCaptureRelinquishAccountType { + '.tag': 'account_capture_relinquish_account'; + } + + /** + * (domains) Disabled domain invites (deprecated, no longer logged) + */ + export interface EventTypeDisabledDomainInvites extends DisabledDomainInvitesType { + '.tag': 'disabled_domain_invites'; + } + + /** + * (domains) Approved user's request to join team + */ + export interface EventTypeDomainInvitesApproveRequestToJoinTeam extends DomainInvitesApproveRequestToJoinTeamType { + '.tag': 'domain_invites_approve_request_to_join_team'; + } + + /** + * (domains) Declined user's request to join team + */ + export interface EventTypeDomainInvitesDeclineRequestToJoinTeam extends DomainInvitesDeclineRequestToJoinTeamType { + '.tag': 'domain_invites_decline_request_to_join_team'; + } + + /** + * (domains) Sent domain invites to existing domain accounts (deprecated, no + * longer logged) + */ + export interface EventTypeDomainInvitesEmailExistingUsers extends DomainInvitesEmailExistingUsersType { + '.tag': 'domain_invites_email_existing_users'; + } + + /** + * (domains) Requested to join team + */ + export interface EventTypeDomainInvitesRequestToJoinTeam extends DomainInvitesRequestToJoinTeamType { + '.tag': 'domain_invites_request_to_join_team'; + } + + /** + * (domains) Disabled "Automatically invite new users" (deprecated, no + * longer logged) + */ + export interface EventTypeDomainInvitesSetInviteNewUserPrefToNo extends DomainInvitesSetInviteNewUserPrefToNoType { + '.tag': 'domain_invites_set_invite_new_user_pref_to_no'; + } + + /** + * (domains) Enabled "Automatically invite new users" (deprecated, no longer + * logged) + */ + export interface EventTypeDomainInvitesSetInviteNewUserPrefToYes extends DomainInvitesSetInviteNewUserPrefToYesType { + '.tag': 'domain_invites_set_invite_new_user_pref_to_yes'; + } + + /** + * (domains) Failed to verify team domain + */ + export interface EventTypeDomainVerificationAddDomainFail extends DomainVerificationAddDomainFailType { + '.tag': 'domain_verification_add_domain_fail'; + } + + /** + * (domains) Verified team domain + */ + export interface EventTypeDomainVerificationAddDomainSuccess extends DomainVerificationAddDomainSuccessType { + '.tag': 'domain_verification_add_domain_success'; + } + + /** + * (domains) Removed domain from list of verified team domains + */ + export interface EventTypeDomainVerificationRemoveDomain extends DomainVerificationRemoveDomainType { + '.tag': 'domain_verification_remove_domain'; + } + + /** + * (domains) Enabled domain invites (deprecated, no longer logged) + */ + export interface EventTypeEnabledDomainInvites extends EnabledDomainInvitesType { + '.tag': 'enabled_domain_invites'; + } + + /** + * (file_operations) Applied naming convention + */ + export interface EventTypeApplyNamingConvention extends ApplyNamingConventionType { + '.tag': 'apply_naming_convention'; + } + + /** + * (file_operations) Created folders (deprecated, no longer logged) + */ + export interface EventTypeCreateFolder extends CreateFolderType { + '.tag': 'create_folder'; + } + + /** + * (file_operations) Added files and/or folders + */ + export interface EventTypeFileAdd extends FileAddType { + '.tag': 'file_add'; + } + + /** + * (file_operations) Copied files and/or folders + */ + export interface EventTypeFileCopy extends FileCopyType { + '.tag': 'file_copy'; + } + + /** + * (file_operations) Deleted files and/or folders + */ + export interface EventTypeFileDelete extends FileDeleteType { + '.tag': 'file_delete'; + } + + /** + * (file_operations) Downloaded files and/or folders + */ + export interface EventTypeFileDownload extends FileDownloadType { + '.tag': 'file_download'; + } + + /** + * (file_operations) Edited files + */ + export interface EventTypeFileEdit extends FileEditType { + '.tag': 'file_edit'; + } + + /** + * (file_operations) Created copy reference to file/folder + */ + export interface EventTypeFileGetCopyReference extends FileGetCopyReferenceType { + '.tag': 'file_get_copy_reference'; + } + + /** + * (file_operations) Locked/unlocked editing for a file + */ + export interface EventTypeFileLockingLockStatusChanged extends FileLockingLockStatusChangedType { + '.tag': 'file_locking_lock_status_changed'; + } + + /** + * (file_operations) Moved files and/or folders + */ + export interface EventTypeFileMove extends FileMoveType { + '.tag': 'file_move'; + } + + /** + * (file_operations) Permanently deleted files and/or folders + */ + export interface EventTypeFilePermanentlyDelete extends FilePermanentlyDeleteType { + '.tag': 'file_permanently_delete'; + } + + /** + * (file_operations) Previewed files and/or folders + */ + export interface EventTypeFilePreview extends FilePreviewType { + '.tag': 'file_preview'; + } + + /** + * (file_operations) Renamed files and/or folders + */ + export interface EventTypeFileRename extends FileRenameType { + '.tag': 'file_rename'; + } + + /** + * (file_operations) Restored deleted files and/or folders + */ + export interface EventTypeFileRestore extends FileRestoreType { + '.tag': 'file_restore'; + } + + /** + * (file_operations) Reverted files to previous version + */ + export interface EventTypeFileRevert extends FileRevertType { + '.tag': 'file_revert'; + } + + /** + * (file_operations) Rolled back file actions + */ + export interface EventTypeFileRollbackChanges extends FileRollbackChangesType { + '.tag': 'file_rollback_changes'; + } + + /** + * (file_operations) Saved file/folder using copy reference + */ + export interface EventTypeFileSaveCopyReference extends FileSaveCopyReferenceType { + '.tag': 'file_save_copy_reference'; + } + + /** + * (file_operations) Updated folder overview + */ + export interface EventTypeFolderOverviewDescriptionChanged extends FolderOverviewDescriptionChangedType { + '.tag': 'folder_overview_description_changed'; + } + + /** + * (file_operations) Pinned item to folder overview + */ + export interface EventTypeFolderOverviewItemPinned extends FolderOverviewItemPinnedType { + '.tag': 'folder_overview_item_pinned'; + } + + /** + * (file_operations) Unpinned item from folder overview + */ + export interface EventTypeFolderOverviewItemUnpinned extends FolderOverviewItemUnpinnedType { + '.tag': 'folder_overview_item_unpinned'; + } + + /** + * (file_operations) Added a label + */ + export interface EventTypeObjectLabelAdded extends ObjectLabelAddedType { + '.tag': 'object_label_added'; + } + + /** + * (file_operations) Removed a label + */ + export interface EventTypeObjectLabelRemoved extends ObjectLabelRemovedType { + '.tag': 'object_label_removed'; + } + + /** + * (file_operations) Updated a label's value + */ + export interface EventTypeObjectLabelUpdatedValue extends ObjectLabelUpdatedValueType { + '.tag': 'object_label_updated_value'; + } + + /** + * (file_operations) Organized a folder with multi-file organize + */ + export interface EventTypeOrganizeFolderWithTidy extends OrganizeFolderWithTidyType { + '.tag': 'organize_folder_with_tidy'; + } + + /** + * (file_operations) Rewound a folder + */ + export interface EventTypeRewindFolder extends RewindFolderType { + '.tag': 'rewind_folder'; + } + + /** + * (file_operations) Reverted naming convention + */ + export interface EventTypeUndoNamingConvention extends UndoNamingConventionType { + '.tag': 'undo_naming_convention'; + } + + /** + * (file_operations) Removed multi-file organize + */ + export interface EventTypeUndoOrganizeFolderWithTidy extends UndoOrganizeFolderWithTidyType { + '.tag': 'undo_organize_folder_with_tidy'; + } + + /** + * (file_operations) Tagged a file + */ + export interface EventTypeUserTagsAdded extends UserTagsAddedType { + '.tag': 'user_tags_added'; + } + + /** + * (file_operations) Removed tags + */ + export interface EventTypeUserTagsRemoved extends UserTagsRemovedType { + '.tag': 'user_tags_removed'; + } + + /** + * (file_requests) Received files via Email to Dropbox + */ + export interface EventTypeEmailIngestReceiveFile extends EmailIngestReceiveFileType { + '.tag': 'email_ingest_receive_file'; + } + + /** + * (file_requests) Changed file request + */ + export interface EventTypeFileRequestChange extends FileRequestChangeType { + '.tag': 'file_request_change'; + } + + /** + * (file_requests) Closed file request + */ + export interface EventTypeFileRequestClose extends FileRequestCloseType { + '.tag': 'file_request_close'; + } + + /** + * (file_requests) Created file request + */ + export interface EventTypeFileRequestCreate extends FileRequestCreateType { + '.tag': 'file_request_create'; + } + + /** + * (file_requests) Delete file request + */ + export interface EventTypeFileRequestDelete extends FileRequestDeleteType { + '.tag': 'file_request_delete'; + } + + /** + * (file_requests) Received files for file request + */ + export interface EventTypeFileRequestReceiveFile extends FileRequestReceiveFileType { + '.tag': 'file_request_receive_file'; + } + + /** + * (groups) Added external ID for group + */ + export interface EventTypeGroupAddExternalId extends GroupAddExternalIdType { + '.tag': 'group_add_external_id'; + } + + /** + * (groups) Added team members to group + */ + export interface EventTypeGroupAddMember extends GroupAddMemberType { + '.tag': 'group_add_member'; + } + + /** + * (groups) Changed external ID for group + */ + export interface EventTypeGroupChangeExternalId extends GroupChangeExternalIdType { + '.tag': 'group_change_external_id'; + } + + /** + * (groups) Changed group management type + */ + export interface EventTypeGroupChangeManagementType extends GroupChangeManagementTypeType { + '.tag': 'group_change_management_type'; + } + + /** + * (groups) Changed manager permissions of group member + */ + export interface EventTypeGroupChangeMemberRole extends GroupChangeMemberRoleType { + '.tag': 'group_change_member_role'; + } + + /** + * (groups) Created group + */ + export interface EventTypeGroupCreate extends GroupCreateType { + '.tag': 'group_create'; + } + + /** + * (groups) Deleted group + */ + export interface EventTypeGroupDelete extends GroupDeleteType { + '.tag': 'group_delete'; + } + + /** + * (groups) Updated group (deprecated, no longer logged) + */ + export interface EventTypeGroupDescriptionUpdated extends GroupDescriptionUpdatedType { + '.tag': 'group_description_updated'; + } + + /** + * (groups) Updated group join policy (deprecated, no longer logged) + */ + export interface EventTypeGroupJoinPolicyUpdated extends GroupJoinPolicyUpdatedType { + '.tag': 'group_join_policy_updated'; + } + + /** + * (groups) Moved group (deprecated, no longer logged) + */ + export interface EventTypeGroupMoved extends GroupMovedType { + '.tag': 'group_moved'; + } + + /** + * (groups) Removed external ID for group + */ + export interface EventTypeGroupRemoveExternalId extends GroupRemoveExternalIdType { + '.tag': 'group_remove_external_id'; + } + + /** + * (groups) Removed team members from group + */ + export interface EventTypeGroupRemoveMember extends GroupRemoveMemberType { + '.tag': 'group_remove_member'; + } + + /** + * (groups) Renamed group + */ + export interface EventTypeGroupRename extends GroupRenameType { + '.tag': 'group_rename'; + } + + /** + * (logins) Unlocked/locked account after failed sign in attempts + */ + export interface EventTypeAccountLockOrUnlocked extends AccountLockOrUnlockedType { + '.tag': 'account_lock_or_unlocked'; + } + + /** + * (logins) Failed to sign in via EMM (deprecated, replaced by 'Failed to + * sign in') + */ + export interface EventTypeEmmError extends EmmErrorType { + '.tag': 'emm_error'; + } + + /** + * (logins) Started trusted team admin session + */ + export interface EventTypeGuestAdminSignedInViaTrustedTeams extends GuestAdminSignedInViaTrustedTeamsType { + '.tag': 'guest_admin_signed_in_via_trusted_teams'; + } + + /** + * (logins) Ended trusted team admin session + */ + export interface EventTypeGuestAdminSignedOutViaTrustedTeams extends GuestAdminSignedOutViaTrustedTeamsType { + '.tag': 'guest_admin_signed_out_via_trusted_teams'; + } + + /** + * (logins) Failed to sign in + */ + export interface EventTypeLoginFail extends LoginFailType { + '.tag': 'login_fail'; + } + + /** + * (logins) Signed in + */ + export interface EventTypeLoginSuccess extends LoginSuccessType { + '.tag': 'login_success'; + } + + /** + * (logins) Signed out + */ + export interface EventTypeLogout extends LogoutType { + '.tag': 'logout'; + } + + /** + * (logins) Ended reseller support session + */ + export interface EventTypeResellerSupportSessionEnd extends ResellerSupportSessionEndType { + '.tag': 'reseller_support_session_end'; + } + + /** + * (logins) Started reseller support session + */ + export interface EventTypeResellerSupportSessionStart extends ResellerSupportSessionStartType { + '.tag': 'reseller_support_session_start'; + } + + /** + * (logins) Ended admin sign-in-as session + */ + export interface EventTypeSignInAsSessionEnd extends SignInAsSessionEndType { + '.tag': 'sign_in_as_session_end'; + } + + /** + * (logins) Started admin sign-in-as session + */ + export interface EventTypeSignInAsSessionStart extends SignInAsSessionStartType { + '.tag': 'sign_in_as_session_start'; + } + + /** + * (logins) Failed to sign in via SSO (deprecated, replaced by 'Failed to + * sign in') + */ + export interface EventTypeSsoError extends SsoErrorType { + '.tag': 'sso_error'; + } + + /** + * (members) Created team invite link + */ + export interface EventTypeCreateTeamInviteLink extends CreateTeamInviteLinkType { + '.tag': 'create_team_invite_link'; + } + + /** + * (members) Deleted team invite link + */ + export interface EventTypeDeleteTeamInviteLink extends DeleteTeamInviteLinkType { + '.tag': 'delete_team_invite_link'; + } + + /** + * (members) Added an external ID for team member + */ + export interface EventTypeMemberAddExternalId extends MemberAddExternalIdType { + '.tag': 'member_add_external_id'; + } + + /** + * (members) Added team member name + */ + export interface EventTypeMemberAddName extends MemberAddNameType { + '.tag': 'member_add_name'; + } + + /** + * (members) Changed team member admin role + */ + export interface EventTypeMemberChangeAdminRole extends MemberChangeAdminRoleType { + '.tag': 'member_change_admin_role'; + } + + /** + * (members) Changed team member email + */ + export interface EventTypeMemberChangeEmail extends MemberChangeEmailType { + '.tag': 'member_change_email'; + } + + /** + * (members) Changed the external ID for team member + */ + export interface EventTypeMemberChangeExternalId extends MemberChangeExternalIdType { + '.tag': 'member_change_external_id'; + } + + /** + * (members) Changed membership type (limited/full) of member (deprecated, + * no longer logged) + */ + export interface EventTypeMemberChangeMembershipType extends MemberChangeMembershipTypeType { + '.tag': 'member_change_membership_type'; + } + + /** + * (members) Changed team member name + */ + export interface EventTypeMemberChangeName extends MemberChangeNameType { + '.tag': 'member_change_name'; + } + + /** + * (members) Changed team member reseller role + */ + export interface EventTypeMemberChangeResellerRole extends MemberChangeResellerRoleType { + '.tag': 'member_change_reseller_role'; + } + + /** + * (members) Changed member status (invited, joined, suspended, etc.) + */ + export interface EventTypeMemberChangeStatus extends MemberChangeStatusType { + '.tag': 'member_change_status'; + } + + /** + * (members) Cleared manually added contacts + */ + export interface EventTypeMemberDeleteManualContacts extends MemberDeleteManualContactsType { + '.tag': 'member_delete_manual_contacts'; + } + + /** + * (members) Deleted team member profile photo + */ + export interface EventTypeMemberDeleteProfilePhoto extends MemberDeleteProfilePhotoType { + '.tag': 'member_delete_profile_photo'; + } + + /** + * (members) Permanently deleted contents of deleted team member account + */ + export interface EventTypeMemberPermanentlyDeleteAccountContents extends MemberPermanentlyDeleteAccountContentsType { + '.tag': 'member_permanently_delete_account_contents'; + } + + /** + * (members) Removed the external ID for team member + */ + export interface EventTypeMemberRemoveExternalId extends MemberRemoveExternalIdType { + '.tag': 'member_remove_external_id'; + } + + /** + * (members) Set team member profile photo + */ + export interface EventTypeMemberSetProfilePhoto extends MemberSetProfilePhotoType { + '.tag': 'member_set_profile_photo'; + } + + /** + * (members) Set custom member space limit + */ + export interface EventTypeMemberSpaceLimitsAddCustomQuota extends MemberSpaceLimitsAddCustomQuotaType { + '.tag': 'member_space_limits_add_custom_quota'; + } + + /** + * (members) Changed custom member space limit + */ + export interface EventTypeMemberSpaceLimitsChangeCustomQuota extends MemberSpaceLimitsChangeCustomQuotaType { + '.tag': 'member_space_limits_change_custom_quota'; + } + + /** + * (members) Changed space limit status + */ + export interface EventTypeMemberSpaceLimitsChangeStatus extends MemberSpaceLimitsChangeStatusType { + '.tag': 'member_space_limits_change_status'; + } + + /** + * (members) Removed custom member space limit + */ + export interface EventTypeMemberSpaceLimitsRemoveCustomQuota extends MemberSpaceLimitsRemoveCustomQuotaType { + '.tag': 'member_space_limits_remove_custom_quota'; + } + + /** + * (members) Suggested person to add to team + */ + export interface EventTypeMemberSuggest extends MemberSuggestType { + '.tag': 'member_suggest'; + } + + /** + * (members) Transferred contents of deleted member account to another + * member + */ + export interface EventTypeMemberTransferAccountContents extends MemberTransferAccountContentsType { + '.tag': 'member_transfer_account_contents'; + } + + /** + * (members) Added pending secondary email + */ + export interface EventTypePendingSecondaryEmailAdded extends PendingSecondaryEmailAddedType { + '.tag': 'pending_secondary_email_added'; + } + + /** + * (members) Deleted secondary email + */ + export interface EventTypeSecondaryEmailDeleted extends SecondaryEmailDeletedType { + '.tag': 'secondary_email_deleted'; + } + + /** + * (members) Verified secondary email + */ + export interface EventTypeSecondaryEmailVerified extends SecondaryEmailVerifiedType { + '.tag': 'secondary_email_verified'; + } + + /** + * (members) Secondary mails policy changed + */ + export interface EventTypeSecondaryMailsPolicyChanged extends SecondaryMailsPolicyChangedType { + '.tag': 'secondary_mails_policy_changed'; + } + + /** + * (paper) Added Binder page (deprecated, replaced by 'Edited files') + */ + export interface EventTypeBinderAddPage extends BinderAddPageType { + '.tag': 'binder_add_page'; + } + + /** + * (paper) Added Binder section (deprecated, replaced by 'Edited files') + */ + export interface EventTypeBinderAddSection extends BinderAddSectionType { + '.tag': 'binder_add_section'; + } + + /** + * (paper) Removed Binder page (deprecated, replaced by 'Edited files') + */ + export interface EventTypeBinderRemovePage extends BinderRemovePageType { + '.tag': 'binder_remove_page'; + } + + /** + * (paper) Removed Binder section (deprecated, replaced by 'Edited files') + */ + export interface EventTypeBinderRemoveSection extends BinderRemoveSectionType { + '.tag': 'binder_remove_section'; + } + + /** + * (paper) Renamed Binder page (deprecated, replaced by 'Edited files') + */ + export interface EventTypeBinderRenamePage extends BinderRenamePageType { + '.tag': 'binder_rename_page'; + } + + /** + * (paper) Renamed Binder section (deprecated, replaced by 'Edited files') + */ + export interface EventTypeBinderRenameSection extends BinderRenameSectionType { + '.tag': 'binder_rename_section'; + } + + /** + * (paper) Reordered Binder page (deprecated, replaced by 'Edited files') + */ + export interface EventTypeBinderReorderPage extends BinderReorderPageType { + '.tag': 'binder_reorder_page'; + } + + /** + * (paper) Reordered Binder section (deprecated, replaced by 'Edited files') + */ + export interface EventTypeBinderReorderSection extends BinderReorderSectionType { + '.tag': 'binder_reorder_section'; + } + + /** + * (paper) Added users and/or groups to Paper doc/folder + */ + export interface EventTypePaperContentAddMember extends PaperContentAddMemberType { + '.tag': 'paper_content_add_member'; + } + + /** + * (paper) Added Paper doc/folder to folder + */ + export interface EventTypePaperContentAddToFolder extends PaperContentAddToFolderType { + '.tag': 'paper_content_add_to_folder'; + } + + /** + * (paper) Archived Paper doc/folder + */ + export interface EventTypePaperContentArchive extends PaperContentArchiveType { + '.tag': 'paper_content_archive'; + } + + /** + * (paper) Created Paper doc/folder + */ + export interface EventTypePaperContentCreate extends PaperContentCreateType { + '.tag': 'paper_content_create'; + } + + /** + * (paper) Permanently deleted Paper doc/folder + */ + export interface EventTypePaperContentPermanentlyDelete extends PaperContentPermanentlyDeleteType { + '.tag': 'paper_content_permanently_delete'; + } + + /** + * (paper) Removed Paper doc/folder from folder + */ + export interface EventTypePaperContentRemoveFromFolder extends PaperContentRemoveFromFolderType { + '.tag': 'paper_content_remove_from_folder'; + } + + /** + * (paper) Removed users and/or groups from Paper doc/folder + */ + export interface EventTypePaperContentRemoveMember extends PaperContentRemoveMemberType { + '.tag': 'paper_content_remove_member'; + } + + /** + * (paper) Renamed Paper doc/folder + */ + export interface EventTypePaperContentRename extends PaperContentRenameType { + '.tag': 'paper_content_rename'; + } + + /** + * (paper) Restored archived Paper doc/folder + */ + export interface EventTypePaperContentRestore extends PaperContentRestoreType { + '.tag': 'paper_content_restore'; + } + + /** + * (paper) Added Paper doc comment + */ + export interface EventTypePaperDocAddComment extends PaperDocAddCommentType { + '.tag': 'paper_doc_add_comment'; + } + + /** + * (paper) Changed member permissions for Paper doc + */ + export interface EventTypePaperDocChangeMemberRole extends PaperDocChangeMemberRoleType { + '.tag': 'paper_doc_change_member_role'; + } + + /** + * (paper) Changed sharing setting for Paper doc + */ + export interface EventTypePaperDocChangeSharingPolicy extends PaperDocChangeSharingPolicyType { + '.tag': 'paper_doc_change_sharing_policy'; + } + + /** + * (paper) Followed/unfollowed Paper doc + */ + export interface EventTypePaperDocChangeSubscription extends PaperDocChangeSubscriptionType { + '.tag': 'paper_doc_change_subscription'; + } + + /** + * (paper) Archived Paper doc (deprecated, no longer logged) + */ + export interface EventTypePaperDocDeleted extends PaperDocDeletedType { + '.tag': 'paper_doc_deleted'; + } + + /** + * (paper) Deleted Paper doc comment + */ + export interface EventTypePaperDocDeleteComment extends PaperDocDeleteCommentType { + '.tag': 'paper_doc_delete_comment'; + } + + /** + * (paper) Downloaded Paper doc in specific format + */ + export interface EventTypePaperDocDownload extends PaperDocDownloadType { + '.tag': 'paper_doc_download'; + } + + /** + * (paper) Edited Paper doc + */ + export interface EventTypePaperDocEdit extends PaperDocEditType { + '.tag': 'paper_doc_edit'; + } + + /** + * (paper) Edited Paper doc comment + */ + export interface EventTypePaperDocEditComment extends PaperDocEditCommentType { + '.tag': 'paper_doc_edit_comment'; + } + + /** + * (paper) Followed Paper doc (deprecated, replaced by 'Followed/unfollowed + * Paper doc') + */ + export interface EventTypePaperDocFollowed extends PaperDocFollowedType { + '.tag': 'paper_doc_followed'; + } + + /** + * (paper) Mentioned user in Paper doc + */ + export interface EventTypePaperDocMention extends PaperDocMentionType { + '.tag': 'paper_doc_mention'; + } + + /** + * (paper) Transferred ownership of Paper doc + */ + export interface EventTypePaperDocOwnershipChanged extends PaperDocOwnershipChangedType { + '.tag': 'paper_doc_ownership_changed'; + } + + /** + * (paper) Requested access to Paper doc + */ + export interface EventTypePaperDocRequestAccess extends PaperDocRequestAccessType { + '.tag': 'paper_doc_request_access'; + } + + /** + * (paper) Resolved Paper doc comment + */ + export interface EventTypePaperDocResolveComment extends PaperDocResolveCommentType { + '.tag': 'paper_doc_resolve_comment'; + } + + /** + * (paper) Restored Paper doc to previous version + */ + export interface EventTypePaperDocRevert extends PaperDocRevertType { + '.tag': 'paper_doc_revert'; + } + + /** + * (paper) Shared Paper doc via Slack + */ + export interface EventTypePaperDocSlackShare extends PaperDocSlackShareType { + '.tag': 'paper_doc_slack_share'; + } + + /** + * (paper) Shared Paper doc with users and/or groups (deprecated, no longer + * logged) + */ + export interface EventTypePaperDocTeamInvite extends PaperDocTeamInviteType { + '.tag': 'paper_doc_team_invite'; + } + + /** + * (paper) Deleted Paper doc + */ + export interface EventTypePaperDocTrashed extends PaperDocTrashedType { + '.tag': 'paper_doc_trashed'; + } + + /** + * (paper) Unresolved Paper doc comment + */ + export interface EventTypePaperDocUnresolveComment extends PaperDocUnresolveCommentType { + '.tag': 'paper_doc_unresolve_comment'; + } + + /** + * (paper) Restored Paper doc + */ + export interface EventTypePaperDocUntrashed extends PaperDocUntrashedType { + '.tag': 'paper_doc_untrashed'; + } + + /** + * (paper) Viewed Paper doc + */ + export interface EventTypePaperDocView extends PaperDocViewType { + '.tag': 'paper_doc_view'; + } + + /** + * (paper) Changed Paper external sharing setting to anyone (deprecated, no + * longer logged) + */ + export interface EventTypePaperExternalViewAllow extends PaperExternalViewAllowType { + '.tag': 'paper_external_view_allow'; + } + + /** + * (paper) Changed Paper external sharing setting to default team + * (deprecated, no longer logged) + */ + export interface EventTypePaperExternalViewDefaultTeam extends PaperExternalViewDefaultTeamType { + '.tag': 'paper_external_view_default_team'; + } + + /** + * (paper) Changed Paper external sharing setting to team-only (deprecated, + * no longer logged) + */ + export interface EventTypePaperExternalViewForbid extends PaperExternalViewForbidType { + '.tag': 'paper_external_view_forbid'; + } + + /** + * (paper) Followed/unfollowed Paper folder + */ + export interface EventTypePaperFolderChangeSubscription extends PaperFolderChangeSubscriptionType { + '.tag': 'paper_folder_change_subscription'; + } + + /** + * (paper) Archived Paper folder (deprecated, no longer logged) + */ + export interface EventTypePaperFolderDeleted extends PaperFolderDeletedType { + '.tag': 'paper_folder_deleted'; + } + + /** + * (paper) Followed Paper folder (deprecated, replaced by + * 'Followed/unfollowed Paper folder') + */ + export interface EventTypePaperFolderFollowed extends PaperFolderFollowedType { + '.tag': 'paper_folder_followed'; + } + + /** + * (paper) Shared Paper folder with users and/or groups (deprecated, no + * longer logged) + */ + export interface EventTypePaperFolderTeamInvite extends PaperFolderTeamInviteType { + '.tag': 'paper_folder_team_invite'; + } + + /** + * (paper) Changed permissions for published doc + */ + export interface EventTypePaperPublishedLinkChangePermission extends PaperPublishedLinkChangePermissionType { + '.tag': 'paper_published_link_change_permission'; + } + + /** + * (paper) Published doc + */ + export interface EventTypePaperPublishedLinkCreate extends PaperPublishedLinkCreateType { + '.tag': 'paper_published_link_create'; + } + + /** + * (paper) Unpublished doc + */ + export interface EventTypePaperPublishedLinkDisabled extends PaperPublishedLinkDisabledType { + '.tag': 'paper_published_link_disabled'; + } + + /** + * (paper) Viewed published doc + */ + export interface EventTypePaperPublishedLinkView extends PaperPublishedLinkViewType { + '.tag': 'paper_published_link_view'; + } + + /** + * (passwords) Changed password + */ + export interface EventTypePasswordChange extends PasswordChangeType { + '.tag': 'password_change'; + } + + /** + * (passwords) Reset password + */ + export interface EventTypePasswordReset extends PasswordResetType { + '.tag': 'password_reset'; + } + + /** + * (passwords) Reset all team member passwords + */ + export interface EventTypePasswordResetAll extends PasswordResetAllType { + '.tag': 'password_reset_all'; + } + + /** + * (reports) Created Classification report + */ + export interface EventTypeClassificationCreateReport extends ClassificationCreateReportType { + '.tag': 'classification_create_report'; + } + + /** + * (reports) Couldn't create Classification report + */ + export interface EventTypeClassificationCreateReportFail extends ClassificationCreateReportFailType { + '.tag': 'classification_create_report_fail'; + } + + /** + * (reports) Created EMM-excluded users report + */ + export interface EventTypeEmmCreateExceptionsReport extends EmmCreateExceptionsReportType { + '.tag': 'emm_create_exceptions_report'; + } + + /** + * (reports) Created EMM mobile app usage report + */ + export interface EventTypeEmmCreateUsageReport extends EmmCreateUsageReportType { + '.tag': 'emm_create_usage_report'; + } + + /** + * (reports) Created member data report + */ + export interface EventTypeExportMembersReport extends ExportMembersReportType { + '.tag': 'export_members_report'; + } + + /** + * (reports) Failed to create members data report + */ + export interface EventTypeExportMembersReportFail extends ExportMembersReportFailType { + '.tag': 'export_members_report_fail'; + } + + /** + * (reports) Created External sharing report + */ + export interface EventTypeExternalSharingCreateReport extends ExternalSharingCreateReportType { + '.tag': 'external_sharing_create_report'; + } + + /** + * (reports) Couldn't create External sharing report + */ + export interface EventTypeExternalSharingReportFailed extends ExternalSharingReportFailedType { + '.tag': 'external_sharing_report_failed'; + } + + /** + * (reports) Report created: Links created with no expiration + */ + export interface EventTypeNoExpirationLinkGenCreateReport extends NoExpirationLinkGenCreateReportType { + '.tag': 'no_expiration_link_gen_create_report'; + } + + /** + * (reports) Couldn't create report: Links created with no expiration + */ + export interface EventTypeNoExpirationLinkGenReportFailed extends NoExpirationLinkGenReportFailedType { + '.tag': 'no_expiration_link_gen_report_failed'; + } + + /** + * (reports) Report created: Links created without passwords + */ + export interface EventTypeNoPasswordLinkGenCreateReport extends NoPasswordLinkGenCreateReportType { + '.tag': 'no_password_link_gen_create_report'; + } + + /** + * (reports) Couldn't create report: Links created without passwords + */ + export interface EventTypeNoPasswordLinkGenReportFailed extends NoPasswordLinkGenReportFailedType { + '.tag': 'no_password_link_gen_report_failed'; + } + + /** + * (reports) Report created: Views of links without passwords + */ + export interface EventTypeNoPasswordLinkViewCreateReport extends NoPasswordLinkViewCreateReportType { + '.tag': 'no_password_link_view_create_report'; + } + + /** + * (reports) Couldn't create report: Views of links without passwords + */ + export interface EventTypeNoPasswordLinkViewReportFailed extends NoPasswordLinkViewReportFailedType { + '.tag': 'no_password_link_view_report_failed'; + } + + /** + * (reports) Report created: Views of old links + */ + export interface EventTypeOutdatedLinkViewCreateReport extends OutdatedLinkViewCreateReportType { + '.tag': 'outdated_link_view_create_report'; + } + + /** + * (reports) Couldn't create report: Views of old links + */ + export interface EventTypeOutdatedLinkViewReportFailed extends OutdatedLinkViewReportFailedType { + '.tag': 'outdated_link_view_report_failed'; + } + + /** + * (reports) Exported all team Paper docs + */ + export interface EventTypePaperAdminExportStart extends PaperAdminExportStartType { + '.tag': 'paper_admin_export_start'; + } + + /** + * (reports) Created Smart Sync non-admin devices report + */ + export interface EventTypeSmartSyncCreateAdminPrivilegeReport extends SmartSyncCreateAdminPrivilegeReportType { + '.tag': 'smart_sync_create_admin_privilege_report'; + } + + /** + * (reports) Created team activity report + */ + export interface EventTypeTeamActivityCreateReport extends TeamActivityCreateReportType { + '.tag': 'team_activity_create_report'; + } + + /** + * (reports) Couldn't generate team activity report + */ + export interface EventTypeTeamActivityCreateReportFail extends TeamActivityCreateReportFailType { + '.tag': 'team_activity_create_report_fail'; + } + + /** + * (sharing) Shared album + */ + export interface EventTypeCollectionShare extends CollectionShareType { + '.tag': 'collection_share'; + } + + /** + * (sharing) Transfer files added + */ + export interface EventTypeFileTransfersFileAdd extends FileTransfersFileAddType { + '.tag': 'file_transfers_file_add'; + } + + /** + * (sharing) Deleted transfer + */ + export interface EventTypeFileTransfersTransferDelete extends FileTransfersTransferDeleteType { + '.tag': 'file_transfers_transfer_delete'; + } + + /** + * (sharing) Transfer downloaded + */ + export interface EventTypeFileTransfersTransferDownload extends FileTransfersTransferDownloadType { + '.tag': 'file_transfers_transfer_download'; + } + + /** + * (sharing) Sent transfer + */ + export interface EventTypeFileTransfersTransferSend extends FileTransfersTransferSendType { + '.tag': 'file_transfers_transfer_send'; + } + + /** + * (sharing) Viewed transfer + */ + export interface EventTypeFileTransfersTransferView extends FileTransfersTransferViewType { + '.tag': 'file_transfers_transfer_view'; + } + + /** + * (sharing) Changed Paper doc to invite-only (deprecated, no longer logged) + */ + export interface EventTypeNoteAclInviteOnly extends NoteAclInviteOnlyType { + '.tag': 'note_acl_invite_only'; + } + + /** + * (sharing) Changed Paper doc to link-accessible (deprecated, no longer + * logged) + */ + export interface EventTypeNoteAclLink extends NoteAclLinkType { + '.tag': 'note_acl_link'; + } + + /** + * (sharing) Changed Paper doc to link-accessible for team (deprecated, no + * longer logged) + */ + export interface EventTypeNoteAclTeamLink extends NoteAclTeamLinkType { + '.tag': 'note_acl_team_link'; + } + + /** + * (sharing) Shared Paper doc (deprecated, no longer logged) + */ + export interface EventTypeNoteShared extends NoteSharedType { + '.tag': 'note_shared'; + } + + /** + * (sharing) Shared received Paper doc (deprecated, no longer logged) + */ + export interface EventTypeNoteShareReceive extends NoteShareReceiveType { + '.tag': 'note_share_receive'; + } + + /** + * (sharing) Opened shared Paper doc (deprecated, no longer logged) + */ + export interface EventTypeOpenNoteShared extends OpenNoteSharedType { + '.tag': 'open_note_shared'; + } + + /** + * (sharing) Added team to shared folder (deprecated, no longer logged) + */ + export interface EventTypeSfAddGroup extends SfAddGroupType { + '.tag': 'sf_add_group'; + } + + /** + * (sharing) Allowed non-collaborators to view links to files in shared + * folder (deprecated, no longer logged) + */ + export interface EventTypeSfAllowNonMembersToViewSharedLinks extends SfAllowNonMembersToViewSharedLinksType { + '.tag': 'sf_allow_non_members_to_view_shared_links'; + } + + /** + * (sharing) Set team members to see warning before sharing folders outside + * team (deprecated, no longer logged) + */ + export interface EventTypeSfExternalInviteWarn extends SfExternalInviteWarnType { + '.tag': 'sf_external_invite_warn'; + } + + /** + * (sharing) Invited Facebook users to shared folder (deprecated, no longer + * logged) + */ + export interface EventTypeSfFbInvite extends SfFbInviteType { + '.tag': 'sf_fb_invite'; + } + + /** + * (sharing) Changed Facebook user's role in shared folder (deprecated, no + * longer logged) + */ + export interface EventTypeSfFbInviteChangeRole extends SfFbInviteChangeRoleType { + '.tag': 'sf_fb_invite_change_role'; + } + + /** + * (sharing) Uninvited Facebook user from shared folder (deprecated, no + * longer logged) + */ + export interface EventTypeSfFbUninvite extends SfFbUninviteType { + '.tag': 'sf_fb_uninvite'; + } + + /** + * (sharing) Invited group to shared folder (deprecated, no longer logged) + */ + export interface EventTypeSfInviteGroup extends SfInviteGroupType { + '.tag': 'sf_invite_group'; + } + + /** + * (sharing) Granted access to shared folder (deprecated, no longer logged) + */ + export interface EventTypeSfTeamGrantAccess extends SfTeamGrantAccessType { + '.tag': 'sf_team_grant_access'; + } + + /** + * (sharing) Invited team members to shared folder (deprecated, replaced by + * 'Invited user to Dropbox and added them to shared file/folder') + */ + export interface EventTypeSfTeamInvite extends SfTeamInviteType { + '.tag': 'sf_team_invite'; + } + + /** + * (sharing) Changed team member's role in shared folder (deprecated, no + * longer logged) + */ + export interface EventTypeSfTeamInviteChangeRole extends SfTeamInviteChangeRoleType { + '.tag': 'sf_team_invite_change_role'; + } + + /** + * (sharing) Joined team member's shared folder (deprecated, no longer + * logged) + */ + export interface EventTypeSfTeamJoin extends SfTeamJoinType { + '.tag': 'sf_team_join'; + } + + /** + * (sharing) Joined team member's shared folder from link (deprecated, no + * longer logged) + */ + export interface EventTypeSfTeamJoinFromOobLink extends SfTeamJoinFromOobLinkType { + '.tag': 'sf_team_join_from_oob_link'; + } + + /** + * (sharing) Unshared folder with team member (deprecated, replaced by + * 'Removed invitee from shared file/folder before invite was accepted') + */ + export interface EventTypeSfTeamUninvite extends SfTeamUninviteType { + '.tag': 'sf_team_uninvite'; + } + + /** + * (sharing) Invited user to Dropbox and added them to shared file/folder + */ + export interface EventTypeSharedContentAddInvitees extends SharedContentAddInviteesType { + '.tag': 'shared_content_add_invitees'; + } + + /** + * (sharing) Added expiration date to link for shared file/folder + * (deprecated, no longer logged) + */ + export interface EventTypeSharedContentAddLinkExpiry extends SharedContentAddLinkExpiryType { + '.tag': 'shared_content_add_link_expiry'; + } + + /** + * (sharing) Added password to link for shared file/folder (deprecated, no + * longer logged) + */ + export interface EventTypeSharedContentAddLinkPassword extends SharedContentAddLinkPasswordType { + '.tag': 'shared_content_add_link_password'; + } + + /** + * (sharing) Added users and/or groups to shared file/folder + */ + export interface EventTypeSharedContentAddMember extends SharedContentAddMemberType { + '.tag': 'shared_content_add_member'; + } + + /** + * (sharing) Changed whether members can download shared file/folder + * (deprecated, no longer logged) + */ + export interface EventTypeSharedContentChangeDownloadsPolicy extends SharedContentChangeDownloadsPolicyType { + '.tag': 'shared_content_change_downloads_policy'; + } + + /** + * (sharing) Changed access type of invitee to shared file/folder before + * invite was accepted + */ + export interface EventTypeSharedContentChangeInviteeRole extends SharedContentChangeInviteeRoleType { + '.tag': 'shared_content_change_invitee_role'; + } + + /** + * (sharing) Changed link audience of shared file/folder (deprecated, no + * longer logged) + */ + export interface EventTypeSharedContentChangeLinkAudience extends SharedContentChangeLinkAudienceType { + '.tag': 'shared_content_change_link_audience'; + } + + /** + * (sharing) Changed link expiration of shared file/folder (deprecated, no + * longer logged) + */ + export interface EventTypeSharedContentChangeLinkExpiry extends SharedContentChangeLinkExpiryType { + '.tag': 'shared_content_change_link_expiry'; + } + + /** + * (sharing) Changed link password of shared file/folder (deprecated, no + * longer logged) + */ + export interface EventTypeSharedContentChangeLinkPassword extends SharedContentChangeLinkPasswordType { + '.tag': 'shared_content_change_link_password'; + } + + /** + * (sharing) Changed access type of shared file/folder member + */ + export interface EventTypeSharedContentChangeMemberRole extends SharedContentChangeMemberRoleType { + '.tag': 'shared_content_change_member_role'; + } + + /** + * (sharing) Changed whether members can see who viewed shared file/folder + */ + export interface EventTypeSharedContentChangeViewerInfoPolicy extends SharedContentChangeViewerInfoPolicyType { + '.tag': 'shared_content_change_viewer_info_policy'; + } + + /** + * (sharing) Acquired membership of shared file/folder by accepting invite + */ + export interface EventTypeSharedContentClaimInvitation extends SharedContentClaimInvitationType { + '.tag': 'shared_content_claim_invitation'; + } + + /** + * (sharing) Copied shared file/folder to own Dropbox + */ + export interface EventTypeSharedContentCopy extends SharedContentCopyType { + '.tag': 'shared_content_copy'; + } + + /** + * (sharing) Downloaded shared file/folder + */ + export interface EventTypeSharedContentDownload extends SharedContentDownloadType { + '.tag': 'shared_content_download'; + } + + /** + * (sharing) Left shared file/folder + */ + export interface EventTypeSharedContentRelinquishMembership extends SharedContentRelinquishMembershipType { + '.tag': 'shared_content_relinquish_membership'; + } + + /** + * (sharing) Removed invitee from shared file/folder before invite was + * accepted + */ + export interface EventTypeSharedContentRemoveInvitees extends SharedContentRemoveInviteesType { + '.tag': 'shared_content_remove_invitees'; + } + + /** + * (sharing) Removed link expiration date of shared file/folder (deprecated, + * no longer logged) + */ + export interface EventTypeSharedContentRemoveLinkExpiry extends SharedContentRemoveLinkExpiryType { + '.tag': 'shared_content_remove_link_expiry'; + } + + /** + * (sharing) Removed link password of shared file/folder (deprecated, no + * longer logged) + */ + export interface EventTypeSharedContentRemoveLinkPassword extends SharedContentRemoveLinkPasswordType { + '.tag': 'shared_content_remove_link_password'; + } + + /** + * (sharing) Removed user/group from shared file/folder + */ + export interface EventTypeSharedContentRemoveMember extends SharedContentRemoveMemberType { + '.tag': 'shared_content_remove_member'; + } + + /** + * (sharing) Requested access to shared file/folder + */ + export interface EventTypeSharedContentRequestAccess extends SharedContentRequestAccessType { + '.tag': 'shared_content_request_access'; + } + + /** + * (sharing) Restored shared file/folder invitees + */ + export interface EventTypeSharedContentRestoreInvitees extends SharedContentRestoreInviteesType { + '.tag': 'shared_content_restore_invitees'; + } + + /** + * (sharing) Restored users and/or groups to membership of shared + * file/folder + */ + export interface EventTypeSharedContentRestoreMember extends SharedContentRestoreMemberType { + '.tag': 'shared_content_restore_member'; + } + + /** + * (sharing) Unshared file/folder by clearing membership + */ + export interface EventTypeSharedContentUnshare extends SharedContentUnshareType { + '.tag': 'shared_content_unshare'; + } + + /** + * (sharing) Previewed shared file/folder + */ + export interface EventTypeSharedContentView extends SharedContentViewType { + '.tag': 'shared_content_view'; + } + + /** + * (sharing) Changed who can access shared folder via link + */ + export interface EventTypeSharedFolderChangeLinkPolicy extends SharedFolderChangeLinkPolicyType { + '.tag': 'shared_folder_change_link_policy'; + } + + /** + * (sharing) Changed whether shared folder inherits members from parent + * folder + */ + export interface EventTypeSharedFolderChangeMembersInheritancePolicy extends SharedFolderChangeMembersInheritancePolicyType { + '.tag': 'shared_folder_change_members_inheritance_policy'; + } + + /** + * (sharing) Changed who can add/remove members of shared folder + */ + export interface EventTypeSharedFolderChangeMembersManagementPolicy extends SharedFolderChangeMembersManagementPolicyType { + '.tag': 'shared_folder_change_members_management_policy'; + } + + /** + * (sharing) Changed who can become member of shared folder + */ + export interface EventTypeSharedFolderChangeMembersPolicy extends SharedFolderChangeMembersPolicyType { + '.tag': 'shared_folder_change_members_policy'; + } + + /** + * (sharing) Created shared folder + */ + export interface EventTypeSharedFolderCreate extends SharedFolderCreateType { + '.tag': 'shared_folder_create'; + } + + /** + * (sharing) Declined team member's invite to shared folder + */ + export interface EventTypeSharedFolderDeclineInvitation extends SharedFolderDeclineInvitationType { + '.tag': 'shared_folder_decline_invitation'; + } + + /** + * (sharing) Added shared folder to own Dropbox + */ + export interface EventTypeSharedFolderMount extends SharedFolderMountType { + '.tag': 'shared_folder_mount'; + } + + /** + * (sharing) Changed parent of shared folder + */ + export interface EventTypeSharedFolderNest extends SharedFolderNestType { + '.tag': 'shared_folder_nest'; + } + + /** + * (sharing) Transferred ownership of shared folder to another member + */ + export interface EventTypeSharedFolderTransferOwnership extends SharedFolderTransferOwnershipType { + '.tag': 'shared_folder_transfer_ownership'; + } + + /** + * (sharing) Deleted shared folder from Dropbox + */ + export interface EventTypeSharedFolderUnmount extends SharedFolderUnmountType { + '.tag': 'shared_folder_unmount'; + } + + /** + * (sharing) Added shared link expiration date + */ + export interface EventTypeSharedLinkAddExpiry extends SharedLinkAddExpiryType { + '.tag': 'shared_link_add_expiry'; + } + + /** + * (sharing) Changed shared link expiration date + */ + export interface EventTypeSharedLinkChangeExpiry extends SharedLinkChangeExpiryType { + '.tag': 'shared_link_change_expiry'; + } + + /** + * (sharing) Changed visibility of shared link + */ + export interface EventTypeSharedLinkChangeVisibility extends SharedLinkChangeVisibilityType { + '.tag': 'shared_link_change_visibility'; + } + + /** + * (sharing) Added file/folder to Dropbox from shared link + */ + export interface EventTypeSharedLinkCopy extends SharedLinkCopyType { + '.tag': 'shared_link_copy'; + } + + /** + * (sharing) Created shared link + */ + export interface EventTypeSharedLinkCreate extends SharedLinkCreateType { + '.tag': 'shared_link_create'; + } + + /** + * (sharing) Removed shared link + */ + export interface EventTypeSharedLinkDisable extends SharedLinkDisableType { + '.tag': 'shared_link_disable'; + } + + /** + * (sharing) Downloaded file/folder from shared link + */ + export interface EventTypeSharedLinkDownload extends SharedLinkDownloadType { + '.tag': 'shared_link_download'; + } + + /** + * (sharing) Removed shared link expiration date + */ + export interface EventTypeSharedLinkRemoveExpiry extends SharedLinkRemoveExpiryType { + '.tag': 'shared_link_remove_expiry'; + } + + /** + * (sharing) Added an expiration date to the shared link + */ + export interface EventTypeSharedLinkSettingsAddExpiration extends SharedLinkSettingsAddExpirationType { + '.tag': 'shared_link_settings_add_expiration'; + } + + /** + * (sharing) Added a password to the shared link + */ + export interface EventTypeSharedLinkSettingsAddPassword extends SharedLinkSettingsAddPasswordType { + '.tag': 'shared_link_settings_add_password'; + } + + /** + * (sharing) Disabled downloads + */ + export interface EventTypeSharedLinkSettingsAllowDownloadDisabled extends SharedLinkSettingsAllowDownloadDisabledType { + '.tag': 'shared_link_settings_allow_download_disabled'; + } + + /** + * (sharing) Enabled downloads + */ + export interface EventTypeSharedLinkSettingsAllowDownloadEnabled extends SharedLinkSettingsAllowDownloadEnabledType { + '.tag': 'shared_link_settings_allow_download_enabled'; + } + + /** + * (sharing) Changed the audience of the shared link + */ + export interface EventTypeSharedLinkSettingsChangeAudience extends SharedLinkSettingsChangeAudienceType { + '.tag': 'shared_link_settings_change_audience'; + } + + /** + * (sharing) Changed the expiration date of the shared link + */ + export interface EventTypeSharedLinkSettingsChangeExpiration extends SharedLinkSettingsChangeExpirationType { + '.tag': 'shared_link_settings_change_expiration'; + } + + /** + * (sharing) Changed the password of the shared link + */ + export interface EventTypeSharedLinkSettingsChangePassword extends SharedLinkSettingsChangePasswordType { + '.tag': 'shared_link_settings_change_password'; + } + + /** + * (sharing) Removed the expiration date from the shared link + */ + export interface EventTypeSharedLinkSettingsRemoveExpiration extends SharedLinkSettingsRemoveExpirationType { + '.tag': 'shared_link_settings_remove_expiration'; + } + + /** + * (sharing) Removed the password from the shared link + */ + export interface EventTypeSharedLinkSettingsRemovePassword extends SharedLinkSettingsRemovePasswordType { + '.tag': 'shared_link_settings_remove_password'; + } + + /** + * (sharing) Added members as audience of shared link + */ + export interface EventTypeSharedLinkShare extends SharedLinkShareType { + '.tag': 'shared_link_share'; + } + + /** + * (sharing) Opened shared link + */ + export interface EventTypeSharedLinkView extends SharedLinkViewType { + '.tag': 'shared_link_view'; + } + + /** + * (sharing) Opened shared Paper doc (deprecated, no longer logged) + */ + export interface EventTypeSharedNoteOpened extends SharedNoteOpenedType { + '.tag': 'shared_note_opened'; + } + + /** + * (sharing) Disabled downloads for link (deprecated, no longer logged) + */ + export interface EventTypeShmodelDisableDownloads extends ShmodelDisableDownloadsType { + '.tag': 'shmodel_disable_downloads'; + } + + /** + * (sharing) Enabled downloads for link (deprecated, no longer logged) + */ + export interface EventTypeShmodelEnableDownloads extends ShmodelEnableDownloadsType { + '.tag': 'shmodel_enable_downloads'; + } + + /** + * (sharing) Shared link with group (deprecated, no longer logged) + */ + export interface EventTypeShmodelGroupShare extends ShmodelGroupShareType { + '.tag': 'shmodel_group_share'; + } + + /** + * (showcase) Granted access to showcase + */ + export interface EventTypeShowcaseAccessGranted extends ShowcaseAccessGrantedType { + '.tag': 'showcase_access_granted'; + } + + /** + * (showcase) Added member to showcase + */ + export interface EventTypeShowcaseAddMember extends ShowcaseAddMemberType { + '.tag': 'showcase_add_member'; + } + + /** + * (showcase) Archived showcase + */ + export interface EventTypeShowcaseArchived extends ShowcaseArchivedType { + '.tag': 'showcase_archived'; + } + + /** + * (showcase) Created showcase + */ + export interface EventTypeShowcaseCreated extends ShowcaseCreatedType { + '.tag': 'showcase_created'; + } + + /** + * (showcase) Deleted showcase comment + */ + export interface EventTypeShowcaseDeleteComment extends ShowcaseDeleteCommentType { + '.tag': 'showcase_delete_comment'; + } + + /** + * (showcase) Edited showcase + */ + export interface EventTypeShowcaseEdited extends ShowcaseEditedType { + '.tag': 'showcase_edited'; + } + + /** + * (showcase) Edited showcase comment + */ + export interface EventTypeShowcaseEditComment extends ShowcaseEditCommentType { + '.tag': 'showcase_edit_comment'; + } + + /** + * (showcase) Added file to showcase + */ + export interface EventTypeShowcaseFileAdded extends ShowcaseFileAddedType { + '.tag': 'showcase_file_added'; + } + + /** + * (showcase) Downloaded file from showcase + */ + export interface EventTypeShowcaseFileDownload extends ShowcaseFileDownloadType { + '.tag': 'showcase_file_download'; + } + + /** + * (showcase) Removed file from showcase + */ + export interface EventTypeShowcaseFileRemoved extends ShowcaseFileRemovedType { + '.tag': 'showcase_file_removed'; + } + + /** + * (showcase) Viewed file in showcase + */ + export interface EventTypeShowcaseFileView extends ShowcaseFileViewType { + '.tag': 'showcase_file_view'; + } + + /** + * (showcase) Permanently deleted showcase + */ + export interface EventTypeShowcasePermanentlyDeleted extends ShowcasePermanentlyDeletedType { + '.tag': 'showcase_permanently_deleted'; + } + + /** + * (showcase) Added showcase comment + */ + export interface EventTypeShowcasePostComment extends ShowcasePostCommentType { + '.tag': 'showcase_post_comment'; + } + + /** + * (showcase) Removed member from showcase + */ + export interface EventTypeShowcaseRemoveMember extends ShowcaseRemoveMemberType { + '.tag': 'showcase_remove_member'; + } + + /** + * (showcase) Renamed showcase + */ + export interface EventTypeShowcaseRenamed extends ShowcaseRenamedType { + '.tag': 'showcase_renamed'; + } + + /** + * (showcase) Requested access to showcase + */ + export interface EventTypeShowcaseRequestAccess extends ShowcaseRequestAccessType { + '.tag': 'showcase_request_access'; + } + + /** + * (showcase) Resolved showcase comment + */ + export interface EventTypeShowcaseResolveComment extends ShowcaseResolveCommentType { + '.tag': 'showcase_resolve_comment'; + } + + /** + * (showcase) Unarchived showcase + */ + export interface EventTypeShowcaseRestored extends ShowcaseRestoredType { + '.tag': 'showcase_restored'; + } + + /** + * (showcase) Deleted showcase + */ + export interface EventTypeShowcaseTrashed extends ShowcaseTrashedType { + '.tag': 'showcase_trashed'; + } + + /** + * (showcase) Deleted showcase (old version) (deprecated, replaced by + * 'Deleted showcase') + */ + export interface EventTypeShowcaseTrashedDeprecated extends ShowcaseTrashedDeprecatedType { + '.tag': 'showcase_trashed_deprecated'; + } + + /** + * (showcase) Unresolved showcase comment + */ + export interface EventTypeShowcaseUnresolveComment extends ShowcaseUnresolveCommentType { + '.tag': 'showcase_unresolve_comment'; + } + + /** + * (showcase) Restored showcase + */ + export interface EventTypeShowcaseUntrashed extends ShowcaseUntrashedType { + '.tag': 'showcase_untrashed'; + } + + /** + * (showcase) Restored showcase (old version) (deprecated, replaced by + * 'Restored showcase') + */ + export interface EventTypeShowcaseUntrashedDeprecated extends ShowcaseUntrashedDeprecatedType { + '.tag': 'showcase_untrashed_deprecated'; + } + + /** + * (showcase) Viewed showcase + */ + export interface EventTypeShowcaseView extends ShowcaseViewType { + '.tag': 'showcase_view'; + } + + /** + * (sso) Added X.509 certificate for SSO + */ + export interface EventTypeSsoAddCert extends SsoAddCertType { + '.tag': 'sso_add_cert'; + } + + /** + * (sso) Added sign-in URL for SSO + */ + export interface EventTypeSsoAddLoginUrl extends SsoAddLoginUrlType { + '.tag': 'sso_add_login_url'; + } + + /** + * (sso) Added sign-out URL for SSO + */ + export interface EventTypeSsoAddLogoutUrl extends SsoAddLogoutUrlType { + '.tag': 'sso_add_logout_url'; + } + + /** + * (sso) Changed X.509 certificate for SSO + */ + export interface EventTypeSsoChangeCert extends SsoChangeCertType { + '.tag': 'sso_change_cert'; + } + + /** + * (sso) Changed sign-in URL for SSO + */ + export interface EventTypeSsoChangeLoginUrl extends SsoChangeLoginUrlType { + '.tag': 'sso_change_login_url'; + } + + /** + * (sso) Changed sign-out URL for SSO + */ + export interface EventTypeSsoChangeLogoutUrl extends SsoChangeLogoutUrlType { + '.tag': 'sso_change_logout_url'; + } + + /** + * (sso) Changed SAML identity mode for SSO + */ + export interface EventTypeSsoChangeSamlIdentityMode extends SsoChangeSamlIdentityModeType { + '.tag': 'sso_change_saml_identity_mode'; + } + + /** + * (sso) Removed X.509 certificate for SSO + */ + export interface EventTypeSsoRemoveCert extends SsoRemoveCertType { + '.tag': 'sso_remove_cert'; + } + + /** + * (sso) Removed sign-in URL for SSO + */ + export interface EventTypeSsoRemoveLoginUrl extends SsoRemoveLoginUrlType { + '.tag': 'sso_remove_login_url'; + } + + /** + * (sso) Removed sign-out URL for SSO + */ + export interface EventTypeSsoRemoveLogoutUrl extends SsoRemoveLogoutUrlType { + '.tag': 'sso_remove_logout_url'; + } + + /** + * (team_folders) Changed archival status of team folder + */ + export interface EventTypeTeamFolderChangeStatus extends TeamFolderChangeStatusType { + '.tag': 'team_folder_change_status'; + } + + /** + * (team_folders) Created team folder in active status + */ + export interface EventTypeTeamFolderCreate extends TeamFolderCreateType { + '.tag': 'team_folder_create'; + } + + /** + * (team_folders) Downgraded team folder to regular shared folder + */ + export interface EventTypeTeamFolderDowngrade extends TeamFolderDowngradeType { + '.tag': 'team_folder_downgrade'; + } + + /** + * (team_folders) Permanently deleted archived team folder + */ + export interface EventTypeTeamFolderPermanentlyDelete extends TeamFolderPermanentlyDeleteType { + '.tag': 'team_folder_permanently_delete'; + } + + /** + * (team_folders) Renamed active/archived team folder + */ + export interface EventTypeTeamFolderRename extends TeamFolderRenameType { + '.tag': 'team_folder_rename'; + } + + /** + * (team_folders) Changed sync default + */ + export interface EventTypeTeamSelectiveSyncSettingsChanged extends TeamSelectiveSyncSettingsChangedType { + '.tag': 'team_selective_sync_settings_changed'; + } + + /** + * (team_policies) Changed account capture setting on team domain + */ + export interface EventTypeAccountCaptureChangePolicy extends AccountCaptureChangePolicyType { + '.tag': 'account_capture_change_policy'; + } + + /** + * (team_policies) Changed admin reminder settings for requests to join the + * team + */ + export interface EventTypeAdminEmailRemindersChanged extends AdminEmailRemindersChangedType { + '.tag': 'admin_email_reminders_changed'; + } + + /** + * (team_policies) Disabled downloads (deprecated, no longer logged) + */ + export interface EventTypeAllowDownloadDisabled extends AllowDownloadDisabledType { + '.tag': 'allow_download_disabled'; + } + + /** + * (team_policies) Enabled downloads (deprecated, no longer logged) + */ + export interface EventTypeAllowDownloadEnabled extends AllowDownloadEnabledType { + '.tag': 'allow_download_enabled'; + } + + /** + * (team_policies) Changed app permissions + */ + export interface EventTypeAppPermissionsChanged extends AppPermissionsChangedType { + '.tag': 'app_permissions_changed'; + } + + /** + * (team_policies) Changed camera uploads setting for team + */ + export interface EventTypeCameraUploadsPolicyChanged extends CameraUploadsPolicyChangedType { + '.tag': 'camera_uploads_policy_changed'; + } + + /** + * (team_policies) Changed Capture transcription policy for team + */ + export interface EventTypeCaptureTranscriptPolicyChanged extends CaptureTranscriptPolicyChangedType { + '.tag': 'capture_transcript_policy_changed'; + } + + /** + * (team_policies) Changed classification policy for team + */ + export interface EventTypeClassificationChangePolicy extends ClassificationChangePolicyType { + '.tag': 'classification_change_policy'; + } + + /** + * (team_policies) Changed computer backup policy for team + */ + export interface EventTypeComputerBackupPolicyChanged extends ComputerBackupPolicyChangedType { + '.tag': 'computer_backup_policy_changed'; + } + + /** + * (team_policies) Changed content management setting + */ + export interface EventTypeContentAdministrationPolicyChanged extends ContentAdministrationPolicyChangedType { + '.tag': 'content_administration_policy_changed'; + } + + /** + * (team_policies) Set restrictions on data center locations where team data + * resides + */ + export interface EventTypeDataPlacementRestrictionChangePolicy extends DataPlacementRestrictionChangePolicyType { + '.tag': 'data_placement_restriction_change_policy'; + } + + /** + * (team_policies) Completed restrictions on data center locations where + * team data resides + */ + export interface EventTypeDataPlacementRestrictionSatisfyPolicy extends DataPlacementRestrictionSatisfyPolicyType { + '.tag': 'data_placement_restriction_satisfy_policy'; + } + + /** + * (team_policies) Added members to device approvals exception list + */ + export interface EventTypeDeviceApprovalsAddException extends DeviceApprovalsAddExceptionType { + '.tag': 'device_approvals_add_exception'; + } + + /** + * (team_policies) Set/removed limit on number of computers member can link + * to team Dropbox account + */ + export interface EventTypeDeviceApprovalsChangeDesktopPolicy extends DeviceApprovalsChangeDesktopPolicyType { + '.tag': 'device_approvals_change_desktop_policy'; + } + + /** + * (team_policies) Set/removed limit on number of mobile devices member can + * link to team Dropbox account + */ + export interface EventTypeDeviceApprovalsChangeMobilePolicy extends DeviceApprovalsChangeMobilePolicyType { + '.tag': 'device_approvals_change_mobile_policy'; + } + + /** + * (team_policies) Changed device approvals setting when member is over + * limit + */ + export interface EventTypeDeviceApprovalsChangeOverageAction extends DeviceApprovalsChangeOverageActionType { + '.tag': 'device_approvals_change_overage_action'; + } + + /** + * (team_policies) Changed device approvals setting when member unlinks + * approved device + */ + export interface EventTypeDeviceApprovalsChangeUnlinkAction extends DeviceApprovalsChangeUnlinkActionType { + '.tag': 'device_approvals_change_unlink_action'; + } + + /** + * (team_policies) Removed members from device approvals exception list + */ + export interface EventTypeDeviceApprovalsRemoveException extends DeviceApprovalsRemoveExceptionType { + '.tag': 'device_approvals_remove_exception'; + } + + /** + * (team_policies) Added members to directory restrictions list + */ + export interface EventTypeDirectoryRestrictionsAddMembers extends DirectoryRestrictionsAddMembersType { + '.tag': 'directory_restrictions_add_members'; + } + + /** + * (team_policies) Removed members from directory restrictions list + */ + export interface EventTypeDirectoryRestrictionsRemoveMembers extends DirectoryRestrictionsRemoveMembersType { + '.tag': 'directory_restrictions_remove_members'; + } + + /** + * (team_policies) Changed Dropbox Passwords policy for team + */ + export interface EventTypeDropboxPasswordsPolicyChanged extends DropboxPasswordsPolicyChangedType { + '.tag': 'dropbox_passwords_policy_changed'; + } + + /** + * (team_policies) Changed email to Dropbox policy for team + */ + export interface EventTypeEmailIngestPolicyChanged extends EmailIngestPolicyChangedType { + '.tag': 'email_ingest_policy_changed'; + } + + /** + * (team_policies) Added members to EMM exception list + */ + export interface EventTypeEmmAddException extends EmmAddExceptionType { + '.tag': 'emm_add_exception'; + } + + /** + * (team_policies) Enabled/disabled enterprise mobility management for + * members + */ + export interface EventTypeEmmChangePolicy extends EmmChangePolicyType { + '.tag': 'emm_change_policy'; + } + + /** + * (team_policies) Removed members from EMM exception list + */ + export interface EventTypeEmmRemoveException extends EmmRemoveExceptionType { + '.tag': 'emm_remove_exception'; + } + + /** + * (team_policies) Accepted/opted out of extended version history + */ + export interface EventTypeExtendedVersionHistoryChangePolicy extends ExtendedVersionHistoryChangePolicyType { + '.tag': 'extended_version_history_change_policy'; + } + + /** + * (team_policies) Changed external drive backup policy for team + */ + export interface EventTypeExternalDriveBackupPolicyChanged extends ExternalDriveBackupPolicyChangedType { + '.tag': 'external_drive_backup_policy_changed'; + } + + /** + * (team_policies) Enabled/disabled commenting on team files + */ + export interface EventTypeFileCommentsChangePolicy extends FileCommentsChangePolicyType { + '.tag': 'file_comments_change_policy'; + } + + /** + * (team_policies) Changed file locking policy for team + */ + export interface EventTypeFileLockingPolicyChanged extends FileLockingPolicyChangedType { + '.tag': 'file_locking_policy_changed'; + } + + /** + * (team_policies) Changed File Provider Migration policy for team + */ + export interface EventTypeFileProviderMigrationPolicyChanged extends FileProviderMigrationPolicyChangedType { + '.tag': 'file_provider_migration_policy_changed'; + } + + /** + * (team_policies) Enabled/disabled file requests + */ + export interface EventTypeFileRequestsChangePolicy extends FileRequestsChangePolicyType { + '.tag': 'file_requests_change_policy'; + } + + /** + * (team_policies) Enabled file request emails for everyone (deprecated, no + * longer logged) + */ + export interface EventTypeFileRequestsEmailsEnabled extends FileRequestsEmailsEnabledType { + '.tag': 'file_requests_emails_enabled'; + } + + /** + * (team_policies) Enabled file request emails for team (deprecated, no + * longer logged) + */ + export interface EventTypeFileRequestsEmailsRestrictedToTeamOnly extends FileRequestsEmailsRestrictedToTeamOnlyType { + '.tag': 'file_requests_emails_restricted_to_team_only'; + } + + /** + * (team_policies) Changed file transfers policy for team + */ + export interface EventTypeFileTransfersPolicyChanged extends FileTransfersPolicyChangedType { + '.tag': 'file_transfers_policy_changed'; + } + + /** + * (team_policies) Changed folder link restrictions policy for team + */ + export interface EventTypeFolderLinkRestrictionPolicyChanged extends FolderLinkRestrictionPolicyChangedType { + '.tag': 'folder_link_restriction_policy_changed'; + } + + /** + * (team_policies) Enabled/disabled Google single sign-on for team + */ + export interface EventTypeGoogleSsoChangePolicy extends GoogleSsoChangePolicyType { + '.tag': 'google_sso_change_policy'; + } + + /** + * (team_policies) Changed who can create groups + */ + export interface EventTypeGroupUserManagementChangePolicy extends GroupUserManagementChangePolicyType { + '.tag': 'group_user_management_change_policy'; + } + + /** + * (team_policies) Changed integration policy for team + */ + export interface EventTypeIntegrationPolicyChanged extends IntegrationPolicyChangedType { + '.tag': 'integration_policy_changed'; + } + + /** + * (team_policies) Changed invite accept email policy for team + */ + export interface EventTypeInviteAcceptanceEmailPolicyChanged extends InviteAcceptanceEmailPolicyChangedType { + '.tag': 'invite_acceptance_email_policy_changed'; + } + + /** + * (team_policies) Changed whether users can find team when not invited + */ + export interface EventTypeMemberRequestsChangePolicy extends MemberRequestsChangePolicyType { + '.tag': 'member_requests_change_policy'; + } + + /** + * (team_policies) Changed member send invite policy for team + */ + export interface EventTypeMemberSendInvitePolicyChanged extends MemberSendInvitePolicyChangedType { + '.tag': 'member_send_invite_policy_changed'; + } + + /** + * (team_policies) Added members to member space limit exception list + */ + export interface EventTypeMemberSpaceLimitsAddException extends MemberSpaceLimitsAddExceptionType { + '.tag': 'member_space_limits_add_exception'; + } + + /** + * (team_policies) Changed member space limit type for team + */ + export interface EventTypeMemberSpaceLimitsChangeCapsTypePolicy extends MemberSpaceLimitsChangeCapsTypePolicyType { + '.tag': 'member_space_limits_change_caps_type_policy'; + } + + /** + * (team_policies) Changed team default member space limit + */ + export interface EventTypeMemberSpaceLimitsChangePolicy extends MemberSpaceLimitsChangePolicyType { + '.tag': 'member_space_limits_change_policy'; + } + + /** + * (team_policies) Removed members from member space limit exception list + */ + export interface EventTypeMemberSpaceLimitsRemoveException extends MemberSpaceLimitsRemoveExceptionType { + '.tag': 'member_space_limits_remove_exception'; + } + + /** + * (team_policies) Enabled/disabled option for team members to suggest + * people to add to team + */ + export interface EventTypeMemberSuggestionsChangePolicy extends MemberSuggestionsChangePolicyType { + '.tag': 'member_suggestions_change_policy'; + } + + /** + * (team_policies) Enabled/disabled Microsoft Office add-in + */ + export interface EventTypeMicrosoftOfficeAddinChangePolicy extends MicrosoftOfficeAddinChangePolicyType { + '.tag': 'microsoft_office_addin_change_policy'; + } + + /** + * (team_policies) Enabled/disabled network control + */ + export interface EventTypeNetworkControlChangePolicy extends NetworkControlChangePolicyType { + '.tag': 'network_control_change_policy'; + } + + /** + * (team_policies) Changed whether Dropbox Paper, when enabled, is deployed + * to all members or to specific members + */ + export interface EventTypePaperChangeDeploymentPolicy extends PaperChangeDeploymentPolicyType { + '.tag': 'paper_change_deployment_policy'; + } + + /** + * (team_policies) Changed whether non-members can view Paper docs with link + * (deprecated, no longer logged) + */ + export interface EventTypePaperChangeMemberLinkPolicy extends PaperChangeMemberLinkPolicyType { + '.tag': 'paper_change_member_link_policy'; + } + + /** + * (team_policies) Changed whether members can share Paper docs outside + * team, and if docs are accessible only by team members or anyone by + * default + */ + export interface EventTypePaperChangeMemberPolicy extends PaperChangeMemberPolicyType { + '.tag': 'paper_change_member_policy'; + } + + /** + * (team_policies) Enabled/disabled Dropbox Paper for team + */ + export interface EventTypePaperChangePolicy extends PaperChangePolicyType { + '.tag': 'paper_change_policy'; + } + + /** + * (team_policies) Changed Paper Default Folder Policy setting for team + */ + export interface EventTypePaperDefaultFolderPolicyChanged extends PaperDefaultFolderPolicyChangedType { + '.tag': 'paper_default_folder_policy_changed'; + } + + /** + * (team_policies) Enabled/disabled Paper Desktop for team + */ + export interface EventTypePaperDesktopPolicyChanged extends PaperDesktopPolicyChangedType { + '.tag': 'paper_desktop_policy_changed'; + } + + /** + * (team_policies) Added users to Paper-enabled users list + */ + export interface EventTypePaperEnabledUsersGroupAddition extends PaperEnabledUsersGroupAdditionType { + '.tag': 'paper_enabled_users_group_addition'; + } + + /** + * (team_policies) Removed users from Paper-enabled users list + */ + export interface EventTypePaperEnabledUsersGroupRemoval extends PaperEnabledUsersGroupRemovalType { + '.tag': 'paper_enabled_users_group_removal'; + } + + /** + * (team_policies) Changed team password strength requirements + */ + export interface EventTypePasswordStrengthRequirementsChangePolicy extends PasswordStrengthRequirementsChangePolicyType { + '.tag': 'password_strength_requirements_change_policy'; + } + + /** + * (team_policies) Enabled/disabled ability of team members to permanently + * delete content + */ + export interface EventTypePermanentDeleteChangePolicy extends PermanentDeleteChangePolicyType { + '.tag': 'permanent_delete_change_policy'; + } + + /** + * (team_policies) Enabled/disabled reseller support + */ + export interface EventTypeResellerSupportChangePolicy extends ResellerSupportChangePolicyType { + '.tag': 'reseller_support_change_policy'; + } + + /** + * (team_policies) Changed Rewind policy for team + */ + export interface EventTypeRewindPolicyChanged extends RewindPolicyChangedType { + '.tag': 'rewind_policy_changed'; + } + + /** + * (team_policies) Changed send for signature policy for team + */ + export interface EventTypeSendForSignaturePolicyChanged extends SendForSignaturePolicyChangedType { + '.tag': 'send_for_signature_policy_changed'; + } + + /** + * (team_policies) Changed whether team members can join shared folders + * owned outside team + */ + export interface EventTypeSharingChangeFolderJoinPolicy extends SharingChangeFolderJoinPolicyType { + '.tag': 'sharing_change_folder_join_policy'; + } + + /** + * (team_policies) Changed the allow remove or change expiration policy for + * the links shared outside of the team + */ + export interface EventTypeSharingChangeLinkAllowChangeExpirationPolicy extends SharingChangeLinkAllowChangeExpirationPolicyType { + '.tag': 'sharing_change_link_allow_change_expiration_policy'; + } + + /** + * (team_policies) Changed the default expiration for the links shared + * outside of the team + */ + export interface EventTypeSharingChangeLinkDefaultExpirationPolicy extends SharingChangeLinkDefaultExpirationPolicyType { + '.tag': 'sharing_change_link_default_expiration_policy'; + } + + /** + * (team_policies) Changed the password requirement for the links shared + * outside of the team + */ + export interface EventTypeSharingChangeLinkEnforcePasswordPolicy extends SharingChangeLinkEnforcePasswordPolicyType { + '.tag': 'sharing_change_link_enforce_password_policy'; + } + + /** + * (team_policies) Changed whether members can share links outside team, and + * if links are accessible only by team members or anyone by default + */ + export interface EventTypeSharingChangeLinkPolicy extends SharingChangeLinkPolicyType { + '.tag': 'sharing_change_link_policy'; + } + + /** + * (team_policies) Changed whether members can share files/folders outside + * team + */ + export interface EventTypeSharingChangeMemberPolicy extends SharingChangeMemberPolicyType { + '.tag': 'sharing_change_member_policy'; + } + + /** + * (team_policies) Enabled/disabled downloading files from Dropbox Showcase + * for team + */ + export interface EventTypeShowcaseChangeDownloadPolicy extends ShowcaseChangeDownloadPolicyType { + '.tag': 'showcase_change_download_policy'; + } + + /** + * (team_policies) Enabled/disabled Dropbox Showcase for team + */ + export interface EventTypeShowcaseChangeEnabledPolicy extends ShowcaseChangeEnabledPolicyType { + '.tag': 'showcase_change_enabled_policy'; + } + + /** + * (team_policies) Enabled/disabled sharing Dropbox Showcase externally for + * team + */ + export interface EventTypeShowcaseChangeExternalSharingPolicy extends ShowcaseChangeExternalSharingPolicyType { + '.tag': 'showcase_change_external_sharing_policy'; + } + + /** + * (team_policies) Changed automatic Smart Sync setting for team + */ + export interface EventTypeSmarterSmartSyncPolicyChanged extends SmarterSmartSyncPolicyChangedType { + '.tag': 'smarter_smart_sync_policy_changed'; + } + + /** + * (team_policies) Changed default Smart Sync setting for team members + */ + export interface EventTypeSmartSyncChangePolicy extends SmartSyncChangePolicyType { + '.tag': 'smart_sync_change_policy'; + } + + /** + * (team_policies) Opted team into Smart Sync + */ + export interface EventTypeSmartSyncNotOptOut extends SmartSyncNotOptOutType { + '.tag': 'smart_sync_not_opt_out'; + } + + /** + * (team_policies) Opted team out of Smart Sync + */ + export interface EventTypeSmartSyncOptOut extends SmartSyncOptOutType { + '.tag': 'smart_sync_opt_out'; + } + + /** + * (team_policies) Changed single sign-on setting for team + */ + export interface EventTypeSsoChangePolicy extends SsoChangePolicyType { + '.tag': 'sso_change_policy'; + } + + /** + * (team_policies) Changed team branding policy for team + */ + export interface EventTypeTeamBrandingPolicyChanged extends TeamBrandingPolicyChangedType { + '.tag': 'team_branding_policy_changed'; + } + + /** + * (team_policies) Changed App Integrations setting for team + */ + export interface EventTypeTeamExtensionsPolicyChanged extends TeamExtensionsPolicyChangedType { + '.tag': 'team_extensions_policy_changed'; + } + + /** + * (team_policies) Enabled/disabled Team Selective Sync for team + */ + export interface EventTypeTeamSelectiveSyncPolicyChanged extends TeamSelectiveSyncPolicyChangedType { + '.tag': 'team_selective_sync_policy_changed'; + } + + /** + * (team_policies) Edited the approved list for sharing externally + */ + export interface EventTypeTeamSharingWhitelistSubjectsChanged extends TeamSharingWhitelistSubjectsChangedType { + '.tag': 'team_sharing_whitelist_subjects_changed'; + } + + /** + * (team_policies) Added members to two factor authentication exception list + */ + export interface EventTypeTfaAddException extends TfaAddExceptionType { + '.tag': 'tfa_add_exception'; + } + + /** + * (team_policies) Changed two-step verification setting for team + */ + export interface EventTypeTfaChangePolicy extends TfaChangePolicyType { + '.tag': 'tfa_change_policy'; + } + + /** + * (team_policies) Removed members from two factor authentication exception + * list + */ + export interface EventTypeTfaRemoveException extends TfaRemoveExceptionType { + '.tag': 'tfa_remove_exception'; + } + + /** + * (team_policies) Enabled/disabled option for members to link personal + * Dropbox account and team account to same computer + */ + export interface EventTypeTwoAccountChangePolicy extends TwoAccountChangePolicyType { + '.tag': 'two_account_change_policy'; + } + + /** + * (team_policies) Changed team policy for viewer info + */ + export interface EventTypeViewerInfoPolicyChanged extends ViewerInfoPolicyChangedType { + '.tag': 'viewer_info_policy_changed'; + } + + /** + * (team_policies) Changed watermarking policy for team + */ + export interface EventTypeWatermarkingPolicyChanged extends WatermarkingPolicyChangedType { + '.tag': 'watermarking_policy_changed'; + } + + /** + * (team_policies) Changed limit on active sessions per member + */ + export interface EventTypeWebSessionsChangeActiveSessionLimit extends WebSessionsChangeActiveSessionLimitType { + '.tag': 'web_sessions_change_active_session_limit'; + } + + /** + * (team_policies) Changed how long members can stay signed in to + * Dropbox.com + */ + export interface EventTypeWebSessionsChangeFixedLengthPolicy extends WebSessionsChangeFixedLengthPolicyType { + '.tag': 'web_sessions_change_fixed_length_policy'; + } + + /** + * (team_policies) Changed how long team members can be idle while signed in + * to Dropbox.com + */ + export interface EventTypeWebSessionsChangeIdleLengthPolicy extends WebSessionsChangeIdleLengthPolicyType { + '.tag': 'web_sessions_change_idle_length_policy'; + } + + /** + * (team_profile) Requested data residency migration for team data + */ + export interface EventTypeDataResidencyMigrationRequestSuccessful extends DataResidencyMigrationRequestSuccessfulType { + '.tag': 'data_residency_migration_request_successful'; + } + + /** + * (team_profile) Request for data residency migration for team data has + * failed + */ + export interface EventTypeDataResidencyMigrationRequestUnsuccessful extends DataResidencyMigrationRequestUnsuccessfulType { + '.tag': 'data_residency_migration_request_unsuccessful'; + } + + /** + * (team_profile) Merged another team into this team + */ + export interface EventTypeTeamMergeFrom extends TeamMergeFromType { + '.tag': 'team_merge_from'; + } + + /** + * (team_profile) Merged this team into another team + */ + export interface EventTypeTeamMergeTo extends TeamMergeToType { + '.tag': 'team_merge_to'; + } + + /** + * (team_profile) Added team background to display on shared link headers + */ + export interface EventTypeTeamProfileAddBackground extends TeamProfileAddBackgroundType { + '.tag': 'team_profile_add_background'; + } + + /** + * (team_profile) Added team logo to display on shared link headers + */ + export interface EventTypeTeamProfileAddLogo extends TeamProfileAddLogoType { + '.tag': 'team_profile_add_logo'; + } + + /** + * (team_profile) Changed team background displayed on shared link headers + */ + export interface EventTypeTeamProfileChangeBackground extends TeamProfileChangeBackgroundType { + '.tag': 'team_profile_change_background'; + } + + /** + * (team_profile) Changed default language for team + */ + export interface EventTypeTeamProfileChangeDefaultLanguage extends TeamProfileChangeDefaultLanguageType { + '.tag': 'team_profile_change_default_language'; + } + + /** + * (team_profile) Changed team logo displayed on shared link headers + */ + export interface EventTypeTeamProfileChangeLogo extends TeamProfileChangeLogoType { + '.tag': 'team_profile_change_logo'; + } + + /** + * (team_profile) Changed team name + */ + export interface EventTypeTeamProfileChangeName extends TeamProfileChangeNameType { + '.tag': 'team_profile_change_name'; + } + + /** + * (team_profile) Removed team background displayed on shared link headers + */ + export interface EventTypeTeamProfileRemoveBackground extends TeamProfileRemoveBackgroundType { + '.tag': 'team_profile_remove_background'; + } + + /** + * (team_profile) Removed team logo displayed on shared link headers + */ + export interface EventTypeTeamProfileRemoveLogo extends TeamProfileRemoveLogoType { + '.tag': 'team_profile_remove_logo'; + } + + /** + * (tfa) Added backup phone for two-step verification + */ + export interface EventTypeTfaAddBackupPhone extends TfaAddBackupPhoneType { + '.tag': 'tfa_add_backup_phone'; + } + + /** + * (tfa) Added security key for two-step verification + */ + export interface EventTypeTfaAddSecurityKey extends TfaAddSecurityKeyType { + '.tag': 'tfa_add_security_key'; + } + + /** + * (tfa) Changed backup phone for two-step verification + */ + export interface EventTypeTfaChangeBackupPhone extends TfaChangeBackupPhoneType { + '.tag': 'tfa_change_backup_phone'; + } + + /** + * (tfa) Enabled/disabled/changed two-step verification setting + */ + export interface EventTypeTfaChangeStatus extends TfaChangeStatusType { + '.tag': 'tfa_change_status'; + } + + /** + * (tfa) Removed backup phone for two-step verification + */ + export interface EventTypeTfaRemoveBackupPhone extends TfaRemoveBackupPhoneType { + '.tag': 'tfa_remove_backup_phone'; + } + + /** + * (tfa) Removed security key for two-step verification + */ + export interface EventTypeTfaRemoveSecurityKey extends TfaRemoveSecurityKeyType { + '.tag': 'tfa_remove_security_key'; + } + + /** + * (tfa) Reset two-step verification for team member + */ + export interface EventTypeTfaReset extends TfaResetType { + '.tag': 'tfa_reset'; + } + + /** + * (trusted_teams) Changed enterprise admin role + */ + export interface EventTypeChangedEnterpriseAdminRole extends ChangedEnterpriseAdminRoleType { + '.tag': 'changed_enterprise_admin_role'; + } + + /** + * (trusted_teams) Changed enterprise-connected team status + */ + export interface EventTypeChangedEnterpriseConnectedTeamStatus extends ChangedEnterpriseConnectedTeamStatusType { + '.tag': 'changed_enterprise_connected_team_status'; + } + + /** + * (trusted_teams) Ended enterprise admin session + */ + export interface EventTypeEndedEnterpriseAdminSession extends EndedEnterpriseAdminSessionType { + '.tag': 'ended_enterprise_admin_session'; + } + + /** + * (trusted_teams) Ended enterprise admin session (deprecated, replaced by + * 'Ended enterprise admin session') + */ + export interface EventTypeEndedEnterpriseAdminSessionDeprecated extends EndedEnterpriseAdminSessionDeprecatedType { + '.tag': 'ended_enterprise_admin_session_deprecated'; + } + + /** + * (trusted_teams) Changed who can update a setting + */ + export interface EventTypeEnterpriseSettingsLocking extends EnterpriseSettingsLockingType { + '.tag': 'enterprise_settings_locking'; + } + + /** + * (trusted_teams) Changed guest team admin status + */ + export interface EventTypeGuestAdminChangeStatus extends GuestAdminChangeStatusType { + '.tag': 'guest_admin_change_status'; + } + + /** + * (trusted_teams) Started enterprise admin session + */ + export interface EventTypeStartedEnterpriseAdminSession extends StartedEnterpriseAdminSessionType { + '.tag': 'started_enterprise_admin_session'; + } + + /** + * (trusted_teams) Accepted a team merge request + */ + export interface EventTypeTeamMergeRequestAccepted extends TeamMergeRequestAcceptedType { + '.tag': 'team_merge_request_accepted'; + } + + /** + * (trusted_teams) Accepted a team merge request (deprecated, replaced by + * 'Accepted a team merge request') + */ + export interface EventTypeTeamMergeRequestAcceptedShownToPrimaryTeam extends TeamMergeRequestAcceptedShownToPrimaryTeamType { + '.tag': 'team_merge_request_accepted_shown_to_primary_team'; + } + + /** + * (trusted_teams) Accepted a team merge request (deprecated, replaced by + * 'Accepted a team merge request') + */ + export interface EventTypeTeamMergeRequestAcceptedShownToSecondaryTeam extends TeamMergeRequestAcceptedShownToSecondaryTeamType { + '.tag': 'team_merge_request_accepted_shown_to_secondary_team'; + } + + /** + * (trusted_teams) Automatically canceled team merge request + */ + export interface EventTypeTeamMergeRequestAutoCanceled extends TeamMergeRequestAutoCanceledType { + '.tag': 'team_merge_request_auto_canceled'; + } + + /** + * (trusted_teams) Canceled a team merge request + */ + export interface EventTypeTeamMergeRequestCanceled extends TeamMergeRequestCanceledType { + '.tag': 'team_merge_request_canceled'; + } + + /** + * (trusted_teams) Canceled a team merge request (deprecated, replaced by + * 'Canceled a team merge request') + */ + export interface EventTypeTeamMergeRequestCanceledShownToPrimaryTeam extends TeamMergeRequestCanceledShownToPrimaryTeamType { + '.tag': 'team_merge_request_canceled_shown_to_primary_team'; + } + + /** + * (trusted_teams) Canceled a team merge request (deprecated, replaced by + * 'Canceled a team merge request') + */ + export interface EventTypeTeamMergeRequestCanceledShownToSecondaryTeam extends TeamMergeRequestCanceledShownToSecondaryTeamType { + '.tag': 'team_merge_request_canceled_shown_to_secondary_team'; + } + + /** + * (trusted_teams) Team merge request expired + */ + export interface EventTypeTeamMergeRequestExpired extends TeamMergeRequestExpiredType { + '.tag': 'team_merge_request_expired'; + } + + /** + * (trusted_teams) Team merge request expired (deprecated, replaced by 'Team + * merge request expired') + */ + export interface EventTypeTeamMergeRequestExpiredShownToPrimaryTeam extends TeamMergeRequestExpiredShownToPrimaryTeamType { + '.tag': 'team_merge_request_expired_shown_to_primary_team'; + } + + /** + * (trusted_teams) Team merge request expired (deprecated, replaced by 'Team + * merge request expired') + */ + export interface EventTypeTeamMergeRequestExpiredShownToSecondaryTeam extends TeamMergeRequestExpiredShownToSecondaryTeamType { + '.tag': 'team_merge_request_expired_shown_to_secondary_team'; + } + + /** + * (trusted_teams) Rejected a team merge request (deprecated, no longer + * logged) + */ + export interface EventTypeTeamMergeRequestRejectedShownToPrimaryTeam extends TeamMergeRequestRejectedShownToPrimaryTeamType { + '.tag': 'team_merge_request_rejected_shown_to_primary_team'; + } + + /** + * (trusted_teams) Rejected a team merge request (deprecated, no longer + * logged) + */ + export interface EventTypeTeamMergeRequestRejectedShownToSecondaryTeam extends TeamMergeRequestRejectedShownToSecondaryTeamType { + '.tag': 'team_merge_request_rejected_shown_to_secondary_team'; + } + + /** + * (trusted_teams) Sent a team merge request reminder + */ + export interface EventTypeTeamMergeRequestReminder extends TeamMergeRequestReminderType { + '.tag': 'team_merge_request_reminder'; + } + + /** + * (trusted_teams) Sent a team merge request reminder (deprecated, replaced + * by 'Sent a team merge request reminder') + */ + export interface EventTypeTeamMergeRequestReminderShownToPrimaryTeam extends TeamMergeRequestReminderShownToPrimaryTeamType { + '.tag': 'team_merge_request_reminder_shown_to_primary_team'; + } + + /** + * (trusted_teams) Sent a team merge request reminder (deprecated, replaced + * by 'Sent a team merge request reminder') + */ + export interface EventTypeTeamMergeRequestReminderShownToSecondaryTeam extends TeamMergeRequestReminderShownToSecondaryTeamType { + '.tag': 'team_merge_request_reminder_shown_to_secondary_team'; + } + + /** + * (trusted_teams) Canceled the team merge + */ + export interface EventTypeTeamMergeRequestRevoked extends TeamMergeRequestRevokedType { + '.tag': 'team_merge_request_revoked'; + } + + /** + * (trusted_teams) Requested to merge their Dropbox team into yours + */ + export interface EventTypeTeamMergeRequestSentShownToPrimaryTeam extends TeamMergeRequestSentShownToPrimaryTeamType { + '.tag': 'team_merge_request_sent_shown_to_primary_team'; + } + + /** + * (trusted_teams) Requested to merge your team into another Dropbox team + */ + export interface EventTypeTeamMergeRequestSentShownToSecondaryTeam extends TeamMergeRequestSentShownToSecondaryTeamType { + '.tag': 'team_merge_request_sent_shown_to_secondary_team'; + } + + export interface EventTypeOther { + '.tag': 'other'; + } + + /** + * The type of the event with description. + */ + export type EventType = EventTypeAdminAlertingAlertStateChanged | EventTypeAdminAlertingChangedAlertConfig | EventTypeAdminAlertingTriggeredAlert | EventTypeAppBlockedByPermissions | EventTypeAppLinkTeam | EventTypeAppLinkUser | EventTypeAppUnlinkTeam | EventTypeAppUnlinkUser | EventTypeIntegrationConnected | EventTypeIntegrationDisconnected | EventTypeFileAddComment | EventTypeFileChangeCommentSubscription | EventTypeFileDeleteComment | EventTypeFileEditComment | EventTypeFileLikeComment | EventTypeFileResolveComment | EventTypeFileUnlikeComment | EventTypeFileUnresolveComment | EventTypeGovernancePolicyAddFolders | EventTypeGovernancePolicyAddFolderFailed | EventTypeGovernancePolicyContentDisposed | EventTypeGovernancePolicyCreate | EventTypeGovernancePolicyDelete | EventTypeGovernancePolicyEditDetails | EventTypeGovernancePolicyEditDuration | EventTypeGovernancePolicyExportCreated | EventTypeGovernancePolicyExportRemoved | EventTypeGovernancePolicyRemoveFolders | EventTypeGovernancePolicyReportCreated | EventTypeGovernancePolicyZipPartDownloaded | EventTypeLegalHoldsActivateAHold | EventTypeLegalHoldsAddMembers | EventTypeLegalHoldsChangeHoldDetails | EventTypeLegalHoldsChangeHoldName | EventTypeLegalHoldsExportAHold | EventTypeLegalHoldsExportCancelled | EventTypeLegalHoldsExportDownloaded | EventTypeLegalHoldsExportRemoved | EventTypeLegalHoldsReleaseAHold | EventTypeLegalHoldsRemoveMembers | EventTypeLegalHoldsReportAHold | EventTypeDeviceChangeIpDesktop | EventTypeDeviceChangeIpMobile | EventTypeDeviceChangeIpWeb | EventTypeDeviceDeleteOnUnlinkFail | EventTypeDeviceDeleteOnUnlinkSuccess | EventTypeDeviceLinkFail | EventTypeDeviceLinkSuccess | EventTypeDeviceManagementDisabled | EventTypeDeviceManagementEnabled | EventTypeDeviceSyncBackupStatusChanged | EventTypeDeviceUnlink | EventTypeDropboxPasswordsExported | EventTypeDropboxPasswordsNewDeviceEnrolled | EventTypeEmmRefreshAuthToken | EventTypeExternalDriveBackupEligibilityStatusChecked | EventTypeExternalDriveBackupStatusChanged | EventTypeAccountCaptureChangeAvailability | EventTypeAccountCaptureMigrateAccount | EventTypeAccountCaptureNotificationEmailsSent | EventTypeAccountCaptureRelinquishAccount | EventTypeDisabledDomainInvites | EventTypeDomainInvitesApproveRequestToJoinTeam | EventTypeDomainInvitesDeclineRequestToJoinTeam | EventTypeDomainInvitesEmailExistingUsers | EventTypeDomainInvitesRequestToJoinTeam | EventTypeDomainInvitesSetInviteNewUserPrefToNo | EventTypeDomainInvitesSetInviteNewUserPrefToYes | EventTypeDomainVerificationAddDomainFail | EventTypeDomainVerificationAddDomainSuccess | EventTypeDomainVerificationRemoveDomain | EventTypeEnabledDomainInvites | EventTypeApplyNamingConvention | EventTypeCreateFolder | EventTypeFileAdd | EventTypeFileCopy | EventTypeFileDelete | EventTypeFileDownload | EventTypeFileEdit | EventTypeFileGetCopyReference | EventTypeFileLockingLockStatusChanged | EventTypeFileMove | EventTypeFilePermanentlyDelete | EventTypeFilePreview | EventTypeFileRename | EventTypeFileRestore | EventTypeFileRevert | EventTypeFileRollbackChanges | EventTypeFileSaveCopyReference | EventTypeFolderOverviewDescriptionChanged | EventTypeFolderOverviewItemPinned | EventTypeFolderOverviewItemUnpinned | EventTypeObjectLabelAdded | EventTypeObjectLabelRemoved | EventTypeObjectLabelUpdatedValue | EventTypeOrganizeFolderWithTidy | EventTypeRewindFolder | EventTypeUndoNamingConvention | EventTypeUndoOrganizeFolderWithTidy | EventTypeUserTagsAdded | EventTypeUserTagsRemoved | EventTypeEmailIngestReceiveFile | EventTypeFileRequestChange | EventTypeFileRequestClose | EventTypeFileRequestCreate | EventTypeFileRequestDelete | EventTypeFileRequestReceiveFile | EventTypeGroupAddExternalId | EventTypeGroupAddMember | EventTypeGroupChangeExternalId | EventTypeGroupChangeManagementType | EventTypeGroupChangeMemberRole | EventTypeGroupCreate | EventTypeGroupDelete | EventTypeGroupDescriptionUpdated | EventTypeGroupJoinPolicyUpdated | EventTypeGroupMoved | EventTypeGroupRemoveExternalId | EventTypeGroupRemoveMember | EventTypeGroupRename | EventTypeAccountLockOrUnlocked | EventTypeEmmError | EventTypeGuestAdminSignedInViaTrustedTeams | EventTypeGuestAdminSignedOutViaTrustedTeams | EventTypeLoginFail | EventTypeLoginSuccess | EventTypeLogout | EventTypeResellerSupportSessionEnd | EventTypeResellerSupportSessionStart | EventTypeSignInAsSessionEnd | EventTypeSignInAsSessionStart | EventTypeSsoError | EventTypeCreateTeamInviteLink | EventTypeDeleteTeamInviteLink | EventTypeMemberAddExternalId | EventTypeMemberAddName | EventTypeMemberChangeAdminRole | EventTypeMemberChangeEmail | EventTypeMemberChangeExternalId | EventTypeMemberChangeMembershipType | EventTypeMemberChangeName | EventTypeMemberChangeResellerRole | EventTypeMemberChangeStatus | EventTypeMemberDeleteManualContacts | EventTypeMemberDeleteProfilePhoto | EventTypeMemberPermanentlyDeleteAccountContents | EventTypeMemberRemoveExternalId | EventTypeMemberSetProfilePhoto | EventTypeMemberSpaceLimitsAddCustomQuota | EventTypeMemberSpaceLimitsChangeCustomQuota | EventTypeMemberSpaceLimitsChangeStatus | EventTypeMemberSpaceLimitsRemoveCustomQuota | EventTypeMemberSuggest | EventTypeMemberTransferAccountContents | EventTypePendingSecondaryEmailAdded | EventTypeSecondaryEmailDeleted | EventTypeSecondaryEmailVerified | EventTypeSecondaryMailsPolicyChanged | EventTypeBinderAddPage | EventTypeBinderAddSection | EventTypeBinderRemovePage | EventTypeBinderRemoveSection | EventTypeBinderRenamePage | EventTypeBinderRenameSection | EventTypeBinderReorderPage | EventTypeBinderReorderSection | EventTypePaperContentAddMember | EventTypePaperContentAddToFolder | EventTypePaperContentArchive | EventTypePaperContentCreate | EventTypePaperContentPermanentlyDelete | EventTypePaperContentRemoveFromFolder | EventTypePaperContentRemoveMember | EventTypePaperContentRename | EventTypePaperContentRestore | EventTypePaperDocAddComment | EventTypePaperDocChangeMemberRole | EventTypePaperDocChangeSharingPolicy | EventTypePaperDocChangeSubscription | EventTypePaperDocDeleted | EventTypePaperDocDeleteComment | EventTypePaperDocDownload | EventTypePaperDocEdit | EventTypePaperDocEditComment | EventTypePaperDocFollowed | EventTypePaperDocMention | EventTypePaperDocOwnershipChanged | EventTypePaperDocRequestAccess | EventTypePaperDocResolveComment | EventTypePaperDocRevert | EventTypePaperDocSlackShare | EventTypePaperDocTeamInvite | EventTypePaperDocTrashed | EventTypePaperDocUnresolveComment | EventTypePaperDocUntrashed | EventTypePaperDocView | EventTypePaperExternalViewAllow | EventTypePaperExternalViewDefaultTeam | EventTypePaperExternalViewForbid | EventTypePaperFolderChangeSubscription | EventTypePaperFolderDeleted | EventTypePaperFolderFollowed | EventTypePaperFolderTeamInvite | EventTypePaperPublishedLinkChangePermission | EventTypePaperPublishedLinkCreate | EventTypePaperPublishedLinkDisabled | EventTypePaperPublishedLinkView | EventTypePasswordChange | EventTypePasswordReset | EventTypePasswordResetAll | EventTypeClassificationCreateReport | EventTypeClassificationCreateReportFail | EventTypeEmmCreateExceptionsReport | EventTypeEmmCreateUsageReport | EventTypeExportMembersReport | EventTypeExportMembersReportFail | EventTypeExternalSharingCreateReport | EventTypeExternalSharingReportFailed | EventTypeNoExpirationLinkGenCreateReport | EventTypeNoExpirationLinkGenReportFailed | EventTypeNoPasswordLinkGenCreateReport | EventTypeNoPasswordLinkGenReportFailed | EventTypeNoPasswordLinkViewCreateReport | EventTypeNoPasswordLinkViewReportFailed | EventTypeOutdatedLinkViewCreateReport | EventTypeOutdatedLinkViewReportFailed | EventTypePaperAdminExportStart | EventTypeSmartSyncCreateAdminPrivilegeReport | EventTypeTeamActivityCreateReport | EventTypeTeamActivityCreateReportFail | EventTypeCollectionShare | EventTypeFileTransfersFileAdd | EventTypeFileTransfersTransferDelete | EventTypeFileTransfersTransferDownload | EventTypeFileTransfersTransferSend | EventTypeFileTransfersTransferView | EventTypeNoteAclInviteOnly | EventTypeNoteAclLink | EventTypeNoteAclTeamLink | EventTypeNoteShared | EventTypeNoteShareReceive | EventTypeOpenNoteShared | EventTypeSfAddGroup | EventTypeSfAllowNonMembersToViewSharedLinks | EventTypeSfExternalInviteWarn | EventTypeSfFbInvite | EventTypeSfFbInviteChangeRole | EventTypeSfFbUninvite | EventTypeSfInviteGroup | EventTypeSfTeamGrantAccess | EventTypeSfTeamInvite | EventTypeSfTeamInviteChangeRole | EventTypeSfTeamJoin | EventTypeSfTeamJoinFromOobLink | EventTypeSfTeamUninvite | EventTypeSharedContentAddInvitees | EventTypeSharedContentAddLinkExpiry | EventTypeSharedContentAddLinkPassword | EventTypeSharedContentAddMember | EventTypeSharedContentChangeDownloadsPolicy | EventTypeSharedContentChangeInviteeRole | EventTypeSharedContentChangeLinkAudience | EventTypeSharedContentChangeLinkExpiry | EventTypeSharedContentChangeLinkPassword | EventTypeSharedContentChangeMemberRole | EventTypeSharedContentChangeViewerInfoPolicy | EventTypeSharedContentClaimInvitation | EventTypeSharedContentCopy | EventTypeSharedContentDownload | EventTypeSharedContentRelinquishMembership | EventTypeSharedContentRemoveInvitees | EventTypeSharedContentRemoveLinkExpiry | EventTypeSharedContentRemoveLinkPassword | EventTypeSharedContentRemoveMember | EventTypeSharedContentRequestAccess | EventTypeSharedContentRestoreInvitees | EventTypeSharedContentRestoreMember | EventTypeSharedContentUnshare | EventTypeSharedContentView | EventTypeSharedFolderChangeLinkPolicy | EventTypeSharedFolderChangeMembersInheritancePolicy | EventTypeSharedFolderChangeMembersManagementPolicy | EventTypeSharedFolderChangeMembersPolicy | EventTypeSharedFolderCreate | EventTypeSharedFolderDeclineInvitation | EventTypeSharedFolderMount | EventTypeSharedFolderNest | EventTypeSharedFolderTransferOwnership | EventTypeSharedFolderUnmount | EventTypeSharedLinkAddExpiry | EventTypeSharedLinkChangeExpiry | EventTypeSharedLinkChangeVisibility | EventTypeSharedLinkCopy | EventTypeSharedLinkCreate | EventTypeSharedLinkDisable | EventTypeSharedLinkDownload | EventTypeSharedLinkRemoveExpiry | EventTypeSharedLinkSettingsAddExpiration | EventTypeSharedLinkSettingsAddPassword | EventTypeSharedLinkSettingsAllowDownloadDisabled | EventTypeSharedLinkSettingsAllowDownloadEnabled | EventTypeSharedLinkSettingsChangeAudience | EventTypeSharedLinkSettingsChangeExpiration | EventTypeSharedLinkSettingsChangePassword | EventTypeSharedLinkSettingsRemoveExpiration | EventTypeSharedLinkSettingsRemovePassword | EventTypeSharedLinkShare | EventTypeSharedLinkView | EventTypeSharedNoteOpened | EventTypeShmodelDisableDownloads | EventTypeShmodelEnableDownloads | EventTypeShmodelGroupShare | EventTypeShowcaseAccessGranted | EventTypeShowcaseAddMember | EventTypeShowcaseArchived | EventTypeShowcaseCreated | EventTypeShowcaseDeleteComment | EventTypeShowcaseEdited | EventTypeShowcaseEditComment | EventTypeShowcaseFileAdded | EventTypeShowcaseFileDownload | EventTypeShowcaseFileRemoved | EventTypeShowcaseFileView | EventTypeShowcasePermanentlyDeleted | EventTypeShowcasePostComment | EventTypeShowcaseRemoveMember | EventTypeShowcaseRenamed | EventTypeShowcaseRequestAccess | EventTypeShowcaseResolveComment | EventTypeShowcaseRestored | EventTypeShowcaseTrashed | EventTypeShowcaseTrashedDeprecated | EventTypeShowcaseUnresolveComment | EventTypeShowcaseUntrashed | EventTypeShowcaseUntrashedDeprecated | EventTypeShowcaseView | EventTypeSsoAddCert | EventTypeSsoAddLoginUrl | EventTypeSsoAddLogoutUrl | EventTypeSsoChangeCert | EventTypeSsoChangeLoginUrl | EventTypeSsoChangeLogoutUrl | EventTypeSsoChangeSamlIdentityMode | EventTypeSsoRemoveCert | EventTypeSsoRemoveLoginUrl | EventTypeSsoRemoveLogoutUrl | EventTypeTeamFolderChangeStatus | EventTypeTeamFolderCreate | EventTypeTeamFolderDowngrade | EventTypeTeamFolderPermanentlyDelete | EventTypeTeamFolderRename | EventTypeTeamSelectiveSyncSettingsChanged | EventTypeAccountCaptureChangePolicy | EventTypeAdminEmailRemindersChanged | EventTypeAllowDownloadDisabled | EventTypeAllowDownloadEnabled | EventTypeAppPermissionsChanged | EventTypeCameraUploadsPolicyChanged | EventTypeCaptureTranscriptPolicyChanged | EventTypeClassificationChangePolicy | EventTypeComputerBackupPolicyChanged | EventTypeContentAdministrationPolicyChanged | EventTypeDataPlacementRestrictionChangePolicy | EventTypeDataPlacementRestrictionSatisfyPolicy | EventTypeDeviceApprovalsAddException | EventTypeDeviceApprovalsChangeDesktopPolicy | EventTypeDeviceApprovalsChangeMobilePolicy | EventTypeDeviceApprovalsChangeOverageAction | EventTypeDeviceApprovalsChangeUnlinkAction | EventTypeDeviceApprovalsRemoveException | EventTypeDirectoryRestrictionsAddMembers | EventTypeDirectoryRestrictionsRemoveMembers | EventTypeDropboxPasswordsPolicyChanged | EventTypeEmailIngestPolicyChanged | EventTypeEmmAddException | EventTypeEmmChangePolicy | EventTypeEmmRemoveException | EventTypeExtendedVersionHistoryChangePolicy | EventTypeExternalDriveBackupPolicyChanged | EventTypeFileCommentsChangePolicy | EventTypeFileLockingPolicyChanged | EventTypeFileProviderMigrationPolicyChanged | EventTypeFileRequestsChangePolicy | EventTypeFileRequestsEmailsEnabled | EventTypeFileRequestsEmailsRestrictedToTeamOnly | EventTypeFileTransfersPolicyChanged | EventTypeFolderLinkRestrictionPolicyChanged | EventTypeGoogleSsoChangePolicy | EventTypeGroupUserManagementChangePolicy | EventTypeIntegrationPolicyChanged | EventTypeInviteAcceptanceEmailPolicyChanged | EventTypeMemberRequestsChangePolicy | EventTypeMemberSendInvitePolicyChanged | EventTypeMemberSpaceLimitsAddException | EventTypeMemberSpaceLimitsChangeCapsTypePolicy | EventTypeMemberSpaceLimitsChangePolicy | EventTypeMemberSpaceLimitsRemoveException | EventTypeMemberSuggestionsChangePolicy | EventTypeMicrosoftOfficeAddinChangePolicy | EventTypeNetworkControlChangePolicy | EventTypePaperChangeDeploymentPolicy | EventTypePaperChangeMemberLinkPolicy | EventTypePaperChangeMemberPolicy | EventTypePaperChangePolicy | EventTypePaperDefaultFolderPolicyChanged | EventTypePaperDesktopPolicyChanged | EventTypePaperEnabledUsersGroupAddition | EventTypePaperEnabledUsersGroupRemoval | EventTypePasswordStrengthRequirementsChangePolicy | EventTypePermanentDeleteChangePolicy | EventTypeResellerSupportChangePolicy | EventTypeRewindPolicyChanged | EventTypeSendForSignaturePolicyChanged | EventTypeSharingChangeFolderJoinPolicy | EventTypeSharingChangeLinkAllowChangeExpirationPolicy | EventTypeSharingChangeLinkDefaultExpirationPolicy | EventTypeSharingChangeLinkEnforcePasswordPolicy | EventTypeSharingChangeLinkPolicy | EventTypeSharingChangeMemberPolicy | EventTypeShowcaseChangeDownloadPolicy | EventTypeShowcaseChangeEnabledPolicy | EventTypeShowcaseChangeExternalSharingPolicy | EventTypeSmarterSmartSyncPolicyChanged | EventTypeSmartSyncChangePolicy | EventTypeSmartSyncNotOptOut | EventTypeSmartSyncOptOut | EventTypeSsoChangePolicy | EventTypeTeamBrandingPolicyChanged | EventTypeTeamExtensionsPolicyChanged | EventTypeTeamSelectiveSyncPolicyChanged | EventTypeTeamSharingWhitelistSubjectsChanged | EventTypeTfaAddException | EventTypeTfaChangePolicy | EventTypeTfaRemoveException | EventTypeTwoAccountChangePolicy | EventTypeViewerInfoPolicyChanged | EventTypeWatermarkingPolicyChanged | EventTypeWebSessionsChangeActiveSessionLimit | EventTypeWebSessionsChangeFixedLengthPolicy | EventTypeWebSessionsChangeIdleLengthPolicy | EventTypeDataResidencyMigrationRequestSuccessful | EventTypeDataResidencyMigrationRequestUnsuccessful | EventTypeTeamMergeFrom | EventTypeTeamMergeTo | EventTypeTeamProfileAddBackground | EventTypeTeamProfileAddLogo | EventTypeTeamProfileChangeBackground | EventTypeTeamProfileChangeDefaultLanguage | EventTypeTeamProfileChangeLogo | EventTypeTeamProfileChangeName | EventTypeTeamProfileRemoveBackground | EventTypeTeamProfileRemoveLogo | EventTypeTfaAddBackupPhone | EventTypeTfaAddSecurityKey | EventTypeTfaChangeBackupPhone | EventTypeTfaChangeStatus | EventTypeTfaRemoveBackupPhone | EventTypeTfaRemoveSecurityKey | EventTypeTfaReset | EventTypeChangedEnterpriseAdminRole | EventTypeChangedEnterpriseConnectedTeamStatus | EventTypeEndedEnterpriseAdminSession | EventTypeEndedEnterpriseAdminSessionDeprecated | EventTypeEnterpriseSettingsLocking | EventTypeGuestAdminChangeStatus | EventTypeStartedEnterpriseAdminSession | EventTypeTeamMergeRequestAccepted | EventTypeTeamMergeRequestAcceptedShownToPrimaryTeam | EventTypeTeamMergeRequestAcceptedShownToSecondaryTeam | EventTypeTeamMergeRequestAutoCanceled | EventTypeTeamMergeRequestCanceled | EventTypeTeamMergeRequestCanceledShownToPrimaryTeam | EventTypeTeamMergeRequestCanceledShownToSecondaryTeam | EventTypeTeamMergeRequestExpired | EventTypeTeamMergeRequestExpiredShownToPrimaryTeam | EventTypeTeamMergeRequestExpiredShownToSecondaryTeam | EventTypeTeamMergeRequestRejectedShownToPrimaryTeam | EventTypeTeamMergeRequestRejectedShownToSecondaryTeam | EventTypeTeamMergeRequestReminder | EventTypeTeamMergeRequestReminderShownToPrimaryTeam | EventTypeTeamMergeRequestReminderShownToSecondaryTeam | EventTypeTeamMergeRequestRevoked | EventTypeTeamMergeRequestSentShownToPrimaryTeam | EventTypeTeamMergeRequestSentShownToSecondaryTeam | EventTypeOther; + + /** + * (admin_alerting) Changed an alert state + */ + export interface EventTypeArgAdminAlertingAlertStateChanged { + '.tag': 'admin_alerting_alert_state_changed'; + } + + /** + * (admin_alerting) Changed an alert setting + */ + export interface EventTypeArgAdminAlertingChangedAlertConfig { + '.tag': 'admin_alerting_changed_alert_config'; + } + + /** + * (admin_alerting) Triggered security alert + */ + export interface EventTypeArgAdminAlertingTriggeredAlert { + '.tag': 'admin_alerting_triggered_alert'; + } + + /** + * (apps) Failed to connect app for member + */ + export interface EventTypeArgAppBlockedByPermissions { + '.tag': 'app_blocked_by_permissions'; + } + + /** + * (apps) Linked app for team + */ + export interface EventTypeArgAppLinkTeam { + '.tag': 'app_link_team'; + } + + /** + * (apps) Linked app for member + */ + export interface EventTypeArgAppLinkUser { + '.tag': 'app_link_user'; + } + + /** + * (apps) Unlinked app for team + */ + export interface EventTypeArgAppUnlinkTeam { + '.tag': 'app_unlink_team'; + } + + /** + * (apps) Unlinked app for member + */ + export interface EventTypeArgAppUnlinkUser { + '.tag': 'app_unlink_user'; + } + + /** + * (apps) Connected integration for member + */ + export interface EventTypeArgIntegrationConnected { + '.tag': 'integration_connected'; + } + + /** + * (apps) Disconnected integration for member + */ + export interface EventTypeArgIntegrationDisconnected { + '.tag': 'integration_disconnected'; + } + + /** + * (comments) Added file comment + */ + export interface EventTypeArgFileAddComment { + '.tag': 'file_add_comment'; + } + + /** + * (comments) Subscribed to or unsubscribed from comment notifications for + * file + */ + export interface EventTypeArgFileChangeCommentSubscription { + '.tag': 'file_change_comment_subscription'; + } + + /** + * (comments) Deleted file comment + */ + export interface EventTypeArgFileDeleteComment { + '.tag': 'file_delete_comment'; + } + + /** + * (comments) Edited file comment + */ + export interface EventTypeArgFileEditComment { + '.tag': 'file_edit_comment'; + } + + /** + * (comments) Liked file comment (deprecated, no longer logged) + */ + export interface EventTypeArgFileLikeComment { + '.tag': 'file_like_comment'; + } + + /** + * (comments) Resolved file comment + */ + export interface EventTypeArgFileResolveComment { + '.tag': 'file_resolve_comment'; + } + + /** + * (comments) Unliked file comment (deprecated, no longer logged) + */ + export interface EventTypeArgFileUnlikeComment { + '.tag': 'file_unlike_comment'; + } + + /** + * (comments) Unresolved file comment + */ + export interface EventTypeArgFileUnresolveComment { + '.tag': 'file_unresolve_comment'; + } + + /** + * (data_governance) Added folders to policy + */ + export interface EventTypeArgGovernancePolicyAddFolders { + '.tag': 'governance_policy_add_folders'; + } + + /** + * (data_governance) Couldn't add a folder to a policy + */ + export interface EventTypeArgGovernancePolicyAddFolderFailed { + '.tag': 'governance_policy_add_folder_failed'; + } + + /** + * (data_governance) Content disposed + */ + export interface EventTypeArgGovernancePolicyContentDisposed { + '.tag': 'governance_policy_content_disposed'; + } + + /** + * (data_governance) Activated a new policy + */ + export interface EventTypeArgGovernancePolicyCreate { + '.tag': 'governance_policy_create'; + } + + /** + * (data_governance) Deleted a policy + */ + export interface EventTypeArgGovernancePolicyDelete { + '.tag': 'governance_policy_delete'; + } + + /** + * (data_governance) Edited policy + */ + export interface EventTypeArgGovernancePolicyEditDetails { + '.tag': 'governance_policy_edit_details'; + } + + /** + * (data_governance) Changed policy duration + */ + export interface EventTypeArgGovernancePolicyEditDuration { + '.tag': 'governance_policy_edit_duration'; + } + + /** + * (data_governance) Created a policy download + */ + export interface EventTypeArgGovernancePolicyExportCreated { + '.tag': 'governance_policy_export_created'; + } + + /** + * (data_governance) Removed a policy download + */ + export interface EventTypeArgGovernancePolicyExportRemoved { + '.tag': 'governance_policy_export_removed'; + } + + /** + * (data_governance) Removed folders from policy + */ + export interface EventTypeArgGovernancePolicyRemoveFolders { + '.tag': 'governance_policy_remove_folders'; + } + + /** + * (data_governance) Created a summary report for a policy + */ + export interface EventTypeArgGovernancePolicyReportCreated { + '.tag': 'governance_policy_report_created'; + } + + /** + * (data_governance) Downloaded content from a policy + */ + export interface EventTypeArgGovernancePolicyZipPartDownloaded { + '.tag': 'governance_policy_zip_part_downloaded'; + } + + /** + * (data_governance) Activated a hold + */ + export interface EventTypeArgLegalHoldsActivateAHold { + '.tag': 'legal_holds_activate_a_hold'; + } + + /** + * (data_governance) Added members to a hold + */ + export interface EventTypeArgLegalHoldsAddMembers { + '.tag': 'legal_holds_add_members'; + } + + /** + * (data_governance) Edited details for a hold + */ + export interface EventTypeArgLegalHoldsChangeHoldDetails { + '.tag': 'legal_holds_change_hold_details'; + } + + /** + * (data_governance) Renamed a hold + */ + export interface EventTypeArgLegalHoldsChangeHoldName { + '.tag': 'legal_holds_change_hold_name'; + } + + /** + * (data_governance) Exported hold + */ + export interface EventTypeArgLegalHoldsExportAHold { + '.tag': 'legal_holds_export_a_hold'; + } + + /** + * (data_governance) Canceled export for a hold + */ + export interface EventTypeArgLegalHoldsExportCancelled { + '.tag': 'legal_holds_export_cancelled'; + } + + /** + * (data_governance) Downloaded export for a hold + */ + export interface EventTypeArgLegalHoldsExportDownloaded { + '.tag': 'legal_holds_export_downloaded'; + } + + /** + * (data_governance) Removed export for a hold + */ + export interface EventTypeArgLegalHoldsExportRemoved { + '.tag': 'legal_holds_export_removed'; + } + + /** + * (data_governance) Released a hold + */ + export interface EventTypeArgLegalHoldsReleaseAHold { + '.tag': 'legal_holds_release_a_hold'; + } + + /** + * (data_governance) Removed members from a hold + */ + export interface EventTypeArgLegalHoldsRemoveMembers { + '.tag': 'legal_holds_remove_members'; + } + + /** + * (data_governance) Created a summary report for a hold + */ + export interface EventTypeArgLegalHoldsReportAHold { + '.tag': 'legal_holds_report_a_hold'; + } + + /** + * (devices) Changed IP address associated with active desktop session + */ + export interface EventTypeArgDeviceChangeIpDesktop { + '.tag': 'device_change_ip_desktop'; + } + + /** + * (devices) Changed IP address associated with active mobile session + */ + export interface EventTypeArgDeviceChangeIpMobile { + '.tag': 'device_change_ip_mobile'; + } + + /** + * (devices) Changed IP address associated with active web session + */ + export interface EventTypeArgDeviceChangeIpWeb { + '.tag': 'device_change_ip_web'; + } + + /** + * (devices) Failed to delete all files from unlinked device + */ + export interface EventTypeArgDeviceDeleteOnUnlinkFail { + '.tag': 'device_delete_on_unlink_fail'; + } + + /** + * (devices) Deleted all files from unlinked device + */ + export interface EventTypeArgDeviceDeleteOnUnlinkSuccess { + '.tag': 'device_delete_on_unlink_success'; + } + + /** + * (devices) Failed to link device + */ + export interface EventTypeArgDeviceLinkFail { + '.tag': 'device_link_fail'; + } + + /** + * (devices) Linked device + */ + export interface EventTypeArgDeviceLinkSuccess { + '.tag': 'device_link_success'; + } + + /** + * (devices) Disabled device management (deprecated, no longer logged) + */ + export interface EventTypeArgDeviceManagementDisabled { + '.tag': 'device_management_disabled'; + } + + /** + * (devices) Enabled device management (deprecated, no longer logged) + */ + export interface EventTypeArgDeviceManagementEnabled { + '.tag': 'device_management_enabled'; + } + + /** + * (devices) Enabled/disabled backup for computer + */ + export interface EventTypeArgDeviceSyncBackupStatusChanged { + '.tag': 'device_sync_backup_status_changed'; + } + + /** + * (devices) Disconnected device + */ + export interface EventTypeArgDeviceUnlink { + '.tag': 'device_unlink'; + } + + /** + * (devices) Exported passwords + */ + export interface EventTypeArgDropboxPasswordsExported { + '.tag': 'dropbox_passwords_exported'; + } + + /** + * (devices) Enrolled new Dropbox Passwords device + */ + export interface EventTypeArgDropboxPasswordsNewDeviceEnrolled { + '.tag': 'dropbox_passwords_new_device_enrolled'; + } + + /** + * (devices) Refreshed auth token used for setting up EMM + */ + export interface EventTypeArgEmmRefreshAuthToken { + '.tag': 'emm_refresh_auth_token'; + } + + /** + * (devices) Checked external drive backup eligibility status + */ + export interface EventTypeArgExternalDriveBackupEligibilityStatusChecked { + '.tag': 'external_drive_backup_eligibility_status_checked'; + } + + /** + * (devices) Modified external drive backup + */ + export interface EventTypeArgExternalDriveBackupStatusChanged { + '.tag': 'external_drive_backup_status_changed'; + } + + /** + * (domains) Granted/revoked option to enable account capture on team + * domains + */ + export interface EventTypeArgAccountCaptureChangeAvailability { + '.tag': 'account_capture_change_availability'; + } + + /** + * (domains) Account-captured user migrated account to team + */ + export interface EventTypeArgAccountCaptureMigrateAccount { + '.tag': 'account_capture_migrate_account'; + } + + /** + * (domains) Sent account capture email to all unmanaged members + */ + export interface EventTypeArgAccountCaptureNotificationEmailsSent { + '.tag': 'account_capture_notification_emails_sent'; + } + + /** + * (domains) Account-captured user changed account email to personal email + */ + export interface EventTypeArgAccountCaptureRelinquishAccount { + '.tag': 'account_capture_relinquish_account'; + } + + /** + * (domains) Disabled domain invites (deprecated, no longer logged) + */ + export interface EventTypeArgDisabledDomainInvites { + '.tag': 'disabled_domain_invites'; + } + + /** + * (domains) Approved user's request to join team + */ + export interface EventTypeArgDomainInvitesApproveRequestToJoinTeam { + '.tag': 'domain_invites_approve_request_to_join_team'; + } + + /** + * (domains) Declined user's request to join team + */ + export interface EventTypeArgDomainInvitesDeclineRequestToJoinTeam { + '.tag': 'domain_invites_decline_request_to_join_team'; + } + + /** + * (domains) Sent domain invites to existing domain accounts (deprecated, no + * longer logged) + */ + export interface EventTypeArgDomainInvitesEmailExistingUsers { + '.tag': 'domain_invites_email_existing_users'; + } + + /** + * (domains) Requested to join team + */ + export interface EventTypeArgDomainInvitesRequestToJoinTeam { + '.tag': 'domain_invites_request_to_join_team'; + } + + /** + * (domains) Disabled "Automatically invite new users" (deprecated, no + * longer logged) + */ + export interface EventTypeArgDomainInvitesSetInviteNewUserPrefToNo { + '.tag': 'domain_invites_set_invite_new_user_pref_to_no'; + } + + /** + * (domains) Enabled "Automatically invite new users" (deprecated, no longer + * logged) + */ + export interface EventTypeArgDomainInvitesSetInviteNewUserPrefToYes { + '.tag': 'domain_invites_set_invite_new_user_pref_to_yes'; + } + + /** + * (domains) Failed to verify team domain + */ + export interface EventTypeArgDomainVerificationAddDomainFail { + '.tag': 'domain_verification_add_domain_fail'; + } + + /** + * (domains) Verified team domain + */ + export interface EventTypeArgDomainVerificationAddDomainSuccess { + '.tag': 'domain_verification_add_domain_success'; + } + + /** + * (domains) Removed domain from list of verified team domains + */ + export interface EventTypeArgDomainVerificationRemoveDomain { + '.tag': 'domain_verification_remove_domain'; + } + + /** + * (domains) Enabled domain invites (deprecated, no longer logged) + */ + export interface EventTypeArgEnabledDomainInvites { + '.tag': 'enabled_domain_invites'; + } + + /** + * (file_operations) Applied naming convention + */ + export interface EventTypeArgApplyNamingConvention { + '.tag': 'apply_naming_convention'; + } + + /** + * (file_operations) Created folders (deprecated, no longer logged) + */ + export interface EventTypeArgCreateFolder { + '.tag': 'create_folder'; + } + + /** + * (file_operations) Added files and/or folders + */ + export interface EventTypeArgFileAdd { + '.tag': 'file_add'; + } + + /** + * (file_operations) Copied files and/or folders + */ + export interface EventTypeArgFileCopy { + '.tag': 'file_copy'; + } + + /** + * (file_operations) Deleted files and/or folders + */ + export interface EventTypeArgFileDelete { + '.tag': 'file_delete'; + } + + /** + * (file_operations) Downloaded files and/or folders + */ + export interface EventTypeArgFileDownload { + '.tag': 'file_download'; + } + + /** + * (file_operations) Edited files + */ + export interface EventTypeArgFileEdit { + '.tag': 'file_edit'; + } + + /** + * (file_operations) Created copy reference to file/folder + */ + export interface EventTypeArgFileGetCopyReference { + '.tag': 'file_get_copy_reference'; + } + + /** + * (file_operations) Locked/unlocked editing for a file + */ + export interface EventTypeArgFileLockingLockStatusChanged { + '.tag': 'file_locking_lock_status_changed'; + } + + /** + * (file_operations) Moved files and/or folders + */ + export interface EventTypeArgFileMove { + '.tag': 'file_move'; + } + + /** + * (file_operations) Permanently deleted files and/or folders + */ + export interface EventTypeArgFilePermanentlyDelete { + '.tag': 'file_permanently_delete'; + } + + /** + * (file_operations) Previewed files and/or folders + */ + export interface EventTypeArgFilePreview { + '.tag': 'file_preview'; + } + + /** + * (file_operations) Renamed files and/or folders + */ + export interface EventTypeArgFileRename { + '.tag': 'file_rename'; + } + + /** + * (file_operations) Restored deleted files and/or folders + */ + export interface EventTypeArgFileRestore { + '.tag': 'file_restore'; + } + + /** + * (file_operations) Reverted files to previous version + */ + export interface EventTypeArgFileRevert { + '.tag': 'file_revert'; + } + + /** + * (file_operations) Rolled back file actions + */ + export interface EventTypeArgFileRollbackChanges { + '.tag': 'file_rollback_changes'; + } + + /** + * (file_operations) Saved file/folder using copy reference + */ + export interface EventTypeArgFileSaveCopyReference { + '.tag': 'file_save_copy_reference'; + } + + /** + * (file_operations) Updated folder overview + */ + export interface EventTypeArgFolderOverviewDescriptionChanged { + '.tag': 'folder_overview_description_changed'; + } + + /** + * (file_operations) Pinned item to folder overview + */ + export interface EventTypeArgFolderOverviewItemPinned { + '.tag': 'folder_overview_item_pinned'; + } + + /** + * (file_operations) Unpinned item from folder overview + */ + export interface EventTypeArgFolderOverviewItemUnpinned { + '.tag': 'folder_overview_item_unpinned'; + } + + /** + * (file_operations) Added a label + */ + export interface EventTypeArgObjectLabelAdded { + '.tag': 'object_label_added'; + } + + /** + * (file_operations) Removed a label + */ + export interface EventTypeArgObjectLabelRemoved { + '.tag': 'object_label_removed'; + } + + /** + * (file_operations) Updated a label's value + */ + export interface EventTypeArgObjectLabelUpdatedValue { + '.tag': 'object_label_updated_value'; + } + + /** + * (file_operations) Organized a folder with multi-file organize + */ + export interface EventTypeArgOrganizeFolderWithTidy { + '.tag': 'organize_folder_with_tidy'; + } + + /** + * (file_operations) Rewound a folder + */ + export interface EventTypeArgRewindFolder { + '.tag': 'rewind_folder'; + } + + /** + * (file_operations) Reverted naming convention + */ + export interface EventTypeArgUndoNamingConvention { + '.tag': 'undo_naming_convention'; + } + + /** + * (file_operations) Removed multi-file organize + */ + export interface EventTypeArgUndoOrganizeFolderWithTidy { + '.tag': 'undo_organize_folder_with_tidy'; + } + + /** + * (file_operations) Tagged a file + */ + export interface EventTypeArgUserTagsAdded { + '.tag': 'user_tags_added'; + } + + /** + * (file_operations) Removed tags + */ + export interface EventTypeArgUserTagsRemoved { + '.tag': 'user_tags_removed'; + } + + /** + * (file_requests) Received files via Email to Dropbox + */ + export interface EventTypeArgEmailIngestReceiveFile { + '.tag': 'email_ingest_receive_file'; + } + + /** + * (file_requests) Changed file request + */ + export interface EventTypeArgFileRequestChange { + '.tag': 'file_request_change'; + } + + /** + * (file_requests) Closed file request + */ + export interface EventTypeArgFileRequestClose { + '.tag': 'file_request_close'; + } + + /** + * (file_requests) Created file request + */ + export interface EventTypeArgFileRequestCreate { + '.tag': 'file_request_create'; + } + + /** + * (file_requests) Delete file request + */ + export interface EventTypeArgFileRequestDelete { + '.tag': 'file_request_delete'; + } + + /** + * (file_requests) Received files for file request + */ + export interface EventTypeArgFileRequestReceiveFile { + '.tag': 'file_request_receive_file'; + } + + /** + * (groups) Added external ID for group + */ + export interface EventTypeArgGroupAddExternalId { + '.tag': 'group_add_external_id'; + } + + /** + * (groups) Added team members to group + */ + export interface EventTypeArgGroupAddMember { + '.tag': 'group_add_member'; + } + + /** + * (groups) Changed external ID for group + */ + export interface EventTypeArgGroupChangeExternalId { + '.tag': 'group_change_external_id'; + } + + /** + * (groups) Changed group management type + */ + export interface EventTypeArgGroupChangeManagementType { + '.tag': 'group_change_management_type'; + } + + /** + * (groups) Changed manager permissions of group member + */ + export interface EventTypeArgGroupChangeMemberRole { + '.tag': 'group_change_member_role'; + } + + /** + * (groups) Created group + */ + export interface EventTypeArgGroupCreate { + '.tag': 'group_create'; + } + + /** + * (groups) Deleted group + */ + export interface EventTypeArgGroupDelete { + '.tag': 'group_delete'; + } + + /** + * (groups) Updated group (deprecated, no longer logged) + */ + export interface EventTypeArgGroupDescriptionUpdated { + '.tag': 'group_description_updated'; + } + + /** + * (groups) Updated group join policy (deprecated, no longer logged) + */ + export interface EventTypeArgGroupJoinPolicyUpdated { + '.tag': 'group_join_policy_updated'; + } + + /** + * (groups) Moved group (deprecated, no longer logged) + */ + export interface EventTypeArgGroupMoved { + '.tag': 'group_moved'; + } + + /** + * (groups) Removed external ID for group + */ + export interface EventTypeArgGroupRemoveExternalId { + '.tag': 'group_remove_external_id'; + } + + /** + * (groups) Removed team members from group + */ + export interface EventTypeArgGroupRemoveMember { + '.tag': 'group_remove_member'; + } + + /** + * (groups) Renamed group + */ + export interface EventTypeArgGroupRename { + '.tag': 'group_rename'; + } + + /** + * (logins) Unlocked/locked account after failed sign in attempts + */ + export interface EventTypeArgAccountLockOrUnlocked { + '.tag': 'account_lock_or_unlocked'; + } + + /** + * (logins) Failed to sign in via EMM (deprecated, replaced by 'Failed to + * sign in') + */ + export interface EventTypeArgEmmError { + '.tag': 'emm_error'; + } + + /** + * (logins) Started trusted team admin session + */ + export interface EventTypeArgGuestAdminSignedInViaTrustedTeams { + '.tag': 'guest_admin_signed_in_via_trusted_teams'; + } + + /** + * (logins) Ended trusted team admin session + */ + export interface EventTypeArgGuestAdminSignedOutViaTrustedTeams { + '.tag': 'guest_admin_signed_out_via_trusted_teams'; + } + + /** + * (logins) Failed to sign in + */ + export interface EventTypeArgLoginFail { + '.tag': 'login_fail'; + } + + /** + * (logins) Signed in + */ + export interface EventTypeArgLoginSuccess { + '.tag': 'login_success'; + } + + /** + * (logins) Signed out + */ + export interface EventTypeArgLogout { + '.tag': 'logout'; + } + + /** + * (logins) Ended reseller support session + */ + export interface EventTypeArgResellerSupportSessionEnd { + '.tag': 'reseller_support_session_end'; + } + + /** + * (logins) Started reseller support session + */ + export interface EventTypeArgResellerSupportSessionStart { + '.tag': 'reseller_support_session_start'; + } + + /** + * (logins) Ended admin sign-in-as session + */ + export interface EventTypeArgSignInAsSessionEnd { + '.tag': 'sign_in_as_session_end'; + } + + /** + * (logins) Started admin sign-in-as session + */ + export interface EventTypeArgSignInAsSessionStart { + '.tag': 'sign_in_as_session_start'; + } + + /** + * (logins) Failed to sign in via SSO (deprecated, replaced by 'Failed to + * sign in') + */ + export interface EventTypeArgSsoError { + '.tag': 'sso_error'; + } + + /** + * (members) Created team invite link + */ + export interface EventTypeArgCreateTeamInviteLink { + '.tag': 'create_team_invite_link'; + } + + /** + * (members) Deleted team invite link + */ + export interface EventTypeArgDeleteTeamInviteLink { + '.tag': 'delete_team_invite_link'; + } + + /** + * (members) Added an external ID for team member + */ + export interface EventTypeArgMemberAddExternalId { + '.tag': 'member_add_external_id'; + } + + /** + * (members) Added team member name + */ + export interface EventTypeArgMemberAddName { + '.tag': 'member_add_name'; + } + + /** + * (members) Changed team member admin role + */ + export interface EventTypeArgMemberChangeAdminRole { + '.tag': 'member_change_admin_role'; + } + + /** + * (members) Changed team member email + */ + export interface EventTypeArgMemberChangeEmail { + '.tag': 'member_change_email'; + } + + /** + * (members) Changed the external ID for team member + */ + export interface EventTypeArgMemberChangeExternalId { + '.tag': 'member_change_external_id'; + } + + /** + * (members) Changed membership type (limited/full) of member (deprecated, + * no longer logged) + */ + export interface EventTypeArgMemberChangeMembershipType { + '.tag': 'member_change_membership_type'; + } + + /** + * (members) Changed team member name + */ + export interface EventTypeArgMemberChangeName { + '.tag': 'member_change_name'; + } + + /** + * (members) Changed team member reseller role + */ + export interface EventTypeArgMemberChangeResellerRole { + '.tag': 'member_change_reseller_role'; + } + + /** + * (members) Changed member status (invited, joined, suspended, etc.) + */ + export interface EventTypeArgMemberChangeStatus { + '.tag': 'member_change_status'; + } + + /** + * (members) Cleared manually added contacts + */ + export interface EventTypeArgMemberDeleteManualContacts { + '.tag': 'member_delete_manual_contacts'; + } + + /** + * (members) Deleted team member profile photo + */ + export interface EventTypeArgMemberDeleteProfilePhoto { + '.tag': 'member_delete_profile_photo'; + } + + /** + * (members) Permanently deleted contents of deleted team member account + */ + export interface EventTypeArgMemberPermanentlyDeleteAccountContents { + '.tag': 'member_permanently_delete_account_contents'; + } + + /** + * (members) Removed the external ID for team member + */ + export interface EventTypeArgMemberRemoveExternalId { + '.tag': 'member_remove_external_id'; + } + + /** + * (members) Set team member profile photo + */ + export interface EventTypeArgMemberSetProfilePhoto { + '.tag': 'member_set_profile_photo'; + } + + /** + * (members) Set custom member space limit + */ + export interface EventTypeArgMemberSpaceLimitsAddCustomQuota { + '.tag': 'member_space_limits_add_custom_quota'; + } + + /** + * (members) Changed custom member space limit + */ + export interface EventTypeArgMemberSpaceLimitsChangeCustomQuota { + '.tag': 'member_space_limits_change_custom_quota'; + } + + /** + * (members) Changed space limit status + */ + export interface EventTypeArgMemberSpaceLimitsChangeStatus { + '.tag': 'member_space_limits_change_status'; + } + + /** + * (members) Removed custom member space limit + */ + export interface EventTypeArgMemberSpaceLimitsRemoveCustomQuota { + '.tag': 'member_space_limits_remove_custom_quota'; + } + + /** + * (members) Suggested person to add to team + */ + export interface EventTypeArgMemberSuggest { + '.tag': 'member_suggest'; + } + + /** + * (members) Transferred contents of deleted member account to another + * member + */ + export interface EventTypeArgMemberTransferAccountContents { + '.tag': 'member_transfer_account_contents'; + } + + /** + * (members) Added pending secondary email + */ + export interface EventTypeArgPendingSecondaryEmailAdded { + '.tag': 'pending_secondary_email_added'; + } + + /** + * (members) Deleted secondary email + */ + export interface EventTypeArgSecondaryEmailDeleted { + '.tag': 'secondary_email_deleted'; + } + + /** + * (members) Verified secondary email + */ + export interface EventTypeArgSecondaryEmailVerified { + '.tag': 'secondary_email_verified'; + } + + /** + * (members) Secondary mails policy changed + */ + export interface EventTypeArgSecondaryMailsPolicyChanged { + '.tag': 'secondary_mails_policy_changed'; + } + + /** + * (paper) Added Binder page (deprecated, replaced by 'Edited files') + */ + export interface EventTypeArgBinderAddPage { + '.tag': 'binder_add_page'; + } + + /** + * (paper) Added Binder section (deprecated, replaced by 'Edited files') + */ + export interface EventTypeArgBinderAddSection { + '.tag': 'binder_add_section'; + } + + /** + * (paper) Removed Binder page (deprecated, replaced by 'Edited files') + */ + export interface EventTypeArgBinderRemovePage { + '.tag': 'binder_remove_page'; + } + + /** + * (paper) Removed Binder section (deprecated, replaced by 'Edited files') + */ + export interface EventTypeArgBinderRemoveSection { + '.tag': 'binder_remove_section'; + } + + /** + * (paper) Renamed Binder page (deprecated, replaced by 'Edited files') + */ + export interface EventTypeArgBinderRenamePage { + '.tag': 'binder_rename_page'; + } + + /** + * (paper) Renamed Binder section (deprecated, replaced by 'Edited files') + */ + export interface EventTypeArgBinderRenameSection { + '.tag': 'binder_rename_section'; + } + + /** + * (paper) Reordered Binder page (deprecated, replaced by 'Edited files') + */ + export interface EventTypeArgBinderReorderPage { + '.tag': 'binder_reorder_page'; + } + + /** + * (paper) Reordered Binder section (deprecated, replaced by 'Edited files') + */ + export interface EventTypeArgBinderReorderSection { + '.tag': 'binder_reorder_section'; + } + + /** + * (paper) Added users and/or groups to Paper doc/folder + */ + export interface EventTypeArgPaperContentAddMember { + '.tag': 'paper_content_add_member'; + } + + /** + * (paper) Added Paper doc/folder to folder + */ + export interface EventTypeArgPaperContentAddToFolder { + '.tag': 'paper_content_add_to_folder'; + } + + /** + * (paper) Archived Paper doc/folder + */ + export interface EventTypeArgPaperContentArchive { + '.tag': 'paper_content_archive'; + } + + /** + * (paper) Created Paper doc/folder + */ + export interface EventTypeArgPaperContentCreate { + '.tag': 'paper_content_create'; + } + + /** + * (paper) Permanently deleted Paper doc/folder + */ + export interface EventTypeArgPaperContentPermanentlyDelete { + '.tag': 'paper_content_permanently_delete'; + } + + /** + * (paper) Removed Paper doc/folder from folder + */ + export interface EventTypeArgPaperContentRemoveFromFolder { + '.tag': 'paper_content_remove_from_folder'; + } + + /** + * (paper) Removed users and/or groups from Paper doc/folder + */ + export interface EventTypeArgPaperContentRemoveMember { + '.tag': 'paper_content_remove_member'; + } + + /** + * (paper) Renamed Paper doc/folder + */ + export interface EventTypeArgPaperContentRename { + '.tag': 'paper_content_rename'; + } + + /** + * (paper) Restored archived Paper doc/folder + */ + export interface EventTypeArgPaperContentRestore { + '.tag': 'paper_content_restore'; + } + + /** + * (paper) Added Paper doc comment + */ + export interface EventTypeArgPaperDocAddComment { + '.tag': 'paper_doc_add_comment'; + } + + /** + * (paper) Changed member permissions for Paper doc + */ + export interface EventTypeArgPaperDocChangeMemberRole { + '.tag': 'paper_doc_change_member_role'; + } + + /** + * (paper) Changed sharing setting for Paper doc + */ + export interface EventTypeArgPaperDocChangeSharingPolicy { + '.tag': 'paper_doc_change_sharing_policy'; + } + + /** + * (paper) Followed/unfollowed Paper doc + */ + export interface EventTypeArgPaperDocChangeSubscription { + '.tag': 'paper_doc_change_subscription'; + } + + /** + * (paper) Archived Paper doc (deprecated, no longer logged) + */ + export interface EventTypeArgPaperDocDeleted { + '.tag': 'paper_doc_deleted'; + } + + /** + * (paper) Deleted Paper doc comment + */ + export interface EventTypeArgPaperDocDeleteComment { + '.tag': 'paper_doc_delete_comment'; + } + + /** + * (paper) Downloaded Paper doc in specific format + */ + export interface EventTypeArgPaperDocDownload { + '.tag': 'paper_doc_download'; + } + + /** + * (paper) Edited Paper doc + */ + export interface EventTypeArgPaperDocEdit { + '.tag': 'paper_doc_edit'; + } + + /** + * (paper) Edited Paper doc comment + */ + export interface EventTypeArgPaperDocEditComment { + '.tag': 'paper_doc_edit_comment'; + } + + /** + * (paper) Followed Paper doc (deprecated, replaced by 'Followed/unfollowed + * Paper doc') + */ + export interface EventTypeArgPaperDocFollowed { + '.tag': 'paper_doc_followed'; + } + + /** + * (paper) Mentioned user in Paper doc + */ + export interface EventTypeArgPaperDocMention { + '.tag': 'paper_doc_mention'; + } + + /** + * (paper) Transferred ownership of Paper doc + */ + export interface EventTypeArgPaperDocOwnershipChanged { + '.tag': 'paper_doc_ownership_changed'; + } + + /** + * (paper) Requested access to Paper doc + */ + export interface EventTypeArgPaperDocRequestAccess { + '.tag': 'paper_doc_request_access'; + } + + /** + * (paper) Resolved Paper doc comment + */ + export interface EventTypeArgPaperDocResolveComment { + '.tag': 'paper_doc_resolve_comment'; + } + + /** + * (paper) Restored Paper doc to previous version + */ + export interface EventTypeArgPaperDocRevert { + '.tag': 'paper_doc_revert'; + } + + /** + * (paper) Shared Paper doc via Slack + */ + export interface EventTypeArgPaperDocSlackShare { + '.tag': 'paper_doc_slack_share'; + } + + /** + * (paper) Shared Paper doc with users and/or groups (deprecated, no longer + * logged) + */ + export interface EventTypeArgPaperDocTeamInvite { + '.tag': 'paper_doc_team_invite'; + } + + /** + * (paper) Deleted Paper doc + */ + export interface EventTypeArgPaperDocTrashed { + '.tag': 'paper_doc_trashed'; + } + + /** + * (paper) Unresolved Paper doc comment + */ + export interface EventTypeArgPaperDocUnresolveComment { + '.tag': 'paper_doc_unresolve_comment'; + } + + /** + * (paper) Restored Paper doc + */ + export interface EventTypeArgPaperDocUntrashed { + '.tag': 'paper_doc_untrashed'; + } + + /** + * (paper) Viewed Paper doc + */ + export interface EventTypeArgPaperDocView { + '.tag': 'paper_doc_view'; + } + + /** + * (paper) Changed Paper external sharing setting to anyone (deprecated, no + * longer logged) + */ + export interface EventTypeArgPaperExternalViewAllow { + '.tag': 'paper_external_view_allow'; + } + + /** + * (paper) Changed Paper external sharing setting to default team + * (deprecated, no longer logged) + */ + export interface EventTypeArgPaperExternalViewDefaultTeam { + '.tag': 'paper_external_view_default_team'; + } + + /** + * (paper) Changed Paper external sharing setting to team-only (deprecated, + * no longer logged) + */ + export interface EventTypeArgPaperExternalViewForbid { + '.tag': 'paper_external_view_forbid'; + } + + /** + * (paper) Followed/unfollowed Paper folder + */ + export interface EventTypeArgPaperFolderChangeSubscription { + '.tag': 'paper_folder_change_subscription'; + } + + /** + * (paper) Archived Paper folder (deprecated, no longer logged) + */ + export interface EventTypeArgPaperFolderDeleted { + '.tag': 'paper_folder_deleted'; + } + + /** + * (paper) Followed Paper folder (deprecated, replaced by + * 'Followed/unfollowed Paper folder') + */ + export interface EventTypeArgPaperFolderFollowed { + '.tag': 'paper_folder_followed'; + } + + /** + * (paper) Shared Paper folder with users and/or groups (deprecated, no + * longer logged) + */ + export interface EventTypeArgPaperFolderTeamInvite { + '.tag': 'paper_folder_team_invite'; + } + + /** + * (paper) Changed permissions for published doc + */ + export interface EventTypeArgPaperPublishedLinkChangePermission { + '.tag': 'paper_published_link_change_permission'; + } + + /** + * (paper) Published doc + */ + export interface EventTypeArgPaperPublishedLinkCreate { + '.tag': 'paper_published_link_create'; + } + + /** + * (paper) Unpublished doc + */ + export interface EventTypeArgPaperPublishedLinkDisabled { + '.tag': 'paper_published_link_disabled'; + } + + /** + * (paper) Viewed published doc + */ + export interface EventTypeArgPaperPublishedLinkView { + '.tag': 'paper_published_link_view'; + } + + /** + * (passwords) Changed password + */ + export interface EventTypeArgPasswordChange { + '.tag': 'password_change'; + } + + /** + * (passwords) Reset password + */ + export interface EventTypeArgPasswordReset { + '.tag': 'password_reset'; + } + + /** + * (passwords) Reset all team member passwords + */ + export interface EventTypeArgPasswordResetAll { + '.tag': 'password_reset_all'; + } + + /** + * (reports) Created Classification report + */ + export interface EventTypeArgClassificationCreateReport { + '.tag': 'classification_create_report'; + } + + /** + * (reports) Couldn't create Classification report + */ + export interface EventTypeArgClassificationCreateReportFail { + '.tag': 'classification_create_report_fail'; + } + + /** + * (reports) Created EMM-excluded users report + */ + export interface EventTypeArgEmmCreateExceptionsReport { + '.tag': 'emm_create_exceptions_report'; + } + + /** + * (reports) Created EMM mobile app usage report + */ + export interface EventTypeArgEmmCreateUsageReport { + '.tag': 'emm_create_usage_report'; + } + + /** + * (reports) Created member data report + */ + export interface EventTypeArgExportMembersReport { + '.tag': 'export_members_report'; + } + + /** + * (reports) Failed to create members data report + */ + export interface EventTypeArgExportMembersReportFail { + '.tag': 'export_members_report_fail'; + } + + /** + * (reports) Created External sharing report + */ + export interface EventTypeArgExternalSharingCreateReport { + '.tag': 'external_sharing_create_report'; + } + + /** + * (reports) Couldn't create External sharing report + */ + export interface EventTypeArgExternalSharingReportFailed { + '.tag': 'external_sharing_report_failed'; + } + + /** + * (reports) Report created: Links created with no expiration + */ + export interface EventTypeArgNoExpirationLinkGenCreateReport { + '.tag': 'no_expiration_link_gen_create_report'; + } + + /** + * (reports) Couldn't create report: Links created with no expiration + */ + export interface EventTypeArgNoExpirationLinkGenReportFailed { + '.tag': 'no_expiration_link_gen_report_failed'; + } + + /** + * (reports) Report created: Links created without passwords + */ + export interface EventTypeArgNoPasswordLinkGenCreateReport { + '.tag': 'no_password_link_gen_create_report'; + } + + /** + * (reports) Couldn't create report: Links created without passwords + */ + export interface EventTypeArgNoPasswordLinkGenReportFailed { + '.tag': 'no_password_link_gen_report_failed'; + } + + /** + * (reports) Report created: Views of links without passwords + */ + export interface EventTypeArgNoPasswordLinkViewCreateReport { + '.tag': 'no_password_link_view_create_report'; + } + + /** + * (reports) Couldn't create report: Views of links without passwords + */ + export interface EventTypeArgNoPasswordLinkViewReportFailed { + '.tag': 'no_password_link_view_report_failed'; + } + + /** + * (reports) Report created: Views of old links + */ + export interface EventTypeArgOutdatedLinkViewCreateReport { + '.tag': 'outdated_link_view_create_report'; + } + + /** + * (reports) Couldn't create report: Views of old links + */ + export interface EventTypeArgOutdatedLinkViewReportFailed { + '.tag': 'outdated_link_view_report_failed'; + } + + /** + * (reports) Exported all team Paper docs + */ + export interface EventTypeArgPaperAdminExportStart { + '.tag': 'paper_admin_export_start'; + } + + /** + * (reports) Created Smart Sync non-admin devices report + */ + export interface EventTypeArgSmartSyncCreateAdminPrivilegeReport { + '.tag': 'smart_sync_create_admin_privilege_report'; + } + + /** + * (reports) Created team activity report + */ + export interface EventTypeArgTeamActivityCreateReport { + '.tag': 'team_activity_create_report'; + } + + /** + * (reports) Couldn't generate team activity report + */ + export interface EventTypeArgTeamActivityCreateReportFail { + '.tag': 'team_activity_create_report_fail'; + } + + /** + * (sharing) Shared album + */ + export interface EventTypeArgCollectionShare { + '.tag': 'collection_share'; + } + + /** + * (sharing) Transfer files added + */ + export interface EventTypeArgFileTransfersFileAdd { + '.tag': 'file_transfers_file_add'; + } + + /** + * (sharing) Deleted transfer + */ + export interface EventTypeArgFileTransfersTransferDelete { + '.tag': 'file_transfers_transfer_delete'; + } + + /** + * (sharing) Transfer downloaded + */ + export interface EventTypeArgFileTransfersTransferDownload { + '.tag': 'file_transfers_transfer_download'; + } + + /** + * (sharing) Sent transfer + */ + export interface EventTypeArgFileTransfersTransferSend { + '.tag': 'file_transfers_transfer_send'; + } + + /** + * (sharing) Viewed transfer + */ + export interface EventTypeArgFileTransfersTransferView { + '.tag': 'file_transfers_transfer_view'; + } + + /** + * (sharing) Changed Paper doc to invite-only (deprecated, no longer logged) + */ + export interface EventTypeArgNoteAclInviteOnly { + '.tag': 'note_acl_invite_only'; + } + + /** + * (sharing) Changed Paper doc to link-accessible (deprecated, no longer + * logged) + */ + export interface EventTypeArgNoteAclLink { + '.tag': 'note_acl_link'; + } + + /** + * (sharing) Changed Paper doc to link-accessible for team (deprecated, no + * longer logged) + */ + export interface EventTypeArgNoteAclTeamLink { + '.tag': 'note_acl_team_link'; + } + + /** + * (sharing) Shared Paper doc (deprecated, no longer logged) + */ + export interface EventTypeArgNoteShared { + '.tag': 'note_shared'; + } + + /** + * (sharing) Shared received Paper doc (deprecated, no longer logged) + */ + export interface EventTypeArgNoteShareReceive { + '.tag': 'note_share_receive'; + } + + /** + * (sharing) Opened shared Paper doc (deprecated, no longer logged) + */ + export interface EventTypeArgOpenNoteShared { + '.tag': 'open_note_shared'; + } + + /** + * (sharing) Added team to shared folder (deprecated, no longer logged) + */ + export interface EventTypeArgSfAddGroup { + '.tag': 'sf_add_group'; + } + + /** + * (sharing) Allowed non-collaborators to view links to files in shared + * folder (deprecated, no longer logged) + */ + export interface EventTypeArgSfAllowNonMembersToViewSharedLinks { + '.tag': 'sf_allow_non_members_to_view_shared_links'; + } + + /** + * (sharing) Set team members to see warning before sharing folders outside + * team (deprecated, no longer logged) + */ + export interface EventTypeArgSfExternalInviteWarn { + '.tag': 'sf_external_invite_warn'; + } + + /** + * (sharing) Invited Facebook users to shared folder (deprecated, no longer + * logged) + */ + export interface EventTypeArgSfFbInvite { + '.tag': 'sf_fb_invite'; + } + + /** + * (sharing) Changed Facebook user's role in shared folder (deprecated, no + * longer logged) + */ + export interface EventTypeArgSfFbInviteChangeRole { + '.tag': 'sf_fb_invite_change_role'; + } + + /** + * (sharing) Uninvited Facebook user from shared folder (deprecated, no + * longer logged) + */ + export interface EventTypeArgSfFbUninvite { + '.tag': 'sf_fb_uninvite'; + } + + /** + * (sharing) Invited group to shared folder (deprecated, no longer logged) + */ + export interface EventTypeArgSfInviteGroup { + '.tag': 'sf_invite_group'; + } + + /** + * (sharing) Granted access to shared folder (deprecated, no longer logged) + */ + export interface EventTypeArgSfTeamGrantAccess { + '.tag': 'sf_team_grant_access'; + } + + /** + * (sharing) Invited team members to shared folder (deprecated, replaced by + * 'Invited user to Dropbox and added them to shared file/folder') + */ + export interface EventTypeArgSfTeamInvite { + '.tag': 'sf_team_invite'; + } + + /** + * (sharing) Changed team member's role in shared folder (deprecated, no + * longer logged) + */ + export interface EventTypeArgSfTeamInviteChangeRole { + '.tag': 'sf_team_invite_change_role'; + } + + /** + * (sharing) Joined team member's shared folder (deprecated, no longer + * logged) + */ + export interface EventTypeArgSfTeamJoin { + '.tag': 'sf_team_join'; + } + + /** + * (sharing) Joined team member's shared folder from link (deprecated, no + * longer logged) + */ + export interface EventTypeArgSfTeamJoinFromOobLink { + '.tag': 'sf_team_join_from_oob_link'; + } + + /** + * (sharing) Unshared folder with team member (deprecated, replaced by + * 'Removed invitee from shared file/folder before invite was accepted') + */ + export interface EventTypeArgSfTeamUninvite { + '.tag': 'sf_team_uninvite'; + } + + /** + * (sharing) Invited user to Dropbox and added them to shared file/folder + */ + export interface EventTypeArgSharedContentAddInvitees { + '.tag': 'shared_content_add_invitees'; + } + + /** + * (sharing) Added expiration date to link for shared file/folder + * (deprecated, no longer logged) + */ + export interface EventTypeArgSharedContentAddLinkExpiry { + '.tag': 'shared_content_add_link_expiry'; + } + + /** + * (sharing) Added password to link for shared file/folder (deprecated, no + * longer logged) + */ + export interface EventTypeArgSharedContentAddLinkPassword { + '.tag': 'shared_content_add_link_password'; + } + + /** + * (sharing) Added users and/or groups to shared file/folder + */ + export interface EventTypeArgSharedContentAddMember { + '.tag': 'shared_content_add_member'; + } + + /** + * (sharing) Changed whether members can download shared file/folder + * (deprecated, no longer logged) + */ + export interface EventTypeArgSharedContentChangeDownloadsPolicy { + '.tag': 'shared_content_change_downloads_policy'; + } + + /** + * (sharing) Changed access type of invitee to shared file/folder before + * invite was accepted + */ + export interface EventTypeArgSharedContentChangeInviteeRole { + '.tag': 'shared_content_change_invitee_role'; + } + + /** + * (sharing) Changed link audience of shared file/folder (deprecated, no + * longer logged) + */ + export interface EventTypeArgSharedContentChangeLinkAudience { + '.tag': 'shared_content_change_link_audience'; + } + + /** + * (sharing) Changed link expiration of shared file/folder (deprecated, no + * longer logged) + */ + export interface EventTypeArgSharedContentChangeLinkExpiry { + '.tag': 'shared_content_change_link_expiry'; + } + + /** + * (sharing) Changed link password of shared file/folder (deprecated, no + * longer logged) + */ + export interface EventTypeArgSharedContentChangeLinkPassword { + '.tag': 'shared_content_change_link_password'; + } + + /** + * (sharing) Changed access type of shared file/folder member + */ + export interface EventTypeArgSharedContentChangeMemberRole { + '.tag': 'shared_content_change_member_role'; + } + + /** + * (sharing) Changed whether members can see who viewed shared file/folder + */ + export interface EventTypeArgSharedContentChangeViewerInfoPolicy { + '.tag': 'shared_content_change_viewer_info_policy'; + } + + /** + * (sharing) Acquired membership of shared file/folder by accepting invite + */ + export interface EventTypeArgSharedContentClaimInvitation { + '.tag': 'shared_content_claim_invitation'; + } + + /** + * (sharing) Copied shared file/folder to own Dropbox + */ + export interface EventTypeArgSharedContentCopy { + '.tag': 'shared_content_copy'; + } + + /** + * (sharing) Downloaded shared file/folder + */ + export interface EventTypeArgSharedContentDownload { + '.tag': 'shared_content_download'; + } + + /** + * (sharing) Left shared file/folder + */ + export interface EventTypeArgSharedContentRelinquishMembership { + '.tag': 'shared_content_relinquish_membership'; + } + + /** + * (sharing) Removed invitee from shared file/folder before invite was + * accepted + */ + export interface EventTypeArgSharedContentRemoveInvitees { + '.tag': 'shared_content_remove_invitees'; + } + + /** + * (sharing) Removed link expiration date of shared file/folder (deprecated, + * no longer logged) + */ + export interface EventTypeArgSharedContentRemoveLinkExpiry { + '.tag': 'shared_content_remove_link_expiry'; + } + + /** + * (sharing) Removed link password of shared file/folder (deprecated, no + * longer logged) + */ + export interface EventTypeArgSharedContentRemoveLinkPassword { + '.tag': 'shared_content_remove_link_password'; + } + + /** + * (sharing) Removed user/group from shared file/folder + */ + export interface EventTypeArgSharedContentRemoveMember { + '.tag': 'shared_content_remove_member'; + } + + /** + * (sharing) Requested access to shared file/folder + */ + export interface EventTypeArgSharedContentRequestAccess { + '.tag': 'shared_content_request_access'; + } + + /** + * (sharing) Restored shared file/folder invitees + */ + export interface EventTypeArgSharedContentRestoreInvitees { + '.tag': 'shared_content_restore_invitees'; + } + + /** + * (sharing) Restored users and/or groups to membership of shared + * file/folder + */ + export interface EventTypeArgSharedContentRestoreMember { + '.tag': 'shared_content_restore_member'; + } + + /** + * (sharing) Unshared file/folder by clearing membership + */ + export interface EventTypeArgSharedContentUnshare { + '.tag': 'shared_content_unshare'; + } + + /** + * (sharing) Previewed shared file/folder + */ + export interface EventTypeArgSharedContentView { + '.tag': 'shared_content_view'; + } + + /** + * (sharing) Changed who can access shared folder via link + */ + export interface EventTypeArgSharedFolderChangeLinkPolicy { + '.tag': 'shared_folder_change_link_policy'; + } + + /** + * (sharing) Changed whether shared folder inherits members from parent + * folder + */ + export interface EventTypeArgSharedFolderChangeMembersInheritancePolicy { + '.tag': 'shared_folder_change_members_inheritance_policy'; + } + + /** + * (sharing) Changed who can add/remove members of shared folder + */ + export interface EventTypeArgSharedFolderChangeMembersManagementPolicy { + '.tag': 'shared_folder_change_members_management_policy'; + } + + /** + * (sharing) Changed who can become member of shared folder + */ + export interface EventTypeArgSharedFolderChangeMembersPolicy { + '.tag': 'shared_folder_change_members_policy'; + } + + /** + * (sharing) Created shared folder + */ + export interface EventTypeArgSharedFolderCreate { + '.tag': 'shared_folder_create'; + } + + /** + * (sharing) Declined team member's invite to shared folder + */ + export interface EventTypeArgSharedFolderDeclineInvitation { + '.tag': 'shared_folder_decline_invitation'; + } + + /** + * (sharing) Added shared folder to own Dropbox + */ + export interface EventTypeArgSharedFolderMount { + '.tag': 'shared_folder_mount'; + } + + /** + * (sharing) Changed parent of shared folder + */ + export interface EventTypeArgSharedFolderNest { + '.tag': 'shared_folder_nest'; + } + + /** + * (sharing) Transferred ownership of shared folder to another member + */ + export interface EventTypeArgSharedFolderTransferOwnership { + '.tag': 'shared_folder_transfer_ownership'; + } + + /** + * (sharing) Deleted shared folder from Dropbox + */ + export interface EventTypeArgSharedFolderUnmount { + '.tag': 'shared_folder_unmount'; + } + + /** + * (sharing) Added shared link expiration date + */ + export interface EventTypeArgSharedLinkAddExpiry { + '.tag': 'shared_link_add_expiry'; + } + + /** + * (sharing) Changed shared link expiration date + */ + export interface EventTypeArgSharedLinkChangeExpiry { + '.tag': 'shared_link_change_expiry'; + } + + /** + * (sharing) Changed visibility of shared link + */ + export interface EventTypeArgSharedLinkChangeVisibility { + '.tag': 'shared_link_change_visibility'; + } + + /** + * (sharing) Added file/folder to Dropbox from shared link + */ + export interface EventTypeArgSharedLinkCopy { + '.tag': 'shared_link_copy'; + } + + /** + * (sharing) Created shared link + */ + export interface EventTypeArgSharedLinkCreate { + '.tag': 'shared_link_create'; + } + + /** + * (sharing) Removed shared link + */ + export interface EventTypeArgSharedLinkDisable { + '.tag': 'shared_link_disable'; + } + + /** + * (sharing) Downloaded file/folder from shared link + */ + export interface EventTypeArgSharedLinkDownload { + '.tag': 'shared_link_download'; + } + + /** + * (sharing) Removed shared link expiration date + */ + export interface EventTypeArgSharedLinkRemoveExpiry { + '.tag': 'shared_link_remove_expiry'; + } + + /** + * (sharing) Added an expiration date to the shared link + */ + export interface EventTypeArgSharedLinkSettingsAddExpiration { + '.tag': 'shared_link_settings_add_expiration'; + } + + /** + * (sharing) Added a password to the shared link + */ + export interface EventTypeArgSharedLinkSettingsAddPassword { + '.tag': 'shared_link_settings_add_password'; + } + + /** + * (sharing) Disabled downloads + */ + export interface EventTypeArgSharedLinkSettingsAllowDownloadDisabled { + '.tag': 'shared_link_settings_allow_download_disabled'; + } + + /** + * (sharing) Enabled downloads + */ + export interface EventTypeArgSharedLinkSettingsAllowDownloadEnabled { + '.tag': 'shared_link_settings_allow_download_enabled'; + } + + /** + * (sharing) Changed the audience of the shared link + */ + export interface EventTypeArgSharedLinkSettingsChangeAudience { + '.tag': 'shared_link_settings_change_audience'; + } + + /** + * (sharing) Changed the expiration date of the shared link + */ + export interface EventTypeArgSharedLinkSettingsChangeExpiration { + '.tag': 'shared_link_settings_change_expiration'; + } + + /** + * (sharing) Changed the password of the shared link + */ + export interface EventTypeArgSharedLinkSettingsChangePassword { + '.tag': 'shared_link_settings_change_password'; + } + + /** + * (sharing) Removed the expiration date from the shared link + */ + export interface EventTypeArgSharedLinkSettingsRemoveExpiration { + '.tag': 'shared_link_settings_remove_expiration'; + } + + /** + * (sharing) Removed the password from the shared link + */ + export interface EventTypeArgSharedLinkSettingsRemovePassword { + '.tag': 'shared_link_settings_remove_password'; + } + + /** + * (sharing) Added members as audience of shared link + */ + export interface EventTypeArgSharedLinkShare { + '.tag': 'shared_link_share'; + } + + /** + * (sharing) Opened shared link + */ + export interface EventTypeArgSharedLinkView { + '.tag': 'shared_link_view'; + } + + /** + * (sharing) Opened shared Paper doc (deprecated, no longer logged) + */ + export interface EventTypeArgSharedNoteOpened { + '.tag': 'shared_note_opened'; + } + + /** + * (sharing) Disabled downloads for link (deprecated, no longer logged) + */ + export interface EventTypeArgShmodelDisableDownloads { + '.tag': 'shmodel_disable_downloads'; + } + + /** + * (sharing) Enabled downloads for link (deprecated, no longer logged) + */ + export interface EventTypeArgShmodelEnableDownloads { + '.tag': 'shmodel_enable_downloads'; + } + + /** + * (sharing) Shared link with group (deprecated, no longer logged) + */ + export interface EventTypeArgShmodelGroupShare { + '.tag': 'shmodel_group_share'; + } + + /** + * (showcase) Granted access to showcase + */ + export interface EventTypeArgShowcaseAccessGranted { + '.tag': 'showcase_access_granted'; + } + + /** + * (showcase) Added member to showcase + */ + export interface EventTypeArgShowcaseAddMember { + '.tag': 'showcase_add_member'; + } + + /** + * (showcase) Archived showcase + */ + export interface EventTypeArgShowcaseArchived { + '.tag': 'showcase_archived'; + } + + /** + * (showcase) Created showcase + */ + export interface EventTypeArgShowcaseCreated { + '.tag': 'showcase_created'; + } + + /** + * (showcase) Deleted showcase comment + */ + export interface EventTypeArgShowcaseDeleteComment { + '.tag': 'showcase_delete_comment'; + } + + /** + * (showcase) Edited showcase + */ + export interface EventTypeArgShowcaseEdited { + '.tag': 'showcase_edited'; + } + + /** + * (showcase) Edited showcase comment + */ + export interface EventTypeArgShowcaseEditComment { + '.tag': 'showcase_edit_comment'; + } + + /** + * (showcase) Added file to showcase + */ + export interface EventTypeArgShowcaseFileAdded { + '.tag': 'showcase_file_added'; + } + + /** + * (showcase) Downloaded file from showcase + */ + export interface EventTypeArgShowcaseFileDownload { + '.tag': 'showcase_file_download'; + } + + /** + * (showcase) Removed file from showcase + */ + export interface EventTypeArgShowcaseFileRemoved { + '.tag': 'showcase_file_removed'; + } + + /** + * (showcase) Viewed file in showcase + */ + export interface EventTypeArgShowcaseFileView { + '.tag': 'showcase_file_view'; + } + + /** + * (showcase) Permanently deleted showcase + */ + export interface EventTypeArgShowcasePermanentlyDeleted { + '.tag': 'showcase_permanently_deleted'; + } + + /** + * (showcase) Added showcase comment + */ + export interface EventTypeArgShowcasePostComment { + '.tag': 'showcase_post_comment'; + } + + /** + * (showcase) Removed member from showcase + */ + export interface EventTypeArgShowcaseRemoveMember { + '.tag': 'showcase_remove_member'; + } + + /** + * (showcase) Renamed showcase + */ + export interface EventTypeArgShowcaseRenamed { + '.tag': 'showcase_renamed'; + } + + /** + * (showcase) Requested access to showcase + */ + export interface EventTypeArgShowcaseRequestAccess { + '.tag': 'showcase_request_access'; + } + + /** + * (showcase) Resolved showcase comment + */ + export interface EventTypeArgShowcaseResolveComment { + '.tag': 'showcase_resolve_comment'; + } + + /** + * (showcase) Unarchived showcase + */ + export interface EventTypeArgShowcaseRestored { + '.tag': 'showcase_restored'; + } + + /** + * (showcase) Deleted showcase + */ + export interface EventTypeArgShowcaseTrashed { + '.tag': 'showcase_trashed'; + } + + /** + * (showcase) Deleted showcase (old version) (deprecated, replaced by + * 'Deleted showcase') + */ + export interface EventTypeArgShowcaseTrashedDeprecated { + '.tag': 'showcase_trashed_deprecated'; + } + + /** + * (showcase) Unresolved showcase comment + */ + export interface EventTypeArgShowcaseUnresolveComment { + '.tag': 'showcase_unresolve_comment'; + } + + /** + * (showcase) Restored showcase + */ + export interface EventTypeArgShowcaseUntrashed { + '.tag': 'showcase_untrashed'; + } + + /** + * (showcase) Restored showcase (old version) (deprecated, replaced by + * 'Restored showcase') + */ + export interface EventTypeArgShowcaseUntrashedDeprecated { + '.tag': 'showcase_untrashed_deprecated'; + } + + /** + * (showcase) Viewed showcase + */ + export interface EventTypeArgShowcaseView { + '.tag': 'showcase_view'; + } + + /** + * (sso) Added X.509 certificate for SSO + */ + export interface EventTypeArgSsoAddCert { + '.tag': 'sso_add_cert'; + } + + /** + * (sso) Added sign-in URL for SSO + */ + export interface EventTypeArgSsoAddLoginUrl { + '.tag': 'sso_add_login_url'; + } + + /** + * (sso) Added sign-out URL for SSO + */ + export interface EventTypeArgSsoAddLogoutUrl { + '.tag': 'sso_add_logout_url'; + } + + /** + * (sso) Changed X.509 certificate for SSO + */ + export interface EventTypeArgSsoChangeCert { + '.tag': 'sso_change_cert'; + } + + /** + * (sso) Changed sign-in URL for SSO + */ + export interface EventTypeArgSsoChangeLoginUrl { + '.tag': 'sso_change_login_url'; + } + + /** + * (sso) Changed sign-out URL for SSO + */ + export interface EventTypeArgSsoChangeLogoutUrl { + '.tag': 'sso_change_logout_url'; + } + + /** + * (sso) Changed SAML identity mode for SSO + */ + export interface EventTypeArgSsoChangeSamlIdentityMode { + '.tag': 'sso_change_saml_identity_mode'; + } + + /** + * (sso) Removed X.509 certificate for SSO + */ + export interface EventTypeArgSsoRemoveCert { + '.tag': 'sso_remove_cert'; + } + + /** + * (sso) Removed sign-in URL for SSO + */ + export interface EventTypeArgSsoRemoveLoginUrl { + '.tag': 'sso_remove_login_url'; + } + + /** + * (sso) Removed sign-out URL for SSO + */ + export interface EventTypeArgSsoRemoveLogoutUrl { + '.tag': 'sso_remove_logout_url'; + } + + /** + * (team_folders) Changed archival status of team folder + */ + export interface EventTypeArgTeamFolderChangeStatus { + '.tag': 'team_folder_change_status'; + } + + /** + * (team_folders) Created team folder in active status + */ + export interface EventTypeArgTeamFolderCreate { + '.tag': 'team_folder_create'; + } + + /** + * (team_folders) Downgraded team folder to regular shared folder + */ + export interface EventTypeArgTeamFolderDowngrade { + '.tag': 'team_folder_downgrade'; + } + + /** + * (team_folders) Permanently deleted archived team folder + */ + export interface EventTypeArgTeamFolderPermanentlyDelete { + '.tag': 'team_folder_permanently_delete'; + } + + /** + * (team_folders) Renamed active/archived team folder + */ + export interface EventTypeArgTeamFolderRename { + '.tag': 'team_folder_rename'; + } + + /** + * (team_folders) Changed sync default + */ + export interface EventTypeArgTeamSelectiveSyncSettingsChanged { + '.tag': 'team_selective_sync_settings_changed'; + } + + /** + * (team_policies) Changed account capture setting on team domain + */ + export interface EventTypeArgAccountCaptureChangePolicy { + '.tag': 'account_capture_change_policy'; + } + + /** + * (team_policies) Changed admin reminder settings for requests to join the + * team + */ + export interface EventTypeArgAdminEmailRemindersChanged { + '.tag': 'admin_email_reminders_changed'; + } + + /** + * (team_policies) Disabled downloads (deprecated, no longer logged) + */ + export interface EventTypeArgAllowDownloadDisabled { + '.tag': 'allow_download_disabled'; + } + + /** + * (team_policies) Enabled downloads (deprecated, no longer logged) + */ + export interface EventTypeArgAllowDownloadEnabled { + '.tag': 'allow_download_enabled'; + } + + /** + * (team_policies) Changed app permissions + */ + export interface EventTypeArgAppPermissionsChanged { + '.tag': 'app_permissions_changed'; + } + + /** + * (team_policies) Changed camera uploads setting for team + */ + export interface EventTypeArgCameraUploadsPolicyChanged { + '.tag': 'camera_uploads_policy_changed'; + } + + /** + * (team_policies) Changed Capture transcription policy for team + */ + export interface EventTypeArgCaptureTranscriptPolicyChanged { + '.tag': 'capture_transcript_policy_changed'; + } + + /** + * (team_policies) Changed classification policy for team + */ + export interface EventTypeArgClassificationChangePolicy { + '.tag': 'classification_change_policy'; + } + + /** + * (team_policies) Changed computer backup policy for team + */ + export interface EventTypeArgComputerBackupPolicyChanged { + '.tag': 'computer_backup_policy_changed'; + } + + /** + * (team_policies) Changed content management setting + */ + export interface EventTypeArgContentAdministrationPolicyChanged { + '.tag': 'content_administration_policy_changed'; + } + + /** + * (team_policies) Set restrictions on data center locations where team data + * resides + */ + export interface EventTypeArgDataPlacementRestrictionChangePolicy { + '.tag': 'data_placement_restriction_change_policy'; + } + + /** + * (team_policies) Completed restrictions on data center locations where + * team data resides + */ + export interface EventTypeArgDataPlacementRestrictionSatisfyPolicy { + '.tag': 'data_placement_restriction_satisfy_policy'; + } + + /** + * (team_policies) Added members to device approvals exception list + */ + export interface EventTypeArgDeviceApprovalsAddException { + '.tag': 'device_approvals_add_exception'; + } + + /** + * (team_policies) Set/removed limit on number of computers member can link + * to team Dropbox account + */ + export interface EventTypeArgDeviceApprovalsChangeDesktopPolicy { + '.tag': 'device_approvals_change_desktop_policy'; + } + + /** + * (team_policies) Set/removed limit on number of mobile devices member can + * link to team Dropbox account + */ + export interface EventTypeArgDeviceApprovalsChangeMobilePolicy { + '.tag': 'device_approvals_change_mobile_policy'; + } + + /** + * (team_policies) Changed device approvals setting when member is over + * limit + */ + export interface EventTypeArgDeviceApprovalsChangeOverageAction { + '.tag': 'device_approvals_change_overage_action'; + } + + /** + * (team_policies) Changed device approvals setting when member unlinks + * approved device + */ + export interface EventTypeArgDeviceApprovalsChangeUnlinkAction { + '.tag': 'device_approvals_change_unlink_action'; + } + + /** + * (team_policies) Removed members from device approvals exception list + */ + export interface EventTypeArgDeviceApprovalsRemoveException { + '.tag': 'device_approvals_remove_exception'; + } + + /** + * (team_policies) Added members to directory restrictions list + */ + export interface EventTypeArgDirectoryRestrictionsAddMembers { + '.tag': 'directory_restrictions_add_members'; + } + + /** + * (team_policies) Removed members from directory restrictions list + */ + export interface EventTypeArgDirectoryRestrictionsRemoveMembers { + '.tag': 'directory_restrictions_remove_members'; + } + + /** + * (team_policies) Changed Dropbox Passwords policy for team + */ + export interface EventTypeArgDropboxPasswordsPolicyChanged { + '.tag': 'dropbox_passwords_policy_changed'; + } + + /** + * (team_policies) Changed email to Dropbox policy for team + */ + export interface EventTypeArgEmailIngestPolicyChanged { + '.tag': 'email_ingest_policy_changed'; + } + + /** + * (team_policies) Added members to EMM exception list + */ + export interface EventTypeArgEmmAddException { + '.tag': 'emm_add_exception'; + } + + /** + * (team_policies) Enabled/disabled enterprise mobility management for + * members + */ + export interface EventTypeArgEmmChangePolicy { + '.tag': 'emm_change_policy'; + } + + /** + * (team_policies) Removed members from EMM exception list + */ + export interface EventTypeArgEmmRemoveException { + '.tag': 'emm_remove_exception'; + } + + /** + * (team_policies) Accepted/opted out of extended version history + */ + export interface EventTypeArgExtendedVersionHistoryChangePolicy { + '.tag': 'extended_version_history_change_policy'; + } + + /** + * (team_policies) Changed external drive backup policy for team + */ + export interface EventTypeArgExternalDriveBackupPolicyChanged { + '.tag': 'external_drive_backup_policy_changed'; + } + + /** + * (team_policies) Enabled/disabled commenting on team files + */ + export interface EventTypeArgFileCommentsChangePolicy { + '.tag': 'file_comments_change_policy'; + } + + /** + * (team_policies) Changed file locking policy for team + */ + export interface EventTypeArgFileLockingPolicyChanged { + '.tag': 'file_locking_policy_changed'; + } + + /** + * (team_policies) Changed File Provider Migration policy for team + */ + export interface EventTypeArgFileProviderMigrationPolicyChanged { + '.tag': 'file_provider_migration_policy_changed'; + } + + /** + * (team_policies) Enabled/disabled file requests + */ + export interface EventTypeArgFileRequestsChangePolicy { + '.tag': 'file_requests_change_policy'; + } + + /** + * (team_policies) Enabled file request emails for everyone (deprecated, no + * longer logged) + */ + export interface EventTypeArgFileRequestsEmailsEnabled { + '.tag': 'file_requests_emails_enabled'; + } + + /** + * (team_policies) Enabled file request emails for team (deprecated, no + * longer logged) + */ + export interface EventTypeArgFileRequestsEmailsRestrictedToTeamOnly { + '.tag': 'file_requests_emails_restricted_to_team_only'; + } + + /** + * (team_policies) Changed file transfers policy for team + */ + export interface EventTypeArgFileTransfersPolicyChanged { + '.tag': 'file_transfers_policy_changed'; + } + + /** + * (team_policies) Changed folder link restrictions policy for team + */ + export interface EventTypeArgFolderLinkRestrictionPolicyChanged { + '.tag': 'folder_link_restriction_policy_changed'; + } + + /** + * (team_policies) Enabled/disabled Google single sign-on for team + */ + export interface EventTypeArgGoogleSsoChangePolicy { + '.tag': 'google_sso_change_policy'; + } + + /** + * (team_policies) Changed who can create groups + */ + export interface EventTypeArgGroupUserManagementChangePolicy { + '.tag': 'group_user_management_change_policy'; + } + + /** + * (team_policies) Changed integration policy for team + */ + export interface EventTypeArgIntegrationPolicyChanged { + '.tag': 'integration_policy_changed'; + } + + /** + * (team_policies) Changed invite accept email policy for team + */ + export interface EventTypeArgInviteAcceptanceEmailPolicyChanged { + '.tag': 'invite_acceptance_email_policy_changed'; + } + + /** + * (team_policies) Changed whether users can find team when not invited + */ + export interface EventTypeArgMemberRequestsChangePolicy { + '.tag': 'member_requests_change_policy'; + } + + /** + * (team_policies) Changed member send invite policy for team + */ + export interface EventTypeArgMemberSendInvitePolicyChanged { + '.tag': 'member_send_invite_policy_changed'; + } + + /** + * (team_policies) Added members to member space limit exception list + */ + export interface EventTypeArgMemberSpaceLimitsAddException { + '.tag': 'member_space_limits_add_exception'; + } + + /** + * (team_policies) Changed member space limit type for team + */ + export interface EventTypeArgMemberSpaceLimitsChangeCapsTypePolicy { + '.tag': 'member_space_limits_change_caps_type_policy'; + } + + /** + * (team_policies) Changed team default member space limit + */ + export interface EventTypeArgMemberSpaceLimitsChangePolicy { + '.tag': 'member_space_limits_change_policy'; + } + + /** + * (team_policies) Removed members from member space limit exception list + */ + export interface EventTypeArgMemberSpaceLimitsRemoveException { + '.tag': 'member_space_limits_remove_exception'; + } + + /** + * (team_policies) Enabled/disabled option for team members to suggest + * people to add to team + */ + export interface EventTypeArgMemberSuggestionsChangePolicy { + '.tag': 'member_suggestions_change_policy'; + } + + /** + * (team_policies) Enabled/disabled Microsoft Office add-in + */ + export interface EventTypeArgMicrosoftOfficeAddinChangePolicy { + '.tag': 'microsoft_office_addin_change_policy'; + } + + /** + * (team_policies) Enabled/disabled network control + */ + export interface EventTypeArgNetworkControlChangePolicy { + '.tag': 'network_control_change_policy'; + } + + /** + * (team_policies) Changed whether Dropbox Paper, when enabled, is deployed + * to all members or to specific members + */ + export interface EventTypeArgPaperChangeDeploymentPolicy { + '.tag': 'paper_change_deployment_policy'; + } + + /** + * (team_policies) Changed whether non-members can view Paper docs with link + * (deprecated, no longer logged) + */ + export interface EventTypeArgPaperChangeMemberLinkPolicy { + '.tag': 'paper_change_member_link_policy'; + } + + /** + * (team_policies) Changed whether members can share Paper docs outside + * team, and if docs are accessible only by team members or anyone by + * default + */ + export interface EventTypeArgPaperChangeMemberPolicy { + '.tag': 'paper_change_member_policy'; + } + + /** + * (team_policies) Enabled/disabled Dropbox Paper for team + */ + export interface EventTypeArgPaperChangePolicy { + '.tag': 'paper_change_policy'; + } + + /** + * (team_policies) Changed Paper Default Folder Policy setting for team + */ + export interface EventTypeArgPaperDefaultFolderPolicyChanged { + '.tag': 'paper_default_folder_policy_changed'; + } + + /** + * (team_policies) Enabled/disabled Paper Desktop for team + */ + export interface EventTypeArgPaperDesktopPolicyChanged { + '.tag': 'paper_desktop_policy_changed'; + } + + /** + * (team_policies) Added users to Paper-enabled users list + */ + export interface EventTypeArgPaperEnabledUsersGroupAddition { + '.tag': 'paper_enabled_users_group_addition'; + } + + /** + * (team_policies) Removed users from Paper-enabled users list + */ + export interface EventTypeArgPaperEnabledUsersGroupRemoval { + '.tag': 'paper_enabled_users_group_removal'; + } + + /** + * (team_policies) Changed team password strength requirements + */ + export interface EventTypeArgPasswordStrengthRequirementsChangePolicy { + '.tag': 'password_strength_requirements_change_policy'; + } + + /** + * (team_policies) Enabled/disabled ability of team members to permanently + * delete content + */ + export interface EventTypeArgPermanentDeleteChangePolicy { + '.tag': 'permanent_delete_change_policy'; + } + + /** + * (team_policies) Enabled/disabled reseller support + */ + export interface EventTypeArgResellerSupportChangePolicy { + '.tag': 'reseller_support_change_policy'; + } + + /** + * (team_policies) Changed Rewind policy for team + */ + export interface EventTypeArgRewindPolicyChanged { + '.tag': 'rewind_policy_changed'; + } + + /** + * (team_policies) Changed send for signature policy for team + */ + export interface EventTypeArgSendForSignaturePolicyChanged { + '.tag': 'send_for_signature_policy_changed'; + } + + /** + * (team_policies) Changed whether team members can join shared folders + * owned outside team + */ + export interface EventTypeArgSharingChangeFolderJoinPolicy { + '.tag': 'sharing_change_folder_join_policy'; + } + + /** + * (team_policies) Changed the allow remove or change expiration policy for + * the links shared outside of the team + */ + export interface EventTypeArgSharingChangeLinkAllowChangeExpirationPolicy { + '.tag': 'sharing_change_link_allow_change_expiration_policy'; + } + + /** + * (team_policies) Changed the default expiration for the links shared + * outside of the team + */ + export interface EventTypeArgSharingChangeLinkDefaultExpirationPolicy { + '.tag': 'sharing_change_link_default_expiration_policy'; + } + + /** + * (team_policies) Changed the password requirement for the links shared + * outside of the team + */ + export interface EventTypeArgSharingChangeLinkEnforcePasswordPolicy { + '.tag': 'sharing_change_link_enforce_password_policy'; + } + + /** + * (team_policies) Changed whether members can share links outside team, and + * if links are accessible only by team members or anyone by default + */ + export interface EventTypeArgSharingChangeLinkPolicy { + '.tag': 'sharing_change_link_policy'; + } + + /** + * (team_policies) Changed whether members can share files/folders outside + * team + */ + export interface EventTypeArgSharingChangeMemberPolicy { + '.tag': 'sharing_change_member_policy'; + } + + /** + * (team_policies) Enabled/disabled downloading files from Dropbox Showcase + * for team + */ + export interface EventTypeArgShowcaseChangeDownloadPolicy { + '.tag': 'showcase_change_download_policy'; + } + + /** + * (team_policies) Enabled/disabled Dropbox Showcase for team + */ + export interface EventTypeArgShowcaseChangeEnabledPolicy { + '.tag': 'showcase_change_enabled_policy'; + } + + /** + * (team_policies) Enabled/disabled sharing Dropbox Showcase externally for + * team + */ + export interface EventTypeArgShowcaseChangeExternalSharingPolicy { + '.tag': 'showcase_change_external_sharing_policy'; + } + + /** + * (team_policies) Changed automatic Smart Sync setting for team + */ + export interface EventTypeArgSmarterSmartSyncPolicyChanged { + '.tag': 'smarter_smart_sync_policy_changed'; + } + + /** + * (team_policies) Changed default Smart Sync setting for team members + */ + export interface EventTypeArgSmartSyncChangePolicy { + '.tag': 'smart_sync_change_policy'; + } + + /** + * (team_policies) Opted team into Smart Sync + */ + export interface EventTypeArgSmartSyncNotOptOut { + '.tag': 'smart_sync_not_opt_out'; + } + + /** + * (team_policies) Opted team out of Smart Sync + */ + export interface EventTypeArgSmartSyncOptOut { + '.tag': 'smart_sync_opt_out'; + } + + /** + * (team_policies) Changed single sign-on setting for team + */ + export interface EventTypeArgSsoChangePolicy { + '.tag': 'sso_change_policy'; + } + + /** + * (team_policies) Changed team branding policy for team + */ + export interface EventTypeArgTeamBrandingPolicyChanged { + '.tag': 'team_branding_policy_changed'; + } + + /** + * (team_policies) Changed App Integrations setting for team + */ + export interface EventTypeArgTeamExtensionsPolicyChanged { + '.tag': 'team_extensions_policy_changed'; + } + + /** + * (team_policies) Enabled/disabled Team Selective Sync for team + */ + export interface EventTypeArgTeamSelectiveSyncPolicyChanged { + '.tag': 'team_selective_sync_policy_changed'; + } + + /** + * (team_policies) Edited the approved list for sharing externally + */ + export interface EventTypeArgTeamSharingWhitelistSubjectsChanged { + '.tag': 'team_sharing_whitelist_subjects_changed'; + } + + /** + * (team_policies) Added members to two factor authentication exception list + */ + export interface EventTypeArgTfaAddException { + '.tag': 'tfa_add_exception'; + } + + /** + * (team_policies) Changed two-step verification setting for team + */ + export interface EventTypeArgTfaChangePolicy { + '.tag': 'tfa_change_policy'; + } + + /** + * (team_policies) Removed members from two factor authentication exception + * list + */ + export interface EventTypeArgTfaRemoveException { + '.tag': 'tfa_remove_exception'; + } + + /** + * (team_policies) Enabled/disabled option for members to link personal + * Dropbox account and team account to same computer + */ + export interface EventTypeArgTwoAccountChangePolicy { + '.tag': 'two_account_change_policy'; + } + + /** + * (team_policies) Changed team policy for viewer info + */ + export interface EventTypeArgViewerInfoPolicyChanged { + '.tag': 'viewer_info_policy_changed'; + } + + /** + * (team_policies) Changed watermarking policy for team + */ + export interface EventTypeArgWatermarkingPolicyChanged { + '.tag': 'watermarking_policy_changed'; + } + + /** + * (team_policies) Changed limit on active sessions per member + */ + export interface EventTypeArgWebSessionsChangeActiveSessionLimit { + '.tag': 'web_sessions_change_active_session_limit'; + } + + /** + * (team_policies) Changed how long members can stay signed in to + * Dropbox.com + */ + export interface EventTypeArgWebSessionsChangeFixedLengthPolicy { + '.tag': 'web_sessions_change_fixed_length_policy'; + } + + /** + * (team_policies) Changed how long team members can be idle while signed in + * to Dropbox.com + */ + export interface EventTypeArgWebSessionsChangeIdleLengthPolicy { + '.tag': 'web_sessions_change_idle_length_policy'; + } + + /** + * (team_profile) Requested data residency migration for team data + */ + export interface EventTypeArgDataResidencyMigrationRequestSuccessful { + '.tag': 'data_residency_migration_request_successful'; + } + + /** + * (team_profile) Request for data residency migration for team data has + * failed + */ + export interface EventTypeArgDataResidencyMigrationRequestUnsuccessful { + '.tag': 'data_residency_migration_request_unsuccessful'; + } + + /** + * (team_profile) Merged another team into this team + */ + export interface EventTypeArgTeamMergeFrom { + '.tag': 'team_merge_from'; + } + + /** + * (team_profile) Merged this team into another team + */ + export interface EventTypeArgTeamMergeTo { + '.tag': 'team_merge_to'; + } + + /** + * (team_profile) Added team background to display on shared link headers + */ + export interface EventTypeArgTeamProfileAddBackground { + '.tag': 'team_profile_add_background'; + } + + /** + * (team_profile) Added team logo to display on shared link headers + */ + export interface EventTypeArgTeamProfileAddLogo { + '.tag': 'team_profile_add_logo'; + } + + /** + * (team_profile) Changed team background displayed on shared link headers + */ + export interface EventTypeArgTeamProfileChangeBackground { + '.tag': 'team_profile_change_background'; + } + + /** + * (team_profile) Changed default language for team + */ + export interface EventTypeArgTeamProfileChangeDefaultLanguage { + '.tag': 'team_profile_change_default_language'; + } + + /** + * (team_profile) Changed team logo displayed on shared link headers + */ + export interface EventTypeArgTeamProfileChangeLogo { + '.tag': 'team_profile_change_logo'; + } + + /** + * (team_profile) Changed team name + */ + export interface EventTypeArgTeamProfileChangeName { + '.tag': 'team_profile_change_name'; + } + + /** + * (team_profile) Removed team background displayed on shared link headers + */ + export interface EventTypeArgTeamProfileRemoveBackground { + '.tag': 'team_profile_remove_background'; + } + + /** + * (team_profile) Removed team logo displayed on shared link headers + */ + export interface EventTypeArgTeamProfileRemoveLogo { + '.tag': 'team_profile_remove_logo'; + } + + /** + * (tfa) Added backup phone for two-step verification + */ + export interface EventTypeArgTfaAddBackupPhone { + '.tag': 'tfa_add_backup_phone'; + } + + /** + * (tfa) Added security key for two-step verification + */ + export interface EventTypeArgTfaAddSecurityKey { + '.tag': 'tfa_add_security_key'; + } + + /** + * (tfa) Changed backup phone for two-step verification + */ + export interface EventTypeArgTfaChangeBackupPhone { + '.tag': 'tfa_change_backup_phone'; + } + + /** + * (tfa) Enabled/disabled/changed two-step verification setting + */ + export interface EventTypeArgTfaChangeStatus { + '.tag': 'tfa_change_status'; + } + + /** + * (tfa) Removed backup phone for two-step verification + */ + export interface EventTypeArgTfaRemoveBackupPhone { + '.tag': 'tfa_remove_backup_phone'; + } + + /** + * (tfa) Removed security key for two-step verification + */ + export interface EventTypeArgTfaRemoveSecurityKey { + '.tag': 'tfa_remove_security_key'; + } + + /** + * (tfa) Reset two-step verification for team member + */ + export interface EventTypeArgTfaReset { + '.tag': 'tfa_reset'; + } + + /** + * (trusted_teams) Changed enterprise admin role + */ + export interface EventTypeArgChangedEnterpriseAdminRole { + '.tag': 'changed_enterprise_admin_role'; + } + + /** + * (trusted_teams) Changed enterprise-connected team status + */ + export interface EventTypeArgChangedEnterpriseConnectedTeamStatus { + '.tag': 'changed_enterprise_connected_team_status'; + } + + /** + * (trusted_teams) Ended enterprise admin session + */ + export interface EventTypeArgEndedEnterpriseAdminSession { + '.tag': 'ended_enterprise_admin_session'; + } + + /** + * (trusted_teams) Ended enterprise admin session (deprecated, replaced by + * 'Ended enterprise admin session') + */ + export interface EventTypeArgEndedEnterpriseAdminSessionDeprecated { + '.tag': 'ended_enterprise_admin_session_deprecated'; + } + + /** + * (trusted_teams) Changed who can update a setting + */ + export interface EventTypeArgEnterpriseSettingsLocking { + '.tag': 'enterprise_settings_locking'; + } + + /** + * (trusted_teams) Changed guest team admin status + */ + export interface EventTypeArgGuestAdminChangeStatus { + '.tag': 'guest_admin_change_status'; + } + + /** + * (trusted_teams) Started enterprise admin session + */ + export interface EventTypeArgStartedEnterpriseAdminSession { + '.tag': 'started_enterprise_admin_session'; + } + + /** + * (trusted_teams) Accepted a team merge request + */ + export interface EventTypeArgTeamMergeRequestAccepted { + '.tag': 'team_merge_request_accepted'; + } + + /** + * (trusted_teams) Accepted a team merge request (deprecated, replaced by + * 'Accepted a team merge request') + */ + export interface EventTypeArgTeamMergeRequestAcceptedShownToPrimaryTeam { + '.tag': 'team_merge_request_accepted_shown_to_primary_team'; + } + + /** + * (trusted_teams) Accepted a team merge request (deprecated, replaced by + * 'Accepted a team merge request') + */ + export interface EventTypeArgTeamMergeRequestAcceptedShownToSecondaryTeam { + '.tag': 'team_merge_request_accepted_shown_to_secondary_team'; + } + + /** + * (trusted_teams) Automatically canceled team merge request + */ + export interface EventTypeArgTeamMergeRequestAutoCanceled { + '.tag': 'team_merge_request_auto_canceled'; + } + + /** + * (trusted_teams) Canceled a team merge request + */ + export interface EventTypeArgTeamMergeRequestCanceled { + '.tag': 'team_merge_request_canceled'; + } + + /** + * (trusted_teams) Canceled a team merge request (deprecated, replaced by + * 'Canceled a team merge request') + */ + export interface EventTypeArgTeamMergeRequestCanceledShownToPrimaryTeam { + '.tag': 'team_merge_request_canceled_shown_to_primary_team'; + } + + /** + * (trusted_teams) Canceled a team merge request (deprecated, replaced by + * 'Canceled a team merge request') + */ + export interface EventTypeArgTeamMergeRequestCanceledShownToSecondaryTeam { + '.tag': 'team_merge_request_canceled_shown_to_secondary_team'; + } + + /** + * (trusted_teams) Team merge request expired + */ + export interface EventTypeArgTeamMergeRequestExpired { + '.tag': 'team_merge_request_expired'; + } + + /** + * (trusted_teams) Team merge request expired (deprecated, replaced by 'Team + * merge request expired') + */ + export interface EventTypeArgTeamMergeRequestExpiredShownToPrimaryTeam { + '.tag': 'team_merge_request_expired_shown_to_primary_team'; + } + + /** + * (trusted_teams) Team merge request expired (deprecated, replaced by 'Team + * merge request expired') + */ + export interface EventTypeArgTeamMergeRequestExpiredShownToSecondaryTeam { + '.tag': 'team_merge_request_expired_shown_to_secondary_team'; + } + + /** + * (trusted_teams) Rejected a team merge request (deprecated, no longer + * logged) + */ + export interface EventTypeArgTeamMergeRequestRejectedShownToPrimaryTeam { + '.tag': 'team_merge_request_rejected_shown_to_primary_team'; + } + + /** + * (trusted_teams) Rejected a team merge request (deprecated, no longer + * logged) + */ + export interface EventTypeArgTeamMergeRequestRejectedShownToSecondaryTeam { + '.tag': 'team_merge_request_rejected_shown_to_secondary_team'; + } + + /** + * (trusted_teams) Sent a team merge request reminder + */ + export interface EventTypeArgTeamMergeRequestReminder { + '.tag': 'team_merge_request_reminder'; + } + + /** + * (trusted_teams) Sent a team merge request reminder (deprecated, replaced + * by 'Sent a team merge request reminder') + */ + export interface EventTypeArgTeamMergeRequestReminderShownToPrimaryTeam { + '.tag': 'team_merge_request_reminder_shown_to_primary_team'; + } + + /** + * (trusted_teams) Sent a team merge request reminder (deprecated, replaced + * by 'Sent a team merge request reminder') + */ + export interface EventTypeArgTeamMergeRequestReminderShownToSecondaryTeam { + '.tag': 'team_merge_request_reminder_shown_to_secondary_team'; + } + + /** + * (trusted_teams) Canceled the team merge + */ + export interface EventTypeArgTeamMergeRequestRevoked { + '.tag': 'team_merge_request_revoked'; + } + + /** + * (trusted_teams) Requested to merge their Dropbox team into yours + */ + export interface EventTypeArgTeamMergeRequestSentShownToPrimaryTeam { + '.tag': 'team_merge_request_sent_shown_to_primary_team'; + } + + /** + * (trusted_teams) Requested to merge your team into another Dropbox team + */ + export interface EventTypeArgTeamMergeRequestSentShownToSecondaryTeam { + '.tag': 'team_merge_request_sent_shown_to_secondary_team'; + } + + export interface EventTypeArgOther { + '.tag': 'other'; + } + + /** + * The type of the event. + */ + export type EventTypeArg = EventTypeArgAdminAlertingAlertStateChanged | EventTypeArgAdminAlertingChangedAlertConfig | EventTypeArgAdminAlertingTriggeredAlert | EventTypeArgAppBlockedByPermissions | EventTypeArgAppLinkTeam | EventTypeArgAppLinkUser | EventTypeArgAppUnlinkTeam | EventTypeArgAppUnlinkUser | EventTypeArgIntegrationConnected | EventTypeArgIntegrationDisconnected | EventTypeArgFileAddComment | EventTypeArgFileChangeCommentSubscription | EventTypeArgFileDeleteComment | EventTypeArgFileEditComment | EventTypeArgFileLikeComment | EventTypeArgFileResolveComment | EventTypeArgFileUnlikeComment | EventTypeArgFileUnresolveComment | EventTypeArgGovernancePolicyAddFolders | EventTypeArgGovernancePolicyAddFolderFailed | EventTypeArgGovernancePolicyContentDisposed | EventTypeArgGovernancePolicyCreate | EventTypeArgGovernancePolicyDelete | EventTypeArgGovernancePolicyEditDetails | EventTypeArgGovernancePolicyEditDuration | EventTypeArgGovernancePolicyExportCreated | EventTypeArgGovernancePolicyExportRemoved | EventTypeArgGovernancePolicyRemoveFolders | EventTypeArgGovernancePolicyReportCreated | EventTypeArgGovernancePolicyZipPartDownloaded | EventTypeArgLegalHoldsActivateAHold | EventTypeArgLegalHoldsAddMembers | EventTypeArgLegalHoldsChangeHoldDetails | EventTypeArgLegalHoldsChangeHoldName | EventTypeArgLegalHoldsExportAHold | EventTypeArgLegalHoldsExportCancelled | EventTypeArgLegalHoldsExportDownloaded | EventTypeArgLegalHoldsExportRemoved | EventTypeArgLegalHoldsReleaseAHold | EventTypeArgLegalHoldsRemoveMembers | EventTypeArgLegalHoldsReportAHold | EventTypeArgDeviceChangeIpDesktop | EventTypeArgDeviceChangeIpMobile | EventTypeArgDeviceChangeIpWeb | EventTypeArgDeviceDeleteOnUnlinkFail | EventTypeArgDeviceDeleteOnUnlinkSuccess | EventTypeArgDeviceLinkFail | EventTypeArgDeviceLinkSuccess | EventTypeArgDeviceManagementDisabled | EventTypeArgDeviceManagementEnabled | EventTypeArgDeviceSyncBackupStatusChanged | EventTypeArgDeviceUnlink | EventTypeArgDropboxPasswordsExported | EventTypeArgDropboxPasswordsNewDeviceEnrolled | EventTypeArgEmmRefreshAuthToken | EventTypeArgExternalDriveBackupEligibilityStatusChecked | EventTypeArgExternalDriveBackupStatusChanged | EventTypeArgAccountCaptureChangeAvailability | EventTypeArgAccountCaptureMigrateAccount | EventTypeArgAccountCaptureNotificationEmailsSent | EventTypeArgAccountCaptureRelinquishAccount | EventTypeArgDisabledDomainInvites | EventTypeArgDomainInvitesApproveRequestToJoinTeam | EventTypeArgDomainInvitesDeclineRequestToJoinTeam | EventTypeArgDomainInvitesEmailExistingUsers | EventTypeArgDomainInvitesRequestToJoinTeam | EventTypeArgDomainInvitesSetInviteNewUserPrefToNo | EventTypeArgDomainInvitesSetInviteNewUserPrefToYes | EventTypeArgDomainVerificationAddDomainFail | EventTypeArgDomainVerificationAddDomainSuccess | EventTypeArgDomainVerificationRemoveDomain | EventTypeArgEnabledDomainInvites | EventTypeArgApplyNamingConvention | EventTypeArgCreateFolder | EventTypeArgFileAdd | EventTypeArgFileCopy | EventTypeArgFileDelete | EventTypeArgFileDownload | EventTypeArgFileEdit | EventTypeArgFileGetCopyReference | EventTypeArgFileLockingLockStatusChanged | EventTypeArgFileMove | EventTypeArgFilePermanentlyDelete | EventTypeArgFilePreview | EventTypeArgFileRename | EventTypeArgFileRestore | EventTypeArgFileRevert | EventTypeArgFileRollbackChanges | EventTypeArgFileSaveCopyReference | EventTypeArgFolderOverviewDescriptionChanged | EventTypeArgFolderOverviewItemPinned | EventTypeArgFolderOverviewItemUnpinned | EventTypeArgObjectLabelAdded | EventTypeArgObjectLabelRemoved | EventTypeArgObjectLabelUpdatedValue | EventTypeArgOrganizeFolderWithTidy | EventTypeArgRewindFolder | EventTypeArgUndoNamingConvention | EventTypeArgUndoOrganizeFolderWithTidy | EventTypeArgUserTagsAdded | EventTypeArgUserTagsRemoved | EventTypeArgEmailIngestReceiveFile | EventTypeArgFileRequestChange | EventTypeArgFileRequestClose | EventTypeArgFileRequestCreate | EventTypeArgFileRequestDelete | EventTypeArgFileRequestReceiveFile | EventTypeArgGroupAddExternalId | EventTypeArgGroupAddMember | EventTypeArgGroupChangeExternalId | EventTypeArgGroupChangeManagementType | EventTypeArgGroupChangeMemberRole | EventTypeArgGroupCreate | EventTypeArgGroupDelete | EventTypeArgGroupDescriptionUpdated | EventTypeArgGroupJoinPolicyUpdated | EventTypeArgGroupMoved | EventTypeArgGroupRemoveExternalId | EventTypeArgGroupRemoveMember | EventTypeArgGroupRename | EventTypeArgAccountLockOrUnlocked | EventTypeArgEmmError | EventTypeArgGuestAdminSignedInViaTrustedTeams | EventTypeArgGuestAdminSignedOutViaTrustedTeams | EventTypeArgLoginFail | EventTypeArgLoginSuccess | EventTypeArgLogout | EventTypeArgResellerSupportSessionEnd | EventTypeArgResellerSupportSessionStart | EventTypeArgSignInAsSessionEnd | EventTypeArgSignInAsSessionStart | EventTypeArgSsoError | EventTypeArgCreateTeamInviteLink | EventTypeArgDeleteTeamInviteLink | EventTypeArgMemberAddExternalId | EventTypeArgMemberAddName | EventTypeArgMemberChangeAdminRole | EventTypeArgMemberChangeEmail | EventTypeArgMemberChangeExternalId | EventTypeArgMemberChangeMembershipType | EventTypeArgMemberChangeName | EventTypeArgMemberChangeResellerRole | EventTypeArgMemberChangeStatus | EventTypeArgMemberDeleteManualContacts | EventTypeArgMemberDeleteProfilePhoto | EventTypeArgMemberPermanentlyDeleteAccountContents | EventTypeArgMemberRemoveExternalId | EventTypeArgMemberSetProfilePhoto | EventTypeArgMemberSpaceLimitsAddCustomQuota | EventTypeArgMemberSpaceLimitsChangeCustomQuota | EventTypeArgMemberSpaceLimitsChangeStatus | EventTypeArgMemberSpaceLimitsRemoveCustomQuota | EventTypeArgMemberSuggest | EventTypeArgMemberTransferAccountContents | EventTypeArgPendingSecondaryEmailAdded | EventTypeArgSecondaryEmailDeleted | EventTypeArgSecondaryEmailVerified | EventTypeArgSecondaryMailsPolicyChanged | EventTypeArgBinderAddPage | EventTypeArgBinderAddSection | EventTypeArgBinderRemovePage | EventTypeArgBinderRemoveSection | EventTypeArgBinderRenamePage | EventTypeArgBinderRenameSection | EventTypeArgBinderReorderPage | EventTypeArgBinderReorderSection | EventTypeArgPaperContentAddMember | EventTypeArgPaperContentAddToFolder | EventTypeArgPaperContentArchive | EventTypeArgPaperContentCreate | EventTypeArgPaperContentPermanentlyDelete | EventTypeArgPaperContentRemoveFromFolder | EventTypeArgPaperContentRemoveMember | EventTypeArgPaperContentRename | EventTypeArgPaperContentRestore | EventTypeArgPaperDocAddComment | EventTypeArgPaperDocChangeMemberRole | EventTypeArgPaperDocChangeSharingPolicy | EventTypeArgPaperDocChangeSubscription | EventTypeArgPaperDocDeleted | EventTypeArgPaperDocDeleteComment | EventTypeArgPaperDocDownload | EventTypeArgPaperDocEdit | EventTypeArgPaperDocEditComment | EventTypeArgPaperDocFollowed | EventTypeArgPaperDocMention | EventTypeArgPaperDocOwnershipChanged | EventTypeArgPaperDocRequestAccess | EventTypeArgPaperDocResolveComment | EventTypeArgPaperDocRevert | EventTypeArgPaperDocSlackShare | EventTypeArgPaperDocTeamInvite | EventTypeArgPaperDocTrashed | EventTypeArgPaperDocUnresolveComment | EventTypeArgPaperDocUntrashed | EventTypeArgPaperDocView | EventTypeArgPaperExternalViewAllow | EventTypeArgPaperExternalViewDefaultTeam | EventTypeArgPaperExternalViewForbid | EventTypeArgPaperFolderChangeSubscription | EventTypeArgPaperFolderDeleted | EventTypeArgPaperFolderFollowed | EventTypeArgPaperFolderTeamInvite | EventTypeArgPaperPublishedLinkChangePermission | EventTypeArgPaperPublishedLinkCreate | EventTypeArgPaperPublishedLinkDisabled | EventTypeArgPaperPublishedLinkView | EventTypeArgPasswordChange | EventTypeArgPasswordReset | EventTypeArgPasswordResetAll | EventTypeArgClassificationCreateReport | EventTypeArgClassificationCreateReportFail | EventTypeArgEmmCreateExceptionsReport | EventTypeArgEmmCreateUsageReport | EventTypeArgExportMembersReport | EventTypeArgExportMembersReportFail | EventTypeArgExternalSharingCreateReport | EventTypeArgExternalSharingReportFailed | EventTypeArgNoExpirationLinkGenCreateReport | EventTypeArgNoExpirationLinkGenReportFailed | EventTypeArgNoPasswordLinkGenCreateReport | EventTypeArgNoPasswordLinkGenReportFailed | EventTypeArgNoPasswordLinkViewCreateReport | EventTypeArgNoPasswordLinkViewReportFailed | EventTypeArgOutdatedLinkViewCreateReport | EventTypeArgOutdatedLinkViewReportFailed | EventTypeArgPaperAdminExportStart | EventTypeArgSmartSyncCreateAdminPrivilegeReport | EventTypeArgTeamActivityCreateReport | EventTypeArgTeamActivityCreateReportFail | EventTypeArgCollectionShare | EventTypeArgFileTransfersFileAdd | EventTypeArgFileTransfersTransferDelete | EventTypeArgFileTransfersTransferDownload | EventTypeArgFileTransfersTransferSend | EventTypeArgFileTransfersTransferView | EventTypeArgNoteAclInviteOnly | EventTypeArgNoteAclLink | EventTypeArgNoteAclTeamLink | EventTypeArgNoteShared | EventTypeArgNoteShareReceive | EventTypeArgOpenNoteShared | EventTypeArgSfAddGroup | EventTypeArgSfAllowNonMembersToViewSharedLinks | EventTypeArgSfExternalInviteWarn | EventTypeArgSfFbInvite | EventTypeArgSfFbInviteChangeRole | EventTypeArgSfFbUninvite | EventTypeArgSfInviteGroup | EventTypeArgSfTeamGrantAccess | EventTypeArgSfTeamInvite | EventTypeArgSfTeamInviteChangeRole | EventTypeArgSfTeamJoin | EventTypeArgSfTeamJoinFromOobLink | EventTypeArgSfTeamUninvite | EventTypeArgSharedContentAddInvitees | EventTypeArgSharedContentAddLinkExpiry | EventTypeArgSharedContentAddLinkPassword | EventTypeArgSharedContentAddMember | EventTypeArgSharedContentChangeDownloadsPolicy | EventTypeArgSharedContentChangeInviteeRole | EventTypeArgSharedContentChangeLinkAudience | EventTypeArgSharedContentChangeLinkExpiry | EventTypeArgSharedContentChangeLinkPassword | EventTypeArgSharedContentChangeMemberRole | EventTypeArgSharedContentChangeViewerInfoPolicy | EventTypeArgSharedContentClaimInvitation | EventTypeArgSharedContentCopy | EventTypeArgSharedContentDownload | EventTypeArgSharedContentRelinquishMembership | EventTypeArgSharedContentRemoveInvitees | EventTypeArgSharedContentRemoveLinkExpiry | EventTypeArgSharedContentRemoveLinkPassword | EventTypeArgSharedContentRemoveMember | EventTypeArgSharedContentRequestAccess | EventTypeArgSharedContentRestoreInvitees | EventTypeArgSharedContentRestoreMember | EventTypeArgSharedContentUnshare | EventTypeArgSharedContentView | EventTypeArgSharedFolderChangeLinkPolicy | EventTypeArgSharedFolderChangeMembersInheritancePolicy | EventTypeArgSharedFolderChangeMembersManagementPolicy | EventTypeArgSharedFolderChangeMembersPolicy | EventTypeArgSharedFolderCreate | EventTypeArgSharedFolderDeclineInvitation | EventTypeArgSharedFolderMount | EventTypeArgSharedFolderNest | EventTypeArgSharedFolderTransferOwnership | EventTypeArgSharedFolderUnmount | EventTypeArgSharedLinkAddExpiry | EventTypeArgSharedLinkChangeExpiry | EventTypeArgSharedLinkChangeVisibility | EventTypeArgSharedLinkCopy | EventTypeArgSharedLinkCreate | EventTypeArgSharedLinkDisable | EventTypeArgSharedLinkDownload | EventTypeArgSharedLinkRemoveExpiry | EventTypeArgSharedLinkSettingsAddExpiration | EventTypeArgSharedLinkSettingsAddPassword | EventTypeArgSharedLinkSettingsAllowDownloadDisabled | EventTypeArgSharedLinkSettingsAllowDownloadEnabled | EventTypeArgSharedLinkSettingsChangeAudience | EventTypeArgSharedLinkSettingsChangeExpiration | EventTypeArgSharedLinkSettingsChangePassword | EventTypeArgSharedLinkSettingsRemoveExpiration | EventTypeArgSharedLinkSettingsRemovePassword | EventTypeArgSharedLinkShare | EventTypeArgSharedLinkView | EventTypeArgSharedNoteOpened | EventTypeArgShmodelDisableDownloads | EventTypeArgShmodelEnableDownloads | EventTypeArgShmodelGroupShare | EventTypeArgShowcaseAccessGranted | EventTypeArgShowcaseAddMember | EventTypeArgShowcaseArchived | EventTypeArgShowcaseCreated | EventTypeArgShowcaseDeleteComment | EventTypeArgShowcaseEdited | EventTypeArgShowcaseEditComment | EventTypeArgShowcaseFileAdded | EventTypeArgShowcaseFileDownload | EventTypeArgShowcaseFileRemoved | EventTypeArgShowcaseFileView | EventTypeArgShowcasePermanentlyDeleted | EventTypeArgShowcasePostComment | EventTypeArgShowcaseRemoveMember | EventTypeArgShowcaseRenamed | EventTypeArgShowcaseRequestAccess | EventTypeArgShowcaseResolveComment | EventTypeArgShowcaseRestored | EventTypeArgShowcaseTrashed | EventTypeArgShowcaseTrashedDeprecated | EventTypeArgShowcaseUnresolveComment | EventTypeArgShowcaseUntrashed | EventTypeArgShowcaseUntrashedDeprecated | EventTypeArgShowcaseView | EventTypeArgSsoAddCert | EventTypeArgSsoAddLoginUrl | EventTypeArgSsoAddLogoutUrl | EventTypeArgSsoChangeCert | EventTypeArgSsoChangeLoginUrl | EventTypeArgSsoChangeLogoutUrl | EventTypeArgSsoChangeSamlIdentityMode | EventTypeArgSsoRemoveCert | EventTypeArgSsoRemoveLoginUrl | EventTypeArgSsoRemoveLogoutUrl | EventTypeArgTeamFolderChangeStatus | EventTypeArgTeamFolderCreate | EventTypeArgTeamFolderDowngrade | EventTypeArgTeamFolderPermanentlyDelete | EventTypeArgTeamFolderRename | EventTypeArgTeamSelectiveSyncSettingsChanged | EventTypeArgAccountCaptureChangePolicy | EventTypeArgAdminEmailRemindersChanged | EventTypeArgAllowDownloadDisabled | EventTypeArgAllowDownloadEnabled | EventTypeArgAppPermissionsChanged | EventTypeArgCameraUploadsPolicyChanged | EventTypeArgCaptureTranscriptPolicyChanged | EventTypeArgClassificationChangePolicy | EventTypeArgComputerBackupPolicyChanged | EventTypeArgContentAdministrationPolicyChanged | EventTypeArgDataPlacementRestrictionChangePolicy | EventTypeArgDataPlacementRestrictionSatisfyPolicy | EventTypeArgDeviceApprovalsAddException | EventTypeArgDeviceApprovalsChangeDesktopPolicy | EventTypeArgDeviceApprovalsChangeMobilePolicy | EventTypeArgDeviceApprovalsChangeOverageAction | EventTypeArgDeviceApprovalsChangeUnlinkAction | EventTypeArgDeviceApprovalsRemoveException | EventTypeArgDirectoryRestrictionsAddMembers | EventTypeArgDirectoryRestrictionsRemoveMembers | EventTypeArgDropboxPasswordsPolicyChanged | EventTypeArgEmailIngestPolicyChanged | EventTypeArgEmmAddException | EventTypeArgEmmChangePolicy | EventTypeArgEmmRemoveException | EventTypeArgExtendedVersionHistoryChangePolicy | EventTypeArgExternalDriveBackupPolicyChanged | EventTypeArgFileCommentsChangePolicy | EventTypeArgFileLockingPolicyChanged | EventTypeArgFileProviderMigrationPolicyChanged | EventTypeArgFileRequestsChangePolicy | EventTypeArgFileRequestsEmailsEnabled | EventTypeArgFileRequestsEmailsRestrictedToTeamOnly | EventTypeArgFileTransfersPolicyChanged | EventTypeArgFolderLinkRestrictionPolicyChanged | EventTypeArgGoogleSsoChangePolicy | EventTypeArgGroupUserManagementChangePolicy | EventTypeArgIntegrationPolicyChanged | EventTypeArgInviteAcceptanceEmailPolicyChanged | EventTypeArgMemberRequestsChangePolicy | EventTypeArgMemberSendInvitePolicyChanged | EventTypeArgMemberSpaceLimitsAddException | EventTypeArgMemberSpaceLimitsChangeCapsTypePolicy | EventTypeArgMemberSpaceLimitsChangePolicy | EventTypeArgMemberSpaceLimitsRemoveException | EventTypeArgMemberSuggestionsChangePolicy | EventTypeArgMicrosoftOfficeAddinChangePolicy | EventTypeArgNetworkControlChangePolicy | EventTypeArgPaperChangeDeploymentPolicy | EventTypeArgPaperChangeMemberLinkPolicy | EventTypeArgPaperChangeMemberPolicy | EventTypeArgPaperChangePolicy | EventTypeArgPaperDefaultFolderPolicyChanged | EventTypeArgPaperDesktopPolicyChanged | EventTypeArgPaperEnabledUsersGroupAddition | EventTypeArgPaperEnabledUsersGroupRemoval | EventTypeArgPasswordStrengthRequirementsChangePolicy | EventTypeArgPermanentDeleteChangePolicy | EventTypeArgResellerSupportChangePolicy | EventTypeArgRewindPolicyChanged | EventTypeArgSendForSignaturePolicyChanged | EventTypeArgSharingChangeFolderJoinPolicy | EventTypeArgSharingChangeLinkAllowChangeExpirationPolicy | EventTypeArgSharingChangeLinkDefaultExpirationPolicy | EventTypeArgSharingChangeLinkEnforcePasswordPolicy | EventTypeArgSharingChangeLinkPolicy | EventTypeArgSharingChangeMemberPolicy | EventTypeArgShowcaseChangeDownloadPolicy | EventTypeArgShowcaseChangeEnabledPolicy | EventTypeArgShowcaseChangeExternalSharingPolicy | EventTypeArgSmarterSmartSyncPolicyChanged | EventTypeArgSmartSyncChangePolicy | EventTypeArgSmartSyncNotOptOut | EventTypeArgSmartSyncOptOut | EventTypeArgSsoChangePolicy | EventTypeArgTeamBrandingPolicyChanged | EventTypeArgTeamExtensionsPolicyChanged | EventTypeArgTeamSelectiveSyncPolicyChanged | EventTypeArgTeamSharingWhitelistSubjectsChanged | EventTypeArgTfaAddException | EventTypeArgTfaChangePolicy | EventTypeArgTfaRemoveException | EventTypeArgTwoAccountChangePolicy | EventTypeArgViewerInfoPolicyChanged | EventTypeArgWatermarkingPolicyChanged | EventTypeArgWebSessionsChangeActiveSessionLimit | EventTypeArgWebSessionsChangeFixedLengthPolicy | EventTypeArgWebSessionsChangeIdleLengthPolicy | EventTypeArgDataResidencyMigrationRequestSuccessful | EventTypeArgDataResidencyMigrationRequestUnsuccessful | EventTypeArgTeamMergeFrom | EventTypeArgTeamMergeTo | EventTypeArgTeamProfileAddBackground | EventTypeArgTeamProfileAddLogo | EventTypeArgTeamProfileChangeBackground | EventTypeArgTeamProfileChangeDefaultLanguage | EventTypeArgTeamProfileChangeLogo | EventTypeArgTeamProfileChangeName | EventTypeArgTeamProfileRemoveBackground | EventTypeArgTeamProfileRemoveLogo | EventTypeArgTfaAddBackupPhone | EventTypeArgTfaAddSecurityKey | EventTypeArgTfaChangeBackupPhone | EventTypeArgTfaChangeStatus | EventTypeArgTfaRemoveBackupPhone | EventTypeArgTfaRemoveSecurityKey | EventTypeArgTfaReset | EventTypeArgChangedEnterpriseAdminRole | EventTypeArgChangedEnterpriseConnectedTeamStatus | EventTypeArgEndedEnterpriseAdminSession | EventTypeArgEndedEnterpriseAdminSessionDeprecated | EventTypeArgEnterpriseSettingsLocking | EventTypeArgGuestAdminChangeStatus | EventTypeArgStartedEnterpriseAdminSession | EventTypeArgTeamMergeRequestAccepted | EventTypeArgTeamMergeRequestAcceptedShownToPrimaryTeam | EventTypeArgTeamMergeRequestAcceptedShownToSecondaryTeam | EventTypeArgTeamMergeRequestAutoCanceled | EventTypeArgTeamMergeRequestCanceled | EventTypeArgTeamMergeRequestCanceledShownToPrimaryTeam | EventTypeArgTeamMergeRequestCanceledShownToSecondaryTeam | EventTypeArgTeamMergeRequestExpired | EventTypeArgTeamMergeRequestExpiredShownToPrimaryTeam | EventTypeArgTeamMergeRequestExpiredShownToSecondaryTeam | EventTypeArgTeamMergeRequestRejectedShownToPrimaryTeam | EventTypeArgTeamMergeRequestRejectedShownToSecondaryTeam | EventTypeArgTeamMergeRequestReminder | EventTypeArgTeamMergeRequestReminderShownToPrimaryTeam | EventTypeArgTeamMergeRequestReminderShownToSecondaryTeam | EventTypeArgTeamMergeRequestRevoked | EventTypeArgTeamMergeRequestSentShownToPrimaryTeam | EventTypeArgTeamMergeRequestSentShownToSecondaryTeam | EventTypeArgOther; + + /** + * Created member data report. + */ + export interface ExportMembersReportDetails { + } + + /** + * Failed to create members data report. + */ + export interface ExportMembersReportFailDetails { + /** + * Failure reason. + */ + failure_reason: team.TeamReportFailureReason; + } + + export interface ExportMembersReportFailType { + description: string; + } + + export interface ExportMembersReportType { + description: string; + } + + /** + * Accepted/opted out of extended version history. + */ + export interface ExtendedVersionHistoryChangePolicyDetails { + /** + * New extended version history policy. + */ + new_value: ExtendedVersionHistoryPolicy; + /** + * Previous extended version history policy. Might be missing due to + * historical data gap. + */ + previous_value?: ExtendedVersionHistoryPolicy; + } + + export interface ExtendedVersionHistoryChangePolicyType { + description: string; + } + + export interface ExtendedVersionHistoryPolicyExplicitlyLimited { + '.tag': 'explicitly_limited'; + } + + export interface ExtendedVersionHistoryPolicyExplicitlyUnlimited { + '.tag': 'explicitly_unlimited'; + } + + export interface ExtendedVersionHistoryPolicyImplicitlyLimited { + '.tag': 'implicitly_limited'; + } + + export interface ExtendedVersionHistoryPolicyImplicitlyUnlimited { + '.tag': 'implicitly_unlimited'; + } + + export interface ExtendedVersionHistoryPolicyOther { + '.tag': 'other'; + } + + export type ExtendedVersionHistoryPolicy = ExtendedVersionHistoryPolicyExplicitlyLimited | ExtendedVersionHistoryPolicyExplicitlyUnlimited | ExtendedVersionHistoryPolicyImplicitlyLimited | ExtendedVersionHistoryPolicyImplicitlyUnlimited | ExtendedVersionHistoryPolicyOther; + + export interface ExternalDriveBackupEligibilityStatusExceedLicenseCap { + '.tag': 'exceed_license_cap'; + } + + export interface ExternalDriveBackupEligibilityStatusSuccess { + '.tag': 'success'; + } + + export interface ExternalDriveBackupEligibilityStatusOther { + '.tag': 'other'; + } + + /** + * External Drive Backup eligibility status + */ + export type ExternalDriveBackupEligibilityStatus = ExternalDriveBackupEligibilityStatusExceedLicenseCap | ExternalDriveBackupEligibilityStatusSuccess | ExternalDriveBackupEligibilityStatusOther; + + /** + * Checked external drive backup eligibility status. + */ + export interface ExternalDriveBackupEligibilityStatusCheckedDetails { + /** + * Device's session logged information. + */ + desktop_device_session_info: DesktopDeviceSessionLogInfo; + /** + * Current eligibility status of external drive backup. + */ + status: ExternalDriveBackupEligibilityStatus; + /** + * Total number of valid external drive backup for all the team members. + */ + number_of_external_drive_backup: number; + } + + export interface ExternalDriveBackupEligibilityStatusCheckedType { + description: string; + } + + export interface ExternalDriveBackupPolicyDefault { + '.tag': 'default'; + } + + export interface ExternalDriveBackupPolicyDisabled { + '.tag': 'disabled'; + } + + export interface ExternalDriveBackupPolicyEnabled { + '.tag': 'enabled'; + } + + export interface ExternalDriveBackupPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling team access to external drive backup feature + */ + export type ExternalDriveBackupPolicy = ExternalDriveBackupPolicyDefault | ExternalDriveBackupPolicyDisabled | ExternalDriveBackupPolicyEnabled | ExternalDriveBackupPolicyOther; + + /** + * Changed external drive backup policy for team. + */ + export interface ExternalDriveBackupPolicyChangedDetails { + /** + * New external drive backup policy. + */ + new_value: ExternalDriveBackupPolicy; + /** + * Previous external drive backup policy. + */ + previous_value: ExternalDriveBackupPolicy; + } + + export interface ExternalDriveBackupPolicyChangedType { + description: string; + } + + export interface ExternalDriveBackupStatusBroken { + '.tag': 'broken'; + } + + export interface ExternalDriveBackupStatusCreated { + '.tag': 'created'; + } + + export interface ExternalDriveBackupStatusCreatedOrBroken { + '.tag': 'created_or_broken'; + } + + export interface ExternalDriveBackupStatusDeleted { + '.tag': 'deleted'; + } + + export interface ExternalDriveBackupStatusEmpty { + '.tag': 'empty'; + } + + export interface ExternalDriveBackupStatusUnknown { + '.tag': 'unknown'; + } + + export interface ExternalDriveBackupStatusOther { + '.tag': 'other'; + } + + /** + * External Drive Backup status + */ + export type ExternalDriveBackupStatus = ExternalDriveBackupStatusBroken | ExternalDriveBackupStatusCreated | ExternalDriveBackupStatusCreatedOrBroken | ExternalDriveBackupStatusDeleted | ExternalDriveBackupStatusEmpty | ExternalDriveBackupStatusUnknown | ExternalDriveBackupStatusOther; + + /** + * Modified external drive backup. + */ + export interface ExternalDriveBackupStatusChangedDetails { + /** + * Device's session logged information. + */ + desktop_device_session_info: DesktopDeviceSessionLogInfo; + /** + * Previous status of this external drive backup. + */ + previous_value: ExternalDriveBackupStatus; + /** + * Next status of this external drive backup. + */ + new_value: ExternalDriveBackupStatus; + } + + export interface ExternalDriveBackupStatusChangedType { + description: string; + } + + /** + * Created External sharing report. + */ + export interface ExternalSharingCreateReportDetails { + } + + export interface ExternalSharingCreateReportType { + description: string; + } + + /** + * Couldn't create External sharing report. + */ + export interface ExternalSharingReportFailedDetails { + /** + * Failure reason. + */ + failure_reason: team.TeamReportFailureReason; + } + + export interface ExternalSharingReportFailedType { + description: string; + } + + /** + * A user without a Dropbox account. + */ + export interface ExternalUserLogInfo { + /** + * An external user identifier. + */ + user_identifier: string; + /** + * Identifier type. + */ + identifier_type: IdentifierType; + } + + /** + * Provides details about a failure + */ + export interface FailureDetailsLogInfo { + /** + * A user friendly explanation of the error. + */ + user_friendly_message?: string; + /** + * A technical explanation of the error. This is relevant for some errors. + */ + technical_error_message?: string; + } + + export interface FedAdminRoleEnterpriseAdmin { + '.tag': 'enterprise_admin'; + } + + export interface FedAdminRoleNotEnterpriseAdmin { + '.tag': 'not_enterprise_admin'; + } + + export interface FedAdminRoleOther { + '.tag': 'other'; + } + + export type FedAdminRole = FedAdminRoleEnterpriseAdmin | FedAdminRoleNotEnterpriseAdmin | FedAdminRoleOther; + + /** + * More details about the organization. + */ + export interface FedExtraDetailsOrganization extends OrganizationDetails { + '.tag': 'organization'; + } + + /** + * More details about the team. + */ + export interface FedExtraDetailsTeam extends TeamDetails { + '.tag': 'team'; + } + + export interface FedExtraDetailsOther { + '.tag': 'other'; + } + + /** + * More details about the organization or team. + */ + export type FedExtraDetails = FedExtraDetailsOrganization | FedExtraDetailsTeam | FedExtraDetailsOther; + + export interface FedHandshakeActionAcceptedInvite { + '.tag': 'accepted_invite'; + } + + export interface FedHandshakeActionCanceledInvite { + '.tag': 'canceled_invite'; + } + + export interface FedHandshakeActionInviteExpired { + '.tag': 'invite_expired'; + } + + export interface FedHandshakeActionInvited { + '.tag': 'invited'; + } + + export interface FedHandshakeActionRejectedInvite { + '.tag': 'rejected_invite'; + } + + export interface FedHandshakeActionRemovedTeam { + '.tag': 'removed_team'; + } + + export interface FedHandshakeActionOther { + '.tag': 'other'; + } + + export type FedHandshakeAction = FedHandshakeActionAcceptedInvite | FedHandshakeActionCanceledInvite | FedHandshakeActionInviteExpired | FedHandshakeActionInvited | FedHandshakeActionRejectedInvite | FedHandshakeActionRemovedTeam | FedHandshakeActionOther; + + /** + * The name of the team. + */ + export interface FederationStatusChangeAdditionalInfoConnectedTeamName extends ConnectedTeamName { + '.tag': 'connected_team_name'; + } + + /** + * The email to which the request was sent. + */ + export interface FederationStatusChangeAdditionalInfoNonTrustedTeamDetails extends NonTrustedTeamDetails { + '.tag': 'non_trusted_team_details'; + } + + /** + * The name of the organization. + */ + export interface FederationStatusChangeAdditionalInfoOrganizationName extends OrganizationName { + '.tag': 'organization_name'; + } + + export interface FederationStatusChangeAdditionalInfoOther { + '.tag': 'other'; + } + + /** + * Additional information about the organization or connected team + */ + export type FederationStatusChangeAdditionalInfo = FederationStatusChangeAdditionalInfoConnectedTeamName | FederationStatusChangeAdditionalInfoNonTrustedTeamDetails | FederationStatusChangeAdditionalInfoOrganizationName | FederationStatusChangeAdditionalInfoOther; + + /** + * Added file comment. + */ + export interface FileAddCommentDetails { + /** + * Comment text. + */ + comment_text?: string; + } + + export interface FileAddCommentType { + description: string; + } + + /** + * Added files and/or folders. + */ + export interface FileAddDetails { + } + + export interface FileAddType { + description: string; + } + + /** + * Subscribed to or unsubscribed from comment notifications for file. + */ + export interface FileChangeCommentSubscriptionDetails { + /** + * New file comment subscription. + */ + new_value: FileCommentNotificationPolicy; + /** + * Previous file comment subscription. Might be missing due to historical + * data gap. + */ + previous_value?: FileCommentNotificationPolicy; + } + + export interface FileChangeCommentSubscriptionType { + description: string; + } + + export interface FileCommentNotificationPolicyDisabled { + '.tag': 'disabled'; + } + + export interface FileCommentNotificationPolicyEnabled { + '.tag': 'enabled'; + } + + export interface FileCommentNotificationPolicyOther { + '.tag': 'other'; + } + + /** + * Enable or disable file comments notifications + */ + export type FileCommentNotificationPolicy = FileCommentNotificationPolicyDisabled | FileCommentNotificationPolicyEnabled | FileCommentNotificationPolicyOther; + + /** + * Enabled/disabled commenting on team files. + */ + export interface FileCommentsChangePolicyDetails { + /** + * New commenting on team files policy. + */ + new_value: FileCommentsPolicy; + /** + * Previous commenting on team files policy. Might be missing due to + * historical data gap. + */ + previous_value?: FileCommentsPolicy; + } + + export interface FileCommentsChangePolicyType { + description: string; + } + + export interface FileCommentsPolicyDisabled { + '.tag': 'disabled'; + } + + export interface FileCommentsPolicyEnabled { + '.tag': 'enabled'; + } + + export interface FileCommentsPolicyOther { + '.tag': 'other'; + } + + /** + * File comments policy + */ + export type FileCommentsPolicy = FileCommentsPolicyDisabled | FileCommentsPolicyEnabled | FileCommentsPolicyOther; + + /** + * Copied files and/or folders. + */ + export interface FileCopyDetails { + /** + * Relocate action details. + */ + relocate_action_details: Array; + } + + export interface FileCopyType { + description: string; + } + + /** + * Deleted file comment. + */ + export interface FileDeleteCommentDetails { + /** + * Comment text. + */ + comment_text?: string; + } + + export interface FileDeleteCommentType { + description: string; + } + + /** + * Deleted files and/or folders. + */ + export interface FileDeleteDetails { + } + + export interface FileDeleteType { + description: string; + } + + /** + * Downloaded files and/or folders. + */ + export interface FileDownloadDetails { + } + + export interface FileDownloadType { + description: string; + } + + /** + * Edited file comment. + */ + export interface FileEditCommentDetails { + /** + * Comment text. + */ + comment_text?: string; + /** + * Previous comment text. + */ + previous_comment_text: string; + } + + export interface FileEditCommentType { + description: string; + } + + /** + * Edited files. + */ + export interface FileEditDetails { + } + + export interface FileEditType { + description: string; + } + + /** + * Created copy reference to file/folder. + */ + export interface FileGetCopyReferenceDetails { + } + + export interface FileGetCopyReferenceType { + description: string; + } + + /** + * Liked file comment. + */ + export interface FileLikeCommentDetails { + /** + * Comment text. + */ + comment_text?: string; + } + + export interface FileLikeCommentType { + description: string; + } + + /** + * Locked/unlocked editing for a file. + */ + export interface FileLockingLockStatusChangedDetails { + /** + * Previous lock status of the file. + */ + previous_value: LockStatus; + /** + * New lock status of the file. + */ + new_value: LockStatus; + } + + export interface FileLockingLockStatusChangedType { + description: string; + } + + /** + * Changed file locking policy for team. + */ + export interface FileLockingPolicyChangedDetails { + /** + * New file locking policy. + */ + new_value: team_policies.FileLockingPolicyState; + /** + * Previous file locking policy. + */ + previous_value: team_policies.FileLockingPolicyState; + } + + export interface FileLockingPolicyChangedType { + description: string; + } + + /** + * File's logged information. + */ + export interface FileLogInfo extends FileOrFolderLogInfo { + } + + /** + * Moved files and/or folders. + */ + export interface FileMoveDetails { + /** + * Relocate action details. + */ + relocate_action_details: Array; + } + + export interface FileMoveType { + description: string; + } + + /** + * Generic information relevant both for files and folders + */ + export interface FileOrFolderLogInfo { + /** + * Path relative to event context. + */ + path: PathLogInfo; + /** + * Display name. + */ + display_name?: string; + /** + * Unique ID. + */ + file_id?: string; + /** + * File or folder size in bytes. + */ + file_size?: number; + } + + /** + * Permanently deleted files and/or folders. + */ + export interface FilePermanentlyDeleteDetails { + } + + export interface FilePermanentlyDeleteType { + description: string; + } + + /** + * Previewed files and/or folders. + */ + export interface FilePreviewDetails { + } + + export interface FilePreviewType { + description: string; + } + + /** + * Changed File Provider Migration policy for team. + */ + export interface FileProviderMigrationPolicyChangedDetails { + /** + * To. + */ + new_value: team_policies.FileProviderMigrationPolicyState; + /** + * From. + */ + previous_value: team_policies.FileProviderMigrationPolicyState; + } + + export interface FileProviderMigrationPolicyChangedType { + description: string; + } + + /** + * Renamed files and/or folders. + */ + export interface FileRenameDetails { + /** + * Relocate action details. + */ + relocate_action_details: Array; + } + + export interface FileRenameType { + description: string; + } + + /** + * Changed file request. + */ + export interface FileRequestChangeDetails { + /** + * File request id. Might be missing due to historical data gap. + */ + file_request_id?: file_requests.FileRequestId; + /** + * Previous file request details. Might be missing due to historical data + * gap. + */ + previous_details?: FileRequestDetails; + /** + * New file request details. + */ + new_details: FileRequestDetails; + } + + export interface FileRequestChangeType { + description: string; + } + + /** + * Closed file request. + */ + export interface FileRequestCloseDetails { + /** + * File request id. Might be missing due to historical data gap. + */ + file_request_id?: file_requests.FileRequestId; + /** + * Previous file request details. Might be missing due to historical data + * gap. + */ + previous_details?: FileRequestDetails; + } + + export interface FileRequestCloseType { + description: string; + } + + /** + * Created file request. + */ + export interface FileRequestCreateDetails { + /** + * File request id. Might be missing due to historical data gap. + */ + file_request_id?: file_requests.FileRequestId; + /** + * File request details. Might be missing due to historical data gap. + */ + request_details?: FileRequestDetails; + } + + export interface FileRequestCreateType { + description: string; + } + + /** + * File request deadline + */ + export interface FileRequestDeadline { + /** + * The deadline for this file request. Might be missing due to historical + * data gap. + */ + deadline?: common.DropboxTimestamp; + /** + * If set, allow uploads after the deadline has passed. + */ + allow_late_uploads?: string; + } + + /** + * Delete file request. + */ + export interface FileRequestDeleteDetails { + /** + * File request id. Might be missing due to historical data gap. + */ + file_request_id?: file_requests.FileRequestId; + /** + * Previous file request details. Might be missing due to historical data + * gap. + */ + previous_details?: FileRequestDetails; + } + + export interface FileRequestDeleteType { + description: string; + } + + /** + * File request details + */ + export interface FileRequestDetails { + /** + * Asset position in the Assets list. + */ + asset_index: number; + /** + * File request deadline. + */ + deadline?: FileRequestDeadline; + } + + /** + * Received files for file request. + */ + export interface FileRequestReceiveFileDetails { + /** + * File request id. Might be missing due to historical data gap. + */ + file_request_id?: file_requests.FileRequestId; + /** + * File request details. Might be missing due to historical data gap. + */ + file_request_details?: FileRequestDetails; + /** + * Submitted file names. + */ + submitted_file_names: Array; + /** + * The name as provided by the submitter. + */ + submitter_name?: common.DisplayNameLegacy; + /** + * The email as provided by the submitter. + */ + submitter_email?: EmailAddress; + } + + export interface FileRequestReceiveFileType { + description: string; + } + + /** + * Enabled/disabled file requests. + */ + export interface FileRequestsChangePolicyDetails { + /** + * New file requests policy. + */ + new_value: FileRequestsPolicy; + /** + * Previous file requests policy. Might be missing due to historical data + * gap. + */ + previous_value?: FileRequestsPolicy; + } + + export interface FileRequestsChangePolicyType { + description: string; + } + + /** + * Enabled file request emails for everyone. + */ + export interface FileRequestsEmailsEnabledDetails { + } + + export interface FileRequestsEmailsEnabledType { + description: string; + } + + /** + * Enabled file request emails for team. + */ + export interface FileRequestsEmailsRestrictedToTeamOnlyDetails { + } + + export interface FileRequestsEmailsRestrictedToTeamOnlyType { + description: string; + } + + export interface FileRequestsPolicyDisabled { + '.tag': 'disabled'; + } + + export interface FileRequestsPolicyEnabled { + '.tag': 'enabled'; + } + + export interface FileRequestsPolicyOther { + '.tag': 'other'; + } + + /** + * File requests policy + */ + export type FileRequestsPolicy = FileRequestsPolicyDisabled | FileRequestsPolicyEnabled | FileRequestsPolicyOther; + + /** + * Resolved file comment. + */ + export interface FileResolveCommentDetails { + /** + * Comment text. + */ + comment_text?: string; + } + + export interface FileResolveCommentType { + description: string; + } + + /** + * Restored deleted files and/or folders. + */ + export interface FileRestoreDetails { + } + + export interface FileRestoreType { + description: string; + } + + /** + * Reverted files to previous version. + */ + export interface FileRevertDetails { + } + + export interface FileRevertType { + description: string; + } + + /** + * Rolled back file actions. + */ + export interface FileRollbackChangesDetails { + } + + export interface FileRollbackChangesType { + description: string; + } + + /** + * Saved file/folder using copy reference. + */ + export interface FileSaveCopyReferenceDetails { + /** + * Relocate action details. + */ + relocate_action_details: Array; + } + + export interface FileSaveCopyReferenceType { + description: string; + } + + /** + * Transfer files added. + */ + export interface FileTransfersFileAddDetails { + /** + * Transfer id. + */ + file_transfer_id: string; + } + + export interface FileTransfersFileAddType { + description: string; + } + + export interface FileTransfersPolicyDisabled { + '.tag': 'disabled'; + } + + export interface FileTransfersPolicyEnabled { + '.tag': 'enabled'; + } + + export interface FileTransfersPolicyOther { + '.tag': 'other'; + } + + /** + * File transfers policy + */ + export type FileTransfersPolicy = FileTransfersPolicyDisabled | FileTransfersPolicyEnabled | FileTransfersPolicyOther; + + /** + * Changed file transfers policy for team. + */ + export interface FileTransfersPolicyChangedDetails { + /** + * New file transfers policy. + */ + new_value: FileTransfersPolicy; + /** + * Previous file transfers policy. + */ + previous_value: FileTransfersPolicy; + } + + export interface FileTransfersPolicyChangedType { + description: string; + } + + /** + * Deleted transfer. + */ + export interface FileTransfersTransferDeleteDetails { + /** + * Transfer id. + */ + file_transfer_id: string; + } + + export interface FileTransfersTransferDeleteType { + description: string; + } + + /** + * Transfer downloaded. + */ + export interface FileTransfersTransferDownloadDetails { + /** + * Transfer id. + */ + file_transfer_id: string; + } + + export interface FileTransfersTransferDownloadType { + description: string; + } + + /** + * Sent transfer. + */ + export interface FileTransfersTransferSendDetails { + /** + * Transfer id. + */ + file_transfer_id: string; + } + + export interface FileTransfersTransferSendType { + description: string; + } + + /** + * Viewed transfer. + */ + export interface FileTransfersTransferViewDetails { + /** + * Transfer id. + */ + file_transfer_id: string; + } + + export interface FileTransfersTransferViewType { + description: string; + } + + /** + * Unliked file comment. + */ + export interface FileUnlikeCommentDetails { + /** + * Comment text. + */ + comment_text?: string; + } + + export interface FileUnlikeCommentType { + description: string; + } + + /** + * Unresolved file comment. + */ + export interface FileUnresolveCommentDetails { + /** + * Comment text. + */ + comment_text?: string; + } + + export interface FileUnresolveCommentType { + description: string; + } + + export interface FolderLinkRestrictionPolicyDisabled { + '.tag': 'disabled'; + } + + export interface FolderLinkRestrictionPolicyEnabled { + '.tag': 'enabled'; + } + + export interface FolderLinkRestrictionPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for deciding whether applying link restrictions on all team owned + * folders + */ + export type FolderLinkRestrictionPolicy = FolderLinkRestrictionPolicyDisabled | FolderLinkRestrictionPolicyEnabled | FolderLinkRestrictionPolicyOther; + + /** + * Changed folder link restrictions policy for team. + */ + export interface FolderLinkRestrictionPolicyChangedDetails { + /** + * To. + */ + new_value: FolderLinkRestrictionPolicy; + /** + * From. + */ + previous_value: FolderLinkRestrictionPolicy; + } + + export interface FolderLinkRestrictionPolicyChangedType { + description: string; + } + + /** + * Folder's logged information. + */ + export interface FolderLogInfo extends FileOrFolderLogInfo { + /** + * Number of files within the folder. + */ + file_count?: number; + } + + /** + * Updated folder overview. + */ + export interface FolderOverviewDescriptionChangedDetails { + /** + * Folder Overview location position in the Assets list. + */ + folder_overview_location_asset: number; + } + + export interface FolderOverviewDescriptionChangedType { + description: string; + } + + /** + * Pinned item to folder overview. + */ + export interface FolderOverviewItemPinnedDetails { + /** + * Folder Overview location position in the Assets list. + */ + folder_overview_location_asset: number; + /** + * Pinned items positions in the Assets list. + */ + pinned_items_asset_indices: Array; + } + + export interface FolderOverviewItemPinnedType { + description: string; + } + + /** + * Unpinned item from folder overview. + */ + export interface FolderOverviewItemUnpinnedDetails { + /** + * Folder Overview location position in the Assets list. + */ + folder_overview_location_asset: number; + /** + * Pinned items positions in the Assets list. + */ + pinned_items_asset_indices: Array; + } + + export interface FolderOverviewItemUnpinnedType { + description: string; + } + + /** + * Geographic location details. + */ + export interface GeoLocationLogInfo { + /** + * City name. + */ + city?: string; + /** + * Region name. + */ + region?: string; + /** + * Country code. + */ + country?: string; + /** + * IP address. + */ + ip_address: IpAddress; + } + + export interface GetTeamEventsArg { + /** + * Defaults to 1000. + */ + limit?: number; + /** + * Filter the events by account ID. Return only events with this + * account_id as either Actor, Context, or Participants. + */ + account_id?: users_common.AccountId; + /** + * Filter by time range. + */ + time?: team_common.TimeRange; + /** + * Filter the returned events to a single category. Note that category + * shouldn't be provided together with event_type. + */ + category?: EventCategory; + /** + * Filter the returned events to a single event type. Note that event_type + * shouldn't be provided together with category. + */ + event_type?: EventTypeArg; + } + + export interface GetTeamEventsContinueArg { + /** + * Indicates from what point to get the next set of events. + */ + cursor: string; + } + + /** + * Bad cursor. + */ + export interface GetTeamEventsContinueErrorBadCursor { + '.tag': 'bad_cursor'; + } + + /** + * Cursors are intended to be used quickly. Individual cursor values are + * normally valid for days, but in rare cases may be reset sooner. Cursor + * reset errors should be handled by fetching a new cursor from getEvents(). + * The associated value is the approximate timestamp of the most recent + * event returned by the cursor. This should be used as a resumption point + * when calling getEvents() to obtain a new cursor. + */ + export interface GetTeamEventsContinueErrorReset { + '.tag': 'reset'; + reset: common.DropboxTimestamp; + } + + export interface GetTeamEventsContinueErrorOther { + '.tag': 'other'; + } + + /** + * Errors that can be raised when calling getEventsContinue(). + */ + export type GetTeamEventsContinueError = GetTeamEventsContinueErrorBadCursor | GetTeamEventsContinueErrorReset | GetTeamEventsContinueErrorOther; + + /** + * No user found matching the provided account_id. + */ + export interface GetTeamEventsErrorAccountIdNotFound { + '.tag': 'account_id_not_found'; + } + + /** + * Invalid time range. + */ + export interface GetTeamEventsErrorInvalidTimeRange { + '.tag': 'invalid_time_range'; + } + + /** + * Invalid filters. Do not specify both event_type and category parameters + * for the same call. + */ + export interface GetTeamEventsErrorInvalidFilters { + '.tag': 'invalid_filters'; + } + + export interface GetTeamEventsErrorOther { + '.tag': 'other'; + } + + /** + * Errors that can be raised when calling getEvents(). + */ + export type GetTeamEventsError = GetTeamEventsErrorAccountIdNotFound | GetTeamEventsErrorInvalidTimeRange | GetTeamEventsErrorInvalidFilters | GetTeamEventsErrorOther; + + export interface GetTeamEventsResult { + /** + * List of events. Note that events are not guaranteed to be sorted by + * their timestamp value. + */ + events: Array; + /** + * Pass the cursor into getEventsContinue() to obtain additional events. + * The value of cursor may change for each response from + * getEventsContinue(), regardless of the value of has_more; older cursor + * strings may expire. Thus, callers should ensure that they update their + * cursor based on the latest value of cursor after each call, and poll + * regularly if they wish to poll for new events. Callers should handle + * reset exceptions for expired cursors. + */ + cursor: string; + /** + * Is true if there may be additional events that have not been returned + * yet. An additional call to getEventsContinue() can retrieve them. Note + * that has_more may be true, even if events is empty. + */ + has_more: boolean; + } + + /** + * Enabled/disabled Google single sign-on for team. + */ + export interface GoogleSsoChangePolicyDetails { + /** + * New Google single sign-on policy. + */ + new_value: GoogleSsoPolicy; + /** + * Previous Google single sign-on policy. Might be missing due to + * historical data gap. + */ + previous_value?: GoogleSsoPolicy; + } + + export interface GoogleSsoChangePolicyType { + description: string; + } + + export interface GoogleSsoPolicyDisabled { + '.tag': 'disabled'; + } + + export interface GoogleSsoPolicyEnabled { + '.tag': 'enabled'; + } + + export interface GoogleSsoPolicyOther { + '.tag': 'other'; + } + + /** + * Google SSO policy + */ + export type GoogleSsoPolicy = GoogleSsoPolicyDisabled | GoogleSsoPolicyEnabled | GoogleSsoPolicyOther; + + /** + * Couldn't add a folder to a policy. + */ + export interface GovernancePolicyAddFolderFailedDetails { + /** + * Policy ID. + */ + governance_policy_id: string; + /** + * Policy name. + */ + name: string; + /** + * Policy type. + */ + policy_type?: PolicyType; + /** + * Folder. + */ + folder: string; + /** + * Reason. + */ + reason?: string; + } + + export interface GovernancePolicyAddFolderFailedType { + description: string; + } + + /** + * Added folders to policy. + */ + export interface GovernancePolicyAddFoldersDetails { + /** + * Policy ID. + */ + governance_policy_id: string; + /** + * Policy name. + */ + name: string; + /** + * Policy type. + */ + policy_type?: PolicyType; + /** + * Folders. + */ + folders?: Array; + } + + export interface GovernancePolicyAddFoldersType { + description: string; + } + + /** + * Content disposed. + */ + export interface GovernancePolicyContentDisposedDetails { + /** + * Policy ID. + */ + governance_policy_id: string; + /** + * Policy name. + */ + name: string; + /** + * Policy type. + */ + policy_type?: PolicyType; + /** + * Disposition type. + */ + disposition_type: DispositionActionType; + } + + export interface GovernancePolicyContentDisposedType { + description: string; + } + + /** + * Activated a new policy. + */ + export interface GovernancePolicyCreateDetails { + /** + * Policy ID. + */ + governance_policy_id: string; + /** + * Policy name. + */ + name: string; + /** + * Policy type. + */ + policy_type?: PolicyType; + /** + * Duration in days. + */ + duration: DurationLogInfo; + /** + * Folders. + */ + folders?: Array; + } + + export interface GovernancePolicyCreateType { + description: string; + } + + /** + * Deleted a policy. + */ + export interface GovernancePolicyDeleteDetails { + /** + * Policy ID. + */ + governance_policy_id: string; + /** + * Policy name. + */ + name: string; + /** + * Policy type. + */ + policy_type?: PolicyType; + } + + export interface GovernancePolicyDeleteType { + description: string; + } + + /** + * Edited policy. + */ + export interface GovernancePolicyEditDetailsDetails { + /** + * Policy ID. + */ + governance_policy_id: string; + /** + * Policy name. + */ + name: string; + /** + * Policy type. + */ + policy_type?: PolicyType; + /** + * Attribute. + */ + attribute: string; + /** + * From. + */ + previous_value: string; + /** + * To. + */ + new_value: string; + } + + export interface GovernancePolicyEditDetailsType { + description: string; + } + + /** + * Changed policy duration. + */ + export interface GovernancePolicyEditDurationDetails { + /** + * Policy ID. + */ + governance_policy_id: string; + /** + * Policy name. + */ + name: string; + /** + * Policy type. + */ + policy_type?: PolicyType; + /** + * From. + */ + previous_value: DurationLogInfo; + /** + * To. + */ + new_value: DurationLogInfo; + } + + export interface GovernancePolicyEditDurationType { + description: string; + } + + /** + * Created a policy download. + */ + export interface GovernancePolicyExportCreatedDetails { + /** + * Policy ID. + */ + governance_policy_id: string; + /** + * Policy name. + */ + name: string; + /** + * Policy type. + */ + policy_type?: PolicyType; + /** + * Export name. + */ + export_name: string; + } + + export interface GovernancePolicyExportCreatedType { + description: string; + } + + /** + * Removed a policy download. + */ + export interface GovernancePolicyExportRemovedDetails { + /** + * Policy ID. + */ + governance_policy_id: string; + /** + * Policy name. + */ + name: string; + /** + * Policy type. + */ + policy_type?: PolicyType; + /** + * Export name. + */ + export_name: string; + } + + export interface GovernancePolicyExportRemovedType { + description: string; + } + + /** + * Removed folders from policy. + */ + export interface GovernancePolicyRemoveFoldersDetails { + /** + * Policy ID. + */ + governance_policy_id: string; + /** + * Policy name. + */ + name: string; + /** + * Policy type. + */ + policy_type?: PolicyType; + /** + * Folders. + */ + folders?: Array; + /** + * Reason. + */ + reason?: string; + } + + export interface GovernancePolicyRemoveFoldersType { + description: string; + } + + /** + * Created a summary report for a policy. + */ + export interface GovernancePolicyReportCreatedDetails { + /** + * Policy ID. + */ + governance_policy_id: string; + /** + * Policy name. + */ + name: string; + /** + * Policy type. + */ + policy_type?: PolicyType; + } + + export interface GovernancePolicyReportCreatedType { + description: string; + } + + /** + * Downloaded content from a policy. + */ + export interface GovernancePolicyZipPartDownloadedDetails { + /** + * Policy ID. + */ + governance_policy_id: string; + /** + * Policy name. + */ + name: string; + /** + * Policy type. + */ + policy_type?: PolicyType; + /** + * Export name. + */ + export_name: string; + /** + * Part. + */ + part?: string; + } + + export interface GovernancePolicyZipPartDownloadedType { + description: string; + } + + /** + * Added external ID for group. + */ + export interface GroupAddExternalIdDetails { + /** + * Current external id. + */ + new_value: team_common.GroupExternalId; + } + + export interface GroupAddExternalIdType { + description: string; + } + + /** + * Added team members to group. + */ + export interface GroupAddMemberDetails { + /** + * Is group owner. + */ + is_group_owner: boolean; + } + + export interface GroupAddMemberType { + description: string; + } + + /** + * Changed external ID for group. + */ + export interface GroupChangeExternalIdDetails { + /** + * Current external id. + */ + new_value: team_common.GroupExternalId; + /** + * Old external id. + */ + previous_value: team_common.GroupExternalId; + } + + export interface GroupChangeExternalIdType { + description: string; + } + + /** + * Changed group management type. + */ + export interface GroupChangeManagementTypeDetails { + /** + * New group management type. + */ + new_value: team_common.GroupManagementType; + /** + * Previous group management type. Might be missing due to historical data + * gap. + */ + previous_value?: team_common.GroupManagementType; + } + + export interface GroupChangeManagementTypeType { + description: string; + } + + /** + * Changed manager permissions of group member. + */ + export interface GroupChangeMemberRoleDetails { + /** + * Is group owner. + */ + is_group_owner: boolean; + } + + export interface GroupChangeMemberRoleType { + description: string; + } + + /** + * Created group. + */ + export interface GroupCreateDetails { + /** + * Is company managed group. + */ + is_company_managed?: boolean; + /** + * Group join policy. + */ + join_policy?: GroupJoinPolicy; + } + + export interface GroupCreateType { + description: string; + } + + /** + * Deleted group. + */ + export interface GroupDeleteDetails { + /** + * Is company managed group. + */ + is_company_managed?: boolean; + } + + export interface GroupDeleteType { + description: string; + } + + /** + * Updated group. + */ + export interface GroupDescriptionUpdatedDetails { + } + + export interface GroupDescriptionUpdatedType { + description: string; + } + + export interface GroupJoinPolicyOpen { + '.tag': 'open'; + } + + export interface GroupJoinPolicyRequestToJoin { + '.tag': 'request_to_join'; + } + + export interface GroupJoinPolicyOther { + '.tag': 'other'; + } + + export type GroupJoinPolicy = GroupJoinPolicyOpen | GroupJoinPolicyRequestToJoin | GroupJoinPolicyOther; + + /** + * Updated group join policy. + */ + export interface GroupJoinPolicyUpdatedDetails { + /** + * Is company managed group. + */ + is_company_managed?: boolean; + /** + * Group join policy. + */ + join_policy?: GroupJoinPolicy; + } + + export interface GroupJoinPolicyUpdatedType { + description: string; + } + + /** + * Group's logged information. + */ + export interface GroupLogInfo { + /** + * The unique id of this group. + */ + group_id?: team_common.GroupId; + /** + * The name of this group. + */ + display_name: string; + /** + * External group ID. + */ + external_id?: team_common.GroupExternalId; + } + + /** + * Moved group. + */ + export interface GroupMovedDetails { + } + + export interface GroupMovedType { + description: string; + } + + /** + * Removed external ID for group. + */ + export interface GroupRemoveExternalIdDetails { + /** + * Old external id. + */ + previous_value: team_common.GroupExternalId; + } + + export interface GroupRemoveExternalIdType { + description: string; + } + + /** + * Removed team members from group. + */ + export interface GroupRemoveMemberDetails { + } + + export interface GroupRemoveMemberType { + description: string; + } + + /** + * Renamed group. + */ + export interface GroupRenameDetails { + /** + * Previous display name. + */ + previous_value: string; + /** + * New display name. + */ + new_value: string; + } + + export interface GroupRenameType { + description: string; + } + + /** + * Changed who can create groups. + */ + export interface GroupUserManagementChangePolicyDetails { + /** + * New group users management policy. + */ + new_value: team_policies.GroupCreation; + /** + * Previous group users management policy. Might be missing due to + * historical data gap. + */ + previous_value?: team_policies.GroupCreation; + } + + export interface GroupUserManagementChangePolicyType { + description: string; + } + + /** + * Changed guest team admin status. + */ + export interface GuestAdminChangeStatusDetails { + /** + * True for guest, false for host. + */ + is_guest: boolean; + /** + * The name of the guest team. + */ + guest_team_name?: string; + /** + * The name of the host team. + */ + host_team_name?: string; + /** + * Previous request state. + */ + previous_value: TrustedTeamsRequestState; + /** + * New request state. + */ + new_value: TrustedTeamsRequestState; + /** + * Action details. + */ + action_details: TrustedTeamsRequestAction; + } + + export interface GuestAdminChangeStatusType { + description: string; + } + + /** + * Started trusted team admin session. + */ + export interface GuestAdminSignedInViaTrustedTeamsDetails { + /** + * Host team name. + */ + team_name?: string; + /** + * Trusted team name. + */ + trusted_team_name?: string; + } + + export interface GuestAdminSignedInViaTrustedTeamsType { + description: string; + } + + /** + * Ended trusted team admin session. + */ + export interface GuestAdminSignedOutViaTrustedTeamsDetails { + /** + * Host team name. + */ + team_name?: string; + /** + * Trusted team name. + */ + trusted_team_name?: string; + } + + export interface GuestAdminSignedOutViaTrustedTeamsType { + description: string; + } + + export interface IdentifierTypeEmail { + '.tag': 'email'; + } + + export interface IdentifierTypeFacebookProfileName { + '.tag': 'facebook_profile_name'; + } + + export interface IdentifierTypeOther { + '.tag': 'other'; + } + + export type IdentifierType = IdentifierTypeEmail | IdentifierTypeFacebookProfileName | IdentifierTypeOther; + + /** + * Connected integration for member. + */ + export interface IntegrationConnectedDetails { + /** + * Name of the third-party integration. + */ + integration_name: string; + } + + export interface IntegrationConnectedType { + description: string; + } + + /** + * Disconnected integration for member. + */ + export interface IntegrationDisconnectedDetails { + /** + * Name of the third-party integration. + */ + integration_name: string; + } + + export interface IntegrationDisconnectedType { + description: string; + } + + export interface IntegrationPolicyDisabled { + '.tag': 'disabled'; + } + + export interface IntegrationPolicyEnabled { + '.tag': 'enabled'; + } + + export interface IntegrationPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling whether a service integration is enabled for the + * team. + */ + export type IntegrationPolicy = IntegrationPolicyDisabled | IntegrationPolicyEnabled | IntegrationPolicyOther; + + /** + * Changed integration policy for team. + */ + export interface IntegrationPolicyChangedDetails { + /** + * Name of the third-party integration. + */ + integration_name: string; + /** + * New integration policy. + */ + new_value: IntegrationPolicy; + /** + * Previous integration policy. + */ + previous_value: IntegrationPolicy; + } + + export interface IntegrationPolicyChangedType { + description: string; + } + + export interface InviteAcceptanceEmailPolicyDisabled { + '.tag': 'disabled'; + } + + export interface InviteAcceptanceEmailPolicyEnabled { + '.tag': 'enabled'; + } + + export interface InviteAcceptanceEmailPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for deciding whether team admins receive email when an invitation + * to join the team is accepted + */ + export type InviteAcceptanceEmailPolicy = InviteAcceptanceEmailPolicyDisabled | InviteAcceptanceEmailPolicyEnabled | InviteAcceptanceEmailPolicyOther; + + /** + * Changed invite accept email policy for team. + */ + export interface InviteAcceptanceEmailPolicyChangedDetails { + /** + * To. + */ + new_value: InviteAcceptanceEmailPolicy; + /** + * From. + */ + previous_value: InviteAcceptanceEmailPolicy; + } + + export interface InviteAcceptanceEmailPolicyChangedType { + description: string; + } + + export interface InviteMethodAutoApprove { + '.tag': 'auto_approve'; + } + + export interface InviteMethodInviteLink { + '.tag': 'invite_link'; + } + + export interface InviteMethodMemberInvite { + '.tag': 'member_invite'; + } + + export interface InviteMethodMovedFromAnotherTeam { + '.tag': 'moved_from_another_team'; + } + + export interface InviteMethodOther { + '.tag': 'other'; + } + + export type InviteMethod = InviteMethodAutoApprove | InviteMethodInviteLink | InviteMethodMemberInvite | InviteMethodMovedFromAnotherTeam | InviteMethodOther; + + /** + * Additional information relevant when a new member joins the team. + */ + export interface JoinTeamDetails { + /** + * Linked applications. (Deprecated) Please use has_linked_apps boolean + * field instead. + */ + linked_apps: Array; + /** + * Linked devices. (Deprecated) Please use has_linked_devices boolean + * field instead. + */ + linked_devices: Array; + /** + * Linked shared folders. (Deprecated) Please use + * has_linked_shared_folders boolean field instead. + */ + linked_shared_folders: Array; + /** + * (Deprecated) True if the linked_apps list was truncated to the maximum + * supported length (50). + */ + was_linked_apps_truncated?: boolean; + /** + * (Deprecated) True if the linked_devices list was truncated to the + * maximum supported length (50). + */ + was_linked_devices_truncated?: boolean; + /** + * (Deprecated) True if the linked_shared_folders list was truncated to + * the maximum supported length (50). + */ + was_linked_shared_folders_truncated?: boolean; + /** + * True if the user had linked apps at event time. + */ + has_linked_apps?: boolean; + /** + * True if the user had linked apps at event time. + */ + has_linked_devices?: boolean; + /** + * True if the user had linked shared folders at event time. + */ + has_linked_shared_folders?: boolean; + } + + export interface LabelTypePersonalInformation { + '.tag': 'personal_information'; + } + + export interface LabelTypeTestOnly { + '.tag': 'test_only'; + } + + export interface LabelTypeUserDefinedTag { + '.tag': 'user_defined_tag'; + } + + export interface LabelTypeOther { + '.tag': 'other'; + } + + /** + * Label type + */ + export type LabelType = LabelTypePersonalInformation | LabelTypeTestOnly | LabelTypeUserDefinedTag | LabelTypeOther; + + /** + * Information on sessions, in legacy format + */ + export interface LegacyDeviceSessionLogInfo extends DeviceSessionLogInfo { + /** + * Session unique id. + */ + session_info?: WebSessionLogInfoReference|DesktopSessionLogInfoReference|MobileSessionLogInfoReference|SessionLogInfoReference; + /** + * The device name. Might be missing due to historical data gap. + */ + display_name?: string; + /** + * Is device managed by emm. Might be missing due to historical data gap. + */ + is_emm_managed?: boolean; + /** + * Information on the hosting platform. Might be missing due to historical + * data gap. + */ + platform?: string; + /** + * The mac address of the last activity from this session. Might be + * missing due to historical data gap. + */ + mac_address?: IpAddress; + /** + * The hosting OS version. Might be missing due to historical data gap. + */ + os_version?: string; + /** + * Information on the hosting device type. Might be missing due to + * historical data gap. + */ + device_type?: string; + /** + * The Dropbox client version. Might be missing due to historical data + * gap. + */ + client_version?: string; + /** + * Alternative unique device session id, instead of session id field. + * Might be missing due to historical data gap. + */ + legacy_uniq_id?: string; + } + + /** + * Reference to the LegacyDeviceSessionLogInfo type, identified by the value + * of the .tag property. + */ + export interface LegacyDeviceSessionLogInfoReference extends LegacyDeviceSessionLogInfo { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'legacy_device_session'; + } + + /** + * Activated a hold. + */ + export interface LegalHoldsActivateAHoldDetails { + /** + * Hold ID. + */ + legal_hold_id: string; + /** + * Hold name. + */ + name: string; + /** + * Hold start date. + */ + start_date: common.DropboxTimestamp; + /** + * Hold end date. + */ + end_date?: common.DropboxTimestamp; + } + + export interface LegalHoldsActivateAHoldType { + description: string; + } + + /** + * Added members to a hold. + */ + export interface LegalHoldsAddMembersDetails { + /** + * Hold ID. + */ + legal_hold_id: string; + /** + * Hold name. + */ + name: string; + } + + export interface LegalHoldsAddMembersType { + description: string; + } + + /** + * Edited details for a hold. + */ + export interface LegalHoldsChangeHoldDetailsDetails { + /** + * Hold ID. + */ + legal_hold_id: string; + /** + * Hold name. + */ + name: string; + /** + * Previous details. + */ + previous_value: string; + /** + * New details. + */ + new_value: string; + } + + export interface LegalHoldsChangeHoldDetailsType { + description: string; + } + + /** + * Renamed a hold. + */ + export interface LegalHoldsChangeHoldNameDetails { + /** + * Hold ID. + */ + legal_hold_id: string; + /** + * Previous Name. + */ + previous_value: string; + /** + * New Name. + */ + new_value: string; + } + + export interface LegalHoldsChangeHoldNameType { + description: string; + } + + /** + * Exported hold. + */ + export interface LegalHoldsExportAHoldDetails { + /** + * Hold ID. + */ + legal_hold_id: string; + /** + * Hold name. + */ + name: string; + /** + * Export name. + */ + export_name?: string; + } + + export interface LegalHoldsExportAHoldType { + description: string; + } + + /** + * Canceled export for a hold. + */ + export interface LegalHoldsExportCancelledDetails { + /** + * Hold ID. + */ + legal_hold_id: string; + /** + * Hold name. + */ + name: string; + /** + * Export name. + */ + export_name: string; + } + + export interface LegalHoldsExportCancelledType { + description: string; + } + + /** + * Downloaded export for a hold. + */ + export interface LegalHoldsExportDownloadedDetails { + /** + * Hold ID. + */ + legal_hold_id: string; + /** + * Hold name. + */ + name: string; + /** + * Export name. + */ + export_name: string; + /** + * Part. + */ + part?: string; + /** + * Filename. + */ + file_name?: string; + } + + export interface LegalHoldsExportDownloadedType { + description: string; + } + + /** + * Removed export for a hold. + */ + export interface LegalHoldsExportRemovedDetails { + /** + * Hold ID. + */ + legal_hold_id: string; + /** + * Hold name. + */ + name: string; + /** + * Export name. + */ + export_name: string; + } + + export interface LegalHoldsExportRemovedType { + description: string; + } + + /** + * Released a hold. + */ + export interface LegalHoldsReleaseAHoldDetails { + /** + * Hold ID. + */ + legal_hold_id: string; + /** + * Hold name. + */ + name: string; + } + + export interface LegalHoldsReleaseAHoldType { + description: string; + } + + /** + * Removed members from a hold. + */ + export interface LegalHoldsRemoveMembersDetails { + /** + * Hold ID. + */ + legal_hold_id: string; + /** + * Hold name. + */ + name: string; + } + + export interface LegalHoldsRemoveMembersType { + description: string; + } + + /** + * Created a summary report for a hold. + */ + export interface LegalHoldsReportAHoldDetails { + /** + * Hold ID. + */ + legal_hold_id: string; + /** + * Hold name. + */ + name: string; + } + + export interface LegalHoldsReportAHoldType { + description: string; + } + + /** + * desktop device session's details. + */ + export interface LinkedDeviceLogInfoDesktopDeviceSession extends DesktopDeviceSessionLogInfo { + '.tag': 'desktop_device_session'; + } + + /** + * legacy device session's details. + */ + export interface LinkedDeviceLogInfoLegacyDeviceSession extends LegacyDeviceSessionLogInfo { + '.tag': 'legacy_device_session'; + } + + /** + * mobile device session's details. + */ + export interface LinkedDeviceLogInfoMobileDeviceSession extends MobileDeviceSessionLogInfo { + '.tag': 'mobile_device_session'; + } + + /** + * web device session's details. + */ + export interface LinkedDeviceLogInfoWebDeviceSession extends WebDeviceSessionLogInfo { + '.tag': 'web_device_session'; + } + + export interface LinkedDeviceLogInfoOther { + '.tag': 'other'; + } + + /** + * The device sessions that user is linked to. + */ + export type LinkedDeviceLogInfo = LinkedDeviceLogInfoDesktopDeviceSession | LinkedDeviceLogInfoLegacyDeviceSession | LinkedDeviceLogInfoMobileDeviceSession | LinkedDeviceLogInfoWebDeviceSession | LinkedDeviceLogInfoOther; + + export interface LockStatusLocked { + '.tag': 'locked'; + } + + export interface LockStatusUnlocked { + '.tag': 'unlocked'; + } + + export interface LockStatusOther { + '.tag': 'other'; + } + + /** + * File lock status + */ + export type LockStatus = LockStatusLocked | LockStatusUnlocked | LockStatusOther; + + /** + * Failed to sign in. + */ + export interface LoginFailDetails { + /** + * Tells if the login device is EMM managed. Might be missing due to + * historical data gap. + */ + is_emm_managed?: boolean; + /** + * Login method. + */ + login_method: LoginMethod; + /** + * Error details. + */ + error_details: FailureDetailsLogInfo; + } + + export interface LoginFailType { + description: string; + } + + export interface LoginMethodAppleOauth { + '.tag': 'apple_oauth'; + } + + export interface LoginMethodFirstPartyTokenExchange { + '.tag': 'first_party_token_exchange'; + } + + export interface LoginMethodGoogleOauth { + '.tag': 'google_oauth'; + } + + export interface LoginMethodPassword { + '.tag': 'password'; + } + + export interface LoginMethodQrCode { + '.tag': 'qr_code'; + } + + export interface LoginMethodSaml { + '.tag': 'saml'; + } + + export interface LoginMethodTwoFactorAuthentication { + '.tag': 'two_factor_authentication'; + } + + export interface LoginMethodWebSession { + '.tag': 'web_session'; + } + + export interface LoginMethodOther { + '.tag': 'other'; + } + + export type LoginMethod = LoginMethodAppleOauth | LoginMethodFirstPartyTokenExchange | LoginMethodGoogleOauth | LoginMethodPassword | LoginMethodQrCode | LoginMethodSaml | LoginMethodTwoFactorAuthentication | LoginMethodWebSession | LoginMethodOther; + + /** + * Signed in. + */ + export interface LoginSuccessDetails { + /** + * Tells if the login device is EMM managed. Might be missing due to + * historical data gap. + */ + is_emm_managed?: boolean; + /** + * Login method. + */ + login_method: LoginMethod; + } + + export interface LoginSuccessType { + description: string; + } + + /** + * Signed out. + */ + export interface LogoutDetails { + /** + * Login session id. + */ + login_id?: string; + } + + export interface LogoutType { + description: string; + } + + /** + * Added an external ID for team member. + */ + export interface MemberAddExternalIdDetails { + /** + * Current external id. + */ + new_value: team_common.MemberExternalId; + } + + export interface MemberAddExternalIdType { + description: string; + } + + /** + * Added team member name. + */ + export interface MemberAddNameDetails { + /** + * New user's name. + */ + new_value: UserNameLogInfo; + } + + export interface MemberAddNameType { + description: string; + } + + /** + * Changed team member admin role. + */ + export interface MemberChangeAdminRoleDetails { + /** + * New admin role. This field is relevant when the admin role is changed + * or whenthe user role changes from no admin rights to with admin rights. + */ + new_value?: AdminRole; + /** + * Previous admin role. This field is relevant when the admin role is + * changed or when the admin role is removed. + */ + previous_value?: AdminRole; + } + + export interface MemberChangeAdminRoleType { + description: string; + } + + /** + * Changed team member email. + */ + export interface MemberChangeEmailDetails { + /** + * New email. + */ + new_value: EmailAddress; + /** + * Previous email. Might be missing due to historical data gap. + */ + previous_value?: EmailAddress; + } + + export interface MemberChangeEmailType { + description: string; + } + + /** + * Changed the external ID for team member. + */ + export interface MemberChangeExternalIdDetails { + /** + * Current external id. + */ + new_value: team_common.MemberExternalId; + /** + * Old external id. + */ + previous_value: team_common.MemberExternalId; + } + + export interface MemberChangeExternalIdType { + description: string; + } + + /** + * Changed membership type (limited/full) of member. + */ + export interface MemberChangeMembershipTypeDetails { + /** + * Previous membership type. + */ + prev_value: TeamMembershipType; + /** + * New membership type. + */ + new_value: TeamMembershipType; + } + + export interface MemberChangeMembershipTypeType { + description: string; + } + + /** + * Changed team member name. + */ + export interface MemberChangeNameDetails { + /** + * New user's name. + */ + new_value: UserNameLogInfo; + /** + * Previous user's name. Might be missing due to historical data gap. + */ + previous_value?: UserNameLogInfo; + } + + export interface MemberChangeNameType { + description: string; + } + + /** + * Changed team member reseller role. + */ + export interface MemberChangeResellerRoleDetails { + /** + * New reseller role. This field is relevant when the reseller role is + * changed. + */ + new_value: ResellerRole; + /** + * Previous reseller role. This field is relevant when the reseller role + * is changed or when the reseller role is removed. + */ + previous_value: ResellerRole; + } + + export interface MemberChangeResellerRoleType { + description: string; + } + + /** + * Changed member status (invited, joined, suspended, etc.). + */ + export interface MemberChangeStatusDetails { + /** + * Previous member status. Might be missing due to historical data gap. + */ + previous_value?: MemberStatus; + /** + * New member status. + */ + new_value: MemberStatus; + /** + * Additional information indicating the action taken that caused status + * change. + */ + action?: ActionDetails; + /** + * The user's new team name. This field is relevant when the user is + * transferred off the team. + */ + new_team?: string; + /** + * The user's previous team name. This field is relevant when the user is + * transferred onto the team. + */ + previous_team?: string; + } + + export interface MemberChangeStatusType { + description: string; + } + + /** + * Cleared manually added contacts. + */ + export interface MemberDeleteManualContactsDetails { + } + + export interface MemberDeleteManualContactsType { + description: string; + } + + /** + * Deleted team member profile photo. + */ + export interface MemberDeleteProfilePhotoDetails { + } + + export interface MemberDeleteProfilePhotoType { + description: string; + } + + /** + * Permanently deleted contents of deleted team member account. + */ + export interface MemberPermanentlyDeleteAccountContentsDetails { + } + + export interface MemberPermanentlyDeleteAccountContentsType { + description: string; + } + + export interface MemberRemoveActionTypeDelete { + '.tag': 'delete'; + } + + export interface MemberRemoveActionTypeLeave { + '.tag': 'leave'; + } + + export interface MemberRemoveActionTypeOffboard { + '.tag': 'offboard'; + } + + export interface MemberRemoveActionTypeOffboardAndRetainTeamFolders { + '.tag': 'offboard_and_retain_team_folders'; + } + + export interface MemberRemoveActionTypeOther { + '.tag': 'other'; + } + + export type MemberRemoveActionType = MemberRemoveActionTypeDelete | MemberRemoveActionTypeLeave | MemberRemoveActionTypeOffboard | MemberRemoveActionTypeOffboardAndRetainTeamFolders | MemberRemoveActionTypeOther; + + /** + * Removed the external ID for team member. + */ + export interface MemberRemoveExternalIdDetails { + /** + * Old external id. + */ + previous_value: team_common.MemberExternalId; + } + + export interface MemberRemoveExternalIdType { + description: string; + } + + /** + * Changed whether users can find team when not invited. + */ + export interface MemberRequestsChangePolicyDetails { + /** + * New member change requests policy. + */ + new_value: MemberRequestsPolicy; + /** + * Previous member change requests policy. Might be missing due to + * historical data gap. + */ + previous_value?: MemberRequestsPolicy; + } + + export interface MemberRequestsChangePolicyType { + description: string; + } + + export interface MemberRequestsPolicyAutoAccept { + '.tag': 'auto_accept'; + } + + export interface MemberRequestsPolicyDisabled { + '.tag': 'disabled'; + } + + export interface MemberRequestsPolicyRequireApproval { + '.tag': 'require_approval'; + } + + export interface MemberRequestsPolicyOther { + '.tag': 'other'; + } + + export type MemberRequestsPolicy = MemberRequestsPolicyAutoAccept | MemberRequestsPolicyDisabled | MemberRequestsPolicyRequireApproval | MemberRequestsPolicyOther; + + export interface MemberSendInvitePolicyDisabled { + '.tag': 'disabled'; + } + + export interface MemberSendInvitePolicyEveryone { + '.tag': 'everyone'; + } + + export interface MemberSendInvitePolicySpecificMembers { + '.tag': 'specific_members'; + } + + export interface MemberSendInvitePolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling whether team members can send team invites + */ + export type MemberSendInvitePolicy = MemberSendInvitePolicyDisabled | MemberSendInvitePolicyEveryone | MemberSendInvitePolicySpecificMembers | MemberSendInvitePolicyOther; + + /** + * Changed member send invite policy for team. + */ + export interface MemberSendInvitePolicyChangedDetails { + /** + * New team member send invite policy. + */ + new_value: MemberSendInvitePolicy; + /** + * Previous team member send invite policy. + */ + previous_value: MemberSendInvitePolicy; + } + + export interface MemberSendInvitePolicyChangedType { + description: string; + } + + /** + * Set team member profile photo. + */ + export interface MemberSetProfilePhotoDetails { + } + + export interface MemberSetProfilePhotoType { + description: string; + } + + /** + * Set custom member space limit. + */ + export interface MemberSpaceLimitsAddCustomQuotaDetails { + /** + * New custom quota value in bytes. + */ + new_value: number; + } + + export interface MemberSpaceLimitsAddCustomQuotaType { + description: string; + } + + /** + * Added members to member space limit exception list. + */ + export interface MemberSpaceLimitsAddExceptionDetails { + } + + export interface MemberSpaceLimitsAddExceptionType { + description: string; + } + + /** + * Changed member space limit type for team. + */ + export interface MemberSpaceLimitsChangeCapsTypePolicyDetails { + /** + * Previous space limit type. + */ + previous_value: SpaceCapsType; + /** + * New space limit type. + */ + new_value: SpaceCapsType; + } + + export interface MemberSpaceLimitsChangeCapsTypePolicyType { + description: string; + } + + /** + * Changed custom member space limit. + */ + export interface MemberSpaceLimitsChangeCustomQuotaDetails { + /** + * Previous custom quota value in bytes. + */ + previous_value: number; + /** + * New custom quota value in bytes. + */ + new_value: number; + } + + export interface MemberSpaceLimitsChangeCustomQuotaType { + description: string; + } + + /** + * Changed team default member space limit. + */ + export interface MemberSpaceLimitsChangePolicyDetails { + /** + * Previous team default limit value in bytes. Might be missing due to + * historical data gap. + */ + previous_value?: number; + /** + * New team default limit value in bytes. Might be missing due to + * historical data gap. + */ + new_value?: number; + } + + export interface MemberSpaceLimitsChangePolicyType { + description: string; + } + + /** + * Changed space limit status. + */ + export interface MemberSpaceLimitsChangeStatusDetails { + /** + * Previous storage quota status. + */ + previous_value: SpaceLimitsStatus; + /** + * New storage quota status. + */ + new_value: SpaceLimitsStatus; + } + + export interface MemberSpaceLimitsChangeStatusType { + description: string; + } + + /** + * Removed custom member space limit. + */ + export interface MemberSpaceLimitsRemoveCustomQuotaDetails { + } + + export interface MemberSpaceLimitsRemoveCustomQuotaType { + description: string; + } + + /** + * Removed members from member space limit exception list. + */ + export interface MemberSpaceLimitsRemoveExceptionDetails { + } + + export interface MemberSpaceLimitsRemoveExceptionType { + description: string; + } + + export interface MemberStatusActive { + '.tag': 'active'; + } + + export interface MemberStatusInvited { + '.tag': 'invited'; + } + + export interface MemberStatusMovedToAnotherTeam { + '.tag': 'moved_to_another_team'; + } + + export interface MemberStatusNotJoined { + '.tag': 'not_joined'; + } + + export interface MemberStatusRemoved { + '.tag': 'removed'; + } + + export interface MemberStatusSuspended { + '.tag': 'suspended'; + } + + export interface MemberStatusOther { + '.tag': 'other'; + } + + export type MemberStatus = MemberStatusActive | MemberStatusInvited | MemberStatusMovedToAnotherTeam | MemberStatusNotJoined | MemberStatusRemoved | MemberStatusSuspended | MemberStatusOther; + + /** + * Suggested person to add to team. + */ + export interface MemberSuggestDetails { + /** + * suggested users emails. + */ + suggested_members: Array; + } + + export interface MemberSuggestType { + description: string; + } + + /** + * Enabled/disabled option for team members to suggest people to add to + * team. + */ + export interface MemberSuggestionsChangePolicyDetails { + /** + * New team member suggestions policy. + */ + new_value: MemberSuggestionsPolicy; + /** + * Previous team member suggestions policy. Might be missing due to + * historical data gap. + */ + previous_value?: MemberSuggestionsPolicy; + } + + export interface MemberSuggestionsChangePolicyType { + description: string; + } + + export interface MemberSuggestionsPolicyDisabled { + '.tag': 'disabled'; + } + + export interface MemberSuggestionsPolicyEnabled { + '.tag': 'enabled'; + } + + export interface MemberSuggestionsPolicyOther { + '.tag': 'other'; + } + + /** + * Member suggestions policy + */ + export type MemberSuggestionsPolicy = MemberSuggestionsPolicyDisabled | MemberSuggestionsPolicyEnabled | MemberSuggestionsPolicyOther; + + /** + * Transferred contents of deleted member account to another member. + */ + export interface MemberTransferAccountContentsDetails { + } + + export interface MemberTransferAccountContentsType { + description: string; + } + + /** + * Internal only - fields for target team computations + */ + export interface MemberTransferredInternalFields { + /** + * Internal only - team user was moved from. + */ + source_team_id: team_common.TeamId; + /** + * Internal only - team user was moved to. + */ + target_team_id: team_common.TeamId; + } + + /** + * Enabled/disabled Microsoft Office add-in. + */ + export interface MicrosoftOfficeAddinChangePolicyDetails { + /** + * New Microsoft Office addin policy. + */ + new_value: MicrosoftOfficeAddinPolicy; + /** + * Previous Microsoft Office addin policy. Might be missing due to + * historical data gap. + */ + previous_value?: MicrosoftOfficeAddinPolicy; + } + + export interface MicrosoftOfficeAddinChangePolicyType { + description: string; + } + + export interface MicrosoftOfficeAddinPolicyDisabled { + '.tag': 'disabled'; + } + + export interface MicrosoftOfficeAddinPolicyEnabled { + '.tag': 'enabled'; + } + + export interface MicrosoftOfficeAddinPolicyOther { + '.tag': 'other'; + } + + /** + * Microsoft Office addin policy + */ + export type MicrosoftOfficeAddinPolicy = MicrosoftOfficeAddinPolicyDisabled | MicrosoftOfficeAddinPolicyEnabled | MicrosoftOfficeAddinPolicyOther; + + /** + * An indication that an error occurred while retrieving the event. Some + * attributes of the event may be omitted as a result. + */ + export interface MissingDetails { + /** + * All the data that could be retrieved and converted from the source + * event. + */ + source_event_fields?: string; + } + + /** + * Information about linked Dropbox mobile client sessions + */ + export interface MobileDeviceSessionLogInfo extends DeviceSessionLogInfo { + /** + * Mobile session unique id. + */ + session_info?: MobileSessionLogInfo; + /** + * The device name. + */ + device_name: string; + /** + * The mobile application type. + */ + client_type: team.MobileClientPlatform; + /** + * The Dropbox client version. + */ + client_version?: string; + /** + * The hosting OS version. + */ + os_version?: string; + /** + * last carrier used by the device. + */ + last_carrier?: string; + } + + /** + * Reference to the MobileDeviceSessionLogInfo type, identified by the value + * of the .tag property. + */ + export interface MobileDeviceSessionLogInfoReference extends MobileDeviceSessionLogInfo { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'mobile_device_session'; + } + + /** + * Mobile session. + */ + export interface MobileSessionLogInfo extends SessionLogInfo { + } + + /** + * Reference to the MobileSessionLogInfo type, identified by the value of + * the .tag property. + */ + export interface MobileSessionLogInfoReference extends MobileSessionLogInfo { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'mobile'; + } + + /** + * Namespace relative path details. + */ + export interface NamespaceRelativePathLogInfo { + /** + * Namespace ID. + */ + ns_id?: NamespaceId; + /** + * A path relative to the specified namespace ID. + */ + relative_path?: FilePath; + /** + * True if the namespace is shared. + */ + is_shared_namespace?: boolean; + } + + /** + * Enabled/disabled network control. + */ + export interface NetworkControlChangePolicyDetails { + /** + * New network control policy. + */ + new_value: NetworkControlPolicy; + /** + * Previous network control policy. Might be missing due to historical + * data gap. + */ + previous_value?: NetworkControlPolicy; + } + + export interface NetworkControlChangePolicyType { + description: string; + } + + export interface NetworkControlPolicyDisabled { + '.tag': 'disabled'; + } + + export interface NetworkControlPolicyEnabled { + '.tag': 'enabled'; + } + + export interface NetworkControlPolicyOther { + '.tag': 'other'; + } + + /** + * Network control policy + */ + export type NetworkControlPolicy = NetworkControlPolicyDisabled | NetworkControlPolicyEnabled | NetworkControlPolicyOther; + + /** + * Report created: Links created with no expiration. + */ + export interface NoExpirationLinkGenCreateReportDetails { + /** + * Report start date. + */ + start_date: common.DropboxTimestamp; + /** + * Report end date. + */ + end_date: common.DropboxTimestamp; + } + + export interface NoExpirationLinkGenCreateReportType { + description: string; + } + + /** + * Couldn't create report: Links created with no expiration. + */ + export interface NoExpirationLinkGenReportFailedDetails { + /** + * Failure reason. + */ + failure_reason: team.TeamReportFailureReason; + } + + export interface NoExpirationLinkGenReportFailedType { + description: string; + } + + /** + * Report created: Links created without passwords. + */ + export interface NoPasswordLinkGenCreateReportDetails { + /** + * Report start date. + */ + start_date: common.DropboxTimestamp; + /** + * Report end date. + */ + end_date: common.DropboxTimestamp; + } + + export interface NoPasswordLinkGenCreateReportType { + description: string; + } + + /** + * Couldn't create report: Links created without passwords. + */ + export interface NoPasswordLinkGenReportFailedDetails { + /** + * Failure reason. + */ + failure_reason: team.TeamReportFailureReason; + } + + export interface NoPasswordLinkGenReportFailedType { + description: string; + } + + /** + * Report created: Views of links without passwords. + */ + export interface NoPasswordLinkViewCreateReportDetails { + /** + * Report start date. + */ + start_date: common.DropboxTimestamp; + /** + * Report end date. + */ + end_date: common.DropboxTimestamp; + } + + export interface NoPasswordLinkViewCreateReportType { + description: string; + } + + /** + * Couldn't create report: Views of links without passwords. + */ + export interface NoPasswordLinkViewReportFailedDetails { + /** + * Failure reason. + */ + failure_reason: team.TeamReportFailureReason; + } + + export interface NoPasswordLinkViewReportFailedType { + description: string; + } + + /** + * Non team member's logged information. + */ + export interface NonTeamMemberLogInfo extends UserLogInfo { + } + + /** + * Reference to the NonTeamMemberLogInfo type, identified by the value of + * the .tag property. + */ + export interface NonTeamMemberLogInfoReference extends NonTeamMemberLogInfo { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'non_team_member'; + } + + /** + * The email to which the request was sent + */ + export interface NonTrustedTeamDetails { + /** + * The email to which the request was sent. + */ + team: string; + } + + /** + * Changed Paper doc to invite-only. + */ + export interface NoteAclInviteOnlyDetails { + } + + export interface NoteAclInviteOnlyType { + description: string; + } + + /** + * Changed Paper doc to link-accessible. + */ + export interface NoteAclLinkDetails { + } + + export interface NoteAclLinkType { + description: string; + } + + /** + * Changed Paper doc to link-accessible for team. + */ + export interface NoteAclTeamLinkDetails { + } + + export interface NoteAclTeamLinkType { + description: string; + } + + /** + * Shared received Paper doc. + */ + export interface NoteShareReceiveDetails { + } + + export interface NoteShareReceiveType { + description: string; + } + + /** + * Shared Paper doc. + */ + export interface NoteSharedDetails { + } + + export interface NoteSharedType { + description: string; + } + + /** + * Added a label. + */ + export interface ObjectLabelAddedDetails { + /** + * Labels mark a file or folder. + */ + label_type: LabelType; + } + + export interface ObjectLabelAddedType { + description: string; + } + + /** + * Removed a label. + */ + export interface ObjectLabelRemovedDetails { + /** + * Labels mark a file or folder. + */ + label_type: LabelType; + } + + export interface ObjectLabelRemovedType { + description: string; + } + + /** + * Updated a label's value. + */ + export interface ObjectLabelUpdatedValueDetails { + /** + * Labels mark a file or folder. + */ + label_type: LabelType; + } + + export interface ObjectLabelUpdatedValueType { + description: string; + } + + /** + * Opened shared Paper doc. + */ + export interface OpenNoteSharedDetails { + } + + export interface OpenNoteSharedType { + description: string; + } + + /** + * More details about the organization. + */ + export interface OrganizationDetails { + /** + * The name of the organization. + */ + organization: string; + } + + /** + * The name of the organization + */ + export interface OrganizationName { + /** + * The name of the organization. + */ + organization: string; + } + + /** + * Organized a folder with multi-file organize. + */ + export interface OrganizeFolderWithTidyDetails { + } + + export interface OrganizeFolderWithTidyType { + description: string; + } + + /** + * The origin from which the actor performed the action. + */ + export interface OriginLogInfo { + /** + * Geographic location details. + */ + geo_location?: GeoLocationLogInfo; + /** + * The method that was used to perform the action. + */ + access_method: AccessMethodLogInfo; + } + + /** + * Report created: Views of old links. + */ + export interface OutdatedLinkViewCreateReportDetails { + /** + * Report start date. + */ + start_date: common.DropboxTimestamp; + /** + * Report end date. + */ + end_date: common.DropboxTimestamp; + } + + export interface OutdatedLinkViewCreateReportType { + description: string; + } + + /** + * Couldn't create report: Views of old links. + */ + export interface OutdatedLinkViewReportFailedDetails { + /** + * Failure reason. + */ + failure_reason: team.TeamReportFailureReason; + } + + export interface OutdatedLinkViewReportFailedType { + description: string; + } + + export interface PaperAccessTypeCommenter { + '.tag': 'commenter'; + } + + export interface PaperAccessTypeEditor { + '.tag': 'editor'; + } + + export interface PaperAccessTypeViewer { + '.tag': 'viewer'; + } + + export interface PaperAccessTypeOther { + '.tag': 'other'; + } + + export type PaperAccessType = PaperAccessTypeCommenter | PaperAccessTypeEditor | PaperAccessTypeViewer | PaperAccessTypeOther; + + /** + * Exported all team Paper docs. + */ + export interface PaperAdminExportStartDetails { + } + + export interface PaperAdminExportStartType { + description: string; + } + + /** + * Changed whether Dropbox Paper, when enabled, is deployed to all members + * or to specific members. + */ + export interface PaperChangeDeploymentPolicyDetails { + /** + * New Dropbox Paper deployment policy. + */ + new_value: team_policies.PaperDeploymentPolicy; + /** + * Previous Dropbox Paper deployment policy. Might be missing due to + * historical data gap. + */ + previous_value?: team_policies.PaperDeploymentPolicy; + } + + export interface PaperChangeDeploymentPolicyType { + description: string; + } + + /** + * Changed whether non-members can view Paper docs with link. + */ + export interface PaperChangeMemberLinkPolicyDetails { + /** + * New paper external link accessibility policy. + */ + new_value: PaperMemberPolicy; + } + + export interface PaperChangeMemberLinkPolicyType { + description: string; + } + + /** + * Changed whether members can share Paper docs outside team, and if docs + * are accessible only by team members or anyone by default. + */ + export interface PaperChangeMemberPolicyDetails { + /** + * New paper external accessibility policy. + */ + new_value: PaperMemberPolicy; + /** + * Previous paper external accessibility policy. Might be missing due to + * historical data gap. + */ + previous_value?: PaperMemberPolicy; + } + + export interface PaperChangeMemberPolicyType { + description: string; + } + + /** + * Enabled/disabled Dropbox Paper for team. + */ + export interface PaperChangePolicyDetails { + /** + * New Dropbox Paper policy. + */ + new_value: team_policies.PaperEnabledPolicy; + /** + * Previous Dropbox Paper policy. Might be missing due to historical data + * gap. + */ + previous_value?: team_policies.PaperEnabledPolicy; + } + + export interface PaperChangePolicyType { + description: string; + } + + /** + * Added users and/or groups to Paper doc/folder. + */ + export interface PaperContentAddMemberDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperContentAddMemberType { + description: string; + } + + /** + * Added Paper doc/folder to folder. + */ + export interface PaperContentAddToFolderDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Target asset position in the Assets list. + */ + target_asset_index: number; + /** + * Parent asset position in the Assets list. + */ + parent_asset_index: number; + } + + export interface PaperContentAddToFolderType { + description: string; + } + + /** + * Archived Paper doc/folder. + */ + export interface PaperContentArchiveDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperContentArchiveType { + description: string; + } + + /** + * Created Paper doc/folder. + */ + export interface PaperContentCreateDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperContentCreateType { + description: string; + } + + /** + * Permanently deleted Paper doc/folder. + */ + export interface PaperContentPermanentlyDeleteDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperContentPermanentlyDeleteType { + description: string; + } + + /** + * Removed Paper doc/folder from folder. + */ + export interface PaperContentRemoveFromFolderDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Target asset position in the Assets list. + */ + target_asset_index?: number; + /** + * Parent asset position in the Assets list. + */ + parent_asset_index?: number; + } + + export interface PaperContentRemoveFromFolderType { + description: string; + } + + /** + * Removed users and/or groups from Paper doc/folder. + */ + export interface PaperContentRemoveMemberDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperContentRemoveMemberType { + description: string; + } + + /** + * Renamed Paper doc/folder. + */ + export interface PaperContentRenameDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperContentRenameType { + description: string; + } + + /** + * Restored archived Paper doc/folder. + */ + export interface PaperContentRestoreDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperContentRestoreType { + description: string; + } + + export interface PaperDefaultFolderPolicyEveryoneInTeam { + '.tag': 'everyone_in_team'; + } + + export interface PaperDefaultFolderPolicyInviteOnly { + '.tag': 'invite_only'; + } + + export interface PaperDefaultFolderPolicyOther { + '.tag': 'other'; + } + + /** + * Policy to set default access for newly created Paper folders. + */ + export type PaperDefaultFolderPolicy = PaperDefaultFolderPolicyEveryoneInTeam | PaperDefaultFolderPolicyInviteOnly | PaperDefaultFolderPolicyOther; + + /** + * Changed Paper Default Folder Policy setting for team. + */ + export interface PaperDefaultFolderPolicyChangedDetails { + /** + * New Paper Default Folder Policy. + */ + new_value: PaperDefaultFolderPolicy; + /** + * Previous Paper Default Folder Policy. + */ + previous_value: PaperDefaultFolderPolicy; + } + + export interface PaperDefaultFolderPolicyChangedType { + description: string; + } + + export interface PaperDesktopPolicyDisabled { + '.tag': 'disabled'; + } + + export interface PaperDesktopPolicyEnabled { + '.tag': 'enabled'; + } + + export interface PaperDesktopPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling if team members can use Paper Desktop + */ + export type PaperDesktopPolicy = PaperDesktopPolicyDisabled | PaperDesktopPolicyEnabled | PaperDesktopPolicyOther; + + /** + * Enabled/disabled Paper Desktop for team. + */ + export interface PaperDesktopPolicyChangedDetails { + /** + * New Paper Desktop policy. + */ + new_value: PaperDesktopPolicy; + /** + * Previous Paper Desktop policy. + */ + previous_value: PaperDesktopPolicy; + } + + export interface PaperDesktopPolicyChangedType { + description: string; + } + + /** + * Added Paper doc comment. + */ + export interface PaperDocAddCommentDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Comment text. + */ + comment_text?: string; + } + + export interface PaperDocAddCommentType { + description: string; + } + + /** + * Changed member permissions for Paper doc. + */ + export interface PaperDocChangeMemberRoleDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Paper doc access type. + */ + access_type: PaperAccessType; + } + + export interface PaperDocChangeMemberRoleType { + description: string; + } + + /** + * Changed sharing setting for Paper doc. + */ + export interface PaperDocChangeSharingPolicyDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Sharing policy with external users. + */ + public_sharing_policy?: string; + /** + * Sharing policy with team. + */ + team_sharing_policy?: string; + } + + export interface PaperDocChangeSharingPolicyType { + description: string; + } + + /** + * Followed/unfollowed Paper doc. + */ + export interface PaperDocChangeSubscriptionDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * New doc subscription level. + */ + new_subscription_level: string; + /** + * Previous doc subscription level. Might be missing due to historical + * data gap. + */ + previous_subscription_level?: string; + } + + export interface PaperDocChangeSubscriptionType { + description: string; + } + + /** + * Deleted Paper doc comment. + */ + export interface PaperDocDeleteCommentDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Comment text. + */ + comment_text?: string; + } + + export interface PaperDocDeleteCommentType { + description: string; + } + + /** + * Archived Paper doc. + */ + export interface PaperDocDeletedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperDocDeletedType { + description: string; + } + + /** + * Downloaded Paper doc in specific format. + */ + export interface PaperDocDownloadDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Export file format. + */ + export_file_format: PaperDownloadFormat; + } + + export interface PaperDocDownloadType { + description: string; + } + + /** + * Edited Paper doc comment. + */ + export interface PaperDocEditCommentDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Comment text. + */ + comment_text?: string; + } + + export interface PaperDocEditCommentType { + description: string; + } + + /** + * Edited Paper doc. + */ + export interface PaperDocEditDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperDocEditType { + description: string; + } + + /** + * Followed Paper doc. + */ + export interface PaperDocFollowedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperDocFollowedType { + description: string; + } + + /** + * Mentioned user in Paper doc. + */ + export interface PaperDocMentionDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperDocMentionType { + description: string; + } + + /** + * Transferred ownership of Paper doc. + */ + export interface PaperDocOwnershipChangedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Previous owner. + */ + old_owner_user_id?: users_common.AccountId; + /** + * New owner. + */ + new_owner_user_id: users_common.AccountId; + } + + export interface PaperDocOwnershipChangedType { + description: string; + } + + /** + * Requested access to Paper doc. + */ + export interface PaperDocRequestAccessDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperDocRequestAccessType { + description: string; + } + + /** + * Resolved Paper doc comment. + */ + export interface PaperDocResolveCommentDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Comment text. + */ + comment_text?: string; + } + + export interface PaperDocResolveCommentType { + description: string; + } + + /** + * Restored Paper doc to previous version. + */ + export interface PaperDocRevertDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperDocRevertType { + description: string; + } + + /** + * Shared Paper doc via Slack. + */ + export interface PaperDocSlackShareDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperDocSlackShareType { + description: string; + } + + /** + * Shared Paper doc with users and/or groups. + */ + export interface PaperDocTeamInviteDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperDocTeamInviteType { + description: string; + } + + /** + * Deleted Paper doc. + */ + export interface PaperDocTrashedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperDocTrashedType { + description: string; + } + + /** + * Unresolved Paper doc comment. + */ + export interface PaperDocUnresolveCommentDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Comment text. + */ + comment_text?: string; + } + + export interface PaperDocUnresolveCommentType { + description: string; + } + + /** + * Restored Paper doc. + */ + export interface PaperDocUntrashedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperDocUntrashedType { + description: string; + } + + /** + * Viewed Paper doc. + */ + export interface PaperDocViewDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperDocViewType { + description: string; + } + + /** + * Paper document's logged information. + */ + export interface PaperDocumentLogInfo { + /** + * Papers document Id. + */ + doc_id: string; + /** + * Paper document title. + */ + doc_title: string; + } + + export interface PaperDownloadFormatDocx { + '.tag': 'docx'; + } + + export interface PaperDownloadFormatHtml { + '.tag': 'html'; + } + + export interface PaperDownloadFormatMarkdown { + '.tag': 'markdown'; + } + + export interface PaperDownloadFormatPdf { + '.tag': 'pdf'; + } + + export interface PaperDownloadFormatOther { + '.tag': 'other'; + } + + export type PaperDownloadFormat = PaperDownloadFormatDocx | PaperDownloadFormatHtml | PaperDownloadFormatMarkdown | PaperDownloadFormatPdf | PaperDownloadFormatOther; + + /** + * Added users to Paper-enabled users list. + */ + export interface PaperEnabledUsersGroupAdditionDetails { + } + + export interface PaperEnabledUsersGroupAdditionType { + description: string; + } + + /** + * Removed users from Paper-enabled users list. + */ + export interface PaperEnabledUsersGroupRemovalDetails { + } + + export interface PaperEnabledUsersGroupRemovalType { + description: string; + } + + /** + * Changed Paper external sharing setting to anyone. + */ + export interface PaperExternalViewAllowDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperExternalViewAllowType { + description: string; + } + + /** + * Changed Paper external sharing setting to default team. + */ + export interface PaperExternalViewDefaultTeamDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperExternalViewDefaultTeamType { + description: string; + } + + /** + * Changed Paper external sharing setting to team-only. + */ + export interface PaperExternalViewForbidDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperExternalViewForbidType { + description: string; + } + + /** + * Followed/unfollowed Paper folder. + */ + export interface PaperFolderChangeSubscriptionDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * New folder subscription level. + */ + new_subscription_level: string; + /** + * Previous folder subscription level. Might be missing due to historical + * data gap. + */ + previous_subscription_level?: string; + } + + export interface PaperFolderChangeSubscriptionType { + description: string; + } + + /** + * Archived Paper folder. + */ + export interface PaperFolderDeletedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperFolderDeletedType { + description: string; + } + + /** + * Followed Paper folder. + */ + export interface PaperFolderFollowedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperFolderFollowedType { + description: string; + } + + /** + * Paper folder's logged information. + */ + export interface PaperFolderLogInfo { + /** + * Papers folder Id. + */ + folder_id: string; + /** + * Paper folder name. + */ + folder_name: string; + } + + /** + * Shared Paper folder with users and/or groups. + */ + export interface PaperFolderTeamInviteDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperFolderTeamInviteType { + description: string; + } + + export interface PaperMemberPolicyAnyoneWithLink { + '.tag': 'anyone_with_link'; + } + + export interface PaperMemberPolicyOnlyTeam { + '.tag': 'only_team'; + } + + export interface PaperMemberPolicyTeamAndExplicitlyShared { + '.tag': 'team_and_explicitly_shared'; + } + + export interface PaperMemberPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling if team members can share Paper documents + * externally. + */ + export type PaperMemberPolicy = PaperMemberPolicyAnyoneWithLink | PaperMemberPolicyOnlyTeam | PaperMemberPolicyTeamAndExplicitlyShared | PaperMemberPolicyOther; + + /** + * Changed permissions for published doc. + */ + export interface PaperPublishedLinkChangePermissionDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * New permission level. + */ + new_permission_level: string; + /** + * Previous permission level. + */ + previous_permission_level: string; + } + + export interface PaperPublishedLinkChangePermissionType { + description: string; + } + + /** + * Published doc. + */ + export interface PaperPublishedLinkCreateDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperPublishedLinkCreateType { + description: string; + } + + /** + * Unpublished doc. + */ + export interface PaperPublishedLinkDisabledDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperPublishedLinkDisabledType { + description: string; + } + + /** + * Viewed published doc. + */ + export interface PaperPublishedLinkViewDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface PaperPublishedLinkViewType { + description: string; + } + + /** + * Group details. + */ + export interface ParticipantLogInfoGroup extends GroupLogInfo { + '.tag': 'group'; + } + + /** + * A user with a Dropbox account. + */ + export interface ParticipantLogInfoUser { + '.tag': 'user'; + user: TeamMemberLogInfoReference|TrustedNonTeamMemberLogInfoReference|NonTeamMemberLogInfoReference|UserLogInfoReference; + } + + export interface ParticipantLogInfoOther { + '.tag': 'other'; + } + + /** + * A user or group + */ + export type ParticipantLogInfo = ParticipantLogInfoGroup | ParticipantLogInfoUser | ParticipantLogInfoOther; + + export interface PassPolicyAllow { + '.tag': 'allow'; + } + + export interface PassPolicyDisabled { + '.tag': 'disabled'; + } + + export interface PassPolicyEnabled { + '.tag': 'enabled'; + } + + export interface PassPolicyOther { + '.tag': 'other'; + } + + export type PassPolicy = PassPolicyAllow | PassPolicyDisabled | PassPolicyEnabled | PassPolicyOther; + + /** + * Changed password. + */ + export interface PasswordChangeDetails { + } + + export interface PasswordChangeType { + description: string; + } + + /** + * Reset all team member passwords. + */ + export interface PasswordResetAllDetails { + } + + export interface PasswordResetAllType { + description: string; + } + + /** + * Reset password. + */ + export interface PasswordResetDetails { + } + + export interface PasswordResetType { + description: string; + } + + /** + * Changed team password strength requirements. + */ + export interface PasswordStrengthRequirementsChangePolicyDetails { + /** + * Old password strength policy. + */ + previous_value: team_policies.PasswordStrengthPolicy; + /** + * New password strength policy. + */ + new_value: team_policies.PasswordStrengthPolicy; + } + + export interface PasswordStrengthRequirementsChangePolicyType { + description: string; + } + + /** + * Path's details. + */ + export interface PathLogInfo { + /** + * Fully qualified path relative to event's context. + */ + contextual?: FilePath; + /** + * Path relative to the namespace containing the content. + */ + namespace_relative: NamespaceRelativePathLogInfo; + } + + /** + * Added pending secondary email. + */ + export interface PendingSecondaryEmailAddedDetails { + /** + * New pending secondary email. + */ + secondary_email: EmailAddress; + } + + export interface PendingSecondaryEmailAddedType { + description: string; + } + + /** + * Enabled/disabled ability of team members to permanently delete content. + */ + export interface PermanentDeleteChangePolicyDetails { + /** + * New permanent delete content policy. + */ + new_value: ContentPermanentDeletePolicy; + /** + * Previous permanent delete content policy. Might be missing due to + * historical data gap. + */ + previous_value?: ContentPermanentDeletePolicy; + } + + export interface PermanentDeleteChangePolicyType { + description: string; + } + + export interface PlacementRestrictionAustraliaOnly { + '.tag': 'australia_only'; + } + + export interface PlacementRestrictionEuropeOnly { + '.tag': 'europe_only'; + } + + export interface PlacementRestrictionJapanOnly { + '.tag': 'japan_only'; + } + + export interface PlacementRestrictionNone { + '.tag': 'none'; + } + + export interface PlacementRestrictionUkOnly { + '.tag': 'uk_only'; + } + + export interface PlacementRestrictionUsS3Only { + '.tag': 'us_s3_only'; + } + + export interface PlacementRestrictionOther { + '.tag': 'other'; + } + + export type PlacementRestriction = PlacementRestrictionAustraliaOnly | PlacementRestrictionEuropeOnly | PlacementRestrictionJapanOnly | PlacementRestrictionNone | PlacementRestrictionUkOnly | PlacementRestrictionUsS3Only | PlacementRestrictionOther; + + export interface PolicyTypeDisposition { + '.tag': 'disposition'; + } + + export interface PolicyTypeRetention { + '.tag': 'retention'; + } + + export interface PolicyTypeOther { + '.tag': 'other'; + } + + export type PolicyType = PolicyTypeDisposition | PolicyTypeRetention | PolicyTypeOther; + + /** + * Team merge request acceptance details shown to the primary team + */ + export interface PrimaryTeamRequestAcceptedDetails { + /** + * The secondary team name. + */ + secondary_team: string; + /** + * The name of the secondary team admin who sent the request originally. + */ + sent_by: string; + } + + /** + * Team merge request cancellation details shown to the primary team + */ + export interface PrimaryTeamRequestCanceledDetails { + /** + * The secondary team name. + */ + secondary_team: string; + /** + * The name of the secondary team admin who sent the request originally. + */ + sent_by: string; + } + + /** + * Team merge request expiration details shown to the primary team + */ + export interface PrimaryTeamRequestExpiredDetails { + /** + * The secondary team name. + */ + secondary_team: string; + /** + * The name of the secondary team admin who sent the request originally. + */ + sent_by: string; + } + + /** + * Team merge request reminder details shown to the primary team + */ + export interface PrimaryTeamRequestReminderDetails { + /** + * The secondary team name. + */ + secondary_team: string; + /** + * The name of the primary team admin the request was sent to. + */ + sent_to: string; + } + + export interface QuickActionTypeDeleteSharedLink { + '.tag': 'delete_shared_link'; + } + + export interface QuickActionTypeResetPassword { + '.tag': 'reset_password'; + } + + export interface QuickActionTypeRestoreFileOrFolder { + '.tag': 'restore_file_or_folder'; + } + + export interface QuickActionTypeUnlinkApp { + '.tag': 'unlink_app'; + } + + export interface QuickActionTypeUnlinkDevice { + '.tag': 'unlink_device'; + } + + export interface QuickActionTypeUnlinkSession { + '.tag': 'unlink_session'; + } + + export interface QuickActionTypeOther { + '.tag': 'other'; + } + + /** + * Quick action type. + */ + export type QuickActionType = QuickActionTypeDeleteSharedLink | QuickActionTypeResetPassword | QuickActionTypeRestoreFileOrFolder | QuickActionTypeUnlinkApp | QuickActionTypeUnlinkDevice | QuickActionTypeUnlinkSession | QuickActionTypeOther; + + /** + * Recipients Configuration + */ + export interface RecipientsConfiguration { + /** + * Recipients setting type. + */ + recipient_setting_type?: AlertRecipientsSettingType; + /** + * A list of user emails to notify. + */ + emails?: Array; + /** + * A list of groups to notify. + */ + groups?: Array; + } + + /** + * Provides the indices of the source asset and the destination asset for a + * relocate action. + */ + export interface RelocateAssetReferencesLogInfo { + /** + * Source asset position in the Assets list. + */ + src_asset_index: number; + /** + * Destination asset position in the Assets list. + */ + dest_asset_index: number; + } + + /** + * Reseller information. + */ + export interface ResellerLogInfo { + /** + * Reseller name. + */ + reseller_name: string; + /** + * Reseller email. + */ + reseller_email: EmailAddress; + } + + export interface ResellerRoleNotReseller { + '.tag': 'not_reseller'; + } + + export interface ResellerRoleResellerAdmin { + '.tag': 'reseller_admin'; + } + + export interface ResellerRoleOther { + '.tag': 'other'; + } + + export type ResellerRole = ResellerRoleNotReseller | ResellerRoleResellerAdmin | ResellerRoleOther; + + /** + * Enabled/disabled reseller support. + */ + export interface ResellerSupportChangePolicyDetails { + /** + * New Reseller support policy. + */ + new_value: ResellerSupportPolicy; + /** + * Previous Reseller support policy. + */ + previous_value: ResellerSupportPolicy; + } + + export interface ResellerSupportChangePolicyType { + description: string; + } + + export interface ResellerSupportPolicyDisabled { + '.tag': 'disabled'; + } + + export interface ResellerSupportPolicyEnabled { + '.tag': 'enabled'; + } + + export interface ResellerSupportPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling if reseller can access the admin console as + * administrator + */ + export type ResellerSupportPolicy = ResellerSupportPolicyDisabled | ResellerSupportPolicyEnabled | ResellerSupportPolicyOther; + + /** + * Ended reseller support session. + */ + export interface ResellerSupportSessionEndDetails { + } + + export interface ResellerSupportSessionEndType { + description: string; + } + + /** + * Started reseller support session. + */ + export interface ResellerSupportSessionStartDetails { + } + + export interface ResellerSupportSessionStartType { + description: string; + } + + /** + * Rewound a folder. + */ + export interface RewindFolderDetails { + /** + * Folder was Rewound to this date. + */ + rewind_folder_target_ts_ms: common.DropboxTimestamp; + } + + export interface RewindFolderType { + description: string; + } + + export interface RewindPolicyAdminsOnly { + '.tag': 'admins_only'; + } + + export interface RewindPolicyEveryone { + '.tag': 'everyone'; + } + + export interface RewindPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling whether team members can rewind + */ + export type RewindPolicy = RewindPolicyAdminsOnly | RewindPolicyEveryone | RewindPolicyOther; + + /** + * Changed Rewind policy for team. + */ + export interface RewindPolicyChangedDetails { + /** + * New Dropbox Rewind policy. + */ + new_value: RewindPolicy; + /** + * Previous Dropbox Rewind policy. + */ + previous_value: RewindPolicy; + } + + export interface RewindPolicyChangedType { + description: string; + } + + /** + * Deleted secondary email. + */ + export interface SecondaryEmailDeletedDetails { + /** + * Deleted secondary email. + */ + secondary_email: EmailAddress; + } + + export interface SecondaryEmailDeletedType { + description: string; + } + + /** + * Verified secondary email. + */ + export interface SecondaryEmailVerifiedDetails { + /** + * Verified secondary email. + */ + secondary_email: EmailAddress; + } + + export interface SecondaryEmailVerifiedType { + description: string; + } + + export interface SecondaryMailsPolicyDisabled { + '.tag': 'disabled'; + } + + export interface SecondaryMailsPolicyEnabled { + '.tag': 'enabled'; + } + + export interface SecondaryMailsPolicyOther { + '.tag': 'other'; + } + + export type SecondaryMailsPolicy = SecondaryMailsPolicyDisabled | SecondaryMailsPolicyEnabled | SecondaryMailsPolicyOther; + + /** + * Secondary mails policy changed. + */ + export interface SecondaryMailsPolicyChangedDetails { + /** + * Previous secondary mails policy. + */ + previous_value: SecondaryMailsPolicy; + /** + * New secondary mails policy. + */ + new_value: SecondaryMailsPolicy; + } + + export interface SecondaryMailsPolicyChangedType { + description: string; + } + + /** + * Team merge request acceptance details shown to the secondary team + */ + export interface SecondaryTeamRequestAcceptedDetails { + /** + * The primary team name. + */ + primary_team: string; + /** + * The name of the secondary team admin who sent the request originally. + */ + sent_by: string; + } + + /** + * Team merge request cancellation details shown to the secondary team + */ + export interface SecondaryTeamRequestCanceledDetails { + /** + * The email of the primary team admin that the request was sent to. + */ + sent_to: string; + /** + * The name of the secondary team admin who sent the request originally. + */ + sent_by: string; + } + + /** + * Team merge request expiration details shown to the secondary team + */ + export interface SecondaryTeamRequestExpiredDetails { + /** + * The email of the primary team admin the request was sent to. + */ + sent_to: string; + } + + /** + * Team merge request reminder details shown to the secondary team + */ + export interface SecondaryTeamRequestReminderDetails { + /** + * The email of the primary team admin the request was sent to. + */ + sent_to: string; + } + + export interface SendForSignaturePolicyDisabled { + '.tag': 'disabled'; + } + + export interface SendForSignaturePolicyEnabled { + '.tag': 'enabled'; + } + + export interface SendForSignaturePolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling team access to send for signature feature + */ + export type SendForSignaturePolicy = SendForSignaturePolicyDisabled | SendForSignaturePolicyEnabled | SendForSignaturePolicyOther; + + /** + * Changed send for signature policy for team. + */ + export interface SendForSignaturePolicyChangedDetails { + /** + * New send for signature policy. + */ + new_value: SendForSignaturePolicy; + /** + * Previous send for signature policy. + */ + previous_value: SendForSignaturePolicy; + } + + export interface SendForSignaturePolicyChangedType { + description: string; + } + + /** + * Session's logged information. + */ + export interface SessionLogInfo { + /** + * Session ID. + */ + session_id?: common.SessionId; + } + + /** + * Reference to the SessionLogInfo polymorphic type. Contains a .tag + * property to let you discriminate between possible subtypes. + */ + export interface SessionLogInfoReference extends SessionLogInfo { + /** + * Tag identifying the subtype variant. + */ + '.tag': "web"|"desktop"|"mobile"; + } + + /** + * Added team to shared folder. + */ + export interface SfAddGroupDetails { + /** + * Target asset position in the Assets list. + */ + target_asset_index: number; + /** + * Original shared folder name. + */ + original_folder_name: string; + /** + * Sharing permission. + */ + sharing_permission?: string; + /** + * Team name. + */ + team_name: string; + } + + export interface SfAddGroupType { + description: string; + } + + /** + * Allowed non-collaborators to view links to files in shared folder. + */ + export interface SfAllowNonMembersToViewSharedLinksDetails { + /** + * Target asset position in the Assets list. + */ + target_asset_index: number; + /** + * Original shared folder name. + */ + original_folder_name: string; + /** + * Shared folder type. + */ + shared_folder_type?: string; + } + + export interface SfAllowNonMembersToViewSharedLinksType { + description: string; + } + + /** + * Set team members to see warning before sharing folders outside team. + */ + export interface SfExternalInviteWarnDetails { + /** + * Target asset position in the Assets list. + */ + target_asset_index: number; + /** + * Original shared folder name. + */ + original_folder_name: string; + /** + * New sharing permission. + */ + new_sharing_permission?: string; + /** + * Previous sharing permission. + */ + previous_sharing_permission?: string; + } + + export interface SfExternalInviteWarnType { + description: string; + } + + /** + * Changed Facebook user's role in shared folder. + */ + export interface SfFbInviteChangeRoleDetails { + /** + * Target asset position in the Assets list. + */ + target_asset_index: number; + /** + * Original shared folder name. + */ + original_folder_name: string; + /** + * Previous sharing permission. + */ + previous_sharing_permission?: string; + /** + * New sharing permission. + */ + new_sharing_permission?: string; + } + + export interface SfFbInviteChangeRoleType { + description: string; + } + + /** + * Invited Facebook users to shared folder. + */ + export interface SfFbInviteDetails { + /** + * Target asset position in the Assets list. + */ + target_asset_index: number; + /** + * Original shared folder name. + */ + original_folder_name: string; + /** + * Sharing permission. + */ + sharing_permission?: string; + } + + export interface SfFbInviteType { + description: string; + } + + /** + * Uninvited Facebook user from shared folder. + */ + export interface SfFbUninviteDetails { + /** + * Target asset position in the Assets list. + */ + target_asset_index: number; + /** + * Original shared folder name. + */ + original_folder_name: string; + } + + export interface SfFbUninviteType { + description: string; + } + + /** + * Invited group to shared folder. + */ + export interface SfInviteGroupDetails { + /** + * Target asset position in the Assets list. + */ + target_asset_index: number; + } + + export interface SfInviteGroupType { + description: string; + } + + /** + * Granted access to shared folder. + */ + export interface SfTeamGrantAccessDetails { + /** + * Target asset position in the Assets list. + */ + target_asset_index: number; + /** + * Original shared folder name. + */ + original_folder_name: string; + } + + export interface SfTeamGrantAccessType { + description: string; + } + + /** + * Changed team member's role in shared folder. + */ + export interface SfTeamInviteChangeRoleDetails { + /** + * Target asset position in the Assets list. + */ + target_asset_index: number; + /** + * Original shared folder name. + */ + original_folder_name: string; + /** + * New sharing permission. + */ + new_sharing_permission?: string; + /** + * Previous sharing permission. + */ + previous_sharing_permission?: string; + } + + export interface SfTeamInviteChangeRoleType { + description: string; + } + + /** + * Invited team members to shared folder. + */ + export interface SfTeamInviteDetails { + /** + * Target asset position in the Assets list. + */ + target_asset_index: number; + /** + * Original shared folder name. + */ + original_folder_name: string; + /** + * Sharing permission. + */ + sharing_permission?: string; + } + + export interface SfTeamInviteType { + description: string; + } + + /** + * Joined team member's shared folder. + */ + export interface SfTeamJoinDetails { + /** + * Target asset position in the Assets list. + */ + target_asset_index: number; + /** + * Original shared folder name. + */ + original_folder_name: string; + } + + /** + * Joined team member's shared folder from link. + */ + export interface SfTeamJoinFromOobLinkDetails { + /** + * Target asset position in the Assets list. + */ + target_asset_index: number; + /** + * Original shared folder name. + */ + original_folder_name: string; + /** + * Shared link token key. + */ + token_key?: string; + /** + * Sharing permission. + */ + sharing_permission?: string; + } + + export interface SfTeamJoinFromOobLinkType { + description: string; + } + + export interface SfTeamJoinType { + description: string; + } + + /** + * Unshared folder with team member. + */ + export interface SfTeamUninviteDetails { + /** + * Target asset position in the Assets list. + */ + target_asset_index: number; + /** + * Original shared folder name. + */ + original_folder_name: string; + } + + export interface SfTeamUninviteType { + description: string; + } + + /** + * Invited user to Dropbox and added them to shared file/folder. + */ + export interface SharedContentAddInviteesDetails { + /** + * Shared content access level. + */ + shared_content_access_level: sharing.AccessLevel; + /** + * A list of invitees. + */ + invitees: Array; + } + + export interface SharedContentAddInviteesType { + description: string; + } + + /** + * Added expiration date to link for shared file/folder. + */ + export interface SharedContentAddLinkExpiryDetails { + /** + * New shared content link expiration date. Might be missing due to + * historical data gap. + */ + new_value?: common.DropboxTimestamp; + } + + export interface SharedContentAddLinkExpiryType { + description: string; + } + + /** + * Added password to link for shared file/folder. + */ + export interface SharedContentAddLinkPasswordDetails { + } + + export interface SharedContentAddLinkPasswordType { + description: string; + } + + /** + * Added users and/or groups to shared file/folder. + */ + export interface SharedContentAddMemberDetails { + /** + * Shared content access level. + */ + shared_content_access_level: sharing.AccessLevel; + } + + export interface SharedContentAddMemberType { + description: string; + } + + /** + * Changed whether members can download shared file/folder. + */ + export interface SharedContentChangeDownloadsPolicyDetails { + /** + * New downloads policy. + */ + new_value: DownloadPolicyType; + /** + * Previous downloads policy. Might be missing due to historical data gap. + */ + previous_value?: DownloadPolicyType; + } + + export interface SharedContentChangeDownloadsPolicyType { + description: string; + } + + /** + * Changed access type of invitee to shared file/folder before invite was + * accepted. + */ + export interface SharedContentChangeInviteeRoleDetails { + /** + * Previous access level. Might be missing due to historical data gap. + */ + previous_access_level?: sharing.AccessLevel; + /** + * New access level. + */ + new_access_level: sharing.AccessLevel; + /** + * The invitee whose role was changed. + */ + invitee: EmailAddress; + } + + export interface SharedContentChangeInviteeRoleType { + description: string; + } + + /** + * Changed link audience of shared file/folder. + */ + export interface SharedContentChangeLinkAudienceDetails { + /** + * New link audience value. + */ + new_value: sharing.LinkAudience; + /** + * Previous link audience value. + */ + previous_value?: sharing.LinkAudience; + } + + export interface SharedContentChangeLinkAudienceType { + description: string; + } + + /** + * Changed link expiration of shared file/folder. + */ + export interface SharedContentChangeLinkExpiryDetails { + /** + * New shared content link expiration date. Might be missing due to + * historical data gap. + */ + new_value?: common.DropboxTimestamp; + /** + * Previous shared content link expiration date. Might be missing due to + * historical data gap. + */ + previous_value?: common.DropboxTimestamp; + } + + export interface SharedContentChangeLinkExpiryType { + description: string; + } + + /** + * Changed link password of shared file/folder. + */ + export interface SharedContentChangeLinkPasswordDetails { + } + + export interface SharedContentChangeLinkPasswordType { + description: string; + } + + /** + * Changed access type of shared file/folder member. + */ + export interface SharedContentChangeMemberRoleDetails { + /** + * Previous access level. Might be missing due to historical data gap. + */ + previous_access_level?: sharing.AccessLevel; + /** + * New access level. + */ + new_access_level: sharing.AccessLevel; + } + + export interface SharedContentChangeMemberRoleType { + description: string; + } + + /** + * Changed whether members can see who viewed shared file/folder. + */ + export interface SharedContentChangeViewerInfoPolicyDetails { + /** + * New viewer info policy. + */ + new_value: sharing.ViewerInfoPolicy; + /** + * Previous view info policy. + */ + previous_value?: sharing.ViewerInfoPolicy; + } + + export interface SharedContentChangeViewerInfoPolicyType { + description: string; + } + + /** + * Acquired membership of shared file/folder by accepting invite. + */ + export interface SharedContentClaimInvitationDetails { + /** + * Shared content link. + */ + shared_content_link?: string; + } + + export interface SharedContentClaimInvitationType { + description: string; + } + + /** + * Copied shared file/folder to own Dropbox. + */ + export interface SharedContentCopyDetails { + /** + * Shared content link. + */ + shared_content_link: string; + /** + * The shared content owner. + */ + shared_content_owner?: TeamMemberLogInfoReference|TrustedNonTeamMemberLogInfoReference|NonTeamMemberLogInfoReference|UserLogInfoReference; + /** + * Shared content access level. + */ + shared_content_access_level: sharing.AccessLevel; + /** + * The path where the member saved the content. + */ + destination_path: FilePath; + } + + export interface SharedContentCopyType { + description: string; + } + + /** + * Downloaded shared file/folder. + */ + export interface SharedContentDownloadDetails { + /** + * Shared content link. + */ + shared_content_link: string; + /** + * The shared content owner. + */ + shared_content_owner?: TeamMemberLogInfoReference|TrustedNonTeamMemberLogInfoReference|NonTeamMemberLogInfoReference|UserLogInfoReference; + /** + * Shared content access level. + */ + shared_content_access_level: sharing.AccessLevel; + } + + export interface SharedContentDownloadType { + description: string; + } + + /** + * Left shared file/folder. + */ + export interface SharedContentRelinquishMembershipDetails { + } + + export interface SharedContentRelinquishMembershipType { + description: string; + } + + /** + * Removed invitee from shared file/folder before invite was accepted. + */ + export interface SharedContentRemoveInviteesDetails { + /** + * A list of invitees. + */ + invitees: Array; + } + + export interface SharedContentRemoveInviteesType { + description: string; + } + + /** + * Removed link expiration date of shared file/folder. + */ + export interface SharedContentRemoveLinkExpiryDetails { + /** + * Previous shared content link expiration date. Might be missing due to + * historical data gap. + */ + previous_value?: common.DropboxTimestamp; + } + + export interface SharedContentRemoveLinkExpiryType { + description: string; + } + + /** + * Removed link password of shared file/folder. + */ + export interface SharedContentRemoveLinkPasswordDetails { + } + + export interface SharedContentRemoveLinkPasswordType { + description: string; + } + + /** + * Removed user/group from shared file/folder. + */ + export interface SharedContentRemoveMemberDetails { + /** + * Shared content access level. + */ + shared_content_access_level?: sharing.AccessLevel; + } + + export interface SharedContentRemoveMemberType { + description: string; + } + + /** + * Requested access to shared file/folder. + */ + export interface SharedContentRequestAccessDetails { + /** + * Shared content link. + */ + shared_content_link?: string; + } + + export interface SharedContentRequestAccessType { + description: string; + } + + /** + * Restored shared file/folder invitees. + */ + export interface SharedContentRestoreInviteesDetails { + /** + * Shared content access level. + */ + shared_content_access_level: sharing.AccessLevel; + /** + * A list of invitees. + */ + invitees: Array; + } + + export interface SharedContentRestoreInviteesType { + description: string; + } + + /** + * Restored users and/or groups to membership of shared file/folder. + */ + export interface SharedContentRestoreMemberDetails { + /** + * Shared content access level. + */ + shared_content_access_level: sharing.AccessLevel; + } + + export interface SharedContentRestoreMemberType { + description: string; + } + + /** + * Unshared file/folder by clearing membership. + */ + export interface SharedContentUnshareDetails { + } + + export interface SharedContentUnshareType { + description: string; + } + + /** + * Previewed shared file/folder. + */ + export interface SharedContentViewDetails { + /** + * Shared content link. + */ + shared_content_link: string; + /** + * The shared content owner. + */ + shared_content_owner?: TeamMemberLogInfoReference|TrustedNonTeamMemberLogInfoReference|NonTeamMemberLogInfoReference|UserLogInfoReference; + /** + * Shared content access level. + */ + shared_content_access_level: sharing.AccessLevel; + } + + export interface SharedContentViewType { + description: string; + } + + /** + * Changed who can access shared folder via link. + */ + export interface SharedFolderChangeLinkPolicyDetails { + /** + * New shared folder link policy. + */ + new_value: sharing.SharedLinkPolicy; + /** + * Previous shared folder link policy. Might be missing due to historical + * data gap. + */ + previous_value?: sharing.SharedLinkPolicy; + } + + export interface SharedFolderChangeLinkPolicyType { + description: string; + } + + /** + * Changed whether shared folder inherits members from parent folder. + */ + export interface SharedFolderChangeMembersInheritancePolicyDetails { + /** + * New member inheritance policy. + */ + new_value: SharedFolderMembersInheritancePolicy; + /** + * Previous member inheritance policy. Might be missing due to historical + * data gap. + */ + previous_value?: SharedFolderMembersInheritancePolicy; + } + + export interface SharedFolderChangeMembersInheritancePolicyType { + description: string; + } + + /** + * Changed who can add/remove members of shared folder. + */ + export interface SharedFolderChangeMembersManagementPolicyDetails { + /** + * New members management policy. + */ + new_value: sharing.AclUpdatePolicy; + /** + * Previous members management policy. Might be missing due to historical + * data gap. + */ + previous_value?: sharing.AclUpdatePolicy; + } + + export interface SharedFolderChangeMembersManagementPolicyType { + description: string; + } + + /** + * Changed who can become member of shared folder. + */ + export interface SharedFolderChangeMembersPolicyDetails { + /** + * New external invite policy. + */ + new_value: sharing.MemberPolicy; + /** + * Previous external invite policy. Might be missing due to historical + * data gap. + */ + previous_value?: sharing.MemberPolicy; + } + + export interface SharedFolderChangeMembersPolicyType { + description: string; + } + + /** + * Created shared folder. + */ + export interface SharedFolderCreateDetails { + /** + * Target namespace ID. + */ + target_ns_id?: NamespaceId; + } + + export interface SharedFolderCreateType { + description: string; + } + + /** + * Declined team member's invite to shared folder. + */ + export interface SharedFolderDeclineInvitationDetails { + } + + export interface SharedFolderDeclineInvitationType { + description: string; + } + + export interface SharedFolderMembersInheritancePolicyDontInheritMembers { + '.tag': 'dont_inherit_members'; + } + + export interface SharedFolderMembersInheritancePolicyInheritMembers { + '.tag': 'inherit_members'; + } + + export interface SharedFolderMembersInheritancePolicyOther { + '.tag': 'other'; + } + + /** + * Specifies if a shared folder inherits its members from the parent folder. + */ + export type SharedFolderMembersInheritancePolicy = SharedFolderMembersInheritancePolicyDontInheritMembers | SharedFolderMembersInheritancePolicyInheritMembers | SharedFolderMembersInheritancePolicyOther; + + /** + * Added shared folder to own Dropbox. + */ + export interface SharedFolderMountDetails { + } + + export interface SharedFolderMountType { + description: string; + } + + /** + * Changed parent of shared folder. + */ + export interface SharedFolderNestDetails { + /** + * Previous parent namespace ID. + */ + previous_parent_ns_id?: NamespaceId; + /** + * New parent namespace ID. + */ + new_parent_ns_id?: NamespaceId; + /** + * Previous namespace path. + */ + previous_ns_path?: FilePath; + /** + * New namespace path. + */ + new_ns_path?: FilePath; + } + + export interface SharedFolderNestType { + description: string; + } + + /** + * Transferred ownership of shared folder to another member. + */ + export interface SharedFolderTransferOwnershipDetails { + /** + * The email address of the previous shared folder owner. + */ + previous_owner_email?: EmailAddress; + /** + * The email address of the new shared folder owner. + */ + new_owner_email: EmailAddress; + } + + export interface SharedFolderTransferOwnershipType { + description: string; + } + + /** + * Deleted shared folder from Dropbox. + */ + export interface SharedFolderUnmountDetails { + } + + export interface SharedFolderUnmountType { + description: string; + } + + export interface SharedLinkAccessLevelNone { + '.tag': 'none'; + } + + export interface SharedLinkAccessLevelReader { + '.tag': 'reader'; + } + + export interface SharedLinkAccessLevelWriter { + '.tag': 'writer'; + } + + export interface SharedLinkAccessLevelOther { + '.tag': 'other'; + } + + /** + * Shared link access level. + */ + export type SharedLinkAccessLevel = SharedLinkAccessLevelNone | SharedLinkAccessLevelReader | SharedLinkAccessLevelWriter | SharedLinkAccessLevelOther; + + /** + * Added shared link expiration date. + */ + export interface SharedLinkAddExpiryDetails { + /** + * New shared link expiration date. + */ + new_value: common.DropboxTimestamp; + } + + export interface SharedLinkAddExpiryType { + description: string; + } + + /** + * Changed shared link expiration date. + */ + export interface SharedLinkChangeExpiryDetails { + /** + * New shared link expiration date. Might be missing due to historical + * data gap. + */ + new_value?: common.DropboxTimestamp; + /** + * Previous shared link expiration date. Might be missing due to + * historical data gap. + */ + previous_value?: common.DropboxTimestamp; + } + + export interface SharedLinkChangeExpiryType { + description: string; + } + + /** + * Changed visibility of shared link. + */ + export interface SharedLinkChangeVisibilityDetails { + /** + * New shared link visibility. + */ + new_value: SharedLinkVisibility; + /** + * Previous shared link visibility. Might be missing due to historical + * data gap. + */ + previous_value?: SharedLinkVisibility; + } + + export interface SharedLinkChangeVisibilityType { + description: string; + } + + /** + * Added file/folder to Dropbox from shared link. + */ + export interface SharedLinkCopyDetails { + /** + * Shared link owner details. Might be missing due to historical data gap. + */ + shared_link_owner?: TeamMemberLogInfoReference|TrustedNonTeamMemberLogInfoReference|NonTeamMemberLogInfoReference|UserLogInfoReference; + } + + export interface SharedLinkCopyType { + description: string; + } + + /** + * Created shared link. + */ + export interface SharedLinkCreateDetails { + /** + * Defines who can access the shared link. Might be missing due to + * historical data gap. + */ + shared_link_access_level?: SharedLinkAccessLevel; + } + + export interface SharedLinkCreateType { + description: string; + } + + /** + * Removed shared link. + */ + export interface SharedLinkDisableDetails { + /** + * Shared link owner details. Might be missing due to historical data gap. + */ + shared_link_owner?: TeamMemberLogInfoReference|TrustedNonTeamMemberLogInfoReference|NonTeamMemberLogInfoReference|UserLogInfoReference; + } + + export interface SharedLinkDisableType { + description: string; + } + + /** + * Downloaded file/folder from shared link. + */ + export interface SharedLinkDownloadDetails { + /** + * Shared link owner details. Might be missing due to historical data gap. + */ + shared_link_owner?: TeamMemberLogInfoReference|TrustedNonTeamMemberLogInfoReference|NonTeamMemberLogInfoReference|UserLogInfoReference; + } + + export interface SharedLinkDownloadType { + description: string; + } + + /** + * Removed shared link expiration date. + */ + export interface SharedLinkRemoveExpiryDetails { + /** + * Previous shared link expiration date. Might be missing due to + * historical data gap. + */ + previous_value?: common.DropboxTimestamp; + } + + export interface SharedLinkRemoveExpiryType { + description: string; + } + + /** + * Added an expiration date to the shared link. + */ + export interface SharedLinkSettingsAddExpirationDetails { + /** + * Shared content access level. + */ + shared_content_access_level: sharing.AccessLevel; + /** + * Shared content link. + */ + shared_content_link?: string; + /** + * New shared content link expiration date. Might be missing due to + * historical data gap. + */ + new_value?: common.DropboxTimestamp; + } + + export interface SharedLinkSettingsAddExpirationType { + description: string; + } + + /** + * Added a password to the shared link. + */ + export interface SharedLinkSettingsAddPasswordDetails { + /** + * Shared content access level. + */ + shared_content_access_level: sharing.AccessLevel; + /** + * Shared content link. + */ + shared_content_link?: string; + } + + export interface SharedLinkSettingsAddPasswordType { + description: string; + } + + /** + * Disabled downloads. + */ + export interface SharedLinkSettingsAllowDownloadDisabledDetails { + /** + * Shared content access level. + */ + shared_content_access_level: sharing.AccessLevel; + /** + * Shared content link. + */ + shared_content_link?: string; + } + + export interface SharedLinkSettingsAllowDownloadDisabledType { + description: string; + } + + /** + * Enabled downloads. + */ + export interface SharedLinkSettingsAllowDownloadEnabledDetails { + /** + * Shared content access level. + */ + shared_content_access_level: sharing.AccessLevel; + /** + * Shared content link. + */ + shared_content_link?: string; + } + + export interface SharedLinkSettingsAllowDownloadEnabledType { + description: string; + } + + /** + * Changed the audience of the shared link. + */ + export interface SharedLinkSettingsChangeAudienceDetails { + /** + * Shared content access level. + */ + shared_content_access_level: sharing.AccessLevel; + /** + * Shared content link. + */ + shared_content_link?: string; + /** + * New link audience value. + */ + new_value: sharing.LinkAudience; + /** + * Previous link audience value. + */ + previous_value?: sharing.LinkAudience; + } + + export interface SharedLinkSettingsChangeAudienceType { + description: string; + } + + /** + * Changed the expiration date of the shared link. + */ + export interface SharedLinkSettingsChangeExpirationDetails { + /** + * Shared content access level. + */ + shared_content_access_level: sharing.AccessLevel; + /** + * Shared content link. + */ + shared_content_link?: string; + /** + * New shared content link expiration date. Might be missing due to + * historical data gap. + */ + new_value?: common.DropboxTimestamp; + /** + * Previous shared content link expiration date. Might be missing due to + * historical data gap. + */ + previous_value?: common.DropboxTimestamp; + } + + export interface SharedLinkSettingsChangeExpirationType { + description: string; + } + + /** + * Changed the password of the shared link. + */ + export interface SharedLinkSettingsChangePasswordDetails { + /** + * Shared content access level. + */ + shared_content_access_level: sharing.AccessLevel; + /** + * Shared content link. + */ + shared_content_link?: string; + } + + export interface SharedLinkSettingsChangePasswordType { + description: string; + } + + /** + * Removed the expiration date from the shared link. + */ + export interface SharedLinkSettingsRemoveExpirationDetails { + /** + * Shared content access level. + */ + shared_content_access_level: sharing.AccessLevel; + /** + * Shared content link. + */ + shared_content_link?: string; + /** + * Previous shared link expiration date. Might be missing due to + * historical data gap. + */ + previous_value?: common.DropboxTimestamp; + } + + export interface SharedLinkSettingsRemoveExpirationType { + description: string; + } + + /** + * Removed the password from the shared link. + */ + export interface SharedLinkSettingsRemovePasswordDetails { + /** + * Shared content access level. + */ + shared_content_access_level: sharing.AccessLevel; + /** + * Shared content link. + */ + shared_content_link?: string; + } + + export interface SharedLinkSettingsRemovePasswordType { + description: string; + } + + /** + * Added members as audience of shared link. + */ + export interface SharedLinkShareDetails { + /** + * Shared link owner details. Might be missing due to historical data gap. + */ + shared_link_owner?: TeamMemberLogInfoReference|TrustedNonTeamMemberLogInfoReference|NonTeamMemberLogInfoReference|UserLogInfoReference; + /** + * Users without a Dropbox account that were added as shared link + * audience. + */ + external_users?: Array; + } + + export interface SharedLinkShareType { + description: string; + } + + /** + * Opened shared link. + */ + export interface SharedLinkViewDetails { + /** + * Shared link owner details. Might be missing due to historical data gap. + */ + shared_link_owner?: TeamMemberLogInfoReference|TrustedNonTeamMemberLogInfoReference|NonTeamMemberLogInfoReference|UserLogInfoReference; + } + + export interface SharedLinkViewType { + description: string; + } + + export interface SharedLinkVisibilityNoOne { + '.tag': 'no_one'; + } + + export interface SharedLinkVisibilityPassword { + '.tag': 'password'; + } + + export interface SharedLinkVisibilityPublic { + '.tag': 'public'; + } + + export interface SharedLinkVisibilityTeamOnly { + '.tag': 'team_only'; + } + + export interface SharedLinkVisibilityOther { + '.tag': 'other'; + } + + /** + * Defines who has access to a shared link. + */ + export type SharedLinkVisibility = SharedLinkVisibilityNoOne | SharedLinkVisibilityPassword | SharedLinkVisibilityPublic | SharedLinkVisibilityTeamOnly | SharedLinkVisibilityOther; + + /** + * Opened shared Paper doc. + */ + export interface SharedNoteOpenedDetails { + } + + export interface SharedNoteOpenedType { + description: string; + } + + /** + * Changed whether team members can join shared folders owned outside team. + */ + export interface SharingChangeFolderJoinPolicyDetails { + /** + * New external join policy. + */ + new_value: SharingFolderJoinPolicy; + /** + * Previous external join policy. Might be missing due to historical data + * gap. + */ + previous_value?: SharingFolderJoinPolicy; + } + + export interface SharingChangeFolderJoinPolicyType { + description: string; + } + + /** + * Changed the allow remove or change expiration policy for the links shared + * outside of the team. + */ + export interface SharingChangeLinkAllowChangeExpirationPolicyDetails { + /** + * To. + */ + new_value: EnforceLinkPasswordPolicy; + /** + * From. + */ + previous_value?: EnforceLinkPasswordPolicy; + } + + export interface SharingChangeLinkAllowChangeExpirationPolicyType { + description: string; + } + + /** + * Changed the default expiration for the links shared outside of the team. + */ + export interface SharingChangeLinkDefaultExpirationPolicyDetails { + /** + * To. + */ + new_value: DefaultLinkExpirationDaysPolicy; + /** + * From. + */ + previous_value?: DefaultLinkExpirationDaysPolicy; + } + + export interface SharingChangeLinkDefaultExpirationPolicyType { + description: string; + } + + /** + * Changed the password requirement for the links shared outside of the + * team. + */ + export interface SharingChangeLinkEnforcePasswordPolicyDetails { + /** + * To. + */ + new_value: ChangeLinkExpirationPolicy; + /** + * From. + */ + previous_value?: ChangeLinkExpirationPolicy; + } + + export interface SharingChangeLinkEnforcePasswordPolicyType { + description: string; + } + + /** + * Changed whether members can share links outside team, and if links are + * accessible only by team members or anyone by default. + */ + export interface SharingChangeLinkPolicyDetails { + /** + * New external link accessibility policy. + */ + new_value: SharingLinkPolicy; + /** + * Previous external link accessibility policy. Might be missing due to + * historical data gap. + */ + previous_value?: SharingLinkPolicy; + } + + export interface SharingChangeLinkPolicyType { + description: string; + } + + /** + * Changed whether members can share files/folders outside team. + */ + export interface SharingChangeMemberPolicyDetails { + /** + * New external invite policy. + */ + new_value: SharingMemberPolicy; + /** + * Previous external invite policy. Might be missing due to historical + * data gap. + */ + previous_value?: SharingMemberPolicy; + } + + export interface SharingChangeMemberPolicyType { + description: string; + } + + export interface SharingFolderJoinPolicyFromAnyone { + '.tag': 'from_anyone'; + } + + export interface SharingFolderJoinPolicyFromTeamOnly { + '.tag': 'from_team_only'; + } + + export interface SharingFolderJoinPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling if team members can join shared folders owned by + * non team members. + */ + export type SharingFolderJoinPolicy = SharingFolderJoinPolicyFromAnyone | SharingFolderJoinPolicyFromTeamOnly | SharingFolderJoinPolicyOther; + + export interface SharingLinkPolicyDefaultNoOne { + '.tag': 'default_no_one'; + } + + export interface SharingLinkPolicyDefaultPrivate { + '.tag': 'default_private'; + } + + export interface SharingLinkPolicyDefaultPublic { + '.tag': 'default_public'; + } + + export interface SharingLinkPolicyOnlyPrivate { + '.tag': 'only_private'; + } + + export interface SharingLinkPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling if team members can share links externally + */ + export type SharingLinkPolicy = SharingLinkPolicyDefaultNoOne | SharingLinkPolicyDefaultPrivate | SharingLinkPolicyDefaultPublic | SharingLinkPolicyOnlyPrivate | SharingLinkPolicyOther; + + export interface SharingMemberPolicyAllow { + '.tag': 'allow'; + } + + export interface SharingMemberPolicyForbid { + '.tag': 'forbid'; + } + + export interface SharingMemberPolicyForbidWithExclusions { + '.tag': 'forbid_with_exclusions'; + } + + export interface SharingMemberPolicyOther { + '.tag': 'other'; + } + + /** + * External sharing policy + */ + export type SharingMemberPolicy = SharingMemberPolicyAllow | SharingMemberPolicyForbid | SharingMemberPolicyForbidWithExclusions | SharingMemberPolicyOther; + + /** + * Disabled downloads for link. + */ + export interface ShmodelDisableDownloadsDetails { + /** + * Shared link owner details. Might be missing due to historical data gap. + */ + shared_link_owner?: TeamMemberLogInfoReference|TrustedNonTeamMemberLogInfoReference|NonTeamMemberLogInfoReference|UserLogInfoReference; + } + + export interface ShmodelDisableDownloadsType { + description: string; + } + + /** + * Enabled downloads for link. + */ + export interface ShmodelEnableDownloadsDetails { + /** + * Shared link owner details. Might be missing due to historical data gap. + */ + shared_link_owner?: TeamMemberLogInfoReference|TrustedNonTeamMemberLogInfoReference|NonTeamMemberLogInfoReference|UserLogInfoReference; + } + + export interface ShmodelEnableDownloadsType { + description: string; + } + + /** + * Shared link with group. + */ + export interface ShmodelGroupShareDetails { + } + + export interface ShmodelGroupShareType { + description: string; + } + + /** + * Granted access to showcase. + */ + export interface ShowcaseAccessGrantedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface ShowcaseAccessGrantedType { + description: string; + } + + /** + * Added member to showcase. + */ + export interface ShowcaseAddMemberDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface ShowcaseAddMemberType { + description: string; + } + + /** + * Archived showcase. + */ + export interface ShowcaseArchivedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface ShowcaseArchivedType { + description: string; + } + + /** + * Enabled/disabled downloading files from Dropbox Showcase for team. + */ + export interface ShowcaseChangeDownloadPolicyDetails { + /** + * New Dropbox Showcase download policy. + */ + new_value: ShowcaseDownloadPolicy; + /** + * Previous Dropbox Showcase download policy. + */ + previous_value: ShowcaseDownloadPolicy; + } + + export interface ShowcaseChangeDownloadPolicyType { + description: string; + } + + /** + * Enabled/disabled Dropbox Showcase for team. + */ + export interface ShowcaseChangeEnabledPolicyDetails { + /** + * New Dropbox Showcase policy. + */ + new_value: ShowcaseEnabledPolicy; + /** + * Previous Dropbox Showcase policy. + */ + previous_value: ShowcaseEnabledPolicy; + } + + export interface ShowcaseChangeEnabledPolicyType { + description: string; + } + + /** + * Enabled/disabled sharing Dropbox Showcase externally for team. + */ + export interface ShowcaseChangeExternalSharingPolicyDetails { + /** + * New Dropbox Showcase external sharing policy. + */ + new_value: ShowcaseExternalSharingPolicy; + /** + * Previous Dropbox Showcase external sharing policy. + */ + previous_value: ShowcaseExternalSharingPolicy; + } + + export interface ShowcaseChangeExternalSharingPolicyType { + description: string; + } + + /** + * Created showcase. + */ + export interface ShowcaseCreatedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface ShowcaseCreatedType { + description: string; + } + + /** + * Deleted showcase comment. + */ + export interface ShowcaseDeleteCommentDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Comment text. + */ + comment_text?: string; + } + + export interface ShowcaseDeleteCommentType { + description: string; + } + + /** + * Showcase document's logged information. + */ + export interface ShowcaseDocumentLogInfo { + /** + * Showcase document Id. + */ + showcase_id: string; + /** + * Showcase document title. + */ + showcase_title: string; + } + + export interface ShowcaseDownloadPolicyDisabled { + '.tag': 'disabled'; + } + + export interface ShowcaseDownloadPolicyEnabled { + '.tag': 'enabled'; + } + + export interface ShowcaseDownloadPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling if files can be downloaded from Showcases by team + * members + */ + export type ShowcaseDownloadPolicy = ShowcaseDownloadPolicyDisabled | ShowcaseDownloadPolicyEnabled | ShowcaseDownloadPolicyOther; + + /** + * Edited showcase comment. + */ + export interface ShowcaseEditCommentDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Comment text. + */ + comment_text?: string; + } + + export interface ShowcaseEditCommentType { + description: string; + } + + /** + * Edited showcase. + */ + export interface ShowcaseEditedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface ShowcaseEditedType { + description: string; + } + + export interface ShowcaseEnabledPolicyDisabled { + '.tag': 'disabled'; + } + + export interface ShowcaseEnabledPolicyEnabled { + '.tag': 'enabled'; + } + + export interface ShowcaseEnabledPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling whether Showcase is enabled. + */ + export type ShowcaseEnabledPolicy = ShowcaseEnabledPolicyDisabled | ShowcaseEnabledPolicyEnabled | ShowcaseEnabledPolicyOther; + + export interface ShowcaseExternalSharingPolicyDisabled { + '.tag': 'disabled'; + } + + export interface ShowcaseExternalSharingPolicyEnabled { + '.tag': 'enabled'; + } + + export interface ShowcaseExternalSharingPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling if team members can share Showcases externally. + */ + export type ShowcaseExternalSharingPolicy = ShowcaseExternalSharingPolicyDisabled | ShowcaseExternalSharingPolicyEnabled | ShowcaseExternalSharingPolicyOther; + + /** + * Added file to showcase. + */ + export interface ShowcaseFileAddedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface ShowcaseFileAddedType { + description: string; + } + + /** + * Downloaded file from showcase. + */ + export interface ShowcaseFileDownloadDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Showcase download type. + */ + download_type: string; + } + + export interface ShowcaseFileDownloadType { + description: string; + } + + /** + * Removed file from showcase. + */ + export interface ShowcaseFileRemovedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface ShowcaseFileRemovedType { + description: string; + } + + /** + * Viewed file in showcase. + */ + export interface ShowcaseFileViewDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface ShowcaseFileViewType { + description: string; + } + + /** + * Permanently deleted showcase. + */ + export interface ShowcasePermanentlyDeletedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface ShowcasePermanentlyDeletedType { + description: string; + } + + /** + * Added showcase comment. + */ + export interface ShowcasePostCommentDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Comment text. + */ + comment_text?: string; + } + + export interface ShowcasePostCommentType { + description: string; + } + + /** + * Removed member from showcase. + */ + export interface ShowcaseRemoveMemberDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface ShowcaseRemoveMemberType { + description: string; + } + + /** + * Renamed showcase. + */ + export interface ShowcaseRenamedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface ShowcaseRenamedType { + description: string; + } + + /** + * Requested access to showcase. + */ + export interface ShowcaseRequestAccessDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface ShowcaseRequestAccessType { + description: string; + } + + /** + * Resolved showcase comment. + */ + export interface ShowcaseResolveCommentDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Comment text. + */ + comment_text?: string; + } + + export interface ShowcaseResolveCommentType { + description: string; + } + + /** + * Unarchived showcase. + */ + export interface ShowcaseRestoredDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface ShowcaseRestoredType { + description: string; + } + + /** + * Deleted showcase (old version). + */ + export interface ShowcaseTrashedDeprecatedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface ShowcaseTrashedDeprecatedType { + description: string; + } + + /** + * Deleted showcase. + */ + export interface ShowcaseTrashedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface ShowcaseTrashedType { + description: string; + } + + /** + * Unresolved showcase comment. + */ + export interface ShowcaseUnresolveCommentDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + /** + * Comment text. + */ + comment_text?: string; + } + + export interface ShowcaseUnresolveCommentType { + description: string; + } + + /** + * Restored showcase (old version). + */ + export interface ShowcaseUntrashedDeprecatedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface ShowcaseUntrashedDeprecatedType { + description: string; + } + + /** + * Restored showcase. + */ + export interface ShowcaseUntrashedDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface ShowcaseUntrashedType { + description: string; + } + + /** + * Viewed showcase. + */ + export interface ShowcaseViewDetails { + /** + * Event unique identifier. + */ + event_uuid: string; + } + + export interface ShowcaseViewType { + description: string; + } + + /** + * Ended admin sign-in-as session. + */ + export interface SignInAsSessionEndDetails { + } + + export interface SignInAsSessionEndType { + description: string; + } + + /** + * Started admin sign-in-as session. + */ + export interface SignInAsSessionStartDetails { + } + + export interface SignInAsSessionStartType { + description: string; + } + + /** + * Changed default Smart Sync setting for team members. + */ + export interface SmartSyncChangePolicyDetails { + /** + * New smart sync policy. + */ + new_value?: team_policies.SmartSyncPolicy; + /** + * Previous smart sync policy. + */ + previous_value?: team_policies.SmartSyncPolicy; + } + + export interface SmartSyncChangePolicyType { + description: string; + } + + /** + * Created Smart Sync non-admin devices report. + */ + export interface SmartSyncCreateAdminPrivilegeReportDetails { + } + + export interface SmartSyncCreateAdminPrivilegeReportType { + description: string; + } + + /** + * Opted team into Smart Sync. + */ + export interface SmartSyncNotOptOutDetails { + /** + * Previous Smart Sync opt out policy. + */ + previous_value: SmartSyncOptOutPolicy; + /** + * New Smart Sync opt out policy. + */ + new_value: SmartSyncOptOutPolicy; + } + + export interface SmartSyncNotOptOutType { + description: string; + } + + /** + * Opted team out of Smart Sync. + */ + export interface SmartSyncOptOutDetails { + /** + * Previous Smart Sync opt out policy. + */ + previous_value: SmartSyncOptOutPolicy; + /** + * New Smart Sync opt out policy. + */ + new_value: SmartSyncOptOutPolicy; + } + + export interface SmartSyncOptOutPolicyDefault { + '.tag': 'default'; + } + + export interface SmartSyncOptOutPolicyOptedOut { + '.tag': 'opted_out'; + } + + export interface SmartSyncOptOutPolicyOther { + '.tag': 'other'; + } + + export type SmartSyncOptOutPolicy = SmartSyncOptOutPolicyDefault | SmartSyncOptOutPolicyOptedOut | SmartSyncOptOutPolicyOther; + + export interface SmartSyncOptOutType { + description: string; + } + + /** + * Changed automatic Smart Sync setting for team. + */ + export interface SmarterSmartSyncPolicyChangedDetails { + /** + * Previous automatic Smart Sync setting. + */ + previous_value: team_policies.SmarterSmartSyncPolicyState; + /** + * New automatic Smart Sync setting. + */ + new_value: team_policies.SmarterSmartSyncPolicyState; + } + + export interface SmarterSmartSyncPolicyChangedType { + description: string; + } + + export interface SpaceCapsTypeHard { + '.tag': 'hard'; + } + + export interface SpaceCapsTypeOff { + '.tag': 'off'; + } + + export interface SpaceCapsTypeSoft { + '.tag': 'soft'; + } + + export interface SpaceCapsTypeOther { + '.tag': 'other'; + } + + /** + * Space limit alert policy + */ + export type SpaceCapsType = SpaceCapsTypeHard | SpaceCapsTypeOff | SpaceCapsTypeSoft | SpaceCapsTypeOther; + + export interface SpaceLimitsStatusNearQuota { + '.tag': 'near_quota'; + } + + export interface SpaceLimitsStatusOverQuota { + '.tag': 'over_quota'; + } + + export interface SpaceLimitsStatusWithinQuota { + '.tag': 'within_quota'; + } + + export interface SpaceLimitsStatusOther { + '.tag': 'other'; + } + + export type SpaceLimitsStatus = SpaceLimitsStatusNearQuota | SpaceLimitsStatusOverQuota | SpaceLimitsStatusWithinQuota | SpaceLimitsStatusOther; + + /** + * Added X.509 certificate for SSO. + */ + export interface SsoAddCertDetails { + /** + * SSO certificate details. + */ + certificate_details: Certificate; + } + + export interface SsoAddCertType { + description: string; + } + + /** + * Added sign-in URL for SSO. + */ + export interface SsoAddLoginUrlDetails { + /** + * New single sign-on login URL. + */ + new_value: string; + } + + export interface SsoAddLoginUrlType { + description: string; + } + + /** + * Added sign-out URL for SSO. + */ + export interface SsoAddLogoutUrlDetails { + /** + * New single sign-on logout URL. + */ + new_value?: string; + } + + export interface SsoAddLogoutUrlType { + description: string; + } + + /** + * Changed X.509 certificate for SSO. + */ + export interface SsoChangeCertDetails { + /** + * Previous SSO certificate details. Might be missing due to historical + * data gap. + */ + previous_certificate_details?: Certificate; + /** + * New SSO certificate details. + */ + new_certificate_details: Certificate; + } + + export interface SsoChangeCertType { + description: string; + } + + /** + * Changed sign-in URL for SSO. + */ + export interface SsoChangeLoginUrlDetails { + /** + * Previous single sign-on login URL. + */ + previous_value: string; + /** + * New single sign-on login URL. + */ + new_value: string; + } + + export interface SsoChangeLoginUrlType { + description: string; + } + + /** + * Changed sign-out URL for SSO. + */ + export interface SsoChangeLogoutUrlDetails { + /** + * Previous single sign-on logout URL. Might be missing due to historical + * data gap. + */ + previous_value?: string; + /** + * New single sign-on logout URL. + */ + new_value?: string; + } + + export interface SsoChangeLogoutUrlType { + description: string; + } + + /** + * Changed single sign-on setting for team. + */ + export interface SsoChangePolicyDetails { + /** + * New single sign-on policy. + */ + new_value: team_policies.SsoPolicy; + /** + * Previous single sign-on policy. Might be missing due to historical data + * gap. + */ + previous_value?: team_policies.SsoPolicy; + } + + export interface SsoChangePolicyType { + description: string; + } + + /** + * Changed SAML identity mode for SSO. + */ + export interface SsoChangeSamlIdentityModeDetails { + /** + * Previous single sign-on identity mode. + */ + previous_value: number; + /** + * New single sign-on identity mode. + */ + new_value: number; + } + + export interface SsoChangeSamlIdentityModeType { + description: string; + } + + /** + * Failed to sign in via SSO. + */ + export interface SsoErrorDetails { + /** + * Error details. + */ + error_details: FailureDetailsLogInfo; + } + + export interface SsoErrorType { + description: string; + } + + /** + * Removed X.509 certificate for SSO. + */ + export interface SsoRemoveCertDetails { + } + + export interface SsoRemoveCertType { + description: string; + } + + /** + * Removed sign-in URL for SSO. + */ + export interface SsoRemoveLoginUrlDetails { + /** + * Previous single sign-on login URL. + */ + previous_value: string; + } + + export interface SsoRemoveLoginUrlType { + description: string; + } + + /** + * Removed sign-out URL for SSO. + */ + export interface SsoRemoveLogoutUrlDetails { + /** + * Previous single sign-on logout URL. + */ + previous_value: string; + } + + export interface SsoRemoveLogoutUrlType { + description: string; + } + + /** + * Started enterprise admin session. + */ + export interface StartedEnterpriseAdminSessionDetails { + /** + * More information about the organization or team. + */ + federation_extra_details: FedExtraDetails; + } + + export interface StartedEnterpriseAdminSessionType { + description: string; + } + + /** + * Created team activity report. + */ + export interface TeamActivityCreateReportDetails { + /** + * Report start date. + */ + start_date: common.DropboxTimestamp; + /** + * Report end date. + */ + end_date: common.DropboxTimestamp; + } + + /** + * Couldn't generate team activity report. + */ + export interface TeamActivityCreateReportFailDetails { + /** + * Failure reason. + */ + failure_reason: team.TeamReportFailureReason; + } + + export interface TeamActivityCreateReportFailType { + description: string; + } + + export interface TeamActivityCreateReportType { + description: string; + } + + export interface TeamBrandingPolicyDisabled { + '.tag': 'disabled'; + } + + export interface TeamBrandingPolicyEnabled { + '.tag': 'enabled'; + } + + export interface TeamBrandingPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling team access to setting up branding feature + */ + export type TeamBrandingPolicy = TeamBrandingPolicyDisabled | TeamBrandingPolicyEnabled | TeamBrandingPolicyOther; + + /** + * Changed team branding policy for team. + */ + export interface TeamBrandingPolicyChangedDetails { + /** + * New team branding policy. + */ + new_value: TeamBrandingPolicy; + /** + * Previous team branding policy. + */ + previous_value: TeamBrandingPolicy; + } + + export interface TeamBrandingPolicyChangedType { + description: string; + } + + /** + * More details about the team. + */ + export interface TeamDetails { + /** + * The name of the team. + */ + team: string; + } + + /** + * An audit log event. + */ + export interface TeamEvent { + /** + * The Dropbox timestamp representing when the action was taken. + */ + timestamp: common.DropboxTimestamp; + /** + * The category that this type of action belongs to. + */ + event_category: EventCategory; + /** + * The entity who actually performed the action. Might be missing due to + * historical data gap. + */ + actor?: ActorLogInfo; + /** + * The origin from which the actor performed the action including + * information about host, ip address, location, session, etc. If the + * action was performed programmatically via the API the origin represents + * the API client. + */ + origin?: OriginLogInfo; + /** + * True if the action involved a non team member either as the actor or as + * one of the affected users. Might be missing due to historical data gap. + */ + involve_non_team_member?: boolean; + /** + * The user or team on whose behalf the actor performed the action. Might + * be missing due to historical data gap. + */ + context?: ContextLogInfo; + /** + * Zero or more users and/or groups that are affected by the action. Note + * that this list doesn't include any actors or users in context. + */ + participants?: Array; + /** + * Zero or more content assets involved in the action. Currently these + * include Dropbox files and folders but in the future we might add other + * asset types such as Paper documents, folders, projects, etc. + */ + assets?: Array; + /** + * The particular type of action taken. + */ + event_type: EventType; + /** + * The variable event schema applicable to this type of action, + * instantiated with respect to this particular action. + */ + details: EventDetails; + } + + export interface TeamExtensionsPolicyDisabled { + '.tag': 'disabled'; + } + + export interface TeamExtensionsPolicyEnabled { + '.tag': 'enabled'; + } + + export interface TeamExtensionsPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling whether App Integrations are enabled for the team. + */ + export type TeamExtensionsPolicy = TeamExtensionsPolicyDisabled | TeamExtensionsPolicyEnabled | TeamExtensionsPolicyOther; + + /** + * Changed App Integrations setting for team. + */ + export interface TeamExtensionsPolicyChangedDetails { + /** + * New Extensions policy. + */ + new_value: TeamExtensionsPolicy; + /** + * Previous Extensions policy. + */ + previous_value: TeamExtensionsPolicy; + } + + export interface TeamExtensionsPolicyChangedType { + description: string; + } + + /** + * Changed archival status of team folder. + */ + export interface TeamFolderChangeStatusDetails { + /** + * New team folder status. + */ + new_value: team.TeamFolderStatus; + /** + * Previous team folder status. Might be missing due to historical data + * gap. + */ + previous_value?: team.TeamFolderStatus; + } + + export interface TeamFolderChangeStatusType { + description: string; + } + + /** + * Created team folder in active status. + */ + export interface TeamFolderCreateDetails { + } + + export interface TeamFolderCreateType { + description: string; + } + + /** + * Downgraded team folder to regular shared folder. + */ + export interface TeamFolderDowngradeDetails { + /** + * Target asset position in the Assets list. + */ + target_asset_index: number; + } + + export interface TeamFolderDowngradeType { + description: string; + } + + /** + * Permanently deleted archived team folder. + */ + export interface TeamFolderPermanentlyDeleteDetails { + } + + export interface TeamFolderPermanentlyDeleteType { + description: string; + } + + /** + * Renamed active/archived team folder. + */ + export interface TeamFolderRenameDetails { + /** + * Previous folder name. + */ + previous_folder_name: string; + /** + * New folder name. + */ + new_folder_name: string; + } + + export interface TeamFolderRenameType { + description: string; + } + + /** + * Details about team invites + */ + export interface TeamInviteDetails { + /** + * How the user was invited to the team. + */ + invite_method: InviteMethod; + /** + * True if the invitation incurred an additional license purchase. + */ + additional_license_purchase?: boolean; + } + + /** + * Team linked app + */ + export interface TeamLinkedAppLogInfo extends AppLogInfo { + } + + /** + * Reference to the TeamLinkedAppLogInfo type, identified by the value of + * the .tag property. + */ + export interface TeamLinkedAppLogInfoReference extends TeamLinkedAppLogInfo { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'team_linked_app'; + } + + /** + * Team's logged information. + */ + export interface TeamLogInfo { + /** + * Team display name. + */ + display_name: string; + } + + /** + * Team member's logged information. + */ + export interface TeamMemberLogInfo extends UserLogInfo { + /** + * Team member ID. + */ + team_member_id?: team_common.TeamMemberId; + /** + * Team member external ID. + */ + member_external_id?: team_common.MemberExternalId; + /** + * Details about this user’s team for enterprise event. + */ + team?: TeamLogInfo; + } + + /** + * Reference to the TeamMemberLogInfo type, identified by the value of the + * .tag property. + */ + export interface TeamMemberLogInfoReference extends TeamMemberLogInfo { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'team_member'; + } + + export interface TeamMembershipTypeFree { + '.tag': 'free'; + } + + export interface TeamMembershipTypeFull { + '.tag': 'full'; + } + + export interface TeamMembershipTypeGuest { + '.tag': 'guest'; + } + + export interface TeamMembershipTypeOther { + '.tag': 'other'; + } + + export type TeamMembershipType = TeamMembershipTypeFree | TeamMembershipTypeFull | TeamMembershipTypeGuest | TeamMembershipTypeOther; + + /** + * Merged another team into this team. + */ + export interface TeamMergeFromDetails { + /** + * The name of the team that was merged into this team. + */ + team_name: string; + } + + export interface TeamMergeFromType { + description: string; + } + + /** + * Accepted a team merge request. + */ + export interface TeamMergeRequestAcceptedDetails { + /** + * Team merge request acceptance details. + */ + request_accepted_details: TeamMergeRequestAcceptedExtraDetails; + } + + /** + * Team merge request accepted details shown to the primary team. + */ + export interface TeamMergeRequestAcceptedExtraDetailsPrimaryTeam extends PrimaryTeamRequestAcceptedDetails { + '.tag': 'primary_team'; + } + + /** + * Team merge request accepted details shown to the secondary team. + */ + export interface TeamMergeRequestAcceptedExtraDetailsSecondaryTeam extends SecondaryTeamRequestAcceptedDetails { + '.tag': 'secondary_team'; + } + + export interface TeamMergeRequestAcceptedExtraDetailsOther { + '.tag': 'other'; + } + + /** + * Team merge request acceptance details + */ + export type TeamMergeRequestAcceptedExtraDetails = TeamMergeRequestAcceptedExtraDetailsPrimaryTeam | TeamMergeRequestAcceptedExtraDetailsSecondaryTeam | TeamMergeRequestAcceptedExtraDetailsOther; + + /** + * Accepted a team merge request. + */ + export interface TeamMergeRequestAcceptedShownToPrimaryTeamDetails { + /** + * The secondary team name. + */ + secondary_team: string; + /** + * The name of the secondary team admin who sent the request originally. + */ + sent_by: string; + } + + export interface TeamMergeRequestAcceptedShownToPrimaryTeamType { + description: string; + } + + /** + * Accepted a team merge request. + */ + export interface TeamMergeRequestAcceptedShownToSecondaryTeamDetails { + /** + * The primary team name. + */ + primary_team: string; + /** + * The name of the secondary team admin who sent the request originally. + */ + sent_by: string; + } + + export interface TeamMergeRequestAcceptedShownToSecondaryTeamType { + description: string; + } + + export interface TeamMergeRequestAcceptedType { + description: string; + } + + /** + * Automatically canceled team merge request. + */ + export interface TeamMergeRequestAutoCanceledDetails { + /** + * The cancellation reason. + */ + details?: string; + } + + export interface TeamMergeRequestAutoCanceledType { + description: string; + } + + /** + * Canceled a team merge request. + */ + export interface TeamMergeRequestCanceledDetails { + /** + * Team merge request cancellation details. + */ + request_canceled_details: TeamMergeRequestCanceledExtraDetails; + } + + /** + * Team merge request cancellation details shown to the primary team. + */ + export interface TeamMergeRequestCanceledExtraDetailsPrimaryTeam extends PrimaryTeamRequestCanceledDetails { + '.tag': 'primary_team'; + } + + /** + * Team merge request cancellation details shown to the secondary team. + */ + export interface TeamMergeRequestCanceledExtraDetailsSecondaryTeam extends SecondaryTeamRequestCanceledDetails { + '.tag': 'secondary_team'; + } + + export interface TeamMergeRequestCanceledExtraDetailsOther { + '.tag': 'other'; + } + + /** + * Team merge request cancellation details + */ + export type TeamMergeRequestCanceledExtraDetails = TeamMergeRequestCanceledExtraDetailsPrimaryTeam | TeamMergeRequestCanceledExtraDetailsSecondaryTeam | TeamMergeRequestCanceledExtraDetailsOther; + + /** + * Canceled a team merge request. + */ + export interface TeamMergeRequestCanceledShownToPrimaryTeamDetails { + /** + * The secondary team name. + */ + secondary_team: string; + /** + * The name of the secondary team admin who sent the request originally. + */ + sent_by: string; + } + + export interface TeamMergeRequestCanceledShownToPrimaryTeamType { + description: string; + } + + /** + * Canceled a team merge request. + */ + export interface TeamMergeRequestCanceledShownToSecondaryTeamDetails { + /** + * The email of the primary team admin that the request was sent to. + */ + sent_to: string; + /** + * The name of the secondary team admin who sent the request originally. + */ + sent_by: string; + } + + export interface TeamMergeRequestCanceledShownToSecondaryTeamType { + description: string; + } + + export interface TeamMergeRequestCanceledType { + description: string; + } + + /** + * Team merge request expired. + */ + export interface TeamMergeRequestExpiredDetails { + /** + * Team merge request expiration details. + */ + request_expired_details: TeamMergeRequestExpiredExtraDetails; + } + + /** + * Team merge request canceled details shown to the primary team. + */ + export interface TeamMergeRequestExpiredExtraDetailsPrimaryTeam extends PrimaryTeamRequestExpiredDetails { + '.tag': 'primary_team'; + } + + /** + * Team merge request canceled details shown to the secondary team. + */ + export interface TeamMergeRequestExpiredExtraDetailsSecondaryTeam extends SecondaryTeamRequestExpiredDetails { + '.tag': 'secondary_team'; + } + + export interface TeamMergeRequestExpiredExtraDetailsOther { + '.tag': 'other'; + } + + /** + * Team merge request expiration details + */ + export type TeamMergeRequestExpiredExtraDetails = TeamMergeRequestExpiredExtraDetailsPrimaryTeam | TeamMergeRequestExpiredExtraDetailsSecondaryTeam | TeamMergeRequestExpiredExtraDetailsOther; + + /** + * Team merge request expired. + */ + export interface TeamMergeRequestExpiredShownToPrimaryTeamDetails { + /** + * The secondary team name. + */ + secondary_team: string; + /** + * The name of the secondary team admin who sent the request originally. + */ + sent_by: string; + } + + export interface TeamMergeRequestExpiredShownToPrimaryTeamType { + description: string; + } + + /** + * Team merge request expired. + */ + export interface TeamMergeRequestExpiredShownToSecondaryTeamDetails { + /** + * The email of the primary team admin the request was sent to. + */ + sent_to: string; + } + + export interface TeamMergeRequestExpiredShownToSecondaryTeamType { + description: string; + } + + export interface TeamMergeRequestExpiredType { + description: string; + } + + /** + * Rejected a team merge request. + */ + export interface TeamMergeRequestRejectedShownToPrimaryTeamDetails { + /** + * The secondary team name. + */ + secondary_team: string; + /** + * The name of the secondary team admin who sent the request originally. + */ + sent_by: string; + } + + export interface TeamMergeRequestRejectedShownToPrimaryTeamType { + description: string; + } + + /** + * Rejected a team merge request. + */ + export interface TeamMergeRequestRejectedShownToSecondaryTeamDetails { + /** + * The name of the secondary team admin who sent the request originally. + */ + sent_by: string; + } + + export interface TeamMergeRequestRejectedShownToSecondaryTeamType { + description: string; + } + + /** + * Sent a team merge request reminder. + */ + export interface TeamMergeRequestReminderDetails { + /** + * Team merge request reminder details. + */ + request_reminder_details: TeamMergeRequestReminderExtraDetails; + } + + /** + * Team merge request reminder details shown to the primary team. + */ + export interface TeamMergeRequestReminderExtraDetailsPrimaryTeam extends PrimaryTeamRequestReminderDetails { + '.tag': 'primary_team'; + } + + /** + * Team merge request reminder details shown to the secondary team. + */ + export interface TeamMergeRequestReminderExtraDetailsSecondaryTeam extends SecondaryTeamRequestReminderDetails { + '.tag': 'secondary_team'; + } + + export interface TeamMergeRequestReminderExtraDetailsOther { + '.tag': 'other'; + } + + /** + * Team merge request reminder details + */ + export type TeamMergeRequestReminderExtraDetails = TeamMergeRequestReminderExtraDetailsPrimaryTeam | TeamMergeRequestReminderExtraDetailsSecondaryTeam | TeamMergeRequestReminderExtraDetailsOther; + + /** + * Sent a team merge request reminder. + */ + export interface TeamMergeRequestReminderShownToPrimaryTeamDetails { + /** + * The secondary team name. + */ + secondary_team: string; + /** + * The name of the primary team admin the request was sent to. + */ + sent_to: string; + } + + export interface TeamMergeRequestReminderShownToPrimaryTeamType { + description: string; + } + + /** + * Sent a team merge request reminder. + */ + export interface TeamMergeRequestReminderShownToSecondaryTeamDetails { + /** + * The email of the primary team admin the request was sent to. + */ + sent_to: string; + } + + export interface TeamMergeRequestReminderShownToSecondaryTeamType { + description: string; + } + + export interface TeamMergeRequestReminderType { + description: string; + } + + /** + * Canceled the team merge. + */ + export interface TeamMergeRequestRevokedDetails { + /** + * The name of the other team. + */ + team: string; + } + + export interface TeamMergeRequestRevokedType { + description: string; + } + + /** + * Requested to merge their Dropbox team into yours. + */ + export interface TeamMergeRequestSentShownToPrimaryTeamDetails { + /** + * The secondary team name. + */ + secondary_team: string; + /** + * The name of the primary team admin the request was sent to. + */ + sent_to: string; + } + + export interface TeamMergeRequestSentShownToPrimaryTeamType { + description: string; + } + + /** + * Requested to merge your team into another Dropbox team. + */ + export interface TeamMergeRequestSentShownToSecondaryTeamDetails { + /** + * The email of the primary team admin the request was sent to. + */ + sent_to: string; + } + + export interface TeamMergeRequestSentShownToSecondaryTeamType { + description: string; + } + + /** + * Merged this team into another team. + */ + export interface TeamMergeToDetails { + /** + * The name of the team that this team was merged into. + */ + team_name: string; + } + + export interface TeamMergeToType { + description: string; + } + + /** + * Team name details + */ + export interface TeamName { + /** + * Team's display name. + */ + team_display_name: string; + /** + * Team's legal name. + */ + team_legal_name: string; + } + + /** + * Added team background to display on shared link headers. + */ + export interface TeamProfileAddBackgroundDetails { + } + + export interface TeamProfileAddBackgroundType { + description: string; + } + + /** + * Added team logo to display on shared link headers. + */ + export interface TeamProfileAddLogoDetails { + } + + export interface TeamProfileAddLogoType { + description: string; + } + + /** + * Changed team background displayed on shared link headers. + */ + export interface TeamProfileChangeBackgroundDetails { + } + + export interface TeamProfileChangeBackgroundType { + description: string; + } + + /** + * Changed default language for team. + */ + export interface TeamProfileChangeDefaultLanguageDetails { + /** + * New team's default language. + */ + new_value: common.LanguageCode; + /** + * Previous team's default language. + */ + previous_value: common.LanguageCode; + } + + export interface TeamProfileChangeDefaultLanguageType { + description: string; + } + + /** + * Changed team logo displayed on shared link headers. + */ + export interface TeamProfileChangeLogoDetails { + } + + export interface TeamProfileChangeLogoType { + description: string; + } + + /** + * Changed team name. + */ + export interface TeamProfileChangeNameDetails { + /** + * Previous teams name. Might be missing due to historical data gap. + */ + previous_value?: TeamName; + /** + * New team name. + */ + new_value: TeamName; + } + + export interface TeamProfileChangeNameType { + description: string; + } + + /** + * Removed team background displayed on shared link headers. + */ + export interface TeamProfileRemoveBackgroundDetails { + } + + export interface TeamProfileRemoveBackgroundType { + description: string; + } + + /** + * Removed team logo displayed on shared link headers. + */ + export interface TeamProfileRemoveLogoDetails { + } + + export interface TeamProfileRemoveLogoType { + description: string; + } + + export interface TeamSelectiveSyncPolicyDisabled { + '.tag': 'disabled'; + } + + export interface TeamSelectiveSyncPolicyEnabled { + '.tag': 'enabled'; + } + + export interface TeamSelectiveSyncPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling whether team selective sync is enabled for team. + */ + export type TeamSelectiveSyncPolicy = TeamSelectiveSyncPolicyDisabled | TeamSelectiveSyncPolicyEnabled | TeamSelectiveSyncPolicyOther; + + /** + * Enabled/disabled Team Selective Sync for team. + */ + export interface TeamSelectiveSyncPolicyChangedDetails { + /** + * New Team Selective Sync policy. + */ + new_value: TeamSelectiveSyncPolicy; + /** + * Previous Team Selective Sync policy. + */ + previous_value: TeamSelectiveSyncPolicy; + } + + export interface TeamSelectiveSyncPolicyChangedType { + description: string; + } + + /** + * Changed sync default. + */ + export interface TeamSelectiveSyncSettingsChangedDetails { + /** + * Previous value. + */ + previous_value: files.SyncSetting; + /** + * New value. + */ + new_value: files.SyncSetting; + } + + export interface TeamSelectiveSyncSettingsChangedType { + description: string; + } + + /** + * Edited the approved list for sharing externally. + */ + export interface TeamSharingWhitelistSubjectsChangedDetails { + /** + * Domains or emails added to the approved list for sharing externally. + */ + added_whitelist_subjects: Array; + /** + * Domains or emails removed from the approved list for sharing + * externally. + */ + removed_whitelist_subjects: Array; + } + + export interface TeamSharingWhitelistSubjectsChangedType { + description: string; + } + + /** + * Added backup phone for two-step verification. + */ + export interface TfaAddBackupPhoneDetails { + } + + export interface TfaAddBackupPhoneType { + description: string; + } + + /** + * Added members to two factor authentication exception list. + */ + export interface TfaAddExceptionDetails { + } + + export interface TfaAddExceptionType { + description: string; + } + + /** + * Added security key for two-step verification. + */ + export interface TfaAddSecurityKeyDetails { + } + + export interface TfaAddSecurityKeyType { + description: string; + } + + /** + * Changed backup phone for two-step verification. + */ + export interface TfaChangeBackupPhoneDetails { + } + + export interface TfaChangeBackupPhoneType { + description: string; + } + + /** + * Changed two-step verification setting for team. + */ + export interface TfaChangePolicyDetails { + /** + * New change policy. + */ + new_value: team_policies.TwoStepVerificationPolicy; + /** + * Previous change policy. Might be missing due to historical data gap. + */ + previous_value?: team_policies.TwoStepVerificationPolicy; + } + + export interface TfaChangePolicyType { + description: string; + } + + /** + * Enabled/disabled/changed two-step verification setting. + */ + export interface TfaChangeStatusDetails { + /** + * The new two factor authentication configuration. + */ + new_value: TfaConfiguration; + /** + * The previous two factor authentication configuration. Might be missing + * due to historical data gap. + */ + previous_value?: TfaConfiguration; + /** + * Used two factor authentication rescue code. This flag is relevant when + * the two factor authentication configuration is disabled. + */ + used_rescue_code?: boolean; + } + + export interface TfaChangeStatusType { + description: string; + } + + export interface TfaConfigurationAuthenticator { + '.tag': 'authenticator'; + } + + export interface TfaConfigurationDisabled { + '.tag': 'disabled'; + } + + export interface TfaConfigurationEnabled { + '.tag': 'enabled'; + } + + export interface TfaConfigurationSms { + '.tag': 'sms'; + } + + export interface TfaConfigurationOther { + '.tag': 'other'; + } + + /** + * Two factor authentication configuration. Note: the enabled option is + * deprecated. + */ + export type TfaConfiguration = TfaConfigurationAuthenticator | TfaConfigurationDisabled | TfaConfigurationEnabled | TfaConfigurationSms | TfaConfigurationOther; + + /** + * Removed backup phone for two-step verification. + */ + export interface TfaRemoveBackupPhoneDetails { + } + + export interface TfaRemoveBackupPhoneType { + description: string; + } + + /** + * Removed members from two factor authentication exception list. + */ + export interface TfaRemoveExceptionDetails { + } + + export interface TfaRemoveExceptionType { + description: string; + } + + /** + * Removed security key for two-step verification. + */ + export interface TfaRemoveSecurityKeyDetails { + } + + export interface TfaRemoveSecurityKeyType { + description: string; + } + + /** + * Reset two-step verification for team member. + */ + export interface TfaResetDetails { + } + + export interface TfaResetType { + description: string; + } + + export interface TimeUnitDays { + '.tag': 'days'; + } + + export interface TimeUnitHours { + '.tag': 'hours'; + } + + export interface TimeUnitMilliseconds { + '.tag': 'milliseconds'; + } + + export interface TimeUnitMinutes { + '.tag': 'minutes'; + } + + export interface TimeUnitMonths { + '.tag': 'months'; + } + + export interface TimeUnitSeconds { + '.tag': 'seconds'; + } + + export interface TimeUnitWeeks { + '.tag': 'weeks'; + } + + export interface TimeUnitYears { + '.tag': 'years'; + } + + export interface TimeUnitOther { + '.tag': 'other'; + } + + export type TimeUnit = TimeUnitDays | TimeUnitHours | TimeUnitMilliseconds | TimeUnitMinutes | TimeUnitMonths | TimeUnitSeconds | TimeUnitWeeks | TimeUnitYears | TimeUnitOther; + + /** + * User that is not a member of the team but considered trusted. + */ + export interface TrustedNonTeamMemberLogInfo extends UserLogInfo { + /** + * Indicates the type of the member of a trusted team. + */ + trusted_non_team_member_type: TrustedNonTeamMemberType; + /** + * Details about this user's trusted team. + */ + team?: TeamLogInfo; + } + + /** + * Reference to the TrustedNonTeamMemberLogInfo type, identified by the + * value of the .tag property. + */ + export interface TrustedNonTeamMemberLogInfoReference extends TrustedNonTeamMemberLogInfo { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'trusted_non_team_member'; + } + + export interface TrustedNonTeamMemberTypeEnterpriseAdmin { + '.tag': 'enterprise_admin'; + } + + export interface TrustedNonTeamMemberTypeMultiInstanceAdmin { + '.tag': 'multi_instance_admin'; + } + + export interface TrustedNonTeamMemberTypeOther { + '.tag': 'other'; + } + + export type TrustedNonTeamMemberType = TrustedNonTeamMemberTypeEnterpriseAdmin | TrustedNonTeamMemberTypeMultiInstanceAdmin | TrustedNonTeamMemberTypeOther; + + export interface TrustedTeamsRequestActionAccepted { + '.tag': 'accepted'; + } + + export interface TrustedTeamsRequestActionDeclined { + '.tag': 'declined'; + } + + export interface TrustedTeamsRequestActionExpired { + '.tag': 'expired'; + } + + export interface TrustedTeamsRequestActionInvited { + '.tag': 'invited'; + } + + export interface TrustedTeamsRequestActionRevoked { + '.tag': 'revoked'; + } + + export interface TrustedTeamsRequestActionOther { + '.tag': 'other'; + } + + export type TrustedTeamsRequestAction = TrustedTeamsRequestActionAccepted | TrustedTeamsRequestActionDeclined | TrustedTeamsRequestActionExpired | TrustedTeamsRequestActionInvited | TrustedTeamsRequestActionRevoked | TrustedTeamsRequestActionOther; + + export interface TrustedTeamsRequestStateInvited { + '.tag': 'invited'; + } + + export interface TrustedTeamsRequestStateLinked { + '.tag': 'linked'; + } + + export interface TrustedTeamsRequestStateUnlinked { + '.tag': 'unlinked'; + } + + export interface TrustedTeamsRequestStateOther { + '.tag': 'other'; + } + + export type TrustedTeamsRequestState = TrustedTeamsRequestStateInvited | TrustedTeamsRequestStateLinked | TrustedTeamsRequestStateUnlinked | TrustedTeamsRequestStateOther; + + /** + * Enabled/disabled option for members to link personal Dropbox account and + * team account to same computer. + */ + export interface TwoAccountChangePolicyDetails { + /** + * New two account policy. + */ + new_value: TwoAccountPolicy; + /** + * Previous two account policy. Might be missing due to historical data + * gap. + */ + previous_value?: TwoAccountPolicy; + } + + export interface TwoAccountChangePolicyType { + description: string; + } + + export interface TwoAccountPolicyDisabled { + '.tag': 'disabled'; + } + + export interface TwoAccountPolicyEnabled { + '.tag': 'enabled'; + } + + export interface TwoAccountPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for pairing personal account to work account + */ + export type TwoAccountPolicy = TwoAccountPolicyDisabled | TwoAccountPolicyEnabled | TwoAccountPolicyOther; + + /** + * Reverted naming convention. + */ + export interface UndoNamingConventionDetails { + } + + export interface UndoNamingConventionType { + description: string; + } + + /** + * Removed multi-file organize. + */ + export interface UndoOrganizeFolderWithTidyDetails { + } + + export interface UndoOrganizeFolderWithTidyType { + description: string; + } + + /** + * User linked app + */ + export interface UserLinkedAppLogInfo extends AppLogInfo { + } + + /** + * Reference to the UserLinkedAppLogInfo type, identified by the value of + * the .tag property. + */ + export interface UserLinkedAppLogInfoReference extends UserLinkedAppLogInfo { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'user_linked_app'; + } + + /** + * User's logged information. + */ + export interface UserLogInfo { + /** + * User unique ID. + */ + account_id?: users_common.AccountId; + /** + * User display name. + */ + display_name?: common.DisplayNameLegacy; + /** + * User email address. + */ + email?: EmailAddress; + } + + /** + * Reference to the UserLogInfo polymorphic type. Contains a .tag property + * to let you discriminate between possible subtypes. + */ + export interface UserLogInfoReference extends UserLogInfo { + /** + * Tag identifying the subtype variant. + */ + '.tag': "team_member"|"trusted_non_team_member"|"non_team_member"; + } + + /** + * User's name logged information + */ + export interface UserNameLogInfo { + /** + * Given name. + */ + given_name: string; + /** + * Surname. + */ + surname: string; + /** + * Locale. Might be missing due to historical data gap. + */ + locale?: string; + } + + /** + * User or team linked app. Used when linked type is missing due to + * historical data gap. + */ + export interface UserOrTeamLinkedAppLogInfo extends AppLogInfo { + } + + /** + * Reference to the UserOrTeamLinkedAppLogInfo type, identified by the value + * of the .tag property. + */ + export interface UserOrTeamLinkedAppLogInfoReference extends UserOrTeamLinkedAppLogInfo { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'user_or_team_linked_app'; + } + + /** + * Tagged a file. + */ + export interface UserTagsAddedDetails { + /** + * values. + */ + values: Array; + } + + export interface UserTagsAddedType { + description: string; + } + + /** + * Removed tags. + */ + export interface UserTagsRemovedDetails { + /** + * values. + */ + values: Array; + } + + export interface UserTagsRemovedType { + description: string; + } + + /** + * Changed team policy for viewer info. + */ + export interface ViewerInfoPolicyChangedDetails { + /** + * Previous Viewer Info policy. + */ + previous_value: PassPolicy; + /** + * New Viewer Info policy. + */ + new_value: PassPolicy; + } + + export interface ViewerInfoPolicyChangedType { + description: string; + } + + export interface WatermarkingPolicyDisabled { + '.tag': 'disabled'; + } + + export interface WatermarkingPolicyEnabled { + '.tag': 'enabled'; + } + + export interface WatermarkingPolicyOther { + '.tag': 'other'; + } + + /** + * Policy for controlling team access to watermarking feature + */ + export type WatermarkingPolicy = WatermarkingPolicyDisabled | WatermarkingPolicyEnabled | WatermarkingPolicyOther; + + /** + * Changed watermarking policy for team. + */ + export interface WatermarkingPolicyChangedDetails { + /** + * New watermarking policy. + */ + new_value: WatermarkingPolicy; + /** + * Previous watermarking policy. + */ + previous_value: WatermarkingPolicy; + } + + export interface WatermarkingPolicyChangedType { + description: string; + } + + /** + * Information on active web sessions + */ + export interface WebDeviceSessionLogInfo extends DeviceSessionLogInfo { + /** + * Web session unique id. + */ + session_info?: WebSessionLogInfo; + /** + * Information on the hosting device. + */ + user_agent: string; + /** + * Information on the hosting operating system. + */ + os: string; + /** + * Information on the browser used for this web session. + */ + browser: string; + } + + /** + * Reference to the WebDeviceSessionLogInfo type, identified by the value of + * the .tag property. + */ + export interface WebDeviceSessionLogInfoReference extends WebDeviceSessionLogInfo { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'web_device_session'; + } + + /** + * Web session. + */ + export interface WebSessionLogInfo extends SessionLogInfo { + } + + /** + * Reference to the WebSessionLogInfo type, identified by the value of the + * .tag property. + */ + export interface WebSessionLogInfoReference extends WebSessionLogInfo { + /** + * Tag identifying this subtype variant. This field is only present when + * needed to discriminate between multiple possible subtypes. + */ + '.tag': 'web'; + } + + /** + * Changed limit on active sessions per member. + */ + export interface WebSessionsChangeActiveSessionLimitDetails { + /** + * Previous max number of concurrent active sessions policy. + */ + previous_value: string; + /** + * New max number of concurrent active sessions policy. + */ + new_value: string; + } + + export interface WebSessionsChangeActiveSessionLimitType { + description: string; + } + + /** + * Changed how long members can stay signed in to Dropbox.com. + */ + export interface WebSessionsChangeFixedLengthPolicyDetails { + /** + * New session length policy. Might be missing due to historical data gap. + */ + new_value?: WebSessionsFixedLengthPolicy; + /** + * Previous session length policy. Might be missing due to historical data + * gap. + */ + previous_value?: WebSessionsFixedLengthPolicy; + } + + export interface WebSessionsChangeFixedLengthPolicyType { + description: string; + } + + /** + * Changed how long team members can be idle while signed in to Dropbox.com. + */ + export interface WebSessionsChangeIdleLengthPolicyDetails { + /** + * New idle length policy. Might be missing due to historical data gap. + */ + new_value?: WebSessionsIdleLengthPolicy; + /** + * Previous idle length policy. Might be missing due to historical data + * gap. + */ + previous_value?: WebSessionsIdleLengthPolicy; + } + + export interface WebSessionsChangeIdleLengthPolicyType { + description: string; + } + + /** + * Defined fixed session length. + */ + export interface WebSessionsFixedLengthPolicyDefined extends DurationLogInfo { + '.tag': 'defined'; + } + + /** + * Undefined fixed session length. + */ + export interface WebSessionsFixedLengthPolicyUndefined { + '.tag': 'undefined'; + } + + export interface WebSessionsFixedLengthPolicyOther { + '.tag': 'other'; + } + + /** + * Web sessions fixed length policy. + */ + export type WebSessionsFixedLengthPolicy = WebSessionsFixedLengthPolicyDefined | WebSessionsFixedLengthPolicyUndefined | WebSessionsFixedLengthPolicyOther; + + /** + * Defined idle session length. + */ + export interface WebSessionsIdleLengthPolicyDefined extends DurationLogInfo { + '.tag': 'defined'; + } + + /** + * Undefined idle session length. + */ + export interface WebSessionsIdleLengthPolicyUndefined { + '.tag': 'undefined'; + } + + export interface WebSessionsIdleLengthPolicyOther { + '.tag': 'other'; + } + + /** + * Web sessions idle length policy. + */ + export type WebSessionsIdleLengthPolicy = WebSessionsIdleLengthPolicyDefined | WebSessionsIdleLengthPolicyUndefined | WebSessionsIdleLengthPolicyOther; + + export type AppId = string; + + export type EmailAddress = string; + + export type FilePath = string; + + export type IpAddress = string; + + export type NamespaceId = string; + + export type RequestId = string; + + export type TeamEventList = Array; + + } + + export namespace team_policies { + /** + * Background camera uploads are disabled. + */ + export interface CameraUploadsPolicyStateDisabled { + '.tag': 'disabled'; + } + + /** + * Background camera uploads are allowed. + */ + export interface CameraUploadsPolicyStateEnabled { + '.tag': 'enabled'; + } + + export interface CameraUploadsPolicyStateOther { + '.tag': 'other'; + } + + export type CameraUploadsPolicyState = CameraUploadsPolicyStateDisabled | CameraUploadsPolicyStateEnabled | CameraUploadsPolicyStateOther; + + /** + * Computer Backup feature is disabled. + */ + export interface ComputerBackupPolicyStateDisabled { + '.tag': 'disabled'; + } + + /** + * Computer Backup feature is enabled. + */ + export interface ComputerBackupPolicyStateEnabled { + '.tag': 'enabled'; + } + + /** + * Computer Backup defaults to ON for SSB teams, and OFF for Enterprise + * teams. + */ + export interface ComputerBackupPolicyStateDefault { + '.tag': 'default'; + } + + export interface ComputerBackupPolicyStateOther { + '.tag': 'other'; + } + + export type ComputerBackupPolicyState = ComputerBackupPolicyStateDisabled | ComputerBackupPolicyStateEnabled | ComputerBackupPolicyStateDefault | ComputerBackupPolicyStateOther; + + /** + * Emm token is disabled. + */ + export interface EmmStateDisabled { + '.tag': 'disabled'; + } + + /** + * Emm token is optional. + */ + export interface EmmStateOptional { + '.tag': 'optional'; + } + + /** + * Emm token is required. + */ + export interface EmmStateRequired { + '.tag': 'required'; + } + + export interface EmmStateOther { + '.tag': 'other'; + } + + export type EmmState = EmmStateDisabled | EmmStateOptional | EmmStateRequired | EmmStateOther; + + /** + * External Drive Backup feature is disabled. + */ + export interface ExternalDriveBackupPolicyStateDisabled { + '.tag': 'disabled'; + } + + /** + * External Drive Backup feature is enabled. + */ + export interface ExternalDriveBackupPolicyStateEnabled { + '.tag': 'enabled'; + } + + /** + * External Drive Backup default value based on team tier. + */ + export interface ExternalDriveBackupPolicyStateDefault { + '.tag': 'default'; + } + + export interface ExternalDriveBackupPolicyStateOther { + '.tag': 'other'; + } + + export type ExternalDriveBackupPolicyState = ExternalDriveBackupPolicyStateDisabled | ExternalDriveBackupPolicyStateEnabled | ExternalDriveBackupPolicyStateDefault | ExternalDriveBackupPolicyStateOther; + + /** + * File locking feature is disabled. + */ + export interface FileLockingPolicyStateDisabled { + '.tag': 'disabled'; + } + + /** + * File locking feature is allowed. + */ + export interface FileLockingPolicyStateEnabled { + '.tag': 'enabled'; + } + + export interface FileLockingPolicyStateOther { + '.tag': 'other'; + } + + export type FileLockingPolicyState = FileLockingPolicyStateDisabled | FileLockingPolicyStateEnabled | FileLockingPolicyStateOther; + + /** + * Team admin has opted out of File Provider Migration for team members. + */ + export interface FileProviderMigrationPolicyStateDisabled { + '.tag': 'disabled'; + } + + /** + * Team admin has not opted out of File Provider Migration for team members. + */ + export interface FileProviderMigrationPolicyStateEnabled { + '.tag': 'enabled'; + } + + /** + * Team admin has default value based on team tier. + */ + export interface FileProviderMigrationPolicyStateDefault { + '.tag': 'default'; + } + + export interface FileProviderMigrationPolicyStateOther { + '.tag': 'other'; + } + + export type FileProviderMigrationPolicyState = FileProviderMigrationPolicyStateDisabled | FileProviderMigrationPolicyStateEnabled | FileProviderMigrationPolicyStateDefault | FileProviderMigrationPolicyStateOther; + + /** + * Team admins and members can create groups. + */ + export interface GroupCreationAdminsAndMembers { + '.tag': 'admins_and_members'; + } + + /** + * Only team admins can create groups. + */ + export interface GroupCreationAdminsOnly { + '.tag': 'admins_only'; + } + + export type GroupCreation = GroupCreationAdminsAndMembers | GroupCreationAdminsOnly; + + /** + * Office Add-In is disabled. + */ + export interface OfficeAddInPolicyDisabled { + '.tag': 'disabled'; + } + + /** + * Office Add-In is enabled. + */ + export interface OfficeAddInPolicyEnabled { + '.tag': 'enabled'; + } + + export interface OfficeAddInPolicyOther { + '.tag': 'other'; + } + + export type OfficeAddInPolicy = OfficeAddInPolicyDisabled | OfficeAddInPolicyEnabled | OfficeAddInPolicyOther; + + /** + * Everyone in team will be the default option when creating a folder in + * Paper. + */ + export interface PaperDefaultFolderPolicyEveryoneInTeam { + '.tag': 'everyone_in_team'; + } + + /** + * Invite only will be the default option when creating a folder in Paper. + */ + export interface PaperDefaultFolderPolicyInviteOnly { + '.tag': 'invite_only'; + } + + export interface PaperDefaultFolderPolicyOther { + '.tag': 'other'; + } + + export type PaperDefaultFolderPolicy = PaperDefaultFolderPolicyEveryoneInTeam | PaperDefaultFolderPolicyInviteOnly | PaperDefaultFolderPolicyOther; + + /** + * All team members have access to Paper. + */ + export interface PaperDeploymentPolicyFull { + '.tag': 'full'; + } + + /** + * Only whitelisted team members can access Paper. To see which user is + * whitelisted, check 'is_paper_whitelisted' on 'account/info'. + */ + export interface PaperDeploymentPolicyPartial { + '.tag': 'partial'; + } + + export interface PaperDeploymentPolicyOther { + '.tag': 'other'; + } + + export type PaperDeploymentPolicy = PaperDeploymentPolicyFull | PaperDeploymentPolicyPartial | PaperDeploymentPolicyOther; + + /** + * Do not allow team members to use Paper Desktop. + */ + export interface PaperDesktopPolicyDisabled { + '.tag': 'disabled'; + } + + /** + * Allow team members to use Paper Desktop. + */ + export interface PaperDesktopPolicyEnabled { + '.tag': 'enabled'; + } + + export interface PaperDesktopPolicyOther { + '.tag': 'other'; + } + + export type PaperDesktopPolicy = PaperDesktopPolicyDisabled | PaperDesktopPolicyEnabled | PaperDesktopPolicyOther; + + /** + * Paper is disabled. + */ + export interface PaperEnabledPolicyDisabled { + '.tag': 'disabled'; + } + + /** + * Paper is enabled. + */ + export interface PaperEnabledPolicyEnabled { + '.tag': 'enabled'; + } + + /** + * Unspecified policy. + */ + export interface PaperEnabledPolicyUnspecified { + '.tag': 'unspecified'; + } + + export interface PaperEnabledPolicyOther { + '.tag': 'other'; + } + + export type PaperEnabledPolicy = PaperEnabledPolicyDisabled | PaperEnabledPolicyEnabled | PaperEnabledPolicyUnspecified | PaperEnabledPolicyOther; + + /** + * Password is disabled. + */ + export interface PasswordControlModeDisabled { + '.tag': 'disabled'; + } + + /** + * Password is enabled. + */ + export interface PasswordControlModeEnabled { + '.tag': 'enabled'; + } + + export interface PasswordControlModeOther { + '.tag': 'other'; + } + + export type PasswordControlMode = PasswordControlModeDisabled | PasswordControlModeEnabled | PasswordControlModeOther; + + /** + * User passwords will adhere to the minimal password strength policy. + */ + export interface PasswordStrengthPolicyMinimalRequirements { + '.tag': 'minimal_requirements'; + } + + /** + * User passwords will adhere to the moderate password strength policy. + */ + export interface PasswordStrengthPolicyModeratePassword { + '.tag': 'moderate_password'; + } + + /** + * User passwords will adhere to the very strong password strength policy. + */ + export interface PasswordStrengthPolicyStrongPassword { + '.tag': 'strong_password'; + } + + export interface PasswordStrengthPolicyOther { + '.tag': 'other'; + } + + export type PasswordStrengthPolicy = PasswordStrengthPolicyMinimalRequirements | PasswordStrengthPolicyModeratePassword | PasswordStrengthPolicyStrongPassword | PasswordStrengthPolicyOther; + + /** + * Unlink all. + */ + export interface RolloutMethodUnlinkAll { + '.tag': 'unlink_all'; + } + + /** + * Unlink devices with the most inactivity. + */ + export interface RolloutMethodUnlinkMostInactive { + '.tag': 'unlink_most_inactive'; + } + + /** + * Add member to Exceptions. + */ + export interface RolloutMethodAddMemberToExceptions { + '.tag': 'add_member_to_exceptions'; + } + + export type RolloutMethod = RolloutMethodUnlinkAll | RolloutMethodUnlinkMostInactive | RolloutMethodAddMemberToExceptions; + + /** + * Team members can only join folders shared by teammates. + */ + export interface SharedFolderJoinPolicyFromTeamOnly { + '.tag': 'from_team_only'; + } + + /** + * Team members can join any shared folder, including those shared by users + * outside the team. + */ + export interface SharedFolderJoinPolicyFromAnyone { + '.tag': 'from_anyone'; + } + + export interface SharedFolderJoinPolicyOther { + '.tag': 'other'; + } + + /** + * Policy governing which shared folders a team member can join. + */ + export type SharedFolderJoinPolicy = SharedFolderJoinPolicyFromTeamOnly | SharedFolderJoinPolicyFromAnyone | SharedFolderJoinPolicyOther; + + /** + * Only a teammate can be a member of a folder shared by a team member. + */ + export interface SharedFolderMemberPolicyTeam { + '.tag': 'team'; + } + + /** + * Anyone can be a member of a folder shared by a team member. + */ + export interface SharedFolderMemberPolicyAnyone { + '.tag': 'anyone'; + } + + export interface SharedFolderMemberPolicyOther { + '.tag': 'other'; + } + + /** + * Policy governing who can be a member of a folder shared by a team member. + */ + export type SharedFolderMemberPolicy = SharedFolderMemberPolicyTeam | SharedFolderMemberPolicyAnyone | SharedFolderMemberPolicyOther; + + /** + * By default, anyone can access newly created shared links. No login will + * be required to access the shared links unless overridden. + */ + export interface SharedLinkCreatePolicyDefaultPublic { + '.tag': 'default_public'; + } + + /** + * By default, only members of the same team can access newly created shared + * links. Login will be required to access the shared links unless + * overridden. + */ + export interface SharedLinkCreatePolicyDefaultTeamOnly { + '.tag': 'default_team_only'; + } + + /** + * Only members of the same team can access all shared links. Login will be + * required to access all shared links. + */ + export interface SharedLinkCreatePolicyTeamOnly { + '.tag': 'team_only'; + } + + /** + * Only people invited can access newly created links. Login will be + * required to access the shared links unless overridden. + */ + export interface SharedLinkCreatePolicyDefaultNoOne { + '.tag': 'default_no_one'; + } + + export interface SharedLinkCreatePolicyOther { + '.tag': 'other'; + } + + /** + * Policy governing the visibility of shared links. This policy can apply to + * newly created shared links, or all shared links. + */ + export type SharedLinkCreatePolicy = SharedLinkCreatePolicyDefaultPublic | SharedLinkCreatePolicyDefaultTeamOnly | SharedLinkCreatePolicyTeamOnly | SharedLinkCreatePolicyDefaultNoOne | SharedLinkCreatePolicyOther; + + /** + * Do not allow files to be downloaded from Showcases. + */ + export interface ShowcaseDownloadPolicyDisabled { + '.tag': 'disabled'; + } + + /** + * Allow files to be downloaded from Showcases. + */ + export interface ShowcaseDownloadPolicyEnabled { + '.tag': 'enabled'; + } + + export interface ShowcaseDownloadPolicyOther { + '.tag': 'other'; + } + + export type ShowcaseDownloadPolicy = ShowcaseDownloadPolicyDisabled | ShowcaseDownloadPolicyEnabled | ShowcaseDownloadPolicyOther; + + /** + * Showcase is disabled. + */ + export interface ShowcaseEnabledPolicyDisabled { + '.tag': 'disabled'; + } + + /** + * Showcase is enabled. + */ + export interface ShowcaseEnabledPolicyEnabled { + '.tag': 'enabled'; + } + + export interface ShowcaseEnabledPolicyOther { + '.tag': 'other'; + } + + export type ShowcaseEnabledPolicy = ShowcaseEnabledPolicyDisabled | ShowcaseEnabledPolicyEnabled | ShowcaseEnabledPolicyOther; + + /** + * Do not allow showcases to be shared with people not on the team. + */ + export interface ShowcaseExternalSharingPolicyDisabled { + '.tag': 'disabled'; + } + + /** + * Allow showcases to be shared with people not on the team. + */ + export interface ShowcaseExternalSharingPolicyEnabled { + '.tag': 'enabled'; + } + + export interface ShowcaseExternalSharingPolicyOther { + '.tag': 'other'; + } + + export type ShowcaseExternalSharingPolicy = ShowcaseExternalSharingPolicyDisabled | ShowcaseExternalSharingPolicyEnabled | ShowcaseExternalSharingPolicyOther; + + /** + * The specified content will be synced as local files by default. + */ + export interface SmartSyncPolicyLocal { + '.tag': 'local'; + } + + /** + * The specified content will be synced as on-demand files by default. + */ + export interface SmartSyncPolicyOnDemand { + '.tag': 'on_demand'; + } + + export interface SmartSyncPolicyOther { + '.tag': 'other'; + } + + export type SmartSyncPolicy = SmartSyncPolicyLocal | SmartSyncPolicyOnDemand | SmartSyncPolicyOther; + + /** + * Smarter Smart Sync feature is disabled. + */ + export interface SmarterSmartSyncPolicyStateDisabled { + '.tag': 'disabled'; + } + + /** + * Smarter Smart Sync feature is enabled. + */ + export interface SmarterSmartSyncPolicyStateEnabled { + '.tag': 'enabled'; + } + + export interface SmarterSmartSyncPolicyStateOther { + '.tag': 'other'; + } + + export type SmarterSmartSyncPolicyState = SmarterSmartSyncPolicyStateDisabled | SmarterSmartSyncPolicyStateEnabled | SmarterSmartSyncPolicyStateOther; + + /** + * Users will be able to sign in with their Dropbox credentials. + */ + export interface SsoPolicyDisabled { + '.tag': 'disabled'; + } + + /** + * Users will be able to sign in with either their Dropbox or single sign-on + * credentials. + */ + export interface SsoPolicyOptional { + '.tag': 'optional'; + } + + /** + * Users will be required to sign in with their single sign-on credentials. + */ + export interface SsoPolicyRequired { + '.tag': 'required'; + } + + export interface SsoPolicyOther { + '.tag': 'other'; + } + + export type SsoPolicy = SsoPolicyDisabled | SsoPolicyOptional | SsoPolicyRequired | SsoPolicyOther; + + /** + * Suggest members is disabled. + */ + export interface SuggestMembersPolicyDisabled { + '.tag': 'disabled'; + } + + /** + * Suggest members is enabled. + */ + export interface SuggestMembersPolicyEnabled { + '.tag': 'enabled'; + } + + export interface SuggestMembersPolicyOther { + '.tag': 'other'; + } + + export type SuggestMembersPolicy = SuggestMembersPolicyDisabled | SuggestMembersPolicyEnabled | SuggestMembersPolicyOther; + + /** + * Policies governing team members. + */ + export interface TeamMemberPolicies { + /** + * Policies governing sharing. + */ + sharing: TeamSharingPolicies; + /** + * This describes the Enterprise Mobility Management (EMM) state for this + * team. This information can be used to understand if an organization is + * integrating with a third-party EMM vendor to further manage and apply + * restrictions upon the team's Dropbox usage on mobile devices. This is a + * new feature and in the future we'll be adding more new fields and + * additional documentation. + */ + emm_state: EmmState; + /** + * The admin policy around the Dropbox Office Add-In for this team. + */ + office_addin: OfficeAddInPolicy; + /** + * The team policy on if teammembers are allowed to suggest users for + * admins to invite to the team. + */ + suggest_members_policy: SuggestMembersPolicy; + } + + /** + * Policies governing sharing within and outside of the team. + */ + export interface TeamSharingPolicies { + /** + * Who can join folders shared by team members. + */ + shared_folder_member_policy: SharedFolderMemberPolicy; + /** + * Which shared folders team members can join. + */ + shared_folder_join_policy: SharedFolderJoinPolicy; + /** + * Who can view shared links owned by team members. + */ + shared_link_create_policy: SharedLinkCreatePolicy; + /** + * Who can create groups. + */ + group_creation_policy: GroupCreation; + } + + /** + * Enabled require two factor authorization. + */ + export interface TwoStepVerificationPolicyRequireTfaEnable { + '.tag': 'require_tfa_enable'; + } + + /** + * Disabled require two factor authorization. + */ + export interface TwoStepVerificationPolicyRequireTfaDisable { + '.tag': 'require_tfa_disable'; + } + + export interface TwoStepVerificationPolicyOther { + '.tag': 'other'; + } + + export type TwoStepVerificationPolicy = TwoStepVerificationPolicyRequireTfaEnable | TwoStepVerificationPolicyRequireTfaDisable | TwoStepVerificationPolicyOther; + + /** + * Enabled require two factor authorization. + */ + export interface TwoStepVerificationStateRequired { + '.tag': 'required'; + } + + /** + * Optional require two factor authorization. + */ + export interface TwoStepVerificationStateOptional { + '.tag': 'optional'; + } + + /** + * Disabled require two factor authorization. + */ + export interface TwoStepVerificationStateDisabled { + '.tag': 'disabled'; + } + + export interface TwoStepVerificationStateOther { + '.tag': 'other'; + } + + export type TwoStepVerificationState = TwoStepVerificationStateRequired | TwoStepVerificationStateOptional | TwoStepVerificationStateDisabled | TwoStepVerificationStateOther; + + } + + /** + * This namespace contains endpoints and data types for user management. + */ + export namespace users { + /** + * The amount of detail revealed about an account depends on the user being + * queried and the user making the query. + */ + export interface Account { + /** + * The user's unique Dropbox ID. + */ + account_id: users_common.AccountId; + /** + * Details of a user's name. + */ + name: Name; + /** + * The user's email address. Do not rely on this without checking the + * email_verified field. Even then, it's possible that the user has since + * lost access to their email. + */ + email: string; + /** + * Whether the user has verified their email address. + */ + email_verified: boolean; + /** + * URL for the photo representing the user, if one is set. + */ + profile_photo_url?: string; + /** + * Whether the user has been disabled. + */ + disabled: boolean; + } + + /** + * Basic information about any account. + */ + export interface BasicAccount extends Account { + /** + * Whether this user is a teammate of the current user. If this account is + * the current user's account, then this will be true. + */ + is_teammate: boolean; + /** + * The user's unique team member id. This field will only be present if + * the user is part of a team and is_teammate is true. + */ + team_member_id?: string; + } + + /** + * When this value is True, the user can lock files in shared directories. + * When the value is False the user can unlock the files they have locked or + * request to unlock files locked by others. + */ + export interface FileLockingValueEnabled { + '.tag': 'enabled'; + enabled: boolean; + } + + export interface FileLockingValueOther { + '.tag': 'other'; + } + + /** + * The value for UserFeature.file_locking. + */ + export type FileLockingValue = FileLockingValueEnabled | FileLockingValueOther; + + /** + * Detailed information about the current user's account. + */ + export interface FullAccount extends Account { + /** + * The user's two-letter country code, if available. Country codes are + * based on [ISO 3166-1]{@link http://en.wikipedia.org/wiki/ISO_3166-1}. + */ + country?: string; + /** + * The language that the user specified. Locale tags will be [IETF + * language tags]{@link http://en.wikipedia.org/wiki/IETF_language_tag}. + */ + locale: string; + /** + * The user's [referral link]{@link https://www.dropbox.com/referrals}. + */ + referral_link: string; + /** + * If this account is a member of a team, information about that team. + */ + team?: FullTeam; + /** + * This account's unique team member id. This field will only be present + * if team is present. + */ + team_member_id?: string; + /** + * Whether the user has a personal and work account. If the current + * account is personal, then team will always be null, but is_paired will + * indicate if a work account is linked. + */ + is_paired: boolean; + /** + * What type of account this user has. + */ + account_type: users_common.AccountType; + /** + * The root info for this account. + */ + root_info: common.TeamRootInfoReference|common.UserRootInfoReference|common.RootInfoReference; + } + + /** + * Detailed information about a team. + */ + export interface FullTeam extends Team { + /** + * Team policies governing sharing. + */ + sharing_policies: team_policies.TeamSharingPolicies; + /** + * Team policy governing the use of the Office Add-In. + */ + office_addin_policy: team_policies.OfficeAddInPolicy; + } + + export interface GetAccountArg { + /** + * A user's account identifier. + */ + account_id: users_common.AccountId; + } + + export interface GetAccountBatchArg { + /** + * List of user account identifiers. Should not contain any duplicate + * account IDs. + */ + account_ids: Array; + } + + /** + * The value is an account ID specified in GetAccountBatchArg.account_ids + * that does not exist. + */ + export interface GetAccountBatchErrorNoAccount { + '.tag': 'no_account'; + no_account: users_common.AccountId; + } + + export interface GetAccountBatchErrorOther { + '.tag': 'other'; + } + + export type GetAccountBatchError = GetAccountBatchErrorNoAccount | GetAccountBatchErrorOther; + + /** + * The specified GetAccountArg.account_id does not exist. + */ + export interface GetAccountErrorNoAccount { + '.tag': 'no_account'; + } + + export interface GetAccountErrorOther { + '.tag': 'other'; + } + + export type GetAccountError = GetAccountErrorNoAccount | GetAccountErrorOther; + + export interface IndividualSpaceAllocation { + /** + * The total space allocated to the user's account (bytes). + */ + allocated: number; + } + + /** + * Representations for a person's name to assist with internationalization. + */ + export interface Name { + /** + * Also known as a first name. + */ + given_name: string; + /** + * Also known as a last name or family name. + */ + surname: string; + /** + * Locale-dependent name. In the US, a person's familiar name is their + * given_name, but elsewhere, it could be any combination of a person's + * given_name and surname. + */ + familiar_name: string; + /** + * A name that can be used directly to represent the name of a user's + * Dropbox account. + */ + display_name: string; + /** + * An abbreviated form of the person's name. Their initials in most + * locales. + */ + abbreviated_name: string; + } + + /** + * When this value is true, the user's Paper docs are accessible in Dropbox + * with the .paper extension and must be accessed via the /files endpoints. + * When this value is false, the user's Paper docs are stored separate from + * Dropbox files and folders and should be accessed via the /paper + * endpoints. + */ + export interface PaperAsFilesValueEnabled { + '.tag': 'enabled'; + enabled: boolean; + } + + export interface PaperAsFilesValueOther { + '.tag': 'other'; + } + + /** + * The value for UserFeature.paper_as_files. + */ + export type PaperAsFilesValue = PaperAsFilesValueEnabled | PaperAsFilesValueOther; + + /** + * The user's space allocation applies only to their individual account. + */ + export interface SpaceAllocationIndividual extends IndividualSpaceAllocation { + '.tag': 'individual'; + } + + /** + * The user shares space with other members of their team. + */ + export interface SpaceAllocationTeam extends TeamSpaceAllocation { + '.tag': 'team'; + } + + export interface SpaceAllocationOther { + '.tag': 'other'; + } + + /** + * Space is allocated differently based on the type of account. + */ + export type SpaceAllocation = SpaceAllocationIndividual | SpaceAllocationTeam | SpaceAllocationOther; + + /** + * Information about a user's space usage and quota. + */ + export interface SpaceUsage { + /** + * The user's total space usage (bytes). + */ + used: number; + /** + * The user's space allocation. + */ + allocation: SpaceAllocation; + } + + /** + * Information about a team. + */ + export interface Team { + /** + * The team's unique ID. + */ + id: string; + /** + * The name of the team. + */ + name: string; + } + + export interface TeamSpaceAllocation { + /** + * The total space currently used by the user's team (bytes). + */ + used: number; + /** + * The total space allocated to the user's team (bytes). + */ + allocated: number; + /** + * The total space allocated to the user within its team allocated space + * (0 means that no restriction is imposed on the user's quota within its + * team). + */ + user_within_team_space_allocated: number; + /** + * The type of the space limit imposed on the team member (off, + * alert_only, stop_sync). + */ + user_within_team_space_limit_type: team_common.MemberSpaceLimitType; + /** + * An accurate cached calculation of a team member's total space usage + * (bytes). + */ + user_within_team_space_used_cached: number; + } + + /** + * This feature contains information about how the user's Paper files are + * stored. + */ + export interface UserFeaturePaperAsFiles { + '.tag': 'paper_as_files'; + } + + /** + * This feature allows users to lock files in order to restrict other users + * from editing them. + */ + export interface UserFeatureFileLocking { + '.tag': 'file_locking'; + } + + export interface UserFeatureOther { + '.tag': 'other'; + } + + /** + * A set of features that a Dropbox User account may have configured. + */ + export type UserFeature = UserFeaturePaperAsFiles | UserFeatureFileLocking | UserFeatureOther; + + export interface UserFeatureValuePaperAsFiles { + '.tag': 'paper_as_files'; + paper_as_files: PaperAsFilesValue; + } + + export interface UserFeatureValueFileLocking { + '.tag': 'file_locking'; + file_locking: FileLockingValue; + } + + export interface UserFeatureValueOther { + '.tag': 'other'; + } + + /** + * Values that correspond to entries in users.UserFeature. + */ + export type UserFeatureValue = UserFeatureValuePaperAsFiles | UserFeatureValueFileLocking | UserFeatureValueOther; + + export interface UserFeaturesGetValuesBatchArg { + /** + * A list of features in users.UserFeature. If the list is empty, this + * route will return users.UserFeaturesGetValuesBatchError. + */ + features: Array; + } + + /** + * At least one users.UserFeature must be included in the + * users.UserFeaturesGetValuesBatchArg.features list. + */ + export interface UserFeaturesGetValuesBatchErrorEmptyFeaturesList { + '.tag': 'empty_features_list'; + } + + export interface UserFeaturesGetValuesBatchErrorOther { + '.tag': 'other'; + } + + export type UserFeaturesGetValuesBatchError = UserFeaturesGetValuesBatchErrorEmptyFeaturesList | UserFeaturesGetValuesBatchErrorOther; + + export interface UserFeaturesGetValuesBatchResult { + values: Array; + } + + export type GetAccountBatchResult = Array; + + } + + /** + * This namespace contains common data types used within the users namespace. + */ + export namespace users_common { + /** + * The basic account type. + */ + export interface AccountTypeBasic { + '.tag': 'basic'; + } + + /** + * The Dropbox Pro account type. + */ + export interface AccountTypePro { + '.tag': 'pro'; + } + + /** + * The Dropbox Business account type. + */ + export interface AccountTypeBusiness { + '.tag': 'business'; + } + + /** + * What type of account this user has. + */ + export type AccountType = AccountTypeBasic | AccountTypePro | AccountTypeBusiness; + + export type AccountId = string; + + } + diff --git a/node_modules/tr46/dropbox/types/index.d.ts b/node_modules/tr46/dropbox/types/index.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..b6a073b549f962c0bbfd49ab813e752aa9002574 --- /dev/null +++ b/node_modules/tr46/dropbox/types/index.d.ts @@ -0,0 +1,4080 @@ +// Auto-generated by Stone, do not modify. + + +import { account, async, auth, check, common, contacts, file_properties, file_requests, files, openid, paper, secondary_emails, seen_state, sharing, team, team_common, team_log, team_policies, users, users_common } from './dropbox_types'; +export * from './dropbox_types'; + +export interface DropboxAuthOptions { + // An access token for making authenticated requests. + accessToken?: string; + // The time at which the access token expires. + accessTokenExpiresAt?: Date; + // A refresh token for retrieving access tokens + refreshToken?: string; + // The client id for your app. Used to create authentication URL. + clientId?: string; + // The client secret for your app. Used for refresh and token exchange. + clientSecret?: string; + // The fetch library for making requests. + fetch?: Function; + // A custom domain to use when making api requests. This should only be used for testing as scaffolding to avoid making network requests. + domain?: string; + // A custom delimiter to use when separating domain from subdomain. This should only be used for testing as scaffolding. + domainDelimiter?: string; + // An object (in the form of header: value) designed to set custom headers to use during a request. + customHeaders?: object; + // Whether request data is sent on body or as URL params. Defaults to false. + dataOnBody?: boolean; +} + +export class DropboxAuth { + /** + * The DropboxAuth class that provides methods to manage, acquire, and refresh tokens. + */ + constructor(); + + /** + * The DropboxAuth class that provides methods to manage, acquire, and refresh tokens. + */ + constructor(options: DropboxAuthOptions); + + /** + * Get the access token + * @returns {String} Access token + */ + getAccessToken(): string; + + /** + * Get an OAuth2 access token from an OAuth2 Code. + * @param redirectUri A URL to redirect the user to after authenticating. + * This must be added to your app through the admin interface. + * @param code An OAuth2 code. + * @returns {Object} An object containing the token and related info (if applicable) + */ + getAccessTokenFromCode(redirectUri: string, code: string): Promise>; + + /** + * Get a URL that can be used to authenticate users for the Dropbox API. + * @arg {String} redirectUri - A URL to redirect the user to after + * authenticating. This must be added to your app through the admin interface. + * @arg {String} [state] - State that will be returned in the redirect URL to help + * prevent cross site scripting attacks. + * @arg {String} [authType] - auth type, defaults to 'token', other option is 'code' + * @arg {String} [tokenAccessType] - type of token to request. From the following: + * null - creates a token with the app default (either legacy or online) + * legacy - creates one long-lived token with no expiration + * online - create one short-lived token with an expiration + * offline - create one short-lived token with an expiration with a refresh token + * @arg {Array} [scope] - scopes to request for the grant + * @arg {String} [includeGrantedScopes] - whether or not to include previously granted scopes. + * From the following: + * user - include user scopes in the grant + * team - include team scopes in the grant + * Note: if this user has never linked the app, include_granted_scopes must be None + * @arg {boolean} [usePKCE] - Whether or not to use Sha256 based PKCE. PKCE should be only use on + * client apps which doesn't call your server. It is less secure than non-PKCE flow but + * can be used if you are unable to safely retrieve your app secret + * @returns {Promise} - Url to send user to for Dropbox API authentication + * returned in a promise + */ + getAuthenticationUrl(redirectUri: string, state?: string, authType?: 'token' | 'code', tokenAccessType?: null | 'legacy' | 'offline' | 'online', scope?: Array, includeGrantedScopes?: 'none' | 'user' | 'team', usePKCE?: boolean): Promise; + + /** + * Get the client id + * @returns {String} Client id + */ + getClientId(): string; + + /** + * Set the access token used to authenticate requests to the API. + * @param accessToken An access token. + */ + setAccessToken(accessToken: string): void; + + /** + * Set the client id, which is used to help gain an access token. + * @param clientId Your app's client ID. + */ + setClientId(clientId: string): void; + + /** + * Set the client secret + * @param clientSecret Your app's client secret. + */ + setClientSecret(clientSecret: string): void; + + /** + * Sets the refresh token + * @param refreshToken - A refresh token + */ + setRefreshToken(refreshToken: string): void; + + /** + * Gets the refresh token + * @returns {String} Refresh token + */ + getRefreshToken(): string; + + /** + * Sets the access token's expiration date + * @param accessTokenExpiresAt - new expiration date + */ + setAccessTokenExpiresAt(accessTokenExpiresAt: Date): void; + + /** + * Gets the access token's expiration date + * @returns {Date} date of token expiration + */ + getAccessTokenExpiresAt(): Date; + + /** + * Sets the code verifier for PKCE flow + * @param {String} codeVerifier - new code verifier + */ + setCodeVerifier(codeVerifier: string): void; + + /** + * Gets the code verifier for PKCE flow + * @returns {String} - code verifier for PKCE + */ + getCodeVerifier(): string; + + /** + * Checks if a token is needed, can be refreshed and if the token is expired. + * If so, attempts to refresh access token + * @returns {Promise<*>} + */ + checkAndRefreshAccessToken(): void; + + /** + * Refreshes the access token using the refresh token, if available + * @arg {List} scope - a subset of scopes from the original + * refresh to acquire with an access token + * @returns {Promise<*>} + */ + refreshAccessToken(scope?: Array): void; + +} + +export interface DropboxOptions { + // Select user is only used for team functionality. It specifies which user the team access token should be acting as. + selectUser?: string; + // Select admin is only used by team functionality. It specifies which team admin the team access token should be acting as. + selectAdmin?: string; + // Root path to access other namespaces. Use to access team folders for example + pathRoot?: string; + // The DropboxAuth object used to authenticate requests. If this is set, the remaining parameters will be ignored. + auth?: DropboxAuth | null; + // An access token for making authenticated requests. + accessToken?: string; + // The time at which the access token expires. + accessTokenExpiresAt?: Date; + // A refresh token for retrieving access tokens + refreshToken?: string; + // The client id for your app. Used to create authentication URL. + clientId?: string; + // The client secret for your app. Used for refresh and token exchange. + clientSecret?: string; + // The fetch library for making requests. + fetch?: Function; + // A custom domain to use when making api requests. This should only be used for testing as scaffolding to avoid making network requests. + domain?: string; + // A custom delimiter to use when separating domain subdomain. This should only be used for testing as scaffolding. + domainDelimiter?: string; + // An object (in the form of header: value) designed to set custom headers to use during a request. + customHeaders?: object; +} + +export class DropboxResponseError { + /** + * The response class of HTTP errors from API calls using the Dropbox SDK. + */ + constructor(status: number, headers: any, error: T); + + /** + * HTTP Status code of the call + */ + status: number; + + /** + * Headers returned from the call. Set as any to support both node and browser. + */ + headers: any; + + /** + * Serialized Error of the call + */ + error: T; +} + +export class DropboxResponse { + /** + * The response class of all successful API calls using the Dropbox SDK. + */ + constructor(status: number, headers: any, result: T); + + /** + * HTTP Status code of the call + */ + status: number; + + /** + * Headers returned from the call. Set as any to support both node and browser. + */ + headers: any; + + /** + * Serialized Result of the call + */ + result: T; +} + +export class Dropbox { + /** + * The Dropbox SDK class that provides methods to read, write and + * create files or folders in a user or team's Dropbox. + */ + constructor(); + + /** + * The Dropbox SDK class that provides methods to read, write and + * create files or folders in a user or team's Dropbox. + */ + constructor(options: DropboxOptions); +/*ROUTES*/ + + /** + * Sets a user's profile photo. + * + * Route attributes: + * scope: account_info.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public accountSetProfilePhoto(arg: account.SetProfilePhotoArg): Promise>; + + /** + * Creates an OAuth 2.0 access token from the supplied OAuth 1.0 access + * token. + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public authTokenFromOauth1(arg: auth.TokenFromOAuth1Arg): Promise>; + + /** + * Disables the access token used to authenticate the call. If there is a + * corresponding refresh token for the access token, this disables that + * refresh token, as well as any other access tokens for that refresh token. + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + */ + public authTokenRevoke(): Promise>; + + /** + * This endpoint performs App Authentication, validating the supplied app + * key and secret, and returns the supplied string, to allow you to test + * your code and connection to the Dropbox API. It has no other effect. If + * you receive an HTTP 200 response with the supplied query, it indicates at + * least part of the Dropbox API infrastructure is working and that the app + * key and secret valid. + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public checkApp(arg: check.EchoArg): Promise>; + + /** + * This endpoint performs User Authentication, validating the supplied + * access token, and returns the supplied string, to allow you to test your + * code and connection to the Dropbox API. It has no other effect. If you + * receive an HTTP 200 response with the supplied query, it indicates at + * least part of the Dropbox API infrastructure is working and that the + * access token is valid. + * + * Route attributes: + * scope: account_info.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public checkUser(arg: check.EchoArg): Promise>; + + /** + * Removes all manually added contacts. You'll still keep contacts who are + * on your team or who you imported. New contacts will be added when you + * share. + * + * Route attributes: + * scope: contacts.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + */ + public contactsDeleteManualContacts(): Promise>; + + /** + * Removes manually added contacts from the given list. + * + * Route attributes: + * scope: contacts.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public contactsDeleteManualContactsBatch(arg: contacts.DeleteManualContactsArg): Promise>; + + /** + * Add property groups to a Dropbox file. See templatesAddForUser() or + * templatesAddForTeam() to create new templates. + * + * Route attributes: + * scope: files.metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filePropertiesPropertiesAdd(arg: file_properties.AddPropertiesArg): Promise>; + + /** + * Overwrite property groups associated with a file. This endpoint should be + * used instead of propertiesUpdate() when property groups are being updated + * via a "snapshot" instead of via a "delta". In other words, this endpoint + * will delete all omitted fields from a property group, whereas + * propertiesUpdate() will only delete fields that are explicitly marked for + * deletion. + * + * Route attributes: + * scope: files.metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filePropertiesPropertiesOverwrite(arg: file_properties.OverwritePropertyGroupArg): Promise>; + + /** + * Permanently removes the specified property group from the file. To remove + * specific property field key value pairs, see propertiesUpdate(). To + * update a template, see templatesUpdateForUser() or + * templatesUpdateForTeam(). To remove a template, see + * templatesRemoveForUser() or templatesRemoveForTeam(). + * + * Route attributes: + * scope: files.metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filePropertiesPropertiesRemove(arg: file_properties.RemovePropertiesArg): Promise>; + + /** + * Search across property templates for particular property field values. + * + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filePropertiesPropertiesSearch(arg: file_properties.PropertiesSearchArg): Promise>; + + /** + * Once a cursor has been retrieved from propertiesSearch(), use this to + * paginate through all search results. + * + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filePropertiesPropertiesSearchContinue(arg: file_properties.PropertiesSearchContinueArg): Promise>; + + /** + * Add, update or remove properties associated with the supplied file and + * templates. This endpoint should be used instead of propertiesOverwrite() + * when property groups are being updated via a "delta" instead of via a + * "snapshot" . In other words, this endpoint will not delete any omitted + * fields from a property group, whereas propertiesOverwrite() will delete + * any fields that are omitted from a property group. + * + * Route attributes: + * scope: files.metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filePropertiesPropertiesUpdate(arg: file_properties.UpdatePropertiesArg): Promise>; + + /** + * Add a template associated with a team. See propertiesAdd() to add + * properties to a file or folder. Note: this endpoint will create + * team-owned templates. + * + * Route attributes: + * scope: files.team_metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filePropertiesTemplatesAddForTeam(arg: file_properties.AddTemplateArg): Promise>; + + /** + * Add a template associated with a user. See propertiesAdd() to add + * properties to a file. This endpoint can't be called on a team member or + * admin's behalf. + * + * Route attributes: + * scope: files.metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filePropertiesTemplatesAddForUser(arg: file_properties.AddTemplateArg): Promise>; + + /** + * Get the schema for a specified template. + * + * Route attributes: + * scope: files.team_metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filePropertiesTemplatesGetForTeam(arg: file_properties.GetTemplateArg): Promise>; + + /** + * Get the schema for a specified template. This endpoint can't be called on + * a team member or admin's behalf. + * + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filePropertiesTemplatesGetForUser(arg: file_properties.GetTemplateArg): Promise>; + + /** + * Get the template identifiers for a team. To get the schema of each + * template use templatesGetForTeam(). + * + * Route attributes: + * scope: files.team_metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + */ + public filePropertiesTemplatesListForTeam(): Promise>; + + /** + * Get the template identifiers for a team. To get the schema of each + * template use templatesGetForUser(). This endpoint can't be called on a + * team member or admin's behalf. + * + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + */ + public filePropertiesTemplatesListForUser(): Promise>; + + /** + * Permanently removes the specified template created from + * templatesAddForUser(). All properties associated with the template will + * also be removed. This action cannot be undone. + * + * Route attributes: + * scope: files.team_metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filePropertiesTemplatesRemoveForTeam(arg: file_properties.RemoveTemplateArg): Promise>; + + /** + * Permanently removes the specified template created from + * templatesAddForUser(). All properties associated with the template will + * also be removed. This action cannot be undone. + * + * Route attributes: + * scope: files.metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filePropertiesTemplatesRemoveForUser(arg: file_properties.RemoveTemplateArg): Promise>; + + /** + * Update a template associated with a team. This route can update the + * template name, the template description and add optional properties to + * templates. + * + * Route attributes: + * scope: files.team_metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filePropertiesTemplatesUpdateForTeam(arg: file_properties.UpdateTemplateArg): Promise>; + + /** + * Update a template associated with a user. This route can update the + * template name, the template description and add optional properties to + * templates. This endpoint can't be called on a team member or admin's + * behalf. + * + * Route attributes: + * scope: files.metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filePropertiesTemplatesUpdateForUser(arg: file_properties.UpdateTemplateArg): Promise>; + + /** + * Returns the total number of file requests owned by this user. Includes + * both open and closed file requests. + * + * Route attributes: + * scope: file_requests.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + */ + public fileRequestsCount(): Promise>; + + /** + * Creates a file request for this user. + * + * Route attributes: + * scope: file_requests.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public fileRequestsCreate(arg: file_requests.CreateFileRequestArgs): Promise>; + + /** + * Delete a batch of closed file requests. + * + * Route attributes: + * scope: file_requests.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public fileRequestsDelete(arg: file_requests.DeleteFileRequestArgs): Promise>; + + /** + * Delete all closed file requests owned by this user. + * + * Route attributes: + * scope: file_requests.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + */ + public fileRequestsDeleteAllClosed(): Promise>; + + /** + * Returns the specified file request. + * + * Route attributes: + * scope: file_requests.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public fileRequestsGet(arg: file_requests.GetFileRequestArgs): Promise>; + + /** + * Returns a list of file requests owned by this user. For apps with the app + * folder permission, this will only return file requests with destinations + * in the app folder. + * + * Route attributes: + * scope: file_requests.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public fileRequestsListV2(arg: file_requests.ListFileRequestsArg): Promise>; + + /** + * Returns a list of file requests owned by this user. For apps with the app + * folder permission, this will only return file requests with destinations + * in the app folder. + * + * Route attributes: + * scope: file_requests.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + */ + public fileRequestsList(): Promise>; + + /** + * Once a cursor has been retrieved from listV2(), use this to paginate + * through all file requests. The cursor must come from a previous call to + * listV2() or listContinue(). + * + * Route attributes: + * scope: file_requests.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public fileRequestsListContinue(arg: file_requests.ListFileRequestsContinueArg): Promise>; + + /** + * Update a file request. + * + * Route attributes: + * scope: file_requests.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public fileRequestsUpdate(arg: file_requests.UpdateFileRequestArgs): Promise>; + + /** + * Returns the metadata for a file or folder. This is an alpha endpoint + * compatible with the properties API. Note: Metadata for the root folder is + * unsupported. + * + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public filesAlphaGetMetadata(arg: files.AlphaGetMetadataArg): Promise>; + + /** + * Create a new file with the contents provided in the request. Note that + * the behavior of this alpha endpoint is unstable and subject to change. Do + * not use this to upload a file larger than 150 MB. Instead, create an + * upload session with uploadSessionStart(). + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public filesAlphaUpload(arg: files.UploadArg): Promise>; + + /** + * Copy a file or folder to a different location in the user's Dropbox. If + * the source path is a folder all its contents will be copied. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesCopyV2(arg: files.RelocationArg): Promise>; + + /** + * Copy a file or folder to a different location in the user's Dropbox. If + * the source path is a folder all its contents will be copied. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public filesCopy(arg: files.RelocationArg): Promise>; + + /** + * Copy multiple files or folders to different locations at once in the + * user's Dropbox. This route will replace copyBatch(). The main difference + * is this route will return status for each entry, while copyBatch() raises + * failure if any entry fails. This route will either finish synchronously, + * or return a job ID and do the async copy job in background. Please use + * copyBatchCheckV2() to check the job status. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesCopyBatchV2(arg: files.CopyBatchArg): Promise>; + + /** + * Copy multiple files or folders to different locations at once in the + * user's Dropbox. This route will return job ID immediately and do the + * async copy job in background. Please use copyBatchCheck() to check the + * job status. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public filesCopyBatch(arg: files.RelocationBatchArg): Promise>; + + /** + * Returns the status of an asynchronous job for copyBatchV2(). It returns + * list of results for each entry. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesCopyBatchCheckV2(arg: async.PollArg): Promise>; + + /** + * Returns the status of an asynchronous job for copyBatch(). If success, it + * returns list of results for each entry. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public filesCopyBatchCheck(arg: async.PollArg): Promise>; + + /** + * Get a copy reference to a file or folder. This reference string can be + * used to save that file or folder to another user's Dropbox by passing it + * to copyReferenceSave(). + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesCopyReferenceGet(arg: files.GetCopyReferenceArg): Promise>; + + /** + * Save a copy reference returned by copyReferenceGet() to the user's + * Dropbox. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesCopyReferenceSave(arg: files.SaveCopyReferenceArg): Promise>; + + /** + * Create a folder at a given path. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesCreateFolderV2(arg: files.CreateFolderArg): Promise>; + + /** + * Create a folder at a given path. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public filesCreateFolder(arg: files.CreateFolderArg): Promise>; + + /** + * Create multiple folders at once. This route is asynchronous for large + * batches, which returns a job ID immediately and runs the create folder + * batch asynchronously. Otherwise, creates the folders and returns the + * result synchronously for smaller inputs. You can force asynchronous + * behaviour by using the CreateFolderBatchArg.force_async flag. Use + * createFolderBatchCheck() to check the job status. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesCreateFolderBatch(arg: files.CreateFolderBatchArg): Promise>; + + /** + * Returns the status of an asynchronous job for createFolderBatch(). If + * success, it returns list of result for each entry. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesCreateFolderBatchCheck(arg: async.PollArg): Promise>; + + /** + * Delete the file or folder at a given path. If the path is a folder, all + * its contents will be deleted too. A successful response indicates that + * the file or folder was deleted. The returned metadata will be the + * corresponding FileMetadata or FolderMetadata for the item at time of + * deletion, and not a DeletedMetadata object. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesDeleteV2(arg: files.DeleteArg): Promise>; + + /** + * Delete the file or folder at a given path. If the path is a folder, all + * its contents will be deleted too. A successful response indicates that + * the file or folder was deleted. The returned metadata will be the + * corresponding FileMetadata or FolderMetadata for the item at time of + * deletion, and not a DeletedMetadata object. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public filesDelete(arg: files.DeleteArg): Promise>; + + /** + * Delete multiple files/folders at once. This route is asynchronous, which + * returns a job ID immediately and runs the delete batch asynchronously. + * Use deleteBatchCheck() to check the job status. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesDeleteBatch(arg: files.DeleteBatchArg): Promise>; + + /** + * Returns the status of an asynchronous job for deleteBatch(). If success, + * it returns list of result for each entry. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesDeleteBatchCheck(arg: async.PollArg): Promise>; + + /** + * Download a file from a user's Dropbox. + * + * Route attributes: + * scope: files.content.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesDownload(arg: files.DownloadArg): Promise>; + + /** + * Download a folder from the user's Dropbox, as a zip file. The folder must + * be less than 20 GB in size and any single file within must be less than 4 + * GB in size. The resulting zip must have fewer than 10,000 total file and + * folder entries, including the top level folder. The input cannot be a + * single file. Note: this endpoint does not support HTTP range requests. + * + * Route attributes: + * scope: files.content.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesDownloadZip(arg: files.DownloadZipArg): Promise>; + + /** + * Export a file from a user's Dropbox. This route only supports exporting + * files that cannot be downloaded directly and whose + * ExportResult.file_metadata has ExportInfo.export_as populated. + * + * Route attributes: + * scope: files.content.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesExport(arg: files.ExportArg): Promise>; + + /** + * Return the lock metadata for the given list of paths. + * + * Route attributes: + * scope: files.content.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesGetFileLockBatch(arg: files.LockFileBatchArg): Promise>; + + /** + * Returns the metadata for a file or folder. Note: Metadata for the root + * folder is unsupported. + * + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesGetMetadata(arg: files.GetMetadataArg): Promise>; + + /** + * Get a preview for a file. Currently, PDF previews are generated for files + * with the following extensions: .ai, .doc, .docm, .docx, .eps, .gdoc, + * .gslides, .odp, .odt, .pps, .ppsm, .ppsx, .ppt, .pptm, .pptx, .rtf. HTML + * previews are generated for files with the following extensions: .csv, + * .ods, .xls, .xlsm, .gsheet, .xlsx. Other formats will return an + * unsupported extension error. + * + * Route attributes: + * scope: files.content.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesGetPreview(arg: files.PreviewArg): Promise>; + + /** + * Get a temporary link to stream content of a file. This link will expire + * in four hours and afterwards you will get 410 Gone. This URL should not + * be used to display content directly in the browser. The Content-Type of + * the link is determined automatically by the file's mime type. + * + * Route attributes: + * scope: files.content.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesGetTemporaryLink(arg: files.GetTemporaryLinkArg): Promise>; + + /** + * Get a one-time use temporary upload link to upload a file to a Dropbox + * location. This endpoint acts as a delayed upload(). The returned + * temporary upload link may be used to make a POST request with the data to + * be uploaded. The upload will then be perfomed with the CommitInfo + * previously provided to getTemporaryUploadLink() but evaluated only upon + * consumption. Hence, errors stemming from invalid CommitInfo with respect + * to the state of the user's Dropbox will only be communicated at + * consumption time. Additionally, these errors are surfaced as generic HTTP + * 409 Conflict responses, potentially hiding issue details. The maximum + * temporary upload link duration is 4 hours. Upon consumption or + * expiration, a new link will have to be generated. Multiple links may + * exist for a specific upload path at any given time. The POST request on + * the temporary upload link must have its Content-Type set to + * "application/octet-stream". Example temporary upload link consumption + * request: curl -X POST + * https://content.dropboxapi.com/apitul/1/bNi2uIYF51cVBND --header + * "Content-Type: application/octet-stream" --data-binary @local_file.txt A + * successful temporary upload link consumption request returns the content + * hash of the uploaded data in JSON format. Example successful temporary + * upload link consumption response: {"content-hash": + * "599d71033d700ac892a0e48fa61b125d2f5994"} An unsuccessful temporary + * upload link consumption request returns any of the following status + * codes: HTTP 400 Bad Request: Content-Type is not one of + * application/octet-stream and text/plain or request is invalid. HTTP 409 + * Conflict: The temporary upload link does not exist or is currently + * unavailable, the upload failed, or another error happened. HTTP 410 Gone: + * The temporary upload link is expired or consumed. Example unsuccessful + * temporary upload link consumption response: Temporary upload link has + * been recently consumed. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesGetTemporaryUploadLink(arg: files.GetTemporaryUploadLinkArg): Promise>; + + /** + * Get a thumbnail for an image. This method currently supports files with + * the following file extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm + * and bmp. Photos that are larger than 20MB in size won't be converted to a + * thumbnail. + * + * Route attributes: + * scope: files.content.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesGetThumbnail(arg: files.ThumbnailArg): Promise>; + + /** + * Get a thumbnail for an image. This method currently supports files with + * the following file extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm + * and bmp. Photos that are larger than 20MB in size won't be converted to a + * thumbnail. + * + * Route attributes: + * scope: files.content.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesGetThumbnailV2(arg: files.ThumbnailV2Arg): Promise>; + + /** + * Get thumbnails for a list of images. We allow up to 25 thumbnails in a + * single batch. This method currently supports files with the following + * file extensions: jpg, jpeg, png, tiff, tif, gif, webp, ppm and bmp. + * Photos that are larger than 20MB in size won't be converted to a + * thumbnail. + * + * Route attributes: + * scope: files.content.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesGetThumbnailBatch(arg: files.GetThumbnailBatchArg): Promise>; + + /** + * Starts returning the contents of a folder. If the result's + * ListFolderResult.has_more field is true, call listFolderContinue() with + * the returned ListFolderResult.cursor to retrieve more entries. If you're + * using ListFolderArg.recursive set to true to keep a local cache of the + * contents of a Dropbox account, iterate through each entry in order and + * process them as follows to keep your local state in sync: For each + * FileMetadata, store the new entry at the given path in your local state. + * If the required parent folders don't exist yet, create them. If there's + * already something else at the given path, replace it and remove all its + * children. For each FolderMetadata, store the new entry at the given path + * in your local state. If the required parent folders don't exist yet, + * create them. If there's already something else at the given path, replace + * it but leave the children as they are. Check the new entry's + * FolderSharingInfo.read_only and set all its children's read-only statuses + * to match. For each DeletedMetadata, if your local state has something at + * the given path, remove it and all its children. If there's nothing at the + * given path, ignore this entry. Note: auth.RateLimitError may be returned + * if multiple listFolder() or listFolderContinue() calls with same + * parameters are made simultaneously by same API app for same user. If your + * app implements retry logic, please hold off the retry until the previous + * request finishes. + * + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesListFolder(arg: files.ListFolderArg): Promise>; + + /** + * Once a cursor has been retrieved from listFolder(), use this to paginate + * through all files and retrieve updates to the folder, following the same + * rules as documented for listFolder(). + * + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesListFolderContinue(arg: files.ListFolderContinueArg): Promise>; + + /** + * A way to quickly get a cursor for the folder's state. Unlike + * listFolder(), listFolderGetLatestCursor() doesn't return any entries. + * This endpoint is for app which only needs to know about new files and + * modifications and doesn't need to know about files that already exist in + * Dropbox. + * + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesListFolderGetLatestCursor(arg: files.ListFolderArg): Promise>; + + /** + * A longpoll endpoint to wait for changes on an account. In conjunction + * with listFolderContinue(), this call gives you a low-latency way to + * monitor an account for file changes. The connection will block until + * there are changes available or a timeout occurs. This endpoint is useful + * mostly for client-side apps. If you're looking for server-side + * notifications, check out our [webhooks documentation]{@link + * https://www.dropbox.com/developers/reference/webhooks}. + * + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesListFolderLongpoll(arg: files.ListFolderLongpollArg): Promise>; + + /** + * Returns revisions for files based on a file path or a file id. The file + * path or file id is identified from the latest file entry at the given + * file path or id. This end point allows your app to query either by file + * path or file id by setting the mode parameter appropriately. In the + * ListRevisionsMode.path (default) mode, all revisions at the same file + * path as the latest file entry are returned. If revisions with the same + * file id are desired, then mode must be set to ListRevisionsMode.id. The + * ListRevisionsMode.id mode is useful to retrieve revisions for a given + * file across moves or renames. + * + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesListRevisions(arg: files.ListRevisionsArg): Promise>; + + /** + * Lock the files at the given paths. A locked file will be writable only by + * the lock holder. A successful response indicates that the file has been + * locked. Returns a list of the locked file paths and their metadata after + * this operation. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesLockFileBatch(arg: files.LockFileBatchArg): Promise>; + + /** + * Move a file or folder to a different location in the user's Dropbox. If + * the source path is a folder all its contents will be moved. Note that we + * do not currently support case-only renaming. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesMoveV2(arg: files.RelocationArg): Promise>; + + /** + * Move a file or folder to a different location in the user's Dropbox. If + * the source path is a folder all its contents will be moved. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public filesMove(arg: files.RelocationArg): Promise>; + + /** + * Move multiple files or folders to different locations at once in the + * user's Dropbox. Note that we do not currently support case-only renaming. + * This route will replace moveBatch(). The main difference is this route + * will return status for each entry, while moveBatch() raises failure if + * any entry fails. This route will either finish synchronously, or return a + * job ID and do the async move job in background. Please use + * moveBatchCheckV2() to check the job status. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesMoveBatchV2(arg: files.MoveBatchArg): Promise>; + + /** + * Move multiple files or folders to different locations at once in the + * user's Dropbox. This route will return job ID immediately and do the + * async moving job in background. Please use moveBatchCheck() to check the + * job status. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public filesMoveBatch(arg: files.RelocationBatchArg): Promise>; + + /** + * Returns the status of an asynchronous job for moveBatchV2(). It returns + * list of results for each entry. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesMoveBatchCheckV2(arg: async.PollArg): Promise>; + + /** + * Returns the status of an asynchronous job for moveBatch(). If success, it + * returns list of results for each entry. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public filesMoveBatchCheck(arg: async.PollArg): Promise>; + + /** + * Creates a new Paper doc with the provided content. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesPaperCreate(arg: files.PaperCreateArg): Promise>; + + /** + * Updates an existing Paper doc with the provided content. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesPaperUpdate(arg: files.PaperUpdateArg): Promise>; + + /** + * Permanently delete the file or folder at a given path (see + * https://www.dropbox.com/en/help/40). If the given file or folder is not + * yet deleted, this route will first delete it. It is possible for this + * route to successfully delete, then fail to permanently delete. Note: This + * endpoint is only available for Dropbox Business apps. + * + * Route attributes: + * scope: files.permanent_delete + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesPermanentlyDelete(arg: files.DeleteArg): Promise>; + + /** + * Route attributes: + * scope: files.metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public filesPropertiesAdd(arg: file_properties.AddPropertiesArg): Promise>; + + /** + * Route attributes: + * scope: files.metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public filesPropertiesOverwrite(arg: file_properties.OverwritePropertyGroupArg): Promise>; + + /** + * Route attributes: + * scope: files.metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public filesPropertiesRemove(arg: file_properties.RemovePropertiesArg): Promise>; + + /** + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public filesPropertiesTemplateGet(arg: file_properties.GetTemplateArg): Promise>; + + /** + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + */ + public filesPropertiesTemplateList(): Promise>; + + /** + * Route attributes: + * scope: files.metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public filesPropertiesUpdate(arg: file_properties.UpdatePropertiesArg): Promise>; + + /** + * Restore a specific revision of a file to the given path. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesRestore(arg: files.RestoreArg): Promise>; + + /** + * Save the data from a specified URL into a file in user's Dropbox. Note + * that the transfer from the URL must complete within 5 minutes, or the + * operation will time out and the job will fail. If the given path already + * exists, the file will be renamed to avoid the conflict (e.g. myfile + * (1).txt). + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesSaveUrl(arg: files.SaveUrlArg): Promise>; + + /** + * Check the status of a saveUrl() job. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesSaveUrlCheckJobStatus(arg: async.PollArg): Promise>; + + /** + * Searches for files and folders. Note: Recent changes will be reflected in + * search results within a few seconds and older revisions of existing files + * may still match your query for up to a few days. + * + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public filesSearch(arg: files.SearchArg): Promise>; + + /** + * Searches for files and folders. Note: searchV2() along with + * searchContinueV2() can only be used to retrieve a maximum of 10,000 + * matches. Recent changes may not immediately be reflected in search + * results due to a short delay in indexing. Duplicate results may be + * returned across pages. Some results may not be returned. + * + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesSearchV2(arg: files.SearchV2Arg): Promise>; + + /** + * Fetches the next page of search results returned from searchV2(). Note: + * searchV2() along with searchContinueV2() can only be used to retrieve a + * maximum of 10,000 matches. Recent changes may not immediately be + * reflected in search results due to a short delay in indexing. Duplicate + * results may be returned across pages. Some results may not be returned. + * + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesSearchContinueV2(arg: files.SearchV2ContinueArg): Promise>; + + /** + * Add a tag to an item. A tag is a string. The strings are automatically + * converted to lowercase letters. No more than 20 tags can be added to a + * given item. + * + * Route attributes: + * scope: files.metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesTagsAdd(arg: files.AddTagArg): Promise>; + + /** + * Get list of tags assigned to items. + * + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesTagsGet(arg: files.GetTagsArg): Promise>; + + /** + * Remove a tag from an item. + * + * Route attributes: + * scope: files.metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesTagsRemove(arg: files.RemoveTagArg): Promise>; + + /** + * Unlock the files at the given paths. A locked file can only be unlocked + * by the lock holder or, if a business account, a team admin. A successful + * response indicates that the file has been unlocked. Returns a list of the + * unlocked file paths and their metadata after this operation. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesUnlockFileBatch(arg: files.UnlockFileBatchArg): Promise>; + + /** + * Create a new file with the contents provided in the request. Do not use + * this to upload a file larger than 150 MB. Instead, create an upload + * session with uploadSessionStart(). Calls to this endpoint will count as + * data transport calls for any Dropbox Business teams with a limit on the + * number of data transport calls allowed per month. For more information, + * see the [Data transport limit page]{@link + * https://www.dropbox.com/developers/reference/data-transport-limit}. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesUpload(arg: files.UploadArg): Promise>; + + /** + * Append more data to an upload session. When the parameter close is set, + * this call will close the session. A single request should not upload more + * than 150 MB. The maximum size of a file one can upload to an upload + * session is 350 GB. Calls to this endpoint will count as data transport + * calls for any Dropbox Business teams with a limit on the number of data + * transport calls allowed per month. For more information, see the [Data + * transport limit page]{@link + * https://www.dropbox.com/developers/reference/data-transport-limit}. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesUploadSessionAppendV2(arg: files.UploadSessionAppendArg): Promise>; + + /** + * Append more data to an upload session. A single request should not upload + * more than 150 MB. The maximum size of a file one can upload to an upload + * session is 350 GB. Calls to this endpoint will count as data transport + * calls for any Dropbox Business teams with a limit on the number of data + * transport calls allowed per month. For more information, see the [Data + * transport limit page]{@link + * https://www.dropbox.com/developers/reference/data-transport-limit}. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public filesUploadSessionAppend(arg: files.UploadSessionCursor): Promise>; + + /** + * Finish an upload session and save the uploaded data to the given file + * path. A single request should not upload more than 150 MB. The maximum + * size of a file one can upload to an upload session is 350 GB. Calls to + * this endpoint will count as data transport calls for any Dropbox Business + * teams with a limit on the number of data transport calls allowed per + * month. For more information, see the [Data transport limit page]{@link + * https://www.dropbox.com/developers/reference/data-transport-limit}. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesUploadSessionFinish(arg: files.UploadSessionFinishArg): Promise>; + + /** + * This route helps you commit many files at once into a user's Dropbox. Use + * uploadSessionStart() and uploadSessionAppendV2() to upload file contents. + * We recommend uploading many files in parallel to increase throughput. + * Once the file contents have been uploaded, rather than calling + * uploadSessionFinish(), use this route to finish all your upload sessions + * in a single request. UploadSessionStartArg.close or + * UploadSessionAppendArg.close needs to be true for the last + * uploadSessionStart() or uploadSessionAppendV2() call. The maximum size of + * a file one can upload to an upload session is 350 GB. This route will + * return a job_id immediately and do the async commit job in background. + * Use uploadSessionFinishBatchCheck() to check the job status. For the same + * account, this route should be executed serially. That means you should + * not start the next job before current job finishes. We allow up to 1000 + * entries in a single request. Calls to this endpoint will count as data + * transport calls for any Dropbox Business teams with a limit on the number + * of data transport calls allowed per month. For more information, see the + * [Data transport limit page]{@link + * https://www.dropbox.com/developers/reference/data-transport-limit}. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public filesUploadSessionFinishBatch(arg: files.UploadSessionFinishBatchArg): Promise>; + + /** + * This route helps you commit many files at once into a user's Dropbox. Use + * uploadSessionStart() and uploadSessionAppendV2() to upload file contents. + * We recommend uploading many files in parallel to increase throughput. + * Once the file contents have been uploaded, rather than calling + * uploadSessionFinish(), use this route to finish all your upload sessions + * in a single request. UploadSessionStartArg.close or + * UploadSessionAppendArg.close needs to be true for the last + * uploadSessionStart() or uploadSessionAppendV2() call of each upload + * session. The maximum size of a file one can upload to an upload session + * is 350 GB. We allow up to 1000 entries in a single request. Calls to this + * endpoint will count as data transport calls for any Dropbox Business + * teams with a limit on the number of data transport calls allowed per + * month. For more information, see the [Data transport limit page]{@link + * https://www.dropbox.com/developers/reference/data-transport-limit}. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesUploadSessionFinishBatchV2(arg: files.UploadSessionFinishBatchArg): Promise>; + + /** + * Returns the status of an asynchronous job for uploadSessionFinishBatch(). + * If success, it returns list of result for each entry. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesUploadSessionFinishBatchCheck(arg: async.PollArg): Promise>; + + /** + * Upload sessions allow you to upload a single file in one or more + * requests, for example where the size of the file is greater than 150 MB. + * This call starts a new upload session with the given data. You can then + * use uploadSessionAppendV2() to add more data and uploadSessionFinish() to + * save all the data to a file in Dropbox. A single request should not + * upload more than 150 MB. The maximum size of a file one can upload to an + * upload session is 350 GB. An upload session can be used for a maximum of + * 7 days. Attempting to use an UploadSessionStartResult.session_id with + * uploadSessionAppendV2() or uploadSessionFinish() more than 7 days after + * its creation will return a UploadSessionLookupError.not_found. Calls to + * this endpoint will count as data transport calls for any Dropbox Business + * teams with a limit on the number of data transport calls allowed per + * month. For more information, see the [Data transport limit page]{@link + * https://www.dropbox.com/developers/reference/data-transport-limit}. By + * default, upload sessions require you to send content of the file in + * sequential order via consecutive uploadSessionStart(), + * uploadSessionAppendV2(), uploadSessionFinish() calls. For better + * performance, you can instead optionally use a + * UploadSessionType.concurrent upload session. To start a new concurrent + * session, set UploadSessionStartArg.session_type to + * UploadSessionType.concurrent. After that, you can send file data in + * concurrent uploadSessionAppendV2() requests. Finally finish the session + * with uploadSessionFinish(). There are couple of constraints with + * concurrent sessions to make them work. You can not send data with + * uploadSessionStart() or uploadSessionFinish() call, only with + * uploadSessionAppendV2() call. Also data uploaded in + * uploadSessionAppendV2() call must be multiple of 4194304 bytes (except + * for last uploadSessionAppendV2() with UploadSessionStartArg.close to + * true, that may contain any remaining data). + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesUploadSessionStart(arg: files.UploadSessionStartArg): Promise>; + + /** + * This route starts batch of upload_sessions. Please refer to + * `upload_session/start` usage. Calls to this endpoint will count as data + * transport calls for any Dropbox Business teams with a limit on the number + * of data transport calls allowed per month. For more information, see the + * [Data transport limit page]{@link + * https://www.dropbox.com/developers/reference/data-transport-limit}. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public filesUploadSessionStartBatch(arg: files.UploadSessionStartBatchArg): Promise>; + + /** + * This route is used for refreshing the info that is found in the id_token + * during the OIDC flow. This route doesn't require any arguments and will + * use the scopes approved for the given access token. + * + * Route attributes: + * scope: openid + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public openidUserinfo(arg: openid.UserInfoArgs): Promise>; + + /** + * Marks the given Paper doc as archived. This action can be performed or + * undone by anyone with edit permissions to the doc. Note that this + * endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, + * then the user is running the new version of Paper. This endpoint will be + * retired in September 2020. Refer to the [Paper Migration Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide} + * for more information. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public paperDocsArchive(arg: paper.RefPaperDoc): Promise>; + + /** + * Creates a new Paper doc with the provided content. Note that this + * endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, + * then the user is running the new version of Paper. This endpoint will be + * retired in September 2020. Refer to the [Paper Migration Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide} + * for more information. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public paperDocsCreate(arg: paper.PaperDocCreateArgs): Promise>; + + /** + * Exports and downloads Paper doc either as HTML or markdown. Note that + * this endpoint will continue to work for content created by users on the + * older version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, + * then the user is running the new version of Paper. Refer to the [Paper + * Migration Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide} + * for migration information. + * + * Route attributes: + * scope: files.content.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public paperDocsDownload(arg: paper.PaperDocExport): Promise>; + + /** + * Lists the users who are explicitly invited to the Paper folder in which + * the Paper doc is contained. For private folders all users (including + * owner) shared on the folder are listed and for team folders all non-team + * users shared on the folder are returned. Note that this endpoint will + * continue to work for content created by users on the older version of + * Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, + * then the user is running the new version of Paper. Refer to the [Paper + * Migration Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide} + * for migration information. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public paperDocsFolderUsersList(arg: paper.ListUsersOnFolderArgs): Promise>; + + /** + * Once a cursor has been retrieved from docsFolderUsersList(), use this to + * paginate through all users on the Paper folder. Note that this endpoint + * will continue to work for content created by users on the older version + * of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, + * then the user is running the new version of Paper. Refer to the [Paper + * Migration Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide} + * for migration information. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public paperDocsFolderUsersListContinue(arg: paper.ListUsersOnFolderContinueArgs): Promise>; + + /** + * Retrieves folder information for the given Paper doc. This includes: - + * folder sharing policy; permissions for subfolders are set by the + * top-level folder. - full 'filepath', i.e. the list of folders (both + * folderId and folderName) from the root folder to the folder directly + * containing the Paper doc. If the Paper doc is not in any folder (aka + * unfiled) the response will be empty. Note that this endpoint will + * continue to work for content created by users on the older version of + * Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, + * then the user is running the new version of Paper. Refer to the [Paper + * Migration Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide} + * for migration information. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public paperDocsGetFolderInfo(arg: paper.RefPaperDoc): Promise>; + + /** + * Return the list of all Paper docs according to the argument + * specifications. To iterate over through the full pagination, pass the + * cursor to docsListContinue(). Note that this endpoint will continue to + * work for content created by users on the older version of Paper. To check + * which version of Paper a user is on, use /users/features/get_values. If + * the paper_as_files feature is enabled, then the user is running the new + * version of Paper. Refer to the [Paper Migration Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide} + * for migration information. + * + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public paperDocsList(arg: paper.ListPaperDocsArgs): Promise>; + + /** + * Once a cursor has been retrieved from docsList(), use this to paginate + * through all Paper doc. Note that this endpoint will continue to work for + * content created by users on the older version of Paper. To check which + * version of Paper a user is on, use /users/features/get_values. If the + * paper_as_files feature is enabled, then the user is running the new + * version of Paper. Refer to the [Paper Migration Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide} + * for migration information. + * + * Route attributes: + * scope: files.metadata.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public paperDocsListContinue(arg: paper.ListPaperDocsContinueArgs): Promise>; + + /** + * Permanently deletes the given Paper doc. This operation is final as the + * doc cannot be recovered. This action can be performed only by the doc + * owner. Note that this endpoint will continue to work for content created + * by users on the older version of Paper. To check which version of Paper a + * user is on, use /users/features/get_values. If the paper_as_files feature + * is enabled, then the user is running the new version of Paper. Refer to + * the [Paper Migration Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide} + * for migration information. + * + * Route attributes: + * scope: files.permanent_delete + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public paperDocsPermanentlyDelete(arg: paper.RefPaperDoc): Promise>; + + /** + * Gets the default sharing policy for the given Paper doc. Note that this + * endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, + * then the user is running the new version of Paper. Refer to the [Paper + * Migration Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide} + * for migration information. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public paperDocsSharingPolicyGet(arg: paper.RefPaperDoc): Promise>; + + /** + * Sets the default sharing policy for the given Paper doc. The default + * 'team_sharing_policy' can be changed only by teams, omit this field for + * personal accounts. The 'public_sharing_policy' policy can't be set to the + * value 'disabled' because this setting can be changed only via the team + * admin console. Note that this endpoint will continue to work for content + * created by users on the older version of Paper. To check which version of + * Paper a user is on, use /users/features/get_values. If the paper_as_files + * feature is enabled, then the user is running the new version of Paper. + * Refer to the [Paper Migration Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide} + * for migration information. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public paperDocsSharingPolicySet(arg: paper.PaperDocSharingPolicy): Promise>; + + /** + * Updates an existing Paper doc with the provided content. Note that this + * endpoint will continue to work for content created by users on the older + * version of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, + * then the user is running the new version of Paper. This endpoint will be + * retired in September 2020. Refer to the [Paper Migration Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide} + * for more information. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public paperDocsUpdate(arg: paper.PaperDocUpdateArgs): Promise>; + + /** + * Allows an owner or editor to add users to a Paper doc or change their + * permissions using their email address or Dropbox account ID. The doc + * owner's permissions cannot be changed. Note that this endpoint will + * continue to work for content created by users on the older version of + * Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, + * then the user is running the new version of Paper. Refer to the [Paper + * Migration Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide} + * for migration information. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public paperDocsUsersAdd(arg: paper.AddPaperDocUser): Promise>>; + + /** + * Lists all users who visited the Paper doc or users with explicit access. + * This call excludes users who have been removed. The list is sorted by the + * date of the visit or the share date. The list will include both users, + * the explicitly shared ones as well as those who came in using the Paper + * url link. Note that this endpoint will continue to work for content + * created by users on the older version of Paper. To check which version of + * Paper a user is on, use /users/features/get_values. If the paper_as_files + * feature is enabled, then the user is running the new version of Paper. + * Refer to the [Paper Migration Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide} + * for migration information. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public paperDocsUsersList(arg: paper.ListUsersOnPaperDocArgs): Promise>; + + /** + * Once a cursor has been retrieved from docsUsersList(), use this to + * paginate through all users on the Paper doc. Note that this endpoint will + * continue to work for content created by users on the older version of + * Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, + * then the user is running the new version of Paper. Refer to the [Paper + * Migration Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide} + * for migration information. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public paperDocsUsersListContinue(arg: paper.ListUsersOnPaperDocContinueArgs): Promise>; + + /** + * Allows an owner or editor to remove users from a Paper doc using their + * email address or Dropbox account ID. The doc owner cannot be removed. + * Note that this endpoint will continue to work for content created by + * users on the older version of Paper. To check which version of Paper a + * user is on, use /users/features/get_values. If the paper_as_files feature + * is enabled, then the user is running the new version of Paper. Refer to + * the [Paper Migration Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide} + * for migration information. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public paperDocsUsersRemove(arg: paper.RemovePaperDocUser): Promise>; + + /** + * Create a new Paper folder with the provided info. Note that this endpoint + * will continue to work for content created by users on the older version + * of Paper. To check which version of Paper a user is on, use + * /users/features/get_values. If the paper_as_files feature is enabled, + * then the user is running the new version of Paper. Refer to the [Paper + * Migration Guide]{@link + * https://www.dropbox.com/lp/developers/reference/paper-migration-guide} + * for migration information. + * + * Route attributes: + * scope: files.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public paperFoldersCreate(arg: paper.PaperFolderCreateArg): Promise>; + + /** + * Adds specified members to a file. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingAddFileMember(arg: sharing.AddFileMemberArgs): Promise>>; + + /** + * Allows an owner or editor (if the ACL update policy allows) of a shared + * folder to add another member. For the new member to get access to all the + * functionality for this folder, you will need to call mountFolder() on + * their behalf. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingAddFolderMember(arg: sharing.AddFolderMemberArg): Promise>; + + /** + * Returns the status of an asynchronous job. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingCheckJobStatus(arg: async.PollArg): Promise>; + + /** + * Returns the status of an asynchronous job for sharing a folder. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingCheckRemoveMemberJobStatus(arg: async.PollArg): Promise>; + + /** + * Returns the status of an asynchronous job for sharing a folder. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingCheckShareJobStatus(arg: async.PollArg): Promise>; + + /** + * Create a shared link. If a shared link already exists for the given path, + * that link is returned. Previously, it was technically possible to break a + * shared link by moving or renaming the corresponding file or folder. In + * the future, this will no longer be the case, so your app shouldn't rely + * on this behavior. Instead, if your app needs to revoke a shared link, use + * revokeSharedLink(). + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public sharingCreateSharedLink(arg: sharing.CreateSharedLinkArg): Promise>; + + /** + * Create a shared link with custom settings. If no settings are given then + * the default visibility is RequestedVisibility.public (The resolved + * visibility, though, may depend on other aspects such as team and shared + * folder settings). + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingCreateSharedLinkWithSettings(arg: sharing.CreateSharedLinkWithSettingsArg): Promise>; + + /** + * Returns shared file metadata. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingGetFileMetadata(arg: sharing.GetFileMetadataArg): Promise>; + + /** + * Returns shared file metadata. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingGetFileMetadataBatch(arg: sharing.GetFileMetadataBatchArg): Promise>>; + + /** + * Returns shared folder metadata by its folder ID. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingGetFolderMetadata(arg: sharing.GetMetadataArgs): Promise>; + + /** + * Download the shared link's file from a user's Dropbox. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingGetSharedLinkFile(arg: sharing.GetSharedLinkFileArg): Promise>; + + /** + * Get the shared link's metadata. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingGetSharedLinkMetadata(arg: sharing.GetSharedLinkMetadataArg): Promise>; + + /** + * Returns a list of LinkMetadata objects for this user, including + * collection links. If no path is given, returns a list of all shared links + * for the current user, including collection links, up to a maximum of 1000 + * links. If a non-empty path is given, returns a list of all shared links + * that allow access to the given path. Collection links are never returned + * in this case. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public sharingGetSharedLinks(arg: sharing.GetSharedLinksArg): Promise>; + + /** + * Use to obtain the members who have been invited to a file, both inherited + * and uninherited members. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingListFileMembers(arg: sharing.ListFileMembersArg): Promise>; + + /** + * Get members of multiple files at once. The arguments to this route are + * more limited, and the limit on query result size per file is more strict. + * To customize the results more, use the individual file endpoint. + * Inherited users and groups are not included in the result, and + * permissions are not returned for this endpoint. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingListFileMembersBatch(arg: sharing.ListFileMembersBatchArg): Promise>>; + + /** + * Once a cursor has been retrieved from listFileMembers() or + * listFileMembersBatch(), use this to paginate through all shared file + * members. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingListFileMembersContinue(arg: sharing.ListFileMembersContinueArg): Promise>; + + /** + * Returns shared folder membership by its folder ID. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingListFolderMembers(arg: sharing.ListFolderMembersArgs): Promise>; + + /** + * Once a cursor has been retrieved from listFolderMembers(), use this to + * paginate through all shared folder members. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingListFolderMembersContinue(arg: sharing.ListFolderMembersContinueArg): Promise>; + + /** + * Return the list of all shared folders the current user has access to. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingListFolders(arg: sharing.ListFoldersArgs): Promise>; + + /** + * Once a cursor has been retrieved from listFolders(), use this to paginate + * through all shared folders. The cursor must come from a previous call to + * listFolders() or listFoldersContinue(). + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingListFoldersContinue(arg: sharing.ListFoldersContinueArg): Promise>; + + /** + * Return the list of all shared folders the current user can mount or + * unmount. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingListMountableFolders(arg: sharing.ListFoldersArgs): Promise>; + + /** + * Once a cursor has been retrieved from listMountableFolders(), use this to + * paginate through all mountable shared folders. The cursor must come from + * a previous call to listMountableFolders() or + * listMountableFoldersContinue(). + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingListMountableFoldersContinue(arg: sharing.ListFoldersContinueArg): Promise>; + + /** + * Returns a list of all files shared with current user. Does not include + * files the user has received via shared folders, and does not include + * unclaimed invitations. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingListReceivedFiles(arg: sharing.ListFilesArg): Promise>; + + /** + * Get more results with a cursor from listReceivedFiles(). + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingListReceivedFilesContinue(arg: sharing.ListFilesContinueArg): Promise>; + + /** + * List shared links of this user. If no path is given, returns a list of + * all shared links for the current user. For members of business teams + * using team space and member folders, returns all shared links in the team + * member's home folder unless the team space ID is specified in the request + * header. For more information, refer to the [Namespace Guide]{@link + * https://www.dropbox.com/developers/reference/namespace-guide}. If a + * non-empty path is given, returns a list of all shared links that allow + * access to the given path - direct links to the given path and links to + * parent folders of the given path. Links to parent folders can be + * suppressed by setting direct_only to true. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingListSharedLinks(arg: sharing.ListSharedLinksArg): Promise>; + + /** + * Modify the shared link's settings. If the requested visibility conflict + * with the shared links policy of the team or the shared folder (in case + * the linked file is part of a shared folder) then the + * LinkPermissions.resolved_visibility of the returned SharedLinkMetadata + * will reflect the actual visibility of the shared link and the + * LinkPermissions.requested_visibility will reflect the requested + * visibility. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingModifySharedLinkSettings(arg: sharing.ModifySharedLinkSettingsArgs): Promise>; + + /** + * The current user mounts the designated folder. Mount a shared folder for + * a user after they have been added as a member. Once mounted, the shared + * folder will appear in their Dropbox. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingMountFolder(arg: sharing.MountFolderArg): Promise>; + + /** + * The current user relinquishes their membership in the designated file. + * Note that the current user may still have inherited access to this file + * through the parent folder. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingRelinquishFileMembership(arg: sharing.RelinquishFileMembershipArg): Promise>; + + /** + * The current user relinquishes their membership in the designated shared + * folder and will no longer have access to the folder. A folder owner + * cannot relinquish membership in their own folder. This will run + * synchronously if leave_a_copy is false, and asynchronously if + * leave_a_copy is true. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingRelinquishFolderMembership(arg: sharing.RelinquishFolderMembershipArg): Promise>; + + /** + * Identical to remove_file_member_2 but with less information returned. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public sharingRemoveFileMember(arg: sharing.RemoveFileMemberArg): Promise>; + + /** + * Removes a specified member from the file. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingRemoveFileMember2(arg: sharing.RemoveFileMemberArg): Promise>; + + /** + * Allows an owner or editor (if the ACL update policy allows) of a shared + * folder to remove another member. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingRemoveFolderMember(arg: sharing.RemoveFolderMemberArg): Promise>; + + /** + * Revoke a shared link. Note that even after revoking a shared link to a + * file, the file may be accessible if there are shared links leading to any + * of the file parent folders. To list all shared links that enable access + * to a specific file, you can use the listSharedLinks() with the file as + * the ListSharedLinksArg.path argument. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingRevokeSharedLink(arg: sharing.RevokeSharedLinkArg): Promise>; + + /** + * Change the inheritance policy of an existing Shared Folder. Only + * permitted for shared folders in a shared team root. If a + * ShareFolderLaunch.async_job_id is returned, you'll need to call + * checkShareJobStatus() until the action completes to get the metadata for + * the folder. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingSetAccessInheritance(arg: sharing.SetAccessInheritanceArg): Promise>; + + /** + * Share a folder with collaborators. Most sharing will be completed + * synchronously. Large folders will be completed asynchronously. To make + * testing the async case repeatable, set `ShareFolderArg.force_async`. If a + * ShareFolderLaunch.async_job_id is returned, you'll need to call + * checkShareJobStatus() until the action completes to get the metadata for + * the folder. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingShareFolder(arg: sharing.ShareFolderArg): Promise>; + + /** + * Transfer ownership of a shared folder to a member of the shared folder. + * User must have AccessLevel.owner access to the shared folder to perform a + * transfer. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingTransferFolder(arg: sharing.TransferFolderArg): Promise>; + + /** + * The current user unmounts the designated folder. They can re-mount the + * folder at a later time using mountFolder(). + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingUnmountFolder(arg: sharing.UnmountFolderArg): Promise>; + + /** + * Remove all members from this file. Does not remove inherited members. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingUnshareFile(arg: sharing.UnshareFileArg): Promise>; + + /** + * Allows a shared folder owner to unshare the folder. You'll need to call + * checkJobStatus() to determine if the action has completed successfully. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingUnshareFolder(arg: sharing.UnshareFolderArg): Promise>; + + /** + * Changes a member's access on a shared file. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingUpdateFileMember(arg: sharing.UpdateFileMemberArgs): Promise>; + + /** + * Allows an owner or editor of a shared folder to update another member's + * permissions. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingUpdateFolderMember(arg: sharing.UpdateFolderMemberArg): Promise>; + + /** + * Update the sharing policies for a shared folder. User must have + * AccessLevel.owner access to the shared folder to update its policies. + * + * Route attributes: + * scope: sharing.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public sharingUpdateFolderPolicy(arg: sharing.UpdateFolderPolicyArg): Promise>; + + /** + * List all device sessions of a team's member. + * + * Route attributes: + * scope: sessions.list + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamDevicesListMemberDevices(arg: team.ListMemberDevicesArg): Promise>; + + /** + * List all device sessions of a team. Permission : Team member file access. + * + * Route attributes: + * scope: sessions.list + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamDevicesListMembersDevices(arg: team.ListMembersDevicesArg): Promise>; + + /** + * List all device sessions of a team. Permission : Team member file access. + * + * Route attributes: + * scope: sessions.list + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public teamDevicesListTeamDevices(arg: team.ListTeamDevicesArg): Promise>; + + /** + * Revoke a device session of a team's member. + * + * Route attributes: + * scope: sessions.modify + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamDevicesRevokeDeviceSession(arg: team.RevokeDeviceSessionArg): Promise>; + + /** + * Revoke a list of device sessions of team members. + * + * Route attributes: + * scope: sessions.modify + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamDevicesRevokeDeviceSessionBatch(arg: team.RevokeDeviceSessionBatchArg): Promise>; + + /** + * Get the values for one or more featues. This route allows you to check + * your account's capability for what feature you can access or what value + * you have for certain features. Permission : Team information. + * + * Route attributes: + * scope: team_info.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamFeaturesGetValues(arg: team.FeaturesGetValuesBatchArg): Promise>; + + /** + * Retrieves information about a team. + * + * Route attributes: + * scope: team_info.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + */ + public teamGetInfo(): Promise>; + + /** + * Creates a new, empty group, with a requested name. Permission : Team + * member management. + * + * Route attributes: + * scope: groups.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamGroupsCreate(arg: team.GroupCreateArg): Promise>; + + /** + * Deletes a group. The group is deleted immediately. However the revoking + * of group-owned resources may take additional time. Use the + * groupsJobStatusGet() to determine whether this process has completed. + * Permission : Team member management. + * + * Route attributes: + * scope: groups.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamGroupsDelete(arg: team.GroupSelector): Promise>; + + /** + * Retrieves information about one or more groups. Note that the optional + * field GroupFullInfo.members is not returned for system-managed groups. + * Permission : Team Information. + * + * Route attributes: + * scope: groups.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamGroupsGetInfo(arg: team.GroupsSelector): Promise>; + + /** + * Once an async_job_id is returned from groupsDelete(), groupsMembersAdd() + * , or groupsMembersRemove() use this method to poll the status of + * granting/revoking group members' access to group-owned resources. + * Permission : Team member management. + * + * Route attributes: + * scope: groups.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamGroupsJobStatusGet(arg: async.PollArg): Promise>; + + /** + * Lists groups on a team. Permission : Team Information. + * + * Route attributes: + * scope: groups.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamGroupsList(arg: team.GroupsListArg): Promise>; + + /** + * Once a cursor has been retrieved from groupsList(), use this to paginate + * through all groups. Permission : Team Information. + * + * Route attributes: + * scope: groups.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamGroupsListContinue(arg: team.GroupsListContinueArg): Promise>; + + /** + * Adds members to a group. The members are added immediately. However the + * granting of group-owned resources may take additional time. Use the + * groupsJobStatusGet() to determine whether this process has completed. + * Permission : Team member management. + * + * Route attributes: + * scope: groups.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamGroupsMembersAdd(arg: team.GroupMembersAddArg): Promise>; + + /** + * Lists members of a group. Permission : Team Information. + * + * Route attributes: + * scope: groups.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamGroupsMembersList(arg: team.GroupsMembersListArg): Promise>; + + /** + * Once a cursor has been retrieved from groupsMembersList(), use this to + * paginate through all members of the group. Permission : Team information. + * + * Route attributes: + * scope: groups.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamGroupsMembersListContinue(arg: team.GroupsMembersListContinueArg): Promise>; + + /** + * Removes members from a group. The members are removed immediately. + * However the revoking of group-owned resources may take additional time. + * Use the groupsJobStatusGet() to determine whether this process has + * completed. This method permits removing the only owner of a group, even + * in cases where this is not possible via the web client. Permission : Team + * member management. + * + * Route attributes: + * scope: groups.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamGroupsMembersRemove(arg: team.GroupMembersRemoveArg): Promise>; + + /** + * Sets a member's access type in a group. Permission : Team member + * management. + * + * Route attributes: + * scope: groups.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamGroupsMembersSetAccessType(arg: team.GroupMembersSetAccessTypeArg): Promise>; + + /** + * Updates a group's name and/or external ID. Permission : Team member + * management. + * + * Route attributes: + * scope: groups.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamGroupsUpdate(arg: team.GroupUpdateArgs): Promise>; + + /** + * Creates new legal hold policy. Note: Legal Holds is a paid add-on. Not + * all teams have the feature. Permission : Team member file access. + * + * Route attributes: + * scope: team_data.governance.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamLegalHoldsCreatePolicy(arg: team.LegalHoldsPolicyCreateArg): Promise>; + + /** + * Gets a legal hold by Id. Note: Legal Holds is a paid add-on. Not all + * teams have the feature. Permission : Team member file access. + * + * Route attributes: + * scope: team_data.governance.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamLegalHoldsGetPolicy(arg: team.LegalHoldsGetPolicyArg): Promise>; + + /** + * List the file metadata that's under the hold. Note: Legal Holds is a paid + * add-on. Not all teams have the feature. Permission : Team member file + * access. + * + * Route attributes: + * scope: team_data.governance.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamLegalHoldsListHeldRevisions(arg: team.LegalHoldsListHeldRevisionsArg): Promise>; + + /** + * Continue listing the file metadata that's under the hold. Note: Legal + * Holds is a paid add-on. Not all teams have the feature. Permission : Team + * member file access. + * + * Route attributes: + * scope: team_data.governance.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamLegalHoldsListHeldRevisionsContinue(arg: team.LegalHoldsListHeldRevisionsContinueArg): Promise>; + + /** + * Lists legal holds on a team. Note: Legal Holds is a paid add-on. Not all + * teams have the feature. Permission : Team member file access. + * + * Route attributes: + * scope: team_data.governance.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamLegalHoldsListPolicies(arg: team.LegalHoldsListPoliciesArg): Promise>; + + /** + * Releases a legal hold by Id. Note: Legal Holds is a paid add-on. Not all + * teams have the feature. Permission : Team member file access. + * + * Route attributes: + * scope: team_data.governance.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamLegalHoldsReleasePolicy(arg: team.LegalHoldsPolicyReleaseArg): Promise>; + + /** + * Updates a legal hold. Note: Legal Holds is a paid add-on. Not all teams + * have the feature. Permission : Team member file access. + * + * Route attributes: + * scope: team_data.governance.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamLegalHoldsUpdatePolicy(arg: team.LegalHoldsPolicyUpdateArg): Promise>; + + /** + * List all linked applications of the team member. Note, this endpoint does + * not list any team-linked applications. + * + * Route attributes: + * scope: sessions.list + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamLinkedAppsListMemberLinkedApps(arg: team.ListMemberAppsArg): Promise>; + + /** + * List all applications linked to the team members' accounts. Note, this + * endpoint does not list any team-linked applications. + * + * Route attributes: + * scope: sessions.list + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamLinkedAppsListMembersLinkedApps(arg: team.ListMembersAppsArg): Promise>; + + /** + * List all applications linked to the team members' accounts. Note, this + * endpoint doesn't list any team-linked applications. + * + * Route attributes: + * scope: sessions.list + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public teamLinkedAppsListTeamLinkedApps(arg: team.ListTeamAppsArg): Promise>; + + /** + * Revoke a linked application of the team member. + * + * Route attributes: + * scope: sessions.modify + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamLinkedAppsRevokeLinkedApp(arg: team.RevokeLinkedApiAppArg): Promise>; + + /** + * Revoke a list of linked applications of the team members. + * + * Route attributes: + * scope: sessions.modify + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamLinkedAppsRevokeLinkedAppBatch(arg: team.RevokeLinkedApiAppBatchArg): Promise>; + + /** + * Add users to member space limits excluded users list. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMemberSpaceLimitsExcludedUsersAdd(arg: team.ExcludedUsersUpdateArg): Promise>; + + /** + * List member space limits excluded users. + * + * Route attributes: + * scope: members.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMemberSpaceLimitsExcludedUsersList(arg: team.ExcludedUsersListArg): Promise>; + + /** + * Continue listing member space limits excluded users. + * + * Route attributes: + * scope: members.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMemberSpaceLimitsExcludedUsersListContinue(arg: team.ExcludedUsersListContinueArg): Promise>; + + /** + * Remove users from member space limits excluded users list. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMemberSpaceLimitsExcludedUsersRemove(arg: team.ExcludedUsersUpdateArg): Promise>; + + /** + * Get users custom quota. Returns none as the custom quota if none was set. + * A maximum of 1000 members can be specified in a single call. + * + * Route attributes: + * scope: members.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMemberSpaceLimitsGetCustomQuota(arg: team.CustomQuotaUsersArg): Promise>>; + + /** + * Remove users custom quota. A maximum of 1000 members can be specified in + * a single call. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMemberSpaceLimitsRemoveCustomQuota(arg: team.CustomQuotaUsersArg): Promise>>; + + /** + * Set users custom quota. Custom quota has to be at least 15GB. A maximum + * of 1000 members can be specified in a single call. + * + * Route attributes: + * scope: members.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMemberSpaceLimitsSetCustomQuota(arg: team.SetCustomQuotaArg): Promise>>; + + /** + * Adds members to a team. Permission : Team member management A maximum of + * 20 members can be specified in a single call. If no Dropbox account + * exists with the email address specified, a new Dropbox account will be + * created with the given email address, and that account will be invited to + * the team. If a personal Dropbox account exists with the email address + * specified in the call, this call will create a placeholder Dropbox + * account for the user on the team and send an email inviting the user to + * migrate their existing personal account onto the team. Team member + * management apps are required to set an initial given_name and surname for + * a user to use in the team invitation and for 'Perform as team member' + * actions taken on the user before they become 'active'. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersAddV2(arg: team.MembersAddV2Arg): Promise>; + + /** + * Adds members to a team. Permission : Team member management A maximum of + * 20 members can be specified in a single call. If no Dropbox account + * exists with the email address specified, a new Dropbox account will be + * created with the given email address, and that account will be invited to + * the team. If a personal Dropbox account exists with the email address + * specified in the call, this call will create a placeholder Dropbox + * account for the user on the team and send an email inviting the user to + * migrate their existing personal account onto the team. Team member + * management apps are required to set an initial given_name and surname for + * a user to use in the team invitation and for 'Perform as team member' + * actions taken on the user before they become 'active'. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersAdd(arg: team.MembersAddArg): Promise>; + + /** + * Once an async_job_id is returned from membersAddV2() , use this to poll + * the status of the asynchronous request. Permission : Team member + * management. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersAddJobStatusGetV2(arg: async.PollArg): Promise>; + + /** + * Once an async_job_id is returned from membersAdd() , use this to poll the + * status of the asynchronous request. Permission : Team member management. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersAddJobStatusGet(arg: async.PollArg): Promise>; + + /** + * Deletes a team member's profile photo. Permission : Team member + * management. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersDeleteProfilePhotoV2(arg: team.MembersDeleteProfilePhotoArg): Promise>; + + /** + * Deletes a team member's profile photo. Permission : Team member + * management. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersDeleteProfilePhoto(arg: team.MembersDeleteProfilePhotoArg): Promise>; + + /** + * Get available TeamMemberRoles for the connected team. To be used with + * membersSetAdminPermissionsV2(). Permission : Team member management. + * + * Route attributes: + * scope: members.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + */ + public teamMembersGetAvailableTeamMemberRoles(): Promise>; + + /** + * Returns information about multiple team members. Permission : Team + * information This endpoint will return MembersGetInfoItem.id_not_found, + * for IDs (or emails) that cannot be matched to a valid team member. + * + * Route attributes: + * scope: members.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersGetInfoV2(arg: team.MembersGetInfoV2Arg): Promise>; + + /** + * Returns information about multiple team members. Permission : Team + * information This endpoint will return MembersGetInfoItem.id_not_found, + * for IDs (or emails) that cannot be matched to a valid team member. + * + * Route attributes: + * scope: members.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersGetInfo(arg: team.MembersGetInfoArgs): Promise>; + + /** + * Lists members of a team. Permission : Team information. + * + * Route attributes: + * scope: members.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersListV2(arg: team.MembersListArg): Promise>; + + /** + * Lists members of a team. Permission : Team information. + * + * Route attributes: + * scope: members.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersList(arg: team.MembersListArg): Promise>; + + /** + * Once a cursor has been retrieved from membersListV2(), use this to + * paginate through all team members. Permission : Team information. + * + * Route attributes: + * scope: members.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersListContinueV2(arg: team.MembersListContinueArg): Promise>; + + /** + * Once a cursor has been retrieved from membersList(), use this to paginate + * through all team members. Permission : Team information. + * + * Route attributes: + * scope: members.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersListContinue(arg: team.MembersListContinueArg): Promise>; + + /** + * Moves removed member's files to a different member. This endpoint + * initiates an asynchronous job. To obtain the final result of the job, the + * client should periodically poll + * membersMoveFormerMemberFilesJobStatusCheck(). Permission : Team member + * management. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersMoveFormerMemberFiles(arg: team.MembersDataTransferArg): Promise>; + + /** + * Once an async_job_id is returned from membersMoveFormerMemberFiles() , + * use this to poll the status of the asynchronous request. Permission : + * Team member management. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersMoveFormerMemberFilesJobStatusCheck(arg: async.PollArg): Promise>; + + /** + * Recover a deleted member. Permission : Team member management Exactly one + * of team_member_id, email, or external_id must be provided to identify the + * user account. + * + * Route attributes: + * scope: members.delete + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersRecover(arg: team.MembersRecoverArg): Promise>; + + /** + * Removes a member from a team. Permission : Team member management Exactly + * one of team_member_id, email, or external_id must be provided to identify + * the user account. Accounts can be recovered via membersRecover() for a 7 + * day period or until the account has been permanently deleted or + * transferred to another account (whichever comes first). Calling + * membersAdd() while a user is still recoverable on your team will return + * with MemberAddResult.user_already_on_team. Accounts can have their files + * transferred via the admin console for a limited time, based on the + * version history length associated with the team (180 days for most + * teams). This endpoint may initiate an asynchronous job. To obtain the + * final result of the job, the client should periodically poll + * membersRemoveJobStatusGet(). + * + * Route attributes: + * scope: members.delete + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersRemove(arg: team.MembersRemoveArg): Promise>; + + /** + * Once an async_job_id is returned from membersRemove() , use this to poll + * the status of the asynchronous request. Permission : Team member + * management. + * + * Route attributes: + * scope: members.delete + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersRemoveJobStatusGet(arg: async.PollArg): Promise>; + + /** + * Add secondary emails to users. Permission : Team member management. + * Emails that are on verified domains will be verified automatically. For + * each email address not on a verified domain a verification email will be + * sent. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersSecondaryEmailsAdd(arg: team.AddSecondaryEmailsArg): Promise>; + + /** + * Delete secondary emails from users Permission : Team member management. + * Users will be notified of deletions of verified secondary emails at both + * the secondary email and their primary email. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersSecondaryEmailsDelete(arg: team.DeleteSecondaryEmailsArg): Promise>; + + /** + * Resend secondary email verification emails. Permission : Team member + * management. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersSecondaryEmailsResendVerificationEmails(arg: team.ResendVerificationEmailArg): Promise>; + + /** + * Sends welcome email to pending team member. Permission : Team member + * management Exactly one of team_member_id, email, or external_id must be + * provided to identify the user account. No-op if team member is not + * pending. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersSendWelcomeEmail(arg: team.UserSelectorArg): Promise>; + + /** + * Updates a team member's permissions. Permission : Team member management. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersSetAdminPermissionsV2(arg: team.MembersSetPermissions2Arg): Promise>; + + /** + * Updates a team member's permissions. Permission : Team member management. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersSetAdminPermissions(arg: team.MembersSetPermissionsArg): Promise>; + + /** + * Updates a team member's profile. Permission : Team member management. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersSetProfileV2(arg: team.MembersSetProfileArg): Promise>; + + /** + * Updates a team member's profile. Permission : Team member management. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersSetProfile(arg: team.MembersSetProfileArg): Promise>; + + /** + * Updates a team member's profile photo. Permission : Team member + * management. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersSetProfilePhotoV2(arg: team.MembersSetProfilePhotoArg): Promise>; + + /** + * Updates a team member's profile photo. Permission : Team member + * management. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersSetProfilePhoto(arg: team.MembersSetProfilePhotoArg): Promise>; + + /** + * Suspend a member from a team. Permission : Team member management Exactly + * one of team_member_id, email, or external_id must be provided to identify + * the user account. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersSuspend(arg: team.MembersDeactivateArg): Promise>; + + /** + * Unsuspend a member from a team. Permission : Team member management + * Exactly one of team_member_id, email, or external_id must be provided to + * identify the user account. + * + * Route attributes: + * scope: members.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamMembersUnsuspend(arg: team.MembersUnsuspendArg): Promise>; + + /** + * Returns a list of all team-accessible namespaces. This list includes team + * folders, shared folders containing team members, team members' home + * namespaces, and team members' app folders. Home namespaces and app + * folders are always owned by this team or members of the team, but shared + * folders may be owned by other users or other teams. Duplicates may occur + * in the list. + * + * Route attributes: + * scope: team_data.member + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamNamespacesList(arg: team.TeamNamespacesListArg): Promise>; + + /** + * Once a cursor has been retrieved from namespacesList(), use this to + * paginate through all team-accessible namespaces. Duplicates may occur in + * the list. + * + * Route attributes: + * scope: team_data.member + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamNamespacesListContinue(arg: team.TeamNamespacesListContinueArg): Promise>; + + /** + * Permission : Team member file access. + * + * Route attributes: + * scope: files.team_metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public teamPropertiesTemplateAdd(arg: file_properties.AddTemplateArg): Promise>; + + /** + * Permission : Team member file access. The scope for the route is + * files.team_metadata.write. + * + * Route attributes: + * scope: files.team_metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public teamPropertiesTemplateGet(arg: file_properties.GetTemplateArg): Promise>; + + /** + * Permission : Team member file access. The scope for the route is + * files.team_metadata.write. + * + * Route attributes: + * scope: files.team_metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + */ + public teamPropertiesTemplateList(): Promise>; + + /** + * Permission : Team member file access. + * + * Route attributes: + * scope: files.team_metadata.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public teamPropertiesTemplateUpdate(arg: file_properties.UpdateTemplateArg): Promise>; + + /** + * Retrieves reporting data about a team's user activity. Deprecated: Will + * be removed on July 1st 2021. + * + * Route attributes: + * scope: team_info.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public teamReportsGetActivity(arg: team.DateRange): Promise>; + + /** + * Retrieves reporting data about a team's linked devices. Deprecated: Will + * be removed on July 1st 2021. + * + * Route attributes: + * scope: team_info.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public teamReportsGetDevices(arg: team.DateRange): Promise>; + + /** + * Retrieves reporting data about a team's membership. Deprecated: Will be + * removed on July 1st 2021. + * + * Route attributes: + * scope: team_info.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public teamReportsGetMembership(arg: team.DateRange): Promise>; + + /** + * Retrieves reporting data about a team's storage usage. Deprecated: Will + * be removed on July 1st 2021. + * + * Route attributes: + * scope: team_info.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @deprecated + * @param arg The request parameters. + */ + public teamReportsGetStorage(arg: team.DateRange): Promise>; + + /** + * Endpoint adds Approve List entries. Changes are effective immediately. + * Changes are committed in transaction. In case of single validation error + * - all entries are rejected. Valid domains (RFC-1034/5) and emails + * (RFC-5322/822) are accepted. Added entries cannot overflow limit of 10000 + * entries per team. Maximum 100 entries per call is allowed. + * + * Route attributes: + * scope: team_info.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamSharingAllowlistAdd(arg: team.SharingAllowlistAddArgs): Promise>; + + /** + * Lists Approve List entries for given team, from newest to oldest, + * returning up to `limit` entries at a time. If there are more than `limit` + * entries associated with the current team, more can be fetched by passing + * the returned `cursor` to sharingAllowlistListContinue(). + * + * Route attributes: + * scope: team_info.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamSharingAllowlistList(arg: team.SharingAllowlistListArg): Promise>; + + /** + * Lists entries associated with given team, starting from a the cursor. See + * sharingAllowlistList(). + * + * Route attributes: + * scope: team_info.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamSharingAllowlistListContinue(arg: team.SharingAllowlistListContinueArg): Promise>; + + /** + * Endpoint removes Approve List entries. Changes are effective immediately. + * Changes are committed in transaction. In case of single validation error + * - all entries are rejected. Valid domains (RFC-1034/5) and emails + * (RFC-5322/822) are accepted. Entries being removed have to be present on + * the list. Maximum 1000 entries per call is allowed. + * + * Route attributes: + * scope: team_info.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamSharingAllowlistRemove(arg: team.SharingAllowlistRemoveArgs): Promise>; + + /** + * Sets an archived team folder's status to active. Permission : Team member + * file access. + * + * Route attributes: + * scope: team_data.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamTeamFolderActivate(arg: team.TeamFolderIdArg): Promise>; + + /** + * Sets an active team folder's status to archived and removes all folder + * and file members. This endpoint cannot be used for teams that have a + * shared team space. Permission : Team member file access. + * + * Route attributes: + * scope: team_data.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamTeamFolderArchive(arg: team.TeamFolderArchiveArg): Promise>; + + /** + * Returns the status of an asynchronous job for archiving a team folder. + * Permission : Team member file access. + * + * Route attributes: + * scope: team_data.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamTeamFolderArchiveCheck(arg: async.PollArg): Promise>; + + /** + * Creates a new, active, team folder with no members. This endpoint can + * only be used for teams that do not already have a shared team space. + * Permission : Team member file access. + * + * Route attributes: + * scope: team_data.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamTeamFolderCreate(arg: team.TeamFolderCreateArg): Promise>; + + /** + * Retrieves metadata for team folders. Permission : Team member file + * access. + * + * Route attributes: + * scope: team_data.content.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamTeamFolderGetInfo(arg: team.TeamFolderIdListArg): Promise>>; + + /** + * Lists all team folders. Permission : Team member file access. + * + * Route attributes: + * scope: team_data.content.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamTeamFolderList(arg: team.TeamFolderListArg): Promise>; + + /** + * Once a cursor has been retrieved from teamFolderList(), use this to + * paginate through all team folders. Permission : Team member file access. + * + * Route attributes: + * scope: team_data.content.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamTeamFolderListContinue(arg: team.TeamFolderListContinueArg): Promise>; + + /** + * Permanently deletes an archived team folder. This endpoint cannot be used + * for teams that have a shared team space. Permission : Team member file + * access. + * + * Route attributes: + * scope: team_data.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamTeamFolderPermanentlyDelete(arg: team.TeamFolderIdArg): Promise>; + + /** + * Changes an active team folder's name. Permission : Team member file + * access. + * + * Route attributes: + * scope: team_data.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamTeamFolderRename(arg: team.TeamFolderRenameArg): Promise>; + + /** + * Updates the sync settings on a team folder or its contents. Use of this + * endpoint requires that the team has team selective sync enabled. + * + * Route attributes: + * scope: team_data.content.write + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamTeamFolderUpdateSyncSettings(arg: team.TeamFolderUpdateSyncSettingsArg): Promise>; + + /** + * Returns the member profile of the admin who generated the team access + * token used to make the call. + * + * Route attributes: + * scope: team_info.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + */ + public teamTokenGetAuthenticatedAdmin(): Promise>; + + /** + * Retrieves team events. If the result's GetTeamEventsResult.has_more field + * is true, call getEventsContinue() with the returned cursor to retrieve + * more entries. If end_time is not specified in your request, you may use + * the returned cursor to poll getEventsContinue() for new events. Many + * attributes note 'may be missing due to historical data gap'. Note that + * the file_operations category and & analogous paper events are not + * available on all Dropbox Business [plans]{@link + * /business/plans-comparison}. Use [features/get_values]{@link + * /developers/documentation/http/teams#team-features-get_values} to check + * for this feature. Permission : Team Auditing. + * + * Route attributes: + * scope: events.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamLogGetEvents(arg: team_log.GetTeamEventsArg): Promise>; + + /** + * Once a cursor has been retrieved from getEvents(), use this to paginate + * through all events. Permission : Team Auditing. + * + * Route attributes: + * scope: events.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public teamLogGetEventsContinue(arg: team_log.GetTeamEventsContinueArg): Promise>; + + /** + * Get a list of feature values that may be configured for the current + * account. + * + * Route attributes: + * scope: account_info.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public usersFeaturesGetValues(arg: users.UserFeaturesGetValuesBatchArg): Promise>; + + /** + * Get information about a user's account. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public usersGetAccount(arg: users.GetAccountArg): Promise>; + + /** + * Get information about multiple user accounts. At most 300 accounts may + * be queried per request. + * + * Route attributes: + * scope: sharing.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + * @param arg The request parameters. + */ + public usersGetAccountBatch(arg: users.GetAccountBatchArg): Promise>; + + /** + * Get information about the current user's account. + * + * Route attributes: + * scope: account_info.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + */ + public usersGetCurrentAccount(): Promise>; + + /** + * Get the space usage information for the current user's account. + * + * Route attributes: + * scope: account_info.read + * + * When an error occurs, the route rejects the promise with type + * DropboxResponseError. + */ + public usersGetSpaceUsage(): Promise>; +} + diff --git a/node_modules/tr46/index.js b/node_modules/tr46/index.js new file mode 100644 index 0000000000000000000000000000000000000000..9ce12ca2d026fa202f7a0d32e0a7c8526660ed78 --- /dev/null +++ b/node_modules/tr46/index.js @@ -0,0 +1,193 @@ +"use strict"; + +var punycode = require("punycode"); +var mappingTable = require("./lib/mappingTable.json"); + +var PROCESSING_OPTIONS = { + TRANSITIONAL: 0, + NONTRANSITIONAL: 1 +}; + +function normalize(str) { // fix bug in v8 + return str.split('\u0000').map(function (s) { return s.normalize('NFC'); }).join('\u0000'); +} + +function findStatus(val) { + var start = 0; + var end = mappingTable.length - 1; + + while (start <= end) { + var mid = Math.floor((start + end) / 2); + + var target = mappingTable[mid]; + if (target[0][0] <= val && target[0][1] >= val) { + return target; + } else if (target[0][0] > val) { + end = mid - 1; + } else { + start = mid + 1; + } + } + + return null; +} + +var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; + +function countSymbols(string) { + return string + // replace every surrogate pair with a BMP symbol + .replace(regexAstralSymbols, '_') + // then get the length + .length; +} + +function mapChars(domain_name, useSTD3, processing_option) { + var hasError = false; + var processed = ""; + + var len = countSymbols(domain_name); + for (var i = 0; i < len; ++i) { + var codePoint = domain_name.codePointAt(i); + var status = findStatus(codePoint); + + switch (status[1]) { + case "disallowed": + hasError = true; + processed += String.fromCodePoint(codePoint); + break; + case "ignored": + break; + case "mapped": + processed += String.fromCodePoint.apply(String, status[2]); + break; + case "deviation": + if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) { + processed += String.fromCodePoint.apply(String, status[2]); + } else { + processed += String.fromCodePoint(codePoint); + } + break; + case "valid": + processed += String.fromCodePoint(codePoint); + break; + case "disallowed_STD3_mapped": + if (useSTD3) { + hasError = true; + processed += String.fromCodePoint(codePoint); + } else { + processed += String.fromCodePoint.apply(String, status[2]); + } + break; + case "disallowed_STD3_valid": + if (useSTD3) { + hasError = true; + } + + processed += String.fromCodePoint(codePoint); + break; + } + } + + return { + string: processed, + error: hasError + }; +} + +var combiningMarksRegex = /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/; + +function validateLabel(label, processing_option) { + if (label.substr(0, 4) === "xn--") { + label = punycode.toUnicode(label); + processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL; + } + + var error = false; + + if (normalize(label) !== label || + (label[3] === "-" && label[4] === "-") || + label[0] === "-" || label[label.length - 1] === "-" || + label.indexOf(".") !== -1 || + label.search(combiningMarksRegex) === 0) { + error = true; + } + + var len = countSymbols(label); + for (var i = 0; i < len; ++i) { + var status = findStatus(label.codePointAt(i)); + if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== "valid") || + (processing === PROCESSING_OPTIONS.NONTRANSITIONAL && + status[1] !== "valid" && status[1] !== "deviation")) { + error = true; + break; + } + } + + return { + label: label, + error: error + }; +} + +function processing(domain_name, useSTD3, processing_option) { + var result = mapChars(domain_name, useSTD3, processing_option); + result.string = normalize(result.string); + + var labels = result.string.split("."); + for (var i = 0; i < labels.length; ++i) { + try { + var validation = validateLabel(labels[i]); + labels[i] = validation.label; + result.error = result.error || validation.error; + } catch(e) { + result.error = true; + } + } + + return { + string: labels.join("."), + error: result.error + }; +} + +module.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) { + var result = processing(domain_name, useSTD3, processing_option); + var labels = result.string.split("."); + labels = labels.map(function(l) { + try { + return punycode.toASCII(l); + } catch(e) { + result.error = true; + return l; + } + }); + + if (verifyDnsLength) { + var total = labels.slice(0, labels.length - 1).join(".").length; + if (total.length > 253 || total.length === 0) { + result.error = true; + } + + for (var i=0; i < labels.length; ++i) { + if (labels.length > 63 || labels.length === 0) { + result.error = true; + break; + } + } + } + + if (result.error) return null; + return labels.join("."); +}; + +module.exports.toUnicode = function(domain_name, useSTD3) { + var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL); + + return { + domain: result.string, + error: result.error + }; +}; + +module.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS; diff --git a/node_modules/tr46/lib/.gitkeep b/node_modules/tr46/lib/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/node_modules/tr46/lib/mappingTable.json b/node_modules/tr46/lib/mappingTable.json new file mode 100644 index 0000000000000000000000000000000000000000..89cf19a74072fb71a9865e0efc6588ba56cdab3f --- /dev/null +++ b/node_modules/tr46/lib/mappingTable.json @@ -0,0 +1 @@ +[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1000,1000],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6000],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8000,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8000]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9000],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[30000]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13000,13000],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43000,43000],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64000,64000],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66000,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[120000,120000],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128000,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23000]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149000]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32000]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195000,195000],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[40000]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918000,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]] \ No newline at end of file diff --git a/node_modules/tr46/package.json b/node_modules/tr46/package.json new file mode 100644 index 0000000000000000000000000000000000000000..bc3e8e8303df4e0e1e5530955710af5ffc0e07e4 --- /dev/null +++ b/node_modules/tr46/package.json @@ -0,0 +1,59 @@ +{ + "_from": "tr46@~0.0.3", + "_id": "tr46@0.0.3", + "_inBundle": false, + "_integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "_location": "/tr46", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "tr46@~0.0.3", + "name": "tr46", + "escapedName": "tr46", + "rawSpec": "~0.0.3", + "saveSpec": null, + "fetchSpec": "~0.0.3" + }, + "_requiredBy": [ + "/whatwg-url" + ], + "_resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "_shasum": "8184fd347dac9cdc185992f3a6622e14b9d9ab6a", + "_spec": "tr46@~0.0.3", + "_where": "C:\\Users\\lenovo\\TSA\\node_modules\\whatwg-url", + "author": { + "name": "Sebastian Mayr", + "email": "npm@smayr.name" + }, + "bugs": { + "url": "https://github.com/Sebmaster/tr46.js/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "An implementation of the Unicode TR46 spec", + "devDependencies": { + "mocha": "^2.2.5", + "request": "^2.57.0" + }, + "homepage": "https://github.com/Sebmaster/tr46.js#readme", + "keywords": [ + "unicode", + "tr46", + "url", + "whatwg" + ], + "license": "MIT", + "main": "index.js", + "name": "tr46", + "repository": { + "type": "git", + "url": "git+https://github.com/Sebmaster/tr46.js.git" + }, + "scripts": { + "prepublish": "node scripts/generateMappingTable.js", + "pretest": "node scripts/getLatestUnicodeTests.js", + "test": "mocha" + }, + "version": "0.0.3" +} diff --git a/node_modules/webidl-conversions/LICENSE.md b/node_modules/webidl-conversions/LICENSE.md new file mode 100644 index 0000000000000000000000000000000000000000..d4a994f50bfa1ecc19489f03822a6e728d3e2a49 --- /dev/null +++ b/node_modules/webidl-conversions/LICENSE.md @@ -0,0 +1,12 @@ +# The BSD 2-Clause License + +Copyright (c) 2014, Domenic Denicola +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/webidl-conversions/README.md b/node_modules/webidl-conversions/README.md new file mode 100644 index 0000000000000000000000000000000000000000..3657890a186b14bf37ed8817d28a9a6a20bd397f --- /dev/null +++ b/node_modules/webidl-conversions/README.md @@ -0,0 +1,53 @@ +# WebIDL Type Conversions on JavaScript Values + +This package implements, in JavaScript, the algorithms to convert a given JavaScript value according to a given [WebIDL](http://heycam.github.io/webidl/) [type](http://heycam.github.io/webidl/#idl-types). + +The goal is that you should be able to write code like + +```js +const conversions = require("webidl-conversions"); + +function doStuff(x, y) { + x = conversions["boolean"](x); + y = conversions["unsigned long"](y); + // actual algorithm code here +} +``` + +and your function `doStuff` will behave the same as a WebIDL operation declared as + +```webidl +void doStuff(boolean x, unsigned long y); +``` + +## API + +This package's main module's default export is an object with a variety of methods, each corresponding to a different WebIDL type. Each method, when invoked on a JavaScript value, will give back the new JavaScript value that results after passing through the WebIDL conversion rules. (See below for more details on what that means.) Alternately, the method could throw an error, if the WebIDL algorithm is specified to do so: for example `conversions["float"](NaN)` [will throw a `TypeError`](http://heycam.github.io/webidl/#es-float). + +## Status + +All of the numeric types are implemented (float being implemented as double) and some others are as well - check the source for all of them. This list will grow over time in service of the [HTML as Custom Elements](https://github.com/dglazkov/html-as-custom-elements) project, but in the meantime, pull requests welcome! + +I'm not sure yet what the strategy will be for modifiers, e.g. [`[Clamp]`](http://heycam.github.io/webidl/#Clamp). Maybe something like `conversions["unsigned long"](x, { clamp: true })`? We'll see. + +We might also want to extend the API to give better error messages, e.g. "Argument 1 of HTMLMediaElement.fastSeek is not a finite floating-point value" instead of "Argument is not a finite floating-point value." This would require passing in more information to the conversion functions than we currently do. + +## Background + +What's actually going on here, conceptually, is pretty weird. Let's try to explain. + +WebIDL, as part of its madness-inducing design, has its own type system. When people write algorithms in web platform specs, they usually operate on WebIDL values, i.e. instances of WebIDL types. For example, if they were specifying the algorithm for our `doStuff` operation above, they would treat `x` as a WebIDL value of [WebIDL type `boolean`](http://heycam.github.io/webidl/#idl-boolean). Crucially, they would _not_ treat `x` as a JavaScript variable whose value is either the JavaScript `true` or `false`. They're instead working in a different type system altogether, with its own rules. + +Separately from its type system, WebIDL defines a ["binding"](http://heycam.github.io/webidl/#ecmascript-binding) of the type system into JavaScript. This contains rules like: when you pass a JavaScript value to the JavaScript method that manifests a given WebIDL operation, how does that get converted into a WebIDL value? For example, a JavaScript `true` passed in the position of a WebIDL `boolean` argument becomes a WebIDL `true`. But, a JavaScript `true` passed in the position of a [WebIDL `unsigned long`](http://heycam.github.io/webidl/#idl-unsigned-long) becomes a WebIDL `1`. And so on. + +Finally, we have the actual implementation code. This is usually C++, although these days [some smart people are using Rust](https://github.com/servo/servo). The implementation, of course, has its own type system. So when they implement the WebIDL algorithms, they don't actually use WebIDL values, since those aren't "real" outside of specs. Instead, implementations apply the WebIDL binding rules in such a way as to convert incoming JavaScript values into C++ values. For example, if code in the browser called `doStuff(true, true)`, then the implementation code would eventually receive a C++ `bool` containing `true` and a C++ `uint32_t` containing `1`. + +The upside of all this is that implementations can abstract all the conversion logic away, letting WebIDL handle it, and focus on implementing the relevant methods in C++ with values of the correct type already provided. That is payoff of WebIDL, in a nutshell. + +And getting to that payoff is the goal of _this_ project—but for JavaScript implementations, instead of C++ ones. That is, this library is designed to make it easier for JavaScript developers to write functions that behave like a given WebIDL operation. So conceptually, the conversion pipeline, which in its general form is JavaScript values ↦ WebIDL values ↦ implementation-language values, in this case becomes JavaScript values ↦ WebIDL values ↦ JavaScript values. And that intermediate step is where all the logic is performed: a JavaScript `true` becomes a WebIDL `1` in an unsigned long context, which then becomes a JavaScript `1`. + +## Don't Use This + +Seriously, why would you ever use this? You really shouldn't. WebIDL is … not great, and you shouldn't be emulating its semantics. If you're looking for a generic argument-processing library, you should find one with better rules than those from WebIDL. In general, your JavaScript should not be trying to become more like WebIDL; if anything, we should fix WebIDL to make it more like JavaScript. + +The _only_ people who should use this are those trying to create faithful implementations (or polyfills) of web platform interfaces defined in WebIDL. diff --git a/node_modules/webidl-conversions/lib/index.js b/node_modules/webidl-conversions/lib/index.js new file mode 100644 index 0000000000000000000000000000000000000000..c5153a3abeb0a50b7f97ffb7123fec4b6130f1fc --- /dev/null +++ b/node_modules/webidl-conversions/lib/index.js @@ -0,0 +1,189 @@ +"use strict"; + +var conversions = {}; +module.exports = conversions; + +function sign(x) { + return x < 0 ? -1 : 1; +} + +function evenRound(x) { + // Round x to the nearest integer, choosing the even integer if it lies halfway between two. + if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor) + return Math.floor(x); + } else { + return Math.round(x); + } +} + +function createNumberConversion(bitLength, typeOpts) { + if (!typeOpts.unsigned) { + --bitLength; + } + const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength); + const upperBound = Math.pow(2, bitLength) - 1; + + const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength); + const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1); + + return function(V, opts) { + if (!opts) opts = {}; + + let x = +V; + + if (opts.enforceRange) { + if (!Number.isFinite(x)) { + throw new TypeError("Argument is not a finite number"); + } + + x = sign(x) * Math.floor(Math.abs(x)); + if (x < lowerBound || x > upperBound) { + throw new TypeError("Argument is not in byte range"); + } + + return x; + } + + if (!isNaN(x) && opts.clamp) { + x = evenRound(x); + + if (x < lowerBound) x = lowerBound; + if (x > upperBound) x = upperBound; + return x; + } + + if (!Number.isFinite(x) || x === 0) { + return 0; + } + + x = sign(x) * Math.floor(Math.abs(x)); + x = x % moduloVal; + + if (!typeOpts.unsigned && x >= moduloBound) { + return x - moduloVal; + } else if (typeOpts.unsigned) { + if (x < 0) { + x += moduloVal; + } else if (x === -0) { // don't return negative zero + return 0; + } + } + + return x; + } +} + +conversions["void"] = function () { + return undefined; +}; + +conversions["boolean"] = function (val) { + return !!val; +}; + +conversions["byte"] = createNumberConversion(8, { unsigned: false }); +conversions["octet"] = createNumberConversion(8, { unsigned: true }); + +conversions["short"] = createNumberConversion(16, { unsigned: false }); +conversions["unsigned short"] = createNumberConversion(16, { unsigned: true }); + +conversions["long"] = createNumberConversion(32, { unsigned: false }); +conversions["unsigned long"] = createNumberConversion(32, { unsigned: true }); + +conversions["long long"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 }); +conversions["unsigned long long"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 }); + +conversions["double"] = function (V) { + const x = +V; + + if (!Number.isFinite(x)) { + throw new TypeError("Argument is not a finite floating-point value"); + } + + return x; +}; + +conversions["unrestricted double"] = function (V) { + const x = +V; + + if (isNaN(x)) { + throw new TypeError("Argument is NaN"); + } + + return x; +}; + +// not quite valid, but good enough for JS +conversions["float"] = conversions["double"]; +conversions["unrestricted float"] = conversions["unrestricted double"]; + +conversions["DOMString"] = function (V, opts) { + if (!opts) opts = {}; + + if (opts.treatNullAsEmptyString && V === null) { + return ""; + } + + return String(V); +}; + +conversions["ByteString"] = function (V, opts) { + const x = String(V); + let c = undefined; + for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) { + if (c > 255) { + throw new TypeError("Argument is not a valid bytestring"); + } + } + + return x; +}; + +conversions["USVString"] = function (V) { + const S = String(V); + const n = S.length; + const U = []; + for (let i = 0; i < n; ++i) { + const c = S.charCodeAt(i); + if (c < 0xD800 || c > 0xDFFF) { + U.push(String.fromCodePoint(c)); + } else if (0xDC00 <= c && c <= 0xDFFF) { + U.push(String.fromCodePoint(0xFFFD)); + } else { + if (i === n - 1) { + U.push(String.fromCodePoint(0xFFFD)); + } else { + const d = S.charCodeAt(i + 1); + if (0xDC00 <= d && d <= 0xDFFF) { + const a = c & 0x3FF; + const b = d & 0x3FF; + U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b)); + ++i; + } else { + U.push(String.fromCodePoint(0xFFFD)); + } + } + } + } + + return U.join(''); +}; + +conversions["Date"] = function (V, opts) { + if (!(V instanceof Date)) { + throw new TypeError("Argument is not a Date object"); + } + if (isNaN(V)) { + return undefined; + } + + return V; +}; + +conversions["RegExp"] = function (V, opts) { + if (!(V instanceof RegExp)) { + V = new RegExp(V); + } + + return V; +}; diff --git a/node_modules/webidl-conversions/package.json b/node_modules/webidl-conversions/package.json new file mode 100644 index 0000000000000000000000000000000000000000..95c7942588da245cbca216e32b7e2d5ef0a48bf8 --- /dev/null +++ b/node_modules/webidl-conversions/package.json @@ -0,0 +1,59 @@ +{ + "_from": "webidl-conversions@^3.0.0", + "_id": "webidl-conversions@3.0.1", + "_inBundle": false, + "_integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "_location": "/webidl-conversions", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "webidl-conversions@^3.0.0", + "name": "webidl-conversions", + "escapedName": "webidl-conversions", + "rawSpec": "^3.0.0", + "saveSpec": null, + "fetchSpec": "^3.0.0" + }, + "_requiredBy": [ + "/whatwg-url" + ], + "_resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "_shasum": "24534275e2a7bc6be7bc86611cc16ae0a5654871", + "_spec": "webidl-conversions@^3.0.0", + "_where": "C:\\Users\\lenovo\\TSA\\node_modules\\whatwg-url", + "author": { + "name": "Domenic Denicola", + "email": "d@domenic.me", + "url": "https://domenic.me/" + }, + "bugs": { + "url": "https://github.com/jsdom/webidl-conversions/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Implements the WebIDL algorithms for converting to and from JavaScript values", + "devDependencies": { + "mocha": "^1.21.4" + }, + "files": [ + "lib/" + ], + "homepage": "https://github.com/jsdom/webidl-conversions#readme", + "keywords": [ + "webidl", + "web", + "types" + ], + "license": "BSD-2-Clause", + "main": "lib/index.js", + "name": "webidl-conversions", + "repository": { + "type": "git", + "url": "git+https://github.com/jsdom/webidl-conversions.git" + }, + "scripts": { + "test": "mocha test/*.js" + }, + "version": "3.0.1" +} diff --git a/node_modules/whatwg-url/LICENSE.txt b/node_modules/whatwg-url/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..54dfac39d9f523b2c14548f4574076f587c767e2 --- /dev/null +++ b/node_modules/whatwg-url/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015–2016 Sebastian Mayr + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/whatwg-url/README.md b/node_modules/whatwg-url/README.md new file mode 100644 index 0000000000000000000000000000000000000000..4347a7fc5414b183a302f73aabe9b6a70d263e29 --- /dev/null +++ b/node_modules/whatwg-url/README.md @@ -0,0 +1,67 @@ +# whatwg-url + +whatwg-url is a full implementation of the WHATWG [URL Standard](https://url.spec.whatwg.org/). It can be used standalone, but it also exposes a lot of the internal algorithms that are useful for integrating a URL parser into a project like [jsdom](https://github.com/tmpvar/jsdom). + +## Current Status + +whatwg-url is currently up to date with the URL spec up to commit [a62223](https://github.com/whatwg/url/commit/a622235308342c9adc7fc2fd1659ff059f7d5e2a). + +## API + +### The `URL` Constructor + +The main API is the [`URL`](https://url.spec.whatwg.org/#url) export, which follows the spec's behavior in all ways (including e.g. `USVString` conversion). Most consumers of this library will want to use this. + +### Low-level URL Standard API + +The following methods are exported for use by places like jsdom that need to implement things like [`HTMLHyperlinkElementUtils`](https://html.spec.whatwg.org/#htmlhyperlinkelementutils). They operate on or return an "internal URL" or ["URL record"](https://url.spec.whatwg.org/#concept-url) type. + +- [URL parser](https://url.spec.whatwg.org/#concept-url-parser): `parseURL(input, { baseURL, encodingOverride })` +- [Basic URL parser](https://url.spec.whatwg.org/#concept-basic-url-parser): `basicURLParse(input, { baseURL, encodingOverride, url, stateOverride })` +- [URL serializer](https://url.spec.whatwg.org/#concept-url-serializer): `serializeURL(urlRecord, excludeFragment)` +- [Host serializer](https://url.spec.whatwg.org/#concept-host-serializer): `serializeHost(hostFromURLRecord)` +- [Serialize an integer](https://url.spec.whatwg.org/#serialize-an-integer): `serializeInteger(number)` +- [Origin](https://url.spec.whatwg.org/#concept-url-origin) [serializer](https://html.spec.whatwg.org/multipage/browsers.html#serialization-of-an-origin): `serializeURLOrigin(urlRecord)` +- [Set the username](https://url.spec.whatwg.org/#set-the-username): `setTheUsername(urlRecord, usernameString)` +- [Set the password](https://url.spec.whatwg.org/#set-the-password): `setThePassword(urlRecord, passwordString)` +- [Cannot have a username/password/port](https://url.spec.whatwg.org/#cannot-have-a-username-password-port): `cannotHaveAUsernamePasswordPort(urlRecord)` + +The `stateOverride` parameter is one of the following strings: + +- [`"scheme start"`](https://url.spec.whatwg.org/#scheme-start-state) +- [`"scheme"`](https://url.spec.whatwg.org/#scheme-state) +- [`"no scheme"`](https://url.spec.whatwg.org/#no-scheme-state) +- [`"special relative or authority"`](https://url.spec.whatwg.org/#special-relative-or-authority-state) +- [`"path or authority"`](https://url.spec.whatwg.org/#path-or-authority-state) +- [`"relative"`](https://url.spec.whatwg.org/#relative-state) +- [`"relative slash"`](https://url.spec.whatwg.org/#relative-slash-state) +- [`"special authority slashes"`](https://url.spec.whatwg.org/#special-authority-slashes-state) +- [`"special authority ignore slashes"`](https://url.spec.whatwg.org/#special-authority-ignore-slashes-state) +- [`"authority"`](https://url.spec.whatwg.org/#authority-state) +- [`"host"`](https://url.spec.whatwg.org/#host-state) +- [`"hostname"`](https://url.spec.whatwg.org/#hostname-state) +- [`"port"`](https://url.spec.whatwg.org/#port-state) +- [`"file"`](https://url.spec.whatwg.org/#file-state) +- [`"file slash"`](https://url.spec.whatwg.org/#file-slash-state) +- [`"file host"`](https://url.spec.whatwg.org/#file-host-state) +- [`"path start"`](https://url.spec.whatwg.org/#path-start-state) +- [`"path"`](https://url.spec.whatwg.org/#path-state) +- [`"cannot-be-a-base-URL path"`](https://url.spec.whatwg.org/#cannot-be-a-base-url-path-state) +- [`"query"`](https://url.spec.whatwg.org/#query-state) +- [`"fragment"`](https://url.spec.whatwg.org/#fragment-state) + +The URL record type has the following API: + +- [`scheme`](https://url.spec.whatwg.org/#concept-url-scheme) +- [`username`](https://url.spec.whatwg.org/#concept-url-username) +- [`password`](https://url.spec.whatwg.org/#concept-url-password) +- [`host`](https://url.spec.whatwg.org/#concept-url-host) +- [`port`](https://url.spec.whatwg.org/#concept-url-port) +- [`path`](https://url.spec.whatwg.org/#concept-url-path) (as an array) +- [`query`](https://url.spec.whatwg.org/#concept-url-query) +- [`fragment`](https://url.spec.whatwg.org/#concept-url-fragment) +- [`cannotBeABaseURL`](https://url.spec.whatwg.org/#url-cannot-be-a-base-url-flag) (as a boolean) + +These properties should be treated with care, as in general changing them will cause the URL record to be in an inconsistent state until the appropriate invocation of `basicURLParse` is used to fix it up. You can see examples of this in the URL Standard, where there are many step sequences like "4. Set context object’s url’s fragment to the empty string. 5. Basic URL parse _input_ with context object’s url as _url_ and fragment state as _state override_." In between those two steps, a URL record is in an unusable state. + +The return value of "failure" in the spec is represented by the string `"failure"`. That is, functions like `parseURL` and `basicURLParse` can return _either_ a URL record _or_ the string `"failure"`. diff --git a/node_modules/whatwg-url/lib/URL-impl.js b/node_modules/whatwg-url/lib/URL-impl.js new file mode 100644 index 0000000000000000000000000000000000000000..dc7452cc5a4429c65d4e3289a8a8c1fc425453df --- /dev/null +++ b/node_modules/whatwg-url/lib/URL-impl.js @@ -0,0 +1,200 @@ +"use strict"; +const usm = require("./url-state-machine"); + +exports.implementation = class URLImpl { + constructor(constructorArgs) { + const url = constructorArgs[0]; + const base = constructorArgs[1]; + + let parsedBase = null; + if (base !== undefined) { + parsedBase = usm.basicURLParse(base); + if (parsedBase === "failure") { + throw new TypeError("Invalid base URL"); + } + } + + const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase }); + if (parsedURL === "failure") { + throw new TypeError("Invalid URL"); + } + + this._url = parsedURL; + + // TODO: query stuff + } + + get href() { + return usm.serializeURL(this._url); + } + + set href(v) { + const parsedURL = usm.basicURLParse(v); + if (parsedURL === "failure") { + throw new TypeError("Invalid URL"); + } + + this._url = parsedURL; + } + + get origin() { + return usm.serializeURLOrigin(this._url); + } + + get protocol() { + return this._url.scheme + ":"; + } + + set protocol(v) { + usm.basicURLParse(v + ":", { url: this._url, stateOverride: "scheme start" }); + } + + get username() { + return this._url.username; + } + + set username(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + + usm.setTheUsername(this._url, v); + } + + get password() { + return this._url.password; + } + + set password(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + + usm.setThePassword(this._url, v); + } + + get host() { + const url = this._url; + + if (url.host === null) { + return ""; + } + + if (url.port === null) { + return usm.serializeHost(url.host); + } + + return usm.serializeHost(url.host) + ":" + usm.serializeInteger(url.port); + } + + set host(v) { + if (this._url.cannotBeABaseURL) { + return; + } + + usm.basicURLParse(v, { url: this._url, stateOverride: "host" }); + } + + get hostname() { + if (this._url.host === null) { + return ""; + } + + return usm.serializeHost(this._url.host); + } + + set hostname(v) { + if (this._url.cannotBeABaseURL) { + return; + } + + usm.basicURLParse(v, { url: this._url, stateOverride: "hostname" }); + } + + get port() { + if (this._url.port === null) { + return ""; + } + + return usm.serializeInteger(this._url.port); + } + + set port(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + + if (v === "") { + this._url.port = null; + } else { + usm.basicURLParse(v, { url: this._url, stateOverride: "port" }); + } + } + + get pathname() { + if (this._url.cannotBeABaseURL) { + return this._url.path[0]; + } + + if (this._url.path.length === 0) { + return ""; + } + + return "/" + this._url.path.join("/"); + } + + set pathname(v) { + if (this._url.cannotBeABaseURL) { + return; + } + + this._url.path = []; + usm.basicURLParse(v, { url: this._url, stateOverride: "path start" }); + } + + get search() { + if (this._url.query === null || this._url.query === "") { + return ""; + } + + return "?" + this._url.query; + } + + set search(v) { + // TODO: query stuff + + const url = this._url; + + if (v === "") { + url.query = null; + return; + } + + const input = v[0] === "?" ? v.substring(1) : v; + url.query = ""; + usm.basicURLParse(input, { url, stateOverride: "query" }); + } + + get hash() { + if (this._url.fragment === null || this._url.fragment === "") { + return ""; + } + + return "#" + this._url.fragment; + } + + set hash(v) { + if (v === "") { + this._url.fragment = null; + return; + } + + const input = v[0] === "#" ? v.substring(1) : v; + this._url.fragment = ""; + usm.basicURLParse(input, { url: this._url, stateOverride: "fragment" }); + } + + toJSON() { + return this.href; + } +}; diff --git a/node_modules/whatwg-url/lib/URL.js b/node_modules/whatwg-url/lib/URL.js new file mode 100644 index 0000000000000000000000000000000000000000..78c7207ef4d11bf6d9f11d673e45b09c706fe4a0 --- /dev/null +++ b/node_modules/whatwg-url/lib/URL.js @@ -0,0 +1,196 @@ +"use strict"; + +const conversions = require("webidl-conversions"); +const utils = require("./utils.js"); +const Impl = require(".//URL-impl.js"); + +const impl = utils.implSymbol; + +function URL(url) { + if (!this || this[impl] || !(this instanceof URL)) { + throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function."); + } + if (arguments.length < 1) { + throw new TypeError("Failed to construct 'URL': 1 argument required, but only " + arguments.length + " present."); + } + const args = []; + for (let i = 0; i < arguments.length && i < 2; ++i) { + args[i] = arguments[i]; + } + args[0] = conversions["USVString"](args[0]); + if (args[1] !== undefined) { + args[1] = conversions["USVString"](args[1]); + } + + module.exports.setup(this, args); +} + +URL.prototype.toJSON = function toJSON() { + if (!this || !module.exports.is(this)) { + throw new TypeError("Illegal invocation"); + } + const args = []; + for (let i = 0; i < arguments.length && i < 0; ++i) { + args[i] = arguments[i]; + } + return this[impl].toJSON.apply(this[impl], args); +}; +Object.defineProperty(URL.prototype, "href", { + get() { + return this[impl].href; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].href = V; + }, + enumerable: true, + configurable: true +}); + +URL.prototype.toString = function () { + if (!this || !module.exports.is(this)) { + throw new TypeError("Illegal invocation"); + } + return this.href; +}; + +Object.defineProperty(URL.prototype, "origin", { + get() { + return this[impl].origin; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "protocol", { + get() { + return this[impl].protocol; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].protocol = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "username", { + get() { + return this[impl].username; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].username = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "password", { + get() { + return this[impl].password; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].password = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "host", { + get() { + return this[impl].host; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].host = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "hostname", { + get() { + return this[impl].hostname; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].hostname = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "port", { + get() { + return this[impl].port; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].port = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "pathname", { + get() { + return this[impl].pathname; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].pathname = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "search", { + get() { + return this[impl].search; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].search = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "hash", { + get() { + return this[impl].hash; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].hash = V; + }, + enumerable: true, + configurable: true +}); + + +module.exports = { + is(obj) { + return !!obj && obj[impl] instanceof Impl.implementation; + }, + create(constructorArgs, privateData) { + let obj = Object.create(URL.prototype); + this.setup(obj, constructorArgs, privateData); + return obj; + }, + setup(obj, constructorArgs, privateData) { + if (!privateData) privateData = {}; + privateData.wrapper = obj; + + obj[impl] = new Impl.implementation(constructorArgs, privateData); + obj[impl][utils.wrapperSymbol] = obj; + }, + interface: URL, + expose: { + Window: { URL: URL }, + Worker: { URL: URL } + } +}; + diff --git a/node_modules/whatwg-url/lib/public-api.js b/node_modules/whatwg-url/lib/public-api.js new file mode 100644 index 0000000000000000000000000000000000000000..932dcada4bd4f19dc190bbd6e0742bb84f76f5cf --- /dev/null +++ b/node_modules/whatwg-url/lib/public-api.js @@ -0,0 +1,11 @@ +"use strict"; + +exports.URL = require("./URL").interface; +exports.serializeURL = require("./url-state-machine").serializeURL; +exports.serializeURLOrigin = require("./url-state-machine").serializeURLOrigin; +exports.basicURLParse = require("./url-state-machine").basicURLParse; +exports.setTheUsername = require("./url-state-machine").setTheUsername; +exports.setThePassword = require("./url-state-machine").setThePassword; +exports.serializeHost = require("./url-state-machine").serializeHost; +exports.serializeInteger = require("./url-state-machine").serializeInteger; +exports.parseURL = require("./url-state-machine").parseURL; diff --git a/node_modules/whatwg-url/lib/url-state-machine.js b/node_modules/whatwg-url/lib/url-state-machine.js new file mode 100644 index 0000000000000000000000000000000000000000..27d977a25f9011fc31ed28c17ba11f729b85edea --- /dev/null +++ b/node_modules/whatwg-url/lib/url-state-machine.js @@ -0,0 +1,1297 @@ +"use strict"; +const punycode = require("punycode"); +const tr46 = require("tr46"); + +const specialSchemes = { + ftp: 21, + file: null, + gopher: 70, + http: 80, + https: 443, + ws: 80, + wss: 443 +}; + +const failure = Symbol("failure"); + +function countSymbols(str) { + return punycode.ucs2.decode(str).length; +} + +function at(input, idx) { + const c = input[idx]; + return isNaN(c) ? undefined : String.fromCodePoint(c); +} + +function isASCIIDigit(c) { + return c >= 0x30 && c <= 0x39; +} + +function isASCIIAlpha(c) { + return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A); +} + +function isASCIIAlphanumeric(c) { + return isASCIIAlpha(c) || isASCIIDigit(c); +} + +function isASCIIHex(c) { + return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66); +} + +function isSingleDot(buffer) { + return buffer === "." || buffer.toLowerCase() === "%2e"; +} + +function isDoubleDot(buffer) { + buffer = buffer.toLowerCase(); + return buffer === ".." || buffer === "%2e." || buffer === ".%2e" || buffer === "%2e%2e"; +} + +function isWindowsDriveLetterCodePoints(cp1, cp2) { + return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124); +} + +function isWindowsDriveLetterString(string) { + return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === ":" || string[1] === "|"); +} + +function isNormalizedWindowsDriveLetterString(string) { + return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === ":"; +} + +function containsForbiddenHostCodePoint(string) { + return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/) !== -1; +} + +function containsForbiddenHostCodePointExcludingPercent(string) { + return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/) !== -1; +} + +function isSpecialScheme(scheme) { + return specialSchemes[scheme] !== undefined; +} + +function isSpecial(url) { + return isSpecialScheme(url.scheme); +} + +function defaultPort(scheme) { + return specialSchemes[scheme]; +} + +function percentEncode(c) { + let hex = c.toString(16).toUpperCase(); + if (hex.length === 1) { + hex = "0" + hex; + } + + return "%" + hex; +} + +function utf8PercentEncode(c) { + const buf = new Buffer(c); + + let str = ""; + + for (let i = 0; i < buf.length; ++i) { + str += percentEncode(buf[i]); + } + + return str; +} + +function utf8PercentDecode(str) { + const input = new Buffer(str); + const output = []; + for (let i = 0; i < input.length; ++i) { + if (input[i] !== 37) { + output.push(input[i]); + } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) { + output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16)); + i += 2; + } else { + output.push(input[i]); + } + } + return new Buffer(output).toString(); +} + +function isC0ControlPercentEncode(c) { + return c <= 0x1F || c > 0x7E; +} + +const extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]); +function isPathPercentEncode(c) { + return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c); +} + +const extraUserinfoPercentEncodeSet = + new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]); +function isUserinfoPercentEncode(c) { + return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c); +} + +function percentEncodeChar(c, encodeSetPredicate) { + const cStr = String.fromCodePoint(c); + + if (encodeSetPredicate(c)) { + return utf8PercentEncode(cStr); + } + + return cStr; +} + +function parseIPv4Number(input) { + let R = 10; + + if (input.length >= 2 && input.charAt(0) === "0" && input.charAt(1).toLowerCase() === "x") { + input = input.substring(2); + R = 16; + } else if (input.length >= 2 && input.charAt(0) === "0") { + input = input.substring(1); + R = 8; + } + + if (input === "") { + return 0; + } + + const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/); + if (regex.test(input)) { + return failure; + } + + return parseInt(input, R); +} + +function parseIPv4(input) { + const parts = input.split("."); + if (parts[parts.length - 1] === "") { + if (parts.length > 1) { + parts.pop(); + } + } + + if (parts.length > 4) { + return input; + } + + const numbers = []; + for (const part of parts) { + if (part === "") { + return input; + } + const n = parseIPv4Number(part); + if (n === failure) { + return input; + } + + numbers.push(n); + } + + for (let i = 0; i < numbers.length - 1; ++i) { + if (numbers[i] > 255) { + return failure; + } + } + if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) { + return failure; + } + + let ipv4 = numbers.pop(); + let counter = 0; + + for (const n of numbers) { + ipv4 += n * Math.pow(256, 3 - counter); + ++counter; + } + + return ipv4; +} + +function serializeIPv4(address) { + let output = ""; + let n = address; + + for (let i = 1; i <= 4; ++i) { + output = String(n % 256) + output; + if (i !== 4) { + output = "." + output; + } + n = Math.floor(n / 256); + } + + return output; +} + +function parseIPv6(input) { + const address = [0, 0, 0, 0, 0, 0, 0, 0]; + let pieceIndex = 0; + let compress = null; + let pointer = 0; + + input = punycode.ucs2.decode(input); + + if (input[pointer] === 58) { + if (input[pointer + 1] !== 58) { + return failure; + } + + pointer += 2; + ++pieceIndex; + compress = pieceIndex; + } + + while (pointer < input.length) { + if (pieceIndex === 8) { + return failure; + } + + if (input[pointer] === 58) { + if (compress !== null) { + return failure; + } + ++pointer; + ++pieceIndex; + compress = pieceIndex; + continue; + } + + let value = 0; + let length = 0; + + while (length < 4 && isASCIIHex(input[pointer])) { + value = value * 0x10 + parseInt(at(input, pointer), 16); + ++pointer; + ++length; + } + + if (input[pointer] === 46) { + if (length === 0) { + return failure; + } + + pointer -= length; + + if (pieceIndex > 6) { + return failure; + } + + let numbersSeen = 0; + + while (input[pointer] !== undefined) { + let ipv4Piece = null; + + if (numbersSeen > 0) { + if (input[pointer] === 46 && numbersSeen < 4) { + ++pointer; + } else { + return failure; + } + } + + if (!isASCIIDigit(input[pointer])) { + return failure; + } + + while (isASCIIDigit(input[pointer])) { + const number = parseInt(at(input, pointer)); + if (ipv4Piece === null) { + ipv4Piece = number; + } else if (ipv4Piece === 0) { + return failure; + } else { + ipv4Piece = ipv4Piece * 10 + number; + } + if (ipv4Piece > 255) { + return failure; + } + ++pointer; + } + + address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece; + + ++numbersSeen; + + if (numbersSeen === 2 || numbersSeen === 4) { + ++pieceIndex; + } + } + + if (numbersSeen !== 4) { + return failure; + } + + break; + } else if (input[pointer] === 58) { + ++pointer; + if (input[pointer] === undefined) { + return failure; + } + } else if (input[pointer] !== undefined) { + return failure; + } + + address[pieceIndex] = value; + ++pieceIndex; + } + + if (compress !== null) { + let swaps = pieceIndex - compress; + pieceIndex = 7; + while (pieceIndex !== 0 && swaps > 0) { + const temp = address[compress + swaps - 1]; + address[compress + swaps - 1] = address[pieceIndex]; + address[pieceIndex] = temp; + --pieceIndex; + --swaps; + } + } else if (compress === null && pieceIndex !== 8) { + return failure; + } + + return address; +} + +function serializeIPv6(address) { + let output = ""; + const seqResult = findLongestZeroSequence(address); + const compress = seqResult.idx; + let ignore0 = false; + + for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) { + if (ignore0 && address[pieceIndex] === 0) { + continue; + } else if (ignore0) { + ignore0 = false; + } + + if (compress === pieceIndex) { + const separator = pieceIndex === 0 ? "::" : ":"; + output += separator; + ignore0 = true; + continue; + } + + output += address[pieceIndex].toString(16); + + if (pieceIndex !== 7) { + output += ":"; + } + } + + return output; +} + +function parseHost(input, isSpecialArg) { + if (input[0] === "[") { + if (input[input.length - 1] !== "]") { + return failure; + } + + return parseIPv6(input.substring(1, input.length - 1)); + } + + if (!isSpecialArg) { + return parseOpaqueHost(input); + } + + const domain = utf8PercentDecode(input); + const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false); + if (asciiDomain === null) { + return failure; + } + + if (containsForbiddenHostCodePoint(asciiDomain)) { + return failure; + } + + const ipv4Host = parseIPv4(asciiDomain); + if (typeof ipv4Host === "number" || ipv4Host === failure) { + return ipv4Host; + } + + return asciiDomain; +} + +function parseOpaqueHost(input) { + if (containsForbiddenHostCodePointExcludingPercent(input)) { + return failure; + } + + let output = ""; + const decoded = punycode.ucs2.decode(input); + for (let i = 0; i < decoded.length; ++i) { + output += percentEncodeChar(decoded[i], isC0ControlPercentEncode); + } + return output; +} + +function findLongestZeroSequence(arr) { + let maxIdx = null; + let maxLen = 1; // only find elements > 1 + let currStart = null; + let currLen = 0; + + for (let i = 0; i < arr.length; ++i) { + if (arr[i] !== 0) { + if (currLen > maxLen) { + maxIdx = currStart; + maxLen = currLen; + } + + currStart = null; + currLen = 0; + } else { + if (currStart === null) { + currStart = i; + } + ++currLen; + } + } + + // if trailing zeros + if (currLen > maxLen) { + maxIdx = currStart; + maxLen = currLen; + } + + return { + idx: maxIdx, + len: maxLen + }; +} + +function serializeHost(host) { + if (typeof host === "number") { + return serializeIPv4(host); + } + + // IPv6 serializer + if (host instanceof Array) { + return "[" + serializeIPv6(host) + "]"; + } + + return host; +} + +function trimControlChars(url) { + return url.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g, ""); +} + +function trimTabAndNewline(url) { + return url.replace(/\u0009|\u000A|\u000D/g, ""); +} + +function shortenPath(url) { + const path = url.path; + if (path.length === 0) { + return; + } + if (url.scheme === "file" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) { + return; + } + + path.pop(); +} + +function includesCredentials(url) { + return url.username !== "" || url.password !== ""; +} + +function cannotHaveAUsernamePasswordPort(url) { + return url.host === null || url.host === "" || url.cannotBeABaseURL || url.scheme === "file"; +} + +function isNormalizedWindowsDriveLetter(string) { + return /^[A-Za-z]:$/.test(string); +} + +function URLStateMachine(input, base, encodingOverride, url, stateOverride) { + this.pointer = 0; + this.input = input; + this.base = base || null; + this.encodingOverride = encodingOverride || "utf-8"; + this.stateOverride = stateOverride; + this.url = url; + this.failure = false; + this.parseError = false; + + if (!this.url) { + this.url = { + scheme: "", + username: "", + password: "", + host: null, + port: null, + path: [], + query: null, + fragment: null, + + cannotBeABaseURL: false + }; + + const res = trimControlChars(this.input); + if (res !== this.input) { + this.parseError = true; + } + this.input = res; + } + + const res = trimTabAndNewline(this.input); + if (res !== this.input) { + this.parseError = true; + } + this.input = res; + + this.state = stateOverride || "scheme start"; + + this.buffer = ""; + this.atFlag = false; + this.arrFlag = false; + this.passwordTokenSeenFlag = false; + + this.input = punycode.ucs2.decode(this.input); + + for (; this.pointer <= this.input.length; ++this.pointer) { + const c = this.input[this.pointer]; + const cStr = isNaN(c) ? undefined : String.fromCodePoint(c); + + // exec state machine + const ret = this["parse " + this.state](c, cStr); + if (!ret) { + break; // terminate algorithm + } else if (ret === failure) { + this.failure = true; + break; + } + } +} + +URLStateMachine.prototype["parse scheme start"] = function parseSchemeStart(c, cStr) { + if (isASCIIAlpha(c)) { + this.buffer += cStr.toLowerCase(); + this.state = "scheme"; + } else if (!this.stateOverride) { + this.state = "no scheme"; + --this.pointer; + } else { + this.parseError = true; + return failure; + } + + return true; +}; + +URLStateMachine.prototype["parse scheme"] = function parseScheme(c, cStr) { + if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) { + this.buffer += cStr.toLowerCase(); + } else if (c === 58) { + if (this.stateOverride) { + if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) { + return false; + } + + if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) { + return false; + } + + if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === "file") { + return false; + } + + if (this.url.scheme === "file" && (this.url.host === "" || this.url.host === null)) { + return false; + } + } + this.url.scheme = this.buffer; + this.buffer = ""; + if (this.stateOverride) { + return false; + } + if (this.url.scheme === "file") { + if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) { + this.parseError = true; + } + this.state = "file"; + } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) { + this.state = "special relative or authority"; + } else if (isSpecial(this.url)) { + this.state = "special authority slashes"; + } else if (this.input[this.pointer + 1] === 47) { + this.state = "path or authority"; + ++this.pointer; + } else { + this.url.cannotBeABaseURL = true; + this.url.path.push(""); + this.state = "cannot-be-a-base-URL path"; + } + } else if (!this.stateOverride) { + this.buffer = ""; + this.state = "no scheme"; + this.pointer = -1; + } else { + this.parseError = true; + return failure; + } + + return true; +}; + +URLStateMachine.prototype["parse no scheme"] = function parseNoScheme(c) { + if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) { + return failure; + } else if (this.base.cannotBeABaseURL && c === 35) { + this.url.scheme = this.base.scheme; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.url.cannotBeABaseURL = true; + this.state = "fragment"; + } else if (this.base.scheme === "file") { + this.state = "file"; + --this.pointer; + } else { + this.state = "relative"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse special relative or authority"] = function parseSpecialRelativeOrAuthority(c) { + if (c === 47 && this.input[this.pointer + 1] === 47) { + this.state = "special authority ignore slashes"; + ++this.pointer; + } else { + this.parseError = true; + this.state = "relative"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse path or authority"] = function parsePathOrAuthority(c) { + if (c === 47) { + this.state = "authority"; + } else { + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse relative"] = function parseRelative(c) { + this.url.scheme = this.base.scheme; + if (isNaN(c)) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + } else if (c === 47) { + this.state = "relative slash"; + } else if (c === 63) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.state = "fragment"; + } else if (isSpecial(this.url) && c === 92) { + this.parseError = true; + this.state = "relative slash"; + } else { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(0, this.base.path.length - 1); + + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse relative slash"] = function parseRelativeSlash(c) { + if (isSpecial(this.url) && (c === 47 || c === 92)) { + if (c === 92) { + this.parseError = true; + } + this.state = "special authority ignore slashes"; + } else if (c === 47) { + this.state = "authority"; + } else { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse special authority slashes"] = function parseSpecialAuthoritySlashes(c) { + if (c === 47 && this.input[this.pointer + 1] === 47) { + this.state = "special authority ignore slashes"; + ++this.pointer; + } else { + this.parseError = true; + this.state = "special authority ignore slashes"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse special authority ignore slashes"] = function parseSpecialAuthorityIgnoreSlashes(c) { + if (c !== 47 && c !== 92) { + this.state = "authority"; + --this.pointer; + } else { + this.parseError = true; + } + + return true; +}; + +URLStateMachine.prototype["parse authority"] = function parseAuthority(c, cStr) { + if (c === 64) { + this.parseError = true; + if (this.atFlag) { + this.buffer = "%40" + this.buffer; + } + this.atFlag = true; + + // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars + const len = countSymbols(this.buffer); + for (let pointer = 0; pointer < len; ++pointer) { + const codePoint = this.buffer.codePointAt(pointer); + + if (codePoint === 58 && !this.passwordTokenSeenFlag) { + this.passwordTokenSeenFlag = true; + continue; + } + const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode); + if (this.passwordTokenSeenFlag) { + this.url.password += encodedCodePoints; + } else { + this.url.username += encodedCodePoints; + } + } + this.buffer = ""; + } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || + (isSpecial(this.url) && c === 92)) { + if (this.atFlag && this.buffer === "") { + this.parseError = true; + return failure; + } + this.pointer -= countSymbols(this.buffer) + 1; + this.buffer = ""; + this.state = "host"; + } else { + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse hostname"] = +URLStateMachine.prototype["parse host"] = function parseHostName(c, cStr) { + if (this.stateOverride && this.url.scheme === "file") { + --this.pointer; + this.state = "file host"; + } else if (c === 58 && !this.arrFlag) { + if (this.buffer === "") { + this.parseError = true; + return failure; + } + + const host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + + this.url.host = host; + this.buffer = ""; + this.state = "port"; + if (this.stateOverride === "hostname") { + return false; + } + } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || + (isSpecial(this.url) && c === 92)) { + --this.pointer; + if (isSpecial(this.url) && this.buffer === "") { + this.parseError = true; + return failure; + } else if (this.stateOverride && this.buffer === "" && + (includesCredentials(this.url) || this.url.port !== null)) { + this.parseError = true; + return false; + } + + const host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + + this.url.host = host; + this.buffer = ""; + this.state = "path start"; + if (this.stateOverride) { + return false; + } + } else { + if (c === 91) { + this.arrFlag = true; + } else if (c === 93) { + this.arrFlag = false; + } + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse port"] = function parsePort(c, cStr) { + if (isASCIIDigit(c)) { + this.buffer += cStr; + } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || + (isSpecial(this.url) && c === 92) || + this.stateOverride) { + if (this.buffer !== "") { + const port = parseInt(this.buffer); + if (port > Math.pow(2, 16) - 1) { + this.parseError = true; + return failure; + } + this.url.port = port === defaultPort(this.url.scheme) ? null : port; + this.buffer = ""; + } + if (this.stateOverride) { + return false; + } + this.state = "path start"; + --this.pointer; + } else { + this.parseError = true; + return failure; + } + + return true; +}; + +const fileOtherwiseCodePoints = new Set([47, 92, 63, 35]); + +URLStateMachine.prototype["parse file"] = function parseFile(c) { + this.url.scheme = "file"; + + if (c === 47 || c === 92) { + if (c === 92) { + this.parseError = true; + } + this.state = "file slash"; + } else if (this.base !== null && this.base.scheme === "file") { + if (isNaN(c)) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + } else if (c === 63) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.state = "fragment"; + } else { + if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points + !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) || + (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points + !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + shortenPath(this.url); + } else { + this.parseError = true; + } + + this.state = "path"; + --this.pointer; + } + } else { + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse file slash"] = function parseFileSlash(c) { + if (c === 47 || c === 92) { + if (c === 92) { + this.parseError = true; + } + this.state = "file host"; + } else { + if (this.base !== null && this.base.scheme === "file") { + if (isNormalizedWindowsDriveLetterString(this.base.path[0])) { + this.url.path.push(this.base.path[0]); + } else { + this.url.host = this.base.host; + } + } + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse file host"] = function parseFileHost(c, cStr) { + if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) { + --this.pointer; + if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) { + this.parseError = true; + this.state = "path"; + } else if (this.buffer === "") { + this.url.host = ""; + if (this.stateOverride) { + return false; + } + this.state = "path start"; + } else { + let host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + if (host === "localhost") { + host = ""; + } + this.url.host = host; + + if (this.stateOverride) { + return false; + } + + this.buffer = ""; + this.state = "path start"; + } + } else { + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse path start"] = function parsePathStart(c) { + if (isSpecial(this.url)) { + if (c === 92) { + this.parseError = true; + } + this.state = "path"; + + if (c !== 47 && c !== 92) { + --this.pointer; + } + } else if (!this.stateOverride && c === 63) { + this.url.query = ""; + this.state = "query"; + } else if (!this.stateOverride && c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } else if (c !== undefined) { + this.state = "path"; + if (c !== 47) { + --this.pointer; + } + } + + return true; +}; + +URLStateMachine.prototype["parse path"] = function parsePath(c) { + if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) || + (!this.stateOverride && (c === 63 || c === 35))) { + if (isSpecial(this.url) && c === 92) { + this.parseError = true; + } + + if (isDoubleDot(this.buffer)) { + shortenPath(this.url); + if (c !== 47 && !(isSpecial(this.url) && c === 92)) { + this.url.path.push(""); + } + } else if (isSingleDot(this.buffer) && c !== 47 && + !(isSpecial(this.url) && c === 92)) { + this.url.path.push(""); + } else if (!isSingleDot(this.buffer)) { + if (this.url.scheme === "file" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) { + if (this.url.host !== "" && this.url.host !== null) { + this.parseError = true; + this.url.host = ""; + } + this.buffer = this.buffer[0] + ":"; + } + this.url.path.push(this.buffer); + } + this.buffer = ""; + if (this.url.scheme === "file" && (c === undefined || c === 63 || c === 35)) { + while (this.url.path.length > 1 && this.url.path[0] === "") { + this.parseError = true; + this.url.path.shift(); + } + } + if (c === 63) { + this.url.query = ""; + this.state = "query"; + } + if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } + } else { + // TODO: If c is not a URL code point and not "%", parse error. + + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + this.buffer += percentEncodeChar(c, isPathPercentEncode); + } + + return true; +}; + +URLStateMachine.prototype["parse cannot-be-a-base-URL path"] = function parseCannotBeABaseURLPath(c) { + if (c === 63) { + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } else { + // TODO: Add: not a URL code point + if (!isNaN(c) && c !== 37) { + this.parseError = true; + } + + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + if (!isNaN(c)) { + this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode); + } + } + + return true; +}; + +URLStateMachine.prototype["parse query"] = function parseQuery(c, cStr) { + if (isNaN(c) || (!this.stateOverride && c === 35)) { + if (!isSpecial(this.url) || this.url.scheme === "ws" || this.url.scheme === "wss") { + this.encodingOverride = "utf-8"; + } + + const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead + for (let i = 0; i < buffer.length; ++i) { + if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 || + buffer[i] === 0x3C || buffer[i] === 0x3E) { + this.url.query += percentEncode(buffer[i]); + } else { + this.url.query += String.fromCodePoint(buffer[i]); + } + } + + this.buffer = ""; + if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } + } else { + // TODO: If c is not a URL code point and not "%", parse error. + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse fragment"] = function parseFragment(c) { + if (isNaN(c)) { // do nothing + } else if (c === 0x0) { + this.parseError = true; + } else { + // TODO: If c is not a URL code point and not "%", parse error. + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode); + } + + return true; +}; + +function serializeURL(url, excludeFragment) { + let output = url.scheme + ":"; + if (url.host !== null) { + output += "//"; + + if (url.username !== "" || url.password !== "") { + output += url.username; + if (url.password !== "") { + output += ":" + url.password; + } + output += "@"; + } + + output += serializeHost(url.host); + + if (url.port !== null) { + output += ":" + url.port; + } + } else if (url.host === null && url.scheme === "file") { + output += "//"; + } + + if (url.cannotBeABaseURL) { + output += url.path[0]; + } else { + for (const string of url.path) { + output += "/" + string; + } + } + + if (url.query !== null) { + output += "?" + url.query; + } + + if (!excludeFragment && url.fragment !== null) { + output += "#" + url.fragment; + } + + return output; +} + +function serializeOrigin(tuple) { + let result = tuple.scheme + "://"; + result += serializeHost(tuple.host); + + if (tuple.port !== null) { + result += ":" + tuple.port; + } + + return result; +} + +module.exports.serializeURL = serializeURL; + +module.exports.serializeURLOrigin = function (url) { + // https://url.spec.whatwg.org/#concept-url-origin + switch (url.scheme) { + case "blob": + try { + return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0])); + } catch (e) { + // serializing an opaque origin returns "null" + return "null"; + } + case "ftp": + case "gopher": + case "http": + case "https": + case "ws": + case "wss": + return serializeOrigin({ + scheme: url.scheme, + host: url.host, + port: url.port + }); + case "file": + // spec says "exercise to the reader", chrome says "file://" + return "file://"; + default: + // serializing an opaque origin returns "null" + return "null"; + } +}; + +module.exports.basicURLParse = function (input, options) { + if (options === undefined) { + options = {}; + } + + const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride); + if (usm.failure) { + return "failure"; + } + + return usm.url; +}; + +module.exports.setTheUsername = function (url, username) { + url.username = ""; + const decoded = punycode.ucs2.decode(username); + for (let i = 0; i < decoded.length; ++i) { + url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } +}; + +module.exports.setThePassword = function (url, password) { + url.password = ""; + const decoded = punycode.ucs2.decode(password); + for (let i = 0; i < decoded.length; ++i) { + url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } +}; + +module.exports.serializeHost = serializeHost; + +module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort; + +module.exports.serializeInteger = function (integer) { + return String(integer); +}; + +module.exports.parseURL = function (input, options) { + if (options === undefined) { + options = {}; + } + + // We don't handle blobs, so this just delegates: + return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride }); +}; diff --git a/node_modules/whatwg-url/lib/utils.js b/node_modules/whatwg-url/lib/utils.js new file mode 100644 index 0000000000000000000000000000000000000000..a562009c8c8772623a89c074a518cdf636fd87d5 --- /dev/null +++ b/node_modules/whatwg-url/lib/utils.js @@ -0,0 +1,20 @@ +"use strict"; + +module.exports.mixin = function mixin(target, source) { + const keys = Object.getOwnPropertyNames(source); + for (let i = 0; i < keys.length; ++i) { + Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i])); + } +}; + +module.exports.wrapperSymbol = Symbol("wrapper"); +module.exports.implSymbol = Symbol("impl"); + +module.exports.wrapperForImpl = function (impl) { + return impl[module.exports.wrapperSymbol]; +}; + +module.exports.implForWrapper = function (wrapper) { + return wrapper[module.exports.implSymbol]; +}; + diff --git a/node_modules/whatwg-url/package.json b/node_modules/whatwg-url/package.json new file mode 100644 index 0000000000000000000000000000000000000000..586c8574d23dfad30345783489e4d45ac420b553 --- /dev/null +++ b/node_modules/whatwg-url/package.json @@ -0,0 +1,67 @@ +{ + "_from": "whatwg-url@^5.0.0", + "_id": "whatwg-url@5.0.0", + "_inBundle": false, + "_integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "_location": "/whatwg-url", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "whatwg-url@^5.0.0", + "name": "whatwg-url", + "escapedName": "whatwg-url", + "rawSpec": "^5.0.0", + "saveSpec": null, + "fetchSpec": "^5.0.0" + }, + "_requiredBy": [ + "/node-fetch" + ], + "_resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "_shasum": "966454e8765462e37644d3626f6742ce8b70965d", + "_spec": "whatwg-url@^5.0.0", + "_where": "C:\\Users\\lenovo\\TSA\\node_modules\\node-fetch", + "author": { + "name": "Sebastian Mayr", + "email": "github@smayr.name" + }, + "bugs": { + "url": "https://github.com/jsdom/whatwg-url/issues" + }, + "bundleDependencies": false, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + }, + "deprecated": false, + "description": "An implementation of the WHATWG URL Standard's URL API and parsing machinery", + "devDependencies": { + "eslint": "^2.6.0", + "istanbul": "~0.4.3", + "mocha": "^2.2.4", + "recast": "~0.10.29", + "request": "^2.55.0", + "webidl2js": "^3.0.2" + }, + "files": [ + "lib/" + ], + "homepage": "https://github.com/jsdom/whatwg-url#readme", + "license": "MIT", + "main": "lib/public-api.js", + "name": "whatwg-url", + "repository": { + "type": "git", + "url": "git+https://github.com/jsdom/whatwg-url.git" + }, + "scripts": { + "build": "node scripts/transform.js && node scripts/convert-idl.js", + "coverage": "istanbul cover node_modules/mocha/bin/_mocha", + "lint": "eslint .", + "prepublish": "npm run build", + "pretest": "node scripts/get-latest-platform-tests.js && npm run build", + "test": "mocha" + }, + "version": "5.0.0" +} diff --git a/pilecaps_adr.py b/pilecaps_adr.py new file mode 100644 index 0000000000000000000000000000000000000000..808a77e7a7146d6cae4f8cf7231912d32b2accc8 --- /dev/null +++ b/pilecaps_adr.py @@ -0,0 +1,1187 @@ +# -*- coding: utf-8 -*- +"""Copy of XOR- ROI from plan-PileCaps-ADR.ipynb + +Automatically generated by Colaboratory. + +Original file is located at + https://colab.research.google.com/drive/16RHtRae7VU_fqHMAjOUL4ET5slEFo3pf +""" + +# pip install pdf-annotate + +# pip install pdf-annotate + +#pip install pdf2image + +#!pip install -q gradio + +#pip install pygsheets + +# !apt-get install poppler-utils + +import numpy as np +import cv2 +#from google.colab.patches import cv2_imshow +from matplotlib import pyplot as plt +#from pdf2image import convert_from_path + +import math + +import pandas as pd +import random +# import imutils +# from imutils import contours +import colorsys +from PIL import Image , ImageDraw, ImageFont , ImageColor +import numpy as np +#import gradio as gr + +# from __future__ import print_function +from googleapiclient.discovery import build +from google.oauth2 import service_account +import pygsheets +import re +import pandas +#import openpyxl + +#from google.colab import drive +#drive.mount('/content/drive') + +#pip install pymupdf -q + +#path='/content/drive/MyDrive/Colab Notebooks/Pile caps plans/13886-B3-NO_TEXT.pdf' +# images = convert_from_path(path) +# # images = convert_from_path('/content/drive/MyDrive/Colab Notebooks/pile caps.pdf') + + +# for i in range(len(images)): + +# # Save pages as images in the pdf +# images[i].save('page'+ str(i) +'.jpg', 'JPEG') + +# img = cv2.imread('/content/page0.jpg') #RBG format +# cv2_imshow(img) +# img.shape + +# import fitz + +# doc = fitz.open(path) +# for page in doc: +# pix = page.get_pixmap(dpi=200) # render page to an image +# pl=Image.frombytes('RGB', [pix.width,pix.height],pix.samples) +# img=np.array(pl) +# img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR) +# # newi=np.array(img1) +# img.shape + +def detectCircles(imgOriginal ): + im=imgOriginal.copy() + imgGry1 = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY) + kernel=np.ones((3,3),np.uint8) + er1=cv2.erode(imgGry1,kernel, iterations=2) + + er1=cv2.dilate(er1,kernel, iterations=1) + gray_blurred = cv2.blur(er1, (3,3 )) + # Apply Hough transform on the blurred image. + # min distance between circles, Upper threshold for the internal Canny edge detector. + detected_circles = cv2.HoughCircles( gray_blurred, cv2.HOUGH_GRADIENT, 1, 50, param1= 550, + param2 =21, minRadius = 20, maxRadius = 40) #18 param2 + + # Draw circles that are detected. + if detected_circles is not None: + # Convert the circle parameters a, b and r to integers. + detected_circles = np.uint16(np.around(detected_circles)) + detected_circles = np.round(detected_circles[0, :]).astype("int") + #DRAW CIRCLES + for (x, y, r) in detected_circles: + cv2.circle(im, (x, y), r, (255, 255, 255), 5) + im=cv2.medianBlur(im,1) + print('circles') + # cv2_imshow(im) + return im + +def detectSmallCircles(img ): + #Remove tiny TOC points that interfere with shapes + im=img.copy() + imgGry1 = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY) + kernel=np.ones((3,3),np.uint8) + er1=cv2.erode(imgGry1,kernel, iterations=1) + # Apply Hough transform on the blurred image. + # min distance between circles, Upper threshold for the internal Canny edge detector. + detected_circles = cv2.HoughCircles( imgGry1, cv2.HOUGH_GRADIENT, 1, 60, param1 =550, + param2 =13, minRadius = 1, maxRadius = 10) #18 param2 + + # Draw circles that are detected. + if detected_circles is not None: + # Convert the circle parameters a, b and r to integers. + detected_circles = np.uint16(np.around(detected_circles)) + detected_circles = np.round(detected_circles[0, :]).astype("int") + #DRAW CIRCLES + for (x, y, r) in detected_circles: + cv2.circle(im, (x, y), r+1, (255, 255, 255), -1) + # cv2_imshow(im) + return im +# c=detectCircles(img) + +def DashedPreprocessing(imgOriginal,imgnoSmall): + h,w=imgOriginal.shape[0:2] + #remove the gray contours from the plan + imgBW=cv2.threshold(imgnoSmall, 180, 255, cv2.THRESH_BINARY)[1] + + im_copy=imgBW.copy() + im_copy1=im_copy + kernel1 = np.ones((3,5),np.uint8) + kernel2 = np.ones((9,9),np.uint8) + kernel3= np.ones((3,3),np.uint8) + imgGray=cv2.cvtColor(imgBW,cv2.COLOR_BGR2GRAY) + imgBW1=cv2.threshold(imgGray, 200, 255, cv2.THRESH_BINARY_INV)[1] + + img1=cv2.erode(imgBW1, kernel1, iterations=1) + img2=cv2.dilate(img1, kernel2, iterations=3) + img3 = cv2.bitwise_and(imgBW1,img2) + img3= cv2.bitwise_not(img3) + img4 = cv2.bitwise_and(imgBW1,imgBW1,mask=img3) + img4=cv2.blur(img4,(7,7)) + if h > w : + max = h + min = w + else: + max = w + min = h + return img4, imgBW, max,min + +def removeDashedLines(img4, imgBW ,max,min): + + imgLines= cv2.HoughLinesP(img4,1,np.pi/310,30,minLineLength=(max-min)//1.8,maxLineGap = 120) #was w-h , gap=150 0.99 +#1 120 + + for i in range(len(imgLines)): + for x1,y1,x2,y2 in imgLines[i]: + cv2.line(imgBW,(x1,y1),(x2,y2),(0,255,0),2) + + im_copy=imgBW.copy() + green=im_copy[:,:,1] + # cv2_imshow(im_copy) + return green + +def removeSmallDashes(imgOriginal,green): + smalldashes=green.copy() + smalldashes=cv2.bitwise_not(smalldashes) + + kernel3= np.ones((3,3),np.uint8) + + img1=cv2.dilate(smalldashes, kernel3, iterations=2) + img2=cv2.erode(img1, kernel3, iterations=2) + + smalldashes=cv2.medianBlur(img2,5) + smalldashes=cv2.medianBlur(smalldashes,7) + # cv2_imshow(smalldashes) + smalldashesOut=green.copy() + smalldashesOut=cv2.cvtColor(smalldashesOut,cv2.COLOR_GRAY2BGR) + imgLines= cv2.HoughLinesP(smalldashes,1,np.pi/150,27,minLineLength=10,maxLineGap = 70) #was w-h , gap=150 + + imgCopy=imgOriginal.copy() + for i in range(len(imgLines)): + for x1,y1,x2,y2 in imgLines[i]: + cv2.line(smalldashesOut,(x1,y1),(x2,y2),(0,255,0),2) + + + smalldashesOut=smalldashesOut[:,:,1] + # cv2_imshow(smalldashesOut) + for i in range(len(imgLines)): + for x1,y1,x2,y2 in imgLines[i]: + cv2.line(imgCopy,(x1,y1),(x2,y2),(0,255,0),6) + + imgCopy=imgCopy[:,:,1] + # cv2_imshow(imgCopy) + return imgCopy,smalldashesOut + +def euclidian_distance(point1, point2): + return sum([(point1[x] - point2[x]) ** 2 for x in range(len(point1))]) ** 0.5 + +def removeDashedLinesSmall(img4, imgBW ,max,min): + + imgBW=cv2.cvtColor(imgBW,cv2.COLOR_GRAY2BGR) + + imgLines= cv2.HoughLinesP(img4,1,np.pi/100,20,minLineLength=(max-min)//2.2,maxLineGap = 70) #2.1 + + for i in range(len(imgLines)): + for x1,y1,x2,y2 in imgLines[i]: + dist=euclidian_distance((x1,y1), (x2,y2)) + # if dist > 1300 and dist <1450: + if dist >= (max-min)//2.1 and dist < (max-min)//1.9: #1.4 + cv2.line(imgBW,(x1,y1),(x2,y2),(0,255,0),3) + + im_copy=imgBW.copy() + green=im_copy[:,:,1] + # cv2_imshow(im_copy) + return green + +def ConnectBeamLines(smalldashesOut): + green1=cv2.bitwise_not(smalldashesOut) + green2=smalldashesOut.copy() + green2=cv2.cvtColor(green2,cv2.COLOR_GRAY2BGR) + imgLines= cv2.HoughLinesP(green1,0.05,np.pi/250,10,minLineLength=25,maxLineGap = 20) #was w-h , gap=150 #50 + for i in range(len(imgLines)): + for x1,y1,x2,y2 in imgLines[i]: + cv2.line(green2,(x1,y1),(x2,y2),(0,0,0),1) + + imgLines= cv2.HoughLinesP(green1,0.3,np.pi/360,10,minLineLength=25,maxLineGap = 20) #try 180 + + + for i in range(len(imgLines)): + for x1,y1,x2,y2 in imgLines[i]: + cv2.line(green2,(x1,y1),(x2,y2),(0,0,0),1) + # cv2_imshow(green2) + return green2 + +def allpreSteps(imgOriginal): + noCircles=detectCircles(imgOriginal) + imgnoSmall=detectSmallCircles(noCircles ) + img4,imgBW,max,min=DashedPreprocessing(imgOriginal,imgnoSmall) + green=removeDashedLines(img4,imgBW,max,min) + imgCopy,smalldashesOut=removeSmallDashes(imgOriginal,green) + noSmallDashes=removeDashedLinesSmall(img4, smalldashesOut ,max,min) + green2=ConnectBeamLines(noSmallDashes) + # cv2_imshow(green2) + return green2 + +def ChangeBrightness(img,k): + imgdarker = 255 * (img/255)**k # k>1 darker , k <1 lighter + # cv2_imshow(imgdarker) + imgdarker = imgdarker.astype('uint8') + return imgdarker + +def preprocessold(img,number): + + # imcopy=detectCircles(img) + blurG = cv2.GaussianBlur(ChangeBrightness(img,6),(3,3),0) + + imgGry = cv2.cvtColor(blurG, cv2.COLOR_BGR2GRAY) + + kernel=np.ones((3,3),np.uint8) + + er1=cv2.dilate(imgGry,kernel, iterations=2) #thinning + + er2=cv2.erode(er1,kernel, iterations=3) #thicken + er3=cv2.dilate(er2,kernel, iterations=4) + + if number == 0: + ret3, thresh = cv2.threshold(er3, 200, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU) + else: + ret3, thresh = cv2.threshold(er3, 220, 255, cv2.THRESH_BINARY_INV) #`140 - 141 + # cv2_imshow(thresh) + return thresh +# preprocessold(img,0) + +def preprocess(imgOriginal,number,green2): + #first preprocessing ( old method - black img with white shapes) + img1=preprocessold(imgOriginal,number) + imgGry0 = cv2.cvtColor(imgOriginal , cv2.COLOR_BGR2GRAY) + + kernel=np.ones((3,3),np.uint8) + + anding=cv2.bitwise_and(green2,green2,mask=img1) + anding = cv2.cvtColor(anding , cv2.COLOR_BGR2GRAY) + + return anding + +"""# ROI (levels) +## Detect regions with specific color and mask them +""" + +def hexRGB(color): + color=color.lstrip('#') + + color= tuple(int(color[i:i+2], 16) for i in (0, 2, 4)) #hex to rgb + color=np.array(color) #rgb to bgr + return color +def DetectColor(img,color=0): + + imgCopy=img.copy() + imgCopy=cv2.cvtColor(imgCopy,cv2.COLOR_BGR2HSV) + tol=5 #tolerance + # color=hexRGB(color) + h,s,v = cv2.cvtColor(np.uint8([[[color[2],color[1],color[0]]]]),cv2.COLOR_BGR2HSV)[0][0] + + lower =np.array( [h- tol, 100, 100 ], dtype='uint8') + upper = np.array( [h + tol, 255, 255],dtype='uint8') + + mask = cv2.inRange(imgCopy, lower , upper) + + detectedColors = cv2.bitwise_and(imgCopy,imgCopy, mask= mask) # Bitwise-AND mask and original image + + kernel=np.ones((3,3),np.uint8) + mask=cv2.dilate(mask,kernel, iterations=5) + mask=cv2.erode(mask,kernel, iterations=4) + + detectedColors=cv2.dilate(detectedColors,kernel, iterations=5) + detectedColors=cv2.erode(detectedColors,kernel, iterations=4) + + detectedColors=cv2.cvtColor(detectedColors,cv2.COLOR_HSV2BGR) + detectedColors=cv2.medianBlur(detectedColors,7) + # cv2_imshow(detectedColors) + + return mask, detectedColors, color + + +def detectAllColors(img,finalColorArray): + for i in range(len(finalColorArray)): + detectedColors= DetectColor(img,finalColorArray[i])[1] + if i == 0: + allcolorsImg=cv2.bitwise_or(detectedColors,detectedColors) + else: + allcolorsImg=cv2.bitwise_or(allcolorsImg,detectedColors) + allcolorsImg= cv2.medianBlur(allcolorsImg,7) + + return allcolorsImg + +def colorOrder(img,finalColorArray): + newimg=img.copy() + arraycolor=[] + allcolorsImg= detectAllColors(img,finalColorArray) + allcolorsImgG= cv2.cvtColor(allcolorsImg, cv2.COLOR_BGR2GRAY) + + ColoredContour, Coloredhierarchy = cv2.findContours(allcolorsImgG, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE) + Coloredhierarchy=Coloredhierarchy[0] + for cnt in ColoredContour : + Blackmask = np.zeros(img.shape[:2], dtype="uint8") + cv2.drawContours(Blackmask,[cnt],0,(255,255,255),20) + coloredand=cv2.bitwise_and(allcolorsImg,allcolorsImg,mask=Blackmask) + + for colors in finalColorArray: + getColor=DetectColor(coloredand,colors)[1] + + pil_image=Image.fromarray(getColor) + extrema = pil_image.convert("L").getextrema() + if extrema != (0, 0): # if image is not black --> has a colored mask within + arraycolor.append(colors) + break + + res = [] + [res.append(x) for x in arraycolor if x not in res] + + return res + +def getinnerColor(BlackmaskDetected,img,detectedColors,finalColorArray,num1,num2,flag,eachcolor): + + countBlackMasks=0 + xored=detectedColors + + invertedmask=detectedColors + + imgc=img.copy() + imgNewCopy=img.copy() + Blackmask = np.zeros(img.shape[:2], dtype="uint8") + for eachcolor in finalColorArray: + masked=DetectColor(detectedColors,eachcolor)[0] + pil_image=Image.fromarray(masked) + extrema = pil_image.convert("L").getextrema() + if extrema != (0, 0): # if image is not black --> has a colored mask within + cc=detectedColors.copy() + # cc1=detectedColorsB.copy() + ColoredContour, Coloredhierarchy = cv2.findContours(masked, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + + for cnt in ColoredContour: + + area1 = cv2.contourArea(cnt) + if (area1 > 1000 ): + + x, y , width, height = cv2.boundingRect(cnt) + # cv2.rectangle(cc, (x,y ), (x+width, y+height), (255,255,255), -1) + # cv2.rectangle(Blackmask, (x,y ), (x+width, y+height), 255, -1) + #to get rid of the edge of the inner reectangles + cv2.drawContours(cc,[cnt],0,(255,255,255), 3) + cv2.drawContours(Blackmask,[cnt] ,0, (255,255,255), 3) + + cv2.drawContours(cc,[cnt],0,(255,255,255), -1) # (x-5,y-5 ), (x+width, y+height), + cv2.drawContours(Blackmask,[cnt] ,0, (255,255,255), -1) #,(x,y ), (x+width, y+height) + + cv2.drawContours(BlackmaskDetected,[cnt] ,0, (0,0,0), -1) #,(x,y ), (x+width, y+height) + + invertedmask = cv2.bitwise_and(imgc,imgc, mask= Blackmask) + xored=cc + # masked b abyad + detectedColors=xored + + else: #black mask , no other levels are found # to check law count == number of colors in array yb2a no more levels and break + countBlackMasks+=1 + + return xored,invertedmask , BlackmaskDetected + +def allLevelsofColor(BlackmaskDetected,img,levelonly, invertedmask,color,finalColorArray): + + # cc=levelonly.copy() + firstLevel=levelonly + firstLevel1=levelonly + print('in') + Blackmask = np.zeros(img.shape[:2], dtype="uint8") + + masked,maskedColor,rgbcolor=DetectColor(invertedmask,color) + # color=hexRGB(color) + color=[color[0],color[1],color[2]] + + rgbcolor=[rgbcolor[0],rgbcolor[1],rgbcolor[2]] + print(rgbcolor,color) + pil_image=Image.fromarray(masked) + extrema = pil_image.convert("L").getextrema() + if extrema != (0, 0): # if image is not black --> has a colored mask within + + if rgbcolor==color: #found level tany gowa b nfs el lon + print('kkkkkkkk') + ColoredContour, Coloredhierarchy = cv2.findContours(masked, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) + Coloredhierarchy=Coloredhierarchy[0] + for component in zip(ColoredContour,Coloredhierarchy): + cnt=component[0] + hier=component[1] + area1 = cv2.contourArea(cnt) + if (area1 > 1000 ): + if hier[3]> -1: + cv2.drawContours(Blackmask,[cnt],0,(255,255,255), -1) + cv2.drawContours(Blackmask,[cnt],0,(0,0,0), 20) + cv2.drawContours(BlackmaskDetected,[cnt],0,(255,255,255), -1) + + firstLevel=cv2.bitwise_and(invertedmask,invertedmask,mask=Blackmask) + ####remove black pixels and let them be all white + # get (i, j) positions of all RGB pixels that are black (i.e. [0, 0, 0]) + black_pixels = np.where( + (firstLevel[:, :, 0] == 0) & + (firstLevel[:, :, 1] == 0) & + (firstLevel[:, :, 2] == 0) + ) + + # set those pixels to white + firstLevel[black_pixels] = [255, 255, 255] + firstLevel1=cv2.bitwise_and(levelonly,firstLevel) + # cv2_imshow(firstLevel1) + + # cv2_imshow(firstLevel1) + for othercolor in finalColorArray: + # othercolor2=hexRGB(othercolor) + othercolor2=[othercolor[0],othercolor[1],othercolor[2]] + print(othercolor2,color) + if othercolor2!=color: + print('anothre') + masked0=DetectColor(firstLevel,othercolor)[0] + pil_image0=Image.fromarray(masked0) + extrema0 = pil_image0.convert("L").getextrema() + if extrema != (0, 0): # if image is not black --> has a colored mask within + ColoredContour0, Coloredhierarchy0 = cv2.findContours(masked0, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + for cnt in ColoredContour0: + area1 = cv2.contourArea(cnt) + if (area1 > 1000 ): + cv2.drawContours(firstLevel1,[cnt],0,(255,255,255), -1) + cv2.drawContours(firstLevel1,[cnt],0,(255,255,255), 10) + cv2.drawContours(BlackmaskDetected,[cnt],0,(0,0,0), -1) + # cv2.drawContours(Blackmask,[cnt],0,(255,255,255), -1) + # cv2.drawContours(Blackmask,[cnt],0,(255,255,255), 10) + # cv2_imshow(firstLevel1) + # cv2_imshow(Blackmask) + return firstLevel1, BlackmaskDetected + +def getColoredContour(mask,img,finalColorArray,num1,num2,flag,eachcolor): + print('uuuuuuuuummmmmmmmmmmmm') + ColoredContour, Coloredhierarchy = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) + Coloredhierarchy=Coloredhierarchy[0] + + imgc= img.copy() + + detectedColors=np.zeros(img.shape[:2], dtype="uint8") + Blackmask = np.zeros(img.shape[:2], dtype="uint8") + + for component in zip( ColoredContour, Coloredhierarchy): + cnt=component[0] + hier=component[1] + area1 = cv2.contourArea(cnt) + if (area1 > 3000 ): + # cv2.drawContours(imgNewCopy, [cnt], 0,(255,255,255), 20) #(x+20,y+20 ), (x+width-20, y+height-20), + if hier[3] >-1: + + x, y , width, height = cv2.boundingRect(cnt) + cv2.drawContours(Blackmask, [cnt], 0,(255,255,255), -1) #(x+20,y+20 ), (x+width-20, y+height-20), + cv2.drawContours(Blackmask, [cnt], 0,(0,0,0), 10) #(x+20,y+20 ), (x+width-20, y+height-20), + + detectedColors = cv2.bitwise_and(imgc,imgc, mask= Blackmask) + pil_image=Image.fromarray(detectedColors) + extrema = pil_image.convert("L").getextrema() + if extrema == (0, 0) :#and extremaB==(0,0): # if image is not black --> has a colored mask within + break + + levelOnly,invertedmask,BlackmaskDetected=getinnerColor(Blackmask,img,detectedColors,finalColorArray,num1,num2,flag,eachcolor) #mask inner levels b abyad + firstLevel1, BlackmaskDetected1= allLevelsofColor(BlackmaskDetected,img,levelOnly, invertedmask,eachcolor,finalColorArray) + # cv2_imshow(firstLevel1) + print('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA') + return firstLevel1,invertedmask, BlackmaskDetected1 + +"""# contours""" + +def findContoursFullImage(green2,img,number,finalColorArray,num1,num2,flag,color=[0,0,0]): + if number == 0: + thresh=preprocess(img,number,green2) + + contourss, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + return contourss + else: + mask, detectedColors, rgbcolor =DetectColor(img,color) + pil_image=Image.fromarray(mask) + extrema = pil_image.convert("L").getextrema() + if extrema != (0, 0): # if image is not black --> has a colored mask within + coloredregions,invertedmask,BlackmaskDetected1=getColoredContour(mask,img,finalColorArray,num1,num2,flag,color) + + thresh=preprocess(coloredregions,number,green2) + x=cv2.bitwise_and(thresh,thresh,mask=BlackmaskDetected1) + contourss, hierarchy = cv2.findContours(x, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + return contourss,rgbcolor ,invertedmask + + else: + + thresh=preprocess(img,number,green2) + + contourss, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + hierarchy = hierarchy[0] + return contourss,color ,mask + + + +def StraightenImage(contour,imgArea): + rect = cv2.minAreaRect(contour) + + (center, (width, height), angleR) = cv2.minAreaRect(contour) + + box = cv2.boxPoints(rect) + box = np.int0(box) + + # get width and height of the detected rectangle + width = int(rect[1][0]) + height = int(rect[1][1]) + + # src_pts = box.astype("float32") + # dst_pts = np.array([[0, height-1], + # [0, 0], + # [width-1, 0], + # [width-1, height-1]], dtype="float32") + + # # the perspective transformation matrix + # M = cv2.getPerspectiveTransform(src_pts, dst_pts) + + # # directly warp the rotated rectangle to get the straightened rectangle + + # warped = cv2.warpPerspective(imgArea, M, (width, height)) + ############## + return angleR,width,height + +def getAreasPerimeter(green2,img,number,num1,num2,flag,finalColorArray,color=[0,0,0]): + appended=[] + if number==0: + contourss=findContoursFullImage(green2,img,number,finalColorArray,num1,num2,flag,color) + else: + contourss=findContoursFullImage(green2,img,number,finalColorArray,num1,num2,flag,color)[0] + + for contour in contourss: + + area1 = cv2.contourArea(contour) + perimeter1 = cv2.arcLength(contour, True) + x, y , width, height = cv2.boundingRect(contour) + + angleR,widthR ,heightR= StraightenImage(contour,img) + + if (angleR != 90.0 and angleR != -90.0 and angleR != 0.0 and angleR != -0.0 ): #inclined b ay degree + width=widthR + height=heightR + if (area1 > 4000 ): #check perimeter kman fl condition -- 2800 + if num1!=0 and num2!=0: + #if flag=='area': + addedMargin=area1+perimeter1*2 + areaa=round(addedMargin* (num1/(num2+perimeter1*2) ), 3) # true value of area of any shape/ area px value of same shape + appended.append([areaa,width,height]) + + #else: + #perimeter=round(perimeter1*(num1/num2),3) + #appended.append([perimeter,width,height]) + + return appended + + +def FillDictionary(green2,SimilarAreaDictionary,img,number,num1,num2,flag,finalColorArray,rgbcolor=[0,0,0],color=[0,0,0]): + #fills dictionary with key areas and number of occurences + print('wttttt') + areas_Perimeters=sorted(getAreasPerimeter(green2,img,number,num1,num2,flag,finalColorArray,color) ) + + indices=[] + colorRanges=[[255,153,153],[51,255,51],[201,56,147],[255,0,0],[255,0,255],[0,102,204],[102,0,102],[153,0,76],[200,92,135],[52,161,99],[235,250,24],[40,30,170],[98,149,63],[100,30,179],[200,55,67],[150,80,200],[0,102,102],[250,28,191],[101,27,101],[230,150,76],[3,65,127],[114,39,39],[250,36,100],[180,30,40],[10,250,60],[140,30,253],[114,58,245],[47,255,255],[18,236,206],[225,105,29],[189,65,121],[206,204,48],[126,7,247],[3,168,251]] + print(colorRanges[0]) + print(colorRanges[0][0],colorRanges[0][1], colorRanges[0][2]) + colorsUsed=[] + for i in range(len(areas_Perimeters)): + + # colorRGB=hexRGB(color) + item1 = areas_Perimeters[i][0] + width1 = areas_Perimeters[i][1] + height1 = areas_Perimeters[i][2] + widthMin= width1-5 + widthMax= width1+5 + heightMin=height1-5 + heightMax= height1+5 + areaPerimeterMin= round(item1,1) - 0.3 + areaPerimeterMax= round(item1,1) + 0.3 + # print (areaMin, areaMax) + if color != [0,0,0]: #colored images + mydata=[[rgbcolor[0],rgbcolor[1],rgbcolor[2] ],round(item1,1),width1,height1,0, 1,0,0,0,0,0,0] + # mydata=[round(item1,1),width1,height1,0, 1,0,[rgbcolor[0],rgbcolor[1],rgbcolor[2] ],colorRanges[0][2],colorRanges[0][1],colorRanges[0][0]] + # colorRanges.pop(0) + else: + # print('??') + mydata=[' ', round(item1,1),width1,height1,0, 1,0,0,0,0,0,0] + + # if (( round(item1,1) in SimilarAreaDictionary['Rounded'].values) or (areaMin in SimilarAreaDictionary['Rounded'].values )or (areaMax in SimilarAreaDictionary['Rounded'].values )): + + # myindex= SimilarAreaDictionary.index[( SimilarAreaDictionary['Rounded']== round(item1,1) ) ].tolist() + myindex= SimilarAreaDictionary.index[((SimilarAreaDictionary['Rounded'] >=areaPerimeterMin) &(SimilarAreaDictionary['Rounded']<=areaPerimeterMax) )].tolist() + # for i in myindex: + # SimilarAreaDictionary['Rounded'].loc[i] + if color!= [0,0,0]: #leveled image + + checkifColorExists=0 # to check whether this row was found or not( area and color ) + for i in myindex: # loop on indices that were found --> rows containing this area to check its color and add occ. + if SimilarAreaDictionary['Color'].loc[i]==[rgbcolor[0],rgbcolor[1],rgbcolor[2]] and ( SimilarAreaDictionary['Rounded'].loc[i] >= areaPerimeterMin and SimilarAreaDictionary['Rounded'].loc[i] <= areaPerimeterMax) : + if (SimilarAreaDictionary['Width'].loc[i] <=widthMax and SimilarAreaDictionary['Width'].loc[i] >= widthMin) and (SimilarAreaDictionary['Height'].loc[i] <= heightMax and SimilarAreaDictionary['Height'].loc[i] >= heightMin ) or (SimilarAreaDictionary['Width'].loc[i] <=heightMax and SimilarAreaDictionary['Width'].loc[i] >= heightMin) and (SimilarAreaDictionary['Height'].loc[i] <= widthMax and SimilarAreaDictionary['Height'].loc[i] >= widthMin ) : + checkifColorExists=1 #found and incremented + SimilarAreaDictionary['Occurences'].loc[i]+=1 + if checkifColorExists==0: #couldnt find the color , doesnt exist so add it + SimilarAreaDictionary.loc[len(SimilarAreaDictionary)] =mydata + + else: #full image + # print('here') +#same code bs mgher color + checkifColorExists=0 + for i in myindex: #(SimilarAreaDictionary['Rounded'].loc[i] == round(item1,1) ) or + if ( SimilarAreaDictionary['Rounded'].loc[i] <= areaPerimeterMax and SimilarAreaDictionary['Rounded'].loc[i] >= areaPerimeterMin) : + # print(SimilarAreaDictionary['Rounded'].loc[i] ,'in rng if', areaMin,areaMax) + if (SimilarAreaDictionary['Width'].loc[i] <=widthMax and SimilarAreaDictionary['Width'].loc[i] >= widthMin) and (SimilarAreaDictionary['Height'].loc[i] <= heightMax and SimilarAreaDictionary['Height'].loc[i] >= heightMin ) or (SimilarAreaDictionary['Width'].loc[i] <=heightMax and SimilarAreaDictionary['Width'].loc[i] >= heightMin) and (SimilarAreaDictionary['Height'].loc[i] <= widthMax and SimilarAreaDictionary['Height'].loc[i] >= widthMin ) : + checkifColorExists=1 #found and incremented + SimilarAreaDictionary['Occurences'].loc[i]+=1 + # SimilarAreaDictionary['R'].loc[i] =colorRanges[0][2] + # SimilarAreaDictionary['G'].loc[i] =colorRanges[0][1] + # SimilarAreaDictionary['B'].loc[i] = colorRanges[0][0] + + # colorRanges.pop(0) + + if checkifColorExists==0: #couldnt find the color , doesnt exist so add it + SimilarAreaDictionary.loc[len(SimilarAreaDictionary)] =mydata + # s= SimilarAreaDictionary + for i in range(len(SimilarAreaDictionary)): + SimilarAreaDictionary.loc[i, "R"] = colorRanges[i][0] + SimilarAreaDictionary.loc[i, "G"] = colorRanges[i][1] + SimilarAreaDictionary.loc[i, "B"] = colorRanges[i][2] + colorsUsed.append(colorRanges[i]) + # x='#%02x%02x%02x' % (colorRanges[i]) + # xx='#%02x%02x%02x' % ( colorRanges[i][0] , colorRanges[i][1] , colorRanges[i][2] ) + # print( xx) + # s=( SimilarAreaDictionary.style.apply('background-color: %s' % ('#%02x%02x%02x' % ( colorRanges[i][0] , colorRanges[i][1] , colorRanges[i][2] )), subset=['Color'] ) ) + + + + return SimilarAreaDictionary, colorsUsed +def drawAllContours(img,number,finalColorArray,num1,num2,flag): + green2=allpreSteps(img) + # doc = fitz.open(path) + # page = doc[0] + # page.set_rotation(0) + # pix=page.get_pixmap() + # ratio = pix.width/ img.shape[1] + + areasinImage=[] + totaldf=pd.DataFrame() + imgArea1= img.copy() + imgPerimeter1=img.copy() + imgtransparent1=img.copy() + + Blackmask = np.zeros(img.shape[:2], dtype="uint8") + + invertedmask=img + allpoints=[] + + if number ==220: + # finalColorArray= colorOrder(img,finalColorArray) + # if flag== 'area': + # SimilarAreaDictionary= pd.DataFrame(columns=['Color','Rounded','Width','Height','Area','Occurences','Total Area' , 'R','G','B']) # + # else: + # SimilarAreaDictionary= pd.DataFrame(columns=['Color','Rounded','Width','Height','Perimeter','Occurences','Total Perimeter' ,'R','G','B']) + SimilarAreaDictionary= pd.DataFrame(columns=['Color','Rounded','Width','Height','Occurences','Area','Total Area','Perimeter','Total Perimeter','R','G','B']) + firstcolor=finalColorArray[0] + # print(lastcolor) + counter=0 + maskDone=img.copy() + for eachcolor in finalColorArray: + + print(eachcolor) + if eachcolor==firstcolor: # 3shan a3rf el array of colors et3adet kam mara - to support embedded levels + counter+=1 + + contourss,rgbcolor,invertedmask=findContoursFullImage(green2,maskDone,number,finalColorArray,num1,num2,flag,eachcolor) + SimilarAreaDictionary, colorsUsed= FillDictionary(green2,SimilarAreaDictionary,maskDone,number,num1,num2,flag,finalColorArray,rgbcolor,eachcolor) + + a = SimilarAreaDictionary.to_numpy() + + # for component in zip(contourss,hierarchy): + # contour = component[0] + # currentHierarchy = component[1] + for contour in contourss: + shape=[] + + # cv2_imshow(imgStraight) + area1 = cv2.contourArea(contour) + perimeter1 = cv2.arcLength(contour, True) + if (area1 > 4000 ): #check perimeter kman fl condition -- 2800 + angleR,widthR ,heightR= StraightenImage(contour,imgArea1) + rect = cv2.minAreaRect(contour) + + (center, (width, height), angleR) = cv2.minAreaRect(contour) + + box = cv2.boxPoints(rect) + box = box.astype('int') + print(box) + + x, y , width, height = cv2.boundingRect(contour) + # cv2.drawContours(imgArea1,contours=[box], contourIdx=0 , color=(0, 0, 255), thickness=10) + approx = cv2.approxPolyDP(contour, 0.005 * perimeter1, True) + for point in approx: + x1, y1 = point[0] + + #shape.append([int(x1*ratio),int(y1*ratio)]) + # shape= np.fliplr(shape) + + cv2.circle(imgArea1, (x1, y1), 4, (0, 255, 0), -1) + allpoints.append(shape) + # print(x,y,width,height) + # print(allpoints) + print(shape) + if (angleR != 90.0 and angleR != -90.0 and angleR != 0.0 and angleR != -0.0 ): #inclined b ay degree + width=widthR + height=heightR + + widthMin= width-5 + widthMax= width+5 + heightMin=height-5 + heightMax= height+5 + if num1 !=0 and num2!=0: + widthh=round(width*(num1/num2),3) + heightt=round(height*(num1/num2),3) + # if flag=='area': + areaa=round(area1* (num1/num2 ), 3) # true value of area of any shape/ area px value of same shape + + # elif flag=='perimeter': + perimeterr=round(perimeter1* (num1/num2 ), 3) + else: + areaa=area1 + perimeterr=perimeter1 + + # if flag=='area': + areaPerimeterMin= round(areaa,1) - 0.3 + areaPerimeterMax= round(areaa,1) + 0.3 + # areaPerimeterMin= round(perimeterr,1) - 0.3 + # areaPerimeterMax= round(perimeterr,1) + 0.3 + masked=SimilarAreaDictionary.loc[SimilarAreaDictionary.index[((SimilarAreaDictionary['Rounded'] >=areaPerimeterMin) &(SimilarAreaDictionary['Rounded']<=areaPerimeterMax) )]] + # masked=SimilarAreaDictionary.loc[SimilarAreaDictionary['Rounded'] ==round(areaa,1)] + # if (round(areaa,1) in masked['Rounded'].values ) : + passed=0 + for i, row in masked.iterrows(): + if passed ==0: + if SimilarAreaDictionary['Color'].loc[i] == [rgbcolor[0],rgbcolor[1],rgbcolor[2]] and ( SimilarAreaDictionary['Rounded'].loc[i] <= areaPerimeterMax and SimilarAreaDictionary['Rounded'].loc[i] >= areaPerimeterMin) : + if (SimilarAreaDictionary['Width'].loc[i] <=widthMax and SimilarAreaDictionary['Width'].loc[i] >= widthMin) and (SimilarAreaDictionary['Height'].loc[i] <= heightMax and SimilarAreaDictionary['Height'].loc[i] >= heightMin ) or (SimilarAreaDictionary['Width'].loc[i] <=heightMax and SimilarAreaDictionary['Width'].loc[i] >= heightMin) and (SimilarAreaDictionary['Height'].loc[i] <= widthMax and SimilarAreaDictionary['Height'].loc[i] >= widthMin ) : + SimilarAreaDictionary['Total Area'].loc[i]+=areaa + SimilarAreaDictionary['Area'].loc[i]=areaa + + SimilarAreaDictionary['Total Perimeter'].loc[i]+=perimeterr + SimilarAreaDictionary['Perimeter'].loc[i]=perimeterr + passed=1 + # print(index) + cv2.drawContours(imgArea1, [contour], 0, (int(rgbcolor[0]), int(rgbcolor[1]), int(rgbcolor[2])), -1) + + + cv2.putText(imgtransparent1,'Width= '+str(width) , (x+50,y-10) ,cv2.FONT_HERSHEY_SIMPLEX, 0.6, (50, 50, 255), 2) + cv2.putText(imgtransparent1,'Length= '+str(height) , (x+50,y-20) ,cv2.FONT_HERSHEY_SIMPLEX, 0.6, (50, 50, 255), 2) + areasinImage.append(areaa) + + cv2.putText(imgPerimeter1,'Perimeter'+str(perimeterr), (x+50,y-10) ,cv2.FONT_HERSHEY_SIMPLEX, 0.6, (50, 50, 255), 2) + + + for i,row in SimilarAreaDictionary.iterrows(): + # print(row) + if row[3] not in areasinImage: # column of area + SimilarAreaDictionary = SimilarAreaDictionary.drop(SimilarAreaDictionary.loc[SimilarAreaDictionary.index==i].index) + # print(areasinImage) + print(SimilarAreaDictionary) + # display(totaldf) + ######################### + else: + + SimilarAreaDictionary= pd.DataFrame(columns=['Color','Rounded','Width','Height','Perimeter','Occurences','Total Perimeter','Area','Total Area','R','G','B']) + contourss=findContoursFullImage(green2,img,number,finalColorArray,num1,num2,flag) + SimilarAreaDictionary,colorsUsed= FillDictionary(green2,SimilarAreaDictionary,img,number,num1,num2,flag,finalColorArray) + # print('filled') + for contour in contourss: + # shape=[] + area1 = cv2.contourArea(contour) + perimeter1 = cv2.arcLength(contour, True) + if (area1 >4000 ): + shape=[] + angleR,widthR ,heightR= StraightenImage(contour,imgArea1) + x, y , width, height = cv2.boundingRect(contour) + + approx = cv2.approxPolyDP(contour, 0.005 * perimeter1, True) + for point in approx: + x1, y1 = point[0] + # shape.append([int(x1*ratio),int(y1*ratio)]) + allpoints.append(shape) + if (angleR != 90.0 and angleR != -90.0 and angleR != 0.0 and angleR != -0.0 ): #inclined b ay degree + width=widthR + height=heightR + + widthMin= width-5 + widthMax= width+5 + heightMin=height-5 + heightMax= height+5 + + + if num1 !=0 and num2!=0: + # if flag=='area': + addedMargin=area1+perimeter1*2 + areaa=round(addedMargin* (num1/(num2+perimeter1*2) ), 3) # true value of area of any shape/ area px value of same shape + # elif flag=='perimeter': + perimeterr=round(perimeter1* (num1/num2 ), 3) + else: + areaa=area1 + perimeterr=perimeter1 + # if flag=='area': + areaPerimeterMin= round(areaa,1) - 0.3 + areaPerimeterMax= round(areaa,1) + 0.3 + masked=SimilarAreaDictionary.loc[SimilarAreaDictionary.index[((SimilarAreaDictionary['Rounded'] >=areaPerimeterMin) & (SimilarAreaDictionary['Rounded']<=areaPerimeterMax) )]] + passed=0 + # if (round(areaa,1) in masked['Rounded'].values ) : + + for i, row in masked.iterrows(): + if passed ==0: + # if SimilarAreaDictionary['Rounded'].loc[i] == round(areaa,1) : + if ( SimilarAreaDictionary['Rounded'].loc[i] <= areaPerimeterMax and SimilarAreaDictionary['Rounded'].loc[i] >= areaPerimeterMin) : + if (SimilarAreaDictionary['Width'].loc[i] <=widthMax and SimilarAreaDictionary['Width'].loc[i] >= widthMin) and (SimilarAreaDictionary['Height'].loc[i] <= heightMax and SimilarAreaDictionary['Height'].loc[i] >= heightMin ) or (SimilarAreaDictionary['Width'].loc[i] <=heightMax and SimilarAreaDictionary['Width'].loc[i] >= heightMin) and (SimilarAreaDictionary['Height'].loc[i] <= widthMax and SimilarAreaDictionary['Height'].loc[i] >= widthMin ) : + SimilarAreaDictionary['Total Area'].loc[i]+=areaa + SimilarAreaDictionary['Area'].loc[i]=areaa + + SimilarAreaDictionary['Total Perimeter'].loc[i]+=perimeterr + SimilarAreaDictionary['Perimeter'].loc[i]=perimeterr + passed=1 + cv2.drawContours(imgArea1, [contour], 0, ( int(SimilarAreaDictionary['B'].loc[i]), int(SimilarAreaDictionary['G'].loc[i]), int(SimilarAreaDictionary['R'].loc[i])), -1) + + # annot = page.add_polygon_annot( points=shape ) # 'Polygon' + # annot.set_border(width=0.3, dashes=[2]) + # annot.set_colors( fill=( int(SimilarAreaDictionary['B'].loc[i])/255 , int(SimilarAreaDictionary['G'].loc[i])/255 , int(SimilarAreaDictionary['R'].loc[i])/255 ) ) + # # annot.set_colors( fill=(1,0,1) ) + # annot.set_opacity(0.5) + # annot.set_info(content='kkk',subject='MEE',title='uuum') + # # annot.set_line_ends(fitz.PDF_ANNOT_LE_DIAMOND, fitz.PDF_ANNOT_LE_CIRCLE) + # annot.update() + #cv2.putText(imgtransparent1,'area= '+str(areaa) + ' m', (x+50,y-10) ,cv2.FONT_HERSHEY_SIMPLEX, 0.6, (50, 50, 255), 2) + cv2.putText(imgtransparent1,'Width= '+str(width) , (x+50,y-10) ,cv2.FONT_HERSHEY_SIMPLEX, 0.6, (50, 50, 255), 2) + cv2.putText(imgtransparent1,'Length= '+str(height) , (x+50,y-40) ,cv2.FONT_HERSHEY_SIMPLEX, 0.6, (50, 50, 255), 2) + cv2.drawContours(imgArea1, [contour], 0, (0, 0, 255),2) + cv2.drawContours(imgPerimeter1, [contour], 0, (0, 0, 255), 4) + cv2.putText(imgPerimeter1,'Perimeter='+str(perimeterr), (x+30,y-30) ,cv2.FONT_HERSHEY_SIMPLEX, 0.6, (50, 50, 255), 2) + + + alpha = 0.4 # Transparency factor. + image_new1 = cv2.addWeighted(imgArea1, alpha, imgtransparent1, 1 - alpha, 0) + + SimilarAreaDictionary.drop(['Rounded', 'Width','Height','R','G','B'], axis=1, inplace=True) + + print(SimilarAreaDictionary) + + # annotationsSave +# doc.save('k.pdf', deflate=True) + # gc,spreadsheet_service,spreadsheetId, spreadsheet_url=legendGoogleSheets(SimilarAreaDictionary,colorsUsed) + return imgPerimeter1,image_new1,SimilarAreaDictionary, colorsUsed , 'https://www.google.com/index.html' + + + +####################################################### + +def getTitle(path): + planName= path.split("/")[-1].split('.') + LegendName='Legend of ' + str(planName[0]) + ' plan' + return LegendName + +def retrieveMCCol(gc): + ws=gc.open_by_key('1A8VtqLFhe2NXPxIjfAilbxF9xV2eSzZ-yZ9GP8_5jSo') + worksheet = ws.worksheet(0) + mcT_Names=worksheet.get_col(1) + newMcTNames=[] + for i in mcT_Names: + if i != '': + newMcTNames.append(i) + return newMcTNames + + +def getdropdownValues(gc,spreadsheet_service,spreadsheetid): + dropdownValues=[] + ws=gc.open_by_key('1A8VtqLFhe2NXPxIjfAilbxF9xV2eSzZ-yZ9GP8_5jSo') ## spreadsheet containing mc-t names + worksheet = ws.worksheet(0) + response = spreadsheet_service.spreadsheets().get( + spreadsheetId=spreadsheetid, fields='*', + ranges='A2:A60',includeGridData=True).execute() + r=list(response['sheets'][0]['data'][0]['rowData'][0]['values'][0]) + print(r) + if 'dataValidation' in r: + print('yes') + colvals= response['sheets'][0]['data'][0]['rowData'][0]['values'][0]['dataValidation'] + colvalsList=list(colvals.items()) + print(colvalsList[0][1]) + lengthVals=len(colvalsList[0][1]['values']) + for i in range(lengthVals): + dictVal=(colvalsList[0][1]['values'][i].values()) + # val=[*dictVal] + + dropdownValues.append(*dictVal) + print(dropdownValues) + worksheet.update_col(index=1, values=dropdownValues) + return dropdownValues +def authorizeLegend(): + SCOPES = [ + 'https://www.googleapis.com/auth/spreadsheets', + 'https://www.googleapis.com/auth/drive' + ] + credentials = service_account.Credentials.from_service_account_file('credentials.json', scopes=SCOPES) + spreadsheet_service = build('sheets', 'v4', credentials=credentials) + drive_service = build('drive', 'v3', credentials=credentials) + gc = pygsheets.authorize(custom_credentials=credentials, client_secret='credentials.json') + return spreadsheet_service,drive_service,gc + +def legendGoogleSheets(SimilarAreaDictionary,colorsUsed): + # authorize uing json file + # SimilarAreaDictionary.drop(['Rounded', 'Width','Height','R','G','B'], axis=1, inplace=True) + spreadsheet_service,drive_service,gc=authorizeLegend() + +######## + # legendTitle=getTitle(path) + # titles=gc.spreadsheet_titles() + # # print(titles) + # if legendTitle in titles: + # print('found sheet ') + # else: + # ####### create new sheet + # print('creating new sheeet') + + + + # LegendName=getTitle(path) + spreadsheet_details = { + 'properties': { + 'title': 'namee' + } + } + sheet = spreadsheet_service.spreadsheets().create(body=spreadsheet_details, + fields='spreadsheetId').execute() + + # spreadsheetId = sheet.get('spreadsheetId') + spreadsheetId='1dGhc1ffsrTxBkgcSYGLU-l1BJk5VFXozMWdYeEikEdo' + # print('Spreadsheet ID: {0}'.format(spreadsheetId)) + permission1 = { + 'type': 'anyone', + 'role': 'writer', + # 'emailAddress': 'marthe.adr@gmail.com' + } + drive_service.permissions().create(fileId=spreadsheetId, body=permission1).execute() + ###################3 + #open sheet + # spreadsheetId='1dtDi_6-g3jkn6ePVlzM6PM3FE8wIHzyL2Rt4ksH59SE' + ws=gc.open_by_key(spreadsheetId) + sheetId = '0' # Please set sheet ID. + worksheet = ws.worksheet(0) + second_row_data=['Nr','m2','Total','m','Total'] + + top_header_format = [ + + {'mergeCells': { + 'mergeType': 'MERGE_ROWS', + 'range': { + 'sheetId': '0', + 'startRowIndex': 0, + 'endRowIndex': 1, + 'startColumnIndex': 3, + 'endColumnIndex':5 + + + } + }}, + {'mergeCells': { + 'mergeType': 'MERGE_ROWS', + 'range': { + 'sheetId': '0', + 'startRowIndex': 0, + 'endRowIndex': 1, + 'startColumnIndex': 5, + 'endColumnIndex':7 + } + + }} + # ,{'mergeCells': { + # 'mergeType': 'MERGE_ROWS', + # 'range': { + # 'sheetId': '0', + # 'startRowIndex': 0, + # 'endRowIndex': 1, + # 'startColumnIndex': 6, + # 'endColumnIndex':8 + + + # } + # }} + ] + spreadsheet_service.spreadsheets().batchUpdate( spreadsheetId=spreadsheetId , body={'requests': top_header_format} ).execute() + + worksheet.cell((1,1)).value='Guess' + worksheet.cell((1,2)).value='Color' + worksheet.cell((1,3)).value='Count' + worksheet.cell((1,4)).value='Areas' + worksheet.cell((1,6)).value='Perimeter' + + worksheet.update_row(2,second_row_data,col_offset=2) + + worksheet.update_col(3,list(SimilarAreaDictionary['Occurences']),row_offset=2) + worksheet.update_col(4,list(SimilarAreaDictionary['Area']),row_offset=2) + worksheet.update_col(5,list(SimilarAreaDictionary['Total Area']),row_offset=2) + worksheet.update_col(6,list(SimilarAreaDictionary['Perimeter']),row_offset=2) + worksheet.update_col(7,list(SimilarAreaDictionary['Total Perimeter']),row_offset=2) + + rowsLen=len(SimilarAreaDictionary.values.tolist()) #kam row -- last row = rowsLen +1 + lastcell=worksheet.cell((rowsLen+2,1)) #row,col + lastcellNotation=str(lastcell.address.label) + worksheet.set_data_validation('A3',lastcellNotation, condition_type='ONE_OF_LIST', condition_values=['Ground Beam','Pile Cap'], showCustomUi=True) + + #get lengths of df + columnsLen=len(SimilarAreaDictionary.columns.values.tolist()) #kam column -- last col = columnsLen+1 3shan base0 + lastUsedCol=columnsLen+1 + + worksheet.adjust_column_width(start=2,end=8) + + + sheetId = '0' # Please set sheet ID. + for i in range(len(colorsUsed)): + + print(colorsUsed[i]) + r,g,b=colorsUsed[i] + body = { + "requests": [ + { + "updateCells": { + "range": { + "sheetId": sheetId, + "startRowIndex": i+2, + # "endRowIndex":4 , + "startColumnIndex":1, + + # "endColumnIndex": 0 + }, + + "rows": [ + { + "values": [ + { + "userEnteredFormat": { + "backgroundColor": { + + "red": r/255, + "green": g/255, + "blue": b/255, + # "alpha": 0.8 + + } + + } + } + ] + } + ], + "fields": "userEnteredFormat.backgroundColor", + + } + } + ] + } + res = spreadsheet_service.spreadsheets().batchUpdate(spreadsheetId=spreadsheetId, body=body).execute() + spreadsheet_url = "https://docs.google.com/spreadsheets/d/%s" % spreadsheetId + print(spreadsheet_url) + + return gc,spreadsheet_service,spreadsheetId ,spreadsheet_url +####################### + +def mapnametoLegend(McTName): + print('aaaaaaaaaaaaaa') + # McTNameSplit= re.split(r'[`\-=~!@#$%^&*()_+\[\]{};\'\\:"|<,./<>?]', McTName[0]) + # namesSplit=x= re.split(r'[`\-=~!@#$%^&*()_+\[\]{};\'\\:"|<,./<>?]', McTName[1]) + + spreadsheet_service,drive_service,gc=authorizeLegend() + spreadsheet_key ='1dGhc1ffsrTxBkgcSYGLU-l1BJk5VFXozMWdYeEikEdo' # Please set the Spreadsheet ID. + + ws = gc.open_by_key('1dGhc1ffsrTxBkgcSYGLU-l1BJk5VFXozMWdYeEikEdo') + + # # ws.add_worksheet("Summary") # Please set the new sheet name. + + worksheetw = ws.worksheet(0) #legend + worksheetS = ws.worksheet_by_title('Summary') + worksheetS.clear() + countnames=0 + row0=['MC_T Name','Qty','Unit'] + worksheetS.update_row(1,row0) + + for i in range(len(McTName)): + allgbnames='' + item='' + print(McTName[i][2]) + + # firstpart= re.split(r'[`\-=~!@#$%^&*()_+\[\]{};\'\\:"|<,./<>?]', McTName[i][0]) + + # print(firstpart) #[ Ground Beams , m2 ] + if (McTName[i][2]=='area'): + rowvalue=5# column 5 + ar=0 + if (McTName[i][2]=='perimeter'): + rowvalue=7# column 7 + ar=0 + # # print( worksheet.get_col(5, include_tailing_empty=False) ) + + for m in McTName[i][1]: + print(m) + # if len(McTName[i][1])>2: + if m.startswith('gb'): + allgbnames+= m +' +' + + print(m) + roww=worksheetw.find(m) + print(roww) + for j in range(len(roww)): + ar+=float(worksheetw.cell((roww[j].row ,rowvalue)).value) + + else: + item+=m + ',' + + n= McTName[i][0] + '('+ allgbnames[:-1] +',' + item[:-1] + ')' + print(n) + + + # roww=worksheetw.find(allgbnames) + # for i in range (len(roww)): + # ar+=float(worksheetw.cell((roww[i].row ,rowvalue)).value) + + # print(ar) + # # xx=str(x.address.label) + + # worksheetS.cell((1,1)).value='aaa' + + # for count in range(len(name[1])): + # print(count) + rowi=[str(n),ar,'m'] + worksheetS.update_row(i+2,rowi) + worksheetS.adjust_column_width(start=1,end=4) + + + # print(x,xarea) diff --git a/static/data/myfile.json b/static/data/myfile.json new file mode 100644 index 0000000000000000000000000000000000000000..e0e0150c724d221bda68ada40d406eb8dd74ba68 --- /dev/null +++ b/static/data/myfile.json @@ -0,0 +1 @@ +[{"project": ["BMW job1", ["2301 BMW job1 external.pdf", "2301 BMW job1 foundation.pdf", "2301 BMW job1 pc2.pdf", "2301 BMW job1 pc3.pdf", "2301 BMW job1 piles.pdf", "BMW job1 23-HRW-01-BG-DR-S-110_P.02_FN.pdf"]]}] \ No newline at end of file diff --git a/static/myfile.json b/static/myfile.json new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/static/style.css b/static/style.css new file mode 100644 index 0000000000000000000000000000000000000000..ee817c9b677610b5f1cac8471e1de6c4ca57d451 --- /dev/null +++ b/static/style.css @@ -0,0 +1,220 @@ +.accordion { + background-color:gray; + color: white; + cursor: pointer; + padding: 8px; + width: 100%; + text-align: left; + border: none; + outline: none; + transition: 0.4s; + border-radius: 5px; + font-family: Georgia, 'Times New Roman', Times, serif; + font-size: 20px; + font-style: italic; + margin-left: 5px; + margin-top: 60px; + margin-right: 10px; + + } + + /* Add a background color to the button if it is clicked on (add the .active class with JS), and when you move the mouse over it (hover) */ + .active, .accordion:hover { + background-color:lightgrey; + opacity: 0.7; + } + + /* Style the accordion panel. Note: hidden by default */ + .panel { + padding: 0 18px; + background-color: white; + display: none; + overflow: hidden; + } + + + + +#pagetitle{ + font-family: Georgia, 'Times New Roman', Times, serif; + font-size: 30px; + text-align:center; + padding-top: 30px; + align-items: center; + justify-content: center; + margin-left: 40%; + margin-right: -50%; + color: white; + + + +} + +#backgroundimg{ + display: block; + margin-left:50% ; + margin-right: 20px; + margin-top: 10px; + background-color: lightgrey; + + width:49%; + height: 407px; + position: absolute; + + + } + ul { + list-style-type: none; + margin: 0; + padding: 0; + width:100%; + height: 50px; + overflow: hidden; + background-color: #333; + position: fixed; + z-index:999 + } + + +.selectionsProj, .selectionsProjp , .selectionsProjs{ + margin-top: 18.5px ; + width: 49%; + height: 30px; + margin-left: 5px ; + font-family: Georgia, 'Times New Roman', Times, serif; + font-size: 14px; + border-radius: 5px; + cursor: pointer; + box-shadow: 2px 2px 2px gray; + +} +#measurementselectionsid{ + margin-top: 18.5px ; + width: 99%; + height: 30px; + margin-left: 5px ; + font-family: Georgia, 'Times New Roman', Times, serif; + font-size: 14px; + border-radius: 5px; + cursor: pointer; + box-shadow: 2px 2px 2px gray; +} +#measurementselectionsid:hover{ + box-shadow: 4px 4px 4px gray; +} +.selectionsProj:hover, .selectionsProjp:hover , .selectionsProjs:hover{ + background-color: lightgrey; + box-shadow: 4px 4px 4px gray; +} + + +#measureLabel, #relvDocLabel{ + font-family: Georgia, 'Times New Roman', Times, serif; + margin-left: 15px ; + font-size: 21px; + position: absolute; + margin-top: 10px; + color: black; + font-style: italic; + +} + +#measureCheckbox, #relvdiv,#saveOPlabel, #saveOP{ /*,.area , .pattern, .border , .length , .match{*/ + font-family: Georgia, 'Times New Roman', Times, serif; + margin-left: 13px ; + margin-top: 20px; + font-size: 20px; + cursor: pointer; + max-width: 50%; + +} + +#measureADRbutton{ + background-color: #16c72e; + border: none; + padding: 10px 175px; + cursor: pointer; + border-radius: 7px; + margin-left: 3%; + font-family: Georgia, 'Times New Roman', Times, serif; + font-size: 16px; + color:white; +} +#measureADRbutton:hover{ + background-color:darkseagreen; + color:black; +} + + +#addicon,#donebutton{ + top: 1px; + width:30px; + height:30px; + left:97%; + cursor: pointer; + +} +#measureitemsid{ + margin-top: 10px ; + width: 30%; + height: 30px; + margin-left: 5px ; + font-size: 14px; + border-radius: 5px; + cursor: pointer; + box-shadow: 2px 2px 2px gray; + font-family: Georgia, 'Times New Roman', Times, serif; +} +#measureitemsid:hover{ + box-shadow: 4px 4px 4px gray; +} + +#selectionsid{ + margin-top: 10px ; + width: 68.8%; + height: 30px; + font-size: 14px; + border-radius: 5px; + cursor: pointer; + box-shadow: 2px 2px 2px gray; + font-family: Georgia, 'Times New Roman', Times, serif; +} +#selectionsid:hover{ + box-shadow: 4px 4px 4px gray; +} +#repeatforloop{ + margin-left: 5px ; + margin-top: 10px; + +} +#text0,#text1,#text2{ + font-size: 14px; + width: 31.5%; + height: 40px; + border-radius: 5px; + margin-bottom: 13px; + margin-right: 0.2%; + font-family: Georgia, 'Times New Roman', Times, serif; + +} +#addmctnameid{ + + width:35px; + height:35px; + left: 96.8%; + cursor: pointer; + + position: absolute; + border: none; +} +#doneebackground{ + top: 10px; + width:30px; + height:30px; + left: 96%; + cursor: pointer; + position: relative; + background-color: white; + border: none; +} + diff --git a/templates/home.html b/templates/home.html new file mode 100644 index 0000000000000000000000000000000000000000..a0c88ca2d67bf85e036b4532122fa6d5315cd2c6 --- /dev/null +++ b/templates/home.html @@ -0,0 +1,68 @@ + + + + + Flask Tutorial + + + + + +
+ +
+ + + +
+ + + + + +
+ + + + + + + + \ No newline at end of file diff --git a/templates/launch.json b/templates/launch.json new file mode 100644 index 0000000000000000000000000000000000000000..a3f7a79d536fd13bc4479e272712beac3ae51621 --- /dev/null +++ b/templates/launch.json @@ -0,0 +1,12 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "outputCapture": "std" + + } + ] + } + \ No newline at end of file diff --git a/templates/proposed-GUI.html b/templates/proposed-GUI.html new file mode 100644 index 0000000000000000000000000000000000000000..36aae4930615924a06977466fb84ab646cda28b8 --- /dev/null +++ b/templates/proposed-GUI.html @@ -0,0 +1,767 @@ + + + + + + + ADR Console - V2 + + + +
    + +
+ + + +
+

will enter user guide here

+
+
+ + + +
+ +
+
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+
+ + +
+
+
+
+
+
+ +
+
+
+ + + + + +
+
+
+
+ +
+ +
+





+
+ + + +
+

+
+ +
+

+
+ + + + +
+
+ +
+ + + + +
+
+ + + + + + + + + +
+ + +
+ + + +
+ + + + + + + + +