diff --git a/.coderabbit.yaml b/.coderabbit.yaml
index ec2953a161..42b705b571 100644
--- a/.coderabbit.yaml
+++ b/.coderabbit.yaml
@@ -8,4 +8,10 @@ reviews:
base_branches:
- main
- 1.6.x
- - 1.7.x
\ No newline at end of file
+ - 1.7.x
+ - 1.8.x
+ high_level_summary: false
+ poem: false
+ sequence_diagrams: false
+ collapse_walkthrough: true
+ changed_files_summary: false
diff --git a/.env b/.env
index d7aa8b8d9e..4d7c038a6b 100644
--- a/.env
+++ b/.env
@@ -21,12 +21,15 @@ _APP_OPTIONS_ROUTER_PROTECTION=disabled
_APP_OPTIONS_FORCE_HTTPS=disabled
_APP_OPTIONS_ROUTER_FORCE_HTTPS=disabled
_APP_OPENSSL_KEY_V1=your-secret-key
+_APP_DNS=8.8.8.8
_APP_DOMAIN=traefik
+_APP_CONSOLE_DOMAIN=localhost
_APP_DOMAIN_FUNCTIONS=functions.localhost
_APP_DOMAIN_SITES=sites.localhost
_APP_DOMAIN_TARGET_CNAME=test.localhost
_APP_DOMAIN_TARGET_A=127.0.0.1
_APP_DOMAIN_TARGET_AAAA=::1
+_APP_DOMAIN_TARGET_CAA=digicert.com
_APP_RULES_FORMAT=md5
_APP_REDIS_HOST=redis
_APP_REDIS_PORT=6379
@@ -84,8 +87,9 @@ _APP_COMPUTE_MAINTENANCE_INTERVAL=600
_APP_COMPUTE_RUNTIMES_NETWORK=runtimes
_APP_EXECUTOR_SECRET=your-secret-key
_APP_EXECUTOR_HOST=http://exc1/v1
-_APP_FUNCTIONS_RUNTIMES=php-8.0,node-18.0,python-3.9,ruby-3.1
-_APP_SITES_RUNTIMES=static-1,node-22,flutter-3.29
+_APP_BROWSER_HOST=http://appwrite-browser:3000/v1
+_APP_FUNCTIONS_RUNTIMES=node-22
+_APP_SITES_RUNTIMES=static-1,node-22
_APP_MAINTENANCE_INTERVAL=86400
_APP_MAINTENANCE_START_TIME=12:00
_APP_MAINTENANCE_RETENTION_CACHE=2592000
diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml
index 6d73787d00..62b4953e27 100644
--- a/.github/workflows/benchmark.yml
+++ b/.github/workflows/benchmark.yml
@@ -64,8 +64,9 @@ jobs:
sudo wget -O /usr/share/keyrings/azlux-archive-keyring.gpg https://azlux.fr/repo.gpg
sudo apt update
sudo apt install oha
+ oha --version
- name: Benchmark PR
- run: 'oha -z 180s http://localhost/v1/health/version -j > benchmark.json'
+ run: 'oha -z 180s http://localhost/v1/health/version --output-format json > benchmark.json'
- name: Cleaning
run: docker compose down -v
- name: Installing latest version
@@ -78,7 +79,7 @@ jobs:
docker compose up -d
sleep 10
- name: Benchmark Latest
- run: oha -z 180s http://localhost/v1/health/version -j > benchmark-latest.json
+ run: oha -z 180s http://localhost/v1/health/version --output-format json > benchmark-latest.json
- name: Prepare comment
run: |
echo '## :sparkles: Benchmark results' > benchmark.txt
diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml
index 04f8c822c7..1c5f36ace3 100644
--- a/.github/workflows/static-analysis.yml
+++ b/.github/workflows/static-analysis.yml
@@ -13,4 +13,9 @@ jobs:
- name: Run CodeQL
run: |
docker run --rm -v $PWD:/app composer:2.6 sh -c \
- "composer install --profile --ignore-platform-reqs && composer check"
\ No newline at end of file
+ "composer install --profile --ignore-platform-reqs && composer check"
+
+ - name: Run Locale check
+ run: |
+ docker run --rm -v $PWD:/app node:24-alpine sh -c \
+ "cd /app/.github/workflows/static-analysis/locale && node index.js"
diff --git a/.github/workflows/static-analysis/locale/index.js b/.github/workflows/static-analysis/locale/index.js
new file mode 100644
index 0000000000..dd4594fc4d
--- /dev/null
+++ b/.github/workflows/static-analysis/locale/index.js
@@ -0,0 +1,115 @@
+/*
+ * Look into all local files, and collect unique keys.
+ * Ensure fallback locale (English) has translation for all keys.
+ * If configured as `const strict = true`, all locales will be checked to include all keys.
+ */
+
+import { readdir, readFile } from "fs/promises";
+import { join, dirname } from "path";
+import { fileURLToPath } from "url";
+
+const config = {
+ strict: false,
+ fallbackLocale: "en.json",
+};
+
+(async () => {
+ try {
+ // Prepare current directory equivalent in ES modules
+ const __filename = fileURLToPath(import.meta.url);
+ const __dirname = dirname(__filename);
+
+ const translationsPath = join(
+ __dirname,
+ "../../../../app/config/locale/translations",
+ );
+
+ const files = (await readdir(translationsPath)).filter((file) =>
+ file.endsWith(".json"),
+ );
+
+ if (files.length === 0) {
+ console.error("No translation files found in ", translationsPath);
+ process.exit(1);
+ }
+
+ // Check if fallback locale exists
+ if (!files.includes(config.fallbackLocale)) {
+ console.error(`Fallback locale file ${config.fallbackLocale} not found`);
+ process.exit(1);
+ }
+
+ console.log(
+ `Found ${files.length} translation files in ${translationsPath}`,
+ );
+
+ // Collect all unique keys from all translation files
+ const allKeys = new Set();
+
+ for (const file of files) {
+ const filePath = join(translationsPath, file);
+ const content = await readFile(filePath, "utf8");
+ const translations = JSON.parse(content);
+
+ // Add all keys from this file
+ Object.keys(translations).forEach((key) => allKeys.add(key));
+ }
+
+ console.log(`Total unique keys found across all locales: ${allKeys.size}`);
+
+ const localesToCheck = [];
+ if (config.strict) {
+ localesToCheck.push(...files);
+ } else {
+ localesToCheck.push(config.fallbackLocale);
+ }
+
+ let errorsCount = 0;
+ let missingLocaleCount = 0;
+
+ for (const localeToCheck of localesToCheck) {
+ // Read locale
+ const path = join(translationsPath, localeToCheck);
+ const content = await readFile(path, "utf8");
+ const translations = JSON.parse(content);
+
+ // Check for missing keys in the locale
+ const keys = new Set(Object.keys(translations));
+ console.log(`Keys in locale (${localeToCheck}): ${keys.size}`);
+
+ const missingKeys = [];
+ for (const key of allKeys) {
+ if (!keys.has(key)) {
+ missingKeys.push(key);
+ }
+ }
+
+ if (missingKeys.length > 0) {
+ console.error(
+ `\nERROR: Fallback locale (${localeToCheck}) is missing ${missingKeys.length} key(s):`,
+ );
+ missingKeys.sort().forEach((key) => {
+ console.error(` - ${key}`);
+ });
+ console.error(
+ `\nTo fix this issue, add the missing keys to ${translationsPath}/${localeToCheck}`,
+ );
+ errorsCount++;
+ missingLocaleCount += missingKeys.length;
+ } else {
+ console.log(
+ `\nSUCCESS: Fallback locale (${localeToCheck}) contains all ${allKeys.size} keys.`,
+ );
+ }
+ }
+
+ if (errorsCount > 0) {
+ console.log(`\n${missingLocaleCount} locales missing found across ${errorsCount} locales.`);
+ process.exit(1);
+ }
+ } catch (error) {
+ console.error("Unexpected error.");
+ console.error(error);
+ process.exit(1);
+ }
+})();
diff --git a/.github/workflows/static-analysis/locale/package.json b/.github/workflows/static-analysis/locale/package.json
new file mode 100644
index 0000000000..748a3e6d2a
--- /dev/null
+++ b/.github/workflows/static-analysis/locale/package.json
@@ -0,0 +1,13 @@
+{
+ "name": "static-analysis-locale",
+ "version": "1.0.0",
+ "type": "module",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "description": ""
+}
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 6fd4e89858..cebdc02163 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -8,7 +8,15 @@ env:
IMAGE: appwrite-dev
CACHE_KEY: appwrite-dev-${{ github.event.pull_request.head.sha }}
-on: [ pull_request ]
+on:
+ pull_request:
+ workflow_dispatch:
+ inputs:
+ response_format:
+ description: 'Response format version to test (e.g., 1.5.0, 1.4.0)'
+ required: false
+ type: string
+ default: ''
jobs:
check_database_changes:
@@ -100,7 +108,10 @@ jobs:
run: docker compose exec -T appwrite vars
- name: Run Unit Tests
- run: docker compose exec appwrite test /usr/src/code/tests/unit
+ run: |
+ docker compose exec \
+ -e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
+ appwrite test /usr/src/code/tests/unit
e2e_general_test:
name: E2E General Test
@@ -132,7 +143,18 @@ jobs:
done
- name: Run General Tests
- run: docker compose exec -T appwrite test /usr/src/code/tests/e2e/General --debug
+ run: |
+ docker compose exec -T \
+ -e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
+ appwrite test /usr/src/code/tests/e2e/General --debug
+
+ - name: Failure Logs
+ if: failure()
+ run: |
+ echo "=== Appwrite Worker Builds Logs ==="
+ docker compose logs appwrite-worker-builds
+ echo "=== OpenRuntimes Executor Logs ==="
+ docker compose logs openruntimes-executor
e2e_service_test:
name: E2E Service Test
@@ -145,7 +167,8 @@ jobs:
Account,
Avatars,
Console,
- Databases,
+ Databases/Legacy,
+ Databases/TablesDB,
Functions,
FunctionsSchedule,
GraphQL,
@@ -178,6 +201,7 @@ jobs:
- name: Load and Start Appwrite
run: |
docker load --input /tmp/${{ env.IMAGE }}.tar
+ sed -i 's|^_APP_BROWSER_HOST=.*|_APP_BROWSER_HOST=http://invalid-browser/v1|' .env
docker compose up -d
sleep 30
@@ -198,7 +222,16 @@ jobs:
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
- appwrite test /usr/src/code/tests/e2e/Services/${{ matrix.service }} --debug --exclude=devKeys
+ -e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
+ appwrite test /usr/src/code/tests/e2e/Services/${{ matrix.service }} --debug --exclude-group devKeys,screenshots
+
+ - name: Failure Logs
+ if: failure()
+ run: |
+ echo "=== Appwrite Worker Builds Logs ==="
+ docker compose logs appwrite-worker-builds
+ echo "=== OpenRuntimes Executor Logs ==="
+ docker compose logs openruntimes-executor
e2e_shared_mode_test:
name: E2E Shared Mode Service Test
@@ -213,7 +246,8 @@ jobs:
Account,
Avatars,
Console,
- Databases,
+ Databases/Legacy,
+ Databases/TablesDB,
Functions,
FunctionsSchedule,
GraphQL,
@@ -277,14 +311,21 @@ jobs:
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
- appwrite test /usr/src/code/tests/e2e/Services/${{ matrix.service }} --debug --exclude=devKeys
+ -e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
+ appwrite test /usr/src/code/tests/e2e/Services/${{ matrix.service }} --debug --exclude-group devKeys,screenshots
+
+ - name: Failure Logs
+ if: failure()
+ run: |
+ echo "=== Appwrite Worker Builds Logs ==="
+ docker compose logs appwrite-worker-builds
+ echo "=== OpenRuntimes Executor Logs ==="
+ docker compose logs openruntimes-executor
e2e_dev_keys:
name: E2E Service Test (Dev Keys)
runs-on: ubuntu-latest
needs: setup
- strategy:
- fail-fast: false
steps:
- name: checkout
uses: actions/checkout@v4
@@ -312,8 +353,17 @@ jobs:
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
+ -e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/Services/Projects --debug --group=devKeys
+ - name: Failure Logs
+ if: failure()
+ run: |
+ echo "=== Appwrite Worker Builds Logs ==="
+ docker compose logs appwrite-worker-builds
+ echo "=== OpenRuntimes Executor Logs ==="
+ docker compose logs openruntimes-executor
+
e2e_dev_keys_shared_mode:
name: E2E Shared Mode Service Test (Dev Keys)
runs-on: ubuntu-latest
@@ -359,4 +409,113 @@ jobs:
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
+ -e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/Services/Projects --debug --group=devKeys
+
+ - name: Failure Logs
+ if: failure()
+ run: |
+ echo "=== Appwrite Worker Builds Logs ==="
+ docker compose logs appwrite-worker-builds
+ echo "=== OpenRuntimes Executor Logs ==="
+ docker compose logs openruntimes-executor
+
+ e2e_screenshots_keys:
+ name: E2E Service Test (Site Screenshots)
+ runs-on: ubuntu-latest
+ needs: setup
+ steps:
+ - name: checkout
+ uses: actions/checkout@v4
+
+ - name: Load Cache
+ uses: actions/cache@v4
+ with:
+ key: ${{ env.CACHE_KEY }}
+ path: /tmp/${{ env.IMAGE }}.tar
+ fail-on-cache-miss: true
+
+ - name: Load and Start Appwrite
+ run: |
+ docker load --input /tmp/${{ env.IMAGE }}.tar
+ sed -i 's/_APP_OPTIONS_ABUSE=disabled/_APP_OPTIONS_ABUSE=enabled/' .env
+ docker compose up -d
+ sleep 30
+
+ - name: Run Site tests with browser connected in dedicated table mode
+ run: |
+ echo "Keeping original value of _APP_BROWSER_HOST"
+ echo "Using project tables"
+ export _APP_DATABASE_SHARED_TABLES=
+ export _APP_DATABASE_SHARED_TABLES_V1=
+
+ docker compose exec -T \
+ -e _APP_DATABASE_SHARED_TABLES \
+ -e _APP_DATABASE_SHARED_TABLES_V1 \
+ -e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
+ appwrite test /usr/src/code/tests/e2e/Services/Sites --debug --group=screenshots
+
+ - name: Failure Logs
+ if: failure()
+ run: |
+ echo "=== Appwrite Worker Builds Logs ==="
+ docker compose logs appwrite-worker-builds
+ echo "=== OpenRuntimes Executor Logs ==="
+ docker compose logs openruntimes-executor
+
+ e2e_screenshots_shared_mode:
+ name: E2E Shared Mode Service Test (Site Screenshots)
+ runs-on: ubuntu-latest
+ needs: [ setup, check_database_changes ]
+ if: needs.check_database_changes.outputs.database_changed == 'true'
+ strategy:
+ fail-fast: false
+ matrix:
+ tables-mode: [
+ 'Shared V1',
+ 'Shared V2',
+ ]
+ steps:
+ - name: checkout
+ uses: actions/checkout@v4
+
+ - name: Load Cache
+ uses: actions/cache@v4
+ with:
+ key: ${{ env.CACHE_KEY }}
+ path: /tmp/${{ env.IMAGE }}.tar
+ fail-on-cache-miss: true
+
+ - name: Load and Start Appwrite
+ run: |
+ docker load --input /tmp/${{ env.IMAGE }}.tar
+ sed -i 's/_APP_OPTIONS_ABUSE=disabled/_APP_OPTIONS_ABUSE=enabled/' .env
+ docker compose up -d
+ sleep 30
+
+ - name: Run Site tests with browser connected in ${{ matrix.tables-mode }} table mode
+ run: |
+ echo "Keeping original value of _APP_BROWSER_HOST"
+ if [ "${{ matrix.tables-mode }}" == "Shared V1" ]; then
+ echo "Using shared tables V1"
+ export _APP_DATABASE_SHARED_TABLES=database_db_main
+ export _APP_DATABASE_SHARED_TABLES_V1=database_db_main
+ elif [ "${{ matrix.tables-mode }}" == "Shared V2" ]; then
+ echo "Using shared tables V2"
+ export _APP_DATABASE_SHARED_TABLES=database_db_main
+ export _APP_DATABASE_SHARED_TABLES_V1=
+ fi
+
+ docker compose exec -T \
+ -e _APP_DATABASE_SHARED_TABLES \
+ -e _APP_DATABASE_SHARED_TABLES_V1 \
+ -e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
+ appwrite test /usr/src/code/tests/e2e/Services/Sites --debug --group=screenshots
+
+ - name: Failure Logs
+ if: failure()
+ run: |
+ echo "=== Appwrite Worker Builds Logs ==="
+ docker compose logs appwrite-worker-builds
+ echo "=== OpenRuntimes Executor Logs ==="
+ docker compose logs openruntimes-executor
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 600a6aeb08..1d0f0533f2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,5 +16,5 @@ app/sdks
dev/yasd_init.php
.phpunit.result.cache
Makefile
-appwrite.json
+appwrite.config.json
/.zed/
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 277a509447..c6837673d5 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -9,7 +9,31 @@ You can [find issues using this query](https://github.com/search?q=org%3Aappwrit
## How to Start?
-If you are worried or don’t know where to start, check out the next section that explains what kind of help we could use and where you can get involved. You can send your questions to [@appwrite on Twitter](https://twitter.com/appwrite) or to anyone from the [Appwrite team on Discord](https://appwrite.io/discord). You can also submit an issue, and a maintainer can guide you!
+Welcome! We're excited that you're interested in contributing to Appwrite. To make sure your time is valued and your contributions are successful, please follow these steps before writing any code:
+
+### 🔍 Step 1: Find an Issue
+
+Browse open issues and look for ones labeled [good first issue](https://github.com/search?q=org%3Aappwrite+is%3Aopen+type%3Aissue+label%3A%22good+first+issue%22&type=issues) or [help wanted](https://github.com/search?q=org%3Aappwrite+is%3Aopen+type%3Aissue+label%3A%22help+wanted%22&type=issues).
+
+If you're not sure which issue to pick, ask in our [maintainers channel](https://discord.com/channels/564160730845151244/636852860709240842) on Discord.
+
+### 📝 Step 2: Ask to Be Assigned
+
+Before working on an issue, comment on the GitHub issue asking to be assigned. This prevents multiple people working on the same task.
+
+Then, create a thread in the [maintainers channel](https://discord.com/channels/564160730845151244/636852860709240842) on Discord with a link to the issue.
+
+Our team is small and may not see your GitHub comment right away - posting in the [maintainers channel](https://discord.com/channels/564160730845151244/636852860709240842) ensures it gets seen.
+
+### 💬 Step 3: Don’t Submit Random PRs
+
+If you're not working on an assigned issue, create a GitHub issue first.
+
+PRs submitted without context or discussion may not align with our roadmap and may be closed without review.
+
+### ⚠️ Please Note
+
+We’re a very small team managing a large project. Many PRs are submitted, and while we appreciate every effort, we can only review contributions that follow the process above. This helps us keep things fair and organized.
## Code of Conduct
diff --git a/Dockerfile b/Dockerfile
index 30b017b573..2a3e176838 100755
--- a/Dockerfile
+++ b/Dockerfile
@@ -12,7 +12,7 @@ RUN composer install --ignore-platform-reqs --optimize-autoloader \
--no-plugins --no-scripts --prefer-dist \
`if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi`
-FROM appwrite/base:0.10.1 AS final
+FROM appwrite/base:0.10.4 AS final
LABEL maintainer="team@appwrite.io"
@@ -50,13 +50,13 @@ RUN mkdir -p /storage/uploads && \
mkdir -p /storage/certificates && \
mkdir -p /storage/functions && \
mkdir -p /storage/debug && \
- chown -Rf www-data.www-data /storage/uploads && chmod -Rf 0755 /storage/uploads && \
- chown -Rf www-data.www-data /storage/imports && chmod -Rf 0755 /storage/imports && \
- chown -Rf www-data.www-data /storage/cache && chmod -Rf 0755 /storage/cache && \
- chown -Rf www-data.www-data /storage/config && chmod -Rf 0755 /storage/config && \
- chown -Rf www-data.www-data /storage/certificates && chmod -Rf 0755 /storage/certificates && \
- chown -Rf www-data.www-data /storage/functions && chmod -Rf 0755 /storage/functions && \
- chown -Rf www-data.www-data /storage/debug && chmod -Rf 0755 /storage/debug
+ chown -Rf www-data:www-data /storage/uploads && chmod -Rf 0755 /storage/uploads && \
+ chown -Rf www-data:www-data /storage/imports && chmod -Rf 0755 /storage/imports && \
+ chown -Rf www-data:www-data /storage/cache && chmod -Rf 0755 /storage/cache && \
+ chown -Rf www-data:www-data /storage/config && chmod -Rf 0755 /storage/config && \
+ chown -Rf www-data:www-data /storage/certificates && chmod -Rf 0755 /storage/certificates && \
+ chown -Rf www-data:www-data /storage/functions && chmod -Rf 0755 /storage/functions && \
+ chown -Rf www-data:www-data /storage/debug && chmod -Rf 0755 /storage/debug
# Executables
RUN chmod +x /usr/local/bin/doctor && \
diff --git a/README-CN.md b/README-CN.md
index 811fe6435c..ad9ce7d29a 100644
--- a/README-CN.md
+++ b/README-CN.md
@@ -26,7 +26,7 @@
[**Appwrite 云公开测试版!立即注册!**](https://cloud.appwrite.io)
-Appwrite 是一个基于 Docker 的端到端开发者平台,其容器化的微服务库可应用于网页端,移动端,以及后端。Appwrite 通过视觉化界面简化了从零开始编写 API 的繁琐过程,在保证软件安全的前提下为开发者创造了一个高效的开发环境。
+Appwrite 是一个基于 Docker 的端到端开发者平台,其容器化的微服务库可应用于网页端,移动端,原生应用,以及后端。它既包含后端服务器,也提供了用于部署静态和服务器端渲染前端的完全集成托管解决方案。Appwrite 通过视觉化界面简化了从零开始构建现代应用的复杂性和重复性,让您能够更快地构建安全的全栈应用。
Appwrite 可以提供给开发者用户验证,外部授权,用户数据读写检索,文件储存,图像处理,云函数计算,[等多种服务](https://appwrite.io/docs).
@@ -72,7 +72,7 @@ docker run -it --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
--entrypoint="install" \
- appwrite/appwrite:1.7.2
+ appwrite/appwrite:1.8.0
```
### Windows
@@ -84,7 +84,7 @@ docker run -it --rm ^
--volume //var/run/docker.sock:/var/run/docker.sock ^
--volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^
--entrypoint="install" ^
- appwrite/appwrite:1.7.2
+ appwrite/appwrite:1.8.0
```
#### PowerShell
@@ -94,7 +94,7 @@ docker run -it --rm `
--volume /var/run/docker.sock:/var/run/docker.sock `
--volume ${pwd}/appwrite:/usr/src/code/appwrite:rw `
--entrypoint="install" `
- appwrite/appwrite:1.7.2
+ appwrite/appwrite:1.8.0
```
运行后,可以在浏览器上访问 http://localhost 找到 Appwrite 控制台。在非 Linux 的本机主机上完成安装后,服务器可能需要几分钟才能启动。
@@ -179,6 +179,8 @@ docker run -it --rm `
- [**消息传递**](https://appwrite.io/docs/references/cloud/client-web/messaging) - 使用 Appwrite 消息传递功能通过推送通知、电子邮件和短信与用户进行通信。
- [**语言适配**](https://appwrite.io/docs/references/cloud/client-web/locale) - 根据用户所在的的国家和地区做出合适的语言适配。
- [**头像**](https://appwrite.io/docs/references/cloud/client-web/avatars) -管理用户头像、国家旗帜、浏览器图标、信用卡符号,和生成二维码。
+- [**MCP**](https://appwrite.io/docs/tooling/mcp) - 使用 Appwrite 的模型上下文协议(Model Context Protocol)服务器,允许大语言模型(LLM)和 AI 工具(如 Claude Desktop、Cursor 和 Windsurf Editor)通过自然语言直接与您的 Appwrite 项目交互。
+- [**站点**](https://appwrite.io/docs/products/sites) - 直接从 Appwrite 开发、部署和扩展您的 Web 应用程序,与您的后端一起。
如需完整的 API 界面文档,请访问 [https://appwrite.io/docs](https://appwrite.io/docs)。如需更多教程、新闻和公告,请订阅我们的 [博客](https://medium.com/appwrite-io) 和 加入我们的[Discord 社区](https://discord.gg/GSeTUeA)。
### 开发套件
diff --git a/README.md b/README.md
index f29be0bd61..9cd5808e33 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,15 @@
+> We just announced Timestamp Overrides for Appwrite Databases - [Learn more](https://appwrite.io/blog/post/announcing-timestamp-overrides)
+
+> Appwrite Cloud is now Generally Available - [Learn more](https://appwrite.io/cloud-ga)
+
> [Get started with Appwrite](https://apwr.dev/appcloud)
-> [Join the Init kick off event 19th of May: The future of Appwrite with Founder & CEO Eldad Fux](https://www.youtube.com/watch?v=1g8tuogsp7A)
- Appwrite is a backend platform for developing Web, Mobile, and Flutter applications. Built with the open source community and optimized for developer experience in the coding languages you love.
+ Appwrite is an all-in-one development platform for Web, Mobile, and Flutter applications. Use built-in backend infrastructure and web hosting, all from a single place. Built with the open source community and optimized for developer experience in the coding languages you love.
@@ -25,7 +28,7 @@
English | [简体中文](README-CN.md)
-Appwrite is an end-to-end backend server for Web, Mobile, Native, or Backend apps packaged as a set of Docker microservices. Appwrite abstracts the complexity and repetitiveness required to build a modern backend API from scratch and allows you to build secure apps faster.
+Appwrite is an end-to-end platform for building Web, Mobile, Native, or Backend apps, packaged as a set of Docker microservices. It includes both a backend server and a fully integrated hosting solution for deploying static and server-side rendered frontends. Appwrite abstracts the complexity and repetitiveness required to build modern apps from scratch and allows you to build secure, full-stack applications faster.
Using Appwrite, you can easily integrate your app with user authentication and multiple sign-in methods, a database for storing and querying users and team data, storage and file management, image manipulation, Cloud Functions, messaging, and [more services](https://appwrite.io/docs).
@@ -42,7 +45,7 @@ Find out more at: [https://appwrite.io](https://appwrite.io).
Table of Contents:
-- [Getting Started](#getting-started)
+- [Installation \& Setup](#installation--setup)
- [Self-Hosting](#self-hosting)
- [Unix](#unix)
- [Windows](#windows)
@@ -62,8 +65,9 @@ Table of Contents:
- [Follow Us](#follow-us)
- [License](#license)
-## Getting Started
-The easiest way to get started with Appwrite is by [signing up for Appwrite Cloud](https://cloud.appwrite.io/). While Appwrite Cloud is in public beta, you can build with Appwrite completely free, and we won't collect you credit card information.
+## Installation & Setup
+
+The easiest way to get started with Appwrite is by [signing up for Appwrite Cloud](https://cloud.appwrite.io/). While Appwrite Cloud is in public beta, you can build with Appwrite completely free, and we won't collect your credit card information.
## Self-Hosting
@@ -78,7 +82,7 @@ docker run -it --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
--entrypoint="install" \
- appwrite/appwrite:1.7.2
+ appwrite/appwrite:1.8.0
```
### Windows
@@ -90,7 +94,7 @@ docker run -it --rm ^
--volume //var/run/docker.sock:/var/run/docker.sock ^
--volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^
--entrypoint="install" ^
- appwrite/appwrite:1.7.2
+ appwrite/appwrite:1.8.0
```
#### PowerShell
@@ -100,7 +104,7 @@ docker run -it --rm `
--volume /var/run/docker.sock:/var/run/docker.sock `
--volume ${pwd}/appwrite:/usr/src/code/appwrite:rw `
--entrypoint="install" `
- appwrite/appwrite:1.7.2
+ appwrite/appwrite:1.8.0
```
Once the Docker installation is complete, go to http://localhost to access the Appwrite console from your browser. Please note that on non-Linux native hosts, the server might take a few minutes to start after completing the installation.
@@ -128,19 +132,19 @@ Choose from one of the providers below:
- Gitpod
+ Gitpod
- Akamai Compute
+ Akamai Compute
- AWS Marketplace
+ AWS Marketplace
@@ -186,6 +190,8 @@ Getting started with Appwrite is as easy as creating a new project, choosing you
- [**Realtime**](https://appwrite.io/docs/realtime) - Listen to real-time events for any of your Appwrite services including users, storage, functions, databases, and more.
- [**Locale**](https://appwrite.io/docs/references/cloud/client-web/locale) - Track your user's location and manage your app locale-based data.
- [**Avatars**](https://appwrite.io/docs/references/cloud/client-web/avatars) - Manage your users' avatars, countries' flags, browser icons, and credit card symbols. Generate QR codes from links or plaintext strings.
+- [**MCP**](https://appwrite.io/docs/tooling/mcp) - Use Appwrite's Model Context Protocol (MCP) server to allow LLMs and AI tools like Claude Desktop, Cursor, and Windsurf Editor to directly interact with your Appwrite project through natural language.
+- [**Sites**](https://appwrite.io/docs/products/sites) - Develop, deploy, and scale your web applications directly from Appwrite, alongside your backend.
For the complete API documentation, visit [https://appwrite.io/docs](https://appwrite.io/docs). For more tutorials, news and announcements check out our [blog](https://medium.com/appwrite-io) and [Discord Server](https://discord.gg/GSeTUeA).
diff --git a/app/cli.php b/app/cli.php
index 224f150a58..0f98cf3458 100644
--- a/app/cli.php
+++ b/app/cli.php
@@ -125,7 +125,7 @@ CLI::setResource('getProjectDB', function (Group $pools, Database $dbForPlatform
if (\in_array($dsn->getHost(), $sharedTables)) {
$database
->setSharedTables(true)
- ->setTenant($project->getSequence())
+ ->setTenant((int)$project->getSequence())
->setNamespace($dsn->getParam('namespace'));
} else {
$database
@@ -145,7 +145,7 @@ CLI::setResource('getProjectDB', function (Group $pools, Database $dbForPlatform
if (\in_array($dsn->getHost(), $sharedTables)) {
$database
->setSharedTables(true)
- ->setTenant($project->getSequence())
+ ->setTenant((int)$project->getSequence())
->setNamespace($dsn->getParam('namespace'));
} else {
$database
@@ -167,7 +167,7 @@ CLI::setResource('getLogsDB', function (Group $pools, Cache $cache) {
return function (?Document $project = null) use ($pools, $cache, $database) {
if ($database !== null && $project !== null && !$project->isEmpty() && $project->getId() !== 'console') {
- $database->setTenant($project->getSequence());
+ $database->setTenant((int)$project->getSequence());
return $database;
}
@@ -182,22 +182,36 @@ CLI::setResource('getLogsDB', function (Group $pools, Cache $cache) {
// set tenant
if ($project !== null && !$project->isEmpty() && $project->getId() !== 'console') {
- $database->setTenant($project->getSequence());
+ $database->setTenant((int)$project->getSequence());
}
return $database;
};
}, ['pools', 'cache']);
-
+CLI::setResource('publisher', function (Group $pools) {
+ return new BrokerPool(publisher: $pools->get('publisher'));
+}, ['pools']);
+CLI::setResource('publisherDatabases', function (BrokerPool $publisher) {
+ return $publisher;
+}, ['publisher']);
+CLI::setResource('publisherFunctions', function (BrokerPool $publisher) {
+ return $publisher;
+}, ['publisher']);
+CLI::setResource('publisherMigrations', function (BrokerPool $publisher) {
+ return $publisher;
+}, ['publisher']);
+CLI::setResource('publisherStatsUsage', function (BrokerPool $publisher) {
+ return $publisher;
+}, ['publisher']);
+CLI::setResource('publisherMessaging', function (BrokerPool $publisher) {
+ return $publisher;
+}, ['publisher']);
CLI::setResource('queueForStatsUsage', function (Publisher $publisher) {
return new StatsUsage($publisher);
}, ['publisher']);
CLI::setResource('queueForStatsResources', function (Publisher $publisher) {
return new StatsResources($publisher);
}, ['publisher']);
-CLI::setResource('publisher', function (Group $pools) {
- return new BrokerPool(publisher: $pools->get('publisher'));
-}, ['pools']);
CLI::setResource('queueForFunctions', function (Publisher $publisher) {
return new Func($publisher);
}, ['publisher']);
@@ -251,7 +265,7 @@ CLI::setResource('logError', function (Registry $register) {
};
}, ['register']);
-CLI::setResource('executor', fn () => new Executor(fn (string $projectId, string $deploymentId) => System::getEnv('_APP_EXECUTOR_HOST')));
+CLI::setResource('executor', fn () => new Executor());
CLI::setResource('telemetry', fn () => new NoTelemetry());
@@ -284,6 +298,5 @@ $cli
$cli->shutdown()->action(fn () => Timer::clearAll());
-// Enable coroutines, but disable TCP hooks. These don't work until we use `\Utopia\Cache\Adapter\Pool` and `\Utopia\Database\Adapter\Pool`.
-Runtime::enableCoroutine(SWOOLE_HOOK_ALL ^ SWOOLE_HOOK_TCP);
+Runtime::enableCoroutine(SWOOLE_HOOK_ALL);
run($cli->run(...));
diff --git a/app/config/avatars/credit-cards.php b/app/config/avatars/credit-cards.php
index 52760bf9dc..b693e99fb2 100644
--- a/app/config/avatars/credit-cards.php
+++ b/app/config/avatars/credit-cards.php
@@ -13,7 +13,7 @@ return [
'mastercard' => ['name' => 'Mastercard', 'path' => __DIR__ . '/credit-cards/mastercard.png'],
'naranja' => ['name' => 'Naranja', 'path' => __DIR__ . '/credit-cards/naranja.png'],
'targeta-shopping' => ['name' => 'Tarjeta Shopping', 'path' => __DIR__ . '/credit-cards/tarjeta-shopping.png'],
- 'union-china-pay' => ['name' => 'Union China Pay', 'path' => __DIR__ . '/credit-cards/union-china-pay.png'],
+ 'unionpay' => ['name' => 'Union Pay', 'path' => __DIR__ . '/credit-cards/unionpay.png'],
'visa' => ['name' => 'Visa', 'path' => __DIR__ . '/credit-cards/visa.png'],
'mir' => ['name' => 'MIR', 'path' => __DIR__ . '/credit-cards/mir.png'],
'maestro' => ['name' => 'Maestro', 'path' => __DIR__ . '/credit-cards/maestro.png'],
diff --git a/app/config/avatars/credit-cards/union-china-pay.png b/app/config/avatars/credit-cards/unionpay.png
similarity index 100%
rename from app/config/avatars/credit-cards/union-china-pay.png
rename to app/config/avatars/credit-cards/unionpay.png
diff --git a/app/config/collections/common.php b/app/config/collections/common.php
index e77d5403d2..6de7eb224b 100644
--- a/app/config/collections/common.php
+++ b/app/config/collections/common.php
@@ -1439,13 +1439,6 @@ return [
'lengths' => [],
'orders' => [Database::ORDER_ASC],
],
- [
- '$id' => ID::custom('_key_roles'),
- 'type' => Database::INDEX_KEY,
- 'attributes' => ['roles'],
- 'lengths' => [128],
- 'orders' => [],
- ],
],
],
diff --git a/app/config/collections/platform.php b/app/config/collections/platform.php
index 60f181df66..b839e51622 100644
--- a/app/config/collections/platform.php
+++ b/app/config/collections/platform.php
@@ -407,7 +407,7 @@ return [
'format' => '',
'size' => Database::LENGTH_KEY,
'signed' => true,
- 'required' => true,
+ 'required' => false,
'default' => null,
'array' => false,
'filters' => [],
diff --git a/app/config/collections/projects.php b/app/config/collections/projects.php
index 48a0938a1c..7fc82b7441 100644
--- a/app/config/collections/projects.php
+++ b/app/config/collections/projects.php
@@ -51,6 +51,16 @@ return [
'default' => null,
'array' => false,
],
+ [
+ '$id' => ID::custom('type'),
+ 'type' => Database::VAR_STRING,
+ 'size' => 128,
+ 'required' => false,
+ 'default' => 'tablesdb',
+ 'signed' => true,
+ 'array' => false,
+ 'filters' => [],
+ ],
],
'indexes' => [
[
@@ -1286,6 +1296,7 @@ return [
]
],
],
+
'deployments' => [
'$collection' => ID::custom(Database::METADATA),
'$id' => ID::custom('deployments'),
@@ -1916,7 +1927,7 @@ return [
'$id' => ID::custom('errors'),
'type' => Database::VAR_STRING,
'format' => '',
- 'size' => 1000000,
+ 'size' => APP_FUNCTION_ERROR_LENGTH_LIMIT,
'signed' => true,
'required' => false,
'default' => null,
@@ -1927,7 +1938,7 @@ return [
'$id' => ID::custom('logs'),
'type' => Database::VAR_STRING,
'format' => '',
- 'size' => 1000000,
+ 'size' => APP_FUNCTION_LOG_LENGTH_LIMIT,
'signed' => true,
'required' => false,
'default' => null,
diff --git a/app/config/console.php b/app/config/console.php
index 1de3a99370..faacecaa08 100644
--- a/app/config/console.php
+++ b/app/config/console.php
@@ -5,7 +5,7 @@
*/
use Appwrite\Auth\Auth;
-use Appwrite\Network\Validator\Origin;
+use Appwrite\Network\Platform;
use Utopia\Database\Helpers\ID;
use Utopia\System\System;
@@ -23,7 +23,7 @@ $console = [
[
'$collection' => ID::custom('platforms'),
'name' => 'Localhost',
- 'type' => Origin::CLIENT_TYPE_WEB,
+ 'type' => Platform::TYPE_WEB,
'hostname' => 'localhost',
], // Current host is added on app init
],
@@ -39,7 +39,8 @@ $console = [
'invites' => System::getEnv('_APP_CONSOLE_INVITES', 'enabled') === 'enabled',
'limit' => (System::getEnv('_APP_CONSOLE_WHITELIST_ROOT', 'enabled') === 'enabled') ? 1 : 0, // limit signup to 1 user
'duration' => Auth::TOKEN_EXPIRATION_LOGIN_LONG, // 1 Year in seconds
- 'sessionAlerts' => System::getEnv('_APP_CONSOLE_SESSION_ALERTS', 'disabled') === 'enabled'
+ 'sessionAlerts' => System::getEnv('_APP_CONSOLE_SESSION_ALERTS', 'disabled') === 'enabled',
+ 'invalidateSessions' => true
],
'authWhitelistEmails' => (!empty(System::getEnv('_APP_CONSOLE_WHITELIST_EMAILS', null))) ? \explode(',', System::getEnv('_APP_CONSOLE_WHITELIST_EMAILS', null)) : [],
'authWhitelistIPs' => (!empty(System::getEnv('_APP_CONSOLE_WHITELIST_IPS', null))) ? \explode(',', System::getEnv('_APP_CONSOLE_WHITELIST_IPS', null)) : [],
diff --git a/app/config/errors.php b/app/config/errors.php
index 6d9d29a8ea..156af5db8f 100644
--- a/app/config/errors.php
+++ b/app/config/errors.php
@@ -69,9 +69,14 @@ return [
'description' => 'The request contains one or more invalid arguments. Please refer to the endpoint documentation.',
'code' => 400,
],
- Exception::GENERAL_QUERY_LIMIT_EXCEEDED => [
- 'name' => Exception::GENERAL_QUERY_LIMIT_EXCEEDED,
- 'description' => 'Query limit exceeded for the current attribute. Usage of more than 100 query values on a single attribute is prohibited.',
+ Exception::GENERAL_ATTRIBUTE_QUERY_LIMIT_EXCEEDED => [
+ 'name' => Exception::GENERAL_ATTRIBUTE_QUERY_LIMIT_EXCEEDED,
+ 'description' => 'Query limit exceeded for the current attribute.',
+ 'code' => 400,
+ ],
+ Exception::GENERAL_COLUMN_QUERY_LIMIT_EXCEEDED => [
+ 'name' => Exception::GENERAL_COLUMN_QUERY_LIMIT_EXCEEDED,
+ 'description' => 'Query limit exceeded for the current column.',
'code' => 400,
],
Exception::GENERAL_QUERY_INVALID => [
@@ -393,6 +398,16 @@ return [
'description' => 'Membership is already confirmed.',
'code' => 409,
],
+ Exception::MEMBERSHIP_DELETION_PROHIBITED => [
+ 'name' => Exception::MEMBERSHIP_DELETION_PROHIBITED,
+ 'description' => 'Membership deletion is prohibited.',
+ 'code' => 400,
+ ],
+ Exception::MEMBERSHIP_DOWNGRADE_PROHIBITED => [
+ 'name' => Exception::MEMBERSHIP_DOWNGRADE_PROHIBITED,
+ 'description' => 'Membership role downgrade is prohibited.',
+ 'code' => 400,
+ ],
/** Avatars */
Exception::AVATAR_SET_NOT_FOUND => [
@@ -420,6 +435,11 @@ return [
'description' => 'The requested favicon could not be found.',
'code' => 404,
],
+ Exception::AVATAR_SVG_SANITIZATION_FAILED => [
+ 'name' => Exception::AVATAR_SVG_SANITIZATION_FAILED,
+ 'description' => 'SVG sanitization failed.',
+ 'code' => 400,
+ ],
/** Storage */
Exception::STORAGE_FILE_ALREADY_EXISTS => [
@@ -658,7 +678,7 @@ return [
],
Exception::DATABASE_QUERY_ORDER_NULL => [
'name' => Exception::DATABASE_QUERY_ORDER_NULL,
- 'description' => 'The order attribute had a null value. Cursor pagination requires all documents order attribute values are non-null.',
+ 'description' => 'The order attribute/column had a null value. Cursor pagination requires all documents/rows order attribute/column values are non-null.',
'code' => 400,
],
@@ -679,6 +699,23 @@ return [
'code' => 400,
],
+ /** Tables */
+ Exception::TABLE_NOT_FOUND => [
+ 'name' => Exception::TABLE_NOT_FOUND,
+ 'description' => 'Table with the requested ID could not be found.',
+ 'code' => 404,
+ ],
+ Exception::TABLE_ALREADY_EXISTS => [
+ 'name' => Exception::TABLE_ALREADY_EXISTS,
+ 'description' => 'A table with the requested ID already exists. Try again with a different ID or use ID.unique() to generate a unique ID.',
+ 'code' => 409,
+ ],
+ Exception::TABLE_LIMIT_EXCEEDED => [
+ 'name' => Exception::TABLE_LIMIT_EXCEEDED,
+ 'description' => 'The maximum number of tables has been reached.',
+ 'code' => 400,
+ ],
+
/** Documents */
Exception::DOCUMENT_NOT_FOUND => [
'name' => Exception::DOCUMENT_NOT_FOUND,
@@ -716,6 +753,43 @@ return [
'code' => 403,
],
+ /** Rows */
+ Exception::ROW_NOT_FOUND => [
+ 'name' => Exception::ROW_NOT_FOUND,
+ 'description' => 'Row with the requested ID could not be found.',
+ 'code' => 404,
+ ],
+ Exception::ROW_INVALID_STRUCTURE => [
+ 'name' => Exception::ROW_INVALID_STRUCTURE,
+ 'description' => 'The row structure is invalid. Please ensure the columns match the table definition.',
+ 'code' => 400,
+ ],
+ Exception::ROW_MISSING_DATA => [
+ 'name' => Exception::ROW_MISSING_DATA,
+ 'description' => 'The row data is missing. Try again with row data populated',
+ 'code' => 400,
+ ],
+ Exception::ROW_MISSING_PAYLOAD => [
+ 'name' => Exception::ROW_MISSING_PAYLOAD,
+ 'description' => 'The row data and permissions are missing. You must provide either row data or permissions to be updated.',
+ 'code' => 400,
+ ],
+ Exception::ROW_ALREADY_EXISTS => [
+ 'name' => Exception::ROW_ALREADY_EXISTS,
+ 'description' => 'Row with the requested ID already exists. Try again with a different ID or use ID.unique() to generate a unique ID.',
+ 'code' => 409,
+ ],
+ Exception::ROW_UPDATE_CONFLICT => [
+ 'name' => Exception::ROW_UPDATE_CONFLICT,
+ 'description' => 'Remote row is newer than local.',
+ 'code' => 409,
+ ],
+ Exception::ROW_DELETE_RESTRICTED => [
+ 'name' => Exception::ROW_DELETE_RESTRICTED,
+ 'description' => 'Row cannot be deleted because it is referenced by another row.',
+ 'code' => 403,
+ ],
+
/** Attributes */
Exception::ATTRIBUTE_NOT_FOUND => [
'name' => Exception::ATTRIBUTE_NOT_FOUND,
@@ -762,16 +836,81 @@ return [
'description' => 'The attribute type is invalid.',
'code' => 400,
],
+ Exception::ATTRIBUTE_INVALID_RESIZE => [
+ 'name' => Exception::ATTRIBUTE_INVALID_RESIZE,
+ 'description' => 'Existing data is too large for new size, truncate your existing data then try again.',
+ 'code' => 400,
+ ],
+
+ Exception::ATTRIBUTE_TYPE_NOT_SUPPORTED => [
+ 'name' => Exception::ATTRIBUTE_TYPE_NOT_SUPPORTED,
+ 'description' => 'Attribute type is not supported.',
+ 'code' => 400,
+ ],
+
+ /** Exists for both Attributes & Columns */
Exception::RELATIONSHIP_VALUE_INVALID => [
'name' => Exception::RELATIONSHIP_VALUE_INVALID,
'description' => 'The relationship value is invalid.',
'code' => 400,
],
- Exception::ATTRIBUTE_INVALID_RESIZE => [
- 'name' => Exception::ATTRIBUTE_INVALID_RESIZE,
+
+ /** Columns */
+ Exception::COLUMN_NOT_FOUND => [
+ 'name' => Exception::COLUMN_NOT_FOUND,
+ 'description' => 'Column with the requested ID could not be found.',
+ 'code' => 404,
+ ],
+ Exception::COLUMN_UNKNOWN => [
+ 'name' => Exception::COLUMN_UNKNOWN,
+ 'description' => 'The column required for the index could not be found. Please confirm all your columns are in the available state.',
+ 'code' => 400,
+ ],
+ Exception::COLUMN_NOT_AVAILABLE => [
+ 'name' => Exception::COLUMN_NOT_AVAILABLE,
+ 'description' => 'The requested column is not yet available. Please try again later.',
+ 'code' => 400,
+ ],
+ Exception::COLUMN_FORMAT_UNSUPPORTED => [
+ 'name' => Exception::COLUMN_FORMAT_UNSUPPORTED,
+ 'description' => 'The requested column format is not supported.',
+ 'code' => 400,
+ ],
+ Exception::COLUMN_DEFAULT_UNSUPPORTED => [
+ 'name' => Exception::COLUMN_DEFAULT_UNSUPPORTED,
+ 'description' => 'Default values cannot be set for array or required columns.',
+ 'code' => 400,
+ ],
+ Exception::COLUMN_ALREADY_EXISTS => [
+ 'name' => Exception::COLUMN_ALREADY_EXISTS,
+ 'description' => 'Column with the requested key already exists. Column keys must be unique, try again with a different key.',
+ 'code' => 409,
+ ],
+ Exception::COLUMN_LIMIT_EXCEEDED => [
+ 'name' => Exception::COLUMN_LIMIT_EXCEEDED,
+ 'description' => 'The maximum number or size of columns for this table has been reached.',
+ 'code' => 400,
+ ],
+ Exception::COLUMN_VALUE_INVALID => [
+ 'name' => Exception::COLUMN_VALUE_INVALID,
+ 'description' => 'The column value is invalid. Please check the type, range and value of the column.',
+ 'code' => 400,
+ ],
+ Exception::COLUMN_TYPE_INVALID => [
+ 'name' => Exception::COLUMN_TYPE_INVALID,
+ 'description' => 'The column type is invalid.',
+ 'code' => 400,
+ ],
+ Exception::COLUMN_INVALID_RESIZE => [
+ 'name' => Exception::COLUMN_INVALID_RESIZE,
'description' => "Existing data is too large for new size, truncate your existing data then try again.",
'code' => 400,
],
+ Exception::COLUMN_TYPE_NOT_SUPPORTED => [
+ 'name' => Exception::COLUMN_TYPE_NOT_SUPPORTED,
+ 'description' => 'Column type is not supported.',
+ 'code' => 400,
+ ],
/** Indexes */
Exception::INDEX_NOT_FOUND => [
@@ -800,6 +939,33 @@ return [
'code' => 409,
],
+ /** Column Indexes, same as Indexes but with different type */
+ Exception::COLUMN_INDEX_NOT_FOUND => [
+ 'name' => Exception::COLUMN_INDEX_NOT_FOUND,
+ 'description' => 'Index with the requested ID could not be found.',
+ 'code' => 404,
+ ],
+ Exception::COLUMN_INDEX_LIMIT_EXCEEDED => [
+ 'name' => Exception::COLUMN_INDEX_LIMIT_EXCEEDED,
+ 'description' => 'The maximum number of indexes has been reached.',
+ 'code' => 400,
+ ],
+ Exception::COLUMN_INDEX_ALREADY_EXISTS => [
+ 'name' => Exception::COLUMN_INDEX_ALREADY_EXISTS,
+ 'description' => 'Index with the requested key already exists. Try again with a different key.',
+ 'code' => 409,
+ ],
+ Exception::COLUMN_INDEX_INVALID => [
+ 'name' => Exception::COLUMN_INDEX_INVALID,
+ 'description' => 'Index invalid.',
+ 'code' => 400,
+ ],
+ Exception::COLUMN_INDEX_DEPENDENCY => [
+ 'name' => Exception::COLUMN_INDEX_DEPENDENCY,
+ 'description' => 'Column cannot be renamed or deleted. Please remove the associated index first.',
+ 'code' => 409,
+ ],
+
/** Project Errors */
Exception::PROJECT_NOT_FOUND => [
'name' => Exception::PROJECT_NOT_FOUND,
diff --git a/app/config/events.php b/app/config/events.php
index 0bfddf4f1f..c6006b569f 100644
--- a/app/config/events.php
+++ b/app/config/events.php
@@ -95,6 +95,65 @@ return [
'$model' => Response::MODEL_DATABASE,
'$resource' => true,
'$description' => 'This event triggers on any database event.',
+ 'tables' => [
+ '$model' => Response::MODEL_TABLE,
+ '$resource' => true,
+ '$description' => 'This event triggers on any table event.',
+ 'rows' => [
+ '$model' => Response::MODEL_ROW,
+ '$resource' => true,
+ '$description' => 'This event triggers on any rows event.',
+ 'create' => [
+ '$description' => 'This event triggers when a row is created.',
+ ],
+ 'update' => [
+ '$description' => 'This event triggers when a row is updated.'
+ ],
+ 'upsert' => [
+ '$description' => 'This event triggers when a document is upserted.',
+ ],
+ 'delete' => [
+ '$description' => 'This event triggers when a row is deleted.'
+ ],
+ ],
+ 'indexes' => [
+ '$model' => Response::MODEL_COLUMN_INDEX,
+ '$resource' => true,
+ '$description' => 'This event triggers on any indexes event.',
+ 'create' => [
+ '$description' => 'This event triggers when an index is created.',
+ ],
+ 'update' => [
+ '$description' => 'This event triggers when an index is updated.',
+ ],
+ 'delete' => [
+ '$description' => 'This event triggers when an index is deleted.'
+ ]
+ ],
+ 'columns' => [
+ '$model' => Response::MODEL_COLUMN,
+ '$resource' => true,
+ '$description' => 'This event triggers on any columns event.',
+ 'create' => [
+ '$description' => 'This event triggers when a column is created.',
+ ],
+ 'delete' => [
+ '$description' => 'This event triggers when an column is deleted.'
+ ],
+ 'update' => [
+ '$description' => 'This event triggers when a column is created.',
+ ],
+ ],
+ 'create' => [
+ '$description' => 'This event triggers when a table is created.'
+ ],
+ 'update' => [
+ '$description' => 'This event triggers when a table is updated.',
+ ],
+ 'delete' => [
+ '$description' => 'This event triggers when a table is deleted.',
+ ],
+ ],
'collections' => [
'$model' => Response::MODEL_COLLECTION,
'$resource' => true,
@@ -106,12 +165,15 @@ return [
'create' => [
'$description' => 'This event triggers when a document is created.',
],
- 'delete' => [
- '$description' => 'This event triggers when a document is deleted.'
- ],
'update' => [
'$description' => 'This event triggers when a document is updated.'
],
+ 'upsert' => [
+ '$description' => 'This event triggers when a document is upserted.',
+ ],
+ 'delete' => [
+ '$description' => 'This event triggers when a document is deleted.'
+ ],
],
'indexes' => [
'$model' => Response::MODEL_INDEX,
@@ -122,7 +184,10 @@ return [
],
'delete' => [
'$description' => 'This event triggers when an index is deleted.'
- ]
+ ],
+ 'update' => [
+ '$description' => 'This event triggers when a column is created.',
+ ],
],
'attributes' => [
'$model' => Response::MODEL_ATTRIBUTE,
@@ -131,6 +196,9 @@ return [
'create' => [
'$description' => 'This event triggers when an attribute is created.',
],
+ 'update' => [
+ '$description' => 'This event triggers when a column is created.',
+ ],
'delete' => [
'$description' => 'This event triggers when an attribute is deleted.'
]
@@ -138,22 +206,22 @@ return [
'create' => [
'$description' => 'This event triggers when a collection is created.'
],
+ 'update' => [
+ '$description' => 'This event triggers when a collection is updated.',
+ ],
'delete' => [
'$description' => 'This event triggers when a collection is deleted.',
],
- 'update' => [
- '$description' => 'This event triggers when a collection is updated.',
- ]
],
'create' => [
'$description' => 'This event triggers when a database is created.'
],
+ 'update' => [
+ '$description' => 'This event triggers when a database is updated.',
+ ],
'delete' => [
'$description' => 'This event triggers when a database is deleted.',
],
- 'update' => [
- '$description' => 'This event triggers when a database is updated.',
- ]
],
'buckets' => [
'$model' => Response::MODEL_BUCKET,
diff --git a/app/config/locale/templates/email-base-styled.tpl b/app/config/locale/templates/email-base-styled.tpl
index f6d3e8cd63..16036e792c 100644
--- a/app/config/locale/templates/email-base-styled.tpl
+++ b/app/config/locale/templates/email-base-styled.tpl
@@ -1,9 +1,24 @@
-
-
-
+
+
-
-
-
-
-
-
-
+
+ {{preview}}
+
{{previewWhitespace}}
+
+
diff --git a/app/config/locale/templates/email-inner-base.tpl b/app/config/locale/templates/email-inner-base.tpl
index 8cef391d2f..677f70ce7d 100644
--- a/app/config/locale/templates/email-inner-base.tpl
+++ b/app/config/locale/templates/email-inner-base.tpl
@@ -1,6 +1,6 @@
{{hello}}
{{body}}
-{{redirect}}
+{{buttonText}}
{{footer}}
{{thanks}}
diff --git a/app/config/locale/templates/email-smtp-test.tpl b/app/config/locale/templates/email-smtp-test.tpl
index e40b7ba5c8..1b1eccdb7c 100644
--- a/app/config/locale/templates/email-smtp-test.tpl
+++ b/app/config/locale/templates/email-smtp-test.tpl
@@ -9,4 +9,4 @@
If you have trouble with the sender's image, ensure it is set in the Gravatar database .
Best regards,
-Appwrtite team
\ No newline at end of file
+Appwrite team
\ No newline at end of file
diff --git a/app/config/locale/templates/email-webhook-failed.tpl b/app/config/locale/templates/email-webhook-failed.tpl
index 921af9ee29..a176de5754 100644
--- a/app/config/locale/templates/email-webhook-failed.tpl
+++ b/app/config/locale/templates/email-webhook-failed.tpl
@@ -14,7 +14,7 @@
\ No newline at end of file
diff --git a/app/config/locale/translations/af.json b/app/config/locale/translations/af.json
index e68fda2c75..db2a234d5e 100644
--- a/app/config/locale/translations/af.json
+++ b/app/config/locale/translations/af.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Wie nie waag nie, sal nie wen nie.\"",
"settings.locale": "af",
"settings.direction": "ltr",
- "emails.sender": "%s span",
+ "emails.sender": "{{project}} span",
"emails.verification.subject": "Rekening Bevestiging",
"emails.verification.hello": "Goeie dag {{user}},",
"emails.verification.body": "Volg hierdie skakel om u e-pos adres te bevestig.",
"emails.verification.footer": "Ignoreer gerus hierdie boodskap as u nie die versoek gestuur het om u adres te bevestig nie.",
"emails.verification.thanks": "Baie dankie,",
+ "emails.verification.buttonText": "Bevestig e-posadres",
"emails.verification.signature": "Die {{project}} span",
"emails.magicSession.subject": "Teken aan",
"emails.magicSession.hello": "Goeie dag,",
- "emails.magicSession.body": "Volg hierdie skakel om in te teken.",
- "emails.magicSession.footer": "Ignoreer gerus hierdie boodskap as u nie die versoek gestuur het om met die' adres in te teken nie.",
"emails.magicSession.thanks": "Baie dankie,",
"emails.magicSession.signature": "Die {{project}} span",
"emails.recovery.subject": "Herstel Wagwoord",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Volg hierdie skakel om u {{project}} wagwoord te herstel.",
"emails.recovery.footer": "Ignoreer gerus hierdie boodskap as u nie die versoek gestuur het om u wagwoord te herstel nie.",
"emails.recovery.thanks": "Baie dankie,",
+ "emails.recovery.buttonText": "Stel wagwoord terug",
"emails.recovery.signature": "Die {{project}} span",
- "emails.invitation.subject": "Uitnodiging om by die %s span aan te sluit by %s",
+ "emails.invitation.subject": "Uitnodiging om by die {{team}} span aan te sluit by {{project}}",
"emails.invitation.hello": "Goeie dag,",
"emails.invitation.body": "Hierdie boodskap is aan u gestuur omdat {{owner}} u uitnooi om 'n lid van die {{team}} groep by die {{project}} projek te wees.",
"emails.invitation.footer": "As u nie belang stel nie, kan u gerus hierdie boodskap ignoreer.",
"emails.invitation.thanks": "Baie dankie,",
+ "emails.invitation.buttonText": "Aanvaar uitnodiging na {{team}}",
"emails.invitation.signature": "Die {{project}} span",
"locale.country.unknown": "Onbekend",
"countries.af": "Afghanistan",
diff --git a/app/config/locale/translations/ar-ma.json b/app/config/locale/translations/ar-ma.json
index efd2e95c31..f0a7132aed 100644
--- a/app/config/locale/translations/ar-ma.json
+++ b/app/config/locale/translations/ar-ma.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"الفن ديال الحكمة هو الفن ديال أنك تعرف أش تنخّل.\"",
"settings.locale": "ar-ma",
"settings.direction": "rtl",
- "emails.sender": "فرقة %s",
+ "emails.sender": "فرقة {{project}}",
"emails.verification.subject": "التيْقان ديال الحساب",
"emails.verification.hello": "السلام {{user}}،",
"emails.verification.body": "تبّع هاد الوصلة باش تيقّن لادريسة تاع ليميل ديالك.",
"emails.verification.footer": "إلا ماشي نتا اللي طلبتي تيقّن هاد لادريسة تاع ليميل، ممكن تنخّل هاد البرية.",
"emails.verification.thanks": "شكرا،",
+ "emails.verification.buttonText": "تأكيد عنوان البريد الإلكتروني",
"emails.verification.signature": "فرقة {{project}}",
"emails.magicSession.subject": "تكونيكطا",
"emails.magicSession.hello": "السلام،",
- "emails.magicSession.body": "تبّع هاد الوصلة باش تتكونيكطا.",
- "emails.magicSession.footer": "إلا ماشي نتا اللي طلبتي تتكونيكطا بهاد ليميل، ممكن تنخّل هاد البرية.",
"emails.magicSession.thanks": "شكرا،",
"emails.magicSession.signature": "فرقة {{project}}",
"emails.recovery.subject": "تبدال كلمة السر",
@@ -20,14 +19,16 @@
"emails.recovery.body": "تبّع هاد الوصلة باش تبدّل كلمة السر تاع {{project}}.",
"emails.recovery.footer": "إلا ماشي نتا اللي طلبتي تبدّل كلمة السر، ممكن تنخّل هاد البرية.",
"emails.recovery.thanks": "شكرا،",
+ "emails.recovery.buttonText": "إعادة تعيين كلمة السر",
"emails.recovery.signature": "فرقة {{project}}",
- "emails.invitation.subject": "عراضة ل فرقة %s ف %s",
+ "emails.invitation.subject": "عراضة ل فرقة {{team}} ف {{project}}",
"emails.invitation.hello": "السلام،",
"emails.invitation.body": "هاد البرية تصيفطات ليك حيت {{owner}} بغى يعرض عليك تولّي عضو ف فرقة {{team}} عند {{project}}.",
"emails.invitation.footer": "إلا كنتي ما مسوّقش, ممكن تنخّل هاد البرية.",
"emails.invitation.thanks": "شكرا،",
+ "emails.invitation.buttonText": "اقبل الدعوة إلى {{team}}",
"emails.invitation.signature": "فرقة {{project}}",
- "emails.certificate.subject": "السرتافيكة فشلات ل %s",
+ "emails.certificate.subject": "السرتافيكة فشلات ل {{domain}}",
"emails.certificate.hello": "السلام،",
"emails.certificate.body": "السرتافيكة ديال الضومين ديالك '{{domain}}' ما قدّاتش تجينيرا. هادي هي المحاولة نمرة {{attempt}}, السبب ديال هاد الفشل هو: {{error}}",
"emails.certificate.footer": "السرتافيكة الفايتة ديالك غاتبقى مزيانة لمدة 30 يوم من عند أول فشل. كانشجعوك بزاف أنك تبقشش فهاد الموضوع, وا إلّا الضومين ديالك ما غايبقاش خدّام فيه الـ SSL.",
diff --git a/app/config/locale/translations/ar.json b/app/config/locale/translations/ar.json
index 1d67c2ecf7..df077c8685 100644
--- a/app/config/locale/translations/ar.json
+++ b/app/config/locale/translations/ar.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"فن الحكمة هو فن معرفة ما يجب التغاضي عنه.\"",
"settings.locale": "ar",
"settings.direction": "rtl",
- "emails.sender": "فريق %s",
+ "emails.sender": "فريق {{project}}",
"emails.verification.subject": "تأكيد الحساب",
"emails.verification.hello": "مرحبا {{user}}،",
"emails.verification.body": "برجاء اتباع الرابط التالي لتأكيد بريدك الإلكتروني",
"emails.verification.footer": "لو لم تطلب تأكيد هذا البريد الإلكتروني، يمكنك تجاهل هذه الرسالة",
"emails.verification.thanks": "شكرا،",
+ "emails.verification.buttonText": "تأكيد عنوان البريد الإلكتروني",
"emails.verification.signature": "فريق {{project}}",
"emails.magicSession.subject": "تسجيل الدخول",
"emails.magicSession.hello": "أهلا،",
- "emails.magicSession.body": "اتبع هذا الرابط لتسجيل الدخول",
- "emails.magicSession.footer": "لو لم تطلب تسجيل الدخول بهذا البريد الاكتروني ، يمكنك تجاهل هذه الرسالة",
"emails.magicSession.thanks": "شكرا،",
"emails.magicSession.signature": "فريق {{project}}",
"emails.recovery.subject": "تغيير كلمة السر",
@@ -20,12 +19,14 @@
"emails.recovery.body": "برجاء اتباع الراط التالي لتغيير كلمة السر الخاصة بـ{{project}}",
"emails.recovery.footer": "لولم تطلب تغيير كلمة السر، يمكنك تجاهل هذه الرسالة",
"emails.recovery.thanks": "شكرا،",
+ "emails.recovery.buttonText": "إعادة تعيين كلمة المرور",
"emails.recovery.signature": "فريق {{project}}",
- "emails.invitation.subject": "دعوة لفريق %s في %s",
+ "emails.invitation.subject": "دعوة لفريق {{team}} في {{project}}",
"emails.invitation.hello": "أهلا،",
"emails.invitation.body": "هذة الرسالة تم ارسالها لك لأن {{owner}} ارسل لك دعوة لتكون عضوا بفريق {{team}} في {{project}}",
"emails.invitation.footer": "اذا كنت غير مهتم، يمكنك تجاهل هذه الرسالة",
"emails.invitation.thanks": "شكرا،",
+ "emails.invitation.buttonText": "قبول الدعوة إلى {{team}}",
"emails.invitation.signature": "فريق {{project}}",
"locale.country.unknown": "مجهول",
"countries.af": "أفغانستان",
diff --git a/app/config/locale/translations/as.json b/app/config/locale/translations/as.json
index 572ed80f1a..f750c6f3e4 100644
--- a/app/config/locale/translations/as.json
+++ b/app/config/locale/translations/as.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"জ্ঞানী হোৱাৰ কলা হৈছে কি উপেক্ষা কৰিব লাগে জনাৰ কলা।\"",
"settings.locale": "as",
"settings.direction": "ltr",
- "emails.sender": "%s দল",
+ "emails.sender": "{{project}} দল",
"emails.verification.subject": "একাউণ্ট প্ৰমাণীকৰণ",
"emails.verification.hello": "নমস্কাৰ {{user}},",
"emails.verification.body": "আপোনাৰ ইমেইল ঠিকনা প্ৰমাণিত কৰিবলৈ এই লিংকটো অনুসৰণ কৰক।",
"emails.verification.footer": "যদি আপুনি এই ঠিকনাটো সত্যাপিত কৰিবলৈ কোৱা নাই, আপুনি এই বাৰ্তাটো উপেক্ষা কৰিব পাৰে।",
"emails.verification.thanks": "ধন্যবাদ,",
+ "emails.verification.buttonText": "ইমেইল ঠিকনা নিশ্চিত কৰক",
"emails.verification.signature": "{{project}} দল",
"emails.magicSession.subject": "লগইন",
"emails.magicSession.hello": "নমস্কাৰ,",
- "emails.magicSession.body": "লগইন কৰিবলৈ এই লিংকটো অনুসৰণ কৰক।",
- "emails.magicSession.footer": "যদি আপুনি এই ইমেইল ব্যৱহাৰ কৰি লগইন কৰিবলৈ কোৱা নাছিল, আপুনি এই বাৰ্তাটো উপেক্ষা কৰিব পাৰে।",
"emails.magicSession.thanks": "ধন্যবাদ,",
"emails.magicSession.signature": "{{project}} দল",
"emails.recovery.subject": "পাছৱাৰ্ড ৰিছেট",
@@ -20,12 +19,14 @@
"emails.recovery.body": "আপোনাৰ {{project}} পাছৱৰ্ড ৰিছেট কৰিবলৈ এই লিংকটো অনুসৰণ কৰক।.",
"emails.recovery.footer": "যদি আপুনি আপোনাৰ পাছৱৰ্ড ৰিছেট কৰিবলৈ কোৱা নাছিল, আপুনি এই বাৰ্তাটো উপেক্ষা কৰিব পাৰে।",
"emails.recovery.thanks": "ধন্যবাদ,",
+ "emails.recovery.buttonText": "পাছৱৰ্ড ৰিছেট কৰক",
"emails.recovery.signature": "{{project}} দল",
- "emails.invitation.subject": "%s বছৰত %s দললৈ নিমন্ত্ৰণ",
+ "emails.invitation.subject": "{{team}} বছৰত {{project}} দললৈ নিমন্ত্ৰণ",
"emails.invitation.hello": "নমস্কাৰ,",
"emails.invitation.body": "এই মেইলটো আপোনালৈ প্ৰেৰণ কৰা হৈছিল কাৰণ {{owner}} জনে আপোনাক {{project}} বছৰবয়সত {{team}} দলৰ সদস্য হ'বলৈ আমন্ত্ৰণ জনাব বিচাৰিছিল।",
"emails.invitation.footer": "যদি আপুনি আগ্ৰহী নহয়, আপুনি এই বাৰ্তাটো উপেক্ষা কৰিব পাৰে।",
"emails.invitation.thanks": "ধন্যবাদ,",
+ "emails.invitation.buttonText": "{{team}}-লৈ নিমন্ত্ৰণ গ্ৰহণ কৰক",
"emails.invitation.signature": "{{project}} দল",
"locale.country.unknown": "অজ্ঞাত ",
"countries.af": "আফগানিস্তান ",
@@ -244,7 +245,7 @@
"emails.otpSession.securityPhrase": "এই ইমেইলৰ সুৰক্ষা বাক্যটো হৈছে {{phrase}}। আপুনি এই ইমেইলটোত আস্থা ৰাখিব পাৰে যদি প্ৰবেশৰ সময়ত দেখুৱাই থকা বাক্যটোৰ লগত এই বাক্যটো মেলে।",
"emails.otpSession.thanks": "ধন্যবাদ,",
"emails.otpSession.signature": "{{project}} দল",
- "emails.certificate.subject": "%sৰ বাবে প্ৰমাণপত্ৰ ব্যৰ্থতা",
+ "emails.certificate.subject": "{{domain}}ৰ বাবে প্ৰমাণপত্ৰ ব্যৰ্থতা",
"emails.certificate.hello": "নমস্কাৰ,",
"emails.certificate.body": "আপোনাৰ ডোমেইন '{{domain}}' ৰ বাবে প্ৰমাণপত্ৰটো উত্পন্ন কৰিব পৰা নগ'ল। এয়া প্ৰচেষ্টা নম্বৰ {{attempt}}, আৰু বিফলতাৰ কাৰণ হ'ল: {{error}}",
"emails.certificate.footer": "আপোনাৰ পূৰ্বৰ প্ৰমাণপত্ৰটো প্ৰথম ব্ৰিফল হোৱাৰ দিনৰ পৰা ৩০ দিনলৈ বৈধ থাকিব। আমি এই ঘটনাটোৰ তদন্ত কৰিবলৈ উচ্চ পৰামৰ্শ দিয়ে, অন্যথা আপোনাৰ ডোমেইনটো অবৈধ SSL যোগাযোগ অবিহনে থাকিব।",
diff --git a/app/config/locale/translations/az.json b/app/config/locale/translations/az.json
index 5988c51786..7b94b4424e 100644
--- a/app/config/locale/translations/az.json
+++ b/app/config/locale/translations/az.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Ağıllı olmaq sənəti, nəyi gözdən qaçıracağını bilmək sənətidir.\"",
"settings.locale": "az",
"settings.direction": "ltr",
- "emails.sender": "%s Komandası",
+ "emails.sender": "{{project}} Komandası",
"emails.verification.subject": "Hesab Doğrulama",
"emails.verification.hello": "Salam {{user}},",
"emails.verification.body": "E-poçt ünvanınızı təsdiq etmək üçün bu linki izləyin.",
"emails.verification.footer": "Bu ünvanı doğrulamağı xahiş etməmisinizsə, bu mesajı gözardı edə bilərsiniz.",
"emails.verification.thanks": "Təşəkkürlər,",
+ "emails.verification.buttonText": "E-poçt ünvanını təsdiqlə",
"emails.verification.signature": "{{project}} komandası",
"emails.magicSession.subject": "Daxil Olmaq",
"emails.magicSession.hello": "Salam,",
- "emails.magicSession.body": "Daxil olmaq üçün bu linki izləyin.",
- "emails.magicSession.footer": "Bu e-poçtdan istifadə edərək giriş istəməmisinizsə, bu mesajı görməməzlikdən gələ bilərsiniz.",
"emails.magicSession.thanks": "Təşəkkürlər,",
"emails.magicSession.signature": "{{project}} komandası",
"emails.recovery.subject": "Şifrə Sıfırlanması",
@@ -20,12 +19,14 @@
"emails.recovery.body": "{{project}} şifrənizi sıfırlamaq üçün bu linki izləyin.",
"emails.recovery.footer": "Şifrənizi sıfırlamağı xahiş etməmisinizsə, bu mesajı gözardı edə bilərsiniz.",
"emails.recovery.thanks": "Təşəkkürlər,",
+ "emails.recovery.buttonText": "Şifrəni sıfırla",
"emails.recovery.signature": "{{project}} komandası",
- "emails.invitation.subject": "%s Komandasına Dəvət %sdə",
+ "emails.invitation.subject": "{{team}} Komandasına Dəvət {{project}}də",
"emails.invitation.hello": "Salam,",
"emails.invitation.body": "{{owner}}, {{project}}də {{team}} komandasına üzv olmağa dəvət etmək istədiyi üçün bu məktub sizə göndərildi.",
"emails.invitation.footer": "Əgər maraqlanmırsınızsa, bu mesajı gözardı edə bilərsiniz.",
"emails.invitation.thanks": "Təşəkkürlər,",
+ "emails.invitation.buttonText": "{{team}} dəvətini qəbul et",
"emails.invitation.signature": "{{project}} komandası",
"locale.country.unknown": "Naməlum",
"countries.af": "Əfqanıstan",
diff --git a/app/config/locale/translations/be.json b/app/config/locale/translations/be.json
index f03a9d5bef..2c6d14d79e 100644
--- a/app/config/locale/translations/be.json
+++ b/app/config/locale/translations/be.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Мастацтва быць мудрым - гэта мастацтва ведаць, на што нельга звярнуць увагу.\"",
"settings.locale": "be",
"settings.direction": "ltr",
- "emails.sender": "Каманда %s",
+ "emails.sender": "Каманда {{project}}",
"emails.verification.subject": "Верыфікацыя акаўнта",
"emails.verification.hello": "Прывітанне {{user}},",
"emails.verification.body": "Перайдзіце па гэтай спасылцы, каб пацвердзіць свой адрас электроннай пошты",
"emails.verification.footer": "Калі вы не запытвалі пацвярджэнне гэтага адрасу, праігнаруйце гэтае паведамленне.",
"emails.verification.thanks": "Дзякуем,",
+ "emails.verification.buttonText": "Пацвердзіць адрас электроннай пошты",
"emails.verification.signature": "каманда {{project}}",
"emails.magicSession.subject": "Лагін",
"emails.magicSession.hello": "Прывітанне,",
- "emails.magicSession.body": "Перайдзіце па спасылцы, каб увайсці.",
- "emails.magicSession.footer": "Калі вы не прасілі ўвайсці, выкарыстоўваючы гэты адрас электроннай пошты, праігнаруйце гэтае паведамленне.",
"emails.magicSession.thanks": "Дзякуем,",
"emails.magicSession.signature": "каманда {{project}}",
"emails.recovery.subject": "Скід пароля",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Перайдзіце па гэтай спасылцы, каб скінуць пароль для праекта {{project}}.",
"emails.recovery.footer": "Калі вы не прасілі скінуць пароль, вы можаце праігнараваць гэта паведамленне.",
"emails.recovery.thanks": "Дзякуем,",
+ "emails.recovery.buttonText": "Аднавіць пароль",
"emails.recovery.signature": "каманда {{project}}",
- "emails.invitation.subject": "Запрошення до Команди %s у %s",
+ "emails.invitation.subject": "Запрошення до Команди {{team}} у {{project}}",
"emails.invitation.hello": "Прывітанне,",
"emails.invitation.body": "Гэта паведамленне было адпраўлена вам, таму што {{owner}} хацеў запрасіць вас стаць членам каманды {{team}} у {{project}}.",
"emails.invitation.footer": "Калі вам гэта не цікава, вы можаце праігнараваць гэтае паведамленне.",
"emails.invitation.thanks": "Дзякуем,",
+ "emails.invitation.buttonText": "Прыняць запрашэнне ў {{team}}",
"emails.invitation.signature": "каманда {{project}}",
"locale.country.unknown": "Невядомы",
"countries.af": "Афганістан",
@@ -244,7 +245,7 @@
"emails.otpSession.securityPhrase": "Фраза бяспекі для гэтага ліста - {{phrase}}. Вы можаце давяраць гэтаму лісту, калі гэтая фраза супадае з фразай, паказанай пры ўваходзе.",
"emails.otpSession.thanks": "Дзякуй,",
"emails.otpSession.signature": "каманда {{project}}",
- "emails.certificate.subject": "Сведчанне няўдалае для %s",
+ "emails.certificate.subject": "Сведчанне няўдалае для {{domain}}",
"emails.certificate.hello": "Прывітанне,",
"emails.certificate.body": "Сертыфікат для вашага дамена '{{domain}}' не можа быць створаны. Гэта спроба нумар {{attempt}}, і прычынай няўдачы з'яўляецца: {{error}}",
"emails.certificate.footer": "Ваш папярэдні сертыфікат будзе дзейнічаць 30 дзён з моманту першай няўдачы. Мы высока рэкамендуем расследаваць гэтую сітуацыю, інакш ваш дамен апынецца без дзейнага сертыфіката SSL-злучэння.",
diff --git a/app/config/locale/translations/bg.json b/app/config/locale/translations/bg.json
index 086c6b283e..4fd1e6fdbf 100644
--- a/app/config/locale/translations/bg.json
+++ b/app/config/locale/translations/bg.json
@@ -2,7 +2,7 @@
"settings.inspire": "\"Изкуството да бъдеш мъдър е изкуството да знаеш какво да пренебрегнеш.\"",
"settings.locale": "bg",
"settings.direction": "ltr",
- "emails.sender": "%s Екип",
+ "emails.sender": "{{project}} Екип",
"emails.verification.subject": "",
"emails.verification.hello": ",",
"emails.verification.body": "",
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
- "emails.magicSession.body": "",
- "emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
diff --git a/app/config/locale/translations/bh.json b/app/config/locale/translations/bh.json
index 5cf06bd1dd..8543e4f241 100644
--- a/app/config/locale/translations/bh.json
+++ b/app/config/locale/translations/bh.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"बुद्धिमान होइत क कला ई जाने क कला अछि जे की अनदेखा कर्मा चाहि| \"",
"settings.locale": "bh",
"settings.direction": "ltr",
- "emails.sender": "%s टीम",
+ "emails.sender": "{{project}} टीम",
"emails.verification.subject": "खाता प्रमाणिकरण",
"emails.verification.hello": "नमस्ते {{user}},",
"emails.verification.body": "ईमेल प्रमाणिकरण करे क लेल दिहल गइल लिंक फॉलो करें|",
"emails.verification.footer": "अगर ई पता को सत्यापित करे के लिए ना कहाले, तो आप ई संदेश क अनदेखा कर सकत अछि।",
"emails.verification.thanks": "धन्यवाद,",
+ "emails.verification.buttonText": "ईमेल पता के पुष्टि करीं",
"emails.verification.signature": "{{project}} टीम",
"emails.magicSession.subject": "लॉग इन करीं|",
"emails.magicSession.hello": "प्रणाम,",
- "emails.magicSession.body": "लॉग इन करें लेल दिहल गइल लिंक फॉलो करें|",
- "emails.magicSession.footer": "अगर लॉग इन करे के लिए ना कहाले, तो आप ई संदेश क अनदेखा कर सकत अछि।",
"emails.magicSession.thanks": "धन्यवाद,",
"emails.magicSession.signature": "{{project}} टीम",
"emails.recovery.subject": "पासवर्ड बदल क लेल|",
@@ -20,12 +19,14 @@
"emails.recovery.body": "पासवर्ड बदल क लेल दिहल गइल लिंक फॉलो करें|",
"emails.recovery.footer": "अगर पासवर्ड बदल क लेल ना कहाले, तो आप ई संदेश क अनदेखा कर सकत अछि।",
"emails.recovery.thanks": "धन्यवाद,",
+ "emails.recovery.buttonText": "पासवर्ड रीसेट करीं",
"emails.recovery.signature": "{{project}} टीम",
- "emails.invitation.subject": "%s टीम क %s पे न्योता देवे क लेल|",
+ "emails.invitation.subject": "{{team}} टीम क {{project}} पे न्योता देवे क लेल|",
"emails.invitation.hello": "प्रणाम,",
"emails.invitation.body": "ई मेल आपके एही लेल भेजल गईल रहल काहे क {{owner}} आपके {{project}} क {{team}} टीम का सदस्य बनावे चाहित रहे|",
"emails.invitation.footer": "अगर आवे क इच्छा ना होवत, तो आप ई संदेश क अनदेखा कर सकत अछि।",
"emails.invitation.thanks": "धन्यवाद,",
+ "emails.invitation.buttonText": "{{team}} में नेवता स्वीकार करीं",
"emails.invitation.signature": "{{project}} टीम",
"locale.country.unknown": "अनजान",
"countries.af": "अफ़ग़ानिस्तान",
@@ -244,7 +245,7 @@
"emails.otpSession.securityPhrase": "एही ईमेल खातिर सुरक्षा वाक्य {{phrase}} हऽ। अगर ई वाक्य साइन इन कइला के समय देखावल गेल वाक्य से मेल खाता, त एह ईमेल पर भरोसा कर सकैत छी।",
"emails.otpSession.thanks": "धन्यवाद,",
"emails.otpSession.signature": "{{project}} टीम",
- "emails.certificate.subject": "%s लेल प्रमाणपत्र असफलта",
+ "emails.certificate.subject": "{{domain}} लेल प्रमाणपत्र असफलता",
"emails.certificate.hello": "नमस्ते,",
"emails.certificate.body": "आपके डोमेन '{{domain}}' के लिए प्रमाणपत्र नहीं बनाया जा सका। ई प्रयास संख्या {{attempt}} है, और ई असफलता के कारण रहे: {{error}}",
"emails.certificate.footer": "तोहार पिछलका प्रमाणपत्र पहिल असफलता से 30 दिन धरी मान्य होईत। हम बहुत जोर देके सलाह देतानी कि एह मामला के जांच करीं, नहीं त तोहार डोमेन बिना कोनो मान्य SSL संवाद के रहि जाईत।",
diff --git a/app/config/locale/translations/bn.json b/app/config/locale/translations/bn.json
index 495f56e012..a1be879e0c 100644
--- a/app/config/locale/translations/bn.json
+++ b/app/config/locale/translations/bn.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"জ্ঞানী হওয়ার শিল্প হলো কোন বিষয়টিকে উপেক্ষা করা উচিত তা জানার শিল্প\"",
"settings.locale": "bn",
"settings.direction": "ltr",
- "emails.sender": "%s টীম",
+ "emails.sender": "{{project}} টীম",
"emails.verification.subject": "বিষয়",
"emails.verification.hello": "নমস্কার {{user}},",
"emails.verification.body": "এই লিঙ্কের মাধ্যমে ইমেইল যাচাই করুন।",
"emails.verification.footer": "আপনি যদি এই ঠিকানা যাচাই করতে না বলেন, তাহলে আপনি এই বার্তাটি উপেক্ষা করতে পারেন।",
"emails.verification.thanks": "ধন্যবাদ,",
+ "emails.verification.buttonText": "ইমেইল ঠিকানা নিশ্চিত করুন",
"emails.verification.signature": "{{project}} টীম",
"emails.magicSession.subject": "লগ ইন",
"emails.magicSession.hello": "নমস্কার,",
- "emails.magicSession.body": "এই লিঙ্কের মাধ্যমে লগ ইন করুন।",
- "emails.magicSession.footer": "আপনি যদি এই ইমেলটি ব্যবহার করে লগইন করতে না বলেন, তাহলে আপনি এই বার্তাটি উপেক্ষা করতে পারেন।",
"emails.magicSession.thanks": "ধন্যবাদ,",
"emails.magicSession.signature": "{{project}} টীম",
"emails.recovery.subject": "পাসওয়ার্ড রিসেট",
@@ -20,12 +19,14 @@
"emails.recovery.body": "এই লিঙ্কের মাধ্যমে আপনার {{project}} পাসওয়ার্ড পুনরায় সেট করুন।",
"emails.recovery.footer": "আপনি যদি আপনার পাসওয়ার্ড পুনরায় সেট করতে না বলেন, তাহলে আপনি এই বার্তাটি উপেক্ষা করতে পারেন।",
"emails.recovery.thanks": "ধন্যবাদ,",
+ "emails.recovery.buttonText": "পাসওয়ার্ড রিসেট করুন",
"emails.recovery.signature": "{{project}} টীম",
- "emails.invitation.subject": "%s টিমকে %s তে আমন্ত্রণ জানান",
+ "emails.invitation.subject": "{{team}} টিমকে {{project}} তে আমন্ত্রণ জানান",
"emails.invitation.hello": "নমস্কার,",
"emails.invitation.body": "এই মেইলটি আপনাকে পাঠানো হয়েছে কারণ {{owner}} আপনাকে {{project}} এর সাথে যুক্ত {{team}} টিমের সদস্য হওয়ার জন্য আমন্ত্রণ জানাতে চেয়েছিলেন।",
"emails.invitation.footer": "যদি এটি আপনার জন্য প্রয়োজনীয় না হয়, আপনি এই বার্তাটি উপেক্ষা করতে পারেন।",
"emails.invitation.thanks": "ধন্যবাদ,",
+ "emails.invitation.buttonText": "{{team}}-এর আমন্ত্রণ গ্রহণ করুন",
"emails.invitation.signature": "{{project}} টীম",
"locale.country.unknown": "অজানা",
"countries.af": "আফগানিস্তান",
diff --git a/app/config/locale/translations/bs.json b/app/config/locale/translations/bs.json
index 1c69619c01..22a54383a9 100644
--- a/app/config/locale/translations/bs.json
+++ b/app/config/locale/translations/bs.json
@@ -2,7 +2,7 @@
"settings.inspire": "\"Umjetnost mudrosti je umjetnost znanja o tome šta zanemariti.\"",
"settings.locale": "bs",
"settings.direction": "ltr",
- "emails.sender": "%s Tim",
+ "emails.sender": "{{project}} Tim",
"emails.verification.subject": "",
"emails.verification.hello": ",",
"emails.verification.body": "",
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
- "emails.magicSession.body": "",
- "emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
diff --git a/app/config/locale/translations/ca.json b/app/config/locale/translations/ca.json
index 98940a4a48..7f4be27f1c 100644
--- a/app/config/locale/translations/ca.json
+++ b/app/config/locale/translations/ca.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"L'art de ser savi és l'art de saber què passar per alt\"",
"settings.locale": "ca",
"settings.direction": "ltr",
- "emails.sender": "%s Equip",
+ "emails.sender": "{{project}} Equip",
"emails.verification.subject": "Verificació del compte",
"emails.verification.hello": "Hola {{user}},",
"emails.verification.body": "Accedeix a aquest enllaç per tal de verificar la teva adreça electrònica.",
"emails.verification.footer": "Si no has sol·licitat la verificació d'aquesta adreça electrònica, pots ignorar aquest missatge.",
"emails.verification.thanks": "Gràcies,",
+ "emails.verification.buttonText": "Confirma l'adreça electrònica",
"emails.verification.signature": "Equip {{project}}",
"emails.magicSession.subject": "Entrar",
"emails.magicSession.hello": "Hola,",
- "emails.magicSession.body": "Accedeix a aquest enllaç per a entrar.",
- "emails.magicSession.footer": "Si no has sol·licitat entrar amb aquesta adreça electrònica, pots ignorar aquest missatge.",
"emails.magicSession.thanks": "Gràcies,",
"emails.magicSession.signature": "Equip {{project}}",
"emails.recovery.subject": "Reinicialitzar contrasenya",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Accedeix a aquest enllaç per a reinicialitzar la teva contrasenya de {{project}}.",
"emails.recovery.footer": "Si no has sol·licitat reinicialitzar la teva contrasenya, pots ignorar aquest missatge.",
"emails.recovery.thanks": "Gràcies,",
+ "emails.recovery.buttonText": "Restableix la contrasenya",
"emails.recovery.signature": "Equip {{project}}",
- "emails.invitation.subject": "Invitació a l'equip %s a s%",
+ "emails.invitation.subject": "Invitació a l'equip {{team}} a {{project}}",
"emails.invitation.hello": "Hola,",
"emails.invitation.body": "Aquest correu se t'ha enviat perquè {{owner}} vol convidar-te a formar part de l'equip {{team}} al {{project}}.",
"emails.invitation.footer": "Si no és del teu interès, pots ignorar aquest missatge.",
"emails.invitation.thanks": "Gràcies,",
+ "emails.invitation.buttonText": "Accepta la invitació a {{team}}",
"emails.invitation.signature": "Equip {{project}}",
"locale.country.unknown": "Desconegut",
"countries.af": "Afganistan",
diff --git a/app/config/locale/translations/cs.json b/app/config/locale/translations/cs.json
index c67e9299da..609f064969 100644
--- a/app/config/locale/translations/cs.json
+++ b/app/config/locale/translations/cs.json
@@ -2,7 +2,7 @@
"settings.inspire": "\"Umění moudrosti je umění vědět, co přehlédnout.\"",
"settings.locale": "cs",
"settings.direction": "ltr",
- "emails.sender": "%s tým",
+ "emails.sender": "{{project}} tým",
"emails.verification.subject": "",
"emails.verification.hello": ",",
"emails.verification.body": "",
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
- "emails.magicSession.body": "",
- "emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
diff --git a/app/config/locale/translations/da.json b/app/config/locale/translations/da.json
index 9cec74dbed..2b52bdb6a9 100644
--- a/app/config/locale/translations/da.json
+++ b/app/config/locale/translations/da.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Kunsten at være klog er kunsten at vide, hvad man skal overse.\"",
"settings.locale": "da",
"settings.direction": "ltr",
- "emails.sender": "%s Team",
+ "emails.sender": "{{project}} Team",
"emails.verification.subject": "Konto Verifikation",
"emails.verification.hello": "Hej {{user}},",
"emails.verification.body": "Følg dette link, for at verificere din email adresse.",
"emails.verification.footer": "Hvis du ikke har bedt om at verificere denne adresse, ignorer venligst denne besked.",
"emails.verification.thanks": "Tak,",
+ "emails.verification.buttonText": "Bekræft e-mailadresse",
"emails.verification.signature": "{{project}} team",
"emails.magicSession.subject": "Login",
"emails.magicSession.hello": "Hej,",
- "emails.magicSession.body": "Følg dette link for at logge ind.",
- "emails.magicSession.footer": "Hvis du ikke har bedt om at logge ind med denne email, ignorer venligst denne besked.",
"emails.magicSession.thanks": "Tak,",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Nulstil Password",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Følg dette link for at nulstille koden til {{project}}.",
"emails.recovery.footer": "Hvis du ikke har bedt om at nulstille dit password, ignorer venligst denne besked.",
"emails.recovery.thanks": "Tak,",
+ "emails.recovery.buttonText": "Nulstil adgangskode",
"emails.recovery.signature": "{{project}} team",
- "emails.invitation.subject": "Invitation til %s Team på %s",
+ "emails.invitation.subject": "Invitation til {{team}} Team på {{project}}",
"emails.invitation.hello": "Hej,",
"emails.invitation.body": "Denne mail blev sendt til dig, fordi {{owner}} vil invitere dig til at blive medlem af {{team}} teamet på {{project}}.",
"emails.invitation.footer": "Hvis du ikke er interesseret, ignorer venligst denne besked.",
"emails.invitation.thanks": "Tak,",
+ "emails.invitation.buttonText": "Accepter invitation til {{team}}",
"emails.invitation.signature": "{{project}} team",
"locale.country.unknown": "Ukendt",
"countries.af": "Afghanistan",
diff --git a/app/config/locale/translations/de.json b/app/config/locale/translations/de.json
index 38b1e46870..0793753789 100644
--- a/app/config/locale/translations/de.json
+++ b/app/config/locale/translations/de.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Die Kunst, weise zu sein, ist die Kunst, zu wissen, was zu übersehen ist.\"",
"settings.locale": "de",
"settings.direction": "ltr",
- "emails.sender": "%s Team",
+ "emails.sender": "{{project}} Team",
"emails.verification.subject": "Kontoverifizierung",
"emails.verification.hello": "Hey {{user}},",
"emails.verification.body": "Folge diesem Link, um deine E-Mail-Adresse zu bestätigen.",
"emails.verification.footer": "Solltest du keine Verifizierung dieser E-Mail-Adresse angefordert haben, kannst du diese Nachricht ignorieren.",
"emails.verification.thanks": "Danke,",
+ "emails.verification.buttonText": "E-Mail-Adresse bestätigen",
"emails.verification.signature": "{{project}}-Team",
"emails.magicSession.subject": "Login",
"emails.magicSession.hello": "Hey,",
- "emails.magicSession.body": "Folge diesem Link, um dich einzuloggen.",
- "emails.magicSession.footer": "Solltest du keinen Login für diese E-Mail-Adresse angefordert haben, kannst du diese Nachricht ignorieren.",
"emails.magicSession.thanks": "Danke,",
"emails.magicSession.signature": "{{project}}-Team",
"emails.recovery.subject": "Kennwort zurücksetzen",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Folge diesem Link, um dein {{project}}-Kennwort zurückzusetzen.",
"emails.recovery.footer": "Solltest du keine Kennwort-Zurücksetzung angefordert haben, kannst du diese Nachricht ignorieren.",
"emails.recovery.thanks": "Danke,",
+ "emails.recovery.buttonText": "Passwort zurücksetzen",
"emails.recovery.signature": "{{project}}-Team",
- "emails.invitation.subject": "Einladung zum %s-Team auf %s",
+ "emails.invitation.subject": "Einladung zum {{team}}-Team auf {{project}}",
"emails.invitation.hello": "Hello,",
"emails.invitation.body": "Du erhälst diese E-Mail, weil {{owner}} dich in das Team {{team}} auf {{project}} eingeladen hat.",
"emails.invitation.footer": "Wenn du nicht interessiert bist, kannst du diese Nachricht ignorieren.",
"emails.invitation.thanks": "Danke,",
+ "emails.invitation.buttonText": "Einladung zu {{team}} annehmen",
"emails.invitation.signature": "{{project}}-Team",
"locale.country.unknown": "Unbekannt",
"countries.af": "Afghanistan",
@@ -244,5 +245,6 @@
"emails.otpSession.clientInfo": "Diese Anmeldung wurde über {{agentClient}} auf {{agentDevice}} {{agentOs}} angefordert. Wenn Sie die Anmeldung nicht angefordert haben, können Sie diese E-Mail getrost ignorieren.",
"emails.otpSession.securityPhrase": "Die Sicherheitsphrase für diese E-Mail lautet {{phrase}}. Sie können dieser E-Mail vertrauen, wenn diese Phrase mit der Phrase übereinstimmt, die beim Anmelden angezeigt wird.",
"emails.otpSession.thanks": "Danke,",
- "emails.otpSession.signature": "{{project}} Team"
+ "emails.otpSession.signature": "{{project}} Team",
+ "mock": "Eine Beispielübersetzung für Testzwecke."
}
diff --git a/app/config/locale/translations/el.json b/app/config/locale/translations/el.json
index 1ef9cd30df..54b14c1846 100644
--- a/app/config/locale/translations/el.json
+++ b/app/config/locale/translations/el.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Η τέχνη του να είσαι σοφός, είναι η τέχνη να ξέρεις τι πρέπει να παραβλέψεις.\"",
"settings.locale": "gr",
"settings.direction": "ltr",
- "emails.sender": "Ομάδα %s",
+ "emails.sender": "Ομάδα {{project}}",
"emails.verification.subject": "Επαλήθευση Λογαριασμού",
"emails.verification.hello": "Γεια σου {{user}},",
"emails.verification.body": "Ακολουθήστε αυτό το link για να επαληθεύσετε τη δ/νση του email σας",
"emails.verification.footer": "Εάν δεν ζητήσατε επαλήθευση αυτής της δ/νσης email, μπορείτε να αγνοήσετε αυτό το μήνυμα",
"emails.verification.thanks": "Ευχαριστούμε,",
+ "emails.verification.buttonText": "Επιβεβαιώστε διεύθυνση email",
"emails.verification.signature": "Η ομάδα του {{project}}",
"emails.magicSession.subject": "Είσοδος",
"emails.magicSession.hello": "Γεια σου,",
- "emails.magicSession.body": "Ακολουθήστε αυτό το link για να συνδεθείτε",
- "emails.magicSession.footer": "Εάν δεν ζητήσατε να συνδεθείτε χρησιμοποιώντας αυτό το email, μπορείτε να αγνοήσετε αυτό το μήνυμα.",
"emails.magicSession.thanks": "Ευχαριστούμε,",
"emails.magicSession.signature": "Η ομάδα του {{project}}",
"emails.recovery.subject": "Αλλαγή κωδικού πρόσβασης",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Ακολουθήστε αυτό το link για να αλλάξετε τον {{project}} κωδικό σας",
"emails.recovery.footer": "Εάν δεν ζητήσατε αλλαγή του κωδικού σας πρόσβασης, μπορείτε να αγνοήσετε αυτό το μήνυμα",
"emails.recovery.thanks": "Ευχαριστούμε,",
+ "emails.recovery.buttonText": "Επαναφορά κωδικού πρόσβασης",
"emails.recovery.signature": "Η ομάδα του {{project}}",
- "emails.invitation.subject": "Πρόσκληση στην %s Ομάδα στον %s",
+ "emails.invitation.subject": "Πρόσκληση στην {{team}} Ομάδα στον {{project}}",
"emails.invitation.hello": "Γεια σου,",
"emails.invitation.body": "Αυτό το email στάλθηκε επειδή ο/η {{owner}} θέλει να σας προσκαλέσει να γίνετε μέλος της ομάδας {{team}} του {{project}}.",
"emails.invitation.footer": "Εάν δεν ενδιαφέρεστε, μπορείτε να αγνοήσετε αυτό το μήνυμα.",
"emails.invitation.thanks": "Ευχαριστούμε,",
+ "emails.invitation.buttonText": "Αποδεχόμενος την πρόσκληση στην {{team}}",
"emails.invitation.signature": "Η ομάδα του {{project}}",
"locale.country.unknown": "Άγνωστο",
"countries.af": "Αφγανιστάν",
diff --git a/app/config/locale/translations/en.json b/app/config/locale/translations/en.json
index d9dfddb017..e2ee20b2d7 100644
--- a/app/config/locale/translations/en.json
+++ b/app/config/locale/translations/en.json
@@ -2,14 +2,17 @@
"settings.inspire": "\"The art of being wise is the art of knowing what to overlook.\"",
"settings.locale": "en",
"settings.direction": "ltr",
- "emails.sender": "%s Team",
+ "emails.sender": "{{project}} Team",
"emails.verification.subject": "Account Verification",
+ "emails.verification.preview": "Verify your email to activate your {{project}} account.",
"emails.verification.hello": "Hello {{user}},",
"emails.verification.body": "Follow this link to verify your email address to your {{b}}{{project}}{{/b}} account.",
"emails.verification.footer": "If you didn’t ask to verify this address, you can ignore this message.",
"emails.verification.thanks": "Thanks,",
+ "emails.verification.buttonText": "Confirm email address",
"emails.verification.signature": "{{project}} team",
"emails.magicSession.subject": "{{project}} Login",
+ "emails.magicSession.preview": "Sign in to {{project}} with your secure link. Expires in 1 hour.",
"emails.magicSession.hello": "Hello {{user}},",
"emails.magicSession.optionButton": "Click the button below to securely sign in to your {{b}}{{project}}{{/b}} account. This link will expire in 1 hour.",
"emails.magicSession.buttonText": "Sign in to {{project}}",
@@ -19,6 +22,7 @@
"emails.magicSession.thanks": "Thanks,",
"emails.magicSession.signature": "{{project}} team",
"emails.sessionAlert.subject": "Security alert: new session on your {{project}} account",
+ "emails.sessionAlert.preview": "New login detected on {{project}} at {{time}} UTC.",
"emails.sessionAlert.hello": "Hello {{user}},",
"emails.sessionAlert.body": "A new session has been created on your {{b}}{{project}}{{/b}} account, {{b}}on {{date}}, {{year}} at {{time}} UTC{{/b}}.\nHere are the details of the new session: ",
"emails.sessionAlert.listDevice": "Device: {{b}}{{device}}{{/b}}",
@@ -28,6 +32,7 @@
"emails.sessionAlert.thanks": "Thanks,",
"emails.sessionAlert.signature": "{{project}} team",
"emails.otpSession.subject": "OTP for {{project}} Login",
+ "emails.otpSession.preview": "Use OTP {{otp}} to sign in to {{project}}. Expires in 15 minutes.",
"emails.otpSession.hello": "Hello {{user}},",
"emails.otpSession.description": "Enter the following verification code when prompted to securely sign in to your {{b}}{{project}}{{/b}} account. This code will expire in 15 minutes.",
"emails.otpSession.clientInfo": "This sign in was requested using {{b}}{{agentClient}}{{/b}} on {{b}}{{agentDevice}}{{/b}} {{b}}{{agentOs}}{{/b}}. If you didn't request the sign in, you can safely ignore this email.",
@@ -35,24 +40,30 @@
"emails.otpSession.thanks": "Thanks,",
"emails.otpSession.signature": "{{project}} team",
"emails.mfaChallenge.subject": "Verification Code for {{project}}",
+ "emails.mfaChallenge.preview": "Use code {{otp}} for two-step verification in {{project}}. Expires in 15 minutes.",
"emails.mfaChallenge.hello": "Hello {{user}},",
- "emails.mfaChallenge.description": "Enter the following verification code to verify your email and activate two-step verification in {{b}}{{project}}{{/b}}. This code will expire in 15 minutes.",
+ "emails.mfaChallenge.description": "Enter the following code to confirm your two-step verification in {{b}}{{project}}{{/b}}. This code will expire in 15 minutes.",
"emails.mfaChallenge.clientInfo": "This verification code was requested using {{b}}{{agentClient}}{{/b}} on {{b}}{{agentDevice}}{{/b}} {{b}}{{agentOs}}{{/b}}. If you didn't request the verification code, you can safely ignore this email.",
"emails.mfaChallenge.thanks": "Thanks,",
"emails.mfaChallenge.signature": "{{project}} team",
"emails.recovery.subject": "Password Reset",
+ "emails.recovery.preview": "Reset your {{project}} password using the link.",
"emails.recovery.hello": "Hello {{user}},",
"emails.recovery.body": "Follow this link to reset your {{b}}{{project}}{{/b}} password.",
"emails.recovery.footer": "If you didn't ask to reset your password, you can ignore this message.",
"emails.recovery.thanks": "Thanks,",
+ "emails.recovery.buttonText": "Reset password",
"emails.recovery.signature": "{{project}} team",
- "emails.invitation.subject": "Invitation to %s Team at %s",
+ "emails.invitation.subject": "Invitation to {{team}} Team at {{project}}",
+ "emails.invitation.preview": "{{owner}} invited you to join {{team}} at {{project}}",
"emails.invitation.hello": "Hello {{user}},",
- "emails.invitation.body": "This mail was sent to you because {{b}}{{owner}}{{/b}} wanted to invite you to become a member of the {{b}}{{team}}{{/b}} team at {{b}}{{project}}{{/b}}.",
+ "emails.invitation.body": "This mail was sent to you because {{b}}{{owner}}{{/b}} invited you to become a member of the {{b}}{{team}}{{/b}} team at {{b}}{{project}}{{/b}}.",
"emails.invitation.footer": "If you are not interested, you can ignore this message.",
"emails.invitation.thanks": "Thanks,",
+ "emails.invitation.buttonText": "Accept invite to {{team}}",
"emails.invitation.signature": "{{project}} team",
- "emails.certificate.subject": "Certificate failure for %s",
+ "emails.certificate.subject": "Certificate failure for {{domain}}",
+ "emails.certificate.preview": "Your domain {{domain}} certificate generation has failed.",
"emails.certificate.hello": "Hello,",
"emails.certificate.body": "Certificate for your domain '{{domain}}' could not be generated. This is attempt no. {{attempt}}, and the failure was caused by: {{error}}",
"emails.certificate.footer": "Your previous certificate will be valid for 30 days since the first failure. We highly recommend investigating this case, otherwise your domain will end up without a valid SSL communication.",
@@ -263,5 +274,6 @@
"continents.eu": "Europe",
"continents.na": "North America",
"continents.oc": "Oceania",
- "continents.sa": "South America"
+ "continents.sa": "South America",
+ "mock": "A mock translation for testing purposes."
}
diff --git a/app/config/locale/translations/eo.json b/app/config/locale/translations/eo.json
index ba80bc602d..8b5eb0fe90 100644
--- a/app/config/locale/translations/eo.json
+++ b/app/config/locale/translations/eo.json
@@ -1,17 +1,16 @@
{
"settings.locale": "eo",
"settings.direction": "ltr",
- "emails.sender": "Teamo %s",
+ "emails.sender": "Teamo {{project}}",
"emails.verification.subject": "Konta Konfirmo",
"emails.verification.hello": "Saluton {{user}},",
"emails.verification.body": "Alklaku ĉi tiun ligon por kontroli vian retpoŝtan adreson.",
"emails.verification.footer": "Se vi ne petis ĉi tiun konfirmon de ĉi tiu retpoŝto, vi povas ignori ĉi tiun mesaĝon.",
"emails.verification.thanks": "Dankegon.,",
+ "emails.verification.buttonText": "Konfirmi retadreson",
"emails.verification.signature": "Teamo {{project}}",
"emails.magicSession.subject": "Login",
"emails.magicSession.hello": "Saluton,",
- "emails.magicSession.body": "Alklaku ĉi tiun ligon por eniri.",
- "emails.magicSession.footer": "Se vi ne petis ĉi tiun konfirmon de ĉi tiu retpoŝto, vi povas ignori ĉi tiun mesaĝon.",
"emails.magicSession.thanks": "Dankegon,",
"emails.magicSession.signature": "Teamo {{project}}",
"emails.recovery.subject": "Parsvorta Restarigo",
@@ -19,12 +18,14 @@
"emails.recovery.body": "Alklaku ĉi tiun ligon por reagordi vian pasvorton. {{project}}",
"emails.recovery.footer": "Se vi ne petis reagordi vian pasvorton, vi povas ignori ĉi tiun mesaĝon.",
"emails.recovery.thanks": "Dankegon,",
+ "emails.recovery.buttonText": "Pasvorton restarigi",
"emails.recovery.signature": "Teamo {{project}}",
- "emails.invitation.subject": "Invito al la Teamo %s em %s",
+ "emails.invitation.subject": "Invito al la Teamo {{team}} em {{project}}",
"emails.invitation.hello": "Dankegon,",
"emails.invitation.body": "Ĉi tiu retpoŝto estis sendita ĉar la {{owner}} volas inviti vin fariĝi membro de la Teamo {{team}} en {{project}}.",
"emails.invitation.footer": "Se vi ne interesiĝas, vi povas ignori ĉi tiun mesaĝon.",
"emails.invitation.thanks": "Dankegon,",
+ "emails.invitation.buttonText": "Akcepti inviton al {{team}}",
"emails.invitation.signature": "Teamo {{project}}",
"locale.country.unknown": "Unknown",
"countries.af": "Afghanistan",
diff --git a/app/config/locale/translations/es.json b/app/config/locale/translations/es.json
index ff98fd28c7..21a406b418 100644
--- a/app/config/locale/translations/es.json
+++ b/app/config/locale/translations/es.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"El arte de ser sabio es el arte de saber qué pasar por alto\"",
"settings.locale": "es",
"settings.direction": "ltr",
- "emails.sender": "El equipo de %s",
+ "emails.sender": "El equipo de {{project}}",
"emails.verification.subject": "Verificación de cuenta",
"emails.verification.hello": "Hola, {{name}}.,",
"emails.verification.body": "Haz clic en este enlace para verificar tu correo:",
"emails.verification.footer": "Si no has solicitado verificar este correo, puedes ignorar este mensaje.",
"emails.verification.thanks": "Gracias.,",
+ "emails.verification.buttonText": "Confirmar dirección de correo",
"emails.verification.signature": "El equipo de {{project}}.",
"emails.magicSession.subject": "Inicio de sesión",
"emails.magicSession.hello": "Hola,",
- "emails.magicSession.body": "Haz clic en este enlace para iniciar sesión:",
- "emails.magicSession.footer": "Si no has solicitado iniciar sesión usando este correo, puedes ignorar este mensaje.",
"emails.magicSession.thanks": "Gracias.,",
"emails.magicSession.signature": "El equipo de {{project}}",
"emails.recovery.subject": "Restablecer contraseña",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Haz clic en este enlace para restablecer la contraseña de {{project}}:",
"emails.recovery.footer": "Si no has solicitado restablecer la contraseña, puedes ignorar este mensaje.",
"emails.recovery.thanks": "Gracias.,",
+ "emails.recovery.buttonText": "Restablecer contraseña",
"emails.recovery.signature": "El equipo de {{project}}",
- "emails.invitation.subject": "Invitación al equipo %s en %s",
+ "emails.invitation.subject": "Invitación al equipo {{team}} en {{project}}",
"emails.invitation.hello": "Hola,",
"emails.invitation.body": "Este correo ha sido enviado a petición de {{owner}} quién quiere invitarte a formar parte del equipo {{team}} en {{project}}.",
"emails.invitation.footer": "Si no estás interesado, puedes ignorar este mensaje.",
"emails.invitation.thanks": "Gracias.,",
+ "emails.invitation.buttonText": "Aceptar invitación a {{team}}",
"emails.invitation.signature": "El equipo de {{project}}",
"locale.country.unknown": "Desconocido",
"countries.af": "Afganistán",
diff --git a/app/config/locale/translations/fa.json b/app/config/locale/translations/fa.json
index f826a75118..84cd154f4e 100644
--- a/app/config/locale/translations/fa.json
+++ b/app/config/locale/translations/fa.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"هنر خردمند بودن این است که بدانید چه چیزی را نادیده بگیرید.\"",
"settings.locale": "fa",
"settings.direction": "rtl",
- "emails.sender": "تیم %s",
+ "emails.sender": "تیم {{project}}",
"emails.verification.subject": "تأیید حساب",
"emails.verification.hello": "سلام {{user}}،",
"emails.verification.body": "برای تأیید ایمیلتان پیوند زیر را دنبال کنید.",
"emails.verification.footer": "اگر شما درخواست تأیید حساب ندادهاید، میتوانید این پیام را نادیده بگیرید.",
"emails.verification.thanks": "سپاس فراوان،",
+ "emails.verification.buttonText": "آدرس ایمیل را تایید کنید",
"emails.verification.signature": "تیم {{user}}",
"emails.magicSession.subject": "ورود به حساب کاربری",
"emails.magicSession.hello": "سلام،",
- "emails.magicSession.body": "برای ورود به حسابتان پیوند زیر را دنبال کنید.",
- "emails.magicSession.footer": "اگر شما درخواست ورود به حساب کاربری با استفاده از این ایمیل را ندادهاید، میتوانید این پیام را نادیده بگیرید.",
"emails.magicSession.thanks": "سپاس فراوان،",
"emails.magicSession.signature": "تیم {{user}}",
"emails.recovery.subject": "بازیابی گذرواژه",
@@ -20,12 +19,14 @@
"emails.recovery.body": "برای بازیابی گذرواژهتان پیوند زیر را دنبال کنید.",
"emails.recovery.footer": "اگر شما درخواست بازیابی گذرواژه ندادهاید، میتوانید این پیام را نادیده بگیرید.",
"emails.recovery.thanks": "سپاس فراوان،",
+ "emails.recovery.buttonText": "بازنشانی رمز عبور",
"emails.recovery.signature": "تیم {{user}}",
- "emails.invitation.subject": "دعوت به تیم %s در %s",
+ "emails.invitation.subject": "دعوت به تیم {{team}} در {{project}}",
"emails.invitation.hello": "سلام،",
"emails.invitation.body": "این ایمیل برای شما فرستاده شدهاست زیرا {{owner}} میخواهد شما را به تیم {{team}} در پروژهی {{project}} بیفزاید.",
"emails.invitation.footer": "اگر علاقه ندارید، میتوانید این پیام را نادیده بگیرید.",
"emails.invitation.thanks": "سپاس فراوان،",
+ "emails.invitation.buttonText": "دعوت را به {{team}} بپذیرید",
"emails.invitation.signature": "تیم {{user}}",
"locale.country.unknown": "ناشناخته",
"countries.af": "افغانستان",
diff --git a/app/config/locale/translations/fi.json b/app/config/locale/translations/fi.json
index ca61a95653..2a5ff54078 100644
--- a/app/config/locale/translations/fi.json
+++ b/app/config/locale/translations/fi.json
@@ -2,7 +2,7 @@
"settings.inspire": "\"The art of being wise is the art of knowing what to overlook.\"",
"settings.locale": "fi",
"settings.direction": "ltr",
- "emails.sender": "%s Tiimi",
+ "emails.sender": "{{project}} Tiimi",
"emails.verification.subject": "",
"emails.verification.hello": ",",
"emails.verification.body": "",
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
- "emails.magicSession.body": "",
- "emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
diff --git a/app/config/locale/translations/fo.json b/app/config/locale/translations/fo.json
index a982fd0590..e301d158fa 100644
--- a/app/config/locale/translations/fo.json
+++ b/app/config/locale/translations/fo.json
@@ -2,7 +2,7 @@
"settings.inspire": "\"Kunstin om at vera vís er at vita hvat man skal misrøkja.\"",
"settings.locale": "fo",
"settings.direction": "ltr",
- "emails.sender": "%s Lið",
+ "emails.sender": "{{project}} Lið",
"emails.verification.subject": "",
"emails.verification.hello": ",",
"emails.verification.body": "",
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
- "emails.magicSession.body": "",
- "emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
diff --git a/app/config/locale/translations/fr.json b/app/config/locale/translations/fr.json
index 1b60cb1910..95abe15787 100644
--- a/app/config/locale/translations/fr.json
+++ b/app/config/locale/translations/fr.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"L'art d'être sage est l'art de savoir quoi négliger.\"",
"settings.locale": "fr",
"settings.direction": "ltr",
- "emails.sender": "Équipe %s",
+ "emails.sender": "Équipe {{project}}",
"emails.verification.subject": "Vérification du compte",
"emails.verification.hello": "Bonjour {{user}},",
"emails.verification.body": "Suivez ce lien pour vérifier votre adresse e-mail.",
"emails.verification.footer": "Si vous n'avez pas demandé à vérifier cette adresse, vous pouvez ignorer ce message.",
"emails.verification.thanks": "Merci,",
+ "emails.verification.buttonText": "Confirmez l'adresse e-mail",
"emails.verification.signature": "Équipe {{project}}",
"emails.magicSession.subject": "Connexion",
"emails.magicSession.hello": "Bonjour,",
- "emails.magicSession.body": "Suivez ce lien pour vous connecter.",
- "emails.magicSession.footer": "Si vous n'avez pas demandé à vous connecter en utilisant cet e-mail, vous pouvez ignorer ce message.",
"emails.magicSession.thanks": "Merci,",
"emails.magicSession.signature": "L'équipe {{project}}",
"emails.recovery.subject": "Réinitialisation du mot de passe",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Suivez ce lien pour réinitialiser votre mot de passe pour {{project}}.",
"emails.recovery.footer": "Si vous n'avez pas demandé à réinitialiser votre mot de passe, vous pouvez ignorer ce message.",
"emails.recovery.thanks": "Merci,",
+ "emails.recovery.buttonText": "Réinitialisation du mot de passe",
"emails.recovery.signature": "L'équipe {{project}}",
- "emails.invitation.subject": "Invitation à l'équipe %s de %s",
+ "emails.invitation.subject": "Invitation à l'équipe {{team}} de {{project}}",
"emails.invitation.hello": "Bonjour,",
"emails.invitation.body": "Cet e-mail vous a été envoyé parce que {{owner}} souhaite vous inviter à devenir membre de l'équipe {{team}} pour {{project}}.",
"emails.invitation.footer": "Si vous n'êtes pas intéressé, vous pouvez ignorer ce message.",
"emails.invitation.thanks": "Merci,",
+ "emails.invitation.buttonText": "Accepter l'invitation à {{team}}",
"emails.invitation.signature": "L'équipe {{project}}",
"locale.country.unknown": "Inconnu",
"countries.af": "Afghanistan",
diff --git a/app/config/locale/translations/ga.json b/app/config/locale/translations/ga.json
index 3ed68ad8c3..b3e480c22c 100644
--- a/app/config/locale/translations/ga.json
+++ b/app/config/locale/translations/ga.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Is í ealaín na críonnachta ná rudaí a aithint chun cluas bhodhar a thabhairt dóibh.\"",
"settings.locale": "ga",
"settings.direction": "ltr",
- "emails.sender": "%s Foireann",
+ "emails.sender": "{{project}} Foireann",
"emails.verification.subject": "Fíoraithe cuntais",
"emails.verification.hello": "Haigh {{user}},",
"emails.verification.body": "Lean an nasc seo chun do ríomhphost a fhíorú.",
"emails.verification.footer": "Mura ndearna tú iarratas an seoladh seo a fhíoru, déan neamhaird den teachtaireacht seo.",
"emails.verification.thanks": "Go raibh maith agat,",
+ "emails.verification.buttonText": "Deimhnigh seoladh ríomhphoist",
"emails.verification.signature": "{{project}} foireann",
"emails.magicSession.subject": "Logáil isteach",
"emails.magicSession.hello": "Haigh,",
- "emails.magicSession.body": "Lean an nasc seo chun logáil isteach.",
- "emails.magicSession.footer": "Mura ndearna tú iarratas logáil isteach leis an ríomhphost seo, déan neamhaird den teachtaireacht seo.",
"emails.magicSession.thanks": "Go raibh maith agat,",
"emails.magicSession.signature": "{{project}} foireann",
"emails.recovery.subject": "Athshocrú pasfhocail",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Lean an nasc seo chun do pasfhocal {{project}} a athshocrú.",
"emails.recovery.footer": "Mura ndearna tú iarratas do pasfhocal a athshocrú, déan neamhaird den teachtaireacht seo.",
"emails.recovery.thanks": "Go raibh maith agat,",
+ "emails.recovery.buttonText": "Athshocraigh focal faire",
"emails.recovery.signature": "{{project}} foireann",
- "emails.invitation.subject": "Cuireadh do %s foireann ag %s",
+ "emails.invitation.subject": "Cuireadh do {{team}} foireann ag {{project}}",
"emails.invitation.hello": "Haigh,",
"emails.invitation.body": "Seoladh an ríomhphost seo chugat mar ba mhaith le {{owner}} cuireadh a thabhairt duit bheith mar bhall den fhoireann {{team}} ag obair ar {{project}}.",
"emails.invitation.footer": "Is cuma leat? Déan neamhaird den teachtaireacht seo.",
"emails.invitation.thanks": "Go raibh maith agat,",
+ "emails.invitation.buttonText": "Glac le cuireadh chuig {{team}}",
"emails.invitation.signature": "{{project}} foireann",
"locale.country.unknown": "Neamhaithnid",
"countries.af": "An Afganastáin",
diff --git a/app/config/locale/translations/gu.json b/app/config/locale/translations/gu.json
index 54378caa9e..97d73b8d5c 100644
--- a/app/config/locale/translations/gu.json
+++ b/app/config/locale/translations/gu.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"સ્માર્ટ બનવાની કળા એ છે કે શું અવગણવું તે જાણવાની કળા છે.\"",
"settings.locale": "gu",
"settings.direction": "ltr",
- "emails.sender": "%s ટીમ",
+ "emails.sender": "{{project}} ટીમ",
"emails.verification.subject": "ખાતાની ચકાસણી",
"emails.verification.hello": "નમસ્કાર {{user}},",
"emails.verification.body": "તમારું ઇમેઇલ સરનામું ચકાસવા માટે આ લિંકને અનુસરો.",
"emails.verification.footer": "જો તમે આ સરનામાંની ચકાસણી કરવાનું ન કહ્યું હોય, તો તમે આ સંદેશને અવગણી શકો છો.",
"emails.verification.thanks": "આભાર,",
+ "emails.verification.buttonText": "ઇમેઇલ સરનામું ખાતરી કરો",
"emails.verification.signature": "{{project}} ટીમ",
"emails.magicSession.subject": "પ્રવેશ કરો",
"emails.magicSession.hello": "નમસ્કાર,",
- "emails.magicSession.body": "પ્રવેશ કરવા માટે આ લિંકને અનુસરો.",
- "emails.magicSession.footer": "જો તમે આ ઇમેઇલનો ઉપયોગ કરીને પ્રવેશ કરવાનું ન કહ્યું હોય, તો તમે આ સંદેશને અવગણી શકો છો.",
"emails.magicSession.thanks": "આભાર,",
"emails.magicSession.signature": "{{project}} ટીમ",
"emails.recovery.subject": "પાસવર્ડ ફરીથી સેટ કરો",
@@ -20,12 +19,14 @@
"emails.recovery.body": "તમારો {{project}} પાસવર્ડ ફરીથી સેટ કરવા માટે આ લિંકને અનુસરો.",
"emails.recovery.footer": "જો તમે તમારો પાસવર્ડ ફરીથી સેટ કરવાનું ન કહ્યું હોય, તો તમે આ સંદેશને અવગણી શકો છો.",
"emails.recovery.thanks": "આભાર,",
+ "emails.recovery.buttonText": "પાસવર્ડ રીસેટ કરો",
"emails.recovery.signature": "{{project}} ટીમ",
- "emails.invitation.subject": "%s ટીમને %s પર આમંત્રણ",
+ "emails.invitation.subject": "{{team}} ટીમને {{project}} પર આમંત્રણ",
"emails.invitation.hello": "નમસ્કાર,",
"emails.invitation.body": "આ મેઇલ તમને મોકલવામાં આવ્યો હતો કારણ કે {{owner}} તમને {{project}} માં {{team}} ટીમના સભ્ય બનવા માટે આમંત્રિત કરવા માંગતા હતો.",
"emails.invitation.footer": "જો તમને રસ નથી, તો તમે આ સંદેશને અવગણી શકો છો.",
"emails.invitation.thanks": "આભાર,",
+ "emails.invitation.buttonText": "{{team}} નું આમંત્રણ સ્વીકારો",
"emails.invitation.signature": "{{project}} ટીમ",
"locale.country.unknown": "અજાણ",
"countries.af": "અફઘાનિસ્તાન",
diff --git a/app/config/locale/translations/he.json b/app/config/locale/translations/he.json
index b3d4dea2a8..96c9eb3d50 100644
--- a/app/config/locale/translations/he.json
+++ b/app/config/locale/translations/he.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"להיות חכם זה לדעת ממה להתעלם.\"",
"settings.locale": "he",
"settings.direction": "rtl",
- "emails.sender": "צוות %s",
+ "emails.sender": "צוות {{project}}",
"emails.verification.subject": "אימות חשבון",
"emails.verification.hello": "שלום {{user}},",
"emails.verification.body": "לחץ על קישור זה כדי לאמת את כתובת הדוא\"ל שלך.",
"emails.verification.footer": "אם לא ביקשת לאמת כתובת זו, תוכל להתעלם מהודעה זו.",
"emails.verification.thanks": "תודה,",
+ "emails.verification.buttonText": "אשר כתובת דוא\"ל",
"emails.verification.signature": "צוות {{project}}",
"emails.magicSession.subject": "כניסה למערכת",
"emails.magicSession.hello": "שלום,",
- "emails.magicSession.body": "לחץ על קישור זה כדי להיכנס.",
- "emails.magicSession.footer": "אם לא ביקשת להיכנס באמצעות דוא\"ל זה, תוכל להתעלם מהודעה זו.",
"emails.magicSession.thanks": "תודה,",
"emails.magicSession.signature": "צוות {{project}}",
"emails.recovery.subject": "איפוס סיסמא",
@@ -20,12 +19,14 @@
"emails.recovery.body": "עקוב אחר קישור זה כדי לאפס את סיסמתך ב-{{project}}.",
"emails.recovery.footer": "אם לא ביקשת לאפס את הסיסמה, תוכל להתעלם מהודעה זו.",
"emails.recovery.thanks": "תודה,",
+ "emails.recovery.buttonText": "סיסמא איפוס",
"emails.recovery.signature": "צוות {{project}}",
- "emails.invitation.subject": "הזמנה לצוות %s ב- %s",
+ "emails.invitation.subject": "הזמנה לצוות {{team}} ב- {{project}}",
"emails.invitation.hello": "שלום,",
"emails.invitation.body": "דואר זה נשלח אליך מכיוון ש {{owner}} רצה להזמין אותך להיות חבר בצוות {{team}} ב-{{project}}.",
"emails.invitation.footer": "אם אינך מעוניין, תוכל להתעלם מהודעה זו.",
"emails.invitation.thanks": "תודה,",
+ "emails.invitation.buttonText": "אשר הזמנה ל-{{team}}",
"emails.invitation.signature": "צוות {{project}}",
"locale.country.unknown": "לא ידוע",
"countries.af": "אפגניסטן",
diff --git a/app/config/locale/translations/hi.json b/app/config/locale/translations/hi.json
index 1c4d531d60..51f404260e 100644
--- a/app/config/locale/translations/hi.json
+++ b/app/config/locale/translations/hi.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"बुद्धिमान होने की कला यह जानने की कला है कि क्या अनदेखा किया जाए |\"",
"settings.locale": "hi",
"settings.direction": "ltr",
- "emails.sender": "%s टीम",
+ "emails.sender": "{{project}} टीम",
"emails.verification.subject": "अकाउंट वेरिफिकेशन ",
"emails.verification.hello": "नमस्ते {{user}},",
"emails.verification.body": "इस लिंक के माध्यम से अपने ईमेल को सत्यापित कीजिये।",
"emails.verification.footer": "यदि आप इस पते को सत्यापित नहीं करना चाहते हैं, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
"emails.verification.thanks": "धन्यवाद,",
+ "emails.verification.buttonText": "ईमेल पता सत्यापित करें",
"emails.verification.signature": "{{project}} टीम",
"emails.magicSession.subject": "लॉग इन",
"emails.magicSession.hello": "नमस्ते,",
- "emails.magicSession.body": "इस लिंक के माध्यम से लॉग-इन करें।",
- "emails.magicSession.footer": "यदि आप इस ईमेल द्वारा लॉगिन नहीं करना चाहते हैं, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
"emails.magicSession.thanks": "धन्यवाद,",
"emails.magicSession.signature": "{{project}} टीम",
"emails.recovery.subject": "पासवर्ड रीसेट",
@@ -20,12 +19,14 @@
"emails.recovery.body": "इस लिंक के माध्यम से अपना {{project}} पासवर्ड रीसेट करें।",
"emails.recovery.footer": "यदि आप अपना पासवर्ड रीसेट नहीं करना चाहते हैं, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
"emails.recovery.thanks": "धन्यवाद,",
+ "emails.recovery.buttonText": "पासवर्ड रीसेट करें",
"emails.recovery.signature": "{{project}} टीम",
- "emails.invitation.subject": "%s टीम का यहाँ %s पर आमंत्रण",
+ "emails.invitation.subject": "{{team}} टीम का यहाँ {{project}} पर आमंत्रण",
"emails.invitation.hello": "नमस्ते,",
"emails.invitation.body": "यह मेल आपको इसलिए भेजा गया है क्योंकि {{owner}} आपको {{team}} टीम का सदस्य बनाना चाहते है, जो {{project}} से जुड़ा हुआ है।",
"emails.invitation.footer": "यदि आप इसमें रूचि नहीं रखते, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
"emails.invitation.thanks": "धन्यवाद,",
+ "emails.invitation.buttonText": "{{team}} का निमंत्रण स्वीकार करें",
"emails.invitation.signature": "{{project}} टीम",
"locale.country.unknown": "अज्ञात",
"countries.af": "अफ़ग़ानिस्तान",
diff --git a/app/config/locale/translations/hr.json b/app/config/locale/translations/hr.json
index e5bf4719a9..e956a530c1 100644
--- a/app/config/locale/translations/hr.json
+++ b/app/config/locale/translations/hr.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Umjetnost mudrosti je umjetnost znanja o tome što zanemariti.\"",
"settings.locale": "hr",
"settings.direction": "ltr",
- "emails.sender": "%s Tim",
+ "emails.sender": "{{project}} Tim",
"emails.verification.subject": "Verifikacija računa",
"emails.verification.hello": "Pozdrav {{user}},",
"emails.verification.body": "Slijedite ovu poveznicu da biste potvrdili svoju adresu e-pošte.",
"emails.verification.footer": "Ukoliko niste zatražili potvrdu ove adrese, možete zanemariti ovu poruku.",
"emails.verification.thanks": "Hvala,",
+ "emails.verification.buttonText": "Potvrdi adresu e-pošte",
"emails.verification.signature": "{{project}} tim",
"emails.magicSession.subject": "Prijavite se",
"emails.magicSession.hello": "Pozdrav,",
- "emails.magicSession.body": "Slijedite ovu poveznicu za prijavu.",
- "emails.magicSession.footer": "Ako niste zatražili prijavu putem ove e-pošte, možete zanemariti ovu poruku.",
"emails.magicSession.thanks": "Hvala,",
"emails.magicSession.signature": "{{project}} tim",
"emails.recovery.subject": "Ponovno postavljanje lozinke",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Slijedite ovu poveznicu za ponovno postavljanje {{project}} lozinke.",
"emails.recovery.footer": "Ako niste zatražili ponovno postavljanje Vaše lozinke, možete zanemariti ovu poruku.",
"emails.recovery.thanks": "Hvala,",
+ "emails.recovery.buttonText": "Resetiraj lozinku",
"emails.recovery.signature": "{{project}} tim",
- "emails.invitation.subject": "Pozivnica za %s tim na %s",
+ "emails.invitation.subject": "Pozivnica za {{team}} tim na {{project}}",
"emails.invitation.hello": "Pozdrav,",
"emails.invitation.body": "Ova poruka Vam je poslana jer Vas je {{owner}} htio pozvati da postanete član {{team}} tima na {{project}}.",
"emails.invitation.footer": "Ukoliko niste zainteresirani, možete zanemariti ovu poruku.",
"emails.invitation.thanks": "Hvala,",
+ "emails.invitation.buttonText": "Prihvati pozivnicu za {{team}}",
"emails.invitation.signature": "{{project}} tim",
"locale.country.unknown": "Nepoznato",
"countries.af": "Afganistan",
diff --git a/app/config/locale/translations/hu.json b/app/config/locale/translations/hu.json
index 589cb61859..2593099c52 100644
--- a/app/config/locale/translations/hu.json
+++ b/app/config/locale/translations/hu.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"The art of being wise is the art of knowing what to overlook.\"",
"settings.locale": "hu",
"settings.direction": "ltr",
- "emails.sender": "%s Csapat",
+ "emails.sender": "{{project}} Csapat",
"emails.verification.subject": "Fiók Megerősítése",
"emails.verification.hello": "Szia {{user}},",
"emails.verification.body": "Kattints a linkre, hogy megerősítsd az email címedet.",
"emails.verification.footer": "Ha nem te kérted a címed megerősítését, akkor nyugodtan hagyd figyelmen kívül ezt az üzenetet.",
"emails.verification.thanks": "Köszönettel,",
+ "emails.verification.buttonText": "E-mail-cím megerősítése",
"emails.verification.signature": "a {{project}} csapat",
"emails.magicSession.subject": "Bejelentkezés",
"emails.magicSession.hello": "Szia,",
- "emails.magicSession.body": "Kattints a linkre a bejelentkezéshez.",
- "emails.magicSession.footer": "Ha nem te szerettél volna bejelentkezni ezzel az email címmel, akkor nyugodtan hagyd figyelmen kívül ezt az üzenetet.",
"emails.magicSession.thanks": "Köszönettel,",
"emails.magicSession.signature": "a {{project}} csapat",
"emails.recovery.subject": "Jelszó Visszaállítása",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Kattints a linkre a {{project}} jelszavad visszaállításához.",
"emails.recovery.footer": "Ha nem te kezdeményezted a jelszavad visszaállítását, akkor nyugodtan hagyd figyelmen kívül ezt az üzenetet.",
"emails.recovery.thanks": "Köszönettel,",
+ "emails.recovery.buttonText": "Jelszó visszaállítása",
"emails.recovery.signature": "a {{project}} csapat",
- "emails.invitation.subject": "Meghívó a(z) %s csapatba, a(z) %s projektbe",
+ "emails.invitation.subject": "Meghívó a(z) {{team}} csapatba, a(z) {{project}} projektbe",
"emails.invitation.hello": "Szia,",
"emails.invitation.body": "Ezt a levelet azért kaptad, mert {{owner}} meghívott, hogy légy a {{team}} csapat tagja a {{project}} projektben.",
"emails.invitation.footer": "Ha nem érdekel a lehetőség, nyugodtan hagyd figyelmen kívül ezt az üzenetet.",
"emails.invitation.thanks": "Köszönettel,",
+ "emails.invitation.buttonText": "Elfogadni meghívást a {{team}-re",
"emails.invitation.signature": "a {{project}} csapat",
"locale.country.unknown": "Ismeretlen",
"countries.af": "Afganisztán",
diff --git a/app/config/locale/translations/hy.json b/app/config/locale/translations/hy.json
index c845526607..b0c264d87c 100644
--- a/app/config/locale/translations/hy.json
+++ b/app/config/locale/translations/hy.json
@@ -2,7 +2,7 @@
"settings.inspire": "\"Искусство быть мудрым — это искусство знать, чем можно пренебречь.\"",
"settings.locale": "ru",
"settings.direction": "ltr",
- "emails.sender": "Թիմ %s",
+ "emails.sender": "Թիմ {{project}}",
"emails.verification.subject": "",
"emails.verification.hello": ",",
"emails.verification.body": "",
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
- "emails.magicSession.body": "",
- "emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
diff --git a/app/config/locale/translations/id.json b/app/config/locale/translations/id.json
index c28b15f15d..0e716f1e80 100644
--- a/app/config/locale/translations/id.json
+++ b/app/config/locale/translations/id.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Seni menjadi bijak adalah seni mengetahui apa yang harus diabaikan.\"",
"settings.locale": "id",
"settings.direction": "ltr",
- "emails.sender": "Tim %s",
+ "emails.sender": "Tim {{project}}",
"emails.verification.subject": "Verifikasi Akun",
"emails.verification.hello": "Hai {{user}},",
"emails.verification.body": "Ikuti tautan ini untuk memverifikasi alamat email Anda.",
"emails.verification.footer": "Jika Anda tidak meminta untuk memverifikasi alamat email ini, Anda dapat mengabaikan pesan ini.",
"emails.verification.thanks": "Terima kasih,",
+ "emails.verification.buttonText": "Konfirmasi alamat email",
"emails.verification.signature": "Tim {{project}}",
"emails.magicSession.subject": "Masuk",
"emails.magicSession.hello": "Hai,",
- "emails.magicSession.body": "Ikuti tautan ini untuk masuk.",
- "emails.magicSession.footer": "Jika Anda tidak meminta untuk masuk menggunakan email ini, Anda dapat mengabaikan pesan ini.",
"emails.magicSession.thanks": "Terima kasih,",
"emails.magicSession.signature": "Tim {{project}}",
"emails.recovery.subject": "Atur Ulang Kata Sandi",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Ikuti tautan ini untuk menyetel ulang kata sandi {{project}} Anda.",
"emails.recovery.footer": "Jika Anda tidak meminta untuk menyetel ulang kata sandi, Anda dapat mengabaikan pesan ini.",
"emails.recovery.thanks": "Terima kasih,",
+ "emails.recovery.buttonText": "Atur ulang kata sandi",
"emails.recovery.signature": "Tim {{project}}",
- "emails.invitation.subject": "Undangan ke Tim %s di %s",
+ "emails.invitation.subject": "Undangan ke Tim {{team}} di {{project}}",
"emails.invitation.hello": "Halo,",
"emails.invitation.body": "Email ini dikirimkan kepada Anda karena {{owner}} ingin mengundang Anda untuk menjadi anggota tim {{team}} di {{project}}.",
"emails.invitation.footer": "Jika Anda tidak tertarik, Anda dapat mengabaikan pesan ini.",
"emails.invitation.thanks": "Terima kasih,",
+ "emails.invitation.buttonText": "Terima undangan ke {{team}}",
"emails.invitation.signature": "Tim {{project}}",
"locale.country.unknown": "Tidak diketahui",
"countries.af": "Afganistan",
diff --git a/app/config/locale/translations/is.json b/app/config/locale/translations/is.json
index 5fede4dda0..e387058d17 100644
--- a/app/config/locale/translations/is.json
+++ b/app/config/locale/translations/is.json
@@ -2,7 +2,7 @@
"settings.inspire": "\"Listin að vera vitur er listin að vita hvað á að líta framhjá.\"",
"settings.locale": "is",
"settings.direction": "ltr",
- "emails.sender": "%s Teymi",
+ "emails.sender": "{{project}} Teymi",
"emails.verification.subject": "",
"emails.verification.hello": ",",
"emails.verification.body": "",
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
- "emails.magicSession.body": "",
- "emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
diff --git a/app/config/locale/translations/it.json b/app/config/locale/translations/it.json
index 8d45de9903..1b07f7e95c 100644
--- a/app/config/locale/translations/it.json
+++ b/app/config/locale/translations/it.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"L'arte di essere saggi è l'arte di saper cosa trascurare.\"",
"settings.locale": "it",
"settings.direction": "ltr",
- "emails.sender": "Team %s",
+ "emails.sender": "Team {{project}}",
"emails.verification.subject": "Verifica account",
"emails.verification.hello": "Ciao {{user}},",
"emails.verification.body": "Clicca questo link per verificare il tuo indirizzo email.",
"emails.verification.footer": "Se non hai richiesto la verifica dell’indirizzo email, puoi ignorare questo messaggio.",
"emails.verification.thanks": "Grazie,",
+ "emails.verification.buttonText": "Confermare l'indirizzo email",
"emails.verification.signature": "Il team {{project}}",
"emails.magicSession.subject": "Login",
"emails.magicSession.hello": "Ciao,",
- "emails.magicSession.body": "Clicca questo link per accedere.",
- "emails.magicSession.footer": "Se non hai richiesto di effettuare l’accesso, puoi ignorare questo messaggio.",
"emails.magicSession.thanks": "Grazie,",
"emails.magicSession.signature": "Il team {{project}}",
"emails.recovery.subject": "Reimpostazione password",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Clicca questo link per reimpostare la tua password di {{project}}.",
"emails.recovery.footer": "Se non hai richiesto la reimpostazione della password, puoi ignorare questo messaggio.",
"emails.recovery.thanks": "Grazie,",
+ "emails.recovery.buttonText": "Reimposta password",
"emails.recovery.signature": "Il team {{project}}",
- "emails.invitation.subject": "Invito al Team %s per %s",
+ "emails.invitation.subject": "Invito al Team {{team}} per {{project}}",
"emails.invitation.hello": "Ciao,",
"emails.invitation.body": "Hai ricevuto questa email perché {{owner}} ti ha invitato a diventare un membro del team {{team}} di {{project}}.",
"emails.invitation.footer": "Ignora questo messaggio se non sei interessatə.",
"emails.invitation.thanks": "Grazie,",
+ "emails.invitation.buttonText": "Accetta invito a {{team}}",
"emails.invitation.signature": "Il team {{project}}",
"locale.country.unknown": "Sconosciuto",
"countries.af": "Afghanistan",
diff --git a/app/config/locale/translations/ja.json b/app/config/locale/translations/ja.json
index 76d9a0cb1f..40c84e4a80 100644
--- a/app/config/locale/translations/ja.json
+++ b/app/config/locale/translations/ja.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"賢明になる術は何を捨てるべきかを心得る術である。\"",
"settings.locale": "ja",
"settings.direction": "ltr",
- "emails.sender": "%s チーム",
+ "emails.sender": "{{project}} チーム",
"emails.verification.subject": "アカウント認証",
"emails.verification.hello": "こんにちは{{user}}さん、",
"emails.verification.body": "メールアドレスを有効化するためには下記リンクをクリックして下さい。",
"emails.verification.footer": "このメールに心当たりが無い場合は破棄をお願いいたします。",
"emails.verification.thanks": "ご利用いただきありがとうございます。、",
+ "emails.verification.buttonText": "メールアドレスを確認する",
"emails.verification.signature": "{{project}}チーム",
"emails.magicSession.subject": "ログイン",
"emails.magicSession.hello": "こんにちは、",
- "emails.magicSession.body": "ログインするためには下記リンクをクリックしてください。",
- "emails.magicSession.footer": "このメールに心当たりが無い場合は破棄をお願いいたします。",
"emails.magicSession.thanks": "ご利用いただきありがとうございます。、",
"emails.magicSession.signature": "{{project}}チーム",
"emails.recovery.subject": "パスワードリセット",
@@ -20,12 +19,14 @@
"emails.recovery.body": "パスワードをリセットするためには下記リンクをクリックしてください。",
"emails.recovery.footer": "このメールに心当たりが無い場合は破棄をお願いいたします。",
"emails.recovery.thanks": "ご利用いただきありがとうございます。、",
+ "emails.recovery.buttonText": "パスワードをリセット",
"emails.recovery.signature": "{{project}}チーム",
- "emails.invitation.subject": "%sチームへの招待が%sから来ました。",
+ "emails.invitation.subject": "{{team}}チームへの招待が{{project}}から来ました。",
"emails.invitation.hello": "こんにちは、",
"emails.invitation.body": "{{owner}}さんが{{project}}の{{team}}チームにあなたを招待しています。",
"emails.invitation.footer": "このメールに心当たりが無い場合は破棄をお願いいたします。",
"emails.invitation.thanks": "ご利用いただきありがとうございます。、",
+ "emails.invitation.buttonText": "{{team}}への招待を承諾する",
"emails.invitation.signature": "{{project}}チーム",
"locale.country.unknown": "不明",
"countries.af": "アフガニスタン",
diff --git a/app/config/locale/translations/jv.json b/app/config/locale/translations/jv.json
index 889e968b4d..962ded4fdc 100644
--- a/app/config/locale/translations/jv.json
+++ b/app/config/locale/translations/jv.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Kesenian sing wicaksana yaiku seni sing ngerti apa sing kudu dilalekake.\"",
"settings.locale": "jv",
"settings.direction": "ltr",
- "emails.sender": "Tim %s",
+ "emails.sender": "Tim {{project}}",
"emails.verification.subject": "Verifikasi Akun",
"emails.verification.hello": "Hai {{user}},",
"emails.verification.body": "Klik link iki kanggo verifikasi alamat email sampeyan.",
"emails.verification.footer": "Yen sampeyan ora njaluk verifikasi alamat iki, sampeyan iso nglirwakake pesen iki.",
"emails.verification.thanks": "Matur nuwun,",
+ "emails.verification.buttonText": "Konfirmasi alamat email",
"emails.verification.signature": "Tim {{project}}",
"emails.magicSession.subject": "Masuk",
"emails.magicSession.hello": "Hai,",
- "emails.magicSession.body": "Klik link iki kanggo masuk.",
- "emails.magicSession.footer": "Yen sampeyan ora njaluk masuk nggunakake alamat email iki, sampeyan iso nglirwakake pesen iki.",
"emails.magicSession.thanks": "Matur nuwun,",
"emails.magicSession.signature": "Tim {{project}}",
"emails.recovery.subject": "Setel ulang sandi",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Klik link iki kanggo setel ulang sandi {{project}}.",
"emails.recovery.footer": "Yen sampeyan ora njaluk setel ulang sandi, sampeyan iso nglirwakake pesen iki.",
"emails.recovery.thanks": "Matur nuwun,",
+ "emails.recovery.buttonText": "Reset sandhi",
"emails.recovery.signature": "Tim {{project}}",
- "emails.invitation.subject": "Undangan ke Tim %s di %s",
+ "emails.invitation.subject": "Undangan ke Tim {{team}} di {{project}}",
"emails.invitation.hello": "Halo,",
"emails.invitation.body": "Email iki dikirim menyang sampeyan amarga {{owner}} pengin ngajak sampeyan dadi anggota tim {{team}} di {{project}}.",
"emails.invitation.footer": "Yen sampeyan ora tertarik, sampeyan iso nglirwakake pesen iki.",
"emails.invitation.thanks": "Matur nuwun,",
+ "emails.invitation.buttonText": "Tampa undhangan menyang {{team}}",
"emails.invitation.signature": "Tim {{project}}",
"locale.country.unknown": "Ora dingerteni",
"countries.af": "Afghanistan",
diff --git a/app/config/locale/translations/km.json b/app/config/locale/translations/km.json
index 12ac05e8da..e673a7916f 100644
--- a/app/config/locale/translations/km.json
+++ b/app/config/locale/translations/km.json
@@ -2,7 +2,7 @@
"settings.inspire": "\"សិល្បៈនៃប្រាជ្ញាគឺជាសិល្បៈនៃការស្គាល់ពីអ្វីដែលត្រូវមើលរំលង។\"",
"settings.locale": "km",
"settings.direction": "ltr",
- "emails.sender": "ក្រុម %s",
+ "emails.sender": "ក្រុម {{project}}",
"emails.verification.subject": "",
"emails.verification.hello": "",
"emails.verification.body": "",
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": "",
- "emails.magicSession.body": "",
- "emails.magicSession.footer": "",
"emails.magicSession.thanks": "",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
diff --git a/app/config/locale/translations/kn.json b/app/config/locale/translations/kn.json
index ba57c21155..ede9d020b8 100644
--- a/app/config/locale/translations/kn.json
+++ b/app/config/locale/translations/kn.json
@@ -1,18 +1,17 @@
{
"settings.inspire": "\"ಬುದ್ಧಿವಂತಿಕೆಯ ಕಲೆ ಏನು ಕಡೆಗಣಿಸಬೇಕೆಂದು ತಿಳಿಯುವ ಕಲೆ.\"",
- "settings.locale": "ka",
+ "settings.locale": "kn",
"settings.direction": "ltr",
- "emails.sender": "%s ತಂಡ",
+ "emails.sender": "{{project}} ತಂಡ",
"emails.verification.subject": "ಖಾತೆ ಪರಿಶೀಲನೆ",
"emails.verification.hello": "ನಮಸ್ಕಾರ {{user}},",
"emails.verification.body": "ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸ ಪರಿಶೀಲನೆಗೆ ಈ ಲಿಂಕನ್ನು ಅನುಸರಿಸಿ",
"emails.verification.footer": "ನೀವು ಇಮೇಲ್ ವಿಳಾಸ ಪರಿಶೀಲನೆಗೆ ಕೇಳದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ",
"emails.verification.thanks": "ಧನ್ಯವಾದಗಳು,",
+ "emails.verification.buttonText": "ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ದೃಢೀಕರಿಸಿ",
"emails.verification.signature": "{{project}} ತಂಡ",
"emails.magicSession.subject": "ಲಾಗಿನ್",
"emails.magicSession.hello": "ನಮಸ್ಕಾರ,",
- "emails.magicSession.body": "ಲಾಗಿನ್ ಮಾಡಲಿಕ್ಕೆ ಈ ಲಿಂಕನ್ನು ಅನುಸರಿಸಿ",
- "emails.magicSession.footer": "ನೀವು ಈ ಇಮೇಲನಿಂದ ಲಾಗಿನ್ ಮಾಡಲು ಕೇಳದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ",
"emails.magicSession.thanks": "ಧನ್ಯವಾದಗಳು,",
"emails.magicSession.signature": "{{project}} ತಂಡ",
"emails.recovery.subject": "ಗುಪ್ತಪದ ಮರುಹೊಂದಿಸಿ",
@@ -20,12 +19,14 @@
"emails.recovery.body": "ನಿಮ್ಮ {{project}} ಗುಪ್ತಪದವನ್ನು ಮರುಹೊಂದಿಸಲು ಈ ಲಿಂಕನ್ನು ಅನುಸರಿಸಿ",
"emails.recovery.footer": "ನೀವು ಗುಪ್ತಪದವನ್ನು ಮರುಹೊಂದಿಸಲು ಕೇಳದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ",
"emails.recovery.thanks": "ಧನ್ಯವಾದಗಳು,",
+ "emails.recovery.buttonText": "ಗುಪ್ತಪದವನ್ನು ಮರುಸೆಟ್ ಮಾಡಿ",
"emails.recovery.signature": "{{project}} ತಂಡ",
- "emails.invitation.subject": "%s ತಂಡಕ್ಕೆ %s ರಲ್ಲಿ ಆಹ್ವಾನ",
+ "emails.invitation.subject": "{{team}} ತಂಡಕ್ಕೆ {{project}} ರಲ್ಲಿ ಆಹ್ವಾನ",
"emails.invitation.hello": "ನಮಸ್ಕಾರ,",
"emails.invitation.body": "ಈ ಇಮೇಲ್ ನಿಮಗೆ ಬಂದಿದೆ ಏಕೆಂದರೆ {{owner}} ನಿಮ್ಮನ್ನು {{team}} ತಂಡದ {{project}}ರಲ್ಲಿ ಸದಸ್ಯ ಆಗಲಿಕ್ಕೆ ಆಹ್ವಾನಿಸಿದ್ದಾರೆ",
"emails.invitation.footer": "ನಿಮಗೆ ಆಸಕ್ತಿಯಿಲ್ಲದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ",
"emails.invitation.thanks": "ಧನ್ಯವಾದಗಳು,",
+ "emails.invitation.buttonText": "{{team}} ಗೆ ಆಹ್ವಾನವನ್ನು ಸ್ವೀಕರಿಸಿ",
"emails.invitation.signature": "{{project}} ತಂಡ",
"locale.country.unknown": "Unknown",
"countries.af": "ಅಫ್ಘಾನಿಸ್ತಾನ",
diff --git a/app/config/locale/translations/ko.json b/app/config/locale/translations/ko.json
index c33c961130..192af7ab93 100644
--- a/app/config/locale/translations/ko.json
+++ b/app/config/locale/translations/ko.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"지혜롭게 되는 묘책은 그동안 간과했던 것을 알아내는 것에 있다\"",
"settings.locale": "ko",
"settings.direction": "ltr",
- "emails.sender": "%s 팀",
+ "emails.sender": "{{project}} 팀",
"emails.verification.subject": "계정 인증",
"emails.verification.hello": "안녕하세요 {{user}}님、",
"emails.verification.body": "이메일 인증을 위해 링크를 클릭하여주세요.",
"emails.verification.footer": "이메일 인증을 부탁하지 않으셨다면 이 메시지를 무시하여주세요.",
"emails.verification.thanks": "감사합니다、",
+ "emails.verification.buttonText": "이메일 주소를 확인합니다",
"emails.verification.signature": "{{project}} 팀",
"emails.magicSession.subject": "로그인",
"emails.magicSession.hello": "안녕하세요、",
- "emails.magicSession.body": "로그인 하시려면 링크를 클릭하여주세요.",
- "emails.magicSession.footer": "이 이메일 계정으로 로그인 신청을 하지 않으셨다면 이 메세지를 무시하여주세요.",
"emails.magicSession.thanks": "감사합니다、",
"emails.magicSession.signature": "{{project}} 팀",
"emails.recovery.subject": "비밀번호 재설정",
@@ -20,12 +19,14 @@
"emails.recovery.body": "{{project}}의 비밀번호 재설정을 위해 링크를 클릭하여주세요.",
"emails.recovery.footer": "비밀번호 재설정 신청을 하지 않으셨다면 이 메세지를 무시하여주세요.",
"emails.recovery.thanks": "감사합니다、",
+ "emails.recovery.buttonText": "비밀번호 재설정",
"emails.recovery.signature": "{{project}} 팀",
- "emails.invitation.subject": "초대장 %s 팀 - %s",
+ "emails.invitation.subject": "초대장 {{team}} 팀 - {{project}}",
"emails.invitation.hello": "안녕하세요、",
"emails.invitation.body": "{{owner}}님이 귀하를 {{project}}의 {{team}} 팀으로 초대합니다.",
"emails.invitation.footer": "팀에 합류할 의사가 없으시면 이 메세지를 무시하여주세요.",
"emails.invitation.thanks": "감사합니다、",
+ "emails.invitation.buttonText": "{{team}} 초대를 수락하기",
"emails.invitation.signature": "{{project}} 팀",
"locale.country.unknown": "알려지지 않은",
"countries.af": "아프가니스탄",
diff --git a/app/config/locale/translations/la.json b/app/config/locale/translations/la.json
index bebef26854..242e563c8c 100644
--- a/app/config/locale/translations/la.json
+++ b/app/config/locale/translations/la.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Ars sapiendi est ars sciendi quid negligat.\"",
"settings.locale": "la",
"settings.direction": "ltr*",
- "emails.sender": "%s team",
+ "emails.sender": "{{project}} team",
"emails.verification.subject": "Ratio comprobatio",
"emails.verification.hello": "Salve ibi {{user}},",
"emails.verification.body": "Sequere hanc nexum ut quin inscriptionem tuum.",
"emails.verification.footer": "Si verificationem huius inscriptionis non postulasti, nuntium hunc ignorare potes.",
"emails.verification.thanks": "Gratias,",
+ "emails.verification.buttonText": "Confirma inscriptionem electronicam",
"emails.verification.signature": "{{project}} Team",
"emails.magicSession.subject": "Log in",
"emails.magicSession.hello": "Salve ibi,",
- "emails.magicSession.body": "Hanc nexum cum login",
- "emails.magicSession.footer": "Si verificationem huius inscriptionis non postulasti, nuntium hunc ignorare potes.",
"emails.magicSession.thanks": "Gratias,",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Recuperet password",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Sequere hanc conjunctionem ut recipias project password {{project}}",
"emails.recovery.footer": "Si tesseram tuam recuperare non petis, nuntium hunc ignorare potes",
"emails.recovery.thanks": "Gratias,",
+ "emails.recovery.buttonText": "Reset password",
"emails.recovery.signature": "{{project}} team",
- "emails.invitation.subject": "Invitatio pro %s in quadrigis %s",
+ "emails.invitation.subject": "Invitatio pro {{team}} in quadrigis {{project}}",
"emails.invitation.hello": "Salve ibi,",
"emails.invitation.body": "Haec inscriptio ad te missa est quia dominus incepto {{owner}} te invitare vult ut membrum {{team}} quadrigis fias ad {{project}}",
"emails.invitation.footer": "Si non quaero, potes hunc nuntium ignorare",
"emails.invitation.thanks": "Gratias,",
+ "emails.invitation.buttonText": "Accipe invitare ad {{team}}",
"emails.invitation.signature": "{{project}} team",
"locale.country.unknown": "Ignotum",
"countries.af": "Afghanistan",
@@ -244,7 +245,7 @@
"emails.otpSession.securityPhrase": "Sententia securitatis huius epistulae est {{phrase}}. Epistulae confidere potes si haec sententia cum ea quae ostensa est in signo ingressus convenit.",
"emails.otpSession.thanks": "Gratias,",
"emails.otpSession.signature": "{{project}} team -> {{project}} grex",
- "emails.certificate.subject": "Defectio testimonii pro %s",
+ "emails.certificate.subject": "Defectio testimonii pro {{domain}}",
"emails.certificate.hello": "Salve,",
"emails.certificate.body": "Certificatum pro dominio tuo '{{domain}}' generari non potuit. Hoc conatus num. {{attempt}} est, et defectus causatus est ab: {{error}}",
"emails.certificate.footer": "Praeclarum tuum testificationem valet ad XXX dies a primo defectu. Magnopere suademus ut hoc casum investiges, alioquin dominium tuum sine valida SSL communicatione erit.",
diff --git a/app/config/locale/translations/lb.json b/app/config/locale/translations/lb.json
index 91b52e4a18..075c29ef11 100644
--- a/app/config/locale/translations/lb.json
+++ b/app/config/locale/translations/lb.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"The art of being wise is the art of knowing what to overlook.\"",
"settings.locale": "lb",
"settings.direction": "ltr",
- "emails.sender": "%s Team",
+ "emails.sender": "{{project}} Team",
"emails.verification.subject": "Kont Verifikatioun",
"emails.verification.hello": "Hey {{user}},",
"emails.verification.body": "Follegt dëse Link fir Är E -Mail Adress z'iwwerpréiwen.",
"emails.verification.footer": "Wann Dir net gefrot hutt dës Adress z'iwwerpréiwen, kënnt Dir dëse Message ignoréieren.",
"emails.verification.thanks": "Merci,",
+ "emails.verification.buttonText": "E-Mail-Adress bestätegen",
"emails.verification.signature": "{{project}} équipe",
"emails.magicSession.subject": "Login",
"emails.magicSession.hello": "Hey,",
- "emails.magicSession.body": "Follegt dëse Link fir umellen.",
- "emails.magicSession.footer": "Wann Dir net gefrot hutt Iech mat dëser E -Mail anzemelden, kënnt Dir dëse Message ignoréieren.",
"emails.magicSession.thanks": "Merci,",
"emails.magicSession.signature": "{{project}} équipe",
"emails.recovery.subject": "Password Reset",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Follegt dëse Link fir Äert {{project}} Passwuert zréckzesetzen.",
"emails.recovery.footer": "Wann Dir net gefrot hutt Äert Passwuert zréckzesetzen, kënnt Dir dëse Message ignoréieren.",
"emails.recovery.thanks": "Merci,",
+ "emails.recovery.buttonText": "Passwuert zrécksetzen",
"emails.recovery.signature": "{{project}} équipe",
- "emails.invitation.subject": "Invitatioun un %s équipe bei %s",
+ "emails.invitation.subject": "Invitatioun un {{team}} équipe bei {{project}}",
"emails.invitation.hello": "Hallo,",
"emails.invitation.body": "Dës E -Mail gouf un Iech geschéckt well {{owner}} Iech invitéiere wëllt fir Member vum {{team}} Team bei {{project}} ze ginn.",
"emails.invitation.footer": "Wann Dir net interesséiert sidd, kënnt Dir dëse Message ignoréieren.",
"emails.invitation.thanks": "Merci,",
+ "emails.invitation.buttonText": "Invitatioun bei {{team}} akzeptéieren",
"emails.invitation.signature": "{{project}} équipe",
"locale.country.unknown": "Onbekannt",
"countries.af": "Afghanistan",
diff --git a/app/config/locale/translations/lt.json b/app/config/locale/translations/lt.json
index 94c874ce82..3e32658947 100644
--- a/app/config/locale/translations/lt.json
+++ b/app/config/locale/translations/lt.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Menas būti išmintingu — tai menas žinoti, ko galima nepamatyti.\"",
"settings.locale": "lt",
"settings.direction": "ltr",
- "emails.sender": "%s komanda",
+ "emails.sender": "{{project}} komanda",
"emails.verification.subject": "Paskyros Patvirtinimas",
"emails.verification.hello": "Labas {{user}},",
"emails.verification.body": "Spauskite šią nuorodą, kad patvirtintumėte savo el. paštą.",
"emails.verification.footer": "Jei neprašėte patvirtinti šio el. pašto, galite ignoruoti šį pranešimą.",
"emails.verification.thanks": "Ačiū,",
+ "emails.verification.buttonText": "Patvirtinti el. pašto adresą",
"emails.verification.signature": "{{project}} komanda",
"emails.magicSession.subject": "Prisijungti",
"emails.magicSession.hello": "Labas,",
- "emails.magicSession.body": "Spauskite šią nuorodą, kad prisijungtumėte.",
- "emails.magicSession.footer": "Jei neprašėte prisijungti naudojantis šiuo el. paštu, galite ignoruoti šį pranešimą.",
"emails.magicSession.thanks": "Ačiū,",
"emails.magicSession.signature": "{{project}} komanda",
"emails.recovery.subject": "Slaptažodžio Atkūrimas",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Spauskite šią nuorodą, kad atkurtumėte projekto {{project}} slaptažodį.",
"emails.recovery.footer": "Jei neprašėte atkurti savo slaptažodzio, galite ignoruoti šį pranešimą.",
"emails.recovery.thanks": "Ačiū,",
+ "emails.recovery.buttonText": "Atstatyti slaptažodį",
"emails.recovery.signature": "{{project}} komanda",
- "emails.invitation.subject": "Pakvietimas į %s komandą %s projekte",
+ "emails.invitation.subject": "Pakvietimas į {{team}} komandą {{project}} projekte",
"emails.invitation.hello": "Labas,",
"emails.invitation.body": "Šis el. laiškas buvo atsiųstas jums, nes {{owner}} norėjo jus pakviesti tapti projekto {{project}} dalimi {{team}} komandoje.",
"emails.invitation.footer": "Jei jūsų tai nedomina, galite ignoruoti šį pranešimą.",
"emails.invitation.thanks": "Ačiū,",
+ "emails.invitation.buttonText": "Priimti kvietimą į {{team}}",
"emails.invitation.signature": "{{project}} komanda",
"locale.country.unknown": "Nežinoma",
"countries.af": "Afganistanas",
diff --git a/app/config/locale/translations/lv.json b/app/config/locale/translations/lv.json
index b4a396367c..9083fd3fc4 100644
--- a/app/config/locale/translations/lv.json
+++ b/app/config/locale/translations/lv.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Māksla būt gudram ir māksla zināt, ko aizmirst.\"",
"settings.locale": "lv",
"settings.direction": "ltr",
- "emails.sender": "%s komanda",
+ "emails.sender": "{{project}} komanda",
"emails.verification.subject": "Konta verifikācija",
"emails.verification.hello": "Sveicināti, {{user}},",
"emails.verification.body": "Sekojiet saitei, lai apstiprinātu savu e-pasta adresi.",
"emails.verification.footer": "Ja Jūs nepieprasījāt šīs adreses apstiprinājumu, lūdzu, ignorējiet šo ziņu.",
"emails.verification.thanks": "Paldies,",
+ "emails.verification.buttonText": "Apstiprināt e-pasta adresi",
"emails.verification.signature": "{{project}} komanda",
"emails.magicSession.subject": "Ieiet",
"emails.magicSession.hello": "Sveicināti,",
- "emails.magicSession.body": "Sekojiet saitei, lai ieietu.",
- "emails.magicSession.footer": "Ja Jūs nepieprasījāt ieiet ar šo e-pasta adresi, lūdzu, ignorējiet šo ziņu.",
"emails.magicSession.thanks": "Paldies,",
"emails.magicSession.signature": "{{project}} komanda",
"emails.recovery.subject": "Paroles atjaunināšana",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Sekojiet saitei, lai atjauninātu {{project}} paroli.",
"emails.recovery.footer": "Ja Jūs nepieprasījāt paroles atjaunināšanu, lūdzu, ignorējiet šo ziņu.",
"emails.recovery.thanks": "Paldies,",
+ "emails.recovery.buttonText": "Atiestatīt paroli",
"emails.recovery.signature": "{{project}} komanda",
- "emails.invitation.subject": "Ielūgums piebiedroties %s komandai %s projektā.",
+ "emails.invitation.subject": "Ielūgums piebiedroties {{team}} komandai {{project}} projektā.",
"emails.invitation.hello": "Labdien,",
"emails.invitation.body": "Šis e-pasts tika nosūtīts Jums, jo {{owner}} vēlējās Jūs ielūgt kļūt par {{team}} komandas biedru {{project}} projektā.",
"emails.invitation.footer": "Ja Jūs neesat ieinteresēts, lūdzu, ignorējiet šo ziņu.",
"emails.invitation.thanks": "Paldies,",
+ "emails.invitation.buttonText": "Pieņemt ielūgumu uz {{team}}",
"emails.invitation.signature": "{{project}} komanda",
"locale.country.unknown": "Nav zināms",
"countries.af": "Afganistāna",
diff --git a/app/config/locale/translations/ml.json b/app/config/locale/translations/ml.json
index 1b57d87865..064df28413 100644
--- a/app/config/locale/translations/ml.json
+++ b/app/config/locale/translations/ml.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"എന്താണ് അവഗണിക്കേണ്ടതെന്ന് അറിയാനുള്ള കലയാണ് ബുദ്ധിമാനായിരിക്കുക എന്നത്.\"",
"settings.locale": "ml",
"settings.direction": "ltr",
- "emails.sender": "%s ടീം",
+ "emails.sender": "{{project}} ടീം",
"emails.verification.subject": "അക്കൗണ്ട് സ്ഥിരീകരണം",
"emails.verification.hello": "നമസ്കാരം {{user}},",
"emails.verification.body": "നിങ്ങളുടെ ഇമെയിൽ വിലാസം സ്ഥിരീകരിക്കുന്നതിനായി ഈ ലിങ്ക് പിന്തുടരുക.",
"emails.verification.footer": "ഈ വിലാസം സ്ഥിരീകരിക്കാന് നിങ്ങൾ ആവശ്യപ്പെട്ടില്ലെങ്കിൽ, നിങ്ങൾക്ക് ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.",
"emails.verification.thanks": "നന്ദി,",
+ "emails.verification.buttonText": "ഇമെയിൽ വിലാസം സ്ഥിരീകരിക്കുക",
"emails.verification.signature": "{{project}} ടീം",
"emails.magicSession.subject": "ലോഗിൻ",
"emails.magicSession.hello": "നമസ്കാരം,",
- "emails.magicSession.body": "ലോഗിൻ ചെയ്യുന്നതിനായി ഈ ലിങ്ക് പിന്തുടരുക.",
- "emails.magicSession.footer": "ഈ ഇമെയിൽ ഉപയോഗിച്ച് ലോഗിൻ ചെയ്യാൻ നിങ്ങൾ ആവശ്യപ്പെട്ടില്ലെങ്കിൽ, ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.",
"emails.magicSession.thanks": "നന്ദി,",
"emails.magicSession.signature": "{{project}} ടീം",
"emails.recovery.subject": "രഹസ്യവാക്ക് പുനക്രമീകരണം",
@@ -20,12 +19,14 @@
"emails.recovery.body": "നിങ്ങളുടെ {{Project}} രഹസ്യവാക്ക് പുനക്രമീകരിക്കുന്നതിന് ഈ ലിങ്ക് പിന്തുടരുക.",
"emails.recovery.footer": "നിങ്ങളുടെ രഹസ്യവാക്ക് പുനക്രമീകരിക്കാന് നിങ്ങൾ ആവശ്യപ്പെട്ടില്ലെങ്കിൽ, ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.",
"emails.recovery.thanks": "നന്ദി,",
+ "emails.recovery.buttonText": "പാസ്വേഡ് റീസെറ്റ് ചെയ്യുക",
"emails.recovery.signature": "{{project}} ടീം",
- "emails.invitation.subject": "%s -ലെ %s ടീമിലേക്കുള്ള ക്ഷണം",
+ "emails.invitation.subject": "{{project}} -ലെ {{team}} ടീമിലേക്കുള്ള ക്ഷണം",
"emails.invitation.hello": "നമസ്കാരം,",
"emails.invitation.body": "നിങ്ങളെ {{project}} -ലെ {{team}} ടീമിലെ അംഗമാകുവാന് ക്ഷണിക്കാൻ {{owner}} ആഗ്രഹിക്കുന്നതിനാലാണ് ഈ മെയിൽ നിങ്ങൾക്ക് അയക്കുന്നത്.",
"emails.invitation.footer": "നിങ്ങൾക്ക് താൽപ്പര്യമില്ലെങ്കിൽ, ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.",
"emails.invitation.thanks": "നന്ദി,",
+ "emails.invitation.buttonText": "{{team}} ലേക്കുള്ള ക്ഷണം സ്വീകരിക്കുക",
"emails.invitation.signature": "{{project}} ടീം",
"locale.country.unknown": "Unknown",
"countries.af": "അഫ്ഗാനിസ്ഥാൻ",
@@ -244,7 +245,7 @@
"emails.otpSession.securityPhrase": "ഈ ഇമെയിലിന്റെ സുരക്ഷാ വാചകം {{phrase}} ആണ്. സൈൻ ഇൻ ചെയ്യുമ്പോൾ കാണിച്ച വാചകവുമായി ഈ വാചകം പൊരുത്തപ്പെടുന്നുണ്ടെങ്കിൽ ഈ ഇമെയിലിന് വിശ്വസിക്കാം.",
"emails.otpSession.thanks": "നന്ദി,",
"emails.otpSession.signature": "പ്രോജക്ട് ടീം",
- "emails.certificate.subject": "%s ന് സർട്ടിഫിക്കറ്റ് പരാജയപ്പെട്ടു",
+ "emails.certificate.subject": "{{domain}} ന് സർട്ടിഫിക്കറ്റ് പരാജയപ്പെട്ടു",
"emails.certificate.hello": "ഹലോ,",
"emails.certificate.body": "നിങ്ങളുടെ ഡൊമൈൻ '{{domain}}'നു വേണ്ടിയുള്ള സർട്ടിഫിക്കറ്റ് ഉണ്ടാക്കാനായില്ല. ഇത് ശ്രമം നമ്പർ {{attempt}} ആണ്, പരാജയപ്പെട്ടത് ഇതു മൂലമാണ്: {{error}}",
"emails.certificate.footer": "നിങ്ങളുടെ മുൻപത്തെ സർട്ടിഫിക്കറ്റ് ആദ്യ പരാജയത്തിനു ശേഷം 30 ദിവസം വരെ സാധുവായിരിക്കും. ഈ കേസ് അന്വേഷിച്ചു നോക്കുന്നത് ഞങ്ങൾ ശക്തമായി ശുപാർശ ചെയ്യുന്നു, അല്ലെങ്കിൽ നിങ്ങളുടെ ഡൊമെയ്ൻ സാധുവായ SSL കമ്മ്യൂണിക്കേഷനില്ലാത്ത ഒരു അവസ്ഥയിലാകും.",
diff --git a/app/config/locale/translations/mr.json b/app/config/locale/translations/mr.json
index 6550d1c1ba..533d0ec92c 100644
--- a/app/config/locale/translations/mr.json
+++ b/app/config/locale/translations/mr.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"हुशार असण्याची कला म्हणजे कोणत्या गोष्टीकडे दुर्लक्ष करावे हे जाणून घेण्याची कला.\"",
"settings.locale": "mr",
"settings.direction": "ltr",
- "emails.sender": "%s टीम",
+ "emails.sender": "{{project}} टीम",
"emails.verification.subject": "खाते सत्यापन",
"emails.verification.hello": "नमस्कार {{user}},",
"emails.verification.body": "आपला ईमेल पत्ता सत्यापित करण्यासाठी या दुव्याचे अनुसरण करा.",
"emails.verification.footer": "आपण या पत्त्याची पडताळणी करण्यास सांगितले नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
"emails.verification.thanks": "धन्यवाद,",
+ "emails.verification.buttonText": "ईमेल पत्ता सत्यापित करा",
"emails.verification.signature": "{{project}} संघ",
"emails.magicSession.subject": "लॉगिन करा",
"emails.magicSession.hello": "नमस्कार ,",
- "emails.magicSession.body": "लॉगिन करण्यासाठी या लिंकचे अनुसरण करा.",
- "emails.magicSession.footer": "आपण या ईमेलचा वापर करून लॉगिन करण्यास सांगितले नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
"emails.magicSession.thanks": "धन्यवाद,",
"emails.magicSession.signature": "{{project}} संघ",
"emails.recovery.subject": "पासवर्ड रीसेट",
@@ -20,12 +19,14 @@
"emails.recovery.body": "आपला {{project}}चे पासवर्ड रीसेट करण्यासाठी या लिंकचे अनुसरण करा",
"emails.recovery.footer": "आपण आपला पासवर्ड रीसेट करण्यास सांगितले नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
"emails.recovery.thanks": "धन्यवाद,",
+ "emails.recovery.buttonText": "पासवर्ड रीसेट करा",
"emails.recovery.signature": "{{project}} संघ",
- "emails.invitation.subject": "%s संघ %s येथे सामील होण्यासाठी आमंत्रण",
+ "emails.invitation.subject": "{{team}} संघ {{project}} येथे सामील होण्यासाठी आमंत्रण",
"emails.invitation.hello": "नमस्कार,",
"emails.invitation.body": "हा मेल तुम्हाला पाठवला होता कारण {{owner}} तुम्हाला {{project}} येथे {{team}} टीमचे सदस्य होण्यासाठी आमंत्रित करू इच्छित होते.",
"emails.invitation.footer": "आपल्याला स्वारस्य नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
"emails.invitation.thanks": "धन्यवाद,",
+ "emails.invitation.buttonText": "{{team}} साठी आमंत्रण स्वीकारा",
"emails.invitation.signature": "{{project}} संघ",
"locale.country.unknown": "अज्ञात",
"countries.af": "अफगानिस्तान",
diff --git a/app/config/locale/translations/ms.json b/app/config/locale/translations/ms.json
index a02c36b075..c19fa48f52 100644
--- a/app/config/locale/translations/ms.json
+++ b/app/config/locale/translations/ms.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Seni menjadi pandai adalah seni mengetahui apa yang dilihatnya.\"",
"settings.locale": "ms",
"settings.direction": "ltr",
- "emails.sender": "%s Team",
+ "emails.sender": "{{project}} Team",
"emails.verification.subject": "Pengesahan Akaun",
"emails.verification.hello": "Hey {{user}},",
"emails.verification.body": "Tekan pautan ini untuk mengesahkan alamat email anda.",
"emails.verification.footer": "Sekiranya anda tidak membuat permintaan untuk mengesahkan email ini, sila abaikan mesej ini.",
"emails.verification.thanks": "Terima kasih,",
+ "emails.verification.buttonText": "Sahkan alamat email",
"emails.verification.signature": "{{project}} team",
"emails.magicSession.subject": "Log masuk",
"emails.magicSession.hello": "Hey,",
- "emails.magicSession.body": "Tekan pautan ini untuk log masuk.",
- "emails.magicSession.footer": "Sekiranya anda tidak membuat permintaan untuk log masuk menggunakan email ini, sila abaikan mesej ini.",
"emails.magicSession.thanks": "Terima kasih,",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Menetap semula Kata Laluan",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Tekan pautan ini untuk menetapkan semula kata laluan {{project}}.",
"emails.recovery.footer": "Sekiranya anda tidak membuat permintaan menetap semula kata laluan, sila abaikan mesej ini.",
"emails.recovery.thanks": "Terima kasih,",
+ "emails.recovery.buttonText": "Tetapkan semula kata laluan",
"emails.recovery.signature": "{{project}} team",
- "emails.invitation.subject": "Jemputan ke pasukan %s di %s",
+ "emails.invitation.subject": "Jemputan ke pasukan {{team}} di {{project}}",
"emails.invitation.hello": "Hello,",
"emails.invitation.body": "Anda menerima mel ini kerana {{owner}} ingin menjemput anda untuk menjadi ahli pasukan {{team}} di {{project}}.",
"emails.invitation.footer": "Sekiranya anda tidak berminat, sila abaikan mesej ini.",
"emails.invitation.thanks": "Terima kasih,",
+ "emails.invitation.buttonText": "Terima jemputan ke {{team}}",
"emails.invitation.signature": "{{project}} team",
"locale.country.unknown": "Tidak Diketahui",
"countries.af": "Afghanistan",
diff --git a/app/config/locale/translations/nb.json b/app/config/locale/translations/nb.json
index daf18abc1c..3236f267b8 100644
--- a/app/config/locale/translations/nb.json
+++ b/app/config/locale/translations/nb.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Kunsten å være klok er kunsten å vite hva man skal overse.\"",
"settings.locale": "nb",
"settings.direction": "ltr",
- "emails.sender": "%s Team",
+ "emails.sender": "{{project}} Team",
"emails.verification.subject": "Kontobekreftelse",
"emails.verification.hello": "Hei {{user}},",
"emails.verification.body": "Følg denne lenken for å bekrefte din e-postadresse.",
"emails.verification.footer": "Dersom du ikke ba om å bekrefte e-postadressen, kan du se bort fra denne meldingen.",
"emails.verification.thanks": "Takk,",
+ "emails.verification.buttonText": "Bekreft e-postadresse",
"emails.verification.signature": "{{project}} team",
"emails.magicSession.subject": "Pålogging",
"emails.magicSession.hello": "Hei,",
- "emails.magicSession.body": "Følg denne lenken for å logge på.",
- "emails.magicSession.footer": "Dersom du ikke ba om å logge på med denne e-postadressen, kan du se bort fra denne meldingen.",
"emails.magicSession.thanks": "Takk,",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Nullstille passord",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Følg denne lenken for å nullstille ditt {{project}} passord.",
"emails.recovery.footer": "Dersom du ikke ba om å nullstille passordet ditt, kan du se bort fra denne meldingen.",
"emails.recovery.thanks": "Takk,",
+ "emails.recovery.buttonText": "Tilbakestill passord",
"emails.recovery.signature": "{{project}} team",
- "emails.invitation.subject": "Invitasjon til %s Team ved %s",
+ "emails.invitation.subject": "Invitasjon til {{team}} Team ved {{project}}",
"emails.invitation.hello": "Hei,",
"emails.invitation.body": "Denne meldingen ble sendt til deg fordi {{owner}} ønsket å invitere deg til å bli medlem av {{team}} team ved {{project}}.",
"emails.invitation.footer": "Dersom du ikke er interessert, kan du se bort fra denne meldingen.",
"emails.invitation.thanks": "Takk,",
+ "emails.invitation.buttonText": "Godta invitasjon til {{team}}",
"emails.invitation.signature": "{{project}} team",
"locale.country.unknown": "Ukjent",
"countries.af": "Afghanistan",
diff --git a/app/config/locale/translations/ne.json b/app/config/locale/translations/ne.json
index 4f05a9b5ba..b8dd495814 100644
--- a/app/config/locale/translations/ne.json
+++ b/app/config/locale/translations/ne.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"के लाई बेवास्ता गर्ने भन्ने जान्नुनै बुद्धिमान हुनुको कला हो ।\"",
"settings.locale": "ne",
"settings.direction": "ltr",
- "emails.sender": "%s समूह",
+ "emails.sender": "{{project}} समूह",
"emails.verification.subject": "खाता प्रमाणिकरण",
"emails.verification.hello": "नमस्ते {{user}},",
"emails.verification.body": "इमेल ठेगाना प्रमाणित गर्नको लागी यो लिंकमा जानुहोस।",
"emails.verification.footer": "यदि तपाइँले आफ्नो खाता प्रमाणित गर्न सोध्नु भएको छैन भने तपाइँले यो सन्देश लाई बेवास्ता गर्न सक्नुहुन्छ।",
"emails.verification.thanks": "धन्यवाद,",
+ "emails.verification.buttonText": "इमेल ठेगाना पुष्टि गर्नुहोस्",
"emails.verification.signature": "{{project}} समूह",
"emails.magicSession.subject": "लगइन",
"emails.magicSession.hello": "नमस्ते,",
- "emails.magicSession.body": "लगइन गर्नको लागी यो लिंकमा जानुहोस।",
- "emails.magicSession.footer": "यदि तपाइँले यो इमेल प्रयोग गरेर लगइन गर्न सोध्नु भएको छैन भने तपाइँले यो सन्देश लाई बेवास्ता गर्न सक्नुहुन्छ।",
"emails.magicSession.thanks": "धन्यवाद,",
"emails.magicSession.signature": "{{project}} समूह",
"emails.recovery.subject": "पासवर्ड रिसेट",
@@ -20,12 +19,14 @@
"emails.recovery.body": "{{project}}को पासवर्ड रिसेट गर्नको लागी यो लिंकमा जानुहोस।",
"emails.recovery.footer": "यदि तपाइँले आफ्नो पासवर्ड रिसेट गर्न सोध्नु भएको छैन भने तपाइँले यो सन्देश लाई बेवास्ता गर्न सक्नुहुन्छ।",
"emails.recovery.thanks": "धन्यवाद,",
+ "emails.recovery.buttonText": "रिसेट पासवर्ड",
"emails.recovery.signature": "{{project}} समूह",
- "emails.invitation.subject": "%s समूहको लागि %s मा निमन्त्रणा",
+ "emails.invitation.subject": "{{team}} समूहको लागि {{project}} मा निमन्त्रणा",
"emails.invitation.hello": "नमस्ते,",
"emails.invitation.body": "{{owner}}ले तपाइँलाई {{project}}मा {{team}}को सदस्य बन्न आमन्त्रित गर्न चाहनु भएको छ। त्येसैले तपाइँलाई यो सन्देश पठाइएको हो।",
"emails.invitation.footer": "यदि तपाइँ इच्छुक हुनुहुन्न भने, तपाइँले यो सन्देशलाई बेवास्ता गर्न सक्नुहुन्छ।",
"emails.invitation.thanks": "धन्यवाद,",
+ "emails.invitation.buttonText": "{{team}} मा निमन्त्रणा स्वीकार गर्नुहोस्",
"emails.invitation.signature": "{{project}} समूह",
"locale.country.unknown": "अज्ञात",
"countries.af": "अफगानिस्तान",
diff --git a/app/config/locale/translations/nl.json b/app/config/locale/translations/nl.json
index cae82a9a37..9b051b6dc6 100644
--- a/app/config/locale/translations/nl.json
+++ b/app/config/locale/translations/nl.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"De kunst om wijs te zijn is de kunst om te weten wat over het hoofd gezien moet worden.\"",
"settings.locale": "nl",
"settings.direction": "ltr",
- "emails.sender": "%s Team",
+ "emails.sender": "{{project}} Team",
"emails.verification.subject": "Account Verificatie",
"emails.verification.hello": "Hoi {{user}},",
"emails.verification.body": "Volg deze link om uw e-mail te verifieren",
"emails.verification.footer": "Als u geen aanvraag voor verificatie heeft gemaakt, kan u deze mail negeren",
"emails.verification.thanks": "Bedankt,",
+ "emails.verification.buttonText": "Bevestig e-mailadres",
"emails.verification.signature": "{{project}} team",
"emails.magicSession.subject": "Login",
"emails.magicSession.hello": "Hoi,",
- "emails.magicSession.body": "Volg deze link om in te loggen",
- "emails.magicSession.footer": "Als u geen aanvraag heeft gemaakt om met deze mail in te loggen, kan u deze mail negeren",
"emails.magicSession.thanks": "Bedankt,",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Wachtwoord Herinstellen",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Volg deze link om het wachtwoord van uw project {{project}} te wijzigen",
"emails.recovery.footer": "Als u geen aanvraag heeft gemaakt om uw wachtwoord te wijzigen, kan u deze mail negeren",
"emails.recovery.thanks": "Bedankt,",
+ "emails.recovery.buttonText": "Wachtwoord opnieuw instellen",
"emails.recovery.signature": "{{project}} team",
- "emails.invitation.subject": "Uitnodiging van %s Team uit %s",
+ "emails.invitation.subject": "Uitnodiging van {{team}} Team uit {{project}}",
"emails.invitation.hello": "Hallo,",
"emails.invitation.body": "U ontvangt deze mail want u was uitgenodig door {{owner}} om lid van het {{team}} team te worden in {{project}} ",
"emails.invitation.footer": "Als u niet geintereseerd bent, kan u deze mail negeren.",
"emails.invitation.thanks": "Bedankt,",
+ "emails.invitation.buttonText": "Uitnodiging voor {{team}} accepteren",
"emails.invitation.signature": "{{project}} team",
"locale.country.unknown": "Onbekend",
"countries.af": "Afghanistan",
diff --git a/app/config/locale/translations/nn.json b/app/config/locale/translations/nn.json
index 44be0f9845..9fc77a7faa 100644
--- a/app/config/locale/translations/nn.json
+++ b/app/config/locale/translations/nn.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Kunsten å væra klok er kunsten å vita kva man skal oversjå.\"",
"settings.locale": "nn",
"settings.direction": "ltr",
- "emails.sender": "%s Team",
+ "emails.sender": "{{project}} Team",
"emails.verification.subject": "Kontostadfesting",
"emails.verification.hello": "Hallo {{user}},",
"emails.verification.body": "Følg denne lenkja for å bekrefta din e-postadresse.",
"emails.verification.footer": "Om du ikkje bad om å bekrefta e-postadressa, kan du ignorera denne meldinga.",
"emails.verification.thanks": "Takk,",
+ "emails.verification.buttonText": "Stadfest e-postadresse",
"emails.verification.signature": "{{project}} team",
"emails.magicSession.subject": "Pålogging",
"emails.magicSession.hello": "Hei,",
- "emails.magicSession.body": "Følg denne lenkja for å logge på.",
- "emails.magicSession.footer": "Om du ikkje ba om å logge på med denne e-postadressa, kan du ignorera denne meldinga.",
"emails.magicSession.thanks": "Takk,",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Nullstilla passord",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Følg denne lenkja for å nullstilla ditt {{project}} passord.",
"emails.recovery.footer": "Om du ikkje ba om å nullstilla passordet ditt, kan du ignorera denne meldinga.",
"emails.recovery.thanks": "Takk,",
+ "emails.recovery.buttonText": "Nullstill passord",
"emails.recovery.signature": "{{project}} team",
- "emails.invitation.subject": "Innbyding til %s Team ved %s",
+ "emails.invitation.subject": "Innbyding til {{team}} Team ved {{project}}",
"emails.invitation.hello": "Hallo,",
"emails.invitation.body": "Denne meldinga ble sendt til deg fordi {{owner}} ynskja å invitera deg til å bli medlem av {{team}} team i {{project}}.",
"emails.invitation.footer": "Om du ikkje er interessert, kan du ignorera denne meldinga.",
"emails.invitation.thanks": "Takk,",
+ "emails.invitation.buttonText": "Godta invitasjon til {{team}}",
"emails.invitation.signature": "{{project}} team",
"locale.country.unknown": "Ukjend",
"countries.af": "Afghanistan",
@@ -244,7 +245,7 @@
"emails.otpSession.securityPhrase": "Tryggingsfrasen for denne e-posten er {{phrase}}. Du kan stole på denne e-posten om frasen stemmer med frasen vist under pålogging.",
"emails.otpSession.thanks": "Takk,",
"emails.otpSession.signature": "{{project}}-laget",
- "emails.certificate.subject": "Sertifikatfeil for %s",
+ "emails.certificate.subject": "Sertifikatfeil for {{domain}}",
"emails.certificate.hello": "Hei,",
"emails.certificate.body": "Sertifikatet for domenet ditt '{{domain}}' kunne ikkje opprettast. Dette er forsøk nr. {{attempt}}, og feilen blei forårsaka av: {{error}}",
"emails.certificate.footer": "Førre sertifikatet ditt vil vere gyldig i 30 dagar sidan den første feilen. Vi rår sterkt til at du undersøkjer denne saka, elles vil domenet ditt ende opp utan gyldig SSL-kommunikasjon.",
diff --git a/app/config/locale/translations/or.json b/app/config/locale/translations/or.json
index efd516f23a..73f47881c0 100644
--- a/app/config/locale/translations/or.json
+++ b/app/config/locale/translations/or.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"ବୁଦ୍ଧିମାନ ହେବାର କଳା ହେଉଛି କ’ଣ ଅଣଦେଖା କରାଯିବ ଜାଣିବାର କଳା |\"",
"settings.locale": "or",
"settings.direction": "ltr",
- "emails.sender": "%s ଦଳ",
+ "emails.sender": "{{project}} ଦଳ",
"emails.verification.subject": "ଖାତା ଯାଞ୍ଚ",
"emails.verification.hello": "ନମସ୍କାର {{user}},",
"emails.verification.body": "ଆପଣଙ୍କର ଇମେଲ୍ ଠିକଣା ଯାଞ୍ଚ କରିବାକୁ ଏହି ଲିଙ୍କ୍ ଅନୁସରଣ କରନ୍ତୁ |",
"emails.verification.footer": "ଯଦି ଆପଣ ଏହି ଠିକଣା ଯାଞ୍ଚ କରିବାକୁ କହି ନାହାଁନ୍ତି, ତେବେ ଆପଣ ଏହି ସନ୍ଦେଶକୁ ଉପେକ୍ଷା କରିପାରିବେ |",
"emails.verification.thanks": "ଧନ୍ୟବାଦ,",
+ "emails.verification.buttonText": "ଇମେଲ ଠିକଣା ନିଶ୍ଚିତ କରନ୍ତୁ",
"emails.verification.signature": "{{project}} ଦଳ",
"emails.magicSession.subject": "ଲଗଇନ୍ କରନ୍ତୁ",
"emails.magicSession.hello": "ନମସ୍କାର,",
- "emails.magicSession.body": "ଲଗଇନ୍ କରିବାକୁ ଏହି ଲିଙ୍କ୍ ଅନୁସରଣ କରନ୍ତୁ |",
- "emails.magicSession.footer": "ଯଦି ଆପଣ ଏହି ଇମେଲ୍ ବ୍ୟବହାର କରି ଲଗଇନ୍ କରିବାକୁ କହି ନାହାଁନ୍ତି, ତେବେ ଆପଣ ଏହି ସନ୍ଦେଶକୁ ଉପେକ୍ଷା କରିପାରିବେ |",
"emails.magicSession.thanks": "ଧନ୍ୟବାଦ,",
"emails.magicSession.signature": "{{project}} ଦଳ",
"emails.recovery.subject": "ପାସୱାର୍ଡ ପୁନଃ ସେଟ୍ କରନ୍ତୁ |",
@@ -20,12 +19,14 @@
"emails.recovery.body": "ଆପଣଙ୍କର {{project}} ପାସୱାର୍ଡ ପୁନଃ ସେଟ୍ କରିବାକୁ ଏହି ଲିଙ୍କକୁ ଅନୁସରଣ କରନ୍ତୁ |",
"emails.recovery.footer": "ଯଦି ଆପଣ ଆପଣଙ୍କର ପାସୱାର୍ଡ ପୁନଃ ସେଟ୍ କରିବାକୁ କହି ନାହାଁନ୍ତି, ତେବେ ଆପଣ ଏହି ସନ୍ଦେଶକୁ ଉପେକ୍ଷା କରିପାରିବେ |",
"emails.recovery.thanks": "ଧନ୍ୟବାଦ,",
+ "emails.recovery.buttonText": "ପାସୱାର୍ଡ ପୁନଃସେଟ୍ କରନ୍ତୁ",
"emails.recovery.signature": "{{project}} ଦଳ",
- "emails.invitation.subject": "%s ରେ %s ଦଳକୁ ନିମନ୍ତ୍ରଣ |",
+ "emails.invitation.subject": "{{team}} ରେ {{project}} ଦଳକୁ ନିମନ୍ତ୍ରଣ |",
"emails.invitation.hello": "ନମସ୍କାର,",
- "emails.invitation.body": "ଏହି ମେଲ୍ ଆପଣଙ୍କୁ ପଠାଯାଇଥିଲା କାରଣ {{owner}} ଆପଣଙ୍କୁ {{project} ରେ {{team}} ଦଳର ସଦସ୍ୟ ହେବାକୁ ଆମନ୍ତ୍ରଣ କରିବାକୁ ଚାହୁଁଥିଲେ |",
+ "emails.invitation.body": "ଏହି ମେଲ୍ ଆପଣଙ୍କୁ ପଠାଯାଇଥିଲା କାରଣ {{owner}} ଆପଣଙ୍କୁ {{project}} ରେ {{team}} ଦଳର ସଦସ୍ୟ ହେବାକୁ ଆମନ୍ତ୍ରଣ କରିବାକୁ ଚାହୁଁଥିଲେ |",
"emails.invitation.footer": "ଯଦି ଆପଣ ଆଗ୍ରହୀ ନୁହଁନ୍ତି, ଆପଣ ଏହି ସନ୍ଦେଶକୁ ଅଣଦେଖା କରିପାରିବେ |",
"emails.invitation.thanks": "ଧନ୍ୟବାଦ,",
+ "emails.invitation.buttonText": "{{team}} ପାଇଁ ଆମନ୍ତ୍ରଣ ଗ୍ରହଣ କରନ୍ତୁ",
"emails.invitation.signature": "{{project}} ଦଳ",
"locale.country.unknown": "ଅଜ୍ଞାତ",
"countries.af": "ଆଫଗାନିସ୍ତାନ",
diff --git a/app/config/locale/translations/pa.json b/app/config/locale/translations/pa.json
index de71be9f49..48ff17c174 100644
--- a/app/config/locale/translations/pa.json
+++ b/app/config/locale/translations/pa.json
@@ -2,7 +2,7 @@
"settings.inspire": "\"ਬੁੱਧੀਮਾਨ ਬਣਨ ਦੀ ਕਲਾ ਇਹ ਜਾਣਨ ਦੀ ਕਲਾ ਹੈ ਕਿ ਕਿਸ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰਨਾ ਹੈ.\"",
"settings.locale": "pa",
"settings.direction": "ltr",
- "emails.sender": "%s ਟੀਮ",
+ "emails.sender": "{{project}} ਟੀਮ",
"emails.verification.subject": "",
"emails.verification.hello": ",",
"emails.verification.body": "",
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
- "emails.magicSession.body": "",
- "emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
diff --git a/app/config/locale/translations/pl.json b/app/config/locale/translations/pl.json
index ee5811fb59..4ca95614a1 100644
--- a/app/config/locale/translations/pl.json
+++ b/app/config/locale/translations/pl.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Sztuka bycia mądrym to sztuka wiedzieć, co przeoczyć.\"",
"settings.locale": "pl",
"settings.direction": "ltr",
- "emails.sender": "Zespół %s",
+ "emails.sender": "Zespół {{project}}",
"emails.verification.subject": "Weryfikacja konta",
"emails.verification.hello": "Cześć {{user}},",
"emails.verification.body": "Przejdź do tego linku, aby zweryfikować swój adres e-mail.",
"emails.verification.footer": "Jeśli to nie Ty prosiłeś o zweryfikowanie tego adresu, zignoruj tę wiadomość.",
"emails.verification.thanks": "Dziękujemy,",
+ "emails.verification.buttonText": "Potwierdź adres e-mail",
"emails.verification.signature": "Zespół {{project}}",
"emails.magicSession.subject": "Logowanie",
"emails.magicSession.hello": "Cześć,",
- "emails.magicSession.body": "Kliknij w ten link, aby zalogować się.",
- "emails.magicSession.footer": "Jeśli to nie Ty prosiłeś o logowanie przy użyciu tego adresu e-mail, zignoruj tę wiadomość.",
"emails.magicSession.thanks": "Dziękujemy,",
"emails.magicSession.signature": "Zespół {{project}}",
"emails.recovery.subject": "Resetowanie hasła",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Przejdź do tego linku, aby zresetować hasło dla {{project}}.",
"emails.recovery.footer": "Jeśli to nie Ty prosiłeś o zresetowanie swojego hasła, zignoruj tę wiadomość.",
"emails.recovery.thanks": "Dziękujemy,",
+ "emails.recovery.buttonText": "Zresetuj hasło",
"emails.recovery.signature": "Zespół {{project}}",
- "emails.invitation.subject": "Zaproszenie do zespołu %s w %s",
+ "emails.invitation.subject": "Zaproszenie do zespołu {{team}} w {{project}}",
"emails.invitation.hello": "Cześć,",
"emails.invitation.body": "Otrzymujesz tę wiadomość, ponieważ {{owner}} zaprasza Cię do grona członków zespołu {{team}} w projekcie {{project}}.",
"emails.invitation.footer": "Jeśli nie jesteś zainteresowany, zignoruj tę wiadomość.",
"emails.invitation.thanks": "Dziękujemy,",
+ "emails.invitation.buttonText": "Zaakceptuj zaproszenie do {{team}}",
"emails.invitation.signature": "Zespół {{project}}",
"locale.country.unknown": "Nieznany",
"countries.af": "Afganistan",
diff --git a/app/config/locale/translations/pt-br.json b/app/config/locale/translations/pt-br.json
index a53ca79813..617db1f857 100644
--- a/app/config/locale/translations/pt-br.json
+++ b/app/config/locale/translations/pt-br.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"A arte de ser sábio é a arte de saber o que deixar passar.\"",
"settings.locale": "pt-br",
"settings.direction": "ltr",
- "emails.sender": "Time %s",
+ "emails.sender": "Time {{project}}",
"emails.verification.subject": "Verificação da Conta",
"emails.verification.hello": "Olá {{user}},",
"emails.verification.body": "Clique neste link para verificar o seu endereço de e-mail.",
"emails.verification.footer": "Se você não solicitou a verificação deste e-mail, ignore essa mensagem.",
"emails.verification.thanks": "Muito obrigado,",
+ "emails.verification.buttonText": "Confirmar endereço de e-mail",
"emails.verification.signature": "Time {{project}}",
"emails.magicSession.subject": "Login",
"emails.magicSession.hello": "Olá,",
- "emails.magicSession.body": "Clique neste link para entrar.",
- "emails.magicSession.footer": "Se você não solicitou conectar-se com este e-mail, ignore essa mensagem.",
"emails.magicSession.thanks": "Muito obrigado,",
"emails.magicSession.signature": "Time {{project}}",
"emails.recovery.subject": "Redefinição de senha",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Clique neste link para redefinir sua senha do {{project}}.",
"emails.recovery.footer": "Se você não solicitou a redefinição da sua senha, você pode ignorar essa mensagem.",
"emails.recovery.thanks": "Muito obrigado,",
+ "emails.recovery.buttonText": "Redefinir senha",
"emails.recovery.signature": "Time {{project}}",
- "emails.invitation.subject": "Convite para o Time %s em %s",
+ "emails.invitation.subject": "Convite para o Time {{team}} em {{project}}",
"emails.invitation.hello": "Olá,",
"emails.invitation.body": "Este e-mail foi enviado porque {{owner}} deseja convidar você a se tornar membro do Time {{team}} em {{project}}.",
"emails.invitation.footer": "Caso não tenha interesse, ignore essa mensagem.",
"emails.invitation.thanks": "Muito obrigado,",
+ "emails.invitation.buttonText": "Aceitar convite para {{team}}",
"emails.invitation.signature": "Time {{project}}",
"locale.country.unknown": "Desconhecido",
"countries.af": "Afeganistão",
diff --git a/app/config/locale/translations/pt-pt.json b/app/config/locale/translations/pt-pt.json
index d85dca9300..66a58ed7ce 100644
--- a/app/config/locale/translations/pt-pt.json
+++ b/app/config/locale/translations/pt-pt.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"A arte de ser sábio é a arte de saber o que ultrapassar.\"",
"settings.locale": "pt-pt",
"settings.direction": "ltr",
- "emails.sender": "Equipa %s",
+ "emails.sender": "Equipa {{project}}",
"emails.verification.subject": "Verificação de contas",
"emails.verification.hello": "Hey {{user}},",
"emails.verification.body": "Siga esta ligação para verificar o seu endereço de correio electrónico.",
"emails.verification.footer": "Se não pediu para verificar este endereço, pode ignorar esta mensagem.",
"emails.verification.thanks": "Obrigado,",
+ "emails.verification.buttonText": "Confirmar endereço de email",
"emails.verification.signature": "Equipa {{project}}",
"emails.magicSession.subject": "Login",
"emails.magicSession.hello": "Olá ,",
- "emails.magicSession.body": "Siga esta ligação para iniciar sessão.",
- "emails.magicSession.footer": "Se não pediu para entrar usando este e-mail, pode ignorar esta mensagem.",
"emails.magicSession.thanks": "Obrigado,",
"emails.magicSession.signature": "Equipa {{project}}",
"emails.recovery.subject": "Redefinição de senha",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Utilize este link para redefinir a palavra-passe do seu projecto {{project}}",
"emails.recovery.footer": "Se não pediu para redefinir a sua palavra-passe, pode ignorar esta mensagem.",
"emails.recovery.thanks": "Obrigado,",
+ "emails.recovery.buttonText": "Repor palavra-passe",
"emails.recovery.signature": "Equipa {{project}}",
- "emails.invitation.subject": "Convite à equipa de %s às %s",
+ "emails.invitation.subject": "Convite à equipa de {{team}} às {{project}}",
"emails.invitation.hello": "Olá,",
"emails.invitation.body": "Este correio foi-lhe enviado porque {{owner}} queria convidá-lo a tornar-se membro da equipa {{team}} da {{project}}.",
"emails.invitation.footer": "Se não estiver interessado, pode ignorar esta mensagem.",
"emails.invitation.thanks": "Obrigado,",
+ "emails.invitation.buttonText": "Aceitar convite para o {{team}}",
"emails.invitation.signature": "Equipa {{project}}",
"locale.country.unknown": "Desconhecido",
"countries.af": "Afeganistão",
diff --git a/app/config/locale/translations/ro.json b/app/config/locale/translations/ro.json
index 04cb22dd6b..6af6be8e38 100644
--- a/app/config/locale/translations/ro.json
+++ b/app/config/locale/translations/ro.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Arta de a fi înţelept este arta de a intui ce trebuie trecut cu vederea.\"",
"settings.locale": "ro",
"settings.direction": "ltr",
- "emails.sender": "%s Echipa",
+ "emails.sender": "{{project}} Echipa",
"emails.verification.subject": "Verificare cont",
"emails.verification.hello": "Bună ziua, {{user}},",
"emails.verification.body": "Click pe acest link pentru a valida adresa de email.",
"emails.verification.footer": "Dacă nu ai cerut validarea adresei de email, poți ignora acest mesaj.",
"emails.verification.thanks": "Mulțumim,",
+ "emails.verification.buttonText": "Confirmă adresa de email",
"emails.verification.signature": "Echipa {{project}}",
"emails.magicSession.subject": "Login",
"emails.magicSession.hello": "Bună ziua,",
- "emails.magicSession.body": "Urmează acest link pentru logare.",
- "emails.magicSession.footer": "Dacă nu ai incercat să te loghezi folosing această adresa de email, poți ignora acest mesaj.",
"emails.magicSession.thanks": "Mulțumim,",
"emails.magicSession.signature": "Echipa {{project}}",
"emails.recovery.subject": "Resetare parolă",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Click aici pentru a reseta parola pentru {{project}}",
"emails.recovery.footer": "Dacă nu ai cerut să îți schimbi parola, ignoră acest mesaj.",
"emails.recovery.thanks": "Mulțumim,",
+ "emails.recovery.buttonText": "Resetează parola",
"emails.recovery.signature": "Echipa {{project}}",
- "emails.invitation.subject": "Invitatie catre %s Echipa la %s",
+ "emails.invitation.subject": "Invitatie catre {{team}} Echipa la {{project}}",
"emails.invitation.hello": "Bună ziua,",
"emails.invitation.body": "Acest email a fost trimis pentru că {{owner}} a vrut ca tu să devii membru al echipei {{team}} la {{project}}.",
"emails.invitation.footer": "Dacă nu esti interesat, poți ignora acest email.",
"emails.invitation.thanks": "Mulțumim,",
+ "emails.invitation.buttonText": "Acceptă invitația la {{team}}",
"emails.invitation.signature": "Echipa {{project}}",
"locale.country.unknown": "Necunoscut",
"countries.af": "Afghanistan",
diff --git a/app/config/locale/translations/ru.json b/app/config/locale/translations/ru.json
index 029aa06ee7..61ff4f94b3 100644
--- a/app/config/locale/translations/ru.json
+++ b/app/config/locale/translations/ru.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Искусство быть мудрым — это искусство знать, чем можно пренебречь.\"",
"settings.locale": "ru",
"settings.direction": "ltr",
- "emails.sender": "Команда %s",
+ "emails.sender": "Команда {{project}}",
"emails.verification.subject": "Верификация аккаунта",
"emails.verification.hello": "Здравствуйте, {{user}},",
"emails.verification.body": "Перейдите по ссылке, чтобы подтвердить свой адрес электронной почты.",
"emails.verification.footer": "Если вы не запрашивали подтверждение этого адреса, проигнорируйте это сообщение.",
"emails.verification.thanks": "Спасибо,",
+ "emails.verification.buttonText": "Подтвердить адрес электронной почты",
"emails.verification.signature": "команда {{project}}",
"emails.magicSession.subject": "Логин",
"emails.magicSession.hello": "Здравствуйте,",
- "emails.magicSession.body": "Перейдите по ссылке, чтобы войти.",
- "emails.magicSession.footer": "Если вы не просили войти, используя этот адрес электронной почты, проигнорируйте это сообщение.",
"emails.magicSession.thanks": "Спасибо,",
"emails.magicSession.signature": "команда {{project}}",
"emails.recovery.subject": "Сброс пароля",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Перейдите по этой ссылке для того чтобы сбросить свой пароль для проекта {{project}}",
"emails.recovery.footer": "Если вы не запрашивали сброс пароля, проигнорируйте это сообщение.",
"emails.recovery.thanks": "Спасибо,",
+ "emails.recovery.buttonText": "Сбросить пароль",
"emails.recovery.signature": "команда {{project}}",
- "emails.invitation.subject": "Приглашение в команду %s по проекту %s",
+ "emails.invitation.subject": "Приглашение в команду {{team}} по проекту {{project}}",
"emails.invitation.hello": "Здравствуйте,",
"emails.invitation.body": "Это письмо отправлено вам, потому что {{owner}} приглашает стать членом команды {{team}} в проекте {{project}}.",
"emails.invitation.footer": "Если вы не заинтересованы, проигнорируйте это сообщение.",
"emails.invitation.thanks": "Спасибо,",
+ "emails.invitation.buttonText": "Принять приглашение в {{team}}",
"emails.invitation.signature": "команда {{project}}",
"locale.country.unknown": "Неизвестно",
"countries.af": "Афганистан",
diff --git a/app/config/locale/translations/sa.json b/app/config/locale/translations/sa.json
index 7aa8c90d77..6bd7c903d3 100644
--- a/app/config/locale/translations/sa.json
+++ b/app/config/locale/translations/sa.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"किं हेयमित्यस्य ज्ञानमेव ज्ञानिलक्षणम्।\"",
"settings.locale": "sa",
"settings.direction": "ltr",
- "emails.sender": "%s गणः",
+ "emails.sender": "{{project}} गणः",
"emails.verification.subject": "पञ्जिकानिर्णायनम्",
"emails.verification.hello": "अयि {{user}},",
"emails.verification.body": "ई-पत्रनिर्णायनार्थमिदं संयोगसूत्रमनुसरतु।",
"emails.verification.footer": "यदि अस्य संकेतस्य निर्णायनं नेष्यते तर्हि वात्र्तामिमामुपेक्षताम्।",
"emails.verification.thanks": "धन्यवादः,",
+ "emails.verification.buttonText": "ईमेल-पत्त्रं सुनिश्चित करें",
"emails.verification.signature": "{{project}} गणः",
"emails.magicSession.subject": "संप्रवेशः",
"emails.magicSession.hello": "अयि,",
- "emails.magicSession.body": "संप्रवेशार्थमिदं संयोगसूत्रमनुसरतु।",
- "emails.magicSession.footer": "अनेन ई-पत्रण यदि संप्रवेशो नेष्यते तर्हि वात्र्तामिमामुपेक्षताम्।",
"emails.magicSession.thanks": "धन्यवादः,",
"emails.magicSession.signature": "{{project}} गणः",
"emails.recovery.subject": "कूटशब्दपुनयाेजनम्",
@@ -20,12 +19,14 @@
"emails.recovery.body": "{{project}} कूटशब्दपुनयाेजनाय संयोगमेनमनुसरतु।",
"emails.recovery.footer": "यदि कूटशब्दस्य पुनयाेजनं नेष्यते तर्हि वात्र्तामिमामुपेक्षताम्।",
"emails.recovery.thanks": "धन्यवादः,",
+ "emails.recovery.buttonText": "गुप्तशब्दं पुनः स्थापित करें",
"emails.recovery.signature": "{{project}} गणः",
- "emails.invitation.subject": "गणस्य आमन्त्रणम् %s इति %s",
+ "emails.invitation.subject": "गणस्य आमन्त्रणम् {{team}} इति {{project}}",
"emails.invitation.hello": "अयि भो,",
"emails.invitation.body": "{{owner}} {{team}} गणे {{project}} मध्ये भवद्योगदानमच्छितीति हेतोः पत्रमदिं भवत्सकाशं प्रेषतिम्।",
"emails.invitation.footer": "यदि भवदनिच्छा तर्हि वात्र्तामिमामुपेक्षताम्।",
"emails.invitation.thanks": "धन्यवादः,",
+ "emails.invitation.buttonText": "{{team}} निमन्त्रणं स्वीकुरुत",
"emails.invitation.signature": "{{project}} गणः",
"locale.country.unknown": "अज्ञातम् ",
"countries.af": "आफगानिस्थानम्",
diff --git a/app/config/locale/translations/sd.json b/app/config/locale/translations/sd.json
index 3f1f7678db..d862a7d29c 100644
--- a/app/config/locale/translations/sd.json
+++ b/app/config/locale/translations/sd.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"سمجھدار ھجڻ جو فن آھي اھو .اڻڻاڻڻ جو فن جيڪو نظر انداز ڪجي.\"",
"settings.locale": "sd",
"settings.direction": "ltr",
- "emails.sender": "%s ٽيم",
+ "emails.sender": "{{project}} ٽيم",
"emails.verification.subject": " اڪائونٽ جي تصديق",
"emails.verification.hello": "سلام {{user}},",
"emails.verification.body": "پنھنجي اي ميل ايڊريس جي تصديق ڪرڻ لاءِ ھن لنڪ تي عمل ڪريو.",
"emails.verification.footer": "جيڪڏھن توھان نه پ askيا ھئا ھن ايڊريس جي تصديق ڪرڻ لاءِ ، توھان نظر انداز ڪري سگھوٿا ھن پيغام کي.",
"emails.verification.thanks": "مهرباني,",
+ "emails.verification.buttonText": "اي ميل پتو تصديق ڪريو",
"emails.verification.signature": "{{project}} ٽيم",
"emails.magicSession.subject": "لاگ ان",
"emails.magicSession.hello": "هي ,",
- "emails.magicSession.body": "لاگ ان ٿيڻ لاءِ ھن لنڪ تي عمل ڪريو.",
- "emails.magicSession.footer": "جيڪڏھن توھان نه پ پيا ھي لاگ ان استعمال ڪندي اي ميل ، توھان نظر انداز ڪري سگھوٿا ھن پيغام کي.",
"emails.magicSession.thanks": "مهرباني,",
"emails.magicSession.signature": "{{project}} ٽيم",
"emails.recovery.subject": "پاسورڊ ري سيٽ",
@@ -20,12 +19,14 @@
"emails.recovery.body": "ھن لنڪ تي عمل ڪريو پنھنجو {{project}} پاسورڊ ري سيٽ ڪرڻ لاءِ.",
"emails.recovery.footer": "جيڪڏھن توھان نه پ پيو ھو پنھنجي پاسورڊ کي ري سيٽ ڪرڻ لاءِ ، توھان نظر انداز ڪري سگھوٿا ھن پيغام کي.",
"emails.recovery.thanks": "مهرباني,",
+ "emails.recovery.buttonText": "پاسورڊ ري سيٽ ڪريو",
"emails.recovery.signature": "{{project}} ٽيم",
- "emails.invitation.subject": "%s ٽيم %s تيجي دعوت",
+ "emails.invitation.subject": "{{team}} ٽيم {{project}} تيجي دعوت",
"emails.invitation.hello": "هيلو,",
"emails.invitation.body": "ھي اي ميل توھان ڏانھن موڪليو ويو آھي {اڪاڻ ته {{owner}} توھان کي دعوت ڏيڻ چاھي ٿو ته توھان {{team}} ٽيم جو ميمبر بڻجي {{project}} تي.",
"emails.invitation.footer": "جيڪڏھن توھان دلچسپي نٿا رکو ، توھان نظر انداز ڪري سگھوٿا ھن پيغام کي.",
"emails.invitation.thanks": "مهرباني,",
+ "emails.invitation.buttonText": "{{team}} جي دعوت قبول ڪريو",
"emails.invitation.signature": "{{project}} ٽيم",
"locale.country.unknown": "نامعلوم",
"countries.af": "افغانستان",
@@ -244,7 +245,7 @@
"emails.otpSession.securityPhrase": "هن ای میل لاءِ سیکيورٽي جملو {{phrase}} آھي. توهان هن ای میل تي اعتماد ڪري سگهو ٿا جيڪڏهن هن جملو لاڳو ٿيندڙ جملي سان ميل کاندي.",
"emails.otpSession.thanks": "مهرباني,",
"emails.otpSession.signature": "پروجيڪٽ جي ٽيم",
- "emails.certificate.subject": "%s لاءِ سند جو ناکامی",
+ "emails.certificate.subject": "{{domain}} لاءِ سند جو ناکامی",
"emails.certificate.hello": "هيلو,",
"emails.certificate.body": "توهان جي ڊومين '{{domain}}' لاءِ سرٽيفڪيٽ ٺاهڻ جو نه ٿي سگهيو. هي ڪوشش نمبر {{attempt}} آهي، ۽ ناڪامي جو سبب ٿيو: {{error}}",
"emails.certificate.footer": "توهان جو اڳيون سرٽيفڪيٽ اولهو فئيلر جي ݙينهن کان ٣٠ ݙينهن لاءِ ماني ويندو. اسان ان جي چھان بني جي بھرپور خواهش ڪنداسين، نہ ته توهان جو ݙومين بغير ڪوري SSL ڪميونڪيشن آڻي ويندي.",
diff --git a/app/config/locale/translations/si.json b/app/config/locale/translations/si.json
index 536e8d3604..7461376428 100644
--- a/app/config/locale/translations/si.json
+++ b/app/config/locale/translations/si.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"ප්රඥාවන්ත වීමේ කලාව යනු නොසලකා හැරිය යුතු දේ දැන ගැනීමේ කලාවයි.\"",
"settings.locale": "si",
"settings.direction": "ltr",
- "emails.sender": "%s කණ්ඩායම",
+ "emails.sender": "{{project}} කණ්ඩායම",
"emails.verification.subject": "ගිණුම් සත්යාපනය",
"emails.verification.hello": "හේයි {{user}},",
"emails.verification.body": "ඔබගේ විද්යුත් තැපැල් ලිපිනය සත්යාපනය කිරීමට මෙම සම්බන්ධකය අනුගමනය කරන්න.",
"emails.verification.footer": "මෙම ලිපිනය සත්යාපනය කරන ලෙස ඔබ ඉල්ලුවේ නැත්නම්, ඔබට මෙම පණිවිඩය නොසලකා හැරිය හැක.",
"emails.verification.thanks": "ස්තුතියි,",
+ "emails.verification.buttonText": "ඊමේල් ලිපිනය තහවුරු කරන්න",
"emails.verification.signature": "{{project}} කණ්ඩායම",
"emails.magicSession.subject": "ප්රවේශ වන්න",
"emails.magicSession.hello": "හේයි,",
- "emails.magicSession.body": "ප්රවේශ වීමට මෙම සම්බන්ධකය අනුගමනය කරන්න.",
- "emails.magicSession.footer": "මෙම විද්යුත් තැපෑල භාවිතයෙන් ප්රවේශ වීමට ඔබ ඉල්ලුවේ නැත්නම්, ඔබට මෙම පණිවිඩය නොසලකා හැරිය හැක.",
"emails.magicSession.thanks": "ස්තුතියි,",
"emails.magicSession.signature": "{{project}} කණ්ඩායම",
"emails.recovery.subject": "මුරපද යළි පිහිටුවීම",
@@ -20,12 +19,14 @@
"emails.recovery.body": "ඔබගේ {{project}} මුරපදය නැවත සැකසීමට මෙම සම්බන්ධකය අනුගමනය කරන්න.",
"emails.recovery.footer": "ඔබගේ මුරපදය නැවත සකසන ලෙස ඔබ ඉල්ලුවේ නැත්නම්, ඔබට මෙම පණිවිඩය නොසලකා හැරිය හැක.",
"emails.recovery.thanks": "ස්තුතියි,",
+ "emails.recovery.buttonText": "මුරපදය යළි පිහිටුවන්න",
"emails.recovery.signature": "{{project}} කණ්ඩායම",
- "emails.invitation.subject": "%s කණ්ඩායමට ආරාධනා %s හි",
+ "emails.invitation.subject": "{{team}} කණ්ඩායමට ආරාධනා {{project}} හි",
"emails.invitation.hello": "ආයුබෝවන්,",
"emails.invitation.body": "මෙම තැපැල් ඔබට එව්වේ, {{owner}} හට {{project}} හි {{team}} කණ්ඩායමේ සාමාජිකයෙකු වීමට ඔබට ආරාධනා කිරීමට අවශ්ය වූ බැවිනි.",
"emails.invitation.footer": "ඔබ උනන්දුවක් නොදක්වන්නේ නම්, ඔබට මෙම පණිවිඩය නොසලකා හැරිය හැක.",
"emails.invitation.thanks": "ස්තුතියි,",
+ "emails.invitation.buttonText": "{{team}} සඳහා ආරාධනය පිළිගෙනින්න",
"emails.invitation.signature": "{{project}} කණ්ඩායම",
"locale.country.unknown": "නොදන්නා",
"countries.af": "ඇෆ්ගනිස්ථානය",
diff --git a/app/config/locale/translations/sk.json b/app/config/locale/translations/sk.json
index 93c12c0881..ee14066aef 100644
--- a/app/config/locale/translations/sk.json
+++ b/app/config/locale/translations/sk.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Umenie múdrosti je umenie vedieť, čo prehliadnuť.\"",
"settings.locale": "sk",
"settings.direction": "ltr",
- "emails.sender": "%s Tím",
+ "emails.sender": "{{project}} Tím",
"emails.verification.subject": "Overenie účtu",
"emails.verification.hello": "Ahoj {{user}},",
"emails.verification.body": "Použi tento link pre overenie svojej emailovej adresy.",
"emails.verification.footer": "Ak si nepožiadal o overenie tejto adresy, môžeš túto správu ignorovať.",
"emails.verification.thanks": "Ďakujeme.,",
+ "emails.verification.buttonText": "Potvrďte e-mailovú adresu",
"emails.verification.signature": "{{project}} tím",
"emails.magicSession.subject": "Prihlásenie",
"emails.magicSession.hello": "Ahoj,",
- "emails.magicSession.body": "Použi tento link pre prihlásenie.",
- "emails.magicSession.footer": "Ak si nepožiadal o prihlásenie cez email, túto správu môžeš ignorovať.",
"emails.magicSession.thanks": "Ďakujeme,",
"emails.magicSession.signature": "{{project}} tím",
"emails.recovery.subject": "Obnovenie hesla",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Použi tento link pre obnovenie svojho {{project}} hesla.",
"emails.recovery.footer": "Ak si nepožiadal o obnovu svojho hesla, túto správu môžeš ignorovať.",
"emails.recovery.thanks": "Ďakujeme,",
+ "emails.recovery.buttonText": "Obnoviť heslo",
"emails.recovery.signature": "{{project}} tím",
- "emails.invitation.subject": "Pozvánka do %s Tímu v %s",
+ "emails.invitation.subject": "Pozvánka do {{team}} Tímu v {{project}}",
"emails.invitation.hello": "Ahoj,",
"emails.invitation.body": "Tento email ti bol zaslaný, pretože {{owner}} ťa pozval, aby si sa stal členom {{team}} tímu v projekte {{project}}.",
"emails.invitation.footer": "Ak nemáš záujem, môžeš túto správu ignorovať.",
"emails.invitation.thanks": "Ďakujeme,",
+ "emails.invitation.buttonText": "Prijať pozvánku do {{team}}",
"emails.invitation.signature": "{{project}} tím",
"locale.country.unknown": "Neznámy",
"countries.af": "Afganistan",
diff --git a/app/config/locale/translations/sl.json b/app/config/locale/translations/sl.json
index f7c4f41255..9d441ba6c9 100644
--- a/app/config/locale/translations/sl.json
+++ b/app/config/locale/translations/sl.json
@@ -2,7 +2,7 @@
"settings.inspire": "\"Srčika modrosti je umetnost védenja, kaj spregledati.\"",
"settings.locale": "sl",
"settings.direction": "ltr",
- "emails.sender": "%s Ekipa",
+ "emails.sender": "{{project}} Ekipa",
"emails.verification.subject": "",
"emails.verification.hello": ",",
"emails.verification.body": "",
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
- "emails.magicSession.body": "",
- "emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
diff --git a/app/config/locale/translations/sn.json b/app/config/locale/translations/sn.json
index d17a98ff42..7c088f8b38 100644
--- a/app/config/locale/translations/sn.json
+++ b/app/config/locale/translations/sn.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Unyanzvi hwekuchenjera kuziva zvekufuratira.\"",
"settings.locale": "sn",
"settings.direction": "ltr",
- "emails.sender": "Chikwata che%s",
+ "emails.sender": "Chikwata che{{project}}",
"emails.verification.subject": "Kuratidzi kuti ndiwe muridzi weakaundi",
"emails.verification.hello": "Hesi {{user}},",
"emails.verification.body": "Tevedza chinongedzo ichi kuti uratidze kuti kero iyi ndeyako.",
"emails.verification.footer": "Kana usina kukumbira kuti uratidze kuti kero iyi ndeyako, unogona kufuratira meseji iyi.",
"emails.verification.thanks": "Ndatenda,",
+ "emails.verification.buttonText": "Simbisa kero yeemail",
"emails.verification.signature": "Chikwata che{{project}}",
"emails.magicSession.subject": "Pinda",
"emails.magicSession.hello": "Hesi,",
- "emails.magicSession.body": "Baya chinongedzo ichi kuti upinde muakaundi yako.",
- "emails.magicSession.footer": "Kana usina kukumbira kupinda muakaundi yako uchishandisa email iyi, unogona kufuratira meseji iyi.",
"emails.magicSession.thanks": "Ndatenda,",
"emails.magicSession.signature": "Chikwata che{{project}}",
"emails.recovery.subject": "Kuchinja pasiwedhi",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Baya chinongedzo ichi kuti uchinje pasiwedhi yako ye{{project}}.",
"emails.recovery.footer": "Kana usina kukumbira kuchinja pasiwedhi yako, unogona kufuratira meseji iyi.",
"emails.recovery.thanks": "Ndatenda,",
+ "emails.recovery.buttonText": "Gadzirisa password",
"emails.recovery.signature": "Chikwata che{{project}}",
- "emails.invitation.subject": "Kukokwa kuchikwata che%s ku%s",
+ "emails.invitation.subject": "Kukokwa kuchikwata che{{team}} ku{{project}}",
"emails.invitation.hello": "Mhoro,",
"emails.invitation.body": "Tsamba iyi yatumirwa kwauri nekuti {{owner}} anga achida kuti uve nhengo yechikwata che{{team}} pachirongwa che{{project}}.",
"emails.invitation.footer": "Kana usiri kufarira kuve nhengo yechikwata ichi, unogona kufuratira meseji iyi.",
"emails.invitation.thanks": "Ndatenda,",
+ "emails.invitation.buttonText": "Gamuchira kukokwa ku {{team}}",
"emails.invitation.signature": "Chikwata che{{project}}",
"locale.country.unknown": "Haizivikanwe",
"countries.af": "Afuganisitani",
diff --git a/app/config/locale/translations/sq.json b/app/config/locale/translations/sq.json
index 85aa6637f6..1e8eede0f5 100644
--- a/app/config/locale/translations/sq.json
+++ b/app/config/locale/translations/sq.json
@@ -2,7 +2,7 @@
"settings.inspire": "\"The art of being wise is the art of knowing what to overlook.\"",
"settings.locale": "sq",
"settings.direction": "ltr",
- "emails.sender": "Grup %s",
+ "emails.sender": "Grup {{project}}",
"emails.verification.subject": "",
"emails.verification.hello": ",",
"emails.verification.body": "",
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
- "emails.magicSession.body": "",
- "emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
diff --git a/app/config/locale/translations/sv.json b/app/config/locale/translations/sv.json
index 8997fd53f8..4751e2ad65 100644
--- a/app/config/locale/translations/sv.json
+++ b/app/config/locale/translations/sv.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Vishet är konsten att förstå vad man ska förbise.\"",
"settings.locale": "sv",
"settings.direction": "ltr",
- "emails.sender": "%s-teamet",
+ "emails.sender": "{{project}}-teamet",
"emails.verification.subject": "Verifiera konto",
"emails.verification.hello": "Hej {{user}},",
"emails.verification.body": "Klicka på denna länk för att verifiera din email",
"emails.verification.footer": "Om du inte bad om att verifiera den här e-postadressen kan du ignorera detta mail.",
"emails.verification.thanks": "Tack,",
+ "emails.verification.buttonText": "Bekräfta e-postadress",
"emails.verification.signature": "{{project}} teamet",
"emails.magicSession.subject": "Logga in",
"emails.magicSession.hello": "Hej,",
- "emails.magicSession.body": "Klicka på denna länk för att logga in.",
- "emails.magicSession.footer": "Om du inte bad om att logga in med denna e-postadress kan du ignorera detta mail.",
"emails.magicSession.thanks": "Tack,",
"emails.magicSession.signature": "{{project}} teamet",
"emails.recovery.subject": "Återställ lösenord",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Klicka på denna länk för att återställa lösenordet på {{project}}",
"emails.recovery.footer": "Om du inte bad om att återställa ditt lösenord kan du ignorera detta mail.",
"emails.recovery.thanks": "Tack,",
+ "emails.recovery.buttonText": "Återställ lösenord",
"emails.recovery.signature": "{{project}} teamet",
- "emails.invitation.subject": "Inbjudan till %s teamet på %s",
+ "emails.invitation.subject": "Inbjudan till {{team}} teamet på {{project}}",
"emails.invitation.hello": "Hej,",
"emails.invitation.body": "Detta mail skickades till dig eftersom {{owner}} ville bjuda in dig att bli medlem i teamet {{team}} på {{project}}.",
"emails.invitation.footer": "Om du inte är intresserad kan du ignorera detta mail.",
"emails.invitation.thanks": "Tack,",
+ "emails.invitation.buttonText": "Acceptera inbjudan till {{team}}",
"emails.invitation.signature": "{{project}} teamet",
"locale.country.unknown": "Okänt",
"countries.af": "Afghanistan",
diff --git a/app/config/locale/translations/ta.json b/app/config/locale/translations/ta.json
index f0695867a9..54ecc2436d 100644
--- a/app/config/locale/translations/ta.json
+++ b/app/config/locale/translations/ta.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"புத்திசாலித்தனம் என்னும் கலை என்பது எதனை புறக்கணிக்க வேண்டும் என அறியும் கலையாகும்.\"",
"settings.locale": "ta",
"settings.direction": "ltr",
- "emails.sender": "%s குழு",
+ "emails.sender": "{{project}} குழு",
"emails.verification.subject": "கணக்கு சரிபார்ப்பு",
"emails.verification.hello": "ஏய் {{user}},",
"emails.verification.body": "உங்கள் மின்னஞ்சல் முகவரியைச் சரிபார்க்க இந்த இணைப்பைப் பின்தொடரவும்.",
"emails.verification.footer": "இந்த முகவரியைச் சரிபார்க்கும்படி உங்களிடம் கேட்கப்படவில்லை என்றால், இந்தச் செய்தியை நீங்கள் புறக்கணிக்கலாம்.",
"emails.verification.thanks": "நன்றி,",
+ "emails.verification.buttonText": "மின்னஞ்சல் முகவரியை உறுதிப்படுத்தவும்",
"emails.verification.signature": "{{project}} குழு ",
"emails.magicSession.subject": "உள்நுழைய",
"emails.magicSession.hello": "ஏய்,",
- "emails.magicSession.body": "இந்த இணைப்பைப் பின்தொடரவும் உள்நுழைய",
- "emails.magicSession.footer": "இந்த மின்னஞ்சலைப் பயன்படுத்தி உள்நுழையுமாறு உங்களிடம் கேட்கப்படாவிட்டால், இந்தச் செய்தியைப் புறக்கணிக்கலாம்.",
"emails.magicSession.thanks": "நன்றி,",
"emails.magicSession.signature": "{{project}} குழு",
"emails.recovery.subject": "கடவுச்சொல் மீட்டமைப்பு",
@@ -20,12 +19,14 @@
"emails.recovery.body": "மீட்டமைக்க இந்த இணைப்பைப் பின்தொடரவும் {{project}} கடவுச்சொல்.",
"emails.recovery.footer": "உங்கள் கடவுச்சொல்லை மீட்டமைக்கும்படி உங்களிடம் கேட்கப்படவில்லை என்றால், இந்தச் செய்தியை நீங்கள் புறக்கணிக்கலாம்.",
"emails.recovery.thanks": "நன்றி,",
+ "emails.recovery.buttonText": "கடவுச்சொல்லை மீட்டமைக்கவும்",
"emails.recovery.signature": "{{project}} குழு",
- "emails.invitation.subject": "அழைப்பிதழ் %s குழு %s ",
+ "emails.invitation.subject": "அழைப்பிதழ் {{team}} குழு {{project}} ",
"emails.invitation.hello": "வணக்கம்,",
"emails.invitation.body": "{{project}} இல் {{team}} குழுவில் உறுப்பினராக உங்களை {{owner}} அழைக்க விரும்புவதால், இந்த அஞ்சல் உங்களுக்கு அனுப்பப்பட்டது.",
"emails.invitation.footer": "உங்களுக்கு ஆர்வம் இல்லை என்றால், இந்த செய்தியை நீங்கள் புறக்கணிக்கலாம்.",
"emails.invitation.thanks": "நன்றி,",
+ "emails.invitation.buttonText": "{{team}} அழைப்பை ஏற்கவும்",
"emails.invitation.signature": "{{project}} குழு",
"locale.country.unknown": "அறியவில்லை",
"countries.af": "ஆப்கானித்தான்",
diff --git a/app/config/locale/translations/te.json b/app/config/locale/translations/te.json
index 870b0b82a2..74713ef47e 100644
--- a/app/config/locale/translations/te.json
+++ b/app/config/locale/translations/te.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"ఏది విస్మరించాలో తెలుసుకోవడమే తెలివైన వ్యక్తి యొక్క కళ.\"",
"settings.locale": "te",
"settings.direction": "ltr",
- "emails.sender": "%s జట్టు",
+ "emails.sender": "{{project}} జట్టు",
"emails.verification.subject": "ఖాతా ధృవీకరణ",
"emails.verification.hello": "నమస్కారము {{user}},",
"emails.verification.body": "ఈ లింక్ ద్వారా ఇమెయిల్ ని ధృవీకరించండి",
"emails.verification.footer": "మీరు ఈ చిరునామాను ధృవీకరించమని అడగనట్లయితే, మీరు ఈ సందేశాన్ని విస్మరించవచ్చు",
"emails.verification.thanks": "ధన్యవాదాలు,",
+ "emails.verification.buttonText": "ఇమెయిల్ చిరునామాను నిర్ధారించండి",
"emails.verification.signature": "{{project}} జట్",
"emails.magicSession.subject": "లాగిన్",
"emails.magicSession.hello": "నమస్కారము,",
- "emails.magicSession.body": "లాగిన్ చేయడానికి ఈ లింక్ ని అనుసరించండి",
- "emails.magicSession.footer": "మీరు ఈ ఇమెయిల్ ని ఉపయోగించి లాగిన్ చేయమని అడగకపోతే, మీరు ఈ సందేశాన్ని విస్మరించవచ్చు",
"emails.magicSession.thanks": "ధన్యవాదాలు,",
"emails.magicSession.signature": "{{project}} జట్",
"emails.recovery.subject": "పాస్వర్డ్ రీసెట్",
@@ -20,12 +19,14 @@
"emails.recovery.body": "మీ {{project}} పాస్వర్డ్ ని రీసెట్ చేయడానికి ఈ లింక్ ని అనుసరించండి",
"emails.recovery.footer": "మీరు మీ పాస్వర్డ్ ని రీసెట్ చేయమని అడగనట్లయితే, మీరు ఈ సందేశాన్ని విస్మరించవచ్చు",
"emails.recovery.thanks": "ధన్యవాదాల,",
+ "emails.recovery.buttonText": "పాస్వర్డ్ను రీసెట్ చేయండి",
"emails.recovery.signature": "{{project}} జట్",
- "emails.invitation.subject": "%s వద్ద %s బృందానికి ఆహ్వానం",
+ "emails.invitation.subject": "{{team}} వద్ద {{project}} బృందానికి ఆహ్వానం",
"emails.invitation.hello": "నమస్కారమ,",
"emails.invitation.body": "{{owner}} మిమ్మల్ని {{project}} లో {{team}} బృందంలో సభ్యునిగా ఉండమని ఆహ్వానించాలనుకుంటున్నందున ఈ మెయిల్ మీకు పంపబడింది.",
"emails.invitation.footer": "మీకు ఆసక్తి లేకుంటే, మీరు ఈ సందేశాన్ని విస్మరించవచ్చు.",
"emails.invitation.thanks": "ధన్యవాదాల,",
+ "emails.invitation.buttonText": "{{team}} కు ఆహ్వానాన్ని ఆమోదించండి",
"emails.invitation.signature": "{{project}} జట్",
"locale.country.unknown": "తెలియని",
"countries.af": "ఆఫ్ఘనిస్తాన్",
diff --git a/app/config/locale/translations/th.json b/app/config/locale/translations/th.json
index 5a53b16055..2d27a9eb4d 100644
--- a/app/config/locale/translations/th.json
+++ b/app/config/locale/translations/th.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"ศิลปะของการมีปัญญา คือการตระหนักได้ว่าควรจะมองข้ามเรื่องอะไร\"",
"settings.locale": "th",
"settings.direction": "ltr",
- "emails.sender": "ทีม %s",
+ "emails.sender": "ทีม {{project}}",
"emails.verification.subject": "การยืนยันบัญชีผู้ใช้",
"emails.verification.hello": "เรียนคุณ {{user}}",
"emails.verification.body": "กดเข้าไปที่ลิงก์นี้เพื่อยืนยันอีเมลของท่าน",
"emails.verification.footer": "หากท่านไม่ได้ต้องการที่จะยืนยันอีเมลนี้ ท่านสามารถเพิกเฉยข้อความนี้ได้",
"emails.verification.thanks": "ขอบคุณ",
+ "emails.verification.buttonText": "ยืนยันที่อยู่อีเมล",
"emails.verification.signature": "ทีม {{project}}",
"emails.magicSession.subject": "เข้าสู่ระบบ",
"emails.magicSession.hello": "เรียนผู้ใช้งาน",
- "emails.magicSession.body": "กดเข้าไปที่ลิงก์นี้เพื่อเข้าสู่ระบบ",
- "emails.magicSession.footer": "หากท่านไม่ได้ต้องการที่จะเข้าสู่ระบบด้วยอีเมลนี้ ท่านสามารถเพิกเฉยข้อความนี้ได้",
"emails.magicSession.thanks": "ขอบคุณ",
"emails.magicSession.signature": "ทีม {{project}}",
"emails.recovery.subject": "รีเซ็ตรหัสผ่าน",
@@ -20,12 +19,14 @@
"emails.recovery.body": "กดเข้าไปที่ลิงก์นี้เพื่อรีเซ็ตรหัสผ่านสำหรับโปรเจกต์ {{project}} ของท่าน",
"emails.recovery.footer": "หากท่านไม่ได้ต้องการที่จะรีเซ็ตรหัสผ่านของท่าน ท่านสามารถเพิกเฉยข้อความนี้ได้",
"emails.recovery.thanks": "ขอบคุณ",
+ "emails.recovery.buttonText": "รีเซ็ตรหัสผ่าน",
"emails.recovery.signature": "ทีม {{project}}",
- "emails.invitation.subject": "เรียนเชิญเข้าร่วม ทีม %s จากโปรเจกต์ %s",
+ "emails.invitation.subject": "เรียนเชิญเข้าร่วม ทีม {{team}} จากโปรเจกต์ {{project}}",
"emails.invitation.hello": "สวัสดี",
"emails.invitation.body": "ท่านได้รับอีเมลฉบับนี้เนื่องจาก {{owner}} ต้องการที่จะเชิญชวนคุณเข้าร่วมเป็นส่วนหนึ่งของ ทีม {{team}} จากโปรเจกต์ {{project}}",
"emails.invitation.footer": "หากท่านไม่ได้สนใจที่จะเข้าร่วม ท่านสามารถเพิกเฉยข้อความนี้ได้",
"emails.invitation.thanks": "ขอบคุณ",
+ "emails.invitation.buttonText": "ยอมรับคำเชิญเข้าร่วม {{team}}",
"emails.invitation.signature": "ทีม {{project}}",
"locale.country.unknown": "ไม่ทราบ",
"countries.af": "อัฟกานิสถาน",
diff --git a/app/config/locale/translations/tl.json b/app/config/locale/translations/tl.json
index 6d0be01095..51190a6d32 100644
--- a/app/config/locale/translations/tl.json
+++ b/app/config/locale/translations/tl.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Ang sining ng pagiging matalino ay ang sining ng pag-alam kung ano ang dapat kaligtaan.\"",
"settings.locale": "tl",
"settings.direction": "ltr",
- "emails.sender": "Pangkat ng %s",
+ "emails.sender": "Pangkat ng {{project}}",
"emails.verification.subject": "Pagpapatunay ng account",
"emails.verification.hello": "Kamusta {{user}},",
"emails.verification.body": "Sundin ang link na ito upang ma-verify ang iyong email address.",
"emails.verification.footer": "Kung hindi mo hiningi na i-verify ang address na ito, maaari mong balewalain ang mensahe na ito.",
"emails.verification.thanks": "Salamat,",
+ "emails.verification.buttonText": "Kumpirmahin ang email address",
"emails.verification.signature": "Pangkat ng {{project}}",
"emails.magicSession.subject": "Mag log in",
"emails.magicSession.hello": "Kamusta ,",
- "emails.magicSession.body": "Sundin ang link na ito upang mag-login.",
- "emails.magicSession.footer": "Kung hindi mo hiningi na mag-login gamit ang email na ito, maaari mong balewalain ang mensahe na ito.",
"emails.magicSession.thanks": "Salamat,",
"emails.magicSession.signature": "Pangkat ng {{project}}",
"emails.recovery.subject": "I-reset ang password",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Sundin ang link na ito upang i-reset ang password ng iyong {{project}}.",
"emails.recovery.footer": "Kung hindi mo hiningi na i-reset ang iyong password, maaari mong balewalain ang mensahe na ito.",
"emails.recovery.thanks": "Salamat,",
+ "emails.recovery.buttonText": "I-reset ang password",
"emails.recovery.signature": "Pangkat ng {{project}}",
- "emails.invitation.subject": "Imbitasyon para sa Pangkat %s sa %s",
+ "emails.invitation.subject": "Imbitasyon para sa Pangkat {{team}} sa {{project}}",
"emails.invitation.hello": "Kamusta,",
"emails.invitation.body": "Ipinadala sa iyo ang mail na ito dahil gusto kang imbitahan ni {{owner}} na maging miyembro ng Pangkat {{team}} sa ilalim ng proyektong {{project}}.",
"emails.invitation.footer": "Kung ikaw ay hindi interesado, maaari mong balewalain ang mensaheng ito.",
"emails.invitation.thanks": "Salamat,",
+ "emails.invitation.buttonText": "Tanggapin ang paanyaya sa {{team}}",
"emails.invitation.signature": "Pangkat ng {{project}}",
"locale.country.unknown": "Hindi kilala",
"countries.af": "Apganistan",
diff --git a/app/config/locale/translations/tr.json b/app/config/locale/translations/tr.json
index 115050c2e2..f6cd6d8687 100644
--- a/app/config/locale/translations/tr.json
+++ b/app/config/locale/translations/tr.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Bilge olma sanatı, neyi ihmal edeceğini bilme sanatıdır.\"",
"settings.locale": "tr",
"settings.direction": "ltr",
- "emails.sender": "%s Takımı",
+ "emails.sender": "{{project}} Takımı",
"emails.verification.subject": "Hesabını Doğrula",
"emails.verification.hello": "Merhaba {{user}},",
"emails.verification.body": "Eposta adresini doğrulamak için bu bağlantıyı kullanın.",
"emails.verification.footer": "Eğer bu eposta adresini doğrulamak isteyen siz değilseniz devam etmeyin.",
"emails.verification.thanks": "Teşekkürler,",
+ "emails.verification.buttonText": "E-posta adresini doğrula",
"emails.verification.signature": "{{project}} takımı",
"emails.magicSession.subject": "Giriş",
"emails.magicSession.hello": "Merhaba,",
- "emails.magicSession.body": "Giriş yapmak için tıklayın.",
- "emails.magicSession.footer": "Eğer bu eposta adresini kullanarak giriş yapmak istemediyseniz devam etmeyin.",
"emails.magicSession.thanks": "Teşekkürler,",
"emails.magicSession.signature": "{{project}} takımı",
"emails.recovery.subject": "Şifremi Sıfırla",
@@ -20,12 +19,14 @@
"emails.recovery.body": "{{project}} şifrenizi sıfırlamak için bu bağlantıyı kullanın.",
"emails.recovery.footer": "Eğer şifre sıfırlama talebinde bulunmadıysanız devam etmeyin.",
"emails.recovery.thanks": "Teşekkürler,",
+ "emails.recovery.buttonText": "Şifreyi sıfırla",
"emails.recovery.signature": "{{project}} takımı",
- "emails.invitation.subject": "%s üzerinde %s Takımına Davet",
+ "emails.invitation.subject": "{{team}} üzerinde {{project}} Takımına Davet",
"emails.invitation.hello": "Merhaba,",
"emails.invitation.body": "Bu epostayı aldınız, çünkü {{owner}} sizi {{project}} üzerinde {{team}} takımının üyesi olmaya davet etti.",
"emails.invitation.footer": "Eğer ilgilenmiyorsanız devam etmeyin.",
"emails.invitation.thanks": "Teşekkürler,",
+ "emails.invitation.buttonText": "{{team}}'e daveti kabul et",
"emails.invitation.signature": "{{project}} takımı",
"locale.country.unknown": "Bilinmeyen",
"countries.af": "Afganistan",
diff --git a/app/config/locale/translations/uk.json b/app/config/locale/translations/uk.json
index 3f66bd1c58..057c1dc5f4 100644
--- a/app/config/locale/translations/uk.json
+++ b/app/config/locale/translations/uk.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Мистецтво бути мудрим - це мистецтво знати, чим можна знехтувати\"",
"settings.locale": "uk",
"settings.direction": "ltr",
- "emails.sender": "Команда %s",
+ "emails.sender": "Команда {{project}}",
"emails.verification.subject": "Верифікація акаунта",
"emails.verification.hello": "Вітаємо, {{user}},",
"emails.verification.body": "Перейдіть за цим посиланням, щоб підтвердити свою електронну адресу.",
"emails.verification.footer": "Якщо ви не запитували підтвердження цієї адреси, ви можете ігнорувати це повідомлення.",
"emails.verification.thanks": "Дякуємо,",
+ "emails.verification.buttonText": "Підтвердити адресу електронної пошти",
"emails.verification.signature": "команда {{project}}",
"emails.magicSession.subject": "Логін",
"emails.magicSession.hello": "Вітаємо,",
- "emails.magicSession.body": "Перейдіть за цим посиланням, щоб увійти.",
- "emails.magicSession.footer": "Якщо ви не просили увійти за допомогою цієї електронної пошти, ви можете ігнорувати це повідомлення.",
"emails.magicSession.thanks": "Дякуємо,",
"emails.magicSession.signature": "команда {{project}}",
"emails.recovery.subject": "Скидання пароля",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Перейдіть за цим посиланням для того щоб скинути свій пароль для проекту {{project}}",
"emails.recovery.footer": "Якщо ви не запитували скидання паролю, проігноруйте це повідомлення.",
"emails.recovery.thanks": "Дякуємо,",
+ "emails.recovery.buttonText": "Скинути пароль",
"emails.recovery.signature": "команда {{project}}",
- "emails.invitation.subject": "Запрошення до %s Команди у %s",
+ "emails.invitation.subject": "Запрошення до {{team}} Команди у {{project}}",
"emails.invitation.hello": "Вітаємо,",
"emails.invitation.body": "Цей лист був надісланий вам тому що {{owner}} запрошує вас стати членом команди {{team}} у проекті {{project}}.",
"emails.invitation.footer": "Якщо ви не зацікавлені, проігноруйте це повідомлення.",
"emails.invitation.thanks": "Дякуємо,",
+ "emails.invitation.buttonText": "Прийняти запрошення до {{team}}",
"emails.invitation.signature": "команда {{project}}",
"locale.country.unknown": "Невідомо",
"countries.af": "Афганістан",
diff --git a/app/config/locale/translations/ur.json b/app/config/locale/translations/ur.json
index 9d6aa47762..0c2283d1e4 100644
--- a/app/config/locale/translations/ur.json
+++ b/app/config/locale/translations/ur.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"عقلمند ہونے کا فن یہ جاننے کا فن ہے کہ کیا نظرانداز کیا جائے۔\"",
"settings.locale": "ur",
"settings.direction": "rtl",
- "emails.sender": "%s ٹیم",
+ "emails.sender": "{{project}} ٹیم",
"emails.verification.subject": "اکاؤنٹ کی تصدیق",
"emails.verification.hello": "خوش آمدید {{user}}،",
"emails.verification.body": "براہ کرم اپنے ای میل کی تصدیق کے لیے درج ذیل لنک پر عمل کریں۔",
"emails.verification.footer": "اگر آپ نے اس پتے کی تصدیق کے لیے نہیں کہا تو آپ اس پیغام کو نظر انداز کر سکتے ہیں۔",
"emails.verification.thanks": "شکریہ،",
+ "emails.verification.buttonText": "ای میل پتہ کی تصدیق کریں",
"emails.verification.signature": "ٹیم۔ {{project}}",
"emails.magicSession.subject": "اگ ان کریں",
"emails.magicSession.hello": "خوش آمدید،",
- "emails.magicSession.body": "لاگ ان کرنے کے لیے اس لنک پر عمل کریں۔",
- "emails.magicSession.footer": "اگر آپ نے اس ای میل کا استعمال کرتے ہوئے لاگ ان کرنے کے لیے نہیں کہا تو آپ اس پیغام کو نظر انداز کر سکتے ہیں۔",
"emails.magicSession.thanks": "شکریہ،",
"emails.magicSession.signature": "ٹیم۔ {{project}}",
"emails.recovery.subject": "پاس ورڈ ری سیٹ۔",
@@ -20,13 +19,15 @@
"emails.recovery.body": "{{project}} کا پاس ورڈ تبدیل کرنے کے لیے درج ذیل لنک پر عمل کریں",
"emails.recovery.footer": "اگر آپ نے اپنا پاس ورڈ دوبارہ ترتیب دینے کے لیے نہیں کہا تو آپ اس پیغام کو نظر انداز کر سکتے ہیں۔",
"emails.recovery.thanks": "شکریہ،",
+ "emails.recovery.buttonText": "پاس ورڈ ری سیٹ کریں",
"emails.recovery.signature": "ٹیم۔ {{project}}",
- "emails.invitation.subject": "%s پر %s ٹیم کو دعوت",
+ "emails.invitation.subject": "{{team}} پر {{project}} ٹیم کو دعوت",
"emails.invitation.hello": "خوش آمدید،",
"emails.invitation.body": "یہ پیغام آپ کو اس لیے بھیجا گیا تھا کہ {{owner}} نے آپ کو {{project}} میں {{team}} ٹیم کا رکن بننے کی دعوت بھیجی",
"emails.invitation.footer": "اگر آپ دلچسپی نہیں رکھتے تو آپ اس پیغام کو نظر انداز کر سکتے ہیں۔",
"emails.invitation.thanks": "شکریہ،",
- "emails.invitation.signature": "ٹیم۔ {{project}",
+ "emails.invitation.buttonText": "{{team}} کی دعوت قبول کریں",
+ "emails.invitation.signature": "ٹیم۔ {{project}}",
"locale.country.unknown": "نامعلوم",
"countries.af": "افغانستان",
"countries.ao": "انگولا",
diff --git a/app/config/locale/translations/vi.json b/app/config/locale/translations/vi.json
index 76a545a1d4..4a6172d479 100644
--- a/app/config/locale/translations/vi.json
+++ b/app/config/locale/translations/vi.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"Nghệ thuật khôn ngoan là nghệ thuật biết những gì cần bỏ qua.\"",
"settings.locale": "vi",
"settings.direction": "ltr",
- "emails.sender": "Nhóm %s",
+ "emails.sender": "Nhóm {{project}}",
"emails.verification.subject": "Xác minh tài khoản",
"emails.verification.hello": "Chào {{user}}",
"emails.verification.body": "Nhấn vào đường dẫn sau để xác minh địa chỉ email của bạn.",
"emails.verification.footer": "Nếu bạn không yêu cầu xác minh tài khoản, bạn có thể bỏ qua email này.",
"emails.verification.thanks": "Cảm ơn",
+ "emails.verification.buttonText": "Xác nhận địa chỉ email",
"emails.verification.signature": "Nhóm {{project}}",
"emails.magicSession.subject": "Đăng nhập",
"emails.magicSession.hello": "Chào",
- "emails.magicSession.body": "Nhấn vào đường dẫn sau để đăng nhập.",
- "emails.magicSession.footer": "Nếu bạn không yêu cầu đăng nhập bằng email, bạn có thể bỏ qua email này.",
"emails.magicSession.thanks": "Cảm ơn",
"emails.magicSession.signature": "Nhóm {{project}}",
"emails.recovery.subject": "Thiết lập lại mật khẩu",
@@ -20,12 +19,14 @@
"emails.recovery.body": "Nhấn vào đường dẫn sau để thiết lập lại mật khẩu {{project}} của bạn.",
"emails.recovery.footer": "Nếu bạn không yêu cầu thiết lập lại mật khẩu, bạn có thể bỏ qua email này.",
"emails.recovery.thanks": "Cảm ơn",
+ "emails.recovery.buttonText": "Đặt lại mật khẩu",
"emails.recovery.signature": "Nhóm {{project}}",
- "emails.invitation.subject": "Lời mời tham gia nhóm %s tại %s",
+ "emails.invitation.subject": "Lời mời tham gia nhóm {{team}} tại {{project}}",
"emails.invitation.hello": "Xin chào",
"emails.invitation.body": "Email này được gửi cho bạn vì {{owner}} muốn mời bạn trở thành một thành viên của nhóm {{team}} tại {{project}}.",
"emails.invitation.footer": "Nếu bạn không quan tâm, bạn có thể bỏ qua email này.",
"emails.invitation.thanks": "Cảm ơn",
+ "emails.invitation.buttonText": "Chấp nhận lời mời vào {{team}}",
"emails.invitation.signature": "Nhóm {{project}}",
"locale.country.unknown": "Không xác định",
"countries.af": "Afghanistan",
diff --git a/app/config/locale/translations/zh-cn.json b/app/config/locale/translations/zh-cn.json
index 5e35a89bfe..5bda45728d 100644
--- a/app/config/locale/translations/zh-cn.json
+++ b/app/config/locale/translations/zh-cn.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"懂得取舍,方显睿智。\"",
"settings.locale": "zh",
"settings.direction": "ltr",
- "emails.sender": "%s 小组",
+ "emails.sender": "{{project}} 小组",
"emails.verification.subject": "帐户验证",
"emails.verification.hello": "你好 {{user}}、",
"emails.verification.body": "点此链接验证您的电子邮件地址。",
"emails.verification.footer": "如果您没有要求验证此地址,则可忽略此消息。",
"emails.verification.thanks": "谢谢、",
+ "emails.verification.buttonText": "确认邮箱地址",
"emails.verification.signature": "{{project}} 团队",
"emails.magicSession.subject": "登录",
"emails.magicSession.hello": "你好、",
- "emails.magicSession.body": "点此链接登录。",
- "emails.magicSession.footer": "如果您没有要求使用此电子邮件登录,则可忽略此消息。",
"emails.magicSession.thanks": "谢谢、",
"emails.magicSession.signature": "{{project}} 团队",
"emails.recovery.subject": "重设密码",
@@ -20,12 +19,14 @@
"emails.recovery.body": "点此链接重置您的 {{project}} 密码。",
"emails.recovery.footer": "如果您没有要求重置密码,则可以忽略此消息。",
"emails.recovery.thanks": "谢谢、",
+ "emails.recovery.buttonText": "重置密码",
"emails.recovery.signature": "{{project}} 团队",
- "emails.invitation.subject": "邀请 %s 团队在 %s",
+ "emails.invitation.subject": "邀请 {{team}} 团队在 {{project}}",
"emails.invitation.hello": "你好、",
"emails.invitation.body": "这封邮件发送给您是因为 {{owner}} 想邀请您成为 {{team}} 团队在 {{project}}.",
"emails.invitation.footer": "如果您不感兴趣,可以忽略此消息。",
"emails.invitation.thanks": "谢谢、",
+ "emails.invitation.buttonText": "接受加入 {{team}} 的邀请",
"emails.invitation.signature": "{{project}} 团队",
"locale.country.unknown": "未知",
"countries.af": "阿富汗",
diff --git a/app/config/locale/translations/zh-tw.json b/app/config/locale/translations/zh-tw.json
index 146dd0a401..3c7df3e668 100644
--- a/app/config/locale/translations/zh-tw.json
+++ b/app/config/locale/translations/zh-tw.json
@@ -2,17 +2,16 @@
"settings.inspire": "\"懂得取捨,方顯睿智。\"",
"settings.locale": "zh-tw",
"settings.direction": "ltr",
- "emails.sender": "%s 小組",
+ "emails.sender": "{{project}} 小組",
"emails.verification.subject": "帳戶驗證",
"emails.verification.hello": "嗨 {{user}}、",
"emails.verification.body": "按照此連結驗證您的電子郵件地址。",
"emails.verification.footer": "如果您沒有要求驗證此地址,則可以忽略此消息。",
"emails.verification.thanks": "謝謝、",
+ "emails.verification.buttonText": "確認電子郵件地址",
"emails.verification.signature": "{{project}} 團隊",
"emails.magicSession.subject": "登入",
"emails.magicSession.hello": "嗨、",
- "emails.magicSession.body": "點此連結登入。",
- "emails.magicSession.footer": "如果您沒有要求使用此電子郵件登入,則可以忽略此消息。",
"emails.magicSession.thanks": "謝謝、",
"emails.magicSession.signature": "{{project}} 團隊",
"emails.recovery.subject": "重設密碼",
@@ -20,12 +19,14 @@
"emails.recovery.body": "按照此連結重置您的 {{project}} 密碼。",
"emails.recovery.footer": "如果您沒有要求重置密碼,則可以忽略此消息。",
"emails.recovery.thanks": "謝謝、",
+ "emails.recovery.buttonText": "重設密碼",
"emails.recovery.signature": "{{project}} 團隊",
- "emails.invitation.subject": "邀請 %s 團隊在 %s",
+ "emails.invitation.subject": "邀請 {{team}} 團隊在 {{project}}",
"emails.invitation.hello": "您好、",
"emails.invitation.body": "發送這封郵件給您是因為 {{owner}} 想邀請您成為 {{team}} 團隊在 {{project}}。",
"emails.invitation.footer": "如果您不感興趣,可以忽略此消息。",
"emails.invitation.thanks": "謝謝、",
+ "emails.invitation.buttonText": "接受加入 {{team}} 的邀請",
"emails.invitation.signature": "{{project}} 團隊",
"locale.country.unknown": "未知",
"countries.af": "阿富汗",
diff --git a/app/config/platforms.php b/app/config/platforms.php
index 358edd0cf8..8a33144b2f 100644
--- a/app/config/platforms.php
+++ b/app/config/platforms.php
@@ -11,7 +11,7 @@ return [
[
'key' => 'web',
'name' => 'Web',
- 'version' => '18.1.0',
+ 'version' => '20.1.0',
'url' => 'https://github.com/appwrite/sdk-for-web',
'package' => 'https://www.npmjs.com/package/appwrite',
'enabled' => true,
@@ -25,6 +25,7 @@ return [
'gitRepoName' => 'sdk-for-web',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/web/CHANGELOG.md'),
'demos' => [
[
'icon' => 'react.svg',
@@ -59,7 +60,7 @@ return [
[
'key' => 'flutter',
'name' => 'Flutter',
- 'version' => '16.1.0',
+ 'version' => '19.1.0',
'url' => 'https://github.com/appwrite/sdk-for-flutter',
'package' => 'https://pub.dev/packages/appwrite',
'enabled' => true,
@@ -73,11 +74,12 @@ return [
'gitRepoName' => 'sdk-for-flutter',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/flutter/CHANGELOG.md'),
],
[
'key' => 'apple',
'name' => 'Apple',
- 'version' => '10.1.0',
+ 'version' => '12.1.0',
'url' => 'https://github.com/appwrite/sdk-for-apple',
'package' => 'https://github.com/appwrite/sdk-for-apple',
'enabled' => true,
@@ -91,6 +93,7 @@ return [
'gitRepoName' => 'sdk-for-apple',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/apple/CHANGELOG.md'),
],
[
'key' => 'objective-c',
@@ -108,11 +111,12 @@ return [
'gitRepoName' => 'sdk-for-objective-c',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/objective-c/CHANGELOG.md'),
],
[
'key' => 'android',
'name' => 'Android',
- 'version' => '8.1.0',
+ 'version' => '10.1.0',
'url' => 'https://github.com/appwrite/sdk-for-android',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-android',
'enabled' => true,
@@ -130,11 +134,12 @@ return [
'Kotlin' => 'kotlin',
'Java' => 'java',
],
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/android/CHANGELOG.md'),
],
[
'key' => 'react-native',
'name' => 'React Native',
- 'version' => '0.9.1',
+ 'version' => '0.14.0',
'url' => 'https://github.com/appwrite/sdk-for-react-native',
'package' => 'https://npmjs.com/package/react-native-appwrite',
'enabled' => true,
@@ -148,6 +153,7 @@ return [
'gitRepoName' => 'sdk-for-react-native',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/react-native/CHANGELOG.md'),
],
[
'key' => 'graphql',
@@ -167,6 +173,7 @@ return [
'gitUserName' => '',
'gitBranch' => '',
'isSDK' => false,
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/graphql/CHANGELOG.md'),
],
[
'key' => 'rest',
@@ -186,6 +193,7 @@ return [
'gitUserName' => '',
'gitBranch' => '',
'isSDK' => false,
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/rest/CHANGELOG.md'),
],
],
],
@@ -199,8 +207,8 @@ return [
[
'key' => 'web',
'name' => 'Console',
- 'version' => '1.7.0',
- 'url' => 'https://github.com/appwrite/sdk-for-console',
+ 'version' => '0.1.0',
+ 'url' => '',
'package' => '',
'enabled' => true,
'beta' => false,
@@ -209,15 +217,16 @@ return [
'family' => APP_PLATFORM_CONSOLE,
'prism' => 'javascript',
'source' => \realpath(__DIR__ . '/../sdks/console-web'),
- 'gitUrl' => 'git@github.com:appwrite/sdk-for-console.git',
+ 'gitUrl' => '',
'gitBranch' => 'dev',
- 'gitRepoName' => 'sdk-for-console',
- 'gitUserName' => 'appwrite',
+ 'gitRepoName' => '',
+ 'gitUserName' => '',
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/console/CHANGELOG.md'),
],
[
'key' => 'cli',
'name' => 'Command Line',
- 'version' => '6.2.3',
+ 'version' => '10.0.0',
'url' => 'https://github.com/appwrite/sdk-for-cli',
'package' => 'https://www.npmjs.com/package/appwrite-cli',
'enabled' => true,
@@ -231,6 +240,14 @@ return [
'gitRepoName' => 'sdk-for-cli',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
+ 'repoBranch' => 'master',
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/cli/CHANGELOG.md'),
+ 'exclude' => [
+ 'services' => [
+ ['name' => 'assistant'],
+ ['name' => 'avatars'],
+ ],
+ ],
],
],
],
@@ -245,7 +262,7 @@ return [
[
'key' => 'nodejs',
'name' => 'Node.js',
- 'version' => '17.0.0',
+ 'version' => '19.1.0',
'url' => 'https://github.com/appwrite/sdk-for-node',
'package' => 'https://www.npmjs.com/package/node-appwrite',
'enabled' => true,
@@ -259,29 +276,12 @@ return [
'gitRepoName' => 'sdk-for-node',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
- ],
- [
- 'key' => 'deno',
- 'name' => 'Deno',
- 'version' => '15.0.0',
- 'url' => 'https://github.com/appwrite/sdk-for-deno',
- 'package' => 'https://deno.land/x/appwrite',
- 'enabled' => true,
- 'beta' => false,
- 'dev' => false,
- 'hidden' => false,
- 'family' => APP_PLATFORM_SERVER,
- 'prism' => 'typescript',
- 'source' => \realpath(__DIR__ . '/../sdks/server-deno'),
- 'gitUrl' => 'git@github.com:appwrite/sdk-for-deno.git',
- 'gitRepoName' => 'sdk-for-deno',
- 'gitUserName' => 'appwrite',
- 'gitBranch' => 'dev',
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/nodejs/CHANGELOG.md'),
],
[
'key' => 'php',
'name' => 'PHP',
- 'version' => '15.0.0',
+ 'version' => '17.1.0',
'url' => 'https://github.com/appwrite/sdk-for-php',
'package' => 'https://packagist.org/packages/appwrite/appwrite',
'enabled' => true,
@@ -295,11 +295,12 @@ return [
'gitRepoName' => 'sdk-for-php',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/php/CHANGELOG.md'),
],
[
'key' => 'python',
'name' => 'Python',
- 'version' => '11.0.0',
+ 'version' => '13.1.0',
'url' => 'https://github.com/appwrite/sdk-for-python',
'package' => 'https://pypi.org/project/appwrite/',
'enabled' => true,
@@ -313,11 +314,12 @@ return [
'gitRepoName' => 'sdk-for-python',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/python/CHANGELOG.md'),
],
[
'key' => 'ruby',
'name' => 'Ruby',
- 'version' => '16.0.0',
+ 'version' => '18.1.0',
'url' => 'https://github.com/appwrite/sdk-for-ruby',
'package' => 'https://rubygems.org/gems/appwrite',
'enabled' => true,
@@ -331,11 +333,12 @@ return [
'gitRepoName' => 'sdk-for-ruby',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/ruby/CHANGELOG.md'),
],
[
'key' => 'go',
'name' => 'Go',
- 'version' => '0.8.0',
+ 'version' => '0.12.0',
'url' => 'https://github.com/appwrite/sdk-for-go',
'package' => 'https://github.com/appwrite/sdk-for-go',
'enabled' => true,
@@ -349,11 +352,12 @@ return [
'gitRepoName' => 'sdk-for-go',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/go/CHANGELOG.md'),
],
[
'key' => 'dotnet',
'name' => '.NET',
- 'version' => '0.13.0',
+ 'version' => '0.18.0',
'url' => 'https://github.com/appwrite/sdk-for-dotnet',
'package' => 'https://www.nuget.org/packages/Appwrite',
'enabled' => true,
@@ -367,11 +371,12 @@ return [
'gitRepoName' => 'sdk-for-dotnet',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/dotnet/CHANGELOG.md'),
],
[
'key' => 'dart',
'name' => 'Dart',
- 'version' => '16.0.0',
+ 'version' => '18.1.0',
'url' => 'https://github.com/appwrite/sdk-for-dart',
'package' => 'https://pub.dev/packages/dart_appwrite',
'enabled' => true,
@@ -385,11 +390,12 @@ return [
'gitRepoName' => 'sdk-for-dart',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/dart/CHANGELOG.md'),
],
[
'key' => 'kotlin',
'name' => 'Kotlin',
- 'version' => '9.0.0',
+ 'version' => '11.1.0',
'url' => 'https://github.com/appwrite/sdk-for-kotlin',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-kotlin',
'enabled' => true,
@@ -407,11 +413,12 @@ return [
'Kotlin' => 'kotlin',
'Java' => 'java',
],
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/kotlin/CHANGELOG.md'),
],
[
'key' => 'swift',
'name' => 'Swift',
- 'version' => '10.0.0',
+ 'version' => '12.1.0',
'url' => 'https://github.com/appwrite/sdk-for-swift',
'package' => 'https://github.com/appwrite/sdk-for-swift',
'enabled' => true,
@@ -425,6 +432,7 @@ return [
'gitRepoName' => 'sdk-for-swift',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/swift/CHANGELOG.md'),
],
[
'key' => 'graphql',
@@ -444,6 +452,7 @@ return [
'gitUserName' => '',
'gitBranch' => '',
'isSDK' => false,
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/graphql/CHANGELOG.md'),
],
[
'key' => 'rest',
@@ -463,6 +472,7 @@ return [
'gitUserName' => '',
'gitBranch' => '',
'isSDK' => false,
+ 'changelog' => \realpath(__DIR__ . '/../../docs/sdks/rest/CHANGELOG.md'),
],
],
],
diff --git a/app/config/roles.php b/app/config/roles.php
index bccc2837f5..4b06e0a6c1 100644
--- a/app/config/roles.php
+++ b/app/config/roles.php
@@ -14,6 +14,8 @@ $member = [
'teams.write',
'documents.read',
'documents.write',
+ 'rows.read',
+ 'rows.write',
'files.read',
'files.write',
'projects.read',
@@ -37,6 +39,8 @@ $admins = [
'teams.write',
'documents.read',
'documents.write',
+ 'rows.read',
+ 'rows.write',
'files.read',
'files.write',
'buckets.read',
@@ -47,6 +51,8 @@ $admins = [
'databases.write',
'collections.read',
'collections.write',
+ 'tables.read',
+ 'tables.write',
'platforms.read',
'platforms.write',
'projects.write',
@@ -97,6 +103,8 @@ return [
'sessions.write',
'documents.read',
'documents.write',
+ 'rows.read',
+ 'rows.write',
'files.read',
'files.write',
'locale.read',
diff --git a/app/config/scopes.php b/app/config/scopes.php
index 7dea7b1cd5..d90ca2eabf 100644
--- a/app/config/scopes.php
+++ b/app/config/scopes.php
@@ -28,12 +28,24 @@ return [ // List of publicly visible scopes
'collections.write' => [
'description' => 'Access to create, update, and delete your project\'s database collections',
],
+ 'tables.read' => [
+ 'description' => 'Access to read your project\'s database tables',
+ ],
+ 'tables.write' => [
+ 'description' => 'Access to create, update, and delete your project\'s database tables',
+ ],
'attributes.read' => [
'description' => 'Access to read your project\'s database collection\'s attributes',
],
'attributes.write' => [
'description' => 'Access to create, update, and delete your project\'s database collection\'s attributes',
],
+ 'columns.read' => [
+ 'description' => 'Access to read your project\'s database table\'s columns',
+ ],
+ 'columns.write' => [
+ 'description' => 'Access to create, update, and delete your project\'s database table\'s columns',
+ ],
'indexes.read' => [
'description' => 'Access to read your project\'s database collection\'s indexes',
],
@@ -46,6 +58,12 @@ return [ // List of publicly visible scopes
'documents.write' => [
'description' => 'Access to create, update, and delete your project\'s database documents',
],
+ 'rows.read' => [
+ 'description' => 'Access to read your project\'s database rows',
+ ],
+ 'rows.write' => [
+ 'description' => 'Access to create, update, and delete your project\'s database rows',
+ ],
'files.read' => [
'description' => 'Access to read your project\'s storage files and preview images',
],
diff --git a/app/config/services.php b/app/config/services.php
index 9fef123f36..5f8651e59f 100644
--- a/app/config/services.php
+++ b/app/config/services.php
@@ -55,10 +55,10 @@ return [
],
'databases' => [
'key' => 'databases',
- 'name' => 'Databases',
+ 'name' => 'Databases (legacy)',
'subtitle' => 'The Databases service allows you to create structured collections of documents, query and filter lists of documents',
'description' => '/docs/services/databases.md',
- 'controller' => 'api/databases.php',
+ 'controller' => '', // Uses modules
'sdk' => true,
'docs' => true,
'docsUrl' => 'https://appwrite.io/docs/client/databases',
@@ -66,6 +66,19 @@ return [
'optional' => true,
'icon' => '/images/services/databases.png',
],
+ 'tablesdb' => [
+ 'key' => 'tablesdb',
+ 'name' => 'TablesDB',
+ 'subtitle' => 'The TablesDB service allows you to create structured tables of columns, query and filter lists of rows',
+ 'description' => '/docs/services/tablesdb.md',
+ 'controller' => '', // Uses modules
+ 'sdk' => true,
+ 'docs' => true,
+ 'docsUrl' => 'https://appwrite.io/docs/client/tablesdb',
+ 'tests' => false,
+ 'optional' => true,
+ 'icon' => '/images/services/databases.png',
+ ],
'locale' => [
'key' => 'locale',
'name' => 'Locale',
@@ -201,7 +214,7 @@ return [
'name' => 'Proxy',
'subtitle' => 'The Proxy Service allows you to configure actions for your domains beyond DNS configuration.',
'description' => '/docs/services/proxy.md',
- 'controller' => 'api/proxy.php',
+ 'controller' => '', // Uses modules
'sdk' => true,
'docs' => true,
'docsUrl' => 'https://appwrite.io/docs/proxy',
diff --git a/app/config/specs/open-api3-1.7.x-client.json b/app/config/specs/open-api3-1.7.x-client.json
index abeab8a56f..c7de6a31af 100644
--- a/app/config/specs/open-api3-1.7.x-client.json
+++ b/app/config/specs/open-api3-1.7.x-client.json
@@ -1,7 +1,7 @@
{
"openapi": "3.0.0",
"info": {
- "version": "1.7.0",
+ "version": "1.7.4",
"title": "Appwrite",
"description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)",
"termsOfService": "https:\/\/appwrite.io\/policy\/terms",
@@ -2622,7 +2622,7 @@
"tags": [
"account"
],
- "description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).",
+ "description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n",
"responses": {
"201": {
"description": "Token",
@@ -2673,7 +2673,7 @@
"properties": {
"userId": {
"type": "string",
- "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
"x-example": ""
},
"email": {
@@ -2755,7 +2755,7 @@
"properties": {
"userId": {
"type": "string",
- "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
"x-example": ""
},
"email": {
@@ -2977,7 +2977,7 @@
"properties": {
"userId": {
"type": "string",
- "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.",
"x-example": ""
},
"phone": {
@@ -3440,7 +3440,7 @@
"parameters": [
{
"name": "code",
- "description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
+ "description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"schema": {
"type": "string",
@@ -3458,7 +3458,7 @@
"mastercard",
"naranja",
"targeta-shopping",
- "union-china-pay",
+ "unionpay",
"visa",
"mir",
"maestro",
@@ -3478,7 +3478,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
- "Union China Pay",
+ "Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -4457,6 +4457,7 @@
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "documents.write",
"platforms": [
+ "console",
"client",
"server",
"server"
@@ -4465,10 +4466,9 @@
"methods": [
{
"name": "createDocument",
+ "desc": "Create document",
"auth": {
- "Session": [],
- "Key": [],
- "JWT": []
+ "Project": []
},
"parameters": [
"databaseId",
@@ -4489,7 +4489,8 @@
"model": "#\/components\/schemas\/document"
}
],
- "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console."
+ "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.",
+ "demo": "databases\/create-document.md"
}
],
"auth": {
@@ -4890,7 +4891,7 @@
"x-appwrite": {
"method": "deleteDocument",
"group": "documents",
- "weight": 117,
+ "weight": 119,
"cookies": false,
"type": "",
"deprecated": false,
@@ -4951,6 +4952,236 @@
]
}
},
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": {
+ "patch": {
+ "summary": "Decrement document attribute",
+ "operationId": "databasesDecrementDocumentAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Decrement a specific attribute of a document by a given value.",
+ "responses": {
+ "200": {
+ "description": "Document",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/document"
+ }
+ }
+ }
+ }
+ },
+ "x-appwrite": {
+ "method": "decrementDocumentAttribute",
+ "group": "documents",
+ "weight": 116,
+ "cookies": false,
+ "type": "",
+ "deprecated": false,
+ "demo": "databases\/decrement-document-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/decrement-document-attribute.md",
+ "rate-limit": 120,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": "documents.write",
+ "platforms": [
+ "console",
+ "server",
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "documentId",
+ "description": "Document ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "attribute",
+ "description": "Attribute key.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "number",
+ "description": "Value to decrement the attribute by. The value must be a number.",
+ "x-example": null
+ },
+ "min": {
+ "type": "number",
+ "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.",
+ "x-example": null
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": {
+ "patch": {
+ "summary": "Increment document attribute",
+ "operationId": "databasesIncrementDocumentAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Increment a specific attribute of a document by a given value.",
+ "responses": {
+ "200": {
+ "description": "Document",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/document"
+ }
+ }
+ }
+ }
+ },
+ "x-appwrite": {
+ "method": "incrementDocumentAttribute",
+ "group": "documents",
+ "weight": 115,
+ "cookies": false,
+ "type": "",
+ "deprecated": false,
+ "demo": "databases\/increment-document-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/increment-document-attribute.md",
+ "rate-limit": 120,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": "documents.write",
+ "platforms": [
+ "console",
+ "server",
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "documentId",
+ "description": "Document ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "attribute",
+ "description": "Attribute key.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "number",
+ "description": "Value to increment the attribute by. The value must be a number.",
+ "x-example": null
+ },
+ "max": {
+ "type": "number",
+ "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.",
+ "x-example": null
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"\/functions\/{functionId}\/executions": {
"get": {
"summary": "List executions",
@@ -4974,7 +5205,7 @@
"x-appwrite": {
"method": "listExecutions",
"group": "executions",
- "weight": 392,
+ "weight": 394,
"cookies": false,
"type": "",
"deprecated": false,
@@ -5049,7 +5280,7 @@
"x-appwrite": {
"method": "createExecution",
"group": "executions",
- "weight": 390,
+ "weight": 392,
"cookies": false,
"type": "",
"deprecated": false,
@@ -5132,7 +5363,7 @@
"scheduledAt": {
"type": "string",
"description": "Scheduled execution time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.",
- "x-example": null
+ "x-example": ""
}
}
}
@@ -5164,7 +5395,7 @@
"x-appwrite": {
"method": "getExecution",
"group": "executions",
- "weight": 391,
+ "weight": 393,
"cookies": false,
"type": "",
"deprecated": false,
@@ -5238,7 +5469,7 @@
"x-appwrite": {
"method": "query",
"group": "graphql",
- "weight": 306,
+ "weight": 308,
"cookies": false,
"type": "graphql",
"deprecated": false,
@@ -5290,7 +5521,7 @@
"x-appwrite": {
"method": "mutation",
"group": "graphql",
- "weight": 305,
+ "weight": 307,
"cookies": false,
"type": "graphql",
"deprecated": false,
@@ -5342,7 +5573,7 @@
"x-appwrite": {
"method": "get",
"group": null,
- "weight": 122,
+ "weight": 124,
"cookies": false,
"type": "",
"deprecated": false,
@@ -5394,7 +5625,7 @@
"x-appwrite": {
"method": "listCodes",
"group": null,
- "weight": 123,
+ "weight": 125,
"cookies": false,
"type": "",
"deprecated": false,
@@ -5446,7 +5677,7 @@
"x-appwrite": {
"method": "listContinents",
"group": null,
- "weight": 127,
+ "weight": 129,
"cookies": false,
"type": "",
"deprecated": false,
@@ -5498,7 +5729,7 @@
"x-appwrite": {
"method": "listCountries",
"group": null,
- "weight": 124,
+ "weight": 126,
"cookies": false,
"type": "",
"deprecated": false,
@@ -5550,7 +5781,7 @@
"x-appwrite": {
"method": "listCountriesEU",
"group": null,
- "weight": 125,
+ "weight": 127,
"cookies": false,
"type": "",
"deprecated": false,
@@ -5602,7 +5833,7 @@
"x-appwrite": {
"method": "listCountriesPhones",
"group": null,
- "weight": 126,
+ "weight": 128,
"cookies": false,
"type": "",
"deprecated": false,
@@ -5654,7 +5885,7 @@
"x-appwrite": {
"method": "listCurrencies",
"group": null,
- "weight": 128,
+ "weight": 130,
"cookies": false,
"type": "",
"deprecated": false,
@@ -5706,7 +5937,7 @@
"x-appwrite": {
"method": "listLanguages",
"group": null,
- "weight": 129,
+ "weight": 131,
"cookies": false,
"type": "",
"deprecated": false,
@@ -5758,7 +5989,7 @@
"x-appwrite": {
"method": "createSubscriber",
"group": "subscribers",
- "weight": 352,
+ "weight": 354,
"cookies": false,
"type": "",
"deprecated": false,
@@ -5841,7 +6072,7 @@
"x-appwrite": {
"method": "deleteSubscriber",
"group": "subscribers",
- "weight": 356,
+ "weight": 358,
"cookies": false,
"type": "",
"deprecated": false,
@@ -5916,7 +6147,7 @@
"x-appwrite": {
"method": "listFiles",
"group": "files",
- "weight": 212,
+ "weight": 214,
"cookies": false,
"type": "",
"deprecated": false,
@@ -6002,7 +6233,7 @@
"x-appwrite": {
"method": "createFile",
"group": "files",
- "weight": 211,
+ "weight": 213,
"cookies": false,
"type": "upload",
"deprecated": false,
@@ -6100,7 +6331,7 @@
"x-appwrite": {
"method": "getFile",
"group": "files",
- "weight": 213,
+ "weight": 215,
"cookies": false,
"type": "",
"deprecated": false,
@@ -6172,7 +6403,7 @@
"x-appwrite": {
"method": "updateFile",
"group": "files",
- "weight": 218,
+ "weight": 220,
"cookies": false,
"type": "",
"deprecated": false,
@@ -6261,7 +6492,7 @@
"x-appwrite": {
"method": "deleteFile",
"group": "files",
- "weight": 219,
+ "weight": 221,
"cookies": false,
"type": "",
"deprecated": false,
@@ -6328,7 +6559,7 @@
"x-appwrite": {
"method": "getFileDownload",
"group": "files",
- "weight": 215,
+ "weight": 217,
"cookies": false,
"type": "location",
"deprecated": false,
@@ -6406,7 +6637,7 @@
"x-appwrite": {
"method": "getFilePreview",
"group": "files",
- "weight": 214,
+ "weight": 216,
"cookies": false,
"type": "location",
"deprecated": false,
@@ -6595,7 +6826,8 @@
"png",
"webp",
"heic",
- "avif"
+ "avif",
+ "gif"
],
"x-enum-name": "ImageFormat",
"x-enum-keys": [],
@@ -6633,7 +6865,7 @@
"x-appwrite": {
"method": "getFileView",
"group": "files",
- "weight": 216,
+ "weight": 218,
"cookies": false,
"type": "location",
"deprecated": false,
@@ -6718,7 +6950,7 @@
"x-appwrite": {
"method": "list",
"group": "teams",
- "weight": 223,
+ "weight": 225,
"cookies": false,
"type": "",
"deprecated": false,
@@ -6794,7 +7026,7 @@
"x-appwrite": {
"method": "create",
"group": "teams",
- "weight": 222,
+ "weight": 224,
"cookies": false,
"type": "",
"deprecated": false,
@@ -6879,7 +7111,7 @@
"x-appwrite": {
"method": "get",
"group": "teams",
- "weight": 224,
+ "weight": 226,
"cookies": false,
"type": "",
"deprecated": false,
@@ -6941,7 +7173,7 @@
"x-appwrite": {
"method": "updateName",
"group": "teams",
- "weight": 226,
+ "weight": 228,
"cookies": false,
"type": "",
"deprecated": false,
@@ -7015,7 +7247,7 @@
"x-appwrite": {
"method": "delete",
"group": "teams",
- "weight": 228,
+ "weight": 230,
"cookies": false,
"type": "",
"deprecated": false,
@@ -7079,7 +7311,7 @@
"x-appwrite": {
"method": "listMemberships",
"group": "memberships",
- "weight": 230,
+ "weight": 232,
"cookies": false,
"type": "",
"deprecated": false,
@@ -7165,7 +7397,7 @@
"x-appwrite": {
"method": "createMembership",
"group": "memberships",
- "weight": 229,
+ "weight": 231,
"cookies": false,
"type": "",
"deprecated": false,
@@ -7276,7 +7508,7 @@
"x-appwrite": {
"method": "getMembership",
"group": "memberships",
- "weight": 231,
+ "weight": 233,
"cookies": false,
"type": "",
"deprecated": false,
@@ -7348,7 +7580,7 @@
"x-appwrite": {
"method": "updateMembership",
"group": "memberships",
- "weight": 232,
+ "weight": 234,
"cookies": false,
"type": "",
"deprecated": false,
@@ -7435,7 +7667,7 @@
"x-appwrite": {
"method": "deleteMembership",
"group": "memberships",
- "weight": 234,
+ "weight": 236,
"cookies": false,
"type": "",
"deprecated": false,
@@ -7509,7 +7741,7 @@
"x-appwrite": {
"method": "updateMembershipStatus",
"group": "memberships",
- "weight": 233,
+ "weight": 235,
"cookies": false,
"type": "",
"deprecated": false,
@@ -7607,7 +7839,7 @@
"x-appwrite": {
"method": "getPrefs",
"group": "teams",
- "weight": 225,
+ "weight": 227,
"cookies": false,
"type": "",
"deprecated": false,
@@ -7668,7 +7900,7 @@
"x-appwrite": {
"method": "updatePrefs",
"group": "teams",
- "weight": 227,
+ "weight": 229,
"cookies": false,
"type": "",
"deprecated": false,
@@ -7803,7 +8035,8 @@
"any": {
"description": "Any",
"type": "object",
- "additionalProperties": true
+ "additionalProperties": true,
+ "example": []
},
"error": {
"description": "Error",
@@ -7835,7 +8068,13 @@
"code",
"type",
"version"
- ]
+ ],
+ "example": {
+ "message": "Not found",
+ "code": "404",
+ "type": "not_found",
+ "version": "1.0"
+ }
},
"documentList": {
"description": "Documents List",
@@ -7859,7 +8098,11 @@
"required": [
"total",
"documents"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "documents": ""
+ }
},
"sessionList": {
"description": "Sessions List",
@@ -7883,7 +8126,11 @@
"required": [
"total",
"sessions"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "sessions": ""
+ }
},
"identityList": {
"description": "Identities List",
@@ -7907,7 +8154,11 @@
"required": [
"total",
"identities"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "identities": ""
+ }
},
"logList": {
"description": "Logs List",
@@ -7931,7 +8182,11 @@
"required": [
"total",
"logs"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "logs": ""
+ }
},
"fileList": {
"description": "Files List",
@@ -7955,7 +8210,11 @@
"required": [
"total",
"files"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "files": ""
+ }
},
"teamList": {
"description": "Teams List",
@@ -7979,7 +8238,11 @@
"required": [
"total",
"teams"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "teams": ""
+ }
},
"membershipList": {
"description": "Memberships List",
@@ -8003,7 +8266,11 @@
"required": [
"total",
"memberships"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "memberships": ""
+ }
},
"executionList": {
"description": "Executions List",
@@ -8027,7 +8294,11 @@
"required": [
"total",
"executions"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "executions": ""
+ }
},
"countryList": {
"description": "Countries List",
@@ -8051,7 +8322,11 @@
"required": [
"total",
"countries"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "countries": ""
+ }
},
"continentList": {
"description": "Continents List",
@@ -8075,7 +8350,11 @@
"required": [
"total",
"continents"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "continents": ""
+ }
},
"languageList": {
"description": "Languages List",
@@ -8099,7 +8378,11 @@
"required": [
"total",
"languages"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "languages": ""
+ }
},
"currencyList": {
"description": "Currencies List",
@@ -8123,7 +8406,11 @@
"required": [
"total",
"currencies"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "currencies": ""
+ }
},
"phoneList": {
"description": "Phones List",
@@ -8147,7 +8434,11 @@
"required": [
"total",
"phones"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "phones": ""
+ }
},
"localeCodeList": {
"description": "Locale codes list",
@@ -8171,7 +8462,11 @@
"required": [
"total",
"localeCodes"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "localeCodes": ""
+ }
},
"document": {
"description": "Document",
@@ -8182,15 +8477,24 @@
"description": "Document ID.",
"x-example": "5e5ea5c16897e"
},
+ "$sequence": {
+ "type": "integer",
+ "description": "Document automatically incrementing ID.",
+ "x-example": 1,
+ "format": "int32",
+ "readOnly": true
+ },
"$collectionId": {
"type": "string",
"description": "Collection ID.",
- "x-example": "5e5ea5c15117e"
+ "x-example": "5e5ea5c15117e",
+ "readOnly": true
},
"$databaseId": {
"type": "string",
"description": "Database ID.",
- "x-example": "5e5ea5c15117e"
+ "x-example": "5e5ea5c15117e",
+ "readOnly": true
},
"$createdAt": {
"type": "string",
@@ -8216,12 +8520,29 @@
"additionalProperties": true,
"required": [
"$id",
+ "$sequence",
"$collectionId",
"$databaseId",
"$createdAt",
"$updatedAt",
"$permissions"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$sequence": 1,
+ "$collectionId": "5e5ea5c15117e",
+ "$databaseId": "5e5ea5c15117e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "$permissions": [
+ "read(\"any\")"
+ ],
+ "username": "john.doe",
+ "email": "john.doe@example.com",
+ "fullName": "John Doe",
+ "age": 30,
+ "isAdmin": false
+ }
},
"log": {
"description": "Log",
@@ -8355,7 +8676,30 @@
"deviceModel",
"countryCode",
"countryName"
- ]
+ ],
+ "example": {
+ "event": "account.sessions.create",
+ "userId": "610fc2f985ee0",
+ "userEmail": "john@appwrite.io",
+ "userName": "John Doe",
+ "mode": "admin",
+ "ip": "127.0.0.1",
+ "time": "2020-10-15T06:38:00.000+00:00",
+ "osCode": "Mac",
+ "osName": "Mac",
+ "osVersion": "Mac",
+ "clientType": "browser",
+ "clientCode": "CM",
+ "clientName": "Chrome Mobile iOS",
+ "clientVersion": "84.0",
+ "clientEngine": "WebKit",
+ "clientEngineVersion": "605.1.15",
+ "deviceName": "smartphone",
+ "deviceBrand": "Google",
+ "deviceModel": "Nexus 5",
+ "countryCode": "US",
+ "countryName": "United States"
+ }
},
"user": {
"description": "User",
@@ -8516,7 +8860,33 @@
"prefs",
"targets",
"accessedAt"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "John Doe",
+ "password": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE",
+ "hash": "argon2",
+ "hashOptions": {},
+ "registration": "2020-10-15T06:38:00.000+00:00",
+ "status": true,
+ "labels": [
+ "vip"
+ ],
+ "passwordUpdate": "2020-10-15T06:38:00.000+00:00",
+ "email": "john@appwrite.io",
+ "phone": "+4930901820",
+ "emailVerification": true,
+ "phoneVerification": true,
+ "mfa": true,
+ "prefs": {
+ "theme": "pink",
+ "timezone": "UTC"
+ },
+ "targets": [],
+ "accessedAt": "2020-10-15T06:38:00.000+00:00"
+ }
},
"algoMd5": {
"description": "AlgoMD5",
@@ -8530,7 +8900,10 @@
},
"required": [
"type"
- ]
+ ],
+ "example": {
+ "type": "md5"
+ }
},
"algoSha": {
"description": "AlgoSHA",
@@ -8544,7 +8917,10 @@
},
"required": [
"type"
- ]
+ ],
+ "example": {
+ "type": "sha"
+ }
},
"algoPhpass": {
"description": "AlgoPHPass",
@@ -8558,7 +8934,10 @@
},
"required": [
"type"
- ]
+ ],
+ "example": {
+ "type": "phpass"
+ }
},
"algoBcrypt": {
"description": "AlgoBcrypt",
@@ -8572,7 +8951,10 @@
},
"required": [
"type"
- ]
+ ],
+ "example": {
+ "type": "bcrypt"
+ }
},
"algoScrypt": {
"description": "AlgoScrypt",
@@ -8614,7 +8996,14 @@
"costMemory",
"costParallel",
"length"
- ]
+ ],
+ "example": {
+ "type": "scrypt",
+ "costCpu": 8,
+ "costMemory": 14,
+ "costParallel": 1,
+ "length": 64
+ }
},
"algoScryptModified": {
"description": "AlgoScryptModified",
@@ -8646,7 +9035,13 @@
"salt",
"saltSeparator",
"signerKey"
- ]
+ ],
+ "example": {
+ "type": "scryptMod",
+ "salt": "UxLMreBr6tYyjQ==",
+ "saltSeparator": "Bw==",
+ "signerKey": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ=="
+ }
},
"algoArgon2": {
"description": "AlgoArgon2",
@@ -8681,12 +9076,23 @@
"memoryCost",
"timeCost",
"threads"
- ]
+ ],
+ "example": {
+ "type": "argon2",
+ "memoryCost": 65536,
+ "timeCost": 4,
+ "threads": 3
+ }
},
"preferences": {
"description": "Preferences",
"type": "object",
- "additionalProperties": true
+ "additionalProperties": true,
+ "example": {
+ "language": "en",
+ "timezone": "UTC",
+ "darkTheme": true
+ }
},
"session": {
"description": "Session",
@@ -8873,7 +9279,40 @@
"factors",
"secret",
"mfaUpdatedAt"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5bb8c16897e",
+ "expire": "2020-10-15T06:38:00.000+00:00",
+ "provider": "email",
+ "providerUid": "user@example.com",
+ "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
+ "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00",
+ "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
+ "ip": "127.0.0.1",
+ "osCode": "Mac",
+ "osName": "Mac",
+ "osVersion": "Mac",
+ "clientType": "browser",
+ "clientCode": "CM",
+ "clientName": "Chrome Mobile iOS",
+ "clientVersion": "84.0",
+ "clientEngine": "WebKit",
+ "clientEngineVersion": "605.1.15",
+ "deviceName": "smartphone",
+ "deviceBrand": "Google",
+ "deviceModel": "Nexus 5",
+ "countryCode": "US",
+ "countryName": "United States",
+ "current": true,
+ "factors": [
+ "email"
+ ],
+ "secret": "5e5bb8c16897e",
+ "mfaUpdatedAt": "2020-10-15T06:38:00.000+00:00"
+ }
},
"identity": {
"description": "Identity",
@@ -8941,7 +9380,19 @@
"providerAccessToken",
"providerAccessTokenExpiry",
"providerRefreshToken"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5bb8c16897e",
+ "provider": "email",
+ "providerUid": "5e5bb8c16897e",
+ "providerEmail": "user@example.com",
+ "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
+ "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00",
+ "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"
+ }
},
"token": {
"description": "Token",
@@ -8985,7 +9436,15 @@
"secret",
"expire",
"phrase"
- ]
+ ],
+ "example": {
+ "$id": "bb8ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5ea5c168bb8",
+ "secret": "",
+ "expire": "2020-10-15T06:38:00.000+00:00",
+ "phrase": "Golden Fox"
+ }
},
"jwt": {
"description": "JWT",
@@ -8999,7 +9458,10 @@
},
"required": [
"jwt"
- ]
+ ],
+ "example": {
+ "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
+ }
},
"locale": {
"description": "Locale",
@@ -9049,7 +9511,16 @@
"continent",
"eu",
"currency"
- ]
+ ],
+ "example": {
+ "ip": "127.0.0.1",
+ "countryCode": "US",
+ "country": "United States",
+ "continentCode": "NA",
+ "continent": "North America",
+ "eu": false,
+ "currency": "USD"
+ }
},
"localeCode": {
"description": "LocaleCode",
@@ -9069,7 +9540,11 @@
"required": [
"code",
"name"
- ]
+ ],
+ "example": {
+ "code": "en-us",
+ "name": "US"
+ }
},
"file": {
"description": "File",
@@ -9151,7 +9626,22 @@
"sizeOriginal",
"chunksTotal",
"chunksUploaded"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "bucketId": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "$permissions": [
+ "read(\"any\")"
+ ],
+ "name": "Pink.png",
+ "signature": "5d529fd02b544198ae075bd57c1762bb",
+ "mimeType": "image\/png",
+ "sizeOriginal": 17890,
+ "chunksTotal": 17890,
+ "chunksUploaded": 17890
+ }
},
"team": {
"description": "Team",
@@ -9202,7 +9692,18 @@
"name",
"total",
"prefs"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "VIP",
+ "total": 7,
+ "prefs": {
+ "theme": "pink",
+ "timezone": "UTC"
+ }
+ }
},
"membership": {
"description": "Membership",
@@ -9293,7 +9794,24 @@
"confirm",
"mfa",
"roles"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5ea5c16897e",
+ "userName": "John Doe",
+ "userEmail": "john@appwrite.io",
+ "teamId": "5e5ea5c16897e",
+ "teamName": "VIP",
+ "invited": "2020-10-15T06:38:00.000+00:00",
+ "joined": "2020-10-15T06:38:00.000+00:00",
+ "confirm": false,
+ "mfa": false,
+ "roles": [
+ "owner"
+ ]
+ }
},
"execution": {
"description": "Execution",
@@ -9329,6 +9847,11 @@
"description": "Function ID.",
"x-example": "5e5ea6g16897e"
},
+ "deploymentId": {
+ "type": "string",
+ "description": "Function's deployment ID used to create the execution.",
+ "x-example": "5e5ea5c16897e"
+ },
"trigger": {
"type": "string",
"description": "The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.",
@@ -9413,6 +9936,7 @@
"$updatedAt",
"$permissions",
"functionId",
+ "deploymentId",
"trigger",
"status",
"requestMethod",
@@ -9424,7 +9948,37 @@
"logs",
"errors",
"duration"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "$permissions": [
+ "any"
+ ],
+ "functionId": "5e5ea6g16897e",
+ "deploymentId": "5e5ea5c16897e",
+ "trigger": "http",
+ "status": "processing",
+ "requestMethod": "GET",
+ "requestPath": "\/articles?id=5",
+ "requestHeaders": [
+ {
+ "Content-Type": "application\/json"
+ }
+ ],
+ "responseStatusCode": 200,
+ "responseBody": "",
+ "responseHeaders": [
+ {
+ "Content-Type": "application\/json"
+ }
+ ],
+ "logs": "",
+ "errors": "",
+ "duration": 0.4,
+ "scheduledAt": "2020-10-15T06:38:00.000+00:00"
+ }
},
"country": {
"description": "Country",
@@ -9444,7 +9998,11 @@
"required": [
"name",
"code"
- ]
+ ],
+ "example": {
+ "name": "United States",
+ "code": "US"
+ }
},
"continent": {
"description": "Continent",
@@ -9464,7 +10022,11 @@
"required": [
"name",
"code"
- ]
+ ],
+ "example": {
+ "name": "Europe",
+ "code": "EU"
+ }
},
"language": {
"description": "Language",
@@ -9490,7 +10052,12 @@
"name",
"code",
"nativeName"
- ]
+ ],
+ "example": {
+ "name": "Italian",
+ "code": "it",
+ "nativeName": "Italiano"
+ }
},
"currency": {
"description": "Currency",
@@ -9542,7 +10109,16 @@
"rounding",
"code",
"namePlural"
- ]
+ ],
+ "example": {
+ "symbol": "$",
+ "name": "US dollar",
+ "symbolNative": "$",
+ "decimalDigits": 2,
+ "rounding": 0,
+ "code": "USD",
+ "namePlural": "US dollars"
+ }
},
"phone": {
"description": "Phone",
@@ -9568,7 +10144,12 @@
"code",
"countryCode",
"countryName"
- ]
+ ],
+ "example": {
+ "code": "+1",
+ "countryCode": "US",
+ "countryName": "United States"
+ }
},
"headers": {
"description": "Headers",
@@ -9588,7 +10169,11 @@
"required": [
"name",
"value"
- ]
+ ],
+ "example": {
+ "name": "Content-Type",
+ "value": "application\/json"
+ }
},
"mfaChallenge": {
"description": "MFA Challenge",
@@ -9620,7 +10205,13 @@
"$createdAt",
"userId",
"expire"
- ]
+ ],
+ "example": {
+ "$id": "bb8ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5ea5c168bb8",
+ "expire": "2020-10-15T06:38:00.000+00:00"
+ }
},
"mfaRecoveryCodes": {
"description": "MFA Recovery Codes",
@@ -9640,7 +10231,13 @@
},
"required": [
"recoveryCodes"
- ]
+ ],
+ "example": {
+ "recoveryCodes": [
+ "a3kf0-s0cl2",
+ "s0co1-as98s"
+ ]
+ }
},
"mfaType": {
"description": "MFAType",
@@ -9660,7 +10257,11 @@
"required": [
"secret",
"uri"
- ]
+ ],
+ "example": {
+ "secret": true,
+ "uri": true
+ }
},
"mfaFactors": {
"description": "MFAFactors",
@@ -9692,7 +10293,13 @@
"phone",
"email",
"recoveryCode"
- ]
+ ],
+ "example": {
+ "totp": true,
+ "phone": true,
+ "email": true,
+ "recoveryCode": true
+ }
},
"subscriber": {
"description": "Subscriber",
@@ -9766,7 +10373,27 @@
"userName",
"topicId",
"providerType"
- ]
+ ],
+ "example": {
+ "$id": "259125845563242502",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "targetId": "259125845563242502",
+ "target": {
+ "$id": "259125845563242502",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "providerType": "email",
+ "providerId": "259125845563242502",
+ "name": "ageon-app-email",
+ "identifier": "random-mail@email.org",
+ "userId": "5e5ea5c16897e"
+ },
+ "userId": "5e5ea5c16897e",
+ "userName": "Aegon Targaryen",
+ "topicId": "259125845563242502",
+ "providerType": "email"
+ }
},
"target": {
"description": "Target",
@@ -9828,7 +10455,18 @@
"providerType",
"identifier",
"expired"
- ]
+ ],
+ "example": {
+ "$id": "259125845563242502",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "Apple iPhone 12",
+ "userId": "259125845563242502",
+ "providerId": "259125845563242502",
+ "providerType": "email",
+ "identifier": "token",
+ "expired": false
+ }
}
},
"securitySchemes": {
diff --git a/app/config/specs/open-api3-1.7.x-console.json b/app/config/specs/open-api3-1.7.x-console.json
index 19ce78915c..2554b7282c 100644
--- a/app/config/specs/open-api3-1.7.x-console.json
+++ b/app/config/specs/open-api3-1.7.x-console.json
@@ -1,7 +1,7 @@
{
"openapi": "3.0.0",
"info": {
- "version": "1.7.0",
+ "version": "1.7.4",
"title": "Appwrite",
"description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)",
"termsOfService": "https:\/\/appwrite.io\/policy\/terms",
@@ -2631,7 +2631,7 @@
"tags": [
"account"
],
- "description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).",
+ "description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n",
"responses": {
"201": {
"description": "Token",
@@ -2682,7 +2682,7 @@
"properties": {
"userId": {
"type": "string",
- "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
"x-example": ""
},
"email": {
@@ -2764,7 +2764,7 @@
"properties": {
"userId": {
"type": "string",
- "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
"x-example": ""
},
"email": {
@@ -2986,7 +2986,7 @@
"properties": {
"userId": {
"type": "string",
- "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.",
"x-example": ""
},
"phone": {
@@ -3445,7 +3445,7 @@
"parameters": [
{
"name": "code",
- "description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
+ "description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"schema": {
"type": "string",
@@ -3463,7 +3463,7 @@
"mastercard",
"naranja",
"targeta-shopping",
- "union-china-pay",
+ "unionpay",
"visa",
"mir",
"maestro",
@@ -3483,7 +3483,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
- "Union China Pay",
+ "Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -4359,7 +4359,7 @@
"x-appwrite": {
"method": "chat",
"group": "console",
- "weight": 308,
+ "weight": 310,
"cookies": false,
"type": "",
"deprecated": false,
@@ -4419,7 +4419,7 @@
"x-appwrite": {
"method": "getResource",
"group": null,
- "weight": 432,
+ "weight": 434,
"cookies": false,
"type": "",
"deprecated": false,
@@ -4494,7 +4494,7 @@
"x-appwrite": {
"method": "variables",
"group": "console",
- "weight": 307,
+ "weight": 309,
"cookies": false,
"type": "",
"deprecated": false,
@@ -4694,7 +4694,7 @@
"x-appwrite": {
"method": "getUsage",
"group": null,
- "weight": 119,
+ "weight": 121,
"cookies": false,
"type": "",
"deprecated": false,
@@ -8016,6 +8016,7 @@
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "documents.write",
"platforms": [
+ "console",
"client",
"server",
"server"
@@ -8024,10 +8025,9 @@
"methods": [
{
"name": "createDocument",
+ "desc": "Create document",
"auth": {
- "Session": [],
- "Key": [],
- "JWT": []
+ "Project": []
},
"parameters": [
"databaseId",
@@ -8048,7 +8048,33 @@
"model": "#\/components\/schemas\/document"
}
],
- "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console."
+ "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.",
+ "demo": "databases\/create-document.md"
+ },
+ {
+ "name": "createDocuments",
+ "desc": "Create documents",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "databaseId",
+ "collectionId",
+ "documents"
+ ],
+ "required": [
+ "databaseId",
+ "collectionId",
+ "documents"
+ ],
+ "responses": [
+ {
+ "code": 201,
+ "model": "#\/components\/schemas\/documentList"
+ }
+ ],
+ "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.",
+ "demo": "databases\/create-documents.md"
}
],
"auth": {
@@ -8123,7 +8149,7 @@
}
},
"put": {
- "summary": "Create or update documents",
+ "summary": "Upsert documents",
"operationId": "databasesUpsertDocuments",
"tags": [
"databases"
@@ -8144,7 +8170,7 @@
"x-appwrite": {
"method": "upsertDocuments",
"group": "documents",
- "weight": 116,
+ "weight": 118,
"cookies": false,
"type": "",
"deprecated": false,
@@ -8155,6 +8181,7 @@
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "documents.write",
"platforms": [
+ "console",
"server"
],
"packaging": false,
@@ -8204,7 +8231,10 @@
"type": "object"
}
}
- }
+ },
+ "required": [
+ "documents"
+ ]
}
}
}
@@ -8232,7 +8262,7 @@
"x-appwrite": {
"method": "updateDocuments",
"group": "documents",
- "weight": 115,
+ "weight": 117,
"cookies": false,
"type": "",
"deprecated": false,
@@ -8243,6 +8273,7 @@
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "documents.write",
"platforms": [
+ "console",
"server"
],
"packaging": false,
@@ -8325,7 +8356,7 @@
"x-appwrite": {
"method": "deleteDocuments",
"group": "documents",
- "weight": 118,
+ "weight": 120,
"cookies": false,
"type": "",
"deprecated": false,
@@ -8336,6 +8367,7 @@
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "documents.write",
"platforms": [
+ "console",
"server"
],
"packaging": false,
@@ -8718,7 +8750,7 @@
"x-appwrite": {
"method": "deleteDocument",
"group": "documents",
- "weight": 117,
+ "weight": 119,
"cookies": false,
"type": "",
"deprecated": false,
@@ -8872,6 +8904,236 @@
]
}
},
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": {
+ "patch": {
+ "summary": "Decrement document attribute",
+ "operationId": "databasesDecrementDocumentAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Decrement a specific attribute of a document by a given value.",
+ "responses": {
+ "200": {
+ "description": "Document",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/document"
+ }
+ }
+ }
+ }
+ },
+ "x-appwrite": {
+ "method": "decrementDocumentAttribute",
+ "group": "documents",
+ "weight": 116,
+ "cookies": false,
+ "type": "",
+ "deprecated": false,
+ "demo": "databases\/decrement-document-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/decrement-document-attribute.md",
+ "rate-limit": 120,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": "documents.write",
+ "platforms": [
+ "console",
+ "server",
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "documentId",
+ "description": "Document ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "attribute",
+ "description": "Attribute key.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "number",
+ "description": "Value to decrement the attribute by. The value must be a number.",
+ "x-example": null
+ },
+ "min": {
+ "type": "number",
+ "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.",
+ "x-example": null
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": {
+ "patch": {
+ "summary": "Increment document attribute",
+ "operationId": "databasesIncrementDocumentAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Increment a specific attribute of a document by a given value.",
+ "responses": {
+ "200": {
+ "description": "Document",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/document"
+ }
+ }
+ }
+ }
+ },
+ "x-appwrite": {
+ "method": "incrementDocumentAttribute",
+ "group": "documents",
+ "weight": 115,
+ "cookies": false,
+ "type": "",
+ "deprecated": false,
+ "demo": "databases\/increment-document-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/increment-document-attribute.md",
+ "rate-limit": 120,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": "documents.write",
+ "platforms": [
+ "console",
+ "server",
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "documentId",
+ "description": "Document ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "attribute",
+ "description": "Attribute key.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "number",
+ "description": "Value to increment the attribute by. The value must be a number.",
+ "x-example": null
+ },
+ "max": {
+ "type": "number",
+ "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.",
+ "x-example": null
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"\/databases\/{databaseId}\/collections\/{collectionId}\/indexes": {
"get": {
"summary": "List indexes",
@@ -9339,7 +9601,7 @@
"x-appwrite": {
"method": "getCollectionUsage",
"group": null,
- "weight": 121,
+ "weight": 123,
"cookies": false,
"type": "",
"deprecated": false,
@@ -9504,7 +9766,7 @@
"x-appwrite": {
"method": "getDatabaseUsage",
"group": null,
- "weight": 120,
+ "weight": 122,
"cookies": false,
"type": "",
"deprecated": false,
@@ -9586,7 +9848,7 @@
"x-appwrite": {
"method": "list",
"group": "functions",
- "weight": 376,
+ "weight": 378,
"cookies": false,
"type": "",
"deprecated": false,
@@ -9659,7 +9921,7 @@
"x-appwrite": {
"method": "create",
"group": "functions",
- "weight": 373,
+ "weight": 375,
"cookies": false,
"type": "",
"deprecated": false,
@@ -9741,6 +10003,7 @@
"dart-3.1",
"dart-3.3",
"dart-3.5",
+ "dart-3.8",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@@ -9766,7 +10029,8 @@
"static-1",
"flutter-3.24",
"flutter-3.27",
- "flutter-3.29"
+ "flutter-3.29",
+ "flutter-3.32"
],
"x-enum-name": null,
"x-enum-keys": []
@@ -9890,7 +10154,7 @@
"x-appwrite": {
"method": "listRuntimes",
"group": "runtimes",
- "weight": 378,
+ "weight": 380,
"cookies": false,
"type": "",
"deprecated": false,
@@ -9939,7 +10203,7 @@
"x-appwrite": {
"method": "listSpecifications",
"group": "runtimes",
- "weight": 379,
+ "weight": 381,
"cookies": false,
"type": "",
"deprecated": false,
@@ -9989,7 +10253,7 @@
"x-appwrite": {
"method": "listTemplates",
"group": "templates",
- "weight": 402,
+ "weight": 404,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10089,7 +10353,7 @@
"x-appwrite": {
"method": "getTemplate",
"group": "templates",
- "weight": 401,
+ "weight": 403,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10149,7 +10413,7 @@
"x-appwrite": {
"method": "listUsage",
"group": null,
- "weight": 395,
+ "weight": 397,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10221,7 +10485,7 @@
"x-appwrite": {
"method": "get",
"group": "functions",
- "weight": 374,
+ "weight": 376,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10280,7 +10544,7 @@
"x-appwrite": {
"method": "update",
"group": "functions",
- "weight": 375,
+ "weight": 377,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10369,6 +10633,7 @@
"dart-3.1",
"dart-3.3",
"dart-3.5",
+ "dart-3.8",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@@ -10394,7 +10659,8 @@
"static-1",
"flutter-3.24",
"flutter-3.27",
- "flutter-3.29"
+ "flutter-3.29",
+ "flutter-3.32"
],
"x-enum-name": null,
"x-enum-keys": []
@@ -10508,7 +10774,7 @@
"x-appwrite": {
"method": "delete",
"group": "functions",
- "weight": 377,
+ "weight": 379,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10569,7 +10835,7 @@
"x-appwrite": {
"method": "updateFunctionDeployment",
"group": "functions",
- "weight": 382,
+ "weight": 384,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10649,7 +10915,7 @@
"x-appwrite": {
"method": "listDeployments",
"group": "deployments",
- "weight": 383,
+ "weight": 385,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10732,7 +10998,7 @@
"x-appwrite": {
"method": "createDeployment",
"group": "deployments",
- "weight": 380,
+ "weight": 382,
"cookies": false,
"type": "upload",
"deprecated": false,
@@ -10828,7 +11094,7 @@
"x-appwrite": {
"method": "createDuplicateDeployment",
"group": "deployments",
- "weight": 388,
+ "weight": 390,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10913,7 +11179,7 @@
"x-appwrite": {
"method": "createTemplateDeployment",
"group": "deployments",
- "weight": 385,
+ "weight": 387,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11016,7 +11282,7 @@
"x-appwrite": {
"method": "createVcsDeployment",
"group": "deployments",
- "weight": 386,
+ "weight": 388,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11113,7 +11379,7 @@
"x-appwrite": {
"method": "getDeployment",
"group": "deployments",
- "weight": 381,
+ "weight": 383,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11175,7 +11441,7 @@
"x-appwrite": {
"method": "deleteDeployment",
"group": "deployments",
- "weight": 384,
+ "weight": 386,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11239,7 +11505,7 @@
"x-appwrite": {
"method": "getDeploymentDownload",
"group": "deployments",
- "weight": 387,
+ "weight": 389,
"cookies": false,
"type": "location",
"deprecated": false,
@@ -11329,7 +11595,7 @@
"x-appwrite": {
"method": "updateDeploymentStatus",
"group": "deployments",
- "weight": 389,
+ "weight": 391,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11400,7 +11666,7 @@
"x-appwrite": {
"method": "listExecutions",
"group": "executions",
- "weight": 392,
+ "weight": 394,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11475,7 +11741,7 @@
"x-appwrite": {
"method": "createExecution",
"group": "executions",
- "weight": 390,
+ "weight": 392,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11558,7 +11824,7 @@
"scheduledAt": {
"type": "string",
"description": "Scheduled execution time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.",
- "x-example": null
+ "x-example": ""
}
}
}
@@ -11590,7 +11856,7 @@
"x-appwrite": {
"method": "getExecution",
"group": "executions",
- "weight": 391,
+ "weight": 393,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11655,7 +11921,7 @@
"x-appwrite": {
"method": "deleteExecution",
"group": "executions",
- "weight": 393,
+ "weight": 395,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11726,7 +11992,7 @@
"x-appwrite": {
"method": "getUsage",
"group": null,
- "weight": 394,
+ "weight": 396,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11808,7 +12074,7 @@
"x-appwrite": {
"method": "listVariables",
"group": "variables",
- "weight": 398,
+ "weight": 400,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11867,7 +12133,7 @@
"x-appwrite": {
"method": "createVariable",
"group": "variables",
- "weight": 396,
+ "weight": 398,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11958,7 +12224,7 @@
"x-appwrite": {
"method": "getVariable",
"group": "variables",
- "weight": 397,
+ "weight": 399,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12027,7 +12293,7 @@
"x-appwrite": {
"method": "updateVariable",
"group": "variables",
- "weight": 399,
+ "weight": 401,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12118,7 +12384,7 @@
"x-appwrite": {
"method": "deleteVariable",
"group": "variables",
- "weight": 400,
+ "weight": 402,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12189,7 +12455,7 @@
"x-appwrite": {
"method": "query",
"group": "graphql",
- "weight": 306,
+ "weight": 308,
"cookies": false,
"type": "graphql",
"deprecated": false,
@@ -12241,7 +12507,7 @@
"x-appwrite": {
"method": "mutation",
"group": "graphql",
- "weight": 305,
+ "weight": 307,
"cookies": false,
"type": "graphql",
"deprecated": false,
@@ -12293,7 +12559,7 @@
"x-appwrite": {
"method": "get",
"group": "health",
- "weight": 130,
+ "weight": 132,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12342,7 +12608,7 @@
"x-appwrite": {
"method": "getAntivirus",
"group": "health",
- "weight": 151,
+ "weight": 153,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12391,7 +12657,7 @@
"x-appwrite": {
"method": "getCache",
"group": "health",
- "weight": 133,
+ "weight": 135,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12440,7 +12706,7 @@
"x-appwrite": {
"method": "getCertificate",
"group": "health",
- "weight": 138,
+ "weight": 140,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12500,7 +12766,7 @@
"x-appwrite": {
"method": "getDB",
"group": "health",
- "weight": 132,
+ "weight": 134,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12549,7 +12815,7 @@
"x-appwrite": {
"method": "getPubSub",
"group": "health",
- "weight": 134,
+ "weight": 136,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12598,7 +12864,7 @@
"x-appwrite": {
"method": "getQueueBuilds",
"group": "queue",
- "weight": 140,
+ "weight": 142,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12660,7 +12926,7 @@
"x-appwrite": {
"method": "getQueueCertificates",
"group": "queue",
- "weight": 139,
+ "weight": 141,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12722,7 +12988,7 @@
"x-appwrite": {
"method": "getQueueDatabases",
"group": "queue",
- "weight": 141,
+ "weight": 143,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12795,7 +13061,7 @@
"x-appwrite": {
"method": "getQueueDeletes",
"group": "queue",
- "weight": 142,
+ "weight": 144,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12857,7 +13123,7 @@
"x-appwrite": {
"method": "getFailedJobs",
"group": "queue",
- "weight": 152,
+ "weight": 154,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12945,7 +13211,7 @@
"x-appwrite": {
"method": "getQueueFunctions",
"group": "queue",
- "weight": 146,
+ "weight": 148,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13007,7 +13273,7 @@
"x-appwrite": {
"method": "getQueueLogs",
"group": "queue",
- "weight": 137,
+ "weight": 139,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13069,7 +13335,7 @@
"x-appwrite": {
"method": "getQueueMails",
"group": "queue",
- "weight": 143,
+ "weight": 145,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13131,7 +13397,7 @@
"x-appwrite": {
"method": "getQueueMessaging",
"group": "queue",
- "weight": 144,
+ "weight": 146,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13193,7 +13459,7 @@
"x-appwrite": {
"method": "getQueueMigrations",
"group": "queue",
- "weight": 145,
+ "weight": 147,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13255,7 +13521,7 @@
"x-appwrite": {
"method": "getQueueStatsResources",
"group": "queue",
- "weight": 147,
+ "weight": 149,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13317,7 +13583,7 @@
"x-appwrite": {
"method": "getQueueUsage",
"group": "queue",
- "weight": 148,
+ "weight": 150,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13379,7 +13645,7 @@
"x-appwrite": {
"method": "getQueueWebhooks",
"group": "queue",
- "weight": 136,
+ "weight": 138,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13441,7 +13707,7 @@
"x-appwrite": {
"method": "getStorage",
"group": "storage",
- "weight": 150,
+ "weight": 152,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13490,7 +13756,7 @@
"x-appwrite": {
"method": "getStorageLocal",
"group": "storage",
- "weight": 149,
+ "weight": 151,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13539,7 +13805,7 @@
"x-appwrite": {
"method": "getTime",
"group": "health",
- "weight": 135,
+ "weight": 137,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13588,7 +13854,7 @@
"x-appwrite": {
"method": "get",
"group": null,
- "weight": 122,
+ "weight": 124,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13640,7 +13906,7 @@
"x-appwrite": {
"method": "listCodes",
"group": null,
- "weight": 123,
+ "weight": 125,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13692,7 +13958,7 @@
"x-appwrite": {
"method": "listContinents",
"group": null,
- "weight": 127,
+ "weight": 129,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13744,7 +14010,7 @@
"x-appwrite": {
"method": "listCountries",
"group": null,
- "weight": 124,
+ "weight": 126,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13796,7 +14062,7 @@
"x-appwrite": {
"method": "listCountriesEU",
"group": null,
- "weight": 125,
+ "weight": 127,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13848,7 +14114,7 @@
"x-appwrite": {
"method": "listCountriesPhones",
"group": null,
- "weight": 126,
+ "weight": 128,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13900,7 +14166,7 @@
"x-appwrite": {
"method": "listCurrencies",
"group": null,
- "weight": 128,
+ "weight": 130,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13952,7 +14218,7 @@
"x-appwrite": {
"method": "listLanguages",
"group": null,
- "weight": 129,
+ "weight": 131,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14004,7 +14270,7 @@
"x-appwrite": {
"method": "listMessages",
"group": "messages",
- "weight": 360,
+ "weight": 362,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14080,7 +14346,7 @@
"x-appwrite": {
"method": "createEmail",
"group": "messages",
- "weight": 357,
+ "weight": 359,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14224,7 +14490,7 @@
"x-appwrite": {
"method": "updateEmail",
"group": "messages",
- "weight": 364,
+ "weight": 366,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14370,7 +14636,7 @@
"x-appwrite": {
"method": "createPush",
"group": "messages",
- "weight": 359,
+ "weight": 361,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14544,7 +14810,7 @@
"x-appwrite": {
"method": "updatePush",
"group": "messages",
- "weight": 366,
+ "weight": 368,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14722,7 +14988,7 @@
"x-appwrite": {
"method": "createSms",
"group": "messages",
- "weight": 358,
+ "weight": 360,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14831,7 +15097,7 @@
"x-appwrite": {
"method": "updateSms",
"group": "messages",
- "weight": 365,
+ "weight": 367,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14943,7 +15209,7 @@
"x-appwrite": {
"method": "getMessage",
"group": "messages",
- "weight": 363,
+ "weight": 365,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14996,7 +15262,7 @@
"x-appwrite": {
"method": "delete",
"group": "messages",
- "weight": 367,
+ "weight": 369,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15058,7 +15324,7 @@
"x-appwrite": {
"method": "listMessageLogs",
"group": "logs",
- "weight": 361,
+ "weight": 363,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15133,7 +15399,7 @@
"x-appwrite": {
"method": "listTargets",
"group": "messages",
- "weight": 362,
+ "weight": 364,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15208,7 +15474,7 @@
"x-appwrite": {
"method": "listProviders",
"group": "providers",
- "weight": 332,
+ "weight": 334,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15284,7 +15550,7 @@
"x-appwrite": {
"method": "createApnsProvider",
"group": "providers",
- "weight": 331,
+ "weight": 333,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15389,7 +15655,7 @@
"x-appwrite": {
"method": "updateApnsProvider",
"group": "providers",
- "weight": 344,
+ "weight": 346,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15497,7 +15763,7 @@
"x-appwrite": {
"method": "createFcmProvider",
"group": "providers",
- "weight": 330,
+ "weight": 332,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15582,7 +15848,7 @@
"x-appwrite": {
"method": "updateFcmProvider",
"group": "providers",
- "weight": 343,
+ "weight": 345,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15670,7 +15936,7 @@
"x-appwrite": {
"method": "createMailgunProvider",
"group": "providers",
- "weight": 322,
+ "weight": 324,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15785,7 +16051,7 @@
"x-appwrite": {
"method": "updateMailgunProvider",
"group": "providers",
- "weight": 335,
+ "weight": 337,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15903,7 +16169,7 @@
"x-appwrite": {
"method": "createMsg91Provider",
"group": "providers",
- "weight": 325,
+ "weight": 327,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15998,7 +16264,7 @@
"x-appwrite": {
"method": "updateMsg91Provider",
"group": "providers",
- "weight": 338,
+ "weight": 340,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16096,7 +16362,7 @@
"x-appwrite": {
"method": "createSendgridProvider",
"group": "providers",
- "weight": 323,
+ "weight": 325,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16201,7 +16467,7 @@
"x-appwrite": {
"method": "updateSendgridProvider",
"group": "providers",
- "weight": 336,
+ "weight": 338,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16309,7 +16575,7 @@
"x-appwrite": {
"method": "createSmtpProvider",
"group": "providers",
- "weight": 324,
+ "weight": 326,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16452,7 +16718,7 @@
"x-appwrite": {
"method": "updateSmtpProvider",
"group": "providers",
- "weight": 337,
+ "weight": 339,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16597,7 +16863,7 @@
"x-appwrite": {
"method": "createTelesignProvider",
"group": "providers",
- "weight": 326,
+ "weight": 328,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16692,7 +16958,7 @@
"x-appwrite": {
"method": "updateTelesignProvider",
"group": "providers",
- "weight": 339,
+ "weight": 341,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16790,7 +17056,7 @@
"x-appwrite": {
"method": "createTextmagicProvider",
"group": "providers",
- "weight": 327,
+ "weight": 329,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16885,7 +17151,7 @@
"x-appwrite": {
"method": "updateTextmagicProvider",
"group": "providers",
- "weight": 340,
+ "weight": 342,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16983,7 +17249,7 @@
"x-appwrite": {
"method": "createTwilioProvider",
"group": "providers",
- "weight": 328,
+ "weight": 330,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17078,7 +17344,7 @@
"x-appwrite": {
"method": "updateTwilioProvider",
"group": "providers",
- "weight": 341,
+ "weight": 343,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17176,7 +17442,7 @@
"x-appwrite": {
"method": "createVonageProvider",
"group": "providers",
- "weight": 329,
+ "weight": 331,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17271,7 +17537,7 @@
"x-appwrite": {
"method": "updateVonageProvider",
"group": "providers",
- "weight": 342,
+ "weight": 344,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17369,7 +17635,7 @@
"x-appwrite": {
"method": "getProvider",
"group": "providers",
- "weight": 334,
+ "weight": 336,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17422,7 +17688,7 @@
"x-appwrite": {
"method": "deleteProvider",
"group": "providers",
- "weight": 345,
+ "weight": 347,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17484,7 +17750,7 @@
"x-appwrite": {
"method": "listProviderLogs",
"group": "providers",
- "weight": 333,
+ "weight": 335,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17559,7 +17825,7 @@
"x-appwrite": {
"method": "listSubscriberLogs",
"group": "subscribers",
- "weight": 354,
+ "weight": 356,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17634,7 +17900,7 @@
"x-appwrite": {
"method": "listTopics",
"group": "topics",
- "weight": 347,
+ "weight": 349,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17708,7 +17974,7 @@
"x-appwrite": {
"method": "createTopic",
"group": "topics",
- "weight": 346,
+ "weight": 348,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17791,7 +18057,7 @@
"x-appwrite": {
"method": "getTopic",
"group": "topics",
- "weight": 349,
+ "weight": 351,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17851,7 +18117,7 @@
"x-appwrite": {
"method": "updateTopic",
"group": "topics",
- "weight": 350,
+ "weight": 352,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17928,7 +18194,7 @@
"x-appwrite": {
"method": "deleteTopic",
"group": "topics",
- "weight": 351,
+ "weight": 353,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17990,7 +18256,7 @@
"x-appwrite": {
"method": "listTopicLogs",
"group": "topics",
- "weight": 348,
+ "weight": 350,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18065,7 +18331,7 @@
"x-appwrite": {
"method": "listSubscribers",
"group": "subscribers",
- "weight": 353,
+ "weight": 355,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18149,7 +18415,7 @@
"x-appwrite": {
"method": "createSubscriber",
"group": "subscribers",
- "weight": 352,
+ "weight": 354,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18239,7 +18505,7 @@
"x-appwrite": {
"method": "getSubscriber",
"group": "subscribers",
- "weight": 355,
+ "weight": 357,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18302,7 +18568,7 @@
"x-appwrite": {
"method": "deleteSubscriber",
"group": "subscribers",
- "weight": 356,
+ "weight": 358,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18377,7 +18643,7 @@
"x-appwrite": {
"method": "list",
"group": null,
- "weight": 314,
+ "weight": 316,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18451,7 +18717,7 @@
"x-appwrite": {
"method": "createAppwriteMigration",
"group": null,
- "weight": 309,
+ "weight": 311,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18539,7 +18805,7 @@
"x-appwrite": {
"method": "getAppwriteReport",
"group": null,
- "weight": 316,
+ "weight": 318,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18632,7 +18898,7 @@
"x-appwrite": {
"method": "createCsvMigration",
"group": null,
- "weight": 313,
+ "weight": 315,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18711,7 +18977,7 @@
"x-appwrite": {
"method": "createFirebaseMigration",
"group": null,
- "weight": 310,
+ "weight": 312,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18787,7 +19053,7 @@
"x-appwrite": {
"method": "getFirebaseReport",
"group": null,
- "weight": 317,
+ "weight": 319,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18859,7 +19125,7 @@
"x-appwrite": {
"method": "createNHostMigration",
"group": null,
- "weight": 312,
+ "weight": 314,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18970,7 +19236,7 @@
"x-appwrite": {
"method": "getNHostReport",
"group": null,
- "weight": 319,
+ "weight": 321,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19103,7 +19369,7 @@
"x-appwrite": {
"method": "createSupabaseMigration",
"group": null,
- "weight": 311,
+ "weight": 313,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19208,7 +19474,7 @@
"x-appwrite": {
"method": "getSupabaseReport",
"group": null,
- "weight": 318,
+ "weight": 320,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19332,7 +19598,7 @@
"x-appwrite": {
"method": "get",
"group": null,
- "weight": 315,
+ "weight": 317,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19390,7 +19656,7 @@
"x-appwrite": {
"method": "retry",
"group": null,
- "weight": 320,
+ "weight": 322,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19441,7 +19707,7 @@
"x-appwrite": {
"method": "delete",
"group": null,
- "weight": 321,
+ "weight": 323,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19501,7 +19767,7 @@
"x-appwrite": {
"method": "getUsage",
"group": null,
- "weight": 200,
+ "weight": 202,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19589,7 +19855,7 @@
"x-appwrite": {
"method": "listVariables",
"group": null,
- "weight": 202,
+ "weight": 204,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19635,7 +19901,7 @@
"x-appwrite": {
"method": "createVariable",
"group": null,
- "weight": 201,
+ "weight": 203,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19713,7 +19979,7 @@
"x-appwrite": {
"method": "getVariable",
"group": null,
- "weight": 203,
+ "weight": 205,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19771,7 +20037,7 @@
"x-appwrite": {
"method": "updateVariable",
"group": null,
- "weight": 204,
+ "weight": 206,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19851,7 +20117,7 @@
"x-appwrite": {
"method": "deleteVariable",
"group": null,
- "weight": 205,
+ "weight": 207,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19911,7 +20177,7 @@
"x-appwrite": {
"method": "list",
"group": "projects",
- "weight": 155,
+ "weight": 157,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19983,7 +20249,7 @@
"x-appwrite": {
"method": "create",
"group": "projects",
- "weight": 154,
+ "weight": 156,
"cookies": false,
"type": "",
"deprecated": false,
@@ -20117,7 +20383,7 @@
"x-appwrite": {
"method": "get",
"group": "projects",
- "weight": 156,
+ "weight": 158,
"cookies": false,
"type": "",
"deprecated": false,
@@ -20175,7 +20441,7 @@
"x-appwrite": {
"method": "update",
"group": "projects",
- "weight": 157,
+ "weight": 159,
"cookies": false,
"type": "",
"deprecated": false,
@@ -20290,7 +20556,7 @@
"x-appwrite": {
"method": "delete",
"group": "projects",
- "weight": 174,
+ "weight": 176,
"cookies": false,
"type": "",
"deprecated": false,
@@ -20350,7 +20616,7 @@
"x-appwrite": {
"method": "updateApiStatus",
"group": "projects",
- "weight": 161,
+ "weight": 163,
"cookies": false,
"type": "",
"deprecated": false,
@@ -20442,7 +20708,7 @@
"x-appwrite": {
"method": "updateApiStatusAll",
"group": "projects",
- "weight": 162,
+ "weight": 164,
"cookies": false,
"type": "",
"deprecated": false,
@@ -20521,7 +20787,7 @@
"x-appwrite": {
"method": "updateAuthDuration",
"group": "auth",
- "weight": 167,
+ "weight": 169,
"cookies": false,
"type": "",
"deprecated": false,
@@ -20600,7 +20866,7 @@
"x-appwrite": {
"method": "updateAuthLimit",
"group": "auth",
- "weight": 166,
+ "weight": 168,
"cookies": false,
"type": "",
"deprecated": false,
@@ -20679,7 +20945,7 @@
"x-appwrite": {
"method": "updateAuthSessionsLimit",
"group": "auth",
- "weight": 172,
+ "weight": 174,
"cookies": false,
"type": "",
"deprecated": false,
@@ -20758,7 +21024,7 @@
"x-appwrite": {
"method": "updateMembershipsPrivacy",
"group": "auth",
- "weight": 165,
+ "weight": 167,
"cookies": false,
"type": "",
"deprecated": false,
@@ -20849,7 +21115,7 @@
"x-appwrite": {
"method": "updateMockNumbers",
"group": "auth",
- "weight": 173,
+ "weight": 175,
"cookies": false,
"type": "",
"deprecated": false,
@@ -20931,7 +21197,7 @@
"x-appwrite": {
"method": "updateAuthPasswordDictionary",
"group": "auth",
- "weight": 170,
+ "weight": 172,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21010,7 +21276,7 @@
"x-appwrite": {
"method": "updateAuthPasswordHistory",
"group": "auth",
- "weight": 169,
+ "weight": 171,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21089,7 +21355,7 @@
"x-appwrite": {
"method": "updatePersonalDataCheck",
"group": "auth",
- "weight": 171,
+ "weight": 173,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21168,7 +21434,7 @@
"x-appwrite": {
"method": "updateSessionAlerts",
"group": "auth",
- "weight": 164,
+ "weight": 166,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21247,7 +21513,7 @@
"x-appwrite": {
"method": "updateAuthStatus",
"group": "auth",
- "weight": 168,
+ "weight": 170,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21347,7 +21613,7 @@
"x-appwrite": {
"method": "listDevKeys",
"group": "devKeys",
- "weight": 371,
+ "weight": 373,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21415,7 +21681,7 @@
"x-appwrite": {
"method": "createDevKey",
"group": "devKeys",
- "weight": 368,
+ "weight": 370,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21500,7 +21766,7 @@
"x-appwrite": {
"method": "getDevKey",
"group": "devKeys",
- "weight": 370,
+ "weight": 372,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21568,7 +21834,7 @@
"x-appwrite": {
"method": "updateDevKey",
"group": "devKeys",
- "weight": 369,
+ "weight": 371,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21654,7 +21920,7 @@
"x-appwrite": {
"method": "deleteDevKey",
"group": "devKeys",
- "weight": 372,
+ "weight": 374,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21724,7 +21990,7 @@
"x-appwrite": {
"method": "createJWT",
"group": "auth",
- "weight": 186,
+ "weight": 188,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21811,7 +22077,7 @@
"x-appwrite": {
"method": "listKeys",
"group": "keys",
- "weight": 182,
+ "weight": 184,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21869,7 +22135,7 @@
"x-appwrite": {
"method": "createKey",
"group": "keys",
- "weight": 181,
+ "weight": 183,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21962,7 +22228,7 @@
"x-appwrite": {
"method": "getKey",
"group": "keys",
- "weight": 183,
+ "weight": 185,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22030,7 +22296,7 @@
"x-appwrite": {
"method": "updateKey",
"group": "keys",
- "weight": 184,
+ "weight": 186,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22124,7 +22390,7 @@
"x-appwrite": {
"method": "deleteKey",
"group": "keys",
- "weight": 185,
+ "weight": 187,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22194,7 +22460,7 @@
"x-appwrite": {
"method": "updateOAuth2",
"group": "auth",
- "weight": 163,
+ "weight": 165,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22332,7 +22598,7 @@
"x-appwrite": {
"method": "listPlatforms",
"group": "platforms",
- "weight": 188,
+ "weight": 190,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22390,7 +22656,7 @@
"x-appwrite": {
"method": "createPlatform",
"group": "platforms",
- "weight": 187,
+ "weight": 189,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22509,7 +22775,7 @@
"x-appwrite": {
"method": "getPlatform",
"group": "platforms",
- "weight": 189,
+ "weight": 191,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22577,7 +22843,7 @@
"x-appwrite": {
"method": "updatePlatform",
"group": "platforms",
- "weight": 190,
+ "weight": 192,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22672,7 +22938,7 @@
"x-appwrite": {
"method": "deletePlatform",
"group": "platforms",
- "weight": 191,
+ "weight": 193,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22742,7 +23008,7 @@
"x-appwrite": {
"method": "updateServiceStatus",
"group": "projects",
- "weight": 159,
+ "weight": 161,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22843,7 +23109,7 @@
"x-appwrite": {
"method": "updateServiceStatusAll",
"group": "projects",
- "weight": 160,
+ "weight": 162,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22922,7 +23188,7 @@
"x-appwrite": {
"method": "updateSmtp",
"group": "templates",
- "weight": 192,
+ "weight": 194,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23040,7 +23306,7 @@
"x-appwrite": {
"method": "createSmtpTest",
"group": "templates",
- "weight": 193,
+ "weight": 195,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23171,7 +23437,7 @@
"x-appwrite": {
"method": "updateTeam",
"group": "projects",
- "weight": 158,
+ "weight": 160,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23250,7 +23516,7 @@
"x-appwrite": {
"method": "getEmailTemplate",
"group": "templates",
- "weight": 195,
+ "weight": 197,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23474,7 +23740,7 @@
"x-appwrite": {
"method": "updateEmailTemplate",
"group": "templates",
- "weight": 197,
+ "weight": 199,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23738,7 +24004,7 @@
"x-appwrite": {
"method": "deleteEmailTemplate",
"group": "templates",
- "weight": 199,
+ "weight": 201,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23964,7 +24230,7 @@
"x-appwrite": {
"method": "getSmsTemplate",
"group": "templates",
- "weight": 194,
+ "weight": 196,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24185,7 +24451,7 @@
"x-appwrite": {
"method": "updateSmsTemplate",
"group": "templates",
- "weight": 196,
+ "weight": 198,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24425,7 +24691,7 @@
"x-appwrite": {
"method": "deleteSmsTemplate",
"group": "templates",
- "weight": 198,
+ "weight": 200,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24648,7 +24914,7 @@
"x-appwrite": {
"method": "listWebhooks",
"group": "webhooks",
- "weight": 176,
+ "weight": 178,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24706,7 +24972,7 @@
"x-appwrite": {
"method": "createWebhook",
"group": "webhooks",
- "weight": 175,
+ "weight": 177,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24821,7 +25087,7 @@
"x-appwrite": {
"method": "getWebhook",
"group": "webhooks",
- "weight": 177,
+ "weight": 179,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24889,7 +25155,7 @@
"x-appwrite": {
"method": "updateWebhook",
"group": "webhooks",
- "weight": 178,
+ "weight": 180,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25005,7 +25271,7 @@
"x-appwrite": {
"method": "deleteWebhook",
"group": "webhooks",
- "weight": 180,
+ "weight": 182,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25075,7 +25341,7 @@
"x-appwrite": {
"method": "updateWebhookSignature",
"group": "webhooks",
- "weight": 179,
+ "weight": 181,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25145,7 +25411,7 @@
"x-appwrite": {
"method": "listRules",
"group": null,
- "weight": 292,
+ "weight": 294,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25219,7 +25485,7 @@
"x-appwrite": {
"method": "createAPIRule",
"group": null,
- "weight": 433,
+ "weight": 435,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25286,7 +25552,7 @@
"x-appwrite": {
"method": "createFunctionRule",
"group": null,
- "weight": 435,
+ "weight": 437,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25364,7 +25630,7 @@
"x-appwrite": {
"method": "createRedirectRule",
"group": null,
- "weight": 436,
+ "weight": 438,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25420,12 +25686,33 @@
"Temporary Redirect 307",
"Permanent Redirect 308"
]
+ },
+ "resourceId": {
+ "type": "string",
+ "description": "ID of parent resource.",
+ "x-example": ""
+ },
+ "resourceType": {
+ "type": "string",
+ "description": "Type of parent resource.",
+ "x-example": "site",
+ "enum": [
+ "site",
+ "function"
+ ],
+ "x-enum-name": "ProxyResourceType",
+ "x-enum-keys": [
+ "Site",
+ "Function"
+ ]
}
},
"required": [
"domain",
"url",
- "statusCode"
+ "statusCode",
+ "resourceId",
+ "resourceType"
]
}
}
@@ -25456,7 +25743,7 @@
"x-appwrite": {
"method": "createSiteRule",
"group": null,
- "weight": 434,
+ "weight": 436,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25534,7 +25821,7 @@
"x-appwrite": {
"method": "getRule",
"group": null,
- "weight": 293,
+ "weight": 295,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25585,7 +25872,7 @@
"x-appwrite": {
"method": "deleteRule",
"group": null,
- "weight": 294,
+ "weight": 296,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25645,7 +25932,7 @@
"x-appwrite": {
"method": "updateRuleVerification",
"group": null,
- "weight": 295,
+ "weight": 297,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25705,7 +25992,7 @@
"x-appwrite": {
"method": "list",
"group": "sites",
- "weight": 405,
+ "weight": 407,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25775,7 +26062,7 @@
"x-appwrite": {
"method": "create",
"group": "sites",
- "weight": 403,
+ "weight": 405,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25910,6 +26197,7 @@
"dart-3.1",
"dart-3.3",
"dart-3.5",
+ "dart-3.8",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@@ -25935,7 +26223,8 @@
"static-1",
"flutter-3.24",
"flutter-3.27",
- "flutter-3.29"
+ "flutter-3.29",
+ "flutter-3.32"
],
"x-enum-name": null,
"x-enum-keys": []
@@ -26022,7 +26311,7 @@
"x-appwrite": {
"method": "listFrameworks",
"group": "frameworks",
- "weight": 408,
+ "weight": 410,
"cookies": false,
"type": "",
"deprecated": false,
@@ -26071,7 +26360,7 @@
"x-appwrite": {
"method": "listSpecifications",
"group": "frameworks",
- "weight": 431,
+ "weight": 433,
"cookies": false,
"type": "",
"deprecated": false,
@@ -26121,7 +26410,7 @@
"x-appwrite": {
"method": "listTemplates",
"group": "templates",
- "weight": 427,
+ "weight": 429,
"cookies": false,
"type": "",
"deprecated": false,
@@ -26221,7 +26510,7 @@
"x-appwrite": {
"method": "getTemplate",
"group": "templates",
- "weight": 428,
+ "weight": 430,
"cookies": false,
"type": "",
"deprecated": false,
@@ -26281,7 +26570,7 @@
"x-appwrite": {
"method": "listUsage",
"group": null,
- "weight": 429,
+ "weight": 431,
"cookies": false,
"type": "",
"deprecated": false,
@@ -26353,7 +26642,7 @@
"x-appwrite": {
"method": "get",
"group": "sites",
- "weight": 404,
+ "weight": 406,
"cookies": false,
"type": "",
"deprecated": false,
@@ -26412,7 +26701,7 @@
"x-appwrite": {
"method": "update",
"group": "sites",
- "weight": 406,
+ "weight": 408,
"cookies": false,
"type": "",
"deprecated": false,
@@ -26554,6 +26843,7 @@
"dart-3.1",
"dart-3.3",
"dart-3.5",
+ "dart-3.8",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@@ -26579,7 +26869,8 @@
"static-1",
"flutter-3.24",
"flutter-3.27",
- "flutter-3.29"
+ "flutter-3.29",
+ "flutter-3.32"
],
"x-enum-name": null,
"x-enum-keys": []
@@ -26655,7 +26946,7 @@
"x-appwrite": {
"method": "delete",
"group": "sites",
- "weight": 407,
+ "weight": 409,
"cookies": false,
"type": "",
"deprecated": false,
@@ -26716,7 +27007,7 @@
"x-appwrite": {
"method": "updateSiteDeployment",
"group": "sites",
- "weight": 414,
+ "weight": 416,
"cookies": false,
"type": "",
"deprecated": false,
@@ -26796,7 +27087,7 @@
"x-appwrite": {
"method": "listDeployments",
"group": "deployments",
- "weight": 413,
+ "weight": 415,
"cookies": false,
"type": "",
"deprecated": false,
@@ -26879,7 +27170,7 @@
"x-appwrite": {
"method": "createDeployment",
"group": "deployments",
- "weight": 409,
+ "weight": 411,
"cookies": false,
"type": "upload",
"deprecated": false,
@@ -26980,7 +27271,7 @@
"x-appwrite": {
"method": "createDuplicateDeployment",
"group": "deployments",
- "weight": 417,
+ "weight": 419,
"cookies": false,
"type": "",
"deprecated": false,
@@ -27060,7 +27351,7 @@
"x-appwrite": {
"method": "createTemplateDeployment",
"group": "deployments",
- "weight": 410,
+ "weight": 412,
"cookies": false,
"type": "",
"deprecated": false,
@@ -27163,7 +27454,7 @@
"x-appwrite": {
"method": "createVcsDeployment",
"group": "deployments",
- "weight": 411,
+ "weight": 413,
"cookies": false,
"type": "",
"deprecated": false,
@@ -27261,7 +27552,7 @@
"x-appwrite": {
"method": "getDeployment",
"group": "deployments",
- "weight": 412,
+ "weight": 414,
"cookies": false,
"type": "",
"deprecated": false,
@@ -27323,7 +27614,7 @@
"x-appwrite": {
"method": "deleteDeployment",
"group": "deployments",
- "weight": 415,
+ "weight": 417,
"cookies": false,
"type": "",
"deprecated": false,
@@ -27387,7 +27678,7 @@
"x-appwrite": {
"method": "getDeploymentDownload",
"group": "deployments",
- "weight": 416,
+ "weight": 418,
"cookies": false,
"type": "location",
"deprecated": false,
@@ -27477,7 +27768,7 @@
"x-appwrite": {
"method": "updateDeploymentStatus",
"group": "deployments",
- "weight": 418,
+ "weight": 420,
"cookies": false,
"type": "",
"deprecated": false,
@@ -27548,7 +27839,7 @@
"x-appwrite": {
"method": "listLogs",
"group": "logs",
- "weight": 420,
+ "weight": 422,
"cookies": false,
"type": "",
"deprecated": false,
@@ -27619,7 +27910,7 @@
"x-appwrite": {
"method": "getLog",
"group": "logs",
- "weight": 419,
+ "weight": 421,
"cookies": false,
"type": "",
"deprecated": false,
@@ -27681,7 +27972,7 @@
"x-appwrite": {
"method": "deleteLog",
"group": "logs",
- "weight": 421,
+ "weight": 423,
"cookies": false,
"type": "",
"deprecated": false,
@@ -27752,7 +28043,7 @@
"x-appwrite": {
"method": "getUsage",
"group": null,
- "weight": 430,
+ "weight": 432,
"cookies": false,
"type": "",
"deprecated": false,
@@ -27834,7 +28125,7 @@
"x-appwrite": {
"method": "listVariables",
"group": "variables",
- "weight": 424,
+ "weight": 426,
"cookies": false,
"type": "",
"deprecated": false,
@@ -27893,7 +28184,7 @@
"x-appwrite": {
"method": "createVariable",
"group": "variables",
- "weight": 422,
+ "weight": 424,
"cookies": false,
"type": "",
"deprecated": false,
@@ -27984,7 +28275,7 @@
"x-appwrite": {
"method": "getVariable",
"group": "variables",
- "weight": 423,
+ "weight": 425,
"cookies": false,
"type": "",
"deprecated": false,
@@ -28053,7 +28344,7 @@
"x-appwrite": {
"method": "updateVariable",
"group": "variables",
- "weight": 425,
+ "weight": 427,
"cookies": false,
"type": "",
"deprecated": false,
@@ -28144,7 +28435,7 @@
"x-appwrite": {
"method": "deleteVariable",
"group": "variables",
- "weight": 426,
+ "weight": 428,
"cookies": false,
"type": "",
"deprecated": false,
@@ -28215,7 +28506,7 @@
"x-appwrite": {
"method": "listBuckets",
"group": "buckets",
- "weight": 207,
+ "weight": 209,
"cookies": false,
"type": "",
"deprecated": false,
@@ -28288,7 +28579,7 @@
"x-appwrite": {
"method": "createBucket",
"group": "buckets",
- "weight": 206,
+ "weight": 208,
"cookies": false,
"type": "",
"deprecated": false,
@@ -28415,7 +28706,7 @@
"x-appwrite": {
"method": "getBucket",
"group": "buckets",
- "weight": 208,
+ "weight": 210,
"cookies": false,
"type": "",
"deprecated": false,
@@ -28474,7 +28765,7 @@
"x-appwrite": {
"method": "updateBucket",
"group": "buckets",
- "weight": 209,
+ "weight": 211,
"cookies": false,
"type": "",
"deprecated": false,
@@ -28598,7 +28889,7 @@
"x-appwrite": {
"method": "deleteBucket",
"group": "buckets",
- "weight": 210,
+ "weight": 212,
"cookies": false,
"type": "",
"deprecated": false,
@@ -28659,7 +28950,7 @@
"x-appwrite": {
"method": "listFiles",
"group": "files",
- "weight": 212,
+ "weight": 214,
"cookies": false,
"type": "",
"deprecated": false,
@@ -28745,7 +29036,7 @@
"x-appwrite": {
"method": "createFile",
"group": "files",
- "weight": 211,
+ "weight": 213,
"cookies": false,
"type": "upload",
"deprecated": false,
@@ -28843,7 +29134,7 @@
"x-appwrite": {
"method": "getFile",
"group": "files",
- "weight": 213,
+ "weight": 215,
"cookies": false,
"type": "",
"deprecated": false,
@@ -28915,7 +29206,7 @@
"x-appwrite": {
"method": "updateFile",
"group": "files",
- "weight": 218,
+ "weight": 220,
"cookies": false,
"type": "",
"deprecated": false,
@@ -29004,7 +29295,7 @@
"x-appwrite": {
"method": "deleteFile",
"group": "files",
- "weight": 219,
+ "weight": 221,
"cookies": false,
"type": "",
"deprecated": false,
@@ -29071,7 +29362,7 @@
"x-appwrite": {
"method": "getFileDownload",
"group": "files",
- "weight": 215,
+ "weight": 217,
"cookies": false,
"type": "location",
"deprecated": false,
@@ -29149,7 +29440,7 @@
"x-appwrite": {
"method": "getFilePreview",
"group": "files",
- "weight": 214,
+ "weight": 216,
"cookies": false,
"type": "location",
"deprecated": false,
@@ -29338,7 +29629,8 @@
"png",
"webp",
"heic",
- "avif"
+ "avif",
+ "gif"
],
"x-enum-name": "ImageFormat",
"x-enum-keys": [],
@@ -29376,7 +29668,7 @@
"x-appwrite": {
"method": "getFileView",
"group": "files",
- "weight": 216,
+ "weight": 218,
"cookies": false,
"type": "location",
"deprecated": false,
@@ -29461,7 +29753,7 @@
"x-appwrite": {
"method": "getUsage",
"group": null,
- "weight": 220,
+ "weight": 222,
"cookies": false,
"type": "",
"deprecated": false,
@@ -29533,7 +29825,7 @@
"x-appwrite": {
"method": "getBucketUsage",
"group": null,
- "weight": 221,
+ "weight": 223,
"cookies": false,
"type": "",
"deprecated": false,
@@ -29615,7 +29907,7 @@
"x-appwrite": {
"method": "list",
"group": "teams",
- "weight": 223,
+ "weight": 225,
"cookies": false,
"type": "",
"deprecated": false,
@@ -29691,7 +29983,7 @@
"x-appwrite": {
"method": "create",
"group": "teams",
- "weight": 222,
+ "weight": 224,
"cookies": false,
"type": "",
"deprecated": false,
@@ -29776,7 +30068,7 @@
"x-appwrite": {
"method": "get",
"group": "teams",
- "weight": 224,
+ "weight": 226,
"cookies": false,
"type": "",
"deprecated": false,
@@ -29838,7 +30130,7 @@
"x-appwrite": {
"method": "updateName",
"group": "teams",
- "weight": 226,
+ "weight": 228,
"cookies": false,
"type": "",
"deprecated": false,
@@ -29912,7 +30204,7 @@
"x-appwrite": {
"method": "delete",
"group": "teams",
- "weight": 228,
+ "weight": 230,
"cookies": false,
"type": "",
"deprecated": false,
@@ -29976,7 +30268,7 @@
"x-appwrite": {
"method": "listLogs",
"group": "logs",
- "weight": 235,
+ "weight": 237,
"cookies": false,
"type": "",
"deprecated": false,
@@ -30049,7 +30341,7 @@
"x-appwrite": {
"method": "listMemberships",
"group": "memberships",
- "weight": 230,
+ "weight": 232,
"cookies": false,
"type": "",
"deprecated": false,
@@ -30135,7 +30427,7 @@
"x-appwrite": {
"method": "createMembership",
"group": "memberships",
- "weight": 229,
+ "weight": 231,
"cookies": false,
"type": "",
"deprecated": false,
@@ -30246,7 +30538,7 @@
"x-appwrite": {
"method": "getMembership",
"group": "memberships",
- "weight": 231,
+ "weight": 233,
"cookies": false,
"type": "",
"deprecated": false,
@@ -30318,7 +30610,7 @@
"x-appwrite": {
"method": "updateMembership",
"group": "memberships",
- "weight": 232,
+ "weight": 234,
"cookies": false,
"type": "",
"deprecated": false,
@@ -30405,7 +30697,7 @@
"x-appwrite": {
"method": "deleteMembership",
"group": "memberships",
- "weight": 234,
+ "weight": 236,
"cookies": false,
"type": "",
"deprecated": false,
@@ -30479,7 +30771,7 @@
"x-appwrite": {
"method": "updateMembershipStatus",
"group": "memberships",
- "weight": 233,
+ "weight": 235,
"cookies": false,
"type": "",
"deprecated": false,
@@ -30576,7 +30868,7 @@
"x-appwrite": {
"method": "getPrefs",
"group": "teams",
- "weight": 225,
+ "weight": 227,
"cookies": false,
"type": "",
"deprecated": false,
@@ -30636,7 +30928,7 @@
"x-appwrite": {
"method": "updatePrefs",
"group": "teams",
- "weight": 227,
+ "weight": 229,
"cookies": false,
"type": "",
"deprecated": false,
@@ -30717,7 +31009,7 @@
"x-appwrite": {
"method": "list",
"group": "files",
- "weight": 439,
+ "weight": 441,
"cookies": false,
"type": "",
"deprecated": false,
@@ -30797,7 +31089,7 @@
"x-appwrite": {
"method": "createFileToken",
"group": "files",
- "weight": 437,
+ "weight": 439,
"cookies": false,
"type": "",
"deprecated": false,
@@ -30886,7 +31178,7 @@
"x-appwrite": {
"method": "get",
"group": "tokens",
- "weight": 438,
+ "weight": 440,
"cookies": false,
"type": "",
"deprecated": false,
@@ -30946,7 +31238,7 @@
"x-appwrite": {
"method": "update",
"group": "tokens",
- "weight": 440,
+ "weight": 442,
"cookies": false,
"type": "",
"deprecated": false,
@@ -31016,7 +31308,7 @@
"x-appwrite": {
"method": "delete",
"group": "tokens",
- "weight": 441,
+ "weight": 443,
"cookies": false,
"type": "",
"deprecated": false,
@@ -31078,7 +31370,7 @@
"x-appwrite": {
"method": "list",
"group": "users",
- "weight": 245,
+ "weight": 247,
"cookies": false,
"type": "",
"deprecated": false,
@@ -31151,7 +31443,7 @@
"x-appwrite": {
"method": "create",
"group": "users",
- "weight": 236,
+ "weight": 238,
"cookies": false,
"type": "",
"deprecated": false,
@@ -31239,7 +31531,7 @@
"x-appwrite": {
"method": "createArgon2User",
"group": "users",
- "weight": 239,
+ "weight": 241,
"cookies": false,
"type": "",
"deprecated": false,
@@ -31324,7 +31616,7 @@
"x-appwrite": {
"method": "createBcryptUser",
"group": "users",
- "weight": 237,
+ "weight": 239,
"cookies": false,
"type": "",
"deprecated": false,
@@ -31409,7 +31701,7 @@
"x-appwrite": {
"method": "listIdentities",
"group": "identities",
- "weight": 253,
+ "weight": 255,
"cookies": false,
"type": "",
"deprecated": false,
@@ -31477,7 +31769,7 @@
"x-appwrite": {
"method": "deleteIdentity",
"group": "identities",
- "weight": 276,
+ "weight": 278,
"cookies": false,
"type": "",
"deprecated": false,
@@ -31538,7 +31830,7 @@
"x-appwrite": {
"method": "createMD5User",
"group": "users",
- "weight": 238,
+ "weight": 240,
"cookies": false,
"type": "",
"deprecated": false,
@@ -31623,7 +31915,7 @@
"x-appwrite": {
"method": "createPHPassUser",
"group": "users",
- "weight": 241,
+ "weight": 243,
"cookies": false,
"type": "",
"deprecated": false,
@@ -31708,7 +32000,7 @@
"x-appwrite": {
"method": "createScryptUser",
"group": "users",
- "weight": 242,
+ "weight": 244,
"cookies": false,
"type": "",
"deprecated": false,
@@ -31823,7 +32115,7 @@
"x-appwrite": {
"method": "createScryptModifiedUser",
"group": "users",
- "weight": 243,
+ "weight": 245,
"cookies": false,
"type": "",
"deprecated": false,
@@ -31926,7 +32218,7 @@
"x-appwrite": {
"method": "createSHAUser",
"group": "users",
- "weight": 240,
+ "weight": 242,
"cookies": false,
"type": "",
"deprecated": false,
@@ -32031,7 +32323,7 @@
"x-appwrite": {
"method": "getUsage",
"group": null,
- "weight": 278,
+ "weight": 280,
"cookies": false,
"type": "",
"deprecated": false,
@@ -32103,7 +32395,7 @@
"x-appwrite": {
"method": "get",
"group": "users",
- "weight": 246,
+ "weight": 248,
"cookies": false,
"type": "",
"deprecated": false,
@@ -32155,7 +32447,7 @@
"x-appwrite": {
"method": "delete",
"group": "users",
- "weight": 274,
+ "weight": 276,
"cookies": false,
"type": "",
"deprecated": false,
@@ -32216,7 +32508,7 @@
"x-appwrite": {
"method": "updateEmail",
"group": "users",
- "weight": 259,
+ "weight": 261,
"cookies": false,
"type": "",
"deprecated": false,
@@ -32296,7 +32588,7 @@
"x-appwrite": {
"method": "createJWT",
"group": "sessions",
- "weight": 277,
+ "weight": 279,
"cookies": false,
"type": "",
"deprecated": false,
@@ -32378,7 +32670,7 @@
"x-appwrite": {
"method": "updateLabels",
"group": "users",
- "weight": 255,
+ "weight": 257,
"cookies": false,
"type": "",
"deprecated": false,
@@ -32461,7 +32753,7 @@
"x-appwrite": {
"method": "listLogs",
"group": "logs",
- "weight": 251,
+ "weight": 253,
"cookies": false,
"type": "",
"deprecated": false,
@@ -32535,7 +32827,7 @@
"x-appwrite": {
"method": "listMemberships",
"group": "memberships",
- "weight": 250,
+ "weight": 252,
"cookies": false,
"type": "",
"deprecated": false,
@@ -32620,7 +32912,7 @@
"x-appwrite": {
"method": "updateMfa",
"group": "users",
- "weight": 264,
+ "weight": 266,
"cookies": false,
"type": "",
"deprecated": false,
@@ -32693,7 +32985,7 @@
"x-appwrite": {
"method": "deleteMfaAuthenticator",
"group": "mfa",
- "weight": 269,
+ "weight": 271,
"cookies": false,
"type": "",
"deprecated": false,
@@ -32769,7 +33061,7 @@
"x-appwrite": {
"method": "listMfaFactors",
"group": "mfa",
- "weight": 265,
+ "weight": 267,
"cookies": false,
"type": "",
"deprecated": false,
@@ -32830,7 +33122,7 @@
"x-appwrite": {
"method": "getMfaRecoveryCodes",
"group": "mfa",
- "weight": 266,
+ "weight": 268,
"cookies": false,
"type": "",
"deprecated": false,
@@ -32889,7 +33181,7 @@
"x-appwrite": {
"method": "updateMfaRecoveryCodes",
"group": "mfa",
- "weight": 268,
+ "weight": 270,
"cookies": false,
"type": "",
"deprecated": false,
@@ -32948,7 +33240,7 @@
"x-appwrite": {
"method": "createMfaRecoveryCodes",
"group": "mfa",
- "weight": 267,
+ "weight": 269,
"cookies": false,
"type": "",
"deprecated": false,
@@ -33009,7 +33301,7 @@
"x-appwrite": {
"method": "updateName",
"group": "users",
- "weight": 257,
+ "weight": 259,
"cookies": false,
"type": "",
"deprecated": false,
@@ -33089,7 +33381,7 @@
"x-appwrite": {
"method": "updatePassword",
"group": "users",
- "weight": 258,
+ "weight": 260,
"cookies": false,
"type": "",
"deprecated": false,
@@ -33169,7 +33461,7 @@
"x-appwrite": {
"method": "updatePhone",
"group": "users",
- "weight": 260,
+ "weight": 262,
"cookies": false,
"type": "",
"deprecated": false,
@@ -33249,7 +33541,7 @@
"x-appwrite": {
"method": "getPrefs",
"group": "users",
- "weight": 247,
+ "weight": 249,
"cookies": false,
"type": "",
"deprecated": false,
@@ -33308,7 +33600,7 @@
"x-appwrite": {
"method": "updatePrefs",
"group": "users",
- "weight": 262,
+ "weight": 264,
"cookies": false,
"type": "",
"deprecated": false,
@@ -33388,7 +33680,7 @@
"x-appwrite": {
"method": "listSessions",
"group": "sessions",
- "weight": 249,
+ "weight": 251,
"cookies": false,
"type": "",
"deprecated": false,
@@ -33447,7 +33739,7 @@
"x-appwrite": {
"method": "createSession",
"group": "sessions",
- "weight": 270,
+ "weight": 272,
"cookies": false,
"type": "",
"deprecated": false,
@@ -33499,7 +33791,7 @@
"x-appwrite": {
"method": "deleteSessions",
"group": "sessions",
- "weight": 273,
+ "weight": 275,
"cookies": false,
"type": "",
"deprecated": false,
@@ -33553,7 +33845,7 @@
"x-appwrite": {
"method": "deleteSession",
"group": "sessions",
- "weight": 272,
+ "weight": 274,
"cookies": false,
"type": "",
"deprecated": false,
@@ -33624,7 +33916,7 @@
"x-appwrite": {
"method": "updateStatus",
"group": "users",
- "weight": 254,
+ "weight": 256,
"cookies": false,
"type": "",
"deprecated": false,
@@ -33704,7 +33996,7 @@
"x-appwrite": {
"method": "listTargets",
"group": "targets",
- "weight": 252,
+ "weight": 254,
"cookies": false,
"type": "",
"deprecated": false,
@@ -33742,7 +34034,7 @@
},
{
"name": "queries",
- "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels",
+ "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType",
"required": false,
"schema": {
"type": "array",
@@ -33777,7 +34069,7 @@
"x-appwrite": {
"method": "createTarget",
"group": "targets",
- "weight": 244,
+ "weight": 246,
"cookies": false,
"type": "",
"deprecated": false,
@@ -33887,7 +34179,7 @@
"x-appwrite": {
"method": "getTarget",
"group": "targets",
- "weight": 248,
+ "weight": 250,
"cookies": false,
"type": "",
"deprecated": false,
@@ -33957,7 +34249,7 @@
"x-appwrite": {
"method": "updateTarget",
"group": "targets",
- "weight": 263,
+ "weight": 265,
"cookies": false,
"type": "",
"deprecated": false,
@@ -34046,7 +34338,7 @@
"x-appwrite": {
"method": "deleteTarget",
"group": "targets",
- "weight": 275,
+ "weight": 277,
"cookies": false,
"type": "",
"deprecated": false,
@@ -34118,7 +34410,7 @@
"x-appwrite": {
"method": "createToken",
"group": "sessions",
- "weight": 271,
+ "weight": 273,
"cookies": false,
"type": "",
"deprecated": false,
@@ -34200,7 +34492,7 @@
"x-appwrite": {
"method": "updateEmailVerification",
"group": "users",
- "weight": 261,
+ "weight": 263,
"cookies": false,
"type": "",
"deprecated": false,
@@ -34280,7 +34572,7 @@
"x-appwrite": {
"method": "updatePhoneVerification",
"group": "users",
- "weight": 256,
+ "weight": 258,
"cookies": false,
"type": "",
"deprecated": false,
@@ -34360,7 +34652,7 @@
"x-appwrite": {
"method": "createRepositoryDetection",
"group": "repositories",
- "weight": 282,
+ "weight": 284,
"cookies": false,
"type": "",
"deprecated": false,
@@ -34456,7 +34748,7 @@
"x-appwrite": {
"method": "listRepositories",
"group": "repositories",
- "weight": 283,
+ "weight": 285,
"cookies": false,
"type": "",
"deprecated": false,
@@ -34541,7 +34833,7 @@
"x-appwrite": {
"method": "createRepository",
"group": "repositories",
- "weight": 284,
+ "weight": 286,
"cookies": false,
"type": "",
"deprecated": false,
@@ -34626,7 +34918,7 @@
"x-appwrite": {
"method": "getRepository",
"group": "repositories",
- "weight": 285,
+ "weight": 287,
"cookies": false,
"type": "",
"deprecated": false,
@@ -34696,7 +34988,7 @@
"x-appwrite": {
"method": "listRepositoryBranches",
"group": "repositories",
- "weight": 286,
+ "weight": 288,
"cookies": false,
"type": "",
"deprecated": false,
@@ -34750,7 +35042,7 @@
"tags": [
"vcs"
],
- "description": "Get a list of files and directories from a GitHub repository connected to your project. This endpoint returns the contents of a specified repository path, including file names, sizes, and whether each item is a file or directory. The GitHub installation must be properly configured and the repository must be accessible through your installation for this endpoint to work.\n",
+ "description": "Get a list of files and directories from a GitHub repository connected to your project. This endpoint returns the contents of a specified repository path, including file names, sizes, and whether each item is a file or directory. The GitHub installation must be properly configured and the repository must be accessible through your installation for this endpoint to work.",
"responses": {
"200": {
"description": "VCS Content List",
@@ -34766,7 +35058,7 @@
"x-appwrite": {
"method": "getRepositoryContents",
"group": "repositories",
- "weight": 281,
+ "weight": 283,
"cookies": false,
"type": "",
"deprecated": false,
@@ -34820,6 +35112,17 @@
"default": ""
},
"in": "query"
+ },
+ {
+ "name": "providerReference",
+ "description": "Git reference (branch, tag, commit) to get contents from",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "x-example": "",
+ "default": ""
+ },
+ "in": "query"
}
]
}
@@ -34840,7 +35143,7 @@
"x-appwrite": {
"method": "updateExternalDeployments",
"group": "repositories",
- "weight": 291,
+ "weight": 293,
"cookies": false,
"type": "",
"deprecated": false,
@@ -34929,7 +35232,7 @@
"x-appwrite": {
"method": "listInstallations",
"group": "installations",
- "weight": 288,
+ "weight": 290,
"cookies": false,
"type": "",
"deprecated": false,
@@ -35003,7 +35306,7 @@
"x-appwrite": {
"method": "getInstallation",
"group": "installations",
- "weight": 289,
+ "weight": 291,
"cookies": false,
"type": "",
"deprecated": false,
@@ -35054,7 +35357,7 @@
"x-appwrite": {
"method": "deleteInstallation",
"group": "installations",
- "weight": 290,
+ "weight": 292,
"cookies": false,
"type": "",
"deprecated": false,
@@ -35167,7 +35470,8 @@
"any": {
"description": "Any",
"type": "object",
- "additionalProperties": true
+ "additionalProperties": true,
+ "example": []
},
"error": {
"description": "Error",
@@ -35199,7 +35503,13 @@
"code",
"type",
"version"
- ]
+ ],
+ "example": {
+ "message": "Not found",
+ "code": "404",
+ "type": "not_found",
+ "version": "1.0"
+ }
},
"documentList": {
"description": "Documents List",
@@ -35223,7 +35533,11 @@
"required": [
"total",
"documents"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "documents": ""
+ }
},
"collectionList": {
"description": "Collections List",
@@ -35247,7 +35561,11 @@
"required": [
"total",
"collections"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "collections": ""
+ }
},
"databaseList": {
"description": "Databases List",
@@ -35271,7 +35589,11 @@
"required": [
"total",
"databases"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "databases": ""
+ }
},
"indexList": {
"description": "Indexes List",
@@ -35295,7 +35617,11 @@
"required": [
"total",
"indexes"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "indexes": ""
+ }
},
"userList": {
"description": "Users List",
@@ -35319,7 +35645,11 @@
"required": [
"total",
"users"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "users": ""
+ }
},
"sessionList": {
"description": "Sessions List",
@@ -35343,7 +35673,11 @@
"required": [
"total",
"sessions"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "sessions": ""
+ }
},
"identityList": {
"description": "Identities List",
@@ -35367,7 +35701,11 @@
"required": [
"total",
"identities"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "identities": ""
+ }
},
"logList": {
"description": "Logs List",
@@ -35391,7 +35729,11 @@
"required": [
"total",
"logs"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "logs": ""
+ }
},
"fileList": {
"description": "Files List",
@@ -35415,7 +35757,11 @@
"required": [
"total",
"files"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "files": ""
+ }
},
"bucketList": {
"description": "Buckets List",
@@ -35439,7 +35785,11 @@
"required": [
"total",
"buckets"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "buckets": ""
+ }
},
"resourceTokenList": {
"description": "Resource Tokens List",
@@ -35463,7 +35813,11 @@
"required": [
"total",
"tokens"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "tokens": ""
+ }
},
"teamList": {
"description": "Teams List",
@@ -35487,7 +35841,11 @@
"required": [
"total",
"teams"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "teams": ""
+ }
},
"membershipList": {
"description": "Memberships List",
@@ -35511,7 +35869,11 @@
"required": [
"total",
"memberships"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "memberships": ""
+ }
},
"siteList": {
"description": "Sites List",
@@ -35535,7 +35897,11 @@
"required": [
"total",
"sites"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "sites": ""
+ }
},
"templateSiteList": {
"description": "Site Templates List",
@@ -35559,7 +35925,11 @@
"required": [
"total",
"templates"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "templates": ""
+ }
},
"functionList": {
"description": "Functions List",
@@ -35583,7 +35953,11 @@
"required": [
"total",
"functions"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "functions": ""
+ }
},
"templateFunctionList": {
"description": "Function Templates List",
@@ -35607,7 +35981,11 @@
"required": [
"total",
"templates"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "templates": ""
+ }
},
"installationList": {
"description": "Installations List",
@@ -35631,7 +36009,11 @@
"required": [
"total",
"installations"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "installations": ""
+ }
},
"providerRepositoryFrameworkList": {
"description": "Framework Provider Repositories List",
@@ -35655,7 +36037,11 @@
"required": [
"total",
"frameworkProviderRepositories"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "frameworkProviderRepositories": ""
+ }
},
"providerRepositoryRuntimeList": {
"description": "Runtime Provider Repositories List",
@@ -35679,7 +36065,11 @@
"required": [
"total",
"runtimeProviderRepositories"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "runtimeProviderRepositories": ""
+ }
},
"branchList": {
"description": "Branches List",
@@ -35703,7 +36093,11 @@
"required": [
"total",
"branches"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "branches": ""
+ }
},
"frameworkList": {
"description": "Frameworks List",
@@ -35727,7 +36121,11 @@
"required": [
"total",
"frameworks"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "frameworks": ""
+ }
},
"runtimeList": {
"description": "Runtimes List",
@@ -35751,7 +36149,11 @@
"required": [
"total",
"runtimes"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "runtimes": ""
+ }
},
"deploymentList": {
"description": "Deployments List",
@@ -35775,7 +36177,11 @@
"required": [
"total",
"deployments"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "deployments": ""
+ }
},
"executionList": {
"description": "Executions List",
@@ -35799,7 +36205,11 @@
"required": [
"total",
"executions"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "executions": ""
+ }
},
"projectList": {
"description": "Projects List",
@@ -35823,7 +36233,11 @@
"required": [
"total",
"projects"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "projects": ""
+ }
},
"webhookList": {
"description": "Webhooks List",
@@ -35847,7 +36261,11 @@
"required": [
"total",
"webhooks"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "webhooks": ""
+ }
},
"keyList": {
"description": "API Keys List",
@@ -35871,7 +36289,11 @@
"required": [
"total",
"keys"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "keys": ""
+ }
},
"devKeyList": {
"description": "Dev Keys List",
@@ -35895,7 +36317,11 @@
"required": [
"total",
"devKeys"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "devKeys": ""
+ }
},
"platformList": {
"description": "Platforms List",
@@ -35919,7 +36345,11 @@
"required": [
"total",
"platforms"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "platforms": ""
+ }
},
"countryList": {
"description": "Countries List",
@@ -35943,7 +36373,11 @@
"required": [
"total",
"countries"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "countries": ""
+ }
},
"continentList": {
"description": "Continents List",
@@ -35967,7 +36401,11 @@
"required": [
"total",
"continents"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "continents": ""
+ }
},
"languageList": {
"description": "Languages List",
@@ -35991,7 +36429,11 @@
"required": [
"total",
"languages"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "languages": ""
+ }
},
"currencyList": {
"description": "Currencies List",
@@ -36015,7 +36457,11 @@
"required": [
"total",
"currencies"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "currencies": ""
+ }
},
"phoneList": {
"description": "Phones List",
@@ -36039,7 +36485,11 @@
"required": [
"total",
"phones"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "phones": ""
+ }
},
"variableList": {
"description": "Variables List",
@@ -36063,7 +36513,11 @@
"required": [
"total",
"variables"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "variables": ""
+ }
},
"proxyRuleList": {
"description": "Rule List",
@@ -36087,7 +36541,11 @@
"required": [
"total",
"rules"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "rules": ""
+ }
},
"localeCodeList": {
"description": "Locale codes list",
@@ -36111,7 +36569,11 @@
"required": [
"total",
"localeCodes"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "localeCodes": ""
+ }
},
"providerList": {
"description": "Provider list",
@@ -36135,7 +36597,11 @@
"required": [
"total",
"providers"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "providers": ""
+ }
},
"messageList": {
"description": "Message list",
@@ -36159,7 +36625,11 @@
"required": [
"total",
"messages"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "messages": ""
+ }
},
"topicList": {
"description": "Topic list",
@@ -36183,7 +36653,11 @@
"required": [
"total",
"topics"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "topics": ""
+ }
},
"subscriberList": {
"description": "Subscriber list",
@@ -36207,7 +36681,11 @@
"required": [
"total",
"subscribers"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "subscribers": ""
+ }
},
"targetList": {
"description": "Target list",
@@ -36231,7 +36709,11 @@
"required": [
"total",
"targets"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "targets": ""
+ }
},
"migrationList": {
"description": "Migrations List",
@@ -36255,7 +36737,11 @@
"required": [
"total",
"migrations"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "migrations": ""
+ }
},
"specificationList": {
"description": "Specifications List",
@@ -36279,7 +36765,11 @@
"required": [
"total",
"specifications"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "specifications": ""
+ }
},
"vcsContentList": {
"description": "VCS Content List",
@@ -36303,7 +36793,11 @@
"required": [
"total",
"contents"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "contents": ""
+ }
},
"database": {
"description": "Database",
@@ -36341,7 +36835,14 @@
"$createdAt",
"$updatedAt",
"enabled"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "name": "My Database",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "enabled": false
+ }
},
"collection": {
"description": "Collection",
@@ -36451,7 +36952,21 @@
"documentSecurity",
"attributes",
"indexes"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "$permissions": [
+ "read(\"any\")"
+ ],
+ "databaseId": "5e5ea5c16897e",
+ "name": "My Collection",
+ "enabled": false,
+ "documentSecurity": true,
+ "attributes": {},
+ "indexes": {}
+ }
},
"attributeList": {
"description": "Attributes List",
@@ -36506,7 +37021,11 @@
"required": [
"total",
"attributes"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "attributes": ""
+ }
},
"attributeString": {
"description": "AttributeString",
@@ -36564,6 +37083,12 @@
"description": "Default value for attribute when not provided. Cannot be set when attribute is required.",
"x-example": "default",
"nullable": true
+ },
+ "encrypt": {
+ "type": "boolean",
+ "description": "Defines whether this attribute is encrypted or not.",
+ "x-example": false,
+ "nullable": true
}
},
"required": [
@@ -36575,7 +37100,20 @@
"$createdAt",
"$updatedAt",
"size"
- ]
+ ],
+ "example": {
+ "key": "fullName",
+ "type": "string",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "size": 128,
+ "default": "default",
+ "encrypt": false
+ }
},
"attributeInteger": {
"description": "AttributeInteger",
@@ -36652,7 +37190,20 @@
"required",
"$createdAt",
"$updatedAt"
- ]
+ ],
+ "example": {
+ "key": "count",
+ "type": "integer",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "min": 1,
+ "max": 10,
+ "default": 10
+ }
},
"attributeFloat": {
"description": "AttributeFloat",
@@ -36729,7 +37280,20 @@
"required",
"$createdAt",
"$updatedAt"
- ]
+ ],
+ "example": {
+ "key": "percentageCompleted",
+ "type": "double",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "min": 1.5,
+ "max": 10.5,
+ "default": 2.5
+ }
},
"attributeBoolean": {
"description": "AttributeBoolean",
@@ -36791,7 +37355,18 @@
"required",
"$createdAt",
"$updatedAt"
- ]
+ ],
+ "example": {
+ "key": "isEnabled",
+ "type": "boolean",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "default": false
+ }
},
"attributeEmail": {
"description": "AttributeEmail",
@@ -36859,7 +37434,19 @@
"$createdAt",
"$updatedAt",
"format"
- ]
+ ],
+ "example": {
+ "key": "userEmail",
+ "type": "string",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "format": "email",
+ "default": "default@example.com"
+ }
},
"attributeEnum": {
"description": "AttributeEnum",
@@ -36936,7 +37523,20 @@
"$updatedAt",
"elements",
"format"
- ]
+ ],
+ "example": {
+ "key": "status",
+ "type": "string",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "elements": "element",
+ "format": "enum",
+ "default": "element"
+ }
},
"attributeIp": {
"description": "AttributeIP",
@@ -37004,7 +37604,19 @@
"$createdAt",
"$updatedAt",
"format"
- ]
+ ],
+ "example": {
+ "key": "ipAddress",
+ "type": "string",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "format": "ip",
+ "default": "192.0.2.0"
+ }
},
"attributeUrl": {
"description": "AttributeURL",
@@ -37072,7 +37684,19 @@
"$createdAt",
"$updatedAt",
"format"
- ]
+ ],
+ "example": {
+ "key": "githubUrl",
+ "type": "string",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "format": "url",
+ "default": "http:\/\/example.com"
+ }
},
"attributeDatetime": {
"description": "AttributeDatetime",
@@ -37140,7 +37764,19 @@
"$createdAt",
"$updatedAt",
"format"
- ]
+ ],
+ "example": {
+ "key": "birthDay",
+ "type": "datetime",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "format": "datetime",
+ "default": "2020-10-15T06:38:00.000+00:00"
+ }
},
"attributeRelationship": {
"description": "AttributeRelationship",
@@ -37232,7 +37868,23 @@
"twoWayKey",
"onDelete",
"side"
- ]
+ ],
+ "example": {
+ "key": "fullName",
+ "type": "string",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "relatedCollection": "collection",
+ "relationType": "oneToOne|oneToMany|manyToOne|manyToMany",
+ "twoWay": false,
+ "twoWayKey": "string",
+ "onDelete": "restrict|cascade|setNull",
+ "side": "parent|child"
+ }
},
"index": {
"description": "Index",
@@ -37304,7 +37956,18 @@
"lengths",
"$createdAt",
"$updatedAt"
- ]
+ ],
+ "example": {
+ "key": "index1",
+ "type": "primary",
+ "status": "available",
+ "error": "string",
+ "attributes": [],
+ "lengths": [],
+ "orders": [],
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00"
+ }
},
"document": {
"description": "Document",
@@ -37315,15 +37978,24 @@
"description": "Document ID.",
"x-example": "5e5ea5c16897e"
},
+ "$sequence": {
+ "type": "integer",
+ "description": "Document automatically incrementing ID.",
+ "x-example": 1,
+ "format": "int32",
+ "readOnly": true
+ },
"$collectionId": {
"type": "string",
"description": "Collection ID.",
- "x-example": "5e5ea5c15117e"
+ "x-example": "5e5ea5c15117e",
+ "readOnly": true
},
"$databaseId": {
"type": "string",
"description": "Database ID.",
- "x-example": "5e5ea5c15117e"
+ "x-example": "5e5ea5c15117e",
+ "readOnly": true
},
"$createdAt": {
"type": "string",
@@ -37349,12 +38021,29 @@
"additionalProperties": true,
"required": [
"$id",
+ "$sequence",
"$collectionId",
"$databaseId",
"$createdAt",
"$updatedAt",
"$permissions"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$sequence": 1,
+ "$collectionId": "5e5ea5c15117e",
+ "$databaseId": "5e5ea5c15117e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "$permissions": [
+ "read(\"any\")"
+ ],
+ "username": "john.doe",
+ "email": "john.doe@example.com",
+ "fullName": "John Doe",
+ "age": 30,
+ "isAdmin": false
+ }
},
"log": {
"description": "Log",
@@ -37488,7 +38177,30 @@
"deviceModel",
"countryCode",
"countryName"
- ]
+ ],
+ "example": {
+ "event": "account.sessions.create",
+ "userId": "610fc2f985ee0",
+ "userEmail": "john@appwrite.io",
+ "userName": "John Doe",
+ "mode": "admin",
+ "ip": "127.0.0.1",
+ "time": "2020-10-15T06:38:00.000+00:00",
+ "osCode": "Mac",
+ "osName": "Mac",
+ "osVersion": "Mac",
+ "clientType": "browser",
+ "clientCode": "CM",
+ "clientName": "Chrome Mobile iOS",
+ "clientVersion": "84.0",
+ "clientEngine": "WebKit",
+ "clientEngineVersion": "605.1.15",
+ "deviceName": "smartphone",
+ "deviceBrand": "Google",
+ "deviceModel": "Nexus 5",
+ "countryCode": "US",
+ "countryName": "United States"
+ }
},
"user": {
"description": "User",
@@ -37649,7 +38361,33 @@
"prefs",
"targets",
"accessedAt"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "John Doe",
+ "password": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE",
+ "hash": "argon2",
+ "hashOptions": {},
+ "registration": "2020-10-15T06:38:00.000+00:00",
+ "status": true,
+ "labels": [
+ "vip"
+ ],
+ "passwordUpdate": "2020-10-15T06:38:00.000+00:00",
+ "email": "john@appwrite.io",
+ "phone": "+4930901820",
+ "emailVerification": true,
+ "phoneVerification": true,
+ "mfa": true,
+ "prefs": {
+ "theme": "pink",
+ "timezone": "UTC"
+ },
+ "targets": [],
+ "accessedAt": "2020-10-15T06:38:00.000+00:00"
+ }
},
"algoMd5": {
"description": "AlgoMD5",
@@ -37663,7 +38401,10 @@
},
"required": [
"type"
- ]
+ ],
+ "example": {
+ "type": "md5"
+ }
},
"algoSha": {
"description": "AlgoSHA",
@@ -37677,7 +38418,10 @@
},
"required": [
"type"
- ]
+ ],
+ "example": {
+ "type": "sha"
+ }
},
"algoPhpass": {
"description": "AlgoPHPass",
@@ -37691,7 +38435,10 @@
},
"required": [
"type"
- ]
+ ],
+ "example": {
+ "type": "phpass"
+ }
},
"algoBcrypt": {
"description": "AlgoBcrypt",
@@ -37705,7 +38452,10 @@
},
"required": [
"type"
- ]
+ ],
+ "example": {
+ "type": "bcrypt"
+ }
},
"algoScrypt": {
"description": "AlgoScrypt",
@@ -37747,7 +38497,14 @@
"costMemory",
"costParallel",
"length"
- ]
+ ],
+ "example": {
+ "type": "scrypt",
+ "costCpu": 8,
+ "costMemory": 14,
+ "costParallel": 1,
+ "length": 64
+ }
},
"algoScryptModified": {
"description": "AlgoScryptModified",
@@ -37779,7 +38536,13 @@
"salt",
"saltSeparator",
"signerKey"
- ]
+ ],
+ "example": {
+ "type": "scryptMod",
+ "salt": "UxLMreBr6tYyjQ==",
+ "saltSeparator": "Bw==",
+ "signerKey": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ=="
+ }
},
"algoArgon2": {
"description": "AlgoArgon2",
@@ -37814,12 +38577,23 @@
"memoryCost",
"timeCost",
"threads"
- ]
+ ],
+ "example": {
+ "type": "argon2",
+ "memoryCost": 65536,
+ "timeCost": 4,
+ "threads": 3
+ }
},
"preferences": {
"description": "Preferences",
"type": "object",
- "additionalProperties": true
+ "additionalProperties": true,
+ "example": {
+ "language": "en",
+ "timezone": "UTC",
+ "darkTheme": true
+ }
},
"session": {
"description": "Session",
@@ -38006,7 +38780,40 @@
"factors",
"secret",
"mfaUpdatedAt"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5bb8c16897e",
+ "expire": "2020-10-15T06:38:00.000+00:00",
+ "provider": "email",
+ "providerUid": "user@example.com",
+ "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
+ "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00",
+ "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
+ "ip": "127.0.0.1",
+ "osCode": "Mac",
+ "osName": "Mac",
+ "osVersion": "Mac",
+ "clientType": "browser",
+ "clientCode": "CM",
+ "clientName": "Chrome Mobile iOS",
+ "clientVersion": "84.0",
+ "clientEngine": "WebKit",
+ "clientEngineVersion": "605.1.15",
+ "deviceName": "smartphone",
+ "deviceBrand": "Google",
+ "deviceModel": "Nexus 5",
+ "countryCode": "US",
+ "countryName": "United States",
+ "current": true,
+ "factors": [
+ "email"
+ ],
+ "secret": "5e5bb8c16897e",
+ "mfaUpdatedAt": "2020-10-15T06:38:00.000+00:00"
+ }
},
"identity": {
"description": "Identity",
@@ -38074,7 +38881,19 @@
"providerAccessToken",
"providerAccessTokenExpiry",
"providerRefreshToken"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5bb8c16897e",
+ "provider": "email",
+ "providerUid": "5e5bb8c16897e",
+ "providerEmail": "user@example.com",
+ "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
+ "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00",
+ "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"
+ }
},
"token": {
"description": "Token",
@@ -38118,7 +38937,15 @@
"secret",
"expire",
"phrase"
- ]
+ ],
+ "example": {
+ "$id": "bb8ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5ea5c168bb8",
+ "secret": "",
+ "expire": "2020-10-15T06:38:00.000+00:00",
+ "phrase": "Golden Fox"
+ }
},
"jwt": {
"description": "JWT",
@@ -38132,7 +38959,10 @@
},
"required": [
"jwt"
- ]
+ ],
+ "example": {
+ "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
+ }
},
"locale": {
"description": "Locale",
@@ -38182,7 +39012,16 @@
"continent",
"eu",
"currency"
- ]
+ ],
+ "example": {
+ "ip": "127.0.0.1",
+ "countryCode": "US",
+ "country": "United States",
+ "continentCode": "NA",
+ "continent": "North America",
+ "eu": false,
+ "currency": "USD"
+ }
},
"localeCode": {
"description": "LocaleCode",
@@ -38202,7 +39041,11 @@
"required": [
"code",
"name"
- ]
+ ],
+ "example": {
+ "code": "en-us",
+ "name": "US"
+ }
},
"file": {
"description": "File",
@@ -38284,7 +39127,22 @@
"sizeOriginal",
"chunksTotal",
"chunksUploaded"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "bucketId": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "$permissions": [
+ "read(\"any\")"
+ ],
+ "name": "Pink.png",
+ "signature": "5d529fd02b544198ae075bd57c1762bb",
+ "mimeType": "image\/png",
+ "sizeOriginal": 17890,
+ "chunksTotal": 17890,
+ "chunksUploaded": 17890
+ }
},
"bucket": {
"description": "Bucket",
@@ -38376,7 +39234,26 @@
"compression",
"encryption",
"antivirus"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "$permissions": [
+ "read(\"any\")"
+ ],
+ "fileSecurity": true,
+ "name": "Documents",
+ "enabled": false,
+ "maximumFileSize": 100,
+ "allowedFileExtensions": [
+ "jpg",
+ "png"
+ ],
+ "compression": "gzip",
+ "encryption": false,
+ "antivirus": false
+ }
},
"resourceToken": {
"description": "ResourceToken",
@@ -38426,7 +39303,16 @@
"expire",
"secret",
"accessedAt"
- ]
+ ],
+ "example": {
+ "$id": "bb8ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "resourceId": "5e5ea5c168bb8:5e5ea5c168bb8",
+ "resourceType": "files",
+ "expire": "2020-10-15T06:38:00.000+00:00",
+ "secret": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
+ "accessedAt": "2020-10-15T06:38:00.000+00:00"
+ }
},
"team": {
"description": "Team",
@@ -38477,7 +39363,18 @@
"name",
"total",
"prefs"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "VIP",
+ "total": 7,
+ "prefs": {
+ "theme": "pink",
+ "timezone": "UTC"
+ }
+ }
},
"membership": {
"description": "Membership",
@@ -38568,7 +39465,24 @@
"confirm",
"mfa",
"roles"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5ea5c16897e",
+ "userName": "John Doe",
+ "userEmail": "john@appwrite.io",
+ "teamId": "5e5ea5c16897e",
+ "teamName": "VIP",
+ "invited": "2020-10-15T06:38:00.000+00:00",
+ "joined": "2020-10-15T06:38:00.000+00:00",
+ "confirm": false,
+ "mfa": false,
+ "roles": [
+ "owner"
+ ]
+ }
},
"site": {
"description": "Site",
@@ -38754,7 +39668,38 @@
"buildRuntime",
"adapter",
"fallbackFile"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "My Site",
+ "enabled": false,
+ "live": false,
+ "logging": false,
+ "framework": "react",
+ "deploymentId": "5e5ea5c16897e",
+ "deploymentCreatedAt": "2020-10-15T06:38:00.000+00:00",
+ "deploymentScreenshotLight": "5e5ea5c16897e",
+ "deploymentScreenshotDark": "5e5ea5c16897e",
+ "latestDeploymentId": "5e5ea5c16897e",
+ "latestDeploymentCreatedAt": "2020-10-15T06:38:00.000+00:00",
+ "latestDeploymentStatus": "ready",
+ "vars": [],
+ "timeout": 300,
+ "installCommand": "npm install",
+ "buildCommand": "npm run build",
+ "outputDirectory": "build",
+ "installationId": "6m40at4ejk5h2u9s1hboo",
+ "providerRepositoryId": "appwrite",
+ "providerBranch": "main",
+ "providerRootDirectory": "sites\/helloWorld",
+ "providerSilentMode": false,
+ "specification": "s-1vcpu-512mb",
+ "buildRuntime": "node-22",
+ "adapter": "static",
+ "fallbackFile": "index.html"
+ }
},
"templateSite": {
"description": "Template Site",
@@ -38849,7 +39794,22 @@
"providerOwner",
"providerVersion",
"variables"
- ]
+ ],
+ "example": {
+ "key": "starter",
+ "name": "Starter site",
+ "tagline": "Minimal web app integrating with Appwrite.",
+ "demoUrl": "https:\/\/nextjs-starter.appwrite.network\/",
+ "screenshotDark": "https:\/\/cloud.appwrite.io\/images\/sites\/templates\/template-for-blog-dark.png",
+ "screenshotLight": "https:\/\/cloud.appwrite.io\/images\/sites\/templates\/template-for-blog-light.png",
+ "useCases": "Starter",
+ "frameworks": [],
+ "vcsProvider": "github",
+ "providerRepositoryId": "templates",
+ "providerOwner": "appwrite",
+ "providerVersion": "main",
+ "variables": []
+ }
},
"templateFramework": {
"description": "Template Framework",
@@ -38911,7 +39871,18 @@
"buildRuntime",
"adapter",
"fallbackFile"
- ]
+ ],
+ "example": {
+ "key": "sveltekit",
+ "name": "SvelteKit",
+ "installCommand": "npm install",
+ "buildCommand": "npm run build",
+ "outputDirectory": ".\/build",
+ "providerRootDirectory": ".\/svelte-kit\/starter",
+ "buildRuntime": "node-22",
+ "adapter": "ssr",
+ "fallbackFile": "index.html"
+ }
},
"function": {
"description": "Function",
@@ -39100,7 +40071,37 @@
"providerRootDirectory",
"providerSilentMode",
"specification"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "execute": "users",
+ "name": "My Function",
+ "enabled": false,
+ "live": false,
+ "logging": false,
+ "runtime": "python-3.8",
+ "deploymentId": "5e5ea5c16897e",
+ "deploymentCreatedAt": "2020-10-15T06:38:00.000+00:00",
+ "latestDeploymentId": "5e5ea5c16897e",
+ "latestDeploymentCreatedAt": "2020-10-15T06:38:00.000+00:00",
+ "latestDeploymentStatus": "ready",
+ "scopes": "users.read",
+ "vars": [],
+ "events": "account.create",
+ "schedule": "5 4 * * *",
+ "timeout": 300,
+ "entrypoint": "index.js",
+ "commands": "npm install",
+ "version": "v2",
+ "installationId": "6m40at4ejk5h2u9s1hboo",
+ "providerRepositoryId": "appwrite",
+ "providerBranch": "main",
+ "providerRootDirectory": "functions\/helloWorld",
+ "providerSilentMode": false,
+ "specification": "s-1vcpu-512mb"
+ }
},
"templateFunction": {
"description": "Template Function",
@@ -39229,7 +40230,26 @@
"providerVersion",
"variables",
"scopes"
- ]
+ ],
+ "example": {
+ "icon": "icon-lightning-bolt",
+ "id": "starter",
+ "name": "Starter function",
+ "tagline": "A simple function to get started.",
+ "permissions": "any",
+ "events": "account.create",
+ "cron": "0 0 * * *",
+ "timeout": 300,
+ "useCases": "Starter",
+ "runtimes": [],
+ "instructions": "For documentation and instructions check out .",
+ "vcsProvider": "github",
+ "providerRepositoryId": "templates",
+ "providerOwner": "appwrite",
+ "providerVersion": "main",
+ "variables": [],
+ "scopes": "users.read"
+ }
},
"templateRuntime": {
"description": "Template Runtime",
@@ -39261,7 +40281,13 @@
"commands",
"entrypoint",
"providerRootDirectory"
- ]
+ ],
+ "example": {
+ "name": "node-19.0",
+ "commands": "npm install",
+ "entrypoint": "index.js",
+ "providerRootDirectory": "node\/starter"
+ }
},
"templateVariable": {
"description": "Template Variable",
@@ -39311,7 +40337,16 @@
"placeholder",
"required",
"type"
- ]
+ ],
+ "example": {
+ "name": "APPWRITE_DATABASE_ID",
+ "description": "The ID of the Appwrite database that contains the collection to sync.",
+ "value": "512",
+ "secret": false,
+ "placeholder": "64a55...7b912",
+ "required": false,
+ "type": "password"
+ }
},
"installation": {
"description": "Installation",
@@ -39355,7 +40390,15 @@
"provider",
"organization",
"providerInstallationId"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "provider": "github",
+ "organization": "appwrite",
+ "providerInstallationId": "5322"
+ }
},
"providerRepository": {
"description": "ProviderRepository",
@@ -39386,6 +40429,11 @@
"description": "Is VCS (Version Control System) repository private?",
"x-example": true
},
+ "defaultBranch": {
+ "type": "string",
+ "description": "VCS (Version Control System) repository's default branch name.",
+ "x-example": "main"
+ },
"pushedAt": {
"type": "string",
"description": "Last commit date in ISO 8601 format.",
@@ -39398,8 +40446,18 @@
"organization",
"provider",
"private",
+ "defaultBranch",
"pushedAt"
- ]
+ ],
+ "example": {
+ "id": "5e5ea5c16897e",
+ "name": "appwrite",
+ "organization": "appwrite",
+ "provider": "github",
+ "private": true,
+ "defaultBranch": "main",
+ "pushedAt": "datetime"
+ }
},
"providerRepositoryFramework": {
"description": "ProviderRepositoryFramework",
@@ -39430,6 +40488,11 @@
"description": "Is VCS (Version Control System) repository private?",
"x-example": true
},
+ "defaultBranch": {
+ "type": "string",
+ "description": "VCS (Version Control System) repository's default branch name.",
+ "x-example": "main"
+ },
"pushedAt": {
"type": "string",
"description": "Last commit date in ISO 8601 format.",
@@ -39447,9 +40510,20 @@
"organization",
"provider",
"private",
+ "defaultBranch",
"pushedAt",
"framework"
- ]
+ ],
+ "example": {
+ "id": "5e5ea5c16897e",
+ "name": "appwrite",
+ "organization": "appwrite",
+ "provider": "github",
+ "private": true,
+ "defaultBranch": "main",
+ "pushedAt": "datetime",
+ "framework": "nextjs"
+ }
},
"providerRepositoryRuntime": {
"description": "ProviderRepositoryRuntime",
@@ -39480,6 +40554,11 @@
"description": "Is VCS (Version Control System) repository private?",
"x-example": true
},
+ "defaultBranch": {
+ "type": "string",
+ "description": "VCS (Version Control System) repository's default branch name.",
+ "x-example": "main"
+ },
"pushedAt": {
"type": "string",
"description": "Last commit date in ISO 8601 format.",
@@ -39497,9 +40576,20 @@
"organization",
"provider",
"private",
+ "defaultBranch",
"pushedAt",
"runtime"
- ]
+ ],
+ "example": {
+ "id": "5e5ea5c16897e",
+ "name": "appwrite",
+ "organization": "appwrite",
+ "provider": "github",
+ "private": true,
+ "defaultBranch": "main",
+ "pushedAt": "datetime",
+ "runtime": "node-22"
+ }
},
"detectionFramework": {
"description": "DetectionFramework",
@@ -39531,7 +40621,13 @@
"installCommand",
"buildCommand",
"outputDirectory"
- ]
+ ],
+ "example": {
+ "framework": "nuxt",
+ "installCommand": "npm install",
+ "buildCommand": "npm run build",
+ "outputDirectory": "dist"
+ }
},
"detectionRuntime": {
"description": "DetectionRuntime",
@@ -39557,7 +40653,12 @@
"runtime",
"entrypoint",
"commands"
- ]
+ ],
+ "example": {
+ "runtime": "node",
+ "entrypoint": "index.js",
+ "commands": "npm install && npm run build"
+ }
},
"vcsContent": {
"description": "VcsContents",
@@ -39584,7 +40685,12 @@
},
"required": [
"name"
- ]
+ ],
+ "example": {
+ "size": 1523,
+ "isDirectory": true,
+ "name": "Main.java"
+ }
},
"branch": {
"description": "Branch",
@@ -39598,7 +40704,10 @@
},
"required": [
"name"
- ]
+ ],
+ "example": {
+ "name": "main"
+ }
},
"runtime": {
"description": "Runtime",
@@ -39657,7 +40766,17 @@
"image",
"logo",
"supports"
- ]
+ ],
+ "example": {
+ "$id": "python-3.8",
+ "key": "python",
+ "name": "Python",
+ "version": "3.8",
+ "base": "python:3.8-alpine",
+ "image": "appwrite\\\/runtime-for-python:3.8",
+ "logo": "python.png",
+ "supports": "amd64"
+ }
},
"framework": {
"description": "Framework",
@@ -39712,7 +40831,25 @@
"buildRuntime",
"runtimes",
"adapters"
- ]
+ ],
+ "example": {
+ "key": "sveltekit",
+ "name": "SvelteKit",
+ "buildRuntime": "node-22",
+ "runtimes": [
+ "static-1",
+ "node-22"
+ ],
+ "adapters": [
+ {
+ "key": "static",
+ "buildRuntime": "node-22",
+ "buildCommand": "npm run build",
+ "installCommand": "npm install",
+ "outputDirectory": ".\/dist"
+ }
+ ]
+ }
},
"frameworkAdapter": {
"description": "Framework Adapter",
@@ -39750,7 +40887,14 @@
"buildCommand",
"outputDirectory",
"fallbackFile"
- ]
+ ],
+ "example": {
+ "key": "static",
+ "installCommand": "npm install",
+ "buildCommand": "npm run build",
+ "outputDirectory": ".\/dist",
+ "fallbackFile": "index.html"
+ }
},
"deployment": {
"description": "Deployment",
@@ -39924,7 +41068,36 @@
"providerCommitMessage",
"providerCommitUrl",
"providerBranchUrl"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "type": "vcs",
+ "resourceId": "5e5ea6g16897e",
+ "resourceType": "functions",
+ "entrypoint": "index.js",
+ "sourceSize": 128,
+ "buildSize": 128,
+ "totalSize": 128,
+ "buildId": "5e5ea5c16897e",
+ "activate": true,
+ "screenshotLight": "5e5ea5c16897e",
+ "screenshotDark": "5e5ea5c16897e",
+ "status": "ready",
+ "buildLogs": "Compiling source files...",
+ "buildDuration": 128,
+ "providerRepositoryName": "database",
+ "providerRepositoryOwner": "utopia",
+ "providerRepositoryUrl": "https:\/\/github.com\/vermakhushboo\/g4-node-function",
+ "providerBranch": "0.7.x",
+ "providerCommitHash": "7c3f25d",
+ "providerCommitAuthorUrl": "https:\/\/github.com\/vermakhushboo",
+ "providerCommitAuthor": "Khushboo Verma",
+ "providerCommitMessage": "Update index.js",
+ "providerCommitUrl": "https:\/\/github.com\/vermakhushboo\/g4-node-function\/commit\/60c0416257a9cbcdd96b2d370c38d8f8d150ccfb",
+ "providerBranchUrl": "https:\/\/github.com\/vermakhushboo\/appwrite\/tree\/0.7.x"
+ }
},
"execution": {
"description": "Execution",
@@ -39960,6 +41133,11 @@
"description": "Function ID.",
"x-example": "5e5ea6g16897e"
},
+ "deploymentId": {
+ "type": "string",
+ "description": "Function's deployment ID used to create the execution.",
+ "x-example": "5e5ea5c16897e"
+ },
"trigger": {
"type": "string",
"description": "The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.",
@@ -40044,6 +41222,7 @@
"$updatedAt",
"$permissions",
"functionId",
+ "deploymentId",
"trigger",
"status",
"requestMethod",
@@ -40055,7 +41234,37 @@
"logs",
"errors",
"duration"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "$permissions": [
+ "any"
+ ],
+ "functionId": "5e5ea6g16897e",
+ "deploymentId": "5e5ea5c16897e",
+ "trigger": "http",
+ "status": "processing",
+ "requestMethod": "GET",
+ "requestPath": "\/articles?id=5",
+ "requestHeaders": [
+ {
+ "Content-Type": "application\/json"
+ }
+ ],
+ "responseStatusCode": 200,
+ "responseBody": "",
+ "responseHeaders": [
+ {
+ "Content-Type": "application\/json"
+ }
+ ],
+ "logs": "",
+ "errors": "",
+ "duration": 0.4,
+ "scheduledAt": "2020-10-15T06:38:00.000+00:00"
+ }
},
"project": {
"description": "Project",
@@ -40451,7 +41660,73 @@
"serviceStatusForFunctions",
"serviceStatusForGraphql",
"serviceStatusForMessaging"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "New Project",
+ "description": "This is a new project.",
+ "teamId": "1592981250",
+ "logo": "5f5c451b403cb",
+ "url": "5f5c451b403cb",
+ "legalName": "Company LTD.",
+ "legalCountry": "US",
+ "legalState": "New York",
+ "legalCity": "New York City.",
+ "legalAddress": "620 Eighth Avenue, New York, NY 10018",
+ "legalTaxId": "131102020",
+ "authDuration": 60,
+ "authLimit": 100,
+ "authSessionsLimit": 10,
+ "authPasswordHistory": 5,
+ "authPasswordDictionary": true,
+ "authPersonalDataCheck": true,
+ "authMockNumbers": [
+ {}
+ ],
+ "authSessionAlerts": true,
+ "authMembershipsUserName": true,
+ "authMembershipsUserEmail": true,
+ "authMembershipsMfa": true,
+ "oAuthProviders": [
+ {}
+ ],
+ "platforms": {},
+ "webhooks": {},
+ "keys": {},
+ "devKeys": {},
+ "smtpEnabled": false,
+ "smtpSenderName": "John Appwrite",
+ "smtpSenderEmail": "john@appwrite.io",
+ "smtpReplyTo": "support@appwrite.io",
+ "smtpHost": "mail.appwrite.io",
+ "smtpPort": 25,
+ "smtpUsername": "emailuser",
+ "smtpPassword": "securepassword",
+ "smtpSecure": "tls",
+ "pingCount": 1,
+ "pingedAt": "2020-10-15T06:38:00.000+00:00",
+ "authEmailPassword": true,
+ "authUsersAuthMagicURL": true,
+ "authEmailOtp": true,
+ "authAnonymous": true,
+ "authInvites": true,
+ "authJWT": true,
+ "authPhone": true,
+ "serviceStatusForAccount": true,
+ "serviceStatusForAvatars": true,
+ "serviceStatusForDatabases": true,
+ "serviceStatusForLocale": true,
+ "serviceStatusForHealth": true,
+ "serviceStatusForStorage": true,
+ "serviceStatusForTeams": true,
+ "serviceStatusForUsers": true,
+ "serviceStatusForSites": true,
+ "serviceStatusForFunctions": true,
+ "serviceStatusForGraphql": true,
+ "serviceStatusForMessaging": true
+ }
},
"webhook": {
"description": "Webhook",
@@ -40541,7 +41816,22 @@
"enabled",
"logs",
"attempts"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "My Webhook",
+ "url": "https:\/\/example.com\/webhook",
+ "events": "database.collections.update",
+ "security": true,
+ "httpUser": "username",
+ "httpPass": "password",
+ "signatureKey": "ad3d581ca230e2b7059c545e5a",
+ "enabled": true,
+ "logs": "Failed to connect to remote server.",
+ "attempts": 10
+ }
},
"key": {
"description": "Key",
@@ -40609,7 +41899,18 @@
"secret",
"accessedAt",
"sdks"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "My API Key",
+ "expire": "2020-10-15T06:38:00.000+00:00",
+ "scopes": "users.read",
+ "secret": "919c2d18fb5d4...a2ae413da83346ad2",
+ "accessedAt": "2020-10-15T06:38:00.000+00:00",
+ "sdks": "appwrite:flutter"
+ }
},
"devKey": {
"description": "DevKey",
@@ -40668,7 +41969,17 @@
"secret",
"accessedAt",
"sdks"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "Dev API Key",
+ "expire": "2020-10-15T06:38:00.000+00:00",
+ "secret": "919c2d18fb5d4...a2ae413da83346ad2",
+ "accessedAt": "2020-10-15T06:38:00.000+00:00",
+ "sdks": "appwrite:flutter"
+ }
},
"mockNumber": {
"description": "Mock Number",
@@ -40688,7 +41999,11 @@
"required": [
"phone",
"otp"
- ]
+ ],
+ "example": {
+ "phone": "+1612842323",
+ "otp": "123456"
+ }
},
"authProvider": {
"description": "AuthProvider",
@@ -40726,7 +42041,14 @@
"appId",
"secret",
"enabled"
- ]
+ ],
+ "example": {
+ "key": "github",
+ "name": "GitHub",
+ "appId": "259125845563242502",
+ "secret": "Bpw_g9c2TGXxfgLshDbSaL8tsCcqgczQ",
+ "enabled": ""
+ }
},
"platform": {
"description": "Platform",
@@ -40794,7 +42116,19 @@
"hostname",
"httpUser",
"httpPass"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "My Web App",
+ "type": "web",
+ "key": "com.company.appname",
+ "store": "",
+ "hostname": true,
+ "httpUser": "username",
+ "httpPass": "password"
+ }
},
"variable": {
"description": "Variable",
@@ -40850,7 +42184,17 @@
"secret",
"resourceType",
"resourceId"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "key": "API_KEY",
+ "value": "myPa$$word1",
+ "secret": false,
+ "resourceType": "function",
+ "resourceId": "myAwesomeFunction"
+ }
},
"country": {
"description": "Country",
@@ -40870,7 +42214,11 @@
"required": [
"name",
"code"
- ]
+ ],
+ "example": {
+ "name": "United States",
+ "code": "US"
+ }
},
"continent": {
"description": "Continent",
@@ -40890,7 +42238,11 @@
"required": [
"name",
"code"
- ]
+ ],
+ "example": {
+ "name": "Europe",
+ "code": "EU"
+ }
},
"language": {
"description": "Language",
@@ -40916,7 +42268,12 @@
"name",
"code",
"nativeName"
- ]
+ ],
+ "example": {
+ "name": "Italian",
+ "code": "it",
+ "nativeName": "Italiano"
+ }
},
"currency": {
"description": "Currency",
@@ -40968,7 +42325,16 @@
"rounding",
"code",
"namePlural"
- ]
+ ],
+ "example": {
+ "symbol": "$",
+ "name": "US dollar",
+ "symbolNative": "$",
+ "decimalDigits": 2,
+ "rounding": 0,
+ "code": "USD",
+ "namePlural": "US dollars"
+ }
},
"phone": {
"description": "Phone",
@@ -40994,7 +42360,12 @@
"code",
"countryCode",
"countryName"
- ]
+ ],
+ "example": {
+ "code": "+1",
+ "countryCode": "US",
+ "countryName": "United States"
+ }
},
"healthAntivirus": {
"description": "Health Antivirus",
@@ -41014,7 +42385,11 @@
"required": [
"version",
"status"
- ]
+ ],
+ "example": {
+ "version": "1.0.0",
+ "status": "online"
+ }
},
"healthQueue": {
"description": "Health Queue",
@@ -41029,7 +42404,10 @@
},
"required": [
"size"
- ]
+ ],
+ "example": {
+ "size": 8
+ }
},
"healthStatus": {
"description": "Health Status",
@@ -41056,7 +42434,12 @@
"name",
"ping",
"status"
- ]
+ ],
+ "example": {
+ "name": "database",
+ "ping": 128,
+ "status": "pass"
+ }
},
"healthCertificate": {
"description": "Health Certificate",
@@ -41100,7 +42483,15 @@
"validFrom",
"validTo",
"signatureTypeSN"
- ]
+ ],
+ "example": {
+ "name": "\/CN=www.google.com",
+ "subjectSN": "",
+ "issuerOrganisation": "",
+ "validFrom": "1704200998",
+ "validTo": "1711458597",
+ "signatureTypeSN": "RSA-SHA256"
+ }
},
"healthTime": {
"description": "Health Time",
@@ -41129,7 +42520,12 @@
"remoteTime",
"localTime",
"diff"
- ]
+ ],
+ "example": {
+ "remoteTime": 1639490751,
+ "localTime": 1639490844,
+ "diff": 93
+ }
},
"metric": {
"description": "Metric",
@@ -41150,7 +42546,11 @@
"required": [
"value",
"date"
- ]
+ ],
+ "example": {
+ "value": 1,
+ "date": "2020-10-15T06:38:00.000+00:00"
+ }
},
"metricBreakdown": {
"description": "Metric Breakdown",
@@ -41184,7 +42584,13 @@
"required": [
"name",
"value"
- ]
+ ],
+ "example": {
+ "resourceId": "5e5ea5c16897e",
+ "name": "Documents",
+ "value": 1,
+ "estimate": 1
+ }
},
"usageDatabases": {
"description": "UsageDatabases",
@@ -41294,7 +42700,22 @@
"storage",
"databasesReads",
"databasesWrites"
- ]
+ ],
+ "example": {
+ "range": "30d",
+ "databasesTotal": 0,
+ "collectionsTotal": 0,
+ "documentsTotal": 0,
+ "storageTotal": 0,
+ "databasesReadsTotal": 0,
+ "databasesWritesTotal": 0,
+ "databases": [],
+ "collections": [],
+ "documents": [],
+ "storage": [],
+ "databasesReads": [],
+ "databasesWrites": []
+ }
},
"usageDatabase": {
"description": "UsageDatabase",
@@ -41388,7 +42809,20 @@
"storage",
"databaseReads",
"databaseWrites"
- ]
+ ],
+ "example": {
+ "range": "30d",
+ "collectionsTotal": 0,
+ "documentsTotal": 0,
+ "storageTotal": 0,
+ "databaseReadsTotal": 0,
+ "databaseWritesTotal": 0,
+ "collections": [],
+ "documents": [],
+ "storage": [],
+ "databaseReads": [],
+ "databaseWrites": []
+ }
},
"usageCollection": {
"description": "UsageCollection",
@@ -41418,7 +42852,12 @@
"range",
"documentsTotal",
"documents"
- ]
+ ],
+ "example": {
+ "range": "30d",
+ "documentsTotal": 0,
+ "documents": []
+ }
},
"usageUsers": {
"description": "UsageUsers",
@@ -41464,7 +42903,14 @@
"sessionsTotal",
"users",
"sessions"
- ]
+ ],
+ "example": {
+ "range": "30d",
+ "usersTotal": 0,
+ "sessionsTotal": 0,
+ "users": [],
+ "sessions": []
+ }
},
"usageStorage": {
"description": "StorageUsage",
@@ -41526,7 +42972,16 @@
"buckets",
"files",
"storage"
- ]
+ ],
+ "example": {
+ "range": "30d",
+ "bucketsTotal": 0,
+ "filesTotal": 0,
+ "filesStorageTotal": 0,
+ "buckets": [],
+ "files": [],
+ "storage": []
+ }
},
"usageBuckets": {
"description": "UsageBuckets",
@@ -41588,7 +43043,16 @@
"storage",
"imageTransformations",
"imageTransformationsTotal"
- ]
+ ],
+ "example": {
+ "range": "30d",
+ "filesTotal": 0,
+ "filesStorageTotal": 0,
+ "files": [],
+ "storage": [],
+ "imageTransformations": [],
+ "imageTransformationsTotal": 0
+ }
},
"usageFunctions": {
"description": "UsageFunctions",
@@ -41794,7 +43258,34 @@
"executionsMbSeconds",
"buildsSuccess",
"buildsFailed"
- ]
+ ],
+ "example": {
+ "range": "30d",
+ "functionsTotal": 0,
+ "deploymentsTotal": 0,
+ "deploymentsStorageTotal": 0,
+ "buildsTotal": 0,
+ "buildsStorageTotal": 0,
+ "buildsTimeTotal": 0,
+ "buildsMbSecondsTotal": 0,
+ "executionsTotal": 0,
+ "executionsTimeTotal": 0,
+ "executionsMbSecondsTotal": 0,
+ "functions": 0,
+ "deployments": [],
+ "deploymentsStorage": [],
+ "buildsSuccessTotal": 0,
+ "buildsFailedTotal": 0,
+ "builds": [],
+ "buildsStorage": [],
+ "buildsTime": [],
+ "buildsMbSeconds": [],
+ "executions": [],
+ "executionsTime": [],
+ "executionsMbSeconds": [],
+ "buildsSuccess": [],
+ "buildsFailed": []
+ }
},
"usageFunction": {
"description": "UsageFunction",
@@ -41991,7 +43482,33 @@
"executionsMbSeconds",
"buildsSuccess",
"buildsFailed"
- ]
+ ],
+ "example": {
+ "range": "30d",
+ "deploymentsTotal": 0,
+ "deploymentsStorageTotal": 0,
+ "buildsTotal": 0,
+ "buildsSuccessTotal": 0,
+ "buildsFailedTotal": 0,
+ "buildsStorageTotal": 0,
+ "buildsTimeTotal": 0,
+ "buildsTimeAverage": 0,
+ "buildsMbSecondsTotal": 0,
+ "executionsTotal": 0,
+ "executionsTimeTotal": 0,
+ "executionsMbSecondsTotal": 0,
+ "deployments": [],
+ "deploymentsStorage": [],
+ "builds": [],
+ "buildsStorage": [],
+ "buildsTime": [],
+ "buildsMbSeconds": [],
+ "executions": [],
+ "executionsTime": [],
+ "executionsMbSeconds": [],
+ "buildsSuccess": [],
+ "buildsFailed": []
+ }
},
"usageSites": {
"description": "UsageSites",
@@ -42245,7 +43762,40 @@
"inbound",
"outboundTotal",
"outbound"
- ]
+ ],
+ "example": {
+ "range": "30d",
+ "deploymentsTotal": 0,
+ "deploymentsStorageTotal": 0,
+ "buildsTotal": 0,
+ "buildsStorageTotal": 0,
+ "buildsTimeTotal": 0,
+ "buildsMbSecondsTotal": 0,
+ "executionsTotal": 0,
+ "executionsTimeTotal": 0,
+ "executionsMbSecondsTotal": 0,
+ "deployments": [],
+ "deploymentsStorage": [],
+ "buildsSuccessTotal": 0,
+ "buildsFailedTotal": 0,
+ "builds": [],
+ "buildsStorage": [],
+ "buildsTime": [],
+ "buildsMbSeconds": [],
+ "executions": [],
+ "executionsTime": [],
+ "executionsMbSeconds": [],
+ "buildsSuccess": [],
+ "buildsFailed": [],
+ "sitesTotal": 0,
+ "sites": [],
+ "requestsTotal": 0,
+ "requests": [],
+ "inboundTotal": 0,
+ "inbound": [],
+ "outboundTotal": 0,
+ "outbound": []
+ }
},
"usageSite": {
"description": "UsageSite",
@@ -42490,7 +44040,39 @@
"inbound",
"outboundTotal",
"outbound"
- ]
+ ],
+ "example": {
+ "range": "30d",
+ "deploymentsTotal": 0,
+ "deploymentsStorageTotal": 0,
+ "buildsTotal": 0,
+ "buildsSuccessTotal": 0,
+ "buildsFailedTotal": 0,
+ "buildsStorageTotal": 0,
+ "buildsTimeTotal": 0,
+ "buildsTimeAverage": 0,
+ "buildsMbSecondsTotal": 0,
+ "executionsTotal": 0,
+ "executionsTimeTotal": 0,
+ "executionsMbSecondsTotal": 0,
+ "deployments": [],
+ "deploymentsStorage": [],
+ "builds": [],
+ "buildsStorage": [],
+ "buildsTime": [],
+ "buildsMbSeconds": [],
+ "executions": [],
+ "executionsTime": [],
+ "executionsMbSeconds": [],
+ "buildsSuccess": [],
+ "buildsFailed": [],
+ "requestsTotal": 0,
+ "requests": [],
+ "inboundTotal": 0,
+ "inbound": [],
+ "outboundTotal": 0,
+ "outbound": []
+ }
},
"usageProject": {
"description": "UsageProject",
@@ -42743,7 +44325,40 @@
"databasesWrites",
"imageTransformations",
"imageTransformationsTotal"
- ]
+ ],
+ "example": {
+ "executionsTotal": 0,
+ "documentsTotal": 0,
+ "databasesTotal": 0,
+ "databasesStorageTotal": 0,
+ "usersTotal": 0,
+ "filesStorageTotal": 0,
+ "functionsStorageTotal": 0,
+ "buildsStorageTotal": 0,
+ "deploymentsStorageTotal": 0,
+ "bucketsTotal": 0,
+ "executionsMbSecondsTotal": 0,
+ "buildsMbSecondsTotal": 0,
+ "databasesReadsTotal": 0,
+ "databasesWritesTotal": 0,
+ "requests": [],
+ "network": [],
+ "users": [],
+ "executions": [],
+ "executionsBreakdown": [],
+ "bucketsBreakdown": [],
+ "databasesStorageBreakdown": [],
+ "executionsMbSecondsBreakdown": [],
+ "buildsMbSecondsBreakdown": [],
+ "functionsStorageBreakdown": [],
+ "authPhoneTotal": 0,
+ "authPhoneEstimate": 0,
+ "authPhoneCountryBreakdown": [],
+ "databasesReads": [],
+ "databasesWrites": [],
+ "imageTransformations": [],
+ "imageTransformationsTotal": 0
+ }
},
"headers": {
"description": "Headers",
@@ -42763,7 +44378,11 @@
"required": [
"name",
"value"
- ]
+ ],
+ "example": {
+ "name": "Content-Type",
+ "value": "application\/json"
+ }
},
"specification": {
"description": "Specification",
@@ -42797,7 +44416,13 @@
"cpus",
"enabled",
"slug"
- ]
+ ],
+ "example": {
+ "memory": 512,
+ "cpus": 1,
+ "enabled": true,
+ "slug": "s-1vcpu-512mb"
+ }
},
"proxyRule": {
"description": "Rule",
@@ -42896,7 +44521,24 @@
"status",
"logs",
"renewAt"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "domain": "appwrite.company.com",
+ "type": "deployment",
+ "trigger": "manual",
+ "redirectUrl": "https:\/\/appwrite.io\/docs",
+ "redirectStatusCode": 301,
+ "deploymentId": "n3u9feiwmf",
+ "deploymentResourceType": "function",
+ "deploymentResourceId": "n3u9feiwmf",
+ "deploymentVcsProviderBranch": "function",
+ "status": "verified",
+ "logs": "HTTP challegne failed.",
+ "renewAt": "datetime"
+ }
},
"smsTemplate": {
"description": "SmsTemplate",
@@ -42922,7 +44564,12 @@
"type",
"locale",
"message"
- ]
+ ],
+ "example": {
+ "type": "verification",
+ "locale": "en_us",
+ "message": "Click on the link to verify your account."
+ }
},
"emailTemplate": {
"description": "EmailTemplate",
@@ -42972,7 +44619,16 @@
"senderEmail",
"replyTo",
"subject"
- ]
+ ],
+ "example": {
+ "type": "verification",
+ "locale": "en_us",
+ "message": "Click on the link to verify your account.",
+ "senderName": "My User",
+ "senderEmail": "mail@appwrite.io",
+ "replyTo": "emails@appwrite.io",
+ "subject": "Please verify your email address"
+ }
},
"consoleVariables": {
"description": "Console Variables",
@@ -42993,6 +44649,11 @@
"description": "AAAA target for your Appwrite custom domains.",
"x-example": "::1"
},
+ "_APP_DOMAIN_TARGET_CAA": {
+ "type": "string",
+ "description": "CAA target for your Appwrite custom domains.",
+ "x-example": "digicert.com"
+ },
"_APP_STORAGE_LIMIT": {
"type": "integer",
"description": "Maximum file size allowed for file upload in bytes.",
@@ -43050,6 +44711,7 @@
"_APP_DOMAIN_TARGET_CNAME",
"_APP_DOMAIN_TARGET_A",
"_APP_DOMAIN_TARGET_AAAA",
+ "_APP_DOMAIN_TARGET_CAA",
"_APP_STORAGE_LIMIT",
"_APP_COMPUTE_SIZE_LIMIT",
"_APP_USAGE_STATS",
@@ -43060,7 +44722,23 @@
"_APP_DOMAIN_FUNCTIONS",
"_APP_OPTIONS_FORCE_HTTPS",
"_APP_DOMAINS_NAMESERVERS"
- ]
+ ],
+ "example": {
+ "_APP_DOMAIN_TARGET_CNAME": "appwrite.io",
+ "_APP_DOMAIN_TARGET_A": "127.0.0.1",
+ "_APP_DOMAIN_TARGET_AAAA": "::1",
+ "_APP_DOMAIN_TARGET_CAA": "digicert.com",
+ "_APP_STORAGE_LIMIT": "30000000",
+ "_APP_COMPUTE_SIZE_LIMIT": "30000000",
+ "_APP_USAGE_STATS": "enabled",
+ "_APP_VCS_ENABLED": true,
+ "_APP_DOMAIN_ENABLED": true,
+ "_APP_ASSISTANT_ENABLED": true,
+ "_APP_DOMAIN_SITES": "sites.localhost",
+ "_APP_DOMAIN_FUNCTIONS": "functions.localhost",
+ "_APP_OPTIONS_FORCE_HTTPS": "enabled",
+ "_APP_DOMAINS_NAMESERVERS": "ns1.example.com,ns2.example.com"
+ }
},
"mfaChallenge": {
"description": "MFA Challenge",
@@ -43092,7 +44770,13 @@
"$createdAt",
"userId",
"expire"
- ]
+ ],
+ "example": {
+ "$id": "bb8ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5ea5c168bb8",
+ "expire": "2020-10-15T06:38:00.000+00:00"
+ }
},
"mfaRecoveryCodes": {
"description": "MFA Recovery Codes",
@@ -43112,7 +44796,13 @@
},
"required": [
"recoveryCodes"
- ]
+ ],
+ "example": {
+ "recoveryCodes": [
+ "a3kf0-s0cl2",
+ "s0co1-as98s"
+ ]
+ }
},
"mfaType": {
"description": "MFAType",
@@ -43132,7 +44822,11 @@
"required": [
"secret",
"uri"
- ]
+ ],
+ "example": {
+ "secret": true,
+ "uri": true
+ }
},
"mfaFactors": {
"description": "MFAFactors",
@@ -43164,7 +44858,13 @@
"phone",
"email",
"recoveryCode"
- ]
+ ],
+ "example": {
+ "totp": true,
+ "phone": true,
+ "email": true,
+ "recoveryCode": true
+ }
},
"provider": {
"description": "Provider",
@@ -43230,7 +44930,22 @@
"enabled",
"type",
"credentials"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "Mailgun",
+ "provider": "mailgun",
+ "enabled": true,
+ "type": "sms",
+ "credentials": {
+ "key": "123456789"
+ },
+ "options": {
+ "from": "sender-email@mydomain"
+ }
+ }
},
"message": {
"description": "Message",
@@ -43340,7 +45055,33 @@
"deliveredTotal",
"data",
"status"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "providerType": "email",
+ "topics": [
+ "5e5ea5c16897e"
+ ],
+ "users": [
+ "5e5ea5c16897e"
+ ],
+ "targets": [
+ "5e5ea5c16897e"
+ ],
+ "scheduledAt": "2020-10-15T06:38:00.000+00:00",
+ "deliveredAt": "2020-10-15T06:38:00.000+00:00",
+ "deliveryErrors": [
+ "Failed to send message to target 5e5ea5c16897e: Credentials not valid."
+ ],
+ "deliveredTotal": 1,
+ "data": {
+ "subject": "Welcome to Appwrite",
+ "content": "Hi there, welcome to Appwrite family."
+ },
+ "status": "Message status can be one of the following: draft, processing, scheduled, sent, or failed."
+ }
},
"topic": {
"description": "Topic",
@@ -43402,7 +45143,17 @@
"smsTotal",
"pushTotal",
"subscribe"
- ]
+ ],
+ "example": {
+ "$id": "259125845563242502",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "events",
+ "emailTotal": 100,
+ "smsTotal": 100,
+ "pushTotal": 100,
+ "subscribe": "users"
+ }
},
"subscriber": {
"description": "Subscriber",
@@ -43476,7 +45227,27 @@
"userName",
"topicId",
"providerType"
- ]
+ ],
+ "example": {
+ "$id": "259125845563242502",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "targetId": "259125845563242502",
+ "target": {
+ "$id": "259125845563242502",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "providerType": "email",
+ "providerId": "259125845563242502",
+ "name": "ageon-app-email",
+ "identifier": "random-mail@email.org",
+ "userId": "5e5ea5c16897e"
+ },
+ "userId": "5e5ea5c16897e",
+ "userName": "Aegon Targaryen",
+ "topicId": "259125845563242502",
+ "providerType": "email"
+ }
},
"target": {
"description": "Target",
@@ -43538,7 +45309,18 @@
"providerType",
"identifier",
"expired"
- ]
+ ],
+ "example": {
+ "$id": "259125845563242502",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "Apple iPhone 12",
+ "userId": "259125845563242502",
+ "providerId": "259125845563242502",
+ "providerType": "email",
+ "identifier": "token",
+ "expired": false
+ }
},
"migration": {
"description": "Migration",
@@ -43626,7 +45408,23 @@
"statusCounters",
"resourceData",
"errors"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "status": "pending",
+ "stage": "init",
+ "source": "Appwrite",
+ "destination": "Appwrite",
+ "resources": [
+ "user"
+ ],
+ "resourceId": "databaseId:collectionId",
+ "statusCounters": "{\"Database\": {\"PENDING\": 0, \"SUCCESS\": 1, \"ERROR\": 0, \"SKIP\": 0, \"PROCESSING\": 0, \"WARNING\": 0}}",
+ "resourceData": "[{\"resource\":\"Database\",\"id\":\"public\",\"status\":\"SUCCESS\",\"message\":\"\"}]",
+ "errors": []
+ }
},
"migrationReport": {
"description": "Migration Report",
@@ -43696,7 +45494,18 @@
"function",
"size",
"version"
- ]
+ ],
+ "example": {
+ "user": 20,
+ "team": 20,
+ "database": 20,
+ "document": 20,
+ "file": 20,
+ "bucket": 20,
+ "function": 20,
+ "size": 30000,
+ "version": "1.4.0"
+ }
}
},
"securitySchemes": {
diff --git a/app/config/specs/open-api3-1.7.x-server.json b/app/config/specs/open-api3-1.7.x-server.json
index db615d642c..65eb2b29d0 100644
--- a/app/config/specs/open-api3-1.7.x-server.json
+++ b/app/config/specs/open-api3-1.7.x-server.json
@@ -1,7 +1,7 @@
{
"openapi": "3.0.0",
"info": {
- "version": "1.7.0",
+ "version": "1.7.4",
"title": "Appwrite",
"description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)",
"termsOfService": "https:\/\/appwrite.io\/policy\/terms",
@@ -2303,7 +2303,7 @@
"tags": [
"account"
],
- "description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).",
+ "description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n",
"responses": {
"201": {
"description": "Token",
@@ -2354,7 +2354,7 @@
"properties": {
"userId": {
"type": "string",
- "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
"x-example": ""
},
"email": {
@@ -2436,7 +2436,7 @@
"properties": {
"userId": {
"type": "string",
- "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
"x-example": ""
},
"email": {
@@ -2658,7 +2658,7 @@
"properties": {
"userId": {
"type": "string",
- "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.",
"x-example": ""
},
"phone": {
@@ -3129,7 +3129,7 @@
"parameters": [
{
"name": "code",
- "description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
+ "description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"schema": {
"type": "string",
@@ -3147,7 +3147,7 @@
"mastercard",
"naranja",
"targeta-shopping",
- "union-china-pay",
+ "unionpay",
"visa",
"mir",
"maestro",
@@ -3167,7 +3167,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
- "Union China Pay",
+ "Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -7497,6 +7497,7 @@
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "documents.write",
"platforms": [
+ "console",
"client",
"server",
"server"
@@ -7505,10 +7506,10 @@
"methods": [
{
"name": "createDocument",
+ "desc": "Create document",
"auth": {
- "Session": [],
- "Key": [],
- "JWT": []
+ "Project": [],
+ "Session": []
},
"parameters": [
"databaseId",
@@ -7529,7 +7530,34 @@
"model": "#\/components\/schemas\/document"
}
],
- "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console."
+ "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.",
+ "demo": "databases\/create-document.md"
+ },
+ {
+ "name": "createDocuments",
+ "desc": "Create documents",
+ "auth": {
+ "Project": [],
+ "Key": []
+ },
+ "parameters": [
+ "databaseId",
+ "collectionId",
+ "documents"
+ ],
+ "required": [
+ "databaseId",
+ "collectionId",
+ "documents"
+ ],
+ "responses": [
+ {
+ "code": 201,
+ "model": "#\/components\/schemas\/documentList"
+ }
+ ],
+ "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.",
+ "demo": "databases\/create-documents.md"
}
],
"auth": {
@@ -7606,7 +7634,7 @@
}
},
"put": {
- "summary": "Create or update documents",
+ "summary": "Upsert documents",
"operationId": "databasesUpsertDocuments",
"tags": [
"databases"
@@ -7627,7 +7655,7 @@
"x-appwrite": {
"method": "upsertDocuments",
"group": "documents",
- "weight": 116,
+ "weight": 118,
"cookies": false,
"type": "",
"deprecated": false,
@@ -7638,6 +7666,7 @@
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "documents.write",
"platforms": [
+ "console",
"server"
],
"packaging": false,
@@ -7688,7 +7717,10 @@
"type": "object"
}
}
- }
+ },
+ "required": [
+ "documents"
+ ]
}
}
}
@@ -7716,7 +7748,7 @@
"x-appwrite": {
"method": "updateDocuments",
"group": "documents",
- "weight": 115,
+ "weight": 117,
"cookies": false,
"type": "",
"deprecated": false,
@@ -7727,6 +7759,7 @@
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "documents.write",
"platforms": [
+ "console",
"server"
],
"packaging": false,
@@ -7810,7 +7843,7 @@
"x-appwrite": {
"method": "deleteDocuments",
"group": "documents",
- "weight": 118,
+ "weight": 120,
"cookies": false,
"type": "",
"deprecated": false,
@@ -7821,6 +7854,7 @@
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "documents.write",
"platforms": [
+ "console",
"server"
],
"packaging": false,
@@ -8210,7 +8244,7 @@
"x-appwrite": {
"method": "deleteDocument",
"group": "documents",
- "weight": 117,
+ "weight": 119,
"cookies": false,
"type": "",
"deprecated": false,
@@ -8273,6 +8307,240 @@
]
}
},
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": {
+ "patch": {
+ "summary": "Decrement document attribute",
+ "operationId": "databasesDecrementDocumentAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Decrement a specific attribute of a document by a given value.",
+ "responses": {
+ "200": {
+ "description": "Document",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/document"
+ }
+ }
+ }
+ }
+ },
+ "x-appwrite": {
+ "method": "decrementDocumentAttribute",
+ "group": "documents",
+ "weight": 116,
+ "cookies": false,
+ "type": "",
+ "deprecated": false,
+ "demo": "databases\/decrement-document-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/decrement-document-attribute.md",
+ "rate-limit": 120,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": "documents.write",
+ "platforms": [
+ "console",
+ "server",
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": [],
+ "Key": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "documentId",
+ "description": "Document ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "attribute",
+ "description": "Attribute key.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "number",
+ "description": "Value to decrement the attribute by. The value must be a number.",
+ "x-example": null
+ },
+ "min": {
+ "type": "number",
+ "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.",
+ "x-example": null
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": {
+ "patch": {
+ "summary": "Increment document attribute",
+ "operationId": "databasesIncrementDocumentAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Increment a specific attribute of a document by a given value.",
+ "responses": {
+ "200": {
+ "description": "Document",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/document"
+ }
+ }
+ }
+ }
+ },
+ "x-appwrite": {
+ "method": "incrementDocumentAttribute",
+ "group": "documents",
+ "weight": 115,
+ "cookies": false,
+ "type": "",
+ "deprecated": false,
+ "demo": "databases\/increment-document-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/increment-document-attribute.md",
+ "rate-limit": 120,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": "documents.write",
+ "platforms": [
+ "console",
+ "server",
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": [],
+ "Key": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "documentId",
+ "description": "Document ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "attribute",
+ "description": "Attribute key.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "number",
+ "description": "Value to increment the attribute by. The value must be a number.",
+ "x-example": null
+ },
+ "max": {
+ "type": "number",
+ "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.",
+ "x-example": null
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"\/databases\/{databaseId}\/collections\/{collectionId}\/indexes": {
"get": {
"summary": "List indexes",
@@ -8661,7 +8929,7 @@
"x-appwrite": {
"method": "list",
"group": "functions",
- "weight": 376,
+ "weight": 378,
"cookies": false,
"type": "",
"deprecated": false,
@@ -8735,7 +9003,7 @@
"x-appwrite": {
"method": "create",
"group": "functions",
- "weight": 373,
+ "weight": 375,
"cookies": false,
"type": "",
"deprecated": false,
@@ -8818,6 +9086,7 @@
"dart-3.1",
"dart-3.3",
"dart-3.5",
+ "dart-3.8",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@@ -8843,7 +9112,8 @@
"static-1",
"flutter-3.24",
"flutter-3.27",
- "flutter-3.29"
+ "flutter-3.29",
+ "flutter-3.32"
],
"x-enum-name": null,
"x-enum-keys": []
@@ -8967,7 +9237,7 @@
"x-appwrite": {
"method": "listRuntimes",
"group": "runtimes",
- "weight": 378,
+ "weight": 380,
"cookies": false,
"type": "",
"deprecated": false,
@@ -9017,7 +9287,7 @@
"x-appwrite": {
"method": "listSpecifications",
"group": "runtimes",
- "weight": 379,
+ "weight": 381,
"cookies": false,
"type": "",
"deprecated": false,
@@ -9068,7 +9338,7 @@
"x-appwrite": {
"method": "get",
"group": "functions",
- "weight": 374,
+ "weight": 376,
"cookies": false,
"type": "",
"deprecated": false,
@@ -9128,7 +9398,7 @@
"x-appwrite": {
"method": "update",
"group": "functions",
- "weight": 375,
+ "weight": 377,
"cookies": false,
"type": "",
"deprecated": false,
@@ -9218,6 +9488,7 @@
"dart-3.1",
"dart-3.3",
"dart-3.5",
+ "dart-3.8",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@@ -9243,7 +9514,8 @@
"static-1",
"flutter-3.24",
"flutter-3.27",
- "flutter-3.29"
+ "flutter-3.29",
+ "flutter-3.32"
],
"x-enum-name": null,
"x-enum-keys": []
@@ -9357,7 +9629,7 @@
"x-appwrite": {
"method": "delete",
"group": "functions",
- "weight": 377,
+ "weight": 379,
"cookies": false,
"type": "",
"deprecated": false,
@@ -9419,7 +9691,7 @@
"x-appwrite": {
"method": "updateFunctionDeployment",
"group": "functions",
- "weight": 382,
+ "weight": 384,
"cookies": false,
"type": "",
"deprecated": false,
@@ -9500,7 +9772,7 @@
"x-appwrite": {
"method": "listDeployments",
"group": "deployments",
- "weight": 383,
+ "weight": 385,
"cookies": false,
"type": "",
"deprecated": false,
@@ -9584,7 +9856,7 @@
"x-appwrite": {
"method": "createDeployment",
"group": "deployments",
- "weight": 380,
+ "weight": 382,
"cookies": false,
"type": "upload",
"deprecated": false,
@@ -9681,7 +9953,7 @@
"x-appwrite": {
"method": "createDuplicateDeployment",
"group": "deployments",
- "weight": 388,
+ "weight": 390,
"cookies": false,
"type": "",
"deprecated": false,
@@ -9767,7 +10039,7 @@
"x-appwrite": {
"method": "createTemplateDeployment",
"group": "deployments",
- "weight": 385,
+ "weight": 387,
"cookies": false,
"type": "",
"deprecated": false,
@@ -9871,7 +10143,7 @@
"x-appwrite": {
"method": "createVcsDeployment",
"group": "deployments",
- "weight": 386,
+ "weight": 388,
"cookies": false,
"type": "",
"deprecated": false,
@@ -9969,7 +10241,7 @@
"x-appwrite": {
"method": "getDeployment",
"group": "deployments",
- "weight": 381,
+ "weight": 383,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10032,7 +10304,7 @@
"x-appwrite": {
"method": "deleteDeployment",
"group": "deployments",
- "weight": 384,
+ "weight": 386,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10097,7 +10369,7 @@
"x-appwrite": {
"method": "getDeploymentDownload",
"group": "deployments",
- "weight": 387,
+ "weight": 389,
"cookies": false,
"type": "location",
"deprecated": false,
@@ -10188,7 +10460,7 @@
"x-appwrite": {
"method": "updateDeploymentStatus",
"group": "deployments",
- "weight": 389,
+ "weight": 391,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10260,7 +10532,7 @@
"x-appwrite": {
"method": "listExecutions",
"group": "executions",
- "weight": 392,
+ "weight": 394,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10337,7 +10609,7 @@
"x-appwrite": {
"method": "createExecution",
"group": "executions",
- "weight": 390,
+ "weight": 392,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10422,7 +10694,7 @@
"scheduledAt": {
"type": "string",
"description": "Scheduled execution time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.",
- "x-example": null
+ "x-example": ""
}
}
}
@@ -10454,7 +10726,7 @@
"x-appwrite": {
"method": "getExecution",
"group": "executions",
- "weight": 391,
+ "weight": 393,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10521,7 +10793,7 @@
"x-appwrite": {
"method": "deleteExecution",
"group": "executions",
- "weight": 393,
+ "weight": 395,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10593,7 +10865,7 @@
"x-appwrite": {
"method": "listVariables",
"group": "variables",
- "weight": 398,
+ "weight": 400,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10653,7 +10925,7 @@
"x-appwrite": {
"method": "createVariable",
"group": "variables",
- "weight": 396,
+ "weight": 398,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10745,7 +11017,7 @@
"x-appwrite": {
"method": "getVariable",
"group": "variables",
- "weight": 397,
+ "weight": 399,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10815,7 +11087,7 @@
"x-appwrite": {
"method": "updateVariable",
"group": "variables",
- "weight": 399,
+ "weight": 401,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10907,7 +11179,7 @@
"x-appwrite": {
"method": "deleteVariable",
"group": "variables",
- "weight": 400,
+ "weight": 402,
"cookies": false,
"type": "",
"deprecated": false,
@@ -10979,7 +11251,7 @@
"x-appwrite": {
"method": "query",
"group": "graphql",
- "weight": 306,
+ "weight": 308,
"cookies": false,
"type": "graphql",
"deprecated": false,
@@ -11033,7 +11305,7 @@
"x-appwrite": {
"method": "mutation",
"group": "graphql",
- "weight": 305,
+ "weight": 307,
"cookies": false,
"type": "graphql",
"deprecated": false,
@@ -11087,7 +11359,7 @@
"x-appwrite": {
"method": "get",
"group": "health",
- "weight": 130,
+ "weight": 132,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11137,7 +11409,7 @@
"x-appwrite": {
"method": "getAntivirus",
"group": "health",
- "weight": 151,
+ "weight": 153,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11187,7 +11459,7 @@
"x-appwrite": {
"method": "getCache",
"group": "health",
- "weight": 133,
+ "weight": 135,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11237,7 +11509,7 @@
"x-appwrite": {
"method": "getCertificate",
"group": "health",
- "weight": 138,
+ "weight": 140,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11298,7 +11570,7 @@
"x-appwrite": {
"method": "getDB",
"group": "health",
- "weight": 132,
+ "weight": 134,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11348,7 +11620,7 @@
"x-appwrite": {
"method": "getPubSub",
"group": "health",
- "weight": 134,
+ "weight": 136,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11398,7 +11670,7 @@
"x-appwrite": {
"method": "getQueueBuilds",
"group": "queue",
- "weight": 140,
+ "weight": 142,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11461,7 +11733,7 @@
"x-appwrite": {
"method": "getQueueCertificates",
"group": "queue",
- "weight": 139,
+ "weight": 141,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11524,7 +11796,7 @@
"x-appwrite": {
"method": "getQueueDatabases",
"group": "queue",
- "weight": 141,
+ "weight": 143,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11598,7 +11870,7 @@
"x-appwrite": {
"method": "getQueueDeletes",
"group": "queue",
- "weight": 142,
+ "weight": 144,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11661,7 +11933,7 @@
"x-appwrite": {
"method": "getFailedJobs",
"group": "queue",
- "weight": 152,
+ "weight": 154,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11750,7 +12022,7 @@
"x-appwrite": {
"method": "getQueueFunctions",
"group": "queue",
- "weight": 146,
+ "weight": 148,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11813,7 +12085,7 @@
"x-appwrite": {
"method": "getQueueLogs",
"group": "queue",
- "weight": 137,
+ "weight": 139,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11876,7 +12148,7 @@
"x-appwrite": {
"method": "getQueueMails",
"group": "queue",
- "weight": 143,
+ "weight": 145,
"cookies": false,
"type": "",
"deprecated": false,
@@ -11939,7 +12211,7 @@
"x-appwrite": {
"method": "getQueueMessaging",
"group": "queue",
- "weight": 144,
+ "weight": 146,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12002,7 +12274,7 @@
"x-appwrite": {
"method": "getQueueMigrations",
"group": "queue",
- "weight": 145,
+ "weight": 147,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12065,7 +12337,7 @@
"x-appwrite": {
"method": "getQueueStatsResources",
"group": "queue",
- "weight": 147,
+ "weight": 149,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12128,7 +12400,7 @@
"x-appwrite": {
"method": "getQueueUsage",
"group": "queue",
- "weight": 148,
+ "weight": 150,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12191,7 +12463,7 @@
"x-appwrite": {
"method": "getQueueWebhooks",
"group": "queue",
- "weight": 136,
+ "weight": 138,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12254,7 +12526,7 @@
"x-appwrite": {
"method": "getStorage",
"group": "storage",
- "weight": 150,
+ "weight": 152,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12304,7 +12576,7 @@
"x-appwrite": {
"method": "getStorageLocal",
"group": "storage",
- "weight": 149,
+ "weight": 151,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12354,7 +12626,7 @@
"x-appwrite": {
"method": "getTime",
"group": "health",
- "weight": 135,
+ "weight": 137,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12404,7 +12676,7 @@
"x-appwrite": {
"method": "get",
"group": null,
- "weight": 122,
+ "weight": 124,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12458,7 +12730,7 @@
"x-appwrite": {
"method": "listCodes",
"group": null,
- "weight": 123,
+ "weight": 125,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12512,7 +12784,7 @@
"x-appwrite": {
"method": "listContinents",
"group": null,
- "weight": 127,
+ "weight": 129,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12566,7 +12838,7 @@
"x-appwrite": {
"method": "listCountries",
"group": null,
- "weight": 124,
+ "weight": 126,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12620,7 +12892,7 @@
"x-appwrite": {
"method": "listCountriesEU",
"group": null,
- "weight": 125,
+ "weight": 127,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12674,7 +12946,7 @@
"x-appwrite": {
"method": "listCountriesPhones",
"group": null,
- "weight": 126,
+ "weight": 128,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12728,7 +13000,7 @@
"x-appwrite": {
"method": "listCurrencies",
"group": null,
- "weight": 128,
+ "weight": 130,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12782,7 +13054,7 @@
"x-appwrite": {
"method": "listLanguages",
"group": null,
- "weight": 129,
+ "weight": 131,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12836,7 +13108,7 @@
"x-appwrite": {
"method": "listMessages",
"group": "messages",
- "weight": 360,
+ "weight": 362,
"cookies": false,
"type": "",
"deprecated": false,
@@ -12913,7 +13185,7 @@
"x-appwrite": {
"method": "createEmail",
"group": "messages",
- "weight": 357,
+ "weight": 359,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13058,7 +13330,7 @@
"x-appwrite": {
"method": "updateEmail",
"group": "messages",
- "weight": 364,
+ "weight": 366,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13205,7 +13477,7 @@
"x-appwrite": {
"method": "createPush",
"group": "messages",
- "weight": 359,
+ "weight": 361,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13380,7 +13652,7 @@
"x-appwrite": {
"method": "updatePush",
"group": "messages",
- "weight": 366,
+ "weight": 368,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13559,7 +13831,7 @@
"x-appwrite": {
"method": "createSms",
"group": "messages",
- "weight": 358,
+ "weight": 360,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13669,7 +13941,7 @@
"x-appwrite": {
"method": "updateSms",
"group": "messages",
- "weight": 365,
+ "weight": 367,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13782,7 +14054,7 @@
"x-appwrite": {
"method": "getMessage",
"group": "messages",
- "weight": 363,
+ "weight": 365,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13836,7 +14108,7 @@
"x-appwrite": {
"method": "delete",
"group": "messages",
- "weight": 367,
+ "weight": 369,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13899,7 +14171,7 @@
"x-appwrite": {
"method": "listMessageLogs",
"group": "logs",
- "weight": 361,
+ "weight": 363,
"cookies": false,
"type": "",
"deprecated": false,
@@ -13975,7 +14247,7 @@
"x-appwrite": {
"method": "listTargets",
"group": "messages",
- "weight": 362,
+ "weight": 364,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14051,7 +14323,7 @@
"x-appwrite": {
"method": "listProviders",
"group": "providers",
- "weight": 332,
+ "weight": 334,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14128,7 +14400,7 @@
"x-appwrite": {
"method": "createApnsProvider",
"group": "providers",
- "weight": 331,
+ "weight": 333,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14234,7 +14506,7 @@
"x-appwrite": {
"method": "updateApnsProvider",
"group": "providers",
- "weight": 344,
+ "weight": 346,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14343,7 +14615,7 @@
"x-appwrite": {
"method": "createFcmProvider",
"group": "providers",
- "weight": 330,
+ "weight": 332,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14429,7 +14701,7 @@
"x-appwrite": {
"method": "updateFcmProvider",
"group": "providers",
- "weight": 343,
+ "weight": 345,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14518,7 +14790,7 @@
"x-appwrite": {
"method": "createMailgunProvider",
"group": "providers",
- "weight": 322,
+ "weight": 324,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14634,7 +14906,7 @@
"x-appwrite": {
"method": "updateMailgunProvider",
"group": "providers",
- "weight": 335,
+ "weight": 337,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14753,7 +15025,7 @@
"x-appwrite": {
"method": "createMsg91Provider",
"group": "providers",
- "weight": 325,
+ "weight": 327,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14849,7 +15121,7 @@
"x-appwrite": {
"method": "updateMsg91Provider",
"group": "providers",
- "weight": 338,
+ "weight": 340,
"cookies": false,
"type": "",
"deprecated": false,
@@ -14948,7 +15220,7 @@
"x-appwrite": {
"method": "createSendgridProvider",
"group": "providers",
- "weight": 323,
+ "weight": 325,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15054,7 +15326,7 @@
"x-appwrite": {
"method": "updateSendgridProvider",
"group": "providers",
- "weight": 336,
+ "weight": 338,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15163,7 +15435,7 @@
"x-appwrite": {
"method": "createSmtpProvider",
"group": "providers",
- "weight": 324,
+ "weight": 326,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15307,7 +15579,7 @@
"x-appwrite": {
"method": "updateSmtpProvider",
"group": "providers",
- "weight": 337,
+ "weight": 339,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15453,7 +15725,7 @@
"x-appwrite": {
"method": "createTelesignProvider",
"group": "providers",
- "weight": 326,
+ "weight": 328,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15549,7 +15821,7 @@
"x-appwrite": {
"method": "updateTelesignProvider",
"group": "providers",
- "weight": 339,
+ "weight": 341,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15648,7 +15920,7 @@
"x-appwrite": {
"method": "createTextmagicProvider",
"group": "providers",
- "weight": 327,
+ "weight": 329,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15744,7 +16016,7 @@
"x-appwrite": {
"method": "updateTextmagicProvider",
"group": "providers",
- "weight": 340,
+ "weight": 342,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15843,7 +16115,7 @@
"x-appwrite": {
"method": "createTwilioProvider",
"group": "providers",
- "weight": 328,
+ "weight": 330,
"cookies": false,
"type": "",
"deprecated": false,
@@ -15939,7 +16211,7 @@
"x-appwrite": {
"method": "updateTwilioProvider",
"group": "providers",
- "weight": 341,
+ "weight": 343,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16038,7 +16310,7 @@
"x-appwrite": {
"method": "createVonageProvider",
"group": "providers",
- "weight": 329,
+ "weight": 331,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16134,7 +16406,7 @@
"x-appwrite": {
"method": "updateVonageProvider",
"group": "providers",
- "weight": 342,
+ "weight": 344,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16233,7 +16505,7 @@
"x-appwrite": {
"method": "getProvider",
"group": "providers",
- "weight": 334,
+ "weight": 336,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16287,7 +16559,7 @@
"x-appwrite": {
"method": "deleteProvider",
"group": "providers",
- "weight": 345,
+ "weight": 347,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16350,7 +16622,7 @@
"x-appwrite": {
"method": "listProviderLogs",
"group": "providers",
- "weight": 333,
+ "weight": 335,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16426,7 +16698,7 @@
"x-appwrite": {
"method": "listSubscriberLogs",
"group": "subscribers",
- "weight": 354,
+ "weight": 356,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16502,7 +16774,7 @@
"x-appwrite": {
"method": "listTopics",
"group": "topics",
- "weight": 347,
+ "weight": 349,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16577,7 +16849,7 @@
"x-appwrite": {
"method": "createTopic",
"group": "topics",
- "weight": 346,
+ "weight": 348,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16661,7 +16933,7 @@
"x-appwrite": {
"method": "getTopic",
"group": "topics",
- "weight": 349,
+ "weight": 351,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16722,7 +16994,7 @@
"x-appwrite": {
"method": "updateTopic",
"group": "topics",
- "weight": 350,
+ "weight": 352,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16800,7 +17072,7 @@
"x-appwrite": {
"method": "deleteTopic",
"group": "topics",
- "weight": 351,
+ "weight": 353,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16863,7 +17135,7 @@
"x-appwrite": {
"method": "listTopicLogs",
"group": "topics",
- "weight": 348,
+ "weight": 350,
"cookies": false,
"type": "",
"deprecated": false,
@@ -16939,7 +17211,7 @@
"x-appwrite": {
"method": "listSubscribers",
"group": "subscribers",
- "weight": 353,
+ "weight": 355,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17024,7 +17296,7 @@
"x-appwrite": {
"method": "createSubscriber",
"group": "subscribers",
- "weight": 352,
+ "weight": 354,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17116,7 +17388,7 @@
"x-appwrite": {
"method": "getSubscriber",
"group": "subscribers",
- "weight": 355,
+ "weight": 357,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17180,7 +17452,7 @@
"x-appwrite": {
"method": "deleteSubscriber",
"group": "subscribers",
- "weight": 356,
+ "weight": 358,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17257,7 +17529,7 @@
"x-appwrite": {
"method": "list",
"group": "sites",
- "weight": 405,
+ "weight": 407,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17328,7 +17600,7 @@
"x-appwrite": {
"method": "create",
"group": "sites",
- "weight": 403,
+ "weight": 405,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17464,6 +17736,7 @@
"dart-3.1",
"dart-3.3",
"dart-3.5",
+ "dart-3.8",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@@ -17489,7 +17762,8 @@
"static-1",
"flutter-3.24",
"flutter-3.27",
- "flutter-3.29"
+ "flutter-3.29",
+ "flutter-3.32"
],
"x-enum-name": null,
"x-enum-keys": []
@@ -17576,7 +17850,7 @@
"x-appwrite": {
"method": "listFrameworks",
"group": "frameworks",
- "weight": 408,
+ "weight": 410,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17626,7 +17900,7 @@
"x-appwrite": {
"method": "listSpecifications",
"group": "frameworks",
- "weight": 431,
+ "weight": 433,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17677,7 +17951,7 @@
"x-appwrite": {
"method": "get",
"group": "sites",
- "weight": 404,
+ "weight": 406,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17737,7 +18011,7 @@
"x-appwrite": {
"method": "update",
"group": "sites",
- "weight": 406,
+ "weight": 408,
"cookies": false,
"type": "",
"deprecated": false,
@@ -17880,6 +18154,7 @@
"dart-3.1",
"dart-3.3",
"dart-3.5",
+ "dart-3.8",
"dotnet-6.0",
"dotnet-7.0",
"dotnet-8.0",
@@ -17905,7 +18180,8 @@
"static-1",
"flutter-3.24",
"flutter-3.27",
- "flutter-3.29"
+ "flutter-3.29",
+ "flutter-3.32"
],
"x-enum-name": null,
"x-enum-keys": []
@@ -17981,7 +18257,7 @@
"x-appwrite": {
"method": "delete",
"group": "sites",
- "weight": 407,
+ "weight": 409,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18043,7 +18319,7 @@
"x-appwrite": {
"method": "updateSiteDeployment",
"group": "sites",
- "weight": 414,
+ "weight": 416,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18124,7 +18400,7 @@
"x-appwrite": {
"method": "listDeployments",
"group": "deployments",
- "weight": 413,
+ "weight": 415,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18208,7 +18484,7 @@
"x-appwrite": {
"method": "createDeployment",
"group": "deployments",
- "weight": 409,
+ "weight": 411,
"cookies": false,
"type": "upload",
"deprecated": false,
@@ -18310,7 +18586,7 @@
"x-appwrite": {
"method": "createDuplicateDeployment",
"group": "deployments",
- "weight": 417,
+ "weight": 419,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18391,7 +18667,7 @@
"x-appwrite": {
"method": "createTemplateDeployment",
"group": "deployments",
- "weight": 410,
+ "weight": 412,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18495,7 +18771,7 @@
"x-appwrite": {
"method": "createVcsDeployment",
"group": "deployments",
- "weight": 411,
+ "weight": 413,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18594,7 +18870,7 @@
"x-appwrite": {
"method": "getDeployment",
"group": "deployments",
- "weight": 412,
+ "weight": 414,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18657,7 +18933,7 @@
"x-appwrite": {
"method": "deleteDeployment",
"group": "deployments",
- "weight": 415,
+ "weight": 417,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18722,7 +18998,7 @@
"x-appwrite": {
"method": "getDeploymentDownload",
"group": "deployments",
- "weight": 416,
+ "weight": 418,
"cookies": false,
"type": "location",
"deprecated": false,
@@ -18813,7 +19089,7 @@
"x-appwrite": {
"method": "updateDeploymentStatus",
"group": "deployments",
- "weight": 418,
+ "weight": 420,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18885,7 +19161,7 @@
"x-appwrite": {
"method": "listLogs",
"group": "logs",
- "weight": 420,
+ "weight": 422,
"cookies": false,
"type": "",
"deprecated": false,
@@ -18957,7 +19233,7 @@
"x-appwrite": {
"method": "getLog",
"group": "logs",
- "weight": 419,
+ "weight": 421,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19020,7 +19296,7 @@
"x-appwrite": {
"method": "deleteLog",
"group": "logs",
- "weight": 421,
+ "weight": 423,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19092,7 +19368,7 @@
"x-appwrite": {
"method": "listVariables",
"group": "variables",
- "weight": 424,
+ "weight": 426,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19152,7 +19428,7 @@
"x-appwrite": {
"method": "createVariable",
"group": "variables",
- "weight": 422,
+ "weight": 424,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19244,7 +19520,7 @@
"x-appwrite": {
"method": "getVariable",
"group": "variables",
- "weight": 423,
+ "weight": 425,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19314,7 +19590,7 @@
"x-appwrite": {
"method": "updateVariable",
"group": "variables",
- "weight": 425,
+ "weight": 427,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19406,7 +19682,7 @@
"x-appwrite": {
"method": "deleteVariable",
"group": "variables",
- "weight": 426,
+ "weight": 428,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19478,7 +19754,7 @@
"x-appwrite": {
"method": "listBuckets",
"group": "buckets",
- "weight": 207,
+ "weight": 209,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19552,7 +19828,7 @@
"x-appwrite": {
"method": "createBucket",
"group": "buckets",
- "weight": 206,
+ "weight": 208,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19680,7 +19956,7 @@
"x-appwrite": {
"method": "getBucket",
"group": "buckets",
- "weight": 208,
+ "weight": 210,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19740,7 +20016,7 @@
"x-appwrite": {
"method": "updateBucket",
"group": "buckets",
- "weight": 209,
+ "weight": 211,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19865,7 +20141,7 @@
"x-appwrite": {
"method": "deleteBucket",
"group": "buckets",
- "weight": 210,
+ "weight": 212,
"cookies": false,
"type": "",
"deprecated": false,
@@ -19927,7 +20203,7 @@
"x-appwrite": {
"method": "listFiles",
"group": "files",
- "weight": 212,
+ "weight": 214,
"cookies": false,
"type": "",
"deprecated": false,
@@ -20015,7 +20291,7 @@
"x-appwrite": {
"method": "createFile",
"group": "files",
- "weight": 211,
+ "weight": 213,
"cookies": false,
"type": "upload",
"deprecated": false,
@@ -20115,7 +20391,7 @@
"x-appwrite": {
"method": "getFile",
"group": "files",
- "weight": 213,
+ "weight": 215,
"cookies": false,
"type": "",
"deprecated": false,
@@ -20189,7 +20465,7 @@
"x-appwrite": {
"method": "updateFile",
"group": "files",
- "weight": 218,
+ "weight": 220,
"cookies": false,
"type": "",
"deprecated": false,
@@ -20280,7 +20556,7 @@
"x-appwrite": {
"method": "deleteFile",
"group": "files",
- "weight": 219,
+ "weight": 221,
"cookies": false,
"type": "",
"deprecated": false,
@@ -20349,7 +20625,7 @@
"x-appwrite": {
"method": "getFileDownload",
"group": "files",
- "weight": 215,
+ "weight": 217,
"cookies": false,
"type": "location",
"deprecated": false,
@@ -20429,7 +20705,7 @@
"x-appwrite": {
"method": "getFilePreview",
"group": "files",
- "weight": 214,
+ "weight": 216,
"cookies": false,
"type": "location",
"deprecated": false,
@@ -20620,7 +20896,8 @@
"png",
"webp",
"heic",
- "avif"
+ "avif",
+ "gif"
],
"x-enum-name": "ImageFormat",
"x-enum-keys": [],
@@ -20658,7 +20935,7 @@
"x-appwrite": {
"method": "getFileView",
"group": "files",
- "weight": 216,
+ "weight": 218,
"cookies": false,
"type": "location",
"deprecated": false,
@@ -20745,7 +21022,7 @@
"x-appwrite": {
"method": "list",
"group": "teams",
- "weight": 223,
+ "weight": 225,
"cookies": false,
"type": "",
"deprecated": false,
@@ -20823,7 +21100,7 @@
"x-appwrite": {
"method": "create",
"group": "teams",
- "weight": 222,
+ "weight": 224,
"cookies": false,
"type": "",
"deprecated": false,
@@ -20910,7 +21187,7 @@
"x-appwrite": {
"method": "get",
"group": "teams",
- "weight": 224,
+ "weight": 226,
"cookies": false,
"type": "",
"deprecated": false,
@@ -20974,7 +21251,7 @@
"x-appwrite": {
"method": "updateName",
"group": "teams",
- "weight": 226,
+ "weight": 228,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21050,7 +21327,7 @@
"x-appwrite": {
"method": "delete",
"group": "teams",
- "weight": 228,
+ "weight": 230,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21116,7 +21393,7 @@
"x-appwrite": {
"method": "listMemberships",
"group": "memberships",
- "weight": 230,
+ "weight": 232,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21204,7 +21481,7 @@
"x-appwrite": {
"method": "createMembership",
"group": "memberships",
- "weight": 229,
+ "weight": 231,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21317,7 +21594,7 @@
"x-appwrite": {
"method": "getMembership",
"group": "memberships",
- "weight": 231,
+ "weight": 233,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21391,7 +21668,7 @@
"x-appwrite": {
"method": "updateMembership",
"group": "memberships",
- "weight": 232,
+ "weight": 234,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21480,7 +21757,7 @@
"x-appwrite": {
"method": "deleteMembership",
"group": "memberships",
- "weight": 234,
+ "weight": 236,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21556,7 +21833,7 @@
"x-appwrite": {
"method": "updateMembershipStatus",
"group": "memberships",
- "weight": 233,
+ "weight": 235,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21655,7 +21932,7 @@
"x-appwrite": {
"method": "getPrefs",
"group": "teams",
- "weight": 225,
+ "weight": 227,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21717,7 +21994,7 @@
"x-appwrite": {
"method": "updatePrefs",
"group": "teams",
- "weight": 227,
+ "weight": 229,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21800,7 +22077,7 @@
"x-appwrite": {
"method": "list",
"group": "files",
- "weight": 439,
+ "weight": 441,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21881,7 +22158,7 @@
"x-appwrite": {
"method": "createFileToken",
"group": "files",
- "weight": 437,
+ "weight": 439,
"cookies": false,
"type": "",
"deprecated": false,
@@ -21971,7 +22248,7 @@
"x-appwrite": {
"method": "get",
"group": "tokens",
- "weight": 438,
+ "weight": 440,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22032,7 +22309,7 @@
"x-appwrite": {
"method": "update",
"group": "tokens",
- "weight": 440,
+ "weight": 442,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22103,7 +22380,7 @@
"x-appwrite": {
"method": "delete",
"group": "tokens",
- "weight": 441,
+ "weight": 443,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22166,7 +22443,7 @@
"x-appwrite": {
"method": "list",
"group": "users",
- "weight": 245,
+ "weight": 247,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22240,7 +22517,7 @@
"x-appwrite": {
"method": "create",
"group": "users",
- "weight": 236,
+ "weight": 238,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22329,7 +22606,7 @@
"x-appwrite": {
"method": "createArgon2User",
"group": "users",
- "weight": 239,
+ "weight": 241,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22415,7 +22692,7 @@
"x-appwrite": {
"method": "createBcryptUser",
"group": "users",
- "weight": 237,
+ "weight": 239,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22501,7 +22778,7 @@
"x-appwrite": {
"method": "listIdentities",
"group": "identities",
- "weight": 253,
+ "weight": 255,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22570,7 +22847,7 @@
"x-appwrite": {
"method": "deleteIdentity",
"group": "identities",
- "weight": 276,
+ "weight": 278,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22632,7 +22909,7 @@
"x-appwrite": {
"method": "createMD5User",
"group": "users",
- "weight": 238,
+ "weight": 240,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22718,7 +22995,7 @@
"x-appwrite": {
"method": "createPHPassUser",
"group": "users",
- "weight": 241,
+ "weight": 243,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22804,7 +23081,7 @@
"x-appwrite": {
"method": "createScryptUser",
"group": "users",
- "weight": 242,
+ "weight": 244,
"cookies": false,
"type": "",
"deprecated": false,
@@ -22920,7 +23197,7 @@
"x-appwrite": {
"method": "createScryptModifiedUser",
"group": "users",
- "weight": 243,
+ "weight": 245,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23024,7 +23301,7 @@
"x-appwrite": {
"method": "createSHAUser",
"group": "users",
- "weight": 240,
+ "weight": 242,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23130,7 +23407,7 @@
"x-appwrite": {
"method": "get",
"group": "users",
- "weight": 246,
+ "weight": 248,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23183,7 +23460,7 @@
"x-appwrite": {
"method": "delete",
"group": "users",
- "weight": 274,
+ "weight": 276,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23245,7 +23522,7 @@
"x-appwrite": {
"method": "updateEmail",
"group": "users",
- "weight": 259,
+ "weight": 261,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23326,7 +23603,7 @@
"x-appwrite": {
"method": "createJWT",
"group": "sessions",
- "weight": 277,
+ "weight": 279,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23409,7 +23686,7 @@
"x-appwrite": {
"method": "updateLabels",
"group": "users",
- "weight": 255,
+ "weight": 257,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23493,7 +23770,7 @@
"x-appwrite": {
"method": "listLogs",
"group": "logs",
- "weight": 251,
+ "weight": 253,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23568,7 +23845,7 @@
"x-appwrite": {
"method": "listMemberships",
"group": "memberships",
- "weight": 250,
+ "weight": 252,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23654,7 +23931,7 @@
"x-appwrite": {
"method": "updateMfa",
"group": "users",
- "weight": 264,
+ "weight": 266,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23728,7 +24005,7 @@
"x-appwrite": {
"method": "deleteMfaAuthenticator",
"group": "mfa",
- "weight": 269,
+ "weight": 271,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23805,7 +24082,7 @@
"x-appwrite": {
"method": "listMfaFactors",
"group": "mfa",
- "weight": 265,
+ "weight": 267,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23867,7 +24144,7 @@
"x-appwrite": {
"method": "getMfaRecoveryCodes",
"group": "mfa",
- "weight": 266,
+ "weight": 268,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23927,7 +24204,7 @@
"x-appwrite": {
"method": "updateMfaRecoveryCodes",
"group": "mfa",
- "weight": 268,
+ "weight": 270,
"cookies": false,
"type": "",
"deprecated": false,
@@ -23987,7 +24264,7 @@
"x-appwrite": {
"method": "createMfaRecoveryCodes",
"group": "mfa",
- "weight": 267,
+ "weight": 269,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24049,7 +24326,7 @@
"x-appwrite": {
"method": "updateName",
"group": "users",
- "weight": 257,
+ "weight": 259,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24130,7 +24407,7 @@
"x-appwrite": {
"method": "updatePassword",
"group": "users",
- "weight": 258,
+ "weight": 260,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24211,7 +24488,7 @@
"x-appwrite": {
"method": "updatePhone",
"group": "users",
- "weight": 260,
+ "weight": 262,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24292,7 +24569,7 @@
"x-appwrite": {
"method": "getPrefs",
"group": "users",
- "weight": 247,
+ "weight": 249,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24352,7 +24629,7 @@
"x-appwrite": {
"method": "updatePrefs",
"group": "users",
- "weight": 262,
+ "weight": 264,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24433,7 +24710,7 @@
"x-appwrite": {
"method": "listSessions",
"group": "sessions",
- "weight": 249,
+ "weight": 251,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24493,7 +24770,7 @@
"x-appwrite": {
"method": "createSession",
"group": "sessions",
- "weight": 270,
+ "weight": 272,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24546,7 +24823,7 @@
"x-appwrite": {
"method": "deleteSessions",
"group": "sessions",
- "weight": 273,
+ "weight": 275,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24601,7 +24878,7 @@
"x-appwrite": {
"method": "deleteSession",
"group": "sessions",
- "weight": 272,
+ "weight": 274,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24673,7 +24950,7 @@
"x-appwrite": {
"method": "updateStatus",
"group": "users",
- "weight": 254,
+ "weight": 256,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24754,7 +25031,7 @@
"x-appwrite": {
"method": "listTargets",
"group": "targets",
- "weight": 252,
+ "weight": 254,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24793,7 +25070,7 @@
},
{
"name": "queries",
- "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels",
+ "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType",
"required": false,
"schema": {
"type": "array",
@@ -24828,7 +25105,7 @@
"x-appwrite": {
"method": "createTarget",
"group": "targets",
- "weight": 244,
+ "weight": 246,
"cookies": false,
"type": "",
"deprecated": false,
@@ -24939,7 +25216,7 @@
"x-appwrite": {
"method": "getTarget",
"group": "targets",
- "weight": 248,
+ "weight": 250,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25010,7 +25287,7 @@
"x-appwrite": {
"method": "updateTarget",
"group": "targets",
- "weight": 263,
+ "weight": 265,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25100,7 +25377,7 @@
"x-appwrite": {
"method": "deleteTarget",
"group": "targets",
- "weight": 275,
+ "weight": 277,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25173,7 +25450,7 @@
"x-appwrite": {
"method": "createToken",
"group": "sessions",
- "weight": 271,
+ "weight": 273,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25256,7 +25533,7 @@
"x-appwrite": {
"method": "updateEmailVerification",
"group": "users",
- "weight": 261,
+ "weight": 263,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25337,7 +25614,7 @@
"x-appwrite": {
"method": "updatePhoneVerification",
"group": "users",
- "weight": 256,
+ "weight": 258,
"cookies": false,
"type": "",
"deprecated": false,
@@ -25471,7 +25748,8 @@
"any": {
"description": "Any",
"type": "object",
- "additionalProperties": true
+ "additionalProperties": true,
+ "example": []
},
"error": {
"description": "Error",
@@ -25503,7 +25781,13 @@
"code",
"type",
"version"
- ]
+ ],
+ "example": {
+ "message": "Not found",
+ "code": "404",
+ "type": "not_found",
+ "version": "1.0"
+ }
},
"documentList": {
"description": "Documents List",
@@ -25527,7 +25811,11 @@
"required": [
"total",
"documents"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "documents": ""
+ }
},
"collectionList": {
"description": "Collections List",
@@ -25551,7 +25839,11 @@
"required": [
"total",
"collections"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "collections": ""
+ }
},
"databaseList": {
"description": "Databases List",
@@ -25575,7 +25867,11 @@
"required": [
"total",
"databases"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "databases": ""
+ }
},
"indexList": {
"description": "Indexes List",
@@ -25599,7 +25895,11 @@
"required": [
"total",
"indexes"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "indexes": ""
+ }
},
"userList": {
"description": "Users List",
@@ -25623,7 +25923,11 @@
"required": [
"total",
"users"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "users": ""
+ }
},
"sessionList": {
"description": "Sessions List",
@@ -25647,7 +25951,11 @@
"required": [
"total",
"sessions"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "sessions": ""
+ }
},
"identityList": {
"description": "Identities List",
@@ -25671,7 +25979,11 @@
"required": [
"total",
"identities"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "identities": ""
+ }
},
"logList": {
"description": "Logs List",
@@ -25695,7 +26007,11 @@
"required": [
"total",
"logs"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "logs": ""
+ }
},
"fileList": {
"description": "Files List",
@@ -25719,7 +26035,11 @@
"required": [
"total",
"files"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "files": ""
+ }
},
"bucketList": {
"description": "Buckets List",
@@ -25743,7 +26063,11 @@
"required": [
"total",
"buckets"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "buckets": ""
+ }
},
"resourceTokenList": {
"description": "Resource Tokens List",
@@ -25767,7 +26091,11 @@
"required": [
"total",
"tokens"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "tokens": ""
+ }
},
"teamList": {
"description": "Teams List",
@@ -25791,7 +26119,11 @@
"required": [
"total",
"teams"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "teams": ""
+ }
},
"membershipList": {
"description": "Memberships List",
@@ -25815,7 +26147,11 @@
"required": [
"total",
"memberships"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "memberships": ""
+ }
},
"siteList": {
"description": "Sites List",
@@ -25839,7 +26175,11 @@
"required": [
"total",
"sites"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "sites": ""
+ }
},
"functionList": {
"description": "Functions List",
@@ -25863,7 +26203,11 @@
"required": [
"total",
"functions"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "functions": ""
+ }
},
"frameworkList": {
"description": "Frameworks List",
@@ -25887,7 +26231,11 @@
"required": [
"total",
"frameworks"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "frameworks": ""
+ }
},
"runtimeList": {
"description": "Runtimes List",
@@ -25911,7 +26259,11 @@
"required": [
"total",
"runtimes"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "runtimes": ""
+ }
},
"deploymentList": {
"description": "Deployments List",
@@ -25935,7 +26287,11 @@
"required": [
"total",
"deployments"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "deployments": ""
+ }
},
"executionList": {
"description": "Executions List",
@@ -25959,7 +26315,11 @@
"required": [
"total",
"executions"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "executions": ""
+ }
},
"countryList": {
"description": "Countries List",
@@ -25983,7 +26343,11 @@
"required": [
"total",
"countries"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "countries": ""
+ }
},
"continentList": {
"description": "Continents List",
@@ -26007,7 +26371,11 @@
"required": [
"total",
"continents"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "continents": ""
+ }
},
"languageList": {
"description": "Languages List",
@@ -26031,7 +26399,11 @@
"required": [
"total",
"languages"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "languages": ""
+ }
},
"currencyList": {
"description": "Currencies List",
@@ -26055,7 +26427,11 @@
"required": [
"total",
"currencies"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "currencies": ""
+ }
},
"phoneList": {
"description": "Phones List",
@@ -26079,7 +26455,11 @@
"required": [
"total",
"phones"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "phones": ""
+ }
},
"variableList": {
"description": "Variables List",
@@ -26103,7 +26483,11 @@
"required": [
"total",
"variables"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "variables": ""
+ }
},
"localeCodeList": {
"description": "Locale codes list",
@@ -26127,7 +26511,11 @@
"required": [
"total",
"localeCodes"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "localeCodes": ""
+ }
},
"providerList": {
"description": "Provider list",
@@ -26151,7 +26539,11 @@
"required": [
"total",
"providers"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "providers": ""
+ }
},
"messageList": {
"description": "Message list",
@@ -26175,7 +26567,11 @@
"required": [
"total",
"messages"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "messages": ""
+ }
},
"topicList": {
"description": "Topic list",
@@ -26199,7 +26595,11 @@
"required": [
"total",
"topics"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "topics": ""
+ }
},
"subscriberList": {
"description": "Subscriber list",
@@ -26223,7 +26623,11 @@
"required": [
"total",
"subscribers"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "subscribers": ""
+ }
},
"targetList": {
"description": "Target list",
@@ -26247,7 +26651,11 @@
"required": [
"total",
"targets"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "targets": ""
+ }
},
"specificationList": {
"description": "Specifications List",
@@ -26271,7 +26679,11 @@
"required": [
"total",
"specifications"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "specifications": ""
+ }
},
"database": {
"description": "Database",
@@ -26309,7 +26721,14 @@
"$createdAt",
"$updatedAt",
"enabled"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "name": "My Database",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "enabled": false
+ }
},
"collection": {
"description": "Collection",
@@ -26419,7 +26838,21 @@
"documentSecurity",
"attributes",
"indexes"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "$permissions": [
+ "read(\"any\")"
+ ],
+ "databaseId": "5e5ea5c16897e",
+ "name": "My Collection",
+ "enabled": false,
+ "documentSecurity": true,
+ "attributes": {},
+ "indexes": {}
+ }
},
"attributeList": {
"description": "Attributes List",
@@ -26474,7 +26907,11 @@
"required": [
"total",
"attributes"
- ]
+ ],
+ "example": {
+ "total": 5,
+ "attributes": ""
+ }
},
"attributeString": {
"description": "AttributeString",
@@ -26532,6 +26969,12 @@
"description": "Default value for attribute when not provided. Cannot be set when attribute is required.",
"x-example": "default",
"nullable": true
+ },
+ "encrypt": {
+ "type": "boolean",
+ "description": "Defines whether this attribute is encrypted or not.",
+ "x-example": false,
+ "nullable": true
}
},
"required": [
@@ -26543,7 +26986,20 @@
"$createdAt",
"$updatedAt",
"size"
- ]
+ ],
+ "example": {
+ "key": "fullName",
+ "type": "string",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "size": 128,
+ "default": "default",
+ "encrypt": false
+ }
},
"attributeInteger": {
"description": "AttributeInteger",
@@ -26620,7 +27076,20 @@
"required",
"$createdAt",
"$updatedAt"
- ]
+ ],
+ "example": {
+ "key": "count",
+ "type": "integer",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "min": 1,
+ "max": 10,
+ "default": 10
+ }
},
"attributeFloat": {
"description": "AttributeFloat",
@@ -26697,7 +27166,20 @@
"required",
"$createdAt",
"$updatedAt"
- ]
+ ],
+ "example": {
+ "key": "percentageCompleted",
+ "type": "double",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "min": 1.5,
+ "max": 10.5,
+ "default": 2.5
+ }
},
"attributeBoolean": {
"description": "AttributeBoolean",
@@ -26759,7 +27241,18 @@
"required",
"$createdAt",
"$updatedAt"
- ]
+ ],
+ "example": {
+ "key": "isEnabled",
+ "type": "boolean",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "default": false
+ }
},
"attributeEmail": {
"description": "AttributeEmail",
@@ -26827,7 +27320,19 @@
"$createdAt",
"$updatedAt",
"format"
- ]
+ ],
+ "example": {
+ "key": "userEmail",
+ "type": "string",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "format": "email",
+ "default": "default@example.com"
+ }
},
"attributeEnum": {
"description": "AttributeEnum",
@@ -26904,7 +27409,20 @@
"$updatedAt",
"elements",
"format"
- ]
+ ],
+ "example": {
+ "key": "status",
+ "type": "string",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "elements": "element",
+ "format": "enum",
+ "default": "element"
+ }
},
"attributeIp": {
"description": "AttributeIP",
@@ -26972,7 +27490,19 @@
"$createdAt",
"$updatedAt",
"format"
- ]
+ ],
+ "example": {
+ "key": "ipAddress",
+ "type": "string",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "format": "ip",
+ "default": "192.0.2.0"
+ }
},
"attributeUrl": {
"description": "AttributeURL",
@@ -27040,7 +27570,19 @@
"$createdAt",
"$updatedAt",
"format"
- ]
+ ],
+ "example": {
+ "key": "githubUrl",
+ "type": "string",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "format": "url",
+ "default": "http:\/\/example.com"
+ }
},
"attributeDatetime": {
"description": "AttributeDatetime",
@@ -27108,7 +27650,19 @@
"$createdAt",
"$updatedAt",
"format"
- ]
+ ],
+ "example": {
+ "key": "birthDay",
+ "type": "datetime",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "format": "datetime",
+ "default": "2020-10-15T06:38:00.000+00:00"
+ }
},
"attributeRelationship": {
"description": "AttributeRelationship",
@@ -27200,7 +27754,23 @@
"twoWayKey",
"onDelete",
"side"
- ]
+ ],
+ "example": {
+ "key": "fullName",
+ "type": "string",
+ "status": "available",
+ "error": "string",
+ "required": true,
+ "array": false,
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "relatedCollection": "collection",
+ "relationType": "oneToOne|oneToMany|manyToOne|manyToMany",
+ "twoWay": false,
+ "twoWayKey": "string",
+ "onDelete": "restrict|cascade|setNull",
+ "side": "parent|child"
+ }
},
"index": {
"description": "Index",
@@ -27272,7 +27842,18 @@
"lengths",
"$createdAt",
"$updatedAt"
- ]
+ ],
+ "example": {
+ "key": "index1",
+ "type": "primary",
+ "status": "available",
+ "error": "string",
+ "attributes": [],
+ "lengths": [],
+ "orders": [],
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00"
+ }
},
"document": {
"description": "Document",
@@ -27283,15 +27864,24 @@
"description": "Document ID.",
"x-example": "5e5ea5c16897e"
},
+ "$sequence": {
+ "type": "integer",
+ "description": "Document automatically incrementing ID.",
+ "x-example": 1,
+ "format": "int32",
+ "readOnly": true
+ },
"$collectionId": {
"type": "string",
"description": "Collection ID.",
- "x-example": "5e5ea5c15117e"
+ "x-example": "5e5ea5c15117e",
+ "readOnly": true
},
"$databaseId": {
"type": "string",
"description": "Database ID.",
- "x-example": "5e5ea5c15117e"
+ "x-example": "5e5ea5c15117e",
+ "readOnly": true
},
"$createdAt": {
"type": "string",
@@ -27317,12 +27907,29 @@
"additionalProperties": true,
"required": [
"$id",
+ "$sequence",
"$collectionId",
"$databaseId",
"$createdAt",
"$updatedAt",
"$permissions"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$sequence": 1,
+ "$collectionId": "5e5ea5c15117e",
+ "$databaseId": "5e5ea5c15117e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "$permissions": [
+ "read(\"any\")"
+ ],
+ "username": "john.doe",
+ "email": "john.doe@example.com",
+ "fullName": "John Doe",
+ "age": 30,
+ "isAdmin": false
+ }
},
"log": {
"description": "Log",
@@ -27456,7 +28063,30 @@
"deviceModel",
"countryCode",
"countryName"
- ]
+ ],
+ "example": {
+ "event": "account.sessions.create",
+ "userId": "610fc2f985ee0",
+ "userEmail": "john@appwrite.io",
+ "userName": "John Doe",
+ "mode": "admin",
+ "ip": "127.0.0.1",
+ "time": "2020-10-15T06:38:00.000+00:00",
+ "osCode": "Mac",
+ "osName": "Mac",
+ "osVersion": "Mac",
+ "clientType": "browser",
+ "clientCode": "CM",
+ "clientName": "Chrome Mobile iOS",
+ "clientVersion": "84.0",
+ "clientEngine": "WebKit",
+ "clientEngineVersion": "605.1.15",
+ "deviceName": "smartphone",
+ "deviceBrand": "Google",
+ "deviceModel": "Nexus 5",
+ "countryCode": "US",
+ "countryName": "United States"
+ }
},
"user": {
"description": "User",
@@ -27617,7 +28247,33 @@
"prefs",
"targets",
"accessedAt"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "John Doe",
+ "password": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE",
+ "hash": "argon2",
+ "hashOptions": {},
+ "registration": "2020-10-15T06:38:00.000+00:00",
+ "status": true,
+ "labels": [
+ "vip"
+ ],
+ "passwordUpdate": "2020-10-15T06:38:00.000+00:00",
+ "email": "john@appwrite.io",
+ "phone": "+4930901820",
+ "emailVerification": true,
+ "phoneVerification": true,
+ "mfa": true,
+ "prefs": {
+ "theme": "pink",
+ "timezone": "UTC"
+ },
+ "targets": [],
+ "accessedAt": "2020-10-15T06:38:00.000+00:00"
+ }
},
"algoMd5": {
"description": "AlgoMD5",
@@ -27631,7 +28287,10 @@
},
"required": [
"type"
- ]
+ ],
+ "example": {
+ "type": "md5"
+ }
},
"algoSha": {
"description": "AlgoSHA",
@@ -27645,7 +28304,10 @@
},
"required": [
"type"
- ]
+ ],
+ "example": {
+ "type": "sha"
+ }
},
"algoPhpass": {
"description": "AlgoPHPass",
@@ -27659,7 +28321,10 @@
},
"required": [
"type"
- ]
+ ],
+ "example": {
+ "type": "phpass"
+ }
},
"algoBcrypt": {
"description": "AlgoBcrypt",
@@ -27673,7 +28338,10 @@
},
"required": [
"type"
- ]
+ ],
+ "example": {
+ "type": "bcrypt"
+ }
},
"algoScrypt": {
"description": "AlgoScrypt",
@@ -27715,7 +28383,14 @@
"costMemory",
"costParallel",
"length"
- ]
+ ],
+ "example": {
+ "type": "scrypt",
+ "costCpu": 8,
+ "costMemory": 14,
+ "costParallel": 1,
+ "length": 64
+ }
},
"algoScryptModified": {
"description": "AlgoScryptModified",
@@ -27747,7 +28422,13 @@
"salt",
"saltSeparator",
"signerKey"
- ]
+ ],
+ "example": {
+ "type": "scryptMod",
+ "salt": "UxLMreBr6tYyjQ==",
+ "saltSeparator": "Bw==",
+ "signerKey": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ=="
+ }
},
"algoArgon2": {
"description": "AlgoArgon2",
@@ -27782,12 +28463,23 @@
"memoryCost",
"timeCost",
"threads"
- ]
+ ],
+ "example": {
+ "type": "argon2",
+ "memoryCost": 65536,
+ "timeCost": 4,
+ "threads": 3
+ }
},
"preferences": {
"description": "Preferences",
"type": "object",
- "additionalProperties": true
+ "additionalProperties": true,
+ "example": {
+ "language": "en",
+ "timezone": "UTC",
+ "darkTheme": true
+ }
},
"session": {
"description": "Session",
@@ -27974,7 +28666,40 @@
"factors",
"secret",
"mfaUpdatedAt"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5bb8c16897e",
+ "expire": "2020-10-15T06:38:00.000+00:00",
+ "provider": "email",
+ "providerUid": "user@example.com",
+ "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
+ "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00",
+ "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
+ "ip": "127.0.0.1",
+ "osCode": "Mac",
+ "osName": "Mac",
+ "osVersion": "Mac",
+ "clientType": "browser",
+ "clientCode": "CM",
+ "clientName": "Chrome Mobile iOS",
+ "clientVersion": "84.0",
+ "clientEngine": "WebKit",
+ "clientEngineVersion": "605.1.15",
+ "deviceName": "smartphone",
+ "deviceBrand": "Google",
+ "deviceModel": "Nexus 5",
+ "countryCode": "US",
+ "countryName": "United States",
+ "current": true,
+ "factors": [
+ "email"
+ ],
+ "secret": "5e5bb8c16897e",
+ "mfaUpdatedAt": "2020-10-15T06:38:00.000+00:00"
+ }
},
"identity": {
"description": "Identity",
@@ -28042,7 +28767,19 @@
"providerAccessToken",
"providerAccessTokenExpiry",
"providerRefreshToken"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5bb8c16897e",
+ "provider": "email",
+ "providerUid": "5e5bb8c16897e",
+ "providerEmail": "user@example.com",
+ "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
+ "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00",
+ "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"
+ }
},
"token": {
"description": "Token",
@@ -28086,7 +28823,15 @@
"secret",
"expire",
"phrase"
- ]
+ ],
+ "example": {
+ "$id": "bb8ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5ea5c168bb8",
+ "secret": "",
+ "expire": "2020-10-15T06:38:00.000+00:00",
+ "phrase": "Golden Fox"
+ }
},
"jwt": {
"description": "JWT",
@@ -28100,7 +28845,10 @@
},
"required": [
"jwt"
- ]
+ ],
+ "example": {
+ "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
+ }
},
"locale": {
"description": "Locale",
@@ -28150,7 +28898,16 @@
"continent",
"eu",
"currency"
- ]
+ ],
+ "example": {
+ "ip": "127.0.0.1",
+ "countryCode": "US",
+ "country": "United States",
+ "continentCode": "NA",
+ "continent": "North America",
+ "eu": false,
+ "currency": "USD"
+ }
},
"localeCode": {
"description": "LocaleCode",
@@ -28170,7 +28927,11 @@
"required": [
"code",
"name"
- ]
+ ],
+ "example": {
+ "code": "en-us",
+ "name": "US"
+ }
},
"file": {
"description": "File",
@@ -28252,7 +29013,22 @@
"sizeOriginal",
"chunksTotal",
"chunksUploaded"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "bucketId": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "$permissions": [
+ "read(\"any\")"
+ ],
+ "name": "Pink.png",
+ "signature": "5d529fd02b544198ae075bd57c1762bb",
+ "mimeType": "image\/png",
+ "sizeOriginal": 17890,
+ "chunksTotal": 17890,
+ "chunksUploaded": 17890
+ }
},
"bucket": {
"description": "Bucket",
@@ -28344,7 +29120,26 @@
"compression",
"encryption",
"antivirus"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "$permissions": [
+ "read(\"any\")"
+ ],
+ "fileSecurity": true,
+ "name": "Documents",
+ "enabled": false,
+ "maximumFileSize": 100,
+ "allowedFileExtensions": [
+ "jpg",
+ "png"
+ ],
+ "compression": "gzip",
+ "encryption": false,
+ "antivirus": false
+ }
},
"resourceToken": {
"description": "ResourceToken",
@@ -28394,7 +29189,16 @@
"expire",
"secret",
"accessedAt"
- ]
+ ],
+ "example": {
+ "$id": "bb8ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "resourceId": "5e5ea5c168bb8:5e5ea5c168bb8",
+ "resourceType": "files",
+ "expire": "2020-10-15T06:38:00.000+00:00",
+ "secret": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
+ "accessedAt": "2020-10-15T06:38:00.000+00:00"
+ }
},
"team": {
"description": "Team",
@@ -28445,7 +29249,18 @@
"name",
"total",
"prefs"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "VIP",
+ "total": 7,
+ "prefs": {
+ "theme": "pink",
+ "timezone": "UTC"
+ }
+ }
},
"membership": {
"description": "Membership",
@@ -28536,7 +29351,24 @@
"confirm",
"mfa",
"roles"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5ea5c16897e",
+ "userName": "John Doe",
+ "userEmail": "john@appwrite.io",
+ "teamId": "5e5ea5c16897e",
+ "teamName": "VIP",
+ "invited": "2020-10-15T06:38:00.000+00:00",
+ "joined": "2020-10-15T06:38:00.000+00:00",
+ "confirm": false,
+ "mfa": false,
+ "roles": [
+ "owner"
+ ]
+ }
},
"site": {
"description": "Site",
@@ -28722,7 +29554,38 @@
"buildRuntime",
"adapter",
"fallbackFile"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "My Site",
+ "enabled": false,
+ "live": false,
+ "logging": false,
+ "framework": "react",
+ "deploymentId": "5e5ea5c16897e",
+ "deploymentCreatedAt": "2020-10-15T06:38:00.000+00:00",
+ "deploymentScreenshotLight": "5e5ea5c16897e",
+ "deploymentScreenshotDark": "5e5ea5c16897e",
+ "latestDeploymentId": "5e5ea5c16897e",
+ "latestDeploymentCreatedAt": "2020-10-15T06:38:00.000+00:00",
+ "latestDeploymentStatus": "ready",
+ "vars": [],
+ "timeout": 300,
+ "installCommand": "npm install",
+ "buildCommand": "npm run build",
+ "outputDirectory": "build",
+ "installationId": "6m40at4ejk5h2u9s1hboo",
+ "providerRepositoryId": "appwrite",
+ "providerBranch": "main",
+ "providerRootDirectory": "sites\/helloWorld",
+ "providerSilentMode": false,
+ "specification": "s-1vcpu-512mb",
+ "buildRuntime": "node-22",
+ "adapter": "static",
+ "fallbackFile": "index.html"
+ }
},
"function": {
"description": "Function",
@@ -28911,7 +29774,37 @@
"providerRootDirectory",
"providerSilentMode",
"specification"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "execute": "users",
+ "name": "My Function",
+ "enabled": false,
+ "live": false,
+ "logging": false,
+ "runtime": "python-3.8",
+ "deploymentId": "5e5ea5c16897e",
+ "deploymentCreatedAt": "2020-10-15T06:38:00.000+00:00",
+ "latestDeploymentId": "5e5ea5c16897e",
+ "latestDeploymentCreatedAt": "2020-10-15T06:38:00.000+00:00",
+ "latestDeploymentStatus": "ready",
+ "scopes": "users.read",
+ "vars": [],
+ "events": "account.create",
+ "schedule": "5 4 * * *",
+ "timeout": 300,
+ "entrypoint": "index.js",
+ "commands": "npm install",
+ "version": "v2",
+ "installationId": "6m40at4ejk5h2u9s1hboo",
+ "providerRepositoryId": "appwrite",
+ "providerBranch": "main",
+ "providerRootDirectory": "functions\/helloWorld",
+ "providerSilentMode": false,
+ "specification": "s-1vcpu-512mb"
+ }
},
"runtime": {
"description": "Runtime",
@@ -28970,7 +29863,17 @@
"image",
"logo",
"supports"
- ]
+ ],
+ "example": {
+ "$id": "python-3.8",
+ "key": "python",
+ "name": "Python",
+ "version": "3.8",
+ "base": "python:3.8-alpine",
+ "image": "appwrite\\\/runtime-for-python:3.8",
+ "logo": "python.png",
+ "supports": "amd64"
+ }
},
"framework": {
"description": "Framework",
@@ -29025,7 +29928,25 @@
"buildRuntime",
"runtimes",
"adapters"
- ]
+ ],
+ "example": {
+ "key": "sveltekit",
+ "name": "SvelteKit",
+ "buildRuntime": "node-22",
+ "runtimes": [
+ "static-1",
+ "node-22"
+ ],
+ "adapters": [
+ {
+ "key": "static",
+ "buildRuntime": "node-22",
+ "buildCommand": "npm run build",
+ "installCommand": "npm install",
+ "outputDirectory": ".\/dist"
+ }
+ ]
+ }
},
"frameworkAdapter": {
"description": "Framework Adapter",
@@ -29063,7 +29984,14 @@
"buildCommand",
"outputDirectory",
"fallbackFile"
- ]
+ ],
+ "example": {
+ "key": "static",
+ "installCommand": "npm install",
+ "buildCommand": "npm run build",
+ "outputDirectory": ".\/dist",
+ "fallbackFile": "index.html"
+ }
},
"deployment": {
"description": "Deployment",
@@ -29237,7 +30165,36 @@
"providerCommitMessage",
"providerCommitUrl",
"providerBranchUrl"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "type": "vcs",
+ "resourceId": "5e5ea6g16897e",
+ "resourceType": "functions",
+ "entrypoint": "index.js",
+ "sourceSize": 128,
+ "buildSize": 128,
+ "totalSize": 128,
+ "buildId": "5e5ea5c16897e",
+ "activate": true,
+ "screenshotLight": "5e5ea5c16897e",
+ "screenshotDark": "5e5ea5c16897e",
+ "status": "ready",
+ "buildLogs": "Compiling source files...",
+ "buildDuration": 128,
+ "providerRepositoryName": "database",
+ "providerRepositoryOwner": "utopia",
+ "providerRepositoryUrl": "https:\/\/github.com\/vermakhushboo\/g4-node-function",
+ "providerBranch": "0.7.x",
+ "providerCommitHash": "7c3f25d",
+ "providerCommitAuthorUrl": "https:\/\/github.com\/vermakhushboo",
+ "providerCommitAuthor": "Khushboo Verma",
+ "providerCommitMessage": "Update index.js",
+ "providerCommitUrl": "https:\/\/github.com\/vermakhushboo\/g4-node-function\/commit\/60c0416257a9cbcdd96b2d370c38d8f8d150ccfb",
+ "providerBranchUrl": "https:\/\/github.com\/vermakhushboo\/appwrite\/tree\/0.7.x"
+ }
},
"execution": {
"description": "Execution",
@@ -29273,6 +30230,11 @@
"description": "Function ID.",
"x-example": "5e5ea6g16897e"
},
+ "deploymentId": {
+ "type": "string",
+ "description": "Function's deployment ID used to create the execution.",
+ "x-example": "5e5ea5c16897e"
+ },
"trigger": {
"type": "string",
"description": "The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.",
@@ -29357,6 +30319,7 @@
"$updatedAt",
"$permissions",
"functionId",
+ "deploymentId",
"trigger",
"status",
"requestMethod",
@@ -29368,7 +30331,37 @@
"logs",
"errors",
"duration"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "$permissions": [
+ "any"
+ ],
+ "functionId": "5e5ea6g16897e",
+ "deploymentId": "5e5ea5c16897e",
+ "trigger": "http",
+ "status": "processing",
+ "requestMethod": "GET",
+ "requestPath": "\/articles?id=5",
+ "requestHeaders": [
+ {
+ "Content-Type": "application\/json"
+ }
+ ],
+ "responseStatusCode": 200,
+ "responseBody": "",
+ "responseHeaders": [
+ {
+ "Content-Type": "application\/json"
+ }
+ ],
+ "logs": "",
+ "errors": "",
+ "duration": 0.4,
+ "scheduledAt": "2020-10-15T06:38:00.000+00:00"
+ }
},
"variable": {
"description": "Variable",
@@ -29424,7 +30417,17 @@
"secret",
"resourceType",
"resourceId"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "key": "API_KEY",
+ "value": "myPa$$word1",
+ "secret": false,
+ "resourceType": "function",
+ "resourceId": "myAwesomeFunction"
+ }
},
"country": {
"description": "Country",
@@ -29444,7 +30447,11 @@
"required": [
"name",
"code"
- ]
+ ],
+ "example": {
+ "name": "United States",
+ "code": "US"
+ }
},
"continent": {
"description": "Continent",
@@ -29464,7 +30471,11 @@
"required": [
"name",
"code"
- ]
+ ],
+ "example": {
+ "name": "Europe",
+ "code": "EU"
+ }
},
"language": {
"description": "Language",
@@ -29490,7 +30501,12 @@
"name",
"code",
"nativeName"
- ]
+ ],
+ "example": {
+ "name": "Italian",
+ "code": "it",
+ "nativeName": "Italiano"
+ }
},
"currency": {
"description": "Currency",
@@ -29542,7 +30558,16 @@
"rounding",
"code",
"namePlural"
- ]
+ ],
+ "example": {
+ "symbol": "$",
+ "name": "US dollar",
+ "symbolNative": "$",
+ "decimalDigits": 2,
+ "rounding": 0,
+ "code": "USD",
+ "namePlural": "US dollars"
+ }
},
"phone": {
"description": "Phone",
@@ -29568,7 +30593,12 @@
"code",
"countryCode",
"countryName"
- ]
+ ],
+ "example": {
+ "code": "+1",
+ "countryCode": "US",
+ "countryName": "United States"
+ }
},
"healthAntivirus": {
"description": "Health Antivirus",
@@ -29588,7 +30618,11 @@
"required": [
"version",
"status"
- ]
+ ],
+ "example": {
+ "version": "1.0.0",
+ "status": "online"
+ }
},
"healthQueue": {
"description": "Health Queue",
@@ -29603,7 +30637,10 @@
},
"required": [
"size"
- ]
+ ],
+ "example": {
+ "size": 8
+ }
},
"healthStatus": {
"description": "Health Status",
@@ -29630,7 +30667,12 @@
"name",
"ping",
"status"
- ]
+ ],
+ "example": {
+ "name": "database",
+ "ping": 128,
+ "status": "pass"
+ }
},
"healthCertificate": {
"description": "Health Certificate",
@@ -29674,7 +30716,15 @@
"validFrom",
"validTo",
"signatureTypeSN"
- ]
+ ],
+ "example": {
+ "name": "\/CN=www.google.com",
+ "subjectSN": "",
+ "issuerOrganisation": "",
+ "validFrom": "1704200998",
+ "validTo": "1711458597",
+ "signatureTypeSN": "RSA-SHA256"
+ }
},
"healthTime": {
"description": "Health Time",
@@ -29703,7 +30753,12 @@
"remoteTime",
"localTime",
"diff"
- ]
+ ],
+ "example": {
+ "remoteTime": 1639490751,
+ "localTime": 1639490844,
+ "diff": 93
+ }
},
"headers": {
"description": "Headers",
@@ -29723,7 +30778,11 @@
"required": [
"name",
"value"
- ]
+ ],
+ "example": {
+ "name": "Content-Type",
+ "value": "application\/json"
+ }
},
"specification": {
"description": "Specification",
@@ -29757,7 +30816,13 @@
"cpus",
"enabled",
"slug"
- ]
+ ],
+ "example": {
+ "memory": 512,
+ "cpus": 1,
+ "enabled": true,
+ "slug": "s-1vcpu-512mb"
+ }
},
"mfaChallenge": {
"description": "MFA Challenge",
@@ -29789,7 +30854,13 @@
"$createdAt",
"userId",
"expire"
- ]
+ ],
+ "example": {
+ "$id": "bb8ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5ea5c168bb8",
+ "expire": "2020-10-15T06:38:00.000+00:00"
+ }
},
"mfaRecoveryCodes": {
"description": "MFA Recovery Codes",
@@ -29809,7 +30880,13 @@
},
"required": [
"recoveryCodes"
- ]
+ ],
+ "example": {
+ "recoveryCodes": [
+ "a3kf0-s0cl2",
+ "s0co1-as98s"
+ ]
+ }
},
"mfaType": {
"description": "MFAType",
@@ -29829,7 +30906,11 @@
"required": [
"secret",
"uri"
- ]
+ ],
+ "example": {
+ "secret": true,
+ "uri": true
+ }
},
"mfaFactors": {
"description": "MFAFactors",
@@ -29861,7 +30942,13 @@
"phone",
"email",
"recoveryCode"
- ]
+ ],
+ "example": {
+ "totp": true,
+ "phone": true,
+ "email": true,
+ "recoveryCode": true
+ }
},
"provider": {
"description": "Provider",
@@ -29927,7 +31014,22 @@
"enabled",
"type",
"credentials"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "Mailgun",
+ "provider": "mailgun",
+ "enabled": true,
+ "type": "sms",
+ "credentials": {
+ "key": "123456789"
+ },
+ "options": {
+ "from": "sender-email@mydomain"
+ }
+ }
},
"message": {
"description": "Message",
@@ -30037,7 +31139,33 @@
"deliveredTotal",
"data",
"status"
- ]
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "providerType": "email",
+ "topics": [
+ "5e5ea5c16897e"
+ ],
+ "users": [
+ "5e5ea5c16897e"
+ ],
+ "targets": [
+ "5e5ea5c16897e"
+ ],
+ "scheduledAt": "2020-10-15T06:38:00.000+00:00",
+ "deliveredAt": "2020-10-15T06:38:00.000+00:00",
+ "deliveryErrors": [
+ "Failed to send message to target 5e5ea5c16897e: Credentials not valid."
+ ],
+ "deliveredTotal": 1,
+ "data": {
+ "subject": "Welcome to Appwrite",
+ "content": "Hi there, welcome to Appwrite family."
+ },
+ "status": "Message status can be one of the following: draft, processing, scheduled, sent, or failed."
+ }
},
"topic": {
"description": "Topic",
@@ -30099,7 +31227,17 @@
"smsTotal",
"pushTotal",
"subscribe"
- ]
+ ],
+ "example": {
+ "$id": "259125845563242502",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "events",
+ "emailTotal": 100,
+ "smsTotal": 100,
+ "pushTotal": 100,
+ "subscribe": "users"
+ }
},
"subscriber": {
"description": "Subscriber",
@@ -30173,7 +31311,27 @@
"userName",
"topicId",
"providerType"
- ]
+ ],
+ "example": {
+ "$id": "259125845563242502",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "targetId": "259125845563242502",
+ "target": {
+ "$id": "259125845563242502",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "providerType": "email",
+ "providerId": "259125845563242502",
+ "name": "ageon-app-email",
+ "identifier": "random-mail@email.org",
+ "userId": "5e5ea5c16897e"
+ },
+ "userId": "5e5ea5c16897e",
+ "userName": "Aegon Targaryen",
+ "topicId": "259125845563242502",
+ "providerType": "email"
+ }
},
"target": {
"description": "Target",
@@ -30235,7 +31393,18 @@
"providerType",
"identifier",
"expired"
- ]
+ ],
+ "example": {
+ "$id": "259125845563242502",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "Apple iPhone 12",
+ "userId": "259125845563242502",
+ "providerId": "259125845563242502",
+ "providerType": "email",
+ "identifier": "token",
+ "expired": false
+ }
}
},
"securitySchemes": {
diff --git a/app/config/specs/open-api3-1.8.x-client.json b/app/config/specs/open-api3-1.8.x-client.json
new file mode 100644
index 0000000000..d57b9f83b2
--- /dev/null
+++ b/app/config/specs/open-api3-1.8.x-client.json
@@ -0,0 +1,12064 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "version": "1.8.0",
+ "title": "Appwrite",
+ "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)",
+ "termsOfService": "https:\/\/appwrite.io\/policy\/terms",
+ "contact": {
+ "name": "Appwrite Team",
+ "url": "https:\/\/appwrite.io\/support",
+ "email": "team@appwrite.io"
+ },
+ "license": {
+ "name": "BSD-3-Clause",
+ "url": "https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE"
+ }
+ },
+ "servers": [
+ {
+ "url": "https:\/\/cloud.appwrite.io\/v1"
+ },
+ {
+ "url": "https:\/\/.cloud.appwrite.io\/v1"
+ }
+ ],
+ "paths": {
+ "\/account": {
+ "get": {
+ "summary": "Get account",
+ "operationId": "accountGet",
+ "tags": [
+ "account"
+ ],
+ "description": "Get the currently logged in user.",
+ "responses": {
+ "200": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "get",
+ "group": "account",
+ "weight": 10,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/get.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ },
+ "post": {
+ "summary": "Create account",
+ "operationId": "accountCreate",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailSession).",
+ "responses": {
+ "201": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "create",
+ "group": "account",
+ "weight": 9,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "x-example": ""
+ },
+ "email": {
+ "type": "string",
+ "description": "User email.",
+ "x-example": "email@example.com"
+ },
+ "password": {
+ "type": "string",
+ "description": "New user password. Must be between 8 and 256 chars.",
+ "x-example": null
+ },
+ "name": {
+ "type": "string",
+ "description": "User name. Max length: 128 chars.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "userId",
+ "email",
+ "password"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/email": {
+ "patch": {
+ "summary": "Update email",
+ "operationId": "accountUpdateEmail",
+ "tags": [
+ "account"
+ ],
+ "description": "Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n",
+ "responses": {
+ "200": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateEmail",
+ "group": "account",
+ "weight": 35,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-email.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-email.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "User email.",
+ "x-example": "email@example.com"
+ },
+ "password": {
+ "type": "string",
+ "description": "User password. Must be at least 8 chars.",
+ "x-example": "password"
+ }
+ },
+ "required": [
+ "email",
+ "password"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/identities": {
+ "get": {
+ "summary": "List identities",
+ "operationId": "accountListIdentities",
+ "tags": [
+ "account"
+ ],
+ "description": "Get the list of identities for the currently logged in user.",
+ "responses": {
+ "200": {
+ "description": "Identities List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/identityList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "listIdentities",
+ "group": "identities",
+ "weight": 58,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/list-identities.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/list-identities.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "queries",
+ "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, provider, providerUid, providerEmail, providerAccessTokenExpiry",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/account\/identities\/{identityId}": {
+ "delete": {
+ "summary": "Delete identity",
+ "operationId": "accountDeleteIdentity",
+ "tags": [
+ "account"
+ ],
+ "description": "Delete an identity by its unique ID.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "deleteIdentity",
+ "group": "identities",
+ "weight": 59,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/delete-identity.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-identity.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "identityId",
+ "description": "Identity ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ }
+ },
+ "\/account\/jwts": {
+ "post": {
+ "summary": "Create JWT",
+ "operationId": "accountCreateJWT",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to create a JSON Web Token. You can use the resulting JWT to authenticate on behalf of the current user when working with the Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame.",
+ "responses": {
+ "201": {
+ "description": "JWT",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/jwt"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createJWT",
+ "group": "tokens",
+ "weight": 30,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-jwt.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-jwt.md",
+ "rate-limit": 100,
+ "rate-time": 3600,
+ "rate-key": "url:{url},userId:{userId}",
+ "scope": "account",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ]
+ }
+ },
+ "\/account\/logs": {
+ "get": {
+ "summary": "List logs",
+ "operationId": "accountListLogs",
+ "tags": [
+ "account"
+ ],
+ "description": "Get the list of latest security activity logs for the currently logged in user. Each log returns user IP address, location and date and time of log.",
+ "responses": {
+ "200": {
+ "description": "Logs List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/logList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "listLogs",
+ "group": "logs",
+ "weight": 32,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/list-logs.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/list-logs.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "queries",
+ "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/account\/mfa": {
+ "patch": {
+ "summary": "Update MFA",
+ "operationId": "accountUpdateMFA",
+ "tags": [
+ "account"
+ ],
+ "description": "Enable or disable MFA on an account.",
+ "responses": {
+ "200": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateMFA",
+ "group": "mfa",
+ "weight": 45,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-mfa.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-mfa.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mfa": {
+ "type": "boolean",
+ "description": "Enable or disable MFA.",
+ "x-example": false
+ }
+ },
+ "required": [
+ "mfa"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/mfa\/authenticators\/{type}": {
+ "post": {
+ "summary": "Create authenticator",
+ "operationId": "accountCreateMfaAuthenticator",
+ "tags": [
+ "account"
+ ],
+ "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.",
+ "responses": {
+ "200": {
+ "description": "MFAType",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/mfaType"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "createMfaAuthenticator",
+ "group": "mfa",
+ "weight": 47,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-mfa-authenticator.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-mfa-authenticator.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.createMFAAuthenticator"
+ },
+ "methods": [
+ {
+ "name": "createMfaAuthenticator",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "type"
+ ],
+ "required": [
+ "type"
+ ],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/mfaType"
+ }
+ ],
+ "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.",
+ "demo": "account\/create-mfa-authenticator.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.createMFAAuthenticator"
+ }
+ },
+ {
+ "name": "createMFAAuthenticator",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "type"
+ ],
+ "required": [
+ "type"
+ ],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/mfaType"
+ }
+ ],
+ "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.",
+ "demo": "account\/create-mfa-authenticator.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "type",
+ "description": "Type of authenticator. Must be `totp`",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": "totp",
+ "enum": [
+ "totp"
+ ],
+ "x-enum-name": "AuthenticatorType",
+ "x-enum-keys": []
+ },
+ "in": "path"
+ }
+ ]
+ },
+ "put": {
+ "summary": "Update authenticator (confirmation)",
+ "operationId": "accountUpdateMfaAuthenticator",
+ "tags": [
+ "account"
+ ],
+ "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.",
+ "responses": {
+ "200": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "updateMfaAuthenticator",
+ "group": "mfa",
+ "weight": 48,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-mfa-authenticator.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-mfa-authenticator.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.updateMFAAuthenticator"
+ },
+ "methods": [
+ {
+ "name": "updateMfaAuthenticator",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "type",
+ "otp"
+ ],
+ "required": [
+ "type",
+ "otp"
+ ],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/user"
+ }
+ ],
+ "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.",
+ "demo": "account\/update-mfa-authenticator.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.updateMFAAuthenticator"
+ }
+ },
+ {
+ "name": "updateMFAAuthenticator",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "type",
+ "otp"
+ ],
+ "required": [
+ "type",
+ "otp"
+ ],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/user"
+ }
+ ],
+ "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.",
+ "demo": "account\/update-mfa-authenticator.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "type",
+ "description": "Type of authenticator.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": "totp",
+ "enum": [
+ "totp"
+ ],
+ "x-enum-name": "AuthenticatorType",
+ "x-enum-keys": []
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "otp": {
+ "type": "string",
+ "description": "Valid verification token.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "otp"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "summary": "Delete authenticator",
+ "operationId": "accountDeleteMfaAuthenticator",
+ "tags": [
+ "account"
+ ],
+ "description": "Delete an authenticator for a user by ID.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "deleteMfaAuthenticator",
+ "group": "mfa",
+ "weight": 52,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/delete-mfa-authenticator.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-mfa-authenticator.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.deleteMFAAuthenticator"
+ },
+ "methods": [
+ {
+ "name": "deleteMfaAuthenticator",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "type"
+ ],
+ "required": [
+ "type"
+ ],
+ "responses": [
+ {
+ "code": 204
+ }
+ ],
+ "description": "Delete an authenticator for a user by ID.",
+ "demo": "account\/delete-mfa-authenticator.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.deleteMFAAuthenticator"
+ }
+ },
+ {
+ "name": "deleteMFAAuthenticator",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "type"
+ ],
+ "required": [
+ "type"
+ ],
+ "responses": [
+ {
+ "code": 204
+ }
+ ],
+ "description": "Delete an authenticator for a user by ID.",
+ "demo": "account\/delete-mfa-authenticator.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "type",
+ "description": "Type of authenticator.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": "totp",
+ "enum": [
+ "totp"
+ ],
+ "x-enum-name": "AuthenticatorType",
+ "x-enum-keys": []
+ },
+ "in": "path"
+ }
+ ]
+ }
+ },
+ "\/account\/mfa\/challenge": {
+ "post": {
+ "summary": "Create MFA challenge",
+ "operationId": "accountCreateMfaChallenge",
+ "tags": [
+ "account"
+ ],
+ "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.",
+ "responses": {
+ "201": {
+ "description": "MFA Challenge",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/mfaChallenge"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "createMfaChallenge",
+ "group": "mfa",
+ "weight": 53,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-mfa-challenge.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-mfa-challenge.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},userId:{userId}",
+ "scope": "account",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.createMFAChallenge"
+ },
+ "methods": [
+ {
+ "name": "createMfaChallenge",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "factor"
+ ],
+ "required": [
+ "factor"
+ ],
+ "responses": [
+ {
+ "code": 201,
+ "model": "#\/components\/schemas\/mfaChallenge"
+ }
+ ],
+ "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.",
+ "demo": "account\/create-mfa-challenge.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.createMFAChallenge"
+ }
+ },
+ {
+ "name": "createMFAChallenge",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "factor"
+ ],
+ "required": [
+ "factor"
+ ],
+ "responses": [
+ {
+ "code": 201,
+ "model": "#\/components\/schemas\/mfaChallenge"
+ }
+ ],
+ "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.",
+ "demo": "account\/create-mfa-challenge.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "factor": {
+ "type": "string",
+ "description": "Factor used for verification. Must be one of following: `email`, `phone`, `totp`, `recoveryCode`.",
+ "x-example": "email",
+ "enum": [
+ "email",
+ "phone",
+ "totp",
+ "recoverycode"
+ ],
+ "x-enum-name": "AuthenticationFactor",
+ "x-enum-keys": []
+ }
+ },
+ "required": [
+ "factor"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "put": {
+ "summary": "Update MFA challenge (confirmation)",
+ "operationId": "accountUpdateMfaChallenge",
+ "tags": [
+ "account"
+ ],
+ "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.",
+ "responses": {
+ "200": {
+ "description": "Session",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/session"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "updateMfaChallenge",
+ "group": "mfa",
+ "weight": 54,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-mfa-challenge.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-mfa-challenge.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},challengeId:{param-challengeId}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.updateMFAChallenge"
+ },
+ "methods": [
+ {
+ "name": "updateMfaChallenge",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "challengeId",
+ "otp"
+ ],
+ "required": [
+ "challengeId",
+ "otp"
+ ],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/session"
+ }
+ ],
+ "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.",
+ "demo": "account\/update-mfa-challenge.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.updateMFAChallenge"
+ }
+ },
+ {
+ "name": "updateMFAChallenge",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "challengeId",
+ "otp"
+ ],
+ "required": [
+ "challengeId",
+ "otp"
+ ],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/session"
+ }
+ ],
+ "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.",
+ "demo": "account\/update-mfa-challenge.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "challengeId": {
+ "type": "string",
+ "description": "ID of the challenge.",
+ "x-example": ""
+ },
+ "otp": {
+ "type": "string",
+ "description": "Valid verification token.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "challengeId",
+ "otp"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/mfa\/factors": {
+ "get": {
+ "summary": "List factors",
+ "operationId": "accountListMfaFactors",
+ "tags": [
+ "account"
+ ],
+ "description": "List the factors available on the account to be used as a MFA challange.",
+ "responses": {
+ "200": {
+ "description": "MFAFactors",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/mfaFactors"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "listMfaFactors",
+ "group": "mfa",
+ "weight": 46,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/list-mfa-factors.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/list-mfa-factors.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.listMFAFactors"
+ },
+ "methods": [
+ {
+ "name": "listMfaFactors",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [],
+ "required": [],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/mfaFactors"
+ }
+ ],
+ "description": "List the factors available on the account to be used as a MFA challange.",
+ "demo": "account\/list-mfa-factors.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.listMFAFactors"
+ }
+ },
+ {
+ "name": "listMFAFactors",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [],
+ "required": [],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/mfaFactors"
+ }
+ ],
+ "description": "List the factors available on the account to be used as a MFA challange.",
+ "demo": "account\/list-mfa-factors.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ }
+ },
+ "\/account\/mfa\/recovery-codes": {
+ "get": {
+ "summary": "List MFA recovery codes",
+ "operationId": "accountGetMfaRecoveryCodes",
+ "tags": [
+ "account"
+ ],
+ "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.",
+ "responses": {
+ "200": {
+ "description": "MFA Recovery Codes",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/mfaRecoveryCodes"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "getMfaRecoveryCodes",
+ "group": "mfa",
+ "weight": 51,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/get-mfa-recovery-codes.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-mfa-recovery-codes.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.getMFARecoveryCodes"
+ },
+ "methods": [
+ {
+ "name": "getMfaRecoveryCodes",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [],
+ "required": [],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/mfaRecoveryCodes"
+ }
+ ],
+ "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.",
+ "demo": "account\/get-mfa-recovery-codes.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.getMFARecoveryCodes"
+ }
+ },
+ {
+ "name": "getMFARecoveryCodes",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [],
+ "required": [],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/mfaRecoveryCodes"
+ }
+ ],
+ "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.",
+ "demo": "account\/get-mfa-recovery-codes.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ },
+ "post": {
+ "summary": "Create MFA recovery codes",
+ "operationId": "accountCreateMfaRecoveryCodes",
+ "tags": [
+ "account"
+ ],
+ "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.",
+ "responses": {
+ "201": {
+ "description": "MFA Recovery Codes",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/mfaRecoveryCodes"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "createMfaRecoveryCodes",
+ "group": "mfa",
+ "weight": 49,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-mfa-recovery-codes.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-mfa-recovery-codes.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.createMFARecoveryCodes"
+ },
+ "methods": [
+ {
+ "name": "createMfaRecoveryCodes",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [],
+ "required": [],
+ "responses": [
+ {
+ "code": 201,
+ "model": "#\/components\/schemas\/mfaRecoveryCodes"
+ }
+ ],
+ "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.",
+ "demo": "account\/create-mfa-recovery-codes.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.createMFARecoveryCodes"
+ }
+ },
+ {
+ "name": "createMFARecoveryCodes",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [],
+ "required": [],
+ "responses": [
+ {
+ "code": 201,
+ "model": "#\/components\/schemas\/mfaRecoveryCodes"
+ }
+ ],
+ "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.",
+ "demo": "account\/create-mfa-recovery-codes.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ },
+ "patch": {
+ "summary": "Update MFA recovery codes (regenerate)",
+ "operationId": "accountUpdateMfaRecoveryCodes",
+ "tags": [
+ "account"
+ ],
+ "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.",
+ "responses": {
+ "200": {
+ "description": "MFA Recovery Codes",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/mfaRecoveryCodes"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "updateMfaRecoveryCodes",
+ "group": "mfa",
+ "weight": 50,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-mfa-recovery-codes.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-mfa-recovery-codes.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.updateMFARecoveryCodes"
+ },
+ "methods": [
+ {
+ "name": "updateMfaRecoveryCodes",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [],
+ "required": [],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/mfaRecoveryCodes"
+ }
+ ],
+ "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.",
+ "demo": "account\/update-mfa-recovery-codes.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.updateMFARecoveryCodes"
+ }
+ },
+ {
+ "name": "updateMFARecoveryCodes",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [],
+ "required": [],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/mfaRecoveryCodes"
+ }
+ ],
+ "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.",
+ "demo": "account\/update-mfa-recovery-codes.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ }
+ },
+ "\/account\/name": {
+ "patch": {
+ "summary": "Update name",
+ "operationId": "accountUpdateName",
+ "tags": [
+ "account"
+ ],
+ "description": "Update currently logged in user account name.",
+ "responses": {
+ "200": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateName",
+ "group": "account",
+ "weight": 33,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-name.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-name.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "User name. Max length: 128 chars.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "name"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/password": {
+ "patch": {
+ "summary": "Update password",
+ "operationId": "accountUpdatePassword",
+ "tags": [
+ "account"
+ ],
+ "description": "Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth, Team Invites and Magic URL, oldPassword is optional.",
+ "responses": {
+ "200": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updatePassword",
+ "group": "account",
+ "weight": 34,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-password.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-password.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "password": {
+ "type": "string",
+ "description": "New user password. Must be at least 8 chars.",
+ "x-example": null
+ },
+ "oldPassword": {
+ "type": "string",
+ "description": "Current user password. Must be at least 8 chars.",
+ "x-example": "password"
+ }
+ },
+ "required": [
+ "password"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/phone": {
+ "patch": {
+ "summary": "Update phone",
+ "operationId": "accountUpdatePhone",
+ "tags": [
+ "account"
+ ],
+ "description": "Update the currently logged in user's phone number. After updating the phone number, the phone verification status will be reset. A confirmation SMS is not sent automatically, however you can use the [POST \/account\/verification\/phone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createPhoneVerification) endpoint to send a confirmation SMS.",
+ "responses": {
+ "200": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updatePhone",
+ "group": "account",
+ "weight": 36,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-phone.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-phone.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "phone": {
+ "type": "string",
+ "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.",
+ "x-example": "+12065550100"
+ },
+ "password": {
+ "type": "string",
+ "description": "User password. Must be at least 8 chars.",
+ "x-example": "password"
+ }
+ },
+ "required": [
+ "phone",
+ "password"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/prefs": {
+ "get": {
+ "summary": "Get account preferences",
+ "operationId": "accountGetPrefs",
+ "tags": [
+ "account"
+ ],
+ "description": "Get the preferences as a key-value object for the currently logged in user.",
+ "responses": {
+ "200": {
+ "description": "Preferences",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/preferences"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getPrefs",
+ "group": "account",
+ "weight": 31,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/get-prefs.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-prefs.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ },
+ "patch": {
+ "summary": "Update preferences",
+ "operationId": "accountUpdatePrefs",
+ "tags": [
+ "account"
+ ],
+ "description": "Update currently logged in user account preferences. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.",
+ "responses": {
+ "200": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updatePrefs",
+ "group": "account",
+ "weight": 37,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-prefs.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-prefs.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "prefs": {
+ "type": "object",
+ "description": "Prefs key-value JSON object.",
+ "x-example": "{\"language\":\"en\",\"timezone\":\"UTC\",\"darkTheme\":true}"
+ }
+ },
+ "required": [
+ "prefs"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/recovery": {
+ "post": {
+ "summary": "Create password recovery",
+ "operationId": "accountCreateRecovery",
+ "tags": [
+ "account"
+ ],
+ "description": "Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.",
+ "responses": {
+ "201": {
+ "description": "Token",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/token"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createRecovery",
+ "group": "recovery",
+ "weight": 39,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-recovery.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-recovery.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": [
+ "url:{url},email:{param-email}",
+ "url:{url},ip:{ip}"
+ ],
+ "scope": "sessions.write",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "User email.",
+ "x-example": "email@example.com"
+ },
+ "url": {
+ "type": "string",
+ "description": "URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.",
+ "x-example": "https:\/\/example.com"
+ }
+ },
+ "required": [
+ "email",
+ "url"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "put": {
+ "summary": "Update password recovery (confirmation)",
+ "operationId": "accountUpdateRecovery",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.",
+ "responses": {
+ "200": {
+ "description": "Token",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/token"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateRecovery",
+ "group": "recovery",
+ "weight": 40,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-recovery.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-recovery.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},userId:{param-userId}",
+ "scope": "sessions.write",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "User ID.",
+ "x-example": ""
+ },
+ "secret": {
+ "type": "string",
+ "description": "Valid reset token.",
+ "x-example": ""
+ },
+ "password": {
+ "type": "string",
+ "description": "New user password. Must be between 8 and 256 chars.",
+ "x-example": null
+ }
+ },
+ "required": [
+ "userId",
+ "secret",
+ "password"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/sessions": {
+ "get": {
+ "summary": "List sessions",
+ "operationId": "accountListSessions",
+ "tags": [
+ "account"
+ ],
+ "description": "Get the list of active sessions across different devices for the currently logged in user.",
+ "responses": {
+ "200": {
+ "description": "Sessions List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/sessionList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "listSessions",
+ "group": "sessions",
+ "weight": 12,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/list-sessions.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/list-sessions.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ },
+ "delete": {
+ "summary": "Delete sessions",
+ "operationId": "accountDeleteSessions",
+ "tags": [
+ "account"
+ ],
+ "description": "Delete all sessions from the user account and remove any sessions cookies from the end client.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "deleteSessions",
+ "group": "sessions",
+ "weight": 13,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/delete-sessions.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-sessions.md",
+ "rate-limit": 100,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ }
+ },
+ "\/account\/sessions\/anonymous": {
+ "post": {
+ "summary": "Create anonymous session",
+ "operationId": "accountCreateAnonymousSession",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmail) or create an [OAuth2 session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#CreateOAuth2Session).",
+ "responses": {
+ "201": {
+ "description": "Session",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/session"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createAnonymousSession",
+ "group": "sessions",
+ "weight": 18,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-anonymous-session.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-anonymous.md",
+ "rate-limit": 50,
+ "rate-time": 3600,
+ "rate-key": "ip:{ip}",
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ]
+ }
+ },
+ "\/account\/sessions\/email": {
+ "post": {
+ "summary": "Create email password session",
+ "operationId": "accountCreateEmailPasswordSession",
+ "tags": [
+ "account"
+ ],
+ "description": "Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).",
+ "responses": {
+ "201": {
+ "description": "Session",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/session"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createEmailPasswordSession",
+ "group": "sessions",
+ "weight": 17,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-email-password-session.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-email-password.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},email:{param-email}",
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "User email.",
+ "x-example": "email@example.com"
+ },
+ "password": {
+ "type": "string",
+ "description": "User password. Must be at least 8 chars.",
+ "x-example": "password"
+ }
+ },
+ "required": [
+ "email",
+ "password"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/sessions\/magic-url": {
+ "put": {
+ "summary": "Update magic URL session",
+ "operationId": "accountUpdateMagicURLSession",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.",
+ "responses": {
+ "201": {
+ "description": "Session",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/session"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "updateMagicURLSession",
+ "group": "sessions",
+ "weight": 27,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-magic-url-session.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "ip:{ip},userId:{param-userId}",
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.6.0",
+ "replaceWith": "account.createSession"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "x-example": ""
+ },
+ "secret": {
+ "type": "string",
+ "description": "Valid verification token.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "userId",
+ "secret"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/sessions\/oauth2\/{provider}": {
+ "get": {
+ "summary": "Create OAuth2 session",
+ "operationId": "accountCreateOAuth2Session",
+ "tags": [
+ "account"
+ ],
+ "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n",
+ "responses": {
+ "301": {
+ "description": "File"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createOAuth2Session",
+ "group": "sessions",
+ "weight": 20,
+ "cookies": false,
+ "type": "webAuth",
+ "demo": "account\/create-o-auth-2-session.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-oauth2.md",
+ "rate-limit": 50,
+ "rate-time": 3600,
+ "rate-key": "ip:{ip}",
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "provider",
+ "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, auth0, authentik, autodesk, bitbucket, bitly, box, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, github, gitlab, google, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, yahoo, yammer, yandex, zoho, zoom.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": "amazon",
+ "enum": [
+ "amazon",
+ "apple",
+ "auth0",
+ "authentik",
+ "autodesk",
+ "bitbucket",
+ "bitly",
+ "box",
+ "dailymotion",
+ "discord",
+ "disqus",
+ "dropbox",
+ "etsy",
+ "facebook",
+ "figma",
+ "github",
+ "gitlab",
+ "google",
+ "linkedin",
+ "microsoft",
+ "notion",
+ "oidc",
+ "okta",
+ "paypal",
+ "paypalSandbox",
+ "podio",
+ "salesforce",
+ "slack",
+ "spotify",
+ "stripe",
+ "tradeshift",
+ "tradeshiftBox",
+ "twitch",
+ "wordpress",
+ "yahoo",
+ "yammer",
+ "yandex",
+ "zoho",
+ "zoom",
+ "mock"
+ ],
+ "x-enum-name": "OAuthProvider",
+ "x-enum-keys": []
+ },
+ "in": "path"
+ },
+ {
+ "name": "success",
+ "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "format": "url",
+ "x-example": "https:\/\/example.com",
+ "default": ""
+ },
+ "in": "query"
+ },
+ {
+ "name": "failure",
+ "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "format": "url",
+ "x-example": "https:\/\/example.com",
+ "default": ""
+ },
+ "in": "query"
+ },
+ {
+ "name": "scopes",
+ "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/account\/sessions\/phone": {
+ "put": {
+ "summary": "Update phone session",
+ "operationId": "accountUpdatePhoneSession",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.",
+ "responses": {
+ "201": {
+ "description": "Session",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/session"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "updatePhoneSession",
+ "group": "sessions",
+ "weight": 28,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-phone-session.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "ip:{ip},userId:{param-userId}",
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.6.0",
+ "replaceWith": "account.createSession"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "x-example": ""
+ },
+ "secret": {
+ "type": "string",
+ "description": "Valid verification token.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "userId",
+ "secret"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/sessions\/token": {
+ "post": {
+ "summary": "Create session",
+ "operationId": "accountCreateSession",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.",
+ "responses": {
+ "201": {
+ "description": "Session",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/session"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createSession",
+ "group": "sessions",
+ "weight": 19,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-session.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "ip:{ip},userId:{param-userId}",
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "x-example": ""
+ },
+ "secret": {
+ "type": "string",
+ "description": "Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "userId",
+ "secret"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/sessions\/{sessionId}": {
+ "get": {
+ "summary": "Get session",
+ "operationId": "accountGetSession",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.",
+ "responses": {
+ "200": {
+ "description": "Session",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/session"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getSession",
+ "group": "sessions",
+ "weight": 14,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/get-session.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-session.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "sessionId",
+ "description": "Session ID. Use the string 'current' to get the current device session.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ },
+ "patch": {
+ "summary": "Update session",
+ "operationId": "accountUpdateSession",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to extend a session's length. Extending a session is useful when session expiry is short. If the session was created using an OAuth provider, this endpoint refreshes the access token from the provider.",
+ "responses": {
+ "200": {
+ "description": "Session",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/session"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateSession",
+ "group": "sessions",
+ "weight": 16,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-session.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-session.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "sessionId",
+ "description": "Session ID. Use the string 'current' to update the current device session.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ },
+ "delete": {
+ "summary": "Delete session",
+ "operationId": "accountDeleteSession",
+ "tags": [
+ "account"
+ ],
+ "description": "Logout the user. Use 'current' as the session ID to logout on this device, use a session ID to logout on another device. If you're looking to logout the user on all devices, use [Delete Sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#deleteSessions) instead.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "deleteSession",
+ "group": "sessions",
+ "weight": 15,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/delete-session.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-session.md",
+ "rate-limit": 100,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "sessionId",
+ "description": "Session ID. Use the string 'current' to delete the current device session.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ }
+ },
+ "\/account\/status": {
+ "patch": {
+ "summary": "Update status",
+ "operationId": "accountUpdateStatus",
+ "tags": [
+ "account"
+ ],
+ "description": "Block the currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. To completely delete a user, use the Users API instead.",
+ "responses": {
+ "200": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateStatus",
+ "group": "account",
+ "weight": 38,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-status.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-status.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ }
+ },
+ "\/account\/targets\/push": {
+ "post": {
+ "summary": "Create push target",
+ "operationId": "accountCreatePushTarget",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to register a device for push notifications. Provide a target ID (custom or generated using ID.unique()), a device identifier (usually a device token), and optionally specify which provider should send notifications to this target. The target is automatically linked to the current session and includes device information like brand and model.",
+ "responses": {
+ "201": {
+ "description": "Target",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/target"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createPushTarget",
+ "group": "pushTargets",
+ "weight": 55,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-push-target.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-push-target.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "targets.write",
+ "platforms": [
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "targetId": {
+ "type": "string",
+ "description": "Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "x-example": ""
+ },
+ "identifier": {
+ "type": "string",
+ "description": "The target identifier (token, email, phone etc.)",
+ "x-example": ""
+ },
+ "providerId": {
+ "type": "string",
+ "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "targetId",
+ "identifier"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/targets\/{targetId}\/push": {
+ "put": {
+ "summary": "Update push target",
+ "operationId": "accountUpdatePushTarget",
+ "tags": [
+ "account"
+ ],
+ "description": "Update the currently logged in user's push notification target. You can modify the target's identifier (device token) and provider ID (token, email, phone etc.). The target must exist and belong to the current user. If you change the provider ID, notifications will be sent through the new messaging provider instead.",
+ "responses": {
+ "200": {
+ "description": "Target",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/target"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updatePushTarget",
+ "group": "pushTargets",
+ "weight": 56,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-push-target.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-push-target.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "targets.write",
+ "platforms": [
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "targetId",
+ "description": "Target ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "identifier": {
+ "type": "string",
+ "description": "The target identifier (token, email, phone etc.)",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "identifier"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "summary": "Delete push target",
+ "operationId": "accountDeletePushTarget",
+ "tags": [
+ "account"
+ ],
+ "description": "Delete a push notification target for the currently logged in user. After deletion, the device will no longer receive push notifications. The target must exist and belong to the current user.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "deletePushTarget",
+ "group": "pushTargets",
+ "weight": 57,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/delete-push-target.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-push-target.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "targets.write",
+ "platforms": [
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "targetId",
+ "description": "Target ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ }
+ },
+ "\/account\/tokens\/email": {
+ "post": {
+ "summary": "Create email token (OTP)",
+ "operationId": "accountCreateEmailToken",
+ "tags": [
+ "account"
+ ],
+ "description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n",
+ "responses": {
+ "201": {
+ "description": "Token",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/token"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createEmailToken",
+ "group": "tokens",
+ "weight": 26,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-email-token.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-token-email.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": [
+ "url:{url},email:{param-email}",
+ "url:{url},ip:{ip}"
+ ],
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
+ "x-example": ""
+ },
+ "email": {
+ "type": "string",
+ "description": "User email.",
+ "x-example": "email@example.com"
+ },
+ "phrase": {
+ "type": "boolean",
+ "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.",
+ "x-example": false
+ }
+ },
+ "required": [
+ "userId",
+ "email"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/tokens\/magic-url": {
+ "post": {
+ "summary": "Create magic URL token",
+ "operationId": "accountCreateMagicURLToken",
+ "tags": [
+ "account"
+ ],
+ "description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not been registered, a new user will be created. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n",
+ "responses": {
+ "201": {
+ "description": "Token",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/token"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createMagicURLToken",
+ "group": "tokens",
+ "weight": 25,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-magic-url-token.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-token-magic-url.md",
+ "rate-limit": 60,
+ "rate-time": 3600,
+ "rate-key": [
+ "url:{url},email:{param-email}",
+ "url:{url},ip:{ip}"
+ ],
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
+ "x-example": ""
+ },
+ "email": {
+ "type": "string",
+ "description": "User email.",
+ "x-example": "email@example.com"
+ },
+ "url": {
+ "type": "string",
+ "description": "URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.",
+ "x-example": "https:\/\/example.com"
+ },
+ "phrase": {
+ "type": "boolean",
+ "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.",
+ "x-example": false
+ }
+ },
+ "required": [
+ "userId",
+ "email"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/tokens\/oauth2\/{provider}": {
+ "get": {
+ "summary": "Create OAuth2 token",
+ "operationId": "accountCreateOAuth2Token",
+ "tags": [
+ "account"
+ ],
+ "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed. \n\nIf authentication succeeds, `userId` and `secret` of a token will be appended to the success URL as query parameters. These can be used to create a new session using the [Create session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).",
+ "responses": {
+ "301": {
+ "description": "File"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createOAuth2Token",
+ "group": "tokens",
+ "weight": 24,
+ "cookies": false,
+ "type": "webAuth",
+ "demo": "account\/create-o-auth-2-token.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-token-oauth2.md",
+ "rate-limit": 50,
+ "rate-time": 3600,
+ "rate-key": "ip:{ip}",
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "provider",
+ "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, auth0, authentik, autodesk, bitbucket, bitly, box, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, github, gitlab, google, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, yahoo, yammer, yandex, zoho, zoom.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": "amazon",
+ "enum": [
+ "amazon",
+ "apple",
+ "auth0",
+ "authentik",
+ "autodesk",
+ "bitbucket",
+ "bitly",
+ "box",
+ "dailymotion",
+ "discord",
+ "disqus",
+ "dropbox",
+ "etsy",
+ "facebook",
+ "figma",
+ "github",
+ "gitlab",
+ "google",
+ "linkedin",
+ "microsoft",
+ "notion",
+ "oidc",
+ "okta",
+ "paypal",
+ "paypalSandbox",
+ "podio",
+ "salesforce",
+ "slack",
+ "spotify",
+ "stripe",
+ "tradeshift",
+ "tradeshiftBox",
+ "twitch",
+ "wordpress",
+ "yahoo",
+ "yammer",
+ "yandex",
+ "zoho",
+ "zoom",
+ "mock"
+ ],
+ "x-enum-name": "OAuthProvider",
+ "x-enum-keys": []
+ },
+ "in": "path"
+ },
+ {
+ "name": "success",
+ "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "format": "url",
+ "x-example": "https:\/\/example.com",
+ "default": ""
+ },
+ "in": "query"
+ },
+ {
+ "name": "failure",
+ "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "format": "url",
+ "x-example": "https:\/\/example.com",
+ "default": ""
+ },
+ "in": "query"
+ },
+ {
+ "name": "scopes",
+ "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/account\/tokens\/phone": {
+ "post": {
+ "summary": "Create phone token",
+ "operationId": "accountCreatePhoneToken",
+ "tags": [
+ "account"
+ ],
+ "description": "Sends the user an SMS with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's phone is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).",
+ "responses": {
+ "201": {
+ "description": "Token",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/token"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createPhoneToken",
+ "group": "tokens",
+ "weight": 29,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-phone-token.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-token-phone.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": [
+ "url:{url},phone:{param-phone}",
+ "url:{url},ip:{ip}"
+ ],
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.",
+ "x-example": ""
+ },
+ "phone": {
+ "type": "string",
+ "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.",
+ "x-example": "+12065550100"
+ }
+ },
+ "required": [
+ "userId",
+ "phone"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/verification": {
+ "post": {
+ "summary": "Create email verification",
+ "operationId": "accountCreateVerification",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n",
+ "responses": {
+ "201": {
+ "description": "Token",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/token"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createVerification",
+ "group": "verification",
+ "weight": 41,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-verification.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-email-verification.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},userId:{userId}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "description": "URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.",
+ "x-example": "https:\/\/example.com"
+ }
+ },
+ "required": [
+ "url"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "put": {
+ "summary": "Update email verification (confirmation)",
+ "operationId": "accountUpdateVerification",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.",
+ "responses": {
+ "200": {
+ "description": "Token",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/token"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateVerification",
+ "group": "verification",
+ "weight": 42,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-verification.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-email-verification.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},userId:{param-userId}",
+ "scope": "public",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "User ID.",
+ "x-example": ""
+ },
+ "secret": {
+ "type": "string",
+ "description": "Valid verification token.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "userId",
+ "secret"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/verification\/phone": {
+ "post": {
+ "summary": "Create phone verification",
+ "operationId": "accountCreatePhoneVerification",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to send a verification SMS to the currently logged in user. This endpoint is meant for use after updating a user's phone number using the [accountUpdatePhone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhone) endpoint. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhoneVerification). The verification code sent to the user's phone number is valid for 15 minutes.",
+ "responses": {
+ "201": {
+ "description": "Token",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/token"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createPhoneVerification",
+ "group": "verification",
+ "weight": 43,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-phone-verification.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-phone-verification.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": [
+ "url:{url},userId:{userId}",
+ "url:{url},ip:{ip}"
+ ],
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ },
+ "put": {
+ "summary": "Update phone verification (confirmation)",
+ "operationId": "accountUpdatePhoneVerification",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to complete the user phone verification process. Use the **userId** and **secret** that were sent to your user's phone number to verify the user email ownership. If confirmed this route will return a 200 status code.",
+ "responses": {
+ "200": {
+ "description": "Token",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/token"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updatePhoneVerification",
+ "group": "verification",
+ "weight": 44,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-phone-verification.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-phone-verification.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "userId:{param-userId}",
+ "scope": "public",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "User ID.",
+ "x-example": ""
+ },
+ "secret": {
+ "type": "string",
+ "description": "Valid verification token.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "userId",
+ "secret"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/avatars\/browsers\/{code}": {
+ "get": {
+ "summary": "Get browser icon",
+ "operationId": "avatarsGetBrowser",
+ "tags": [
+ "avatars"
+ ],
+ "description": "You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user [GET \/account\/sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getSessions) endpoint. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.",
+ "responses": {
+ "200": {
+ "description": "Image"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getBrowser",
+ "group": null,
+ "weight": 61,
+ "cookies": false,
+ "type": "location",
+ "demo": "avatars\/get-browser.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-browser.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "avatars.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "code",
+ "description": "Browser Code.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": "aa",
+ "enum": [
+ "aa",
+ "an",
+ "ch",
+ "ci",
+ "cm",
+ "cr",
+ "ff",
+ "sf",
+ "mf",
+ "ps",
+ "oi",
+ "om",
+ "op",
+ "on"
+ ],
+ "x-enum-name": "Browser",
+ "x-enum-keys": [
+ "Avant Browser",
+ "Android WebView Beta",
+ "Google Chrome",
+ "Google Chrome (iOS)",
+ "Google Chrome (Mobile)",
+ "Chromium",
+ "Mozilla Firefox",
+ "Safari",
+ "Mobile Safari",
+ "Microsoft Edge",
+ "Microsoft Edge (iOS)",
+ "Opera Mini",
+ "Opera",
+ "Opera (Next)"
+ ]
+ },
+ "in": "path"
+ },
+ {
+ "name": "width",
+ "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 100
+ },
+ "in": "query"
+ },
+ {
+ "name": "height",
+ "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 100
+ },
+ "in": "query"
+ },
+ {
+ "name": "quality",
+ "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": -1,
+ "default": -1
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/avatars\/credit-cards\/{code}": {
+ "get": {
+ "summary": "Get credit card icon",
+ "operationId": "avatarsGetCreditCard",
+ "tags": [
+ "avatars"
+ ],
+ "description": "The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n",
+ "responses": {
+ "200": {
+ "description": "Image"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getCreditCard",
+ "group": null,
+ "weight": 60,
+ "cookies": false,
+ "type": "location",
+ "demo": "avatars\/get-credit-card.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-credit-card.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "avatars.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "code",
+ "description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": "amex",
+ "enum": [
+ "amex",
+ "argencard",
+ "cabal",
+ "cencosud",
+ "diners",
+ "discover",
+ "elo",
+ "hipercard",
+ "jcb",
+ "mastercard",
+ "naranja",
+ "targeta-shopping",
+ "unionpay",
+ "visa",
+ "mir",
+ "maestro",
+ "rupay"
+ ],
+ "x-enum-name": "CreditCard",
+ "x-enum-keys": [
+ "American Express",
+ "Argencard",
+ "Cabal",
+ "Cencosud",
+ "Diners Club",
+ "Discover",
+ "Elo",
+ "Hipercard",
+ "JCB",
+ "Mastercard",
+ "Naranja",
+ "Tarjeta Shopping",
+ "Union Pay",
+ "Visa",
+ "MIR",
+ "Maestro",
+ "Rupay"
+ ]
+ },
+ "in": "path"
+ },
+ {
+ "name": "width",
+ "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 100
+ },
+ "in": "query"
+ },
+ {
+ "name": "height",
+ "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 100
+ },
+ "in": "query"
+ },
+ {
+ "name": "quality",
+ "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": -1,
+ "default": -1
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/avatars\/favicon": {
+ "get": {
+ "summary": "Get favicon",
+ "operationId": "avatarsGetFavicon",
+ "tags": [
+ "avatars"
+ ],
+ "description": "Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n\nThis endpoint does not follow HTTP redirects.",
+ "responses": {
+ "200": {
+ "description": "Image"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getFavicon",
+ "group": null,
+ "weight": 64,
+ "cookies": false,
+ "type": "location",
+ "demo": "avatars\/get-favicon.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-favicon.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "avatars.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "url",
+ "description": "Website URL which you want to fetch the favicon from.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "format": "url",
+ "x-example": "https:\/\/example.com"
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/avatars\/flags\/{code}": {
+ "get": {
+ "summary": "Get country flag",
+ "operationId": "avatarsGetFlag",
+ "tags": [
+ "avatars"
+ ],
+ "description": "You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings. Country codes follow the [ISO 3166-1](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) standard.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n",
+ "responses": {
+ "200": {
+ "description": "Image"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getFlag",
+ "group": null,
+ "weight": 62,
+ "cookies": false,
+ "type": "location",
+ "demo": "avatars\/get-flag.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-flag.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "avatars.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "code",
+ "description": "Country Code. ISO Alpha-2 country code format.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": "af",
+ "enum": [
+ "af",
+ "ao",
+ "al",
+ "ad",
+ "ae",
+ "ar",
+ "am",
+ "ag",
+ "au",
+ "at",
+ "az",
+ "bi",
+ "be",
+ "bj",
+ "bf",
+ "bd",
+ "bg",
+ "bh",
+ "bs",
+ "ba",
+ "by",
+ "bz",
+ "bo",
+ "br",
+ "bb",
+ "bn",
+ "bt",
+ "bw",
+ "cf",
+ "ca",
+ "ch",
+ "cl",
+ "cn",
+ "ci",
+ "cm",
+ "cd",
+ "cg",
+ "co",
+ "km",
+ "cv",
+ "cr",
+ "cu",
+ "cy",
+ "cz",
+ "de",
+ "dj",
+ "dm",
+ "dk",
+ "do",
+ "dz",
+ "ec",
+ "eg",
+ "er",
+ "es",
+ "ee",
+ "et",
+ "fi",
+ "fj",
+ "fr",
+ "fm",
+ "ga",
+ "gb",
+ "ge",
+ "gh",
+ "gn",
+ "gm",
+ "gw",
+ "gq",
+ "gr",
+ "gd",
+ "gt",
+ "gy",
+ "hn",
+ "hr",
+ "ht",
+ "hu",
+ "id",
+ "in",
+ "ie",
+ "ir",
+ "iq",
+ "is",
+ "il",
+ "it",
+ "jm",
+ "jo",
+ "jp",
+ "kz",
+ "ke",
+ "kg",
+ "kh",
+ "ki",
+ "kn",
+ "kr",
+ "kw",
+ "la",
+ "lb",
+ "lr",
+ "ly",
+ "lc",
+ "li",
+ "lk",
+ "ls",
+ "lt",
+ "lu",
+ "lv",
+ "ma",
+ "mc",
+ "md",
+ "mg",
+ "mv",
+ "mx",
+ "mh",
+ "mk",
+ "ml",
+ "mt",
+ "mm",
+ "me",
+ "mn",
+ "mz",
+ "mr",
+ "mu",
+ "mw",
+ "my",
+ "na",
+ "ne",
+ "ng",
+ "ni",
+ "nl",
+ "no",
+ "np",
+ "nr",
+ "nz",
+ "om",
+ "pk",
+ "pa",
+ "pe",
+ "ph",
+ "pw",
+ "pg",
+ "pl",
+ "pf",
+ "kp",
+ "pt",
+ "py",
+ "qa",
+ "ro",
+ "ru",
+ "rw",
+ "sa",
+ "sd",
+ "sn",
+ "sg",
+ "sb",
+ "sl",
+ "sv",
+ "sm",
+ "so",
+ "rs",
+ "ss",
+ "st",
+ "sr",
+ "sk",
+ "si",
+ "se",
+ "sz",
+ "sc",
+ "sy",
+ "td",
+ "tg",
+ "th",
+ "tj",
+ "tm",
+ "tl",
+ "to",
+ "tt",
+ "tn",
+ "tr",
+ "tv",
+ "tz",
+ "ug",
+ "ua",
+ "uy",
+ "us",
+ "uz",
+ "va",
+ "vc",
+ "ve",
+ "vn",
+ "vu",
+ "ws",
+ "ye",
+ "za",
+ "zm",
+ "zw"
+ ],
+ "x-enum-name": "Flag",
+ "x-enum-keys": [
+ "Afghanistan",
+ "Angola",
+ "Albania",
+ "Andorra",
+ "United Arab Emirates",
+ "Argentina",
+ "Armenia",
+ "Antigua and Barbuda",
+ "Australia",
+ "Austria",
+ "Azerbaijan",
+ "Burundi",
+ "Belgium",
+ "Benin",
+ "Burkina Faso",
+ "Bangladesh",
+ "Bulgaria",
+ "Bahrain",
+ "Bahamas",
+ "Bosnia and Herzegovina",
+ "Belarus",
+ "Belize",
+ "Bolivia",
+ "Brazil",
+ "Barbados",
+ "Brunei Darussalam",
+ "Bhutan",
+ "Botswana",
+ "Central African Republic",
+ "Canada",
+ "Switzerland",
+ "Chile",
+ "China",
+ "C\u00f4te d'Ivoire",
+ "Cameroon",
+ "Democratic Republic of the Congo",
+ "Republic of the Congo",
+ "Colombia",
+ "Comoros",
+ "Cape Verde",
+ "Costa Rica",
+ "Cuba",
+ "Cyprus",
+ "Czech Republic",
+ "Germany",
+ "Djibouti",
+ "Dominica",
+ "Denmark",
+ "Dominican Republic",
+ "Algeria",
+ "Ecuador",
+ "Egypt",
+ "Eritrea",
+ "Spain",
+ "Estonia",
+ "Ethiopia",
+ "Finland",
+ "Fiji",
+ "France",
+ "Micronesia (Federated States of)",
+ "Gabon",
+ "United Kingdom",
+ "Georgia",
+ "Ghana",
+ "Guinea",
+ "Gambia",
+ "Guinea-Bissau",
+ "Equatorial Guinea",
+ "Greece",
+ "Grenada",
+ "Guatemala",
+ "Guyana",
+ "Honduras",
+ "Croatia",
+ "Haiti",
+ "Hungary",
+ "Indonesia",
+ "India",
+ "Ireland",
+ "Iran (Islamic Republic of)",
+ "Iraq",
+ "Iceland",
+ "Israel",
+ "Italy",
+ "Jamaica",
+ "Jordan",
+ "Japan",
+ "Kazakhstan",
+ "Kenya",
+ "Kyrgyzstan",
+ "Cambodia",
+ "Kiribati",
+ "Saint Kitts and Nevis",
+ "South Korea",
+ "Kuwait",
+ "Lao People's Democratic Republic",
+ "Lebanon",
+ "Liberia",
+ "Libya",
+ "Saint Lucia",
+ "Liechtenstein",
+ "Sri Lanka",
+ "Lesotho",
+ "Lithuania",
+ "Luxembourg",
+ "Latvia",
+ "Morocco",
+ "Monaco",
+ "Moldova",
+ "Madagascar",
+ "Maldives",
+ "Mexico",
+ "Marshall Islands",
+ "North Macedonia",
+ "Mali",
+ "Malta",
+ "Myanmar",
+ "Montenegro",
+ "Mongolia",
+ "Mozambique",
+ "Mauritania",
+ "Mauritius",
+ "Malawi",
+ "Malaysia",
+ "Namibia",
+ "Niger",
+ "Nigeria",
+ "Nicaragua",
+ "Netherlands",
+ "Norway",
+ "Nepal",
+ "Nauru",
+ "New Zealand",
+ "Oman",
+ "Pakistan",
+ "Panama",
+ "Peru",
+ "Philippines",
+ "Palau",
+ "Papua New Guinea",
+ "Poland",
+ "French Polynesia",
+ "North Korea",
+ "Portugal",
+ "Paraguay",
+ "Qatar",
+ "Romania",
+ "Russia",
+ "Rwanda",
+ "Saudi Arabia",
+ "Sudan",
+ "Senegal",
+ "Singapore",
+ "Solomon Islands",
+ "Sierra Leone",
+ "El Salvador",
+ "San Marino",
+ "Somalia",
+ "Serbia",
+ "South Sudan",
+ "Sao Tome and Principe",
+ "Suriname",
+ "Slovakia",
+ "Slovenia",
+ "Sweden",
+ "Eswatini",
+ "Seychelles",
+ "Syria",
+ "Chad",
+ "Togo",
+ "Thailand",
+ "Tajikistan",
+ "Turkmenistan",
+ "Timor-Leste",
+ "Tonga",
+ "Trinidad and Tobago",
+ "Tunisia",
+ "Turkey",
+ "Tuvalu",
+ "Tanzania",
+ "Uganda",
+ "Ukraine",
+ "Uruguay",
+ "United States",
+ "Uzbekistan",
+ "Vatican City",
+ "Saint Vincent and the Grenadines",
+ "Venezuela",
+ "Vietnam",
+ "Vanuatu",
+ "Samoa",
+ "Yemen",
+ "South Africa",
+ "Zambia",
+ "Zimbabwe"
+ ]
+ },
+ "in": "path"
+ },
+ {
+ "name": "width",
+ "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 100
+ },
+ "in": "query"
+ },
+ {
+ "name": "height",
+ "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 100
+ },
+ "in": "query"
+ },
+ {
+ "name": "quality",
+ "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": -1,
+ "default": -1
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/avatars\/image": {
+ "get": {
+ "summary": "Get image from URL",
+ "operationId": "avatarsGetImage",
+ "tags": [
+ "avatars"
+ ],
+ "description": "Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 400x400px.\n\nThis endpoint does not follow HTTP redirects.",
+ "responses": {
+ "200": {
+ "description": "Image"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getImage",
+ "group": null,
+ "weight": 63,
+ "cookies": false,
+ "type": "location",
+ "demo": "avatars\/get-image.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-image.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "avatars.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "url",
+ "description": "Image URL which you want to crop.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "format": "url",
+ "x-example": "https:\/\/example.com"
+ },
+ "in": "query"
+ },
+ {
+ "name": "width",
+ "description": "Resize preview image width, Pass an integer between 0 to 2000. Defaults to 400.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 400
+ },
+ "in": "query"
+ },
+ {
+ "name": "height",
+ "description": "Resize preview image height, Pass an integer between 0 to 2000. Defaults to 400.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 400
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/avatars\/initials": {
+ "get": {
+ "summary": "Get user initials",
+ "operationId": "avatarsGetInitials",
+ "tags": [
+ "avatars"
+ ],
+ "description": "Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n",
+ "responses": {
+ "200": {
+ "description": "Image"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getInitials",
+ "group": null,
+ "weight": 66,
+ "cookies": false,
+ "type": "location",
+ "demo": "avatars\/get-initials.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-initials.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "avatars.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "name",
+ "description": "Full Name. When empty, current user name or email will be used. Max length: 128 chars.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "x-example": "",
+ "default": ""
+ },
+ "in": "query"
+ },
+ {
+ "name": "width",
+ "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 500
+ },
+ "in": "query"
+ },
+ {
+ "name": "height",
+ "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 500
+ },
+ "in": "query"
+ },
+ {
+ "name": "background",
+ "description": "Changes background color. By default a random color will be picked and stay will persistent to the given name.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "default": ""
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/avatars\/qr": {
+ "get": {
+ "summary": "Get QR code",
+ "operationId": "avatarsGetQR",
+ "tags": [
+ "avatars"
+ ],
+ "description": "Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.\n",
+ "responses": {
+ "200": {
+ "description": "Image"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getQR",
+ "group": null,
+ "weight": 65,
+ "cookies": false,
+ "type": "location",
+ "demo": "avatars\/get-qr.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-qr.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "avatars.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "text",
+ "description": "Plain text to be converted to QR code image.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "query"
+ },
+ {
+ "name": "size",
+ "description": "QR code size. Pass an integer between 1 to 1000. Defaults to 400.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 1,
+ "default": 400
+ },
+ "in": "query"
+ },
+ {
+ "name": "margin",
+ "description": "Margin from edge. Pass an integer between 0 to 10. Defaults to 1.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 1
+ },
+ "in": "query"
+ },
+ {
+ "name": "download",
+ "description": "Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.",
+ "required": false,
+ "schema": {
+ "type": "boolean",
+ "x-example": false,
+ "default": false
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/documents": {
+ "get": {
+ "summary": "List documents",
+ "operationId": "databasesListDocuments",
+ "tags": [
+ "databases"
+ ],
+ "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.",
+ "responses": {
+ "200": {
+ "description": "Documents List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/documentList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "listDocuments",
+ "group": "documents",
+ "weight": 335,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/list-documents.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-documents.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "documents.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.listRows"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "queries",
+ "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ }
+ ]
+ },
+ "post": {
+ "summary": "Create document",
+ "operationId": "databasesCreateDocument",
+ "tags": [
+ "databases"
+ ],
+ "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.",
+ "responses": {
+ "201": {
+ "description": "Document",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/document"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "createDocument",
+ "group": "documents",
+ "weight": 327,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/create-document.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-document.md",
+ "rate-limit": 120,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": "documents.write",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.createRow"
+ },
+ "methods": [
+ {
+ "name": "createDocument",
+ "namespace": "databases",
+ "desc": "Create document",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "databaseId",
+ "collectionId",
+ "documentId",
+ "data",
+ "permissions"
+ ],
+ "required": [
+ "databaseId",
+ "collectionId",
+ "documentId",
+ "data"
+ ],
+ "responses": [
+ {
+ "code": 201,
+ "model": "#\/components\/schemas\/document"
+ }
+ ],
+ "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.",
+ "demo": "databases\/create-document.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.createRow"
+ }
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection). Make sure to define attributes before creating documents.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "documentId": {
+ "type": "string",
+ "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "x-example": ""
+ },
+ "data": {
+ "type": "object",
+ "description": "Document data as JSON object.",
+ "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}"
+ },
+ "permissions": {
+ "type": "array",
+ "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).",
+ "x-example": "[\"read(\"any\")\"]",
+ "items": {
+ "type": "string"
+ }
+ },
+ "documents": {
+ "type": "array",
+ "description": "Array of documents data as JSON objects.",
+ "x-example": null,
+ "items": {
+ "type": "object"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": {
+ "get": {
+ "summary": "Get document",
+ "operationId": "databasesGetDocument",
+ "tags": [
+ "databases"
+ ],
+ "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.",
+ "responses": {
+ "200": {
+ "description": "Document",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/document"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "getDocument",
+ "group": "documents",
+ "weight": 328,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/get-document.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-document.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "documents.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.getRow"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "documentId",
+ "description": "Document ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "queries",
+ "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ }
+ ]
+ },
+ "put": {
+ "summary": "Upsert a document",
+ "operationId": "databasesUpsertDocument",
+ "tags": [
+ "databases"
+ ],
+ "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.",
+ "responses": {
+ "201": {
+ "description": "Document",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/document"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "upsertDocument",
+ "group": "documents",
+ "weight": 331,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/upsert-document.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/upsert-document.md",
+ "rate-limit": 120,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": "documents.write",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.upsertRow"
+ },
+ "methods": [
+ {
+ "name": "upsertDocument",
+ "namespace": "databases",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "databaseId",
+ "collectionId",
+ "documentId",
+ "data",
+ "permissions"
+ ],
+ "required": [
+ "databaseId",
+ "collectionId",
+ "documentId",
+ "data"
+ ],
+ "responses": [
+ {
+ "code": 201,
+ "model": "#\/components\/schemas\/document"
+ }
+ ],
+ "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.",
+ "demo": "databases\/upsert-document.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.upsertRow"
+ }
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "documentId",
+ "description": "Document ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "object",
+ "description": "Document data as JSON object. Include all required attributes of the document to be created or updated.",
+ "x-example": "{}"
+ },
+ "permissions": {
+ "type": "array",
+ "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).",
+ "x-example": "[\"read(\"any\")\"]",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "data"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "patch": {
+ "summary": "Update document",
+ "operationId": "databasesUpdateDocument",
+ "tags": [
+ "databases"
+ ],
+ "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.",
+ "responses": {
+ "200": {
+ "description": "Document",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/document"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "updateDocument",
+ "group": "documents",
+ "weight": 329,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/update-document.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-document.md",
+ "rate-limit": 120,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": "documents.write",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.updateRow"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "documentId",
+ "description": "Document ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "object",
+ "description": "Document data as JSON object. Include only attribute and value pairs to be updated.",
+ "x-example": "{}"
+ },
+ "permissions": {
+ "type": "array",
+ "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).",
+ "x-example": "[\"read(\"any\")\"]",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "summary": "Delete document",
+ "operationId": "databasesDeleteDocument",
+ "tags": [
+ "databases"
+ ],
+ "description": "Delete a document by its unique ID.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "deleteDocument",
+ "group": "documents",
+ "weight": 333,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/delete-document.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-document.md",
+ "rate-limit": 60,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": "documents.write",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.deleteRow"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "documentId",
+ "description": "Document ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": {
+ "patch": {
+ "summary": "Decrement document attribute",
+ "operationId": "databasesDecrementDocumentAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Decrement a specific attribute of a document by a given value.",
+ "responses": {
+ "200": {
+ "description": "Document",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/document"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "decrementDocumentAttribute",
+ "group": "documents",
+ "weight": 338,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/decrement-document-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/decrement-document-attribute.md",
+ "rate-limit": 120,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": "documents.write",
+ "platforms": [
+ "client",
+ "server",
+ "console",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.decrementRowColumn"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "documentId",
+ "description": "Document ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "attribute",
+ "description": "Attribute key.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "number",
+ "description": "Value to increment the attribute by. The value must be a number.",
+ "x-example": null
+ },
+ "min": {
+ "type": "number",
+ "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.",
+ "x-example": null
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": {
+ "patch": {
+ "summary": "Increment document attribute",
+ "operationId": "databasesIncrementDocumentAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Increment a specific attribute of a document by a given value.",
+ "responses": {
+ "200": {
+ "description": "Document",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/document"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "incrementDocumentAttribute",
+ "group": "documents",
+ "weight": 337,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/increment-document-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/increment-document-attribute.md",
+ "rate-limit": 120,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": "documents.write",
+ "platforms": [
+ "client",
+ "server",
+ "console",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.incrementRowColumn"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "documentId",
+ "description": "Document ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "attribute",
+ "description": "Attribute key.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "number",
+ "description": "Value to increment the attribute by. The value must be a number.",
+ "x-example": null
+ },
+ "max": {
+ "type": "number",
+ "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.",
+ "x-example": null
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/functions\/{functionId}\/executions": {
+ "get": {
+ "summary": "List executions",
+ "operationId": "functionsListExecutions",
+ "tags": [
+ "functions"
+ ],
+ "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.",
+ "responses": {
+ "200": {
+ "description": "Executions List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/executionList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "listExecutions",
+ "group": "executions",
+ "weight": 456,
+ "cookies": false,
+ "type": "",
+ "demo": "functions\/list-executions.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterGet a list of all the current user function execution logs. You can use the query params to filter your results.",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "execution.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "functionId",
+ "description": "Function ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "queries",
+ "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ }
+ ]
+ },
+ "post": {
+ "summary": "Create execution",
+ "operationId": "functionsCreateExecution",
+ "tags": [
+ "functions"
+ ],
+ "description": "Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.",
+ "responses": {
+ "201": {
+ "description": "Execution",
+ "content": {
+ "multipart\/form-data": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/execution"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createExecution",
+ "group": "executions",
+ "weight": 454,
+ "cookies": false,
+ "type": "",
+ "demo": "functions\/create-execution.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterTrigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "execution.write",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "functionId",
+ "description": "Function ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "body": {
+ "type": "string",
+ "description": "HTTP body of execution. Default value is empty string.",
+ "x-example": ""
+ },
+ "async": {
+ "type": "boolean",
+ "description": "Execute code in the background. Default value is false.",
+ "x-example": false
+ },
+ "path": {
+ "type": "string",
+ "description": "HTTP path of execution. Path can include query params. Default value is \/",
+ "x-example": ""
+ },
+ "method": {
+ "type": "string",
+ "description": "HTTP method of execution. Default value is POST.",
+ "x-example": "GET",
+ "enum": [
+ "GET",
+ "POST",
+ "PUT",
+ "PATCH",
+ "DELETE",
+ "OPTIONS",
+ "HEAD"
+ ],
+ "x-enum-name": "ExecutionMethod",
+ "x-enum-keys": []
+ },
+ "headers": {
+ "type": "string",
+ "description": "HTTP headers of execution. Defaults to empty.",
+ "x-example": null
+ },
+ "scheduledAt": {
+ "type": "string",
+ "description": "Scheduled execution time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.",
+ "x-example": ""
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/functions\/{functionId}\/executions\/{executionId}": {
+ "get": {
+ "summary": "Get execution",
+ "operationId": "functionsGetExecution",
+ "tags": [
+ "functions"
+ ],
+ "description": "Get a function execution log by its unique ID.",
+ "responses": {
+ "200": {
+ "description": "Execution",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/execution"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getExecution",
+ "group": "executions",
+ "weight": 455,
+ "cookies": false,
+ "type": "",
+ "demo": "functions\/get-execution.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterGet a function execution log by its unique ID.",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "execution.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "functionId",
+ "description": "Function ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "executionId",
+ "description": "Execution ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ }
+ },
+ "\/graphql": {
+ "post": {
+ "summary": "GraphQL endpoint",
+ "operationId": "graphqlQuery",
+ "tags": [
+ "graphql"
+ ],
+ "description": "Execute a GraphQL mutation.",
+ "responses": {
+ "200": {
+ "description": "Any",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/any"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "query",
+ "group": "graphql",
+ "weight": 250,
+ "cookies": false,
+ "type": "graphql",
+ "demo": "graphql\/query.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md",
+ "rate-limit": 60,
+ "rate-time": 60,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "graphql",
+ "platforms": [
+ "server",
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ }
+ },
+ "\/graphql\/mutation": {
+ "post": {
+ "summary": "GraphQL endpoint",
+ "operationId": "graphqlMutation",
+ "tags": [
+ "graphql"
+ ],
+ "description": "Execute a GraphQL mutation.",
+ "responses": {
+ "200": {
+ "description": "Any",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/any"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "mutation",
+ "group": "graphql",
+ "weight": 249,
+ "cookies": false,
+ "type": "graphql",
+ "demo": "graphql\/mutation.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md",
+ "rate-limit": 60,
+ "rate-time": 60,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "graphql",
+ "platforms": [
+ "server",
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ }
+ },
+ "\/locale": {
+ "get": {
+ "summary": "Get user locale",
+ "operationId": "localeGet",
+ "tags": [
+ "locale"
+ ],
+ "description": "Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))",
+ "responses": {
+ "200": {
+ "description": "Locale",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/locale"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "get",
+ "group": null,
+ "weight": 70,
+ "cookies": false,
+ "type": "",
+ "demo": "locale\/get.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "locale.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ }
+ },
+ "\/locale\/codes": {
+ "get": {
+ "summary": "List locale codes",
+ "operationId": "localeListCodes",
+ "tags": [
+ "locale"
+ ],
+ "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).",
+ "responses": {
+ "200": {
+ "description": "Locale codes list",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/localeCodeList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "listCodes",
+ "group": null,
+ "weight": 71,
+ "cookies": false,
+ "type": "",
+ "demo": "locale\/list-codes.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "locale.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ }
+ },
+ "\/locale\/continents": {
+ "get": {
+ "summary": "List continents",
+ "operationId": "localeListContinents",
+ "tags": [
+ "locale"
+ ],
+ "description": "List of all continents. You can use the locale header to get the data in a supported language.",
+ "responses": {
+ "200": {
+ "description": "Continents List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/continentList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "listContinents",
+ "group": null,
+ "weight": 75,
+ "cookies": false,
+ "type": "",
+ "demo": "locale\/list-continents.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-continents.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "locale.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ }
+ },
+ "\/locale\/countries": {
+ "get": {
+ "summary": "List countries",
+ "operationId": "localeListCountries",
+ "tags": [
+ "locale"
+ ],
+ "description": "List of all countries. You can use the locale header to get the data in a supported language.",
+ "responses": {
+ "200": {
+ "description": "Countries List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/countryList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "listCountries",
+ "group": null,
+ "weight": 72,
+ "cookies": false,
+ "type": "",
+ "demo": "locale\/list-countries.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "locale.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ }
+ },
+ "\/locale\/countries\/eu": {
+ "get": {
+ "summary": "List EU countries",
+ "operationId": "localeListCountriesEU",
+ "tags": [
+ "locale"
+ ],
+ "description": "List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.",
+ "responses": {
+ "200": {
+ "description": "Countries List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/countryList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "listCountriesEU",
+ "group": null,
+ "weight": 73,
+ "cookies": false,
+ "type": "",
+ "demo": "locale\/list-countries-eu.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-eu.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "locale.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ }
+ },
+ "\/locale\/countries\/phones": {
+ "get": {
+ "summary": "List countries phone codes",
+ "operationId": "localeListCountriesPhones",
+ "tags": [
+ "locale"
+ ],
+ "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.",
+ "responses": {
+ "200": {
+ "description": "Phones List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/phoneList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "listCountriesPhones",
+ "group": null,
+ "weight": 74,
+ "cookies": false,
+ "type": "",
+ "demo": "locale\/list-countries-phones.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-phones.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "locale.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ }
+ },
+ "\/locale\/currencies": {
+ "get": {
+ "summary": "List currencies",
+ "operationId": "localeListCurrencies",
+ "tags": [
+ "locale"
+ ],
+ "description": "List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.",
+ "responses": {
+ "200": {
+ "description": "Currencies List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/currencyList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "listCurrencies",
+ "group": null,
+ "weight": 76,
+ "cookies": false,
+ "type": "",
+ "demo": "locale\/list-currencies.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "locale.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ }
+ },
+ "\/locale\/languages": {
+ "get": {
+ "summary": "List languages",
+ "operationId": "localeListLanguages",
+ "tags": [
+ "locale"
+ ],
+ "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.",
+ "responses": {
+ "200": {
+ "description": "Languages List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/languageList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "listLanguages",
+ "group": null,
+ "weight": 77,
+ "cookies": false,
+ "type": "",
+ "demo": "locale\/list-languages.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "locale.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ]
+ }
+ },
+ "\/messaging\/topics\/{topicId}\/subscribers": {
+ "post": {
+ "summary": "Create subscriber",
+ "operationId": "messagingCreateSubscriber",
+ "tags": [
+ "messaging"
+ ],
+ "description": "Create a new subscriber.",
+ "responses": {
+ "201": {
+ "description": "Subscriber",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/subscriber"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createSubscriber",
+ "group": "subscribers",
+ "weight": 296,
+ "cookies": false,
+ "type": "",
+ "demo": "messaging\/create-subscriber.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-subscriber.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "subscribers.write",
+ "platforms": [
+ "server",
+ "client",
+ "console",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": [],
+ "Session": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "topicId",
+ "description": "Topic ID. The topic ID to subscribe to.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "subscriberId": {
+ "type": "string",
+ "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.",
+ "x-example": ""
+ },
+ "targetId": {
+ "type": "string",
+ "description": "Target ID. The target ID to link to the specified Topic ID.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "subscriberId",
+ "targetId"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": {
+ "delete": {
+ "summary": "Delete subscriber",
+ "operationId": "messagingDeleteSubscriber",
+ "tags": [
+ "messaging"
+ ],
+ "description": "Delete a subscriber by its unique ID.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "deleteSubscriber",
+ "group": "subscribers",
+ "weight": 300,
+ "cookies": false,
+ "type": "",
+ "demo": "messaging\/delete-subscriber.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-subscriber.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "subscribers.write",
+ "platforms": [
+ "server",
+ "client",
+ "console",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": [],
+ "Session": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "topicId",
+ "description": "Topic ID. The topic ID subscribed to.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "subscriberId",
+ "description": "Subscriber ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ }
+ },
+ "\/storage\/buckets\/{bucketId}\/files": {
+ "get": {
+ "summary": "List files",
+ "operationId": "storageListFiles",
+ "tags": [
+ "storage"
+ ],
+ "description": "Get a list of all the user files. You can use the query params to filter your results.",
+ "responses": {
+ "200": {
+ "description": "Files List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/fileList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "listFiles",
+ "group": "files",
+ "weight": 160,
+ "cookies": false,
+ "type": "",
+ "demo": "storage\/list-files.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "files.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "bucketId",
+ "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "queries",
+ "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ },
+ {
+ "name": "search",
+ "description": "Search term to filter your list results. Max length: 256 chars.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "x-example": "",
+ "default": ""
+ },
+ "in": "query"
+ }
+ ]
+ },
+ "post": {
+ "summary": "Create file",
+ "operationId": "storageCreateFile",
+ "tags": [
+ "storage"
+ ],
+ "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n",
+ "responses": {
+ "201": {
+ "description": "File",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/file"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createFile",
+ "group": "files",
+ "weight": 159,
+ "cookies": false,
+ "type": "upload",
+ "demo": "storage\/create-file.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md",
+ "rate-limit": 60,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId},chunkId:{chunkId}",
+ "scope": "files.write",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "bucketId",
+ "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "multipart\/form-data": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "fileId": {
+ "type": "string",
+ "description": "File ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "x-example": "",
+ "x-upload-id": true
+ },
+ "file": {
+ "type": "string",
+ "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https:\/\/appwrite.io\/docs\/products\/storage\/upload-download#input-file).",
+ "x-example": null
+ },
+ "permissions": {
+ "type": "array",
+ "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).",
+ "x-example": "[\"read(\"any\")\"]",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "fileId",
+ "file"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/storage\/buckets\/{bucketId}\/files\/{fileId}": {
+ "get": {
+ "summary": "Get file",
+ "operationId": "storageGetFile",
+ "tags": [
+ "storage"
+ ],
+ "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.",
+ "responses": {
+ "200": {
+ "description": "File",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/file"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getFile",
+ "group": "files",
+ "weight": 161,
+ "cookies": false,
+ "type": "",
+ "demo": "storage\/get-file.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "files.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "bucketId",
+ "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "fileId",
+ "description": "File ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ },
+ "put": {
+ "summary": "Update file",
+ "operationId": "storageUpdateFile",
+ "tags": [
+ "storage"
+ ],
+ "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.",
+ "responses": {
+ "200": {
+ "description": "File",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/file"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateFile",
+ "group": "files",
+ "weight": 166,
+ "cookies": false,
+ "type": "",
+ "demo": "storage\/update-file.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md",
+ "rate-limit": 60,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": "files.write",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "bucketId",
+ "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "fileId",
+ "description": "File unique ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the file",
+ "x-example": ""
+ },
+ "permissions": {
+ "type": "array",
+ "description": "An array of permission string. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).",
+ "x-example": "[\"read(\"any\")\"]",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "summary": "Delete file",
+ "operationId": "storageDeleteFile",
+ "tags": [
+ "storage"
+ ],
+ "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "deleteFile",
+ "group": "files",
+ "weight": 167,
+ "cookies": false,
+ "type": "",
+ "demo": "storage\/delete-file.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md",
+ "rate-limit": 60,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": "files.write",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "bucketId",
+ "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "fileId",
+ "description": "File ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ }
+ },
+ "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": {
+ "get": {
+ "summary": "Get file for download",
+ "operationId": "storageGetFileDownload",
+ "tags": [
+ "storage"
+ ],
+ "description": "Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.",
+ "responses": {
+ "200": {
+ "description": "File"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getFileDownload",
+ "group": "files",
+ "weight": 163,
+ "cookies": false,
+ "type": "location",
+ "demo": "storage\/get-file-download.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "files.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "bucketId",
+ "description": "Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "fileId",
+ "description": "File ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "token",
+ "description": "File token for accessing this file.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "x-example": "",
+ "default": ""
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": {
+ "get": {
+ "summary": "Get file preview",
+ "operationId": "storageGetFilePreview",
+ "tags": [
+ "storage"
+ ],
+ "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.",
+ "responses": {
+ "200": {
+ "description": "Image"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getFilePreview",
+ "group": "files",
+ "weight": 162,
+ "cookies": false,
+ "type": "location",
+ "demo": "storage\/get-file-preview.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "files.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "bucketId",
+ "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "fileId",
+ "description": "File ID",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "width",
+ "description": "Resize preview image width, Pass an integer between 0 to 4000.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 0
+ },
+ "in": "query"
+ },
+ {
+ "name": "height",
+ "description": "Resize preview image height, Pass an integer between 0 to 4000.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 0
+ },
+ "in": "query"
+ },
+ {
+ "name": "gravity",
+ "description": "Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "x-example": "center",
+ "enum": [
+ "center",
+ "top-left",
+ "top",
+ "top-right",
+ "left",
+ "right",
+ "bottom-left",
+ "bottom",
+ "bottom-right"
+ ],
+ "x-enum-name": "ImageGravity",
+ "x-enum-keys": [],
+ "default": "center"
+ },
+ "in": "query"
+ },
+ {
+ "name": "quality",
+ "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": -1,
+ "default": -1
+ },
+ "in": "query"
+ },
+ {
+ "name": "borderWidth",
+ "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 0
+ },
+ "in": "query"
+ },
+ {
+ "name": "borderColor",
+ "description": "Preview image border color. Use a valid HEX color, no # is needed for prefix.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "default": ""
+ },
+ "in": "query"
+ },
+ {
+ "name": "borderRadius",
+ "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 0
+ },
+ "in": "query"
+ },
+ {
+ "name": "opacity",
+ "description": "Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.",
+ "required": false,
+ "schema": {
+ "type": "number",
+ "format": "float",
+ "x-example": 0,
+ "default": 1
+ },
+ "in": "query"
+ },
+ {
+ "name": "rotation",
+ "description": "Preview image rotation in degrees. Pass an integer between -360 and 360.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": -360,
+ "default": 0
+ },
+ "in": "query"
+ },
+ {
+ "name": "background",
+ "description": "Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "default": ""
+ },
+ "in": "query"
+ },
+ {
+ "name": "output",
+ "description": "Output format type (jpeg, jpg, png, gif and webp).",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "x-example": "jpg",
+ "enum": [
+ "jpg",
+ "jpeg",
+ "png",
+ "webp",
+ "heic",
+ "avif",
+ "gif"
+ ],
+ "x-enum-name": "ImageFormat",
+ "x-enum-keys": [],
+ "default": ""
+ },
+ "in": "query"
+ },
+ {
+ "name": "token",
+ "description": "File token for accessing this file.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "x-example": "",
+ "default": ""
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": {
+ "get": {
+ "summary": "Get file for view",
+ "operationId": "storageGetFileView",
+ "tags": [
+ "storage"
+ ],
+ "description": "Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.",
+ "responses": {
+ "200": {
+ "description": "File"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getFileView",
+ "group": "files",
+ "weight": 164,
+ "cookies": false,
+ "type": "location",
+ "demo": "storage\/get-file-view.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "files.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "bucketId",
+ "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "fileId",
+ "description": "File ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "token",
+ "description": "File token for accessing this file.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "x-example": "",
+ "default": ""
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": {
+ "get": {
+ "summary": "List rows",
+ "operationId": "tablesDBListRows",
+ "tags": [
+ "tablesDB"
+ ],
+ "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.",
+ "responses": {
+ "200": {
+ "description": "Rows List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/rowList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "listRows",
+ "group": "rows",
+ "weight": 427,
+ "cookies": false,
+ "type": "",
+ "demo": "tablesdb\/list-rows.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-rows.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": [
+ "rows.read",
+ "documents.read"
+ ],
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "tableId",
+ "description": "Table ID. You can create a new table using the TableDB service [server integration](https:\/\/appwrite.io\/docs\/server\/tablesdbdb#tablesdbCreate).",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "queries",
+ "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ }
+ ]
+ },
+ "post": {
+ "summary": "Create row",
+ "operationId": "tablesDBCreateRow",
+ "tags": [
+ "tablesDB"
+ ],
+ "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/tablesdb#tablesDBCreateTable) API or directly from your database console.",
+ "responses": {
+ "201": {
+ "description": "Row",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/row"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createRow",
+ "group": "rows",
+ "weight": 419,
+ "cookies": false,
+ "type": "",
+ "demo": "tablesdb\/create-row.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-row.md",
+ "rate-limit": 120,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": [
+ "rows.write",
+ "documents.write"
+ ],
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "methods": [
+ {
+ "name": "createRow",
+ "namespace": "tablesDB",
+ "desc": "Create row",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "databaseId",
+ "tableId",
+ "rowId",
+ "data",
+ "permissions"
+ ],
+ "required": [
+ "databaseId",
+ "tableId",
+ "rowId",
+ "data"
+ ],
+ "responses": [
+ {
+ "code": 201,
+ "model": "#\/components\/schemas\/row"
+ }
+ ],
+ "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/tablesdb#tablesDBCreateTable) API or directly from your database console.",
+ "demo": "tablesdb\/create-row.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "tableId",
+ "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/tablesdb#tablesDBCreate). Make sure to define columns before creating rows.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "rowId": {
+ "type": "string",
+ "description": "Row ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "x-example": ""
+ },
+ "data": {
+ "type": "object",
+ "description": "Row data as JSON object.",
+ "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}"
+ },
+ "permissions": {
+ "type": "array",
+ "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).",
+ "x-example": "[\"read(\"any\")\"]",
+ "items": {
+ "type": "string"
+ }
+ },
+ "rows": {
+ "type": "array",
+ "description": "Array of rows data as JSON objects.",
+ "x-example": null,
+ "items": {
+ "type": "object"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": {
+ "get": {
+ "summary": "Get row",
+ "operationId": "tablesDBGetRow",
+ "tags": [
+ "tablesDB"
+ ],
+ "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.",
+ "responses": {
+ "200": {
+ "description": "Row",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/row"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getRow",
+ "group": "rows",
+ "weight": 420,
+ "cookies": false,
+ "type": "",
+ "demo": "tablesdb\/get-row.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-row.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": [
+ "rows.read",
+ "documents.read"
+ ],
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "tableId",
+ "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/tablesdb#tablesDBCreate).",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "rowId",
+ "description": "Row ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "queries",
+ "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ }
+ ]
+ },
+ "put": {
+ "summary": "Upsert a row",
+ "operationId": "tablesDBUpsertRow",
+ "tags": [
+ "tablesDB"
+ ],
+ "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/tablesdb#tablesDBCreateTable) API or directly from your database console.",
+ "responses": {
+ "201": {
+ "description": "Row",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/row"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "upsertRow",
+ "group": "rows",
+ "weight": 423,
+ "cookies": false,
+ "type": "",
+ "demo": "tablesdb\/upsert-row.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-row.md",
+ "rate-limit": 120,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": [
+ "rows.write",
+ "documents.write"
+ ],
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "methods": [
+ {
+ "name": "upsertRow",
+ "namespace": "tablesDB",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "databaseId",
+ "tableId",
+ "rowId",
+ "data",
+ "permissions"
+ ],
+ "required": [
+ "databaseId",
+ "tableId",
+ "rowId"
+ ],
+ "responses": [
+ {
+ "code": 201,
+ "model": "#\/components\/schemas\/row"
+ }
+ ],
+ "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/tablesdb#tablesDBCreateTable) API or directly from your database console.",
+ "demo": "tablesdb\/upsert-row.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "tableId",
+ "description": "Table ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "rowId",
+ "description": "Row ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "object",
+ "description": "Row data as JSON object. Include all required columns of the row to be created or updated.",
+ "x-example": "{}"
+ },
+ "permissions": {
+ "type": "array",
+ "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).",
+ "x-example": "[\"read(\"any\")\"]",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "patch": {
+ "summary": "Update row",
+ "operationId": "tablesDBUpdateRow",
+ "tags": [
+ "tablesDB"
+ ],
+ "description": "Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.",
+ "responses": {
+ "200": {
+ "description": "Row",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/row"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateRow",
+ "group": "rows",
+ "weight": 421,
+ "cookies": false,
+ "type": "",
+ "demo": "tablesdb\/update-row.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-row.md",
+ "rate-limit": 120,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": [
+ "rows.write",
+ "documents.write"
+ ],
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "tableId",
+ "description": "Table ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "rowId",
+ "description": "Row ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "object",
+ "description": "Row data as JSON object. Include only columns and value pairs to be updated.",
+ "x-example": "{}"
+ },
+ "permissions": {
+ "type": "array",
+ "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).",
+ "x-example": "[\"read(\"any\")\"]",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "summary": "Delete row",
+ "operationId": "tablesDBDeleteRow",
+ "tags": [
+ "tablesDB"
+ ],
+ "description": "Delete a row by its unique ID.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "deleteRow",
+ "group": "rows",
+ "weight": 425,
+ "cookies": false,
+ "type": "",
+ "demo": "tablesdb\/delete-row.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-row.md",
+ "rate-limit": 60,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": [
+ "rows.write",
+ "documents.write"
+ ],
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "tableId",
+ "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/tablesdb#tablesDBCreate).",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "rowId",
+ "description": "Row ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ }
+ },
+ "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": {
+ "patch": {
+ "summary": "Decrement row column",
+ "operationId": "tablesDBDecrementRowColumn",
+ "tags": [
+ "tablesDB"
+ ],
+ "description": "Decrement a specific column of a row by a given value.",
+ "responses": {
+ "200": {
+ "description": "Row",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/row"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "decrementRowColumn",
+ "group": "rows",
+ "weight": 430,
+ "cookies": false,
+ "type": "",
+ "demo": "tablesdb\/decrement-row-column.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/decrement-row-column.md",
+ "rate-limit": 120,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": [
+ "rows.write",
+ "documents.write"
+ ],
+ "platforms": [
+ "client",
+ "server",
+ "console",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "tableId",
+ "description": "Table ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "rowId",
+ "description": "Row ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "column",
+ "description": "Column key.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "number",
+ "description": "Value to increment the column by. The value must be a number.",
+ "x-example": null
+ },
+ "min": {
+ "type": "number",
+ "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.",
+ "x-example": null
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": {
+ "patch": {
+ "summary": "Increment row column",
+ "operationId": "tablesDBIncrementRowColumn",
+ "tags": [
+ "tablesDB"
+ ],
+ "description": "Increment a specific column of a row by a given value.",
+ "responses": {
+ "200": {
+ "description": "Row",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/row"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "incrementRowColumn",
+ "group": "rows",
+ "weight": 429,
+ "cookies": false,
+ "type": "",
+ "demo": "tablesdb\/increment-row-column.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/increment-row-column.md",
+ "rate-limit": 120,
+ "rate-time": 60,
+ "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
+ "scope": [
+ "rows.write",
+ "documents.write"
+ ],
+ "platforms": [
+ "client",
+ "server",
+ "console",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "tableId",
+ "description": "Table ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "rowId",
+ "description": "Row ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "column",
+ "description": "Column key.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "number",
+ "description": "Value to increment the column by. The value must be a number.",
+ "x-example": null
+ },
+ "max": {
+ "type": "number",
+ "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.",
+ "x-example": null
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/teams": {
+ "get": {
+ "summary": "List teams",
+ "operationId": "teamsList",
+ "tags": [
+ "teams"
+ ],
+ "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.",
+ "responses": {
+ "200": {
+ "description": "Teams List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/teamList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "list",
+ "group": "teams",
+ "weight": 171,
+ "cookies": false,
+ "type": "",
+ "demo": "teams\/list.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "teams.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "queries",
+ "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, total, billingPlan",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ },
+ {
+ "name": "search",
+ "description": "Search term to filter your list results. Max length: 256 chars.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "x-example": "",
+ "default": ""
+ },
+ "in": "query"
+ }
+ ]
+ },
+ "post": {
+ "summary": "Create team",
+ "operationId": "teamsCreate",
+ "tags": [
+ "teams"
+ ],
+ "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.",
+ "responses": {
+ "201": {
+ "description": "Team",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/team"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "create",
+ "group": "teams",
+ "weight": 170,
+ "cookies": false,
+ "type": "",
+ "demo": "teams\/create.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "teams.write",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "teamId": {
+ "type": "string",
+ "description": "Team ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "x-example": ""
+ },
+ "name": {
+ "type": "string",
+ "description": "Team name. Max length: 128 chars.",
+ "x-example": ""
+ },
+ "roles": {
+ "type": "array",
+ "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.",
+ "x-example": null,
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "teamId",
+ "name"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/teams\/{teamId}": {
+ "get": {
+ "summary": "Get team",
+ "operationId": "teamsGet",
+ "tags": [
+ "teams"
+ ],
+ "description": "Get a team by its ID. All team members have read access for this resource.",
+ "responses": {
+ "200": {
+ "description": "Team",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/team"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "get",
+ "group": "teams",
+ "weight": 172,
+ "cookies": false,
+ "type": "",
+ "demo": "teams\/get.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "teams.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "teamId",
+ "description": "Team ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ },
+ "put": {
+ "summary": "Update name",
+ "operationId": "teamsUpdateName",
+ "tags": [
+ "teams"
+ ],
+ "description": "Update the team's name by its unique ID.",
+ "responses": {
+ "200": {
+ "description": "Team",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/team"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateName",
+ "group": "teams",
+ "weight": 174,
+ "cookies": false,
+ "type": "",
+ "demo": "teams\/update-name.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-name.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "teams.write",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "teamId",
+ "description": "Team ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "New team name. Max length: 128 chars.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "name"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "summary": "Delete team",
+ "operationId": "teamsDelete",
+ "tags": [
+ "teams"
+ ],
+ "description": "Delete a team using its ID. Only team members with the owner role can delete the team.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "delete",
+ "group": "teams",
+ "weight": 176,
+ "cookies": false,
+ "type": "",
+ "demo": "teams\/delete.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "teams.write",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "teamId",
+ "description": "Team ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ }
+ },
+ "\/teams\/{teamId}\/memberships": {
+ "get": {
+ "summary": "List team memberships",
+ "operationId": "teamsListMemberships",
+ "tags": [
+ "teams"
+ ],
+ "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.",
+ "responses": {
+ "200": {
+ "description": "Memberships List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/membershipList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "listMemberships",
+ "group": "memberships",
+ "weight": 178,
+ "cookies": false,
+ "type": "",
+ "demo": "teams\/list-memberships.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-team-members.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "teams.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "teamId",
+ "description": "Team ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "queries",
+ "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ },
+ {
+ "name": "search",
+ "description": "Search term to filter your list results. Max length: 256 chars.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "x-example": "",
+ "default": ""
+ },
+ "in": "query"
+ }
+ ]
+ },
+ "post": {
+ "summary": "Create team membership",
+ "operationId": "teamsCreateMembership",
+ "tags": [
+ "teams"
+ ],
+ "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n",
+ "responses": {
+ "201": {
+ "description": "Membership",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/membership"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createMembership",
+ "group": "memberships",
+ "weight": 177,
+ "cookies": false,
+ "type": "",
+ "demo": "teams\/create-membership.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "teams.write",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "teamId",
+ "description": "Team ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "Email of the new team member.",
+ "x-example": "email@example.com"
+ },
+ "userId": {
+ "type": "string",
+ "description": "ID of the user to be added to a team.",
+ "x-example": ""
+ },
+ "phone": {
+ "type": "string",
+ "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.",
+ "x-example": "+12065550100"
+ },
+ "roles": {
+ "type": "array",
+ "description": "Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.",
+ "x-example": null,
+ "items": {
+ "type": "string"
+ }
+ },
+ "url": {
+ "type": "string",
+ "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.",
+ "x-example": "https:\/\/example.com"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the new team member. Max length: 128 chars.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "roles"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/teams\/{teamId}\/memberships\/{membershipId}": {
+ "get": {
+ "summary": "Get team membership",
+ "operationId": "teamsGetMembership",
+ "tags": [
+ "teams"
+ ],
+ "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.",
+ "responses": {
+ "200": {
+ "description": "Membership",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/membership"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getMembership",
+ "group": "memberships",
+ "weight": 179,
+ "cookies": false,
+ "type": "",
+ "demo": "teams\/get-membership.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "teams.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "teamId",
+ "description": "Team ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "membershipId",
+ "description": "Membership ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ },
+ "patch": {
+ "summary": "Update membership",
+ "operationId": "teamsUpdateMembership",
+ "tags": [
+ "teams"
+ ],
+ "description": "Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions).\n",
+ "responses": {
+ "200": {
+ "description": "Membership",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/membership"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateMembership",
+ "group": "memberships",
+ "weight": 180,
+ "cookies": false,
+ "type": "",
+ "demo": "teams\/update-membership.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "teams.write",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "teamId",
+ "description": "Team ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "membershipId",
+ "description": "Membership ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "roles": {
+ "type": "array",
+ "description": "An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.",
+ "x-example": null,
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "roles"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "summary": "Delete team membership",
+ "operationId": "teamsDeleteMembership",
+ "tags": [
+ "teams"
+ ],
+ "description": "This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "deleteMembership",
+ "group": "memberships",
+ "weight": 182,
+ "cookies": false,
+ "type": "",
+ "demo": "teams\/delete-membership.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "teams.write",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "teamId",
+ "description": "Team ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "membershipId",
+ "description": "Membership ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ }
+ },
+ "\/teams\/{teamId}\/memberships\/{membershipId}\/status": {
+ "patch": {
+ "summary": "Update team membership status",
+ "operationId": "teamsUpdateMembershipStatus",
+ "tags": [
+ "teams"
+ ],
+ "description": "Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.\n\nIf the request is successful, a session for the user is automatically created.\n",
+ "responses": {
+ "200": {
+ "description": "Membership",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/membership"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateMembershipStatus",
+ "group": "memberships",
+ "weight": 181,
+ "cookies": false,
+ "type": "",
+ "demo": "teams\/update-membership-status.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "public",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "teamId",
+ "description": "Team ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "membershipId",
+ "description": "Membership ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "User ID.",
+ "x-example": ""
+ },
+ "secret": {
+ "type": "string",
+ "description": "Secret key.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "userId",
+ "secret"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/teams\/{teamId}\/prefs": {
+ "get": {
+ "summary": "Get team preferences",
+ "operationId": "teamsGetPrefs",
+ "tags": [
+ "teams"
+ ],
+ "description": "Get the team's shared preferences by its unique ID. If a preference doesn't need to be shared by all team members, prefer storing them in [user preferences](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getPrefs).",
+ "responses": {
+ "200": {
+ "description": "Preferences",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/preferences"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getPrefs",
+ "group": "teams",
+ "weight": 173,
+ "cookies": false,
+ "type": "",
+ "demo": "teams\/get-prefs.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-prefs.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "teams.read",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "teamId",
+ "description": "Team ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ },
+ "put": {
+ "summary": "Update preferences",
+ "operationId": "teamsUpdatePrefs",
+ "tags": [
+ "teams"
+ ],
+ "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.",
+ "responses": {
+ "200": {
+ "description": "Preferences",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/preferences"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updatePrefs",
+ "group": "teams",
+ "weight": 175,
+ "cookies": false,
+ "type": "",
+ "demo": "teams\/update-prefs.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-prefs.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "teams.write",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Session": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "teamId",
+ "description": "Team ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "prefs": {
+ "type": "object",
+ "description": "Prefs key-value JSON object.",
+ "x-example": "{}"
+ }
+ },
+ "required": [
+ "prefs"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ {
+ "name": "account",
+ "description": "The Account service allows you to authenticate and manage a user account."
+ },
+ {
+ "name": "avatars",
+ "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars."
+ },
+ {
+ "name": "databases",
+ "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents"
+ },
+ {
+ "name": "tablesdb",
+ "description": "The TablesDB service allows you to create structured tables of columns, query and filter lists of rows"
+ },
+ {
+ "name": "locale",
+ "description": "The Locale service allows you to customize your app based on your users' location."
+ },
+ {
+ "name": "health",
+ "description": "The Health service allows you to both validate and monitor your Appwrite server's health."
+ },
+ {
+ "name": "projects",
+ "description": "The Project service allows you to manage all the projects in your Appwrite server."
+ },
+ {
+ "name": "project",
+ "description": "The Project service allows you to manage all the projects in your Appwrite server."
+ },
+ {
+ "name": "storage",
+ "description": "The Storage service allows you to manage your project files."
+ },
+ {
+ "name": "teams",
+ "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources"
+ },
+ {
+ "name": "users",
+ "description": "The Users service allows you to manage your project users."
+ },
+ {
+ "name": "sites",
+ "description": "The Sites Service allows you view, create and manage your web applications."
+ },
+ {
+ "name": "functions",
+ "description": "The Functions Service allows you view, create and manage your Cloud Functions."
+ },
+ {
+ "name": "proxy",
+ "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration."
+ },
+ {
+ "name": "graphql",
+ "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL."
+ },
+ {
+ "name": "console",
+ "description": "The Console service allows you to interact with console relevant informations."
+ },
+ {
+ "name": "migrations",
+ "description": "The Migrations service allows you to migrate third-party data to your Appwrite project."
+ },
+ {
+ "name": "messaging",
+ "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)."
+ }
+ ],
+ "components": {
+ "schemas": {
+ "any": {
+ "description": "Any",
+ "type": "object",
+ "additionalProperties": true,
+ "example": []
+ },
+ "error": {
+ "description": "Error",
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string",
+ "description": "Error message.",
+ "x-example": "Not found"
+ },
+ "code": {
+ "type": "string",
+ "description": "Error code.",
+ "x-example": "404"
+ },
+ "type": {
+ "type": "string",
+ "description": "Error type. You can learn more about all the error types at https:\/\/appwrite.io\/docs\/error-codes#errorTypes",
+ "x-example": "not_found"
+ },
+ "version": {
+ "type": "string",
+ "description": "Server version number.",
+ "x-example": "1.0"
+ }
+ },
+ "required": [
+ "message",
+ "code",
+ "type",
+ "version"
+ ],
+ "example": {
+ "message": "Not found",
+ "code": "404",
+ "type": "not_found",
+ "version": "1.0"
+ }
+ },
+ "rowList": {
+ "description": "Rows List",
+ "type": "object",
+ "properties": {
+ "total": {
+ "type": "integer",
+ "description": "Total number of rows that matched your query.",
+ "x-example": 5,
+ "format": "int32"
+ },
+ "rows": {
+ "type": "array",
+ "description": "List of rows.",
+ "items": {
+ "$ref": "#\/components\/schemas\/row"
+ },
+ "x-example": ""
+ }
+ },
+ "required": [
+ "total",
+ "rows"
+ ],
+ "example": {
+ "total": 5,
+ "rows": ""
+ }
+ },
+ "documentList": {
+ "description": "Documents List",
+ "type": "object",
+ "properties": {
+ "total": {
+ "type": "integer",
+ "description": "Total number of documents that matched your query.",
+ "x-example": 5,
+ "format": "int32"
+ },
+ "documents": {
+ "type": "array",
+ "description": "List of documents.",
+ "items": {
+ "$ref": "#\/components\/schemas\/document"
+ },
+ "x-example": ""
+ }
+ },
+ "required": [
+ "total",
+ "documents"
+ ],
+ "example": {
+ "total": 5,
+ "documents": ""
+ }
+ },
+ "sessionList": {
+ "description": "Sessions List",
+ "type": "object",
+ "properties": {
+ "total": {
+ "type": "integer",
+ "description": "Total number of sessions that matched your query.",
+ "x-example": 5,
+ "format": "int32"
+ },
+ "sessions": {
+ "type": "array",
+ "description": "List of sessions.",
+ "items": {
+ "$ref": "#\/components\/schemas\/session"
+ },
+ "x-example": ""
+ }
+ },
+ "required": [
+ "total",
+ "sessions"
+ ],
+ "example": {
+ "total": 5,
+ "sessions": ""
+ }
+ },
+ "identityList": {
+ "description": "Identities List",
+ "type": "object",
+ "properties": {
+ "total": {
+ "type": "integer",
+ "description": "Total number of identities that matched your query.",
+ "x-example": 5,
+ "format": "int32"
+ },
+ "identities": {
+ "type": "array",
+ "description": "List of identities.",
+ "items": {
+ "$ref": "#\/components\/schemas\/identity"
+ },
+ "x-example": ""
+ }
+ },
+ "required": [
+ "total",
+ "identities"
+ ],
+ "example": {
+ "total": 5,
+ "identities": ""
+ }
+ },
+ "logList": {
+ "description": "Logs List",
+ "type": "object",
+ "properties": {
+ "total": {
+ "type": "integer",
+ "description": "Total number of logs that matched your query.",
+ "x-example": 5,
+ "format": "int32"
+ },
+ "logs": {
+ "type": "array",
+ "description": "List of logs.",
+ "items": {
+ "$ref": "#\/components\/schemas\/log"
+ },
+ "x-example": ""
+ }
+ },
+ "required": [
+ "total",
+ "logs"
+ ],
+ "example": {
+ "total": 5,
+ "logs": ""
+ }
+ },
+ "fileList": {
+ "description": "Files List",
+ "type": "object",
+ "properties": {
+ "total": {
+ "type": "integer",
+ "description": "Total number of files that matched your query.",
+ "x-example": 5,
+ "format": "int32"
+ },
+ "files": {
+ "type": "array",
+ "description": "List of files.",
+ "items": {
+ "$ref": "#\/components\/schemas\/file"
+ },
+ "x-example": ""
+ }
+ },
+ "required": [
+ "total",
+ "files"
+ ],
+ "example": {
+ "total": 5,
+ "files": ""
+ }
+ },
+ "teamList": {
+ "description": "Teams List",
+ "type": "object",
+ "properties": {
+ "total": {
+ "type": "integer",
+ "description": "Total number of teams that matched your query.",
+ "x-example": 5,
+ "format": "int32"
+ },
+ "teams": {
+ "type": "array",
+ "description": "List of teams.",
+ "items": {
+ "$ref": "#\/components\/schemas\/team"
+ },
+ "x-example": ""
+ }
+ },
+ "required": [
+ "total",
+ "teams"
+ ],
+ "example": {
+ "total": 5,
+ "teams": ""
+ }
+ },
+ "membershipList": {
+ "description": "Memberships List",
+ "type": "object",
+ "properties": {
+ "total": {
+ "type": "integer",
+ "description": "Total number of memberships that matched your query.",
+ "x-example": 5,
+ "format": "int32"
+ },
+ "memberships": {
+ "type": "array",
+ "description": "List of memberships.",
+ "items": {
+ "$ref": "#\/components\/schemas\/membership"
+ },
+ "x-example": ""
+ }
+ },
+ "required": [
+ "total",
+ "memberships"
+ ],
+ "example": {
+ "total": 5,
+ "memberships": ""
+ }
+ },
+ "executionList": {
+ "description": "Executions List",
+ "type": "object",
+ "properties": {
+ "total": {
+ "type": "integer",
+ "description": "Total number of executions that matched your query.",
+ "x-example": 5,
+ "format": "int32"
+ },
+ "executions": {
+ "type": "array",
+ "description": "List of executions.",
+ "items": {
+ "$ref": "#\/components\/schemas\/execution"
+ },
+ "x-example": ""
+ }
+ },
+ "required": [
+ "total",
+ "executions"
+ ],
+ "example": {
+ "total": 5,
+ "executions": ""
+ }
+ },
+ "countryList": {
+ "description": "Countries List",
+ "type": "object",
+ "properties": {
+ "total": {
+ "type": "integer",
+ "description": "Total number of countries that matched your query.",
+ "x-example": 5,
+ "format": "int32"
+ },
+ "countries": {
+ "type": "array",
+ "description": "List of countries.",
+ "items": {
+ "$ref": "#\/components\/schemas\/country"
+ },
+ "x-example": ""
+ }
+ },
+ "required": [
+ "total",
+ "countries"
+ ],
+ "example": {
+ "total": 5,
+ "countries": ""
+ }
+ },
+ "continentList": {
+ "description": "Continents List",
+ "type": "object",
+ "properties": {
+ "total": {
+ "type": "integer",
+ "description": "Total number of continents that matched your query.",
+ "x-example": 5,
+ "format": "int32"
+ },
+ "continents": {
+ "type": "array",
+ "description": "List of continents.",
+ "items": {
+ "$ref": "#\/components\/schemas\/continent"
+ },
+ "x-example": ""
+ }
+ },
+ "required": [
+ "total",
+ "continents"
+ ],
+ "example": {
+ "total": 5,
+ "continents": ""
+ }
+ },
+ "languageList": {
+ "description": "Languages List",
+ "type": "object",
+ "properties": {
+ "total": {
+ "type": "integer",
+ "description": "Total number of languages that matched your query.",
+ "x-example": 5,
+ "format": "int32"
+ },
+ "languages": {
+ "type": "array",
+ "description": "List of languages.",
+ "items": {
+ "$ref": "#\/components\/schemas\/language"
+ },
+ "x-example": ""
+ }
+ },
+ "required": [
+ "total",
+ "languages"
+ ],
+ "example": {
+ "total": 5,
+ "languages": ""
+ }
+ },
+ "currencyList": {
+ "description": "Currencies List",
+ "type": "object",
+ "properties": {
+ "total": {
+ "type": "integer",
+ "description": "Total number of currencies that matched your query.",
+ "x-example": 5,
+ "format": "int32"
+ },
+ "currencies": {
+ "type": "array",
+ "description": "List of currencies.",
+ "items": {
+ "$ref": "#\/components\/schemas\/currency"
+ },
+ "x-example": ""
+ }
+ },
+ "required": [
+ "total",
+ "currencies"
+ ],
+ "example": {
+ "total": 5,
+ "currencies": ""
+ }
+ },
+ "phoneList": {
+ "description": "Phones List",
+ "type": "object",
+ "properties": {
+ "total": {
+ "type": "integer",
+ "description": "Total number of phones that matched your query.",
+ "x-example": 5,
+ "format": "int32"
+ },
+ "phones": {
+ "type": "array",
+ "description": "List of phones.",
+ "items": {
+ "$ref": "#\/components\/schemas\/phone"
+ },
+ "x-example": ""
+ }
+ },
+ "required": [
+ "total",
+ "phones"
+ ],
+ "example": {
+ "total": 5,
+ "phones": ""
+ }
+ },
+ "localeCodeList": {
+ "description": "Locale codes list",
+ "type": "object",
+ "properties": {
+ "total": {
+ "type": "integer",
+ "description": "Total number of localeCodes that matched your query.",
+ "x-example": 5,
+ "format": "int32"
+ },
+ "localeCodes": {
+ "type": "array",
+ "description": "List of localeCodes.",
+ "items": {
+ "$ref": "#\/components\/schemas\/localeCode"
+ },
+ "x-example": ""
+ }
+ },
+ "required": [
+ "total",
+ "localeCodes"
+ ],
+ "example": {
+ "total": 5,
+ "localeCodes": ""
+ }
+ },
+ "row": {
+ "description": "Row",
+ "type": "object",
+ "properties": {
+ "$id": {
+ "type": "string",
+ "description": "Row ID.",
+ "x-example": "5e5ea5c16897e"
+ },
+ "$sequence": {
+ "type": "integer",
+ "description": "Row automatically incrementing ID.",
+ "x-example": 1,
+ "format": "int32",
+ "readOnly": true
+ },
+ "$tableId": {
+ "type": "string",
+ "description": "Table ID.",
+ "x-example": "5e5ea5c15117e",
+ "readOnly": true
+ },
+ "$databaseId": {
+ "type": "string",
+ "description": "Database ID.",
+ "x-example": "5e5ea5c15117e",
+ "readOnly": true
+ },
+ "$createdAt": {
+ "type": "string",
+ "description": "Row creation date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "$updatedAt": {
+ "type": "string",
+ "description": "Row update date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "$permissions": {
+ "type": "array",
+ "description": "Row permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).",
+ "items": {
+ "type": "string"
+ },
+ "x-example": [
+ "read(\"any\")"
+ ]
+ }
+ },
+ "additionalProperties": true,
+ "required": [
+ "$id",
+ "$sequence",
+ "$tableId",
+ "$databaseId",
+ "$createdAt",
+ "$updatedAt",
+ "$permissions"
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$sequence": 1,
+ "$tableId": "5e5ea5c15117e",
+ "$databaseId": "5e5ea5c15117e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "$permissions": [
+ "read(\"any\")"
+ ]
+ }
+ },
+ "document": {
+ "description": "Document",
+ "type": "object",
+ "properties": {
+ "$id": {
+ "type": "string",
+ "description": "Document ID.",
+ "x-example": "5e5ea5c16897e"
+ },
+ "$sequence": {
+ "type": "integer",
+ "description": "Document automatically incrementing ID.",
+ "x-example": 1,
+ "format": "int32",
+ "readOnly": true
+ },
+ "$collectionId": {
+ "type": "string",
+ "description": "Collection ID.",
+ "x-example": "5e5ea5c15117e",
+ "readOnly": true
+ },
+ "$databaseId": {
+ "type": "string",
+ "description": "Database ID.",
+ "x-example": "5e5ea5c15117e",
+ "readOnly": true
+ },
+ "$createdAt": {
+ "type": "string",
+ "description": "Document creation date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "$updatedAt": {
+ "type": "string",
+ "description": "Document update date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "$permissions": {
+ "type": "array",
+ "description": "Document permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).",
+ "items": {
+ "type": "string"
+ },
+ "x-example": [
+ "read(\"any\")"
+ ]
+ }
+ },
+ "additionalProperties": true,
+ "required": [
+ "$id",
+ "$sequence",
+ "$collectionId",
+ "$databaseId",
+ "$createdAt",
+ "$updatedAt",
+ "$permissions"
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$sequence": 1,
+ "$collectionId": "5e5ea5c15117e",
+ "$databaseId": "5e5ea5c15117e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "$permissions": [
+ "read(\"any\")"
+ ],
+ "username": "john.doe",
+ "email": "john.doe@example.com",
+ "fullName": "John Doe",
+ "age": 30,
+ "isAdmin": false
+ }
+ },
+ "log": {
+ "description": "Log",
+ "type": "object",
+ "properties": {
+ "event": {
+ "type": "string",
+ "description": "Event name.",
+ "x-example": "account.sessions.create"
+ },
+ "userId": {
+ "type": "string",
+ "description": "User ID.",
+ "x-example": "610fc2f985ee0"
+ },
+ "userEmail": {
+ "type": "string",
+ "description": "User Email.",
+ "x-example": "john@appwrite.io"
+ },
+ "userName": {
+ "type": "string",
+ "description": "User Name.",
+ "x-example": "John Doe"
+ },
+ "mode": {
+ "type": "string",
+ "description": "API mode when event triggered.",
+ "x-example": "admin"
+ },
+ "ip": {
+ "type": "string",
+ "description": "IP session in use when the session was created.",
+ "x-example": "127.0.0.1"
+ },
+ "time": {
+ "type": "string",
+ "description": "Log creation date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "osCode": {
+ "type": "string",
+ "description": "Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).",
+ "x-example": "Mac"
+ },
+ "osName": {
+ "type": "string",
+ "description": "Operating system name.",
+ "x-example": "Mac"
+ },
+ "osVersion": {
+ "type": "string",
+ "description": "Operating system version.",
+ "x-example": "Mac"
+ },
+ "clientType": {
+ "type": "string",
+ "description": "Client type.",
+ "x-example": "browser"
+ },
+ "clientCode": {
+ "type": "string",
+ "description": "Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).",
+ "x-example": "CM"
+ },
+ "clientName": {
+ "type": "string",
+ "description": "Client name.",
+ "x-example": "Chrome Mobile iOS"
+ },
+ "clientVersion": {
+ "type": "string",
+ "description": "Client version.",
+ "x-example": "84.0"
+ },
+ "clientEngine": {
+ "type": "string",
+ "description": "Client engine name.",
+ "x-example": "WebKit"
+ },
+ "clientEngineVersion": {
+ "type": "string",
+ "description": "Client engine name.",
+ "x-example": "605.1.15"
+ },
+ "deviceName": {
+ "type": "string",
+ "description": "Device name.",
+ "x-example": "smartphone"
+ },
+ "deviceBrand": {
+ "type": "string",
+ "description": "Device brand name.",
+ "x-example": "Google"
+ },
+ "deviceModel": {
+ "type": "string",
+ "description": "Device model name.",
+ "x-example": "Nexus 5"
+ },
+ "countryCode": {
+ "type": "string",
+ "description": "Country two-character ISO 3166-1 alpha code.",
+ "x-example": "US"
+ },
+ "countryName": {
+ "type": "string",
+ "description": "Country name.",
+ "x-example": "United States"
+ }
+ },
+ "required": [
+ "event",
+ "userId",
+ "userEmail",
+ "userName",
+ "mode",
+ "ip",
+ "time",
+ "osCode",
+ "osName",
+ "osVersion",
+ "clientType",
+ "clientCode",
+ "clientName",
+ "clientVersion",
+ "clientEngine",
+ "clientEngineVersion",
+ "deviceName",
+ "deviceBrand",
+ "deviceModel",
+ "countryCode",
+ "countryName"
+ ],
+ "example": {
+ "event": "account.sessions.create",
+ "userId": "610fc2f985ee0",
+ "userEmail": "john@appwrite.io",
+ "userName": "John Doe",
+ "mode": "admin",
+ "ip": "127.0.0.1",
+ "time": "2020-10-15T06:38:00.000+00:00",
+ "osCode": "Mac",
+ "osName": "Mac",
+ "osVersion": "Mac",
+ "clientType": "browser",
+ "clientCode": "CM",
+ "clientName": "Chrome Mobile iOS",
+ "clientVersion": "84.0",
+ "clientEngine": "WebKit",
+ "clientEngineVersion": "605.1.15",
+ "deviceName": "smartphone",
+ "deviceBrand": "Google",
+ "deviceModel": "Nexus 5",
+ "countryCode": "US",
+ "countryName": "United States"
+ }
+ },
+ "user": {
+ "description": "User",
+ "type": "object",
+ "properties": {
+ "$id": {
+ "type": "string",
+ "description": "User ID.",
+ "x-example": "5e5ea5c16897e"
+ },
+ "$createdAt": {
+ "type": "string",
+ "description": "User creation date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "$updatedAt": {
+ "type": "string",
+ "description": "User update date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "name": {
+ "type": "string",
+ "description": "User name.",
+ "x-example": "John Doe"
+ },
+ "password": {
+ "type": "string",
+ "description": "Hashed user password.",
+ "x-example": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE",
+ "nullable": true
+ },
+ "hash": {
+ "type": "string",
+ "description": "Password hashing algorithm.",
+ "x-example": "argon2",
+ "nullable": true
+ },
+ "hashOptions": {
+ "type": "object",
+ "description": "Password hashing algorithm configuration.",
+ "x-example": {},
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#\/components\/schemas\/algoArgon2"
+ },
+ {
+ "$ref": "#\/components\/schemas\/algoScrypt"
+ },
+ {
+ "$ref": "#\/components\/schemas\/algoScryptModified"
+ },
+ {
+ "$ref": "#\/components\/schemas\/algoBcrypt"
+ },
+ {
+ "$ref": "#\/components\/schemas\/algoPhpass"
+ },
+ {
+ "$ref": "#\/components\/schemas\/algoSha"
+ },
+ {
+ "$ref": "#\/components\/schemas\/algoMd5"
+ }
+ ]
+ },
+ "nullable": true
+ },
+ "registration": {
+ "type": "string",
+ "description": "User registration date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "status": {
+ "type": "boolean",
+ "description": "User status. Pass `true` for enabled and `false` for disabled.",
+ "x-example": true
+ },
+ "labels": {
+ "type": "array",
+ "description": "Labels for the user.",
+ "items": {
+ "type": "string"
+ },
+ "x-example": [
+ "vip"
+ ]
+ },
+ "passwordUpdate": {
+ "type": "string",
+ "description": "Password update time in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "email": {
+ "type": "string",
+ "description": "User email address.",
+ "x-example": "john@appwrite.io"
+ },
+ "phone": {
+ "type": "string",
+ "description": "User phone number in E.164 format.",
+ "x-example": "+4930901820"
+ },
+ "emailVerification": {
+ "type": "boolean",
+ "description": "Email verification status.",
+ "x-example": true
+ },
+ "phoneVerification": {
+ "type": "boolean",
+ "description": "Phone verification status.",
+ "x-example": true
+ },
+ "mfa": {
+ "type": "boolean",
+ "description": "Multi factor authentication status.",
+ "x-example": true
+ },
+ "prefs": {
+ "type": "object",
+ "description": "User preferences as a key-value object",
+ "x-example": {
+ "theme": "pink",
+ "timezone": "UTC"
+ },
+ "items": {
+ "$ref": "#\/components\/schemas\/preferences"
+ }
+ },
+ "targets": {
+ "type": "array",
+ "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.",
+ "items": {
+ "$ref": "#\/components\/schemas\/target"
+ },
+ "x-example": []
+ },
+ "accessedAt": {
+ "type": "string",
+ "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ }
+ },
+ "required": [
+ "$id",
+ "$createdAt",
+ "$updatedAt",
+ "name",
+ "registration",
+ "status",
+ "labels",
+ "passwordUpdate",
+ "email",
+ "phone",
+ "emailVerification",
+ "phoneVerification",
+ "mfa",
+ "prefs",
+ "targets",
+ "accessedAt"
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "John Doe",
+ "password": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE",
+ "hash": "argon2",
+ "hashOptions": {},
+ "registration": "2020-10-15T06:38:00.000+00:00",
+ "status": true,
+ "labels": [
+ "vip"
+ ],
+ "passwordUpdate": "2020-10-15T06:38:00.000+00:00",
+ "email": "john@appwrite.io",
+ "phone": "+4930901820",
+ "emailVerification": true,
+ "phoneVerification": true,
+ "mfa": true,
+ "prefs": {
+ "theme": "pink",
+ "timezone": "UTC"
+ },
+ "targets": [],
+ "accessedAt": "2020-10-15T06:38:00.000+00:00"
+ }
+ },
+ "algoMd5": {
+ "description": "AlgoMD5",
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Algo type.",
+ "x-example": "md5"
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "example": {
+ "type": "md5"
+ }
+ },
+ "algoSha": {
+ "description": "AlgoSHA",
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Algo type.",
+ "x-example": "sha"
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "example": {
+ "type": "sha"
+ }
+ },
+ "algoPhpass": {
+ "description": "AlgoPHPass",
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Algo type.",
+ "x-example": "phpass"
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "example": {
+ "type": "phpass"
+ }
+ },
+ "algoBcrypt": {
+ "description": "AlgoBcrypt",
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Algo type.",
+ "x-example": "bcrypt"
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "example": {
+ "type": "bcrypt"
+ }
+ },
+ "algoScrypt": {
+ "description": "AlgoScrypt",
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Algo type.",
+ "x-example": "scrypt"
+ },
+ "costCpu": {
+ "type": "integer",
+ "description": "CPU complexity of computed hash.",
+ "x-example": 8,
+ "format": "int32"
+ },
+ "costMemory": {
+ "type": "integer",
+ "description": "Memory complexity of computed hash.",
+ "x-example": 14,
+ "format": "int32"
+ },
+ "costParallel": {
+ "type": "integer",
+ "description": "Parallelization of computed hash.",
+ "x-example": 1,
+ "format": "int32"
+ },
+ "length": {
+ "type": "integer",
+ "description": "Length used to compute hash.",
+ "x-example": 64,
+ "format": "int32"
+ }
+ },
+ "required": [
+ "type",
+ "costCpu",
+ "costMemory",
+ "costParallel",
+ "length"
+ ],
+ "example": {
+ "type": "scrypt",
+ "costCpu": 8,
+ "costMemory": 14,
+ "costParallel": 1,
+ "length": 64
+ }
+ },
+ "algoScryptModified": {
+ "description": "AlgoScryptModified",
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Algo type.",
+ "x-example": "scryptMod"
+ },
+ "salt": {
+ "type": "string",
+ "description": "Salt used to compute hash.",
+ "x-example": "UxLMreBr6tYyjQ=="
+ },
+ "saltSeparator": {
+ "type": "string",
+ "description": "Separator used to compute hash.",
+ "x-example": "Bw=="
+ },
+ "signerKey": {
+ "type": "string",
+ "description": "Key used to compute hash.",
+ "x-example": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ=="
+ }
+ },
+ "required": [
+ "type",
+ "salt",
+ "saltSeparator",
+ "signerKey"
+ ],
+ "example": {
+ "type": "scryptMod",
+ "salt": "UxLMreBr6tYyjQ==",
+ "saltSeparator": "Bw==",
+ "signerKey": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ=="
+ }
+ },
+ "algoArgon2": {
+ "description": "AlgoArgon2",
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Algo type.",
+ "x-example": "argon2"
+ },
+ "memoryCost": {
+ "type": "integer",
+ "description": "Memory used to compute hash.",
+ "x-example": 65536,
+ "format": "int32"
+ },
+ "timeCost": {
+ "type": "integer",
+ "description": "Amount of time consumed to compute hash",
+ "x-example": 4,
+ "format": "int32"
+ },
+ "threads": {
+ "type": "integer",
+ "description": "Number of threads used to compute hash.",
+ "x-example": 3,
+ "format": "int32"
+ }
+ },
+ "required": [
+ "type",
+ "memoryCost",
+ "timeCost",
+ "threads"
+ ],
+ "example": {
+ "type": "argon2",
+ "memoryCost": 65536,
+ "timeCost": 4,
+ "threads": 3
+ }
+ },
+ "preferences": {
+ "description": "Preferences",
+ "type": "object",
+ "additionalProperties": true,
+ "example": {
+ "language": "en",
+ "timezone": "UTC",
+ "darkTheme": true
+ }
+ },
+ "session": {
+ "description": "Session",
+ "type": "object",
+ "properties": {
+ "$id": {
+ "type": "string",
+ "description": "Session ID.",
+ "x-example": "5e5ea5c16897e"
+ },
+ "$createdAt": {
+ "type": "string",
+ "description": "Session creation date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "$updatedAt": {
+ "type": "string",
+ "description": "Session update date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "userId": {
+ "type": "string",
+ "description": "User ID.",
+ "x-example": "5e5bb8c16897e"
+ },
+ "expire": {
+ "type": "string",
+ "description": "Session expiration date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "provider": {
+ "type": "string",
+ "description": "Session Provider.",
+ "x-example": "email"
+ },
+ "providerUid": {
+ "type": "string",
+ "description": "Session Provider User ID.",
+ "x-example": "user@example.com"
+ },
+ "providerAccessToken": {
+ "type": "string",
+ "description": "Session Provider Access Token.",
+ "x-example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"
+ },
+ "providerAccessTokenExpiry": {
+ "type": "string",
+ "description": "The date of when the access token expires in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "providerRefreshToken": {
+ "type": "string",
+ "description": "Session Provider Refresh Token.",
+ "x-example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"
+ },
+ "ip": {
+ "type": "string",
+ "description": "IP in use when the session was created.",
+ "x-example": "127.0.0.1"
+ },
+ "osCode": {
+ "type": "string",
+ "description": "Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).",
+ "x-example": "Mac"
+ },
+ "osName": {
+ "type": "string",
+ "description": "Operating system name.",
+ "x-example": "Mac"
+ },
+ "osVersion": {
+ "type": "string",
+ "description": "Operating system version.",
+ "x-example": "Mac"
+ },
+ "clientType": {
+ "type": "string",
+ "description": "Client type.",
+ "x-example": "browser"
+ },
+ "clientCode": {
+ "type": "string",
+ "description": "Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).",
+ "x-example": "CM"
+ },
+ "clientName": {
+ "type": "string",
+ "description": "Client name.",
+ "x-example": "Chrome Mobile iOS"
+ },
+ "clientVersion": {
+ "type": "string",
+ "description": "Client version.",
+ "x-example": "84.0"
+ },
+ "clientEngine": {
+ "type": "string",
+ "description": "Client engine name.",
+ "x-example": "WebKit"
+ },
+ "clientEngineVersion": {
+ "type": "string",
+ "description": "Client engine name.",
+ "x-example": "605.1.15"
+ },
+ "deviceName": {
+ "type": "string",
+ "description": "Device name.",
+ "x-example": "smartphone"
+ },
+ "deviceBrand": {
+ "type": "string",
+ "description": "Device brand name.",
+ "x-example": "Google"
+ },
+ "deviceModel": {
+ "type": "string",
+ "description": "Device model name.",
+ "x-example": "Nexus 5"
+ },
+ "countryCode": {
+ "type": "string",
+ "description": "Country two-character ISO 3166-1 alpha code.",
+ "x-example": "US"
+ },
+ "countryName": {
+ "type": "string",
+ "description": "Country name.",
+ "x-example": "United States"
+ },
+ "current": {
+ "type": "boolean",
+ "description": "Returns true if this the current user session.",
+ "x-example": true
+ },
+ "factors": {
+ "type": "array",
+ "description": "Returns a list of active session factors.",
+ "items": {
+ "type": "string"
+ },
+ "x-example": [
+ "email"
+ ]
+ },
+ "secret": {
+ "type": "string",
+ "description": "Secret used to authenticate the user. Only included if the request was made with an API key",
+ "x-example": "5e5bb8c16897e"
+ },
+ "mfaUpdatedAt": {
+ "type": "string",
+ "description": "Most recent date in ISO 8601 format when the session successfully passed MFA challenge.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ }
+ },
+ "required": [
+ "$id",
+ "$createdAt",
+ "$updatedAt",
+ "userId",
+ "expire",
+ "provider",
+ "providerUid",
+ "providerAccessToken",
+ "providerAccessTokenExpiry",
+ "providerRefreshToken",
+ "ip",
+ "osCode",
+ "osName",
+ "osVersion",
+ "clientType",
+ "clientCode",
+ "clientName",
+ "clientVersion",
+ "clientEngine",
+ "clientEngineVersion",
+ "deviceName",
+ "deviceBrand",
+ "deviceModel",
+ "countryCode",
+ "countryName",
+ "current",
+ "factors",
+ "secret",
+ "mfaUpdatedAt"
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5bb8c16897e",
+ "expire": "2020-10-15T06:38:00.000+00:00",
+ "provider": "email",
+ "providerUid": "user@example.com",
+ "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
+ "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00",
+ "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
+ "ip": "127.0.0.1",
+ "osCode": "Mac",
+ "osName": "Mac",
+ "osVersion": "Mac",
+ "clientType": "browser",
+ "clientCode": "CM",
+ "clientName": "Chrome Mobile iOS",
+ "clientVersion": "84.0",
+ "clientEngine": "WebKit",
+ "clientEngineVersion": "605.1.15",
+ "deviceName": "smartphone",
+ "deviceBrand": "Google",
+ "deviceModel": "Nexus 5",
+ "countryCode": "US",
+ "countryName": "United States",
+ "current": true,
+ "factors": [
+ "email"
+ ],
+ "secret": "5e5bb8c16897e",
+ "mfaUpdatedAt": "2020-10-15T06:38:00.000+00:00"
+ }
+ },
+ "identity": {
+ "description": "Identity",
+ "type": "object",
+ "properties": {
+ "$id": {
+ "type": "string",
+ "description": "Identity ID.",
+ "x-example": "5e5ea5c16897e"
+ },
+ "$createdAt": {
+ "type": "string",
+ "description": "Identity creation date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "$updatedAt": {
+ "type": "string",
+ "description": "Identity update date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "userId": {
+ "type": "string",
+ "description": "User ID.",
+ "x-example": "5e5bb8c16897e"
+ },
+ "provider": {
+ "type": "string",
+ "description": "Identity Provider.",
+ "x-example": "email"
+ },
+ "providerUid": {
+ "type": "string",
+ "description": "ID of the User in the Identity Provider.",
+ "x-example": "5e5bb8c16897e"
+ },
+ "providerEmail": {
+ "type": "string",
+ "description": "Email of the User in the Identity Provider.",
+ "x-example": "user@example.com"
+ },
+ "providerAccessToken": {
+ "type": "string",
+ "description": "Identity Provider Access Token.",
+ "x-example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"
+ },
+ "providerAccessTokenExpiry": {
+ "type": "string",
+ "description": "The date of when the access token expires in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "providerRefreshToken": {
+ "type": "string",
+ "description": "Identity Provider Refresh Token.",
+ "x-example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"
+ }
+ },
+ "required": [
+ "$id",
+ "$createdAt",
+ "$updatedAt",
+ "userId",
+ "provider",
+ "providerUid",
+ "providerEmail",
+ "providerAccessToken",
+ "providerAccessTokenExpiry",
+ "providerRefreshToken"
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5bb8c16897e",
+ "provider": "email",
+ "providerUid": "5e5bb8c16897e",
+ "providerEmail": "user@example.com",
+ "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
+ "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00",
+ "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"
+ }
+ },
+ "token": {
+ "description": "Token",
+ "type": "object",
+ "properties": {
+ "$id": {
+ "type": "string",
+ "description": "Token ID.",
+ "x-example": "bb8ea5c16897e"
+ },
+ "$createdAt": {
+ "type": "string",
+ "description": "Token creation date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "userId": {
+ "type": "string",
+ "description": "User ID.",
+ "x-example": "5e5ea5c168bb8"
+ },
+ "secret": {
+ "type": "string",
+ "description": "Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.",
+ "x-example": ""
+ },
+ "expire": {
+ "type": "string",
+ "description": "Token expiration date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "phrase": {
+ "type": "string",
+ "description": "Security phrase of a token. Empty if security phrase was not requested when creating a token. It includes randomly generated phrase which is also sent in the external resource such as email.",
+ "x-example": "Golden Fox"
+ }
+ },
+ "required": [
+ "$id",
+ "$createdAt",
+ "userId",
+ "secret",
+ "expire",
+ "phrase"
+ ],
+ "example": {
+ "$id": "bb8ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5ea5c168bb8",
+ "secret": "",
+ "expire": "2020-10-15T06:38:00.000+00:00",
+ "phrase": "Golden Fox"
+ }
+ },
+ "jwt": {
+ "description": "JWT",
+ "type": "object",
+ "properties": {
+ "jwt": {
+ "type": "string",
+ "description": "JWT encoded string.",
+ "x-example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
+ }
+ },
+ "required": [
+ "jwt"
+ ],
+ "example": {
+ "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
+ }
+ },
+ "locale": {
+ "description": "Locale",
+ "type": "object",
+ "properties": {
+ "ip": {
+ "type": "string",
+ "description": "User IP address.",
+ "x-example": "127.0.0.1"
+ },
+ "countryCode": {
+ "type": "string",
+ "description": "Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format",
+ "x-example": "US"
+ },
+ "country": {
+ "type": "string",
+ "description": "Country name. This field support localization.",
+ "x-example": "United States"
+ },
+ "continentCode": {
+ "type": "string",
+ "description": "Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.",
+ "x-example": "NA"
+ },
+ "continent": {
+ "type": "string",
+ "description": "Continent name. This field support localization.",
+ "x-example": "North America"
+ },
+ "eu": {
+ "type": "boolean",
+ "description": "True if country is part of the European Union.",
+ "x-example": false
+ },
+ "currency": {
+ "type": "string",
+ "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format",
+ "x-example": "USD"
+ }
+ },
+ "required": [
+ "ip",
+ "countryCode",
+ "country",
+ "continentCode",
+ "continent",
+ "eu",
+ "currency"
+ ],
+ "example": {
+ "ip": "127.0.0.1",
+ "countryCode": "US",
+ "country": "United States",
+ "continentCode": "NA",
+ "continent": "North America",
+ "eu": false,
+ "currency": "USD"
+ }
+ },
+ "localeCode": {
+ "description": "LocaleCode",
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes)",
+ "x-example": "en-us"
+ },
+ "name": {
+ "type": "string",
+ "description": "Locale name",
+ "x-example": "US"
+ }
+ },
+ "required": [
+ "code",
+ "name"
+ ],
+ "example": {
+ "code": "en-us",
+ "name": "US"
+ }
+ },
+ "file": {
+ "description": "File",
+ "type": "object",
+ "properties": {
+ "$id": {
+ "type": "string",
+ "description": "File ID.",
+ "x-example": "5e5ea5c16897e"
+ },
+ "bucketId": {
+ "type": "string",
+ "description": "Bucket ID.",
+ "x-example": "5e5ea5c16897e"
+ },
+ "$createdAt": {
+ "type": "string",
+ "description": "File creation date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "$updatedAt": {
+ "type": "string",
+ "description": "File update date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "$permissions": {
+ "type": "array",
+ "description": "File permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).",
+ "items": {
+ "type": "string"
+ },
+ "x-example": [
+ "read(\"any\")"
+ ]
+ },
+ "name": {
+ "type": "string",
+ "description": "File name.",
+ "x-example": "Pink.png"
+ },
+ "signature": {
+ "type": "string",
+ "description": "File MD5 signature.",
+ "x-example": "5d529fd02b544198ae075bd57c1762bb"
+ },
+ "mimeType": {
+ "type": "string",
+ "description": "File mime type.",
+ "x-example": "image\/png"
+ },
+ "sizeOriginal": {
+ "type": "integer",
+ "description": "File original size in bytes.",
+ "x-example": 17890,
+ "format": "int32"
+ },
+ "chunksTotal": {
+ "type": "integer",
+ "description": "Total number of chunks available",
+ "x-example": 17890,
+ "format": "int32"
+ },
+ "chunksUploaded": {
+ "type": "integer",
+ "description": "Total number of chunks uploaded",
+ "x-example": 17890,
+ "format": "int32"
+ }
+ },
+ "required": [
+ "$id",
+ "bucketId",
+ "$createdAt",
+ "$updatedAt",
+ "$permissions",
+ "name",
+ "signature",
+ "mimeType",
+ "sizeOriginal",
+ "chunksTotal",
+ "chunksUploaded"
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "bucketId": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "$permissions": [
+ "read(\"any\")"
+ ],
+ "name": "Pink.png",
+ "signature": "5d529fd02b544198ae075bd57c1762bb",
+ "mimeType": "image\/png",
+ "sizeOriginal": 17890,
+ "chunksTotal": 17890,
+ "chunksUploaded": 17890
+ }
+ },
+ "team": {
+ "description": "Team",
+ "type": "object",
+ "properties": {
+ "$id": {
+ "type": "string",
+ "description": "Team ID.",
+ "x-example": "5e5ea5c16897e"
+ },
+ "$createdAt": {
+ "type": "string",
+ "description": "Team creation date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "$updatedAt": {
+ "type": "string",
+ "description": "Team update date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "name": {
+ "type": "string",
+ "description": "Team name.",
+ "x-example": "VIP"
+ },
+ "total": {
+ "type": "integer",
+ "description": "Total number of team members.",
+ "x-example": 7,
+ "format": "int32"
+ },
+ "prefs": {
+ "type": "object",
+ "description": "Team preferences as a key-value object",
+ "x-example": {
+ "theme": "pink",
+ "timezone": "UTC"
+ },
+ "items": {
+ "$ref": "#\/components\/schemas\/preferences"
+ }
+ }
+ },
+ "required": [
+ "$id",
+ "$createdAt",
+ "$updatedAt",
+ "name",
+ "total",
+ "prefs"
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "VIP",
+ "total": 7,
+ "prefs": {
+ "theme": "pink",
+ "timezone": "UTC"
+ }
+ }
+ },
+ "membership": {
+ "description": "Membership",
+ "type": "object",
+ "properties": {
+ "$id": {
+ "type": "string",
+ "description": "Membership ID.",
+ "x-example": "5e5ea5c16897e"
+ },
+ "$createdAt": {
+ "type": "string",
+ "description": "Membership creation date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "$updatedAt": {
+ "type": "string",
+ "description": "Membership update date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "userId": {
+ "type": "string",
+ "description": "User ID.",
+ "x-example": "5e5ea5c16897e"
+ },
+ "userName": {
+ "type": "string",
+ "description": "User name. Hide this attribute by toggling membership privacy in the Console.",
+ "x-example": "John Doe"
+ },
+ "userEmail": {
+ "type": "string",
+ "description": "User email address. Hide this attribute by toggling membership privacy in the Console.",
+ "x-example": "john@appwrite.io"
+ },
+ "teamId": {
+ "type": "string",
+ "description": "Team ID.",
+ "x-example": "5e5ea5c16897e"
+ },
+ "teamName": {
+ "type": "string",
+ "description": "Team name.",
+ "x-example": "VIP"
+ },
+ "invited": {
+ "type": "string",
+ "description": "Date, the user has been invited to join the team in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "joined": {
+ "type": "string",
+ "description": "Date, the user has accepted the invitation to join the team in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "confirm": {
+ "type": "boolean",
+ "description": "User confirmation status, true if the user has joined the team or false otherwise.",
+ "x-example": false
+ },
+ "mfa": {
+ "type": "boolean",
+ "description": "Multi factor authentication status, true if the user has MFA enabled or false otherwise. Hide this attribute by toggling membership privacy in the Console.",
+ "x-example": false
+ },
+ "roles": {
+ "type": "array",
+ "description": "User list of roles",
+ "items": {
+ "type": "string"
+ },
+ "x-example": [
+ "owner"
+ ]
+ }
+ },
+ "required": [
+ "$id",
+ "$createdAt",
+ "$updatedAt",
+ "userId",
+ "userName",
+ "userEmail",
+ "teamId",
+ "teamName",
+ "invited",
+ "joined",
+ "confirm",
+ "mfa",
+ "roles"
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5ea5c16897e",
+ "userName": "John Doe",
+ "userEmail": "john@appwrite.io",
+ "teamId": "5e5ea5c16897e",
+ "teamName": "VIP",
+ "invited": "2020-10-15T06:38:00.000+00:00",
+ "joined": "2020-10-15T06:38:00.000+00:00",
+ "confirm": false,
+ "mfa": false,
+ "roles": [
+ "owner"
+ ]
+ }
+ },
+ "execution": {
+ "description": "Execution",
+ "type": "object",
+ "properties": {
+ "$id": {
+ "type": "string",
+ "description": "Execution ID.",
+ "x-example": "5e5ea5c16897e"
+ },
+ "$createdAt": {
+ "type": "string",
+ "description": "Execution creation date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "$updatedAt": {
+ "type": "string",
+ "description": "Execution update date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "$permissions": {
+ "type": "array",
+ "description": "Execution roles.",
+ "items": {
+ "type": "string"
+ },
+ "x-example": [
+ "any"
+ ]
+ },
+ "functionId": {
+ "type": "string",
+ "description": "Function ID.",
+ "x-example": "5e5ea6g16897e"
+ },
+ "deploymentId": {
+ "type": "string",
+ "description": "Function's deployment ID used to create the execution.",
+ "x-example": "5e5ea5c16897e"
+ },
+ "trigger": {
+ "type": "string",
+ "description": "The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.",
+ "x-example": "http",
+ "enum": [
+ "http",
+ "schedule",
+ "event"
+ ]
+ },
+ "status": {
+ "type": "string",
+ "description": "The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, or `failed`.",
+ "x-example": "processing",
+ "enum": [
+ "waiting",
+ "processing",
+ "completed",
+ "failed"
+ ]
+ },
+ "requestMethod": {
+ "type": "string",
+ "description": "HTTP request method type.",
+ "x-example": "GET"
+ },
+ "requestPath": {
+ "type": "string",
+ "description": "HTTP request path and query.",
+ "x-example": "\/articles?id=5"
+ },
+ "requestHeaders": {
+ "type": "array",
+ "description": "HTTP request headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.",
+ "items": {
+ "$ref": "#\/components\/schemas\/headers"
+ },
+ "x-example": [
+ {
+ "Content-Type": "application\/json"
+ }
+ ]
+ },
+ "responseStatusCode": {
+ "type": "integer",
+ "description": "HTTP response status code.",
+ "x-example": 200,
+ "format": "int32"
+ },
+ "responseBody": {
+ "type": "string",
+ "description": "HTTP response body. This will return empty unless execution is created as synchronous.",
+ "x-example": ""
+ },
+ "responseHeaders": {
+ "type": "array",
+ "description": "HTTP response headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.",
+ "items": {
+ "$ref": "#\/components\/schemas\/headers"
+ },
+ "x-example": [
+ {
+ "Content-Type": "application\/json"
+ }
+ ]
+ },
+ "logs": {
+ "type": "string",
+ "description": "Function logs. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.",
+ "x-example": ""
+ },
+ "errors": {
+ "type": "string",
+ "description": "Function errors. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.",
+ "x-example": ""
+ },
+ "duration": {
+ "type": "number",
+ "description": "Resource(function\/site) execution duration in seconds.",
+ "x-example": 0.4,
+ "format": "double"
+ },
+ "scheduledAt": {
+ "type": "string",
+ "description": "The scheduled time for execution. If left empty, execution will be queued immediately.",
+ "x-example": "2020-10-15T06:38:00.000+00:00",
+ "nullable": true
+ }
+ },
+ "required": [
+ "$id",
+ "$createdAt",
+ "$updatedAt",
+ "$permissions",
+ "functionId",
+ "deploymentId",
+ "trigger",
+ "status",
+ "requestMethod",
+ "requestPath",
+ "requestHeaders",
+ "responseStatusCode",
+ "responseBody",
+ "responseHeaders",
+ "logs",
+ "errors",
+ "duration"
+ ],
+ "example": {
+ "$id": "5e5ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "$permissions": [
+ "any"
+ ],
+ "functionId": "5e5ea6g16897e",
+ "deploymentId": "5e5ea5c16897e",
+ "trigger": "http",
+ "status": "processing",
+ "requestMethod": "GET",
+ "requestPath": "\/articles?id=5",
+ "requestHeaders": [
+ {
+ "Content-Type": "application\/json"
+ }
+ ],
+ "responseStatusCode": 200,
+ "responseBody": "",
+ "responseHeaders": [
+ {
+ "Content-Type": "application\/json"
+ }
+ ],
+ "logs": "",
+ "errors": "",
+ "duration": 0.4,
+ "scheduledAt": "2020-10-15T06:38:00.000+00:00"
+ }
+ },
+ "country": {
+ "description": "Country",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Country name.",
+ "x-example": "United States"
+ },
+ "code": {
+ "type": "string",
+ "description": "Country two-character ISO 3166-1 alpha code.",
+ "x-example": "US"
+ }
+ },
+ "required": [
+ "name",
+ "code"
+ ],
+ "example": {
+ "name": "United States",
+ "code": "US"
+ }
+ },
+ "continent": {
+ "description": "Continent",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Continent name.",
+ "x-example": "Europe"
+ },
+ "code": {
+ "type": "string",
+ "description": "Continent two letter code.",
+ "x-example": "EU"
+ }
+ },
+ "required": [
+ "name",
+ "code"
+ ],
+ "example": {
+ "name": "Europe",
+ "code": "EU"
+ }
+ },
+ "language": {
+ "description": "Language",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Language name.",
+ "x-example": "Italian"
+ },
+ "code": {
+ "type": "string",
+ "description": "Language two-character ISO 639-1 codes.",
+ "x-example": "it"
+ },
+ "nativeName": {
+ "type": "string",
+ "description": "Language native name.",
+ "x-example": "Italiano"
+ }
+ },
+ "required": [
+ "name",
+ "code",
+ "nativeName"
+ ],
+ "example": {
+ "name": "Italian",
+ "code": "it",
+ "nativeName": "Italiano"
+ }
+ },
+ "currency": {
+ "description": "Currency",
+ "type": "object",
+ "properties": {
+ "symbol": {
+ "type": "string",
+ "description": "Currency symbol.",
+ "x-example": "$"
+ },
+ "name": {
+ "type": "string",
+ "description": "Currency name.",
+ "x-example": "US dollar"
+ },
+ "symbolNative": {
+ "type": "string",
+ "description": "Currency native symbol.",
+ "x-example": "$"
+ },
+ "decimalDigits": {
+ "type": "integer",
+ "description": "Number of decimal digits.",
+ "x-example": 2,
+ "format": "int32"
+ },
+ "rounding": {
+ "type": "number",
+ "description": "Currency digit rounding.",
+ "x-example": 0,
+ "format": "double"
+ },
+ "code": {
+ "type": "string",
+ "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.",
+ "x-example": "USD"
+ },
+ "namePlural": {
+ "type": "string",
+ "description": "Currency plural name",
+ "x-example": "US dollars"
+ }
+ },
+ "required": [
+ "symbol",
+ "name",
+ "symbolNative",
+ "decimalDigits",
+ "rounding",
+ "code",
+ "namePlural"
+ ],
+ "example": {
+ "symbol": "$",
+ "name": "US dollar",
+ "symbolNative": "$",
+ "decimalDigits": 2,
+ "rounding": 0,
+ "code": "USD",
+ "namePlural": "US dollars"
+ }
+ },
+ "phone": {
+ "description": "Phone",
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "Phone code.",
+ "x-example": "+1"
+ },
+ "countryCode": {
+ "type": "string",
+ "description": "Country two-character ISO 3166-1 alpha code.",
+ "x-example": "US"
+ },
+ "countryName": {
+ "type": "string",
+ "description": "Country name.",
+ "x-example": "United States"
+ }
+ },
+ "required": [
+ "code",
+ "countryCode",
+ "countryName"
+ ],
+ "example": {
+ "code": "+1",
+ "countryCode": "US",
+ "countryName": "United States"
+ }
+ },
+ "headers": {
+ "description": "Headers",
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Header name.",
+ "x-example": "Content-Type"
+ },
+ "value": {
+ "type": "string",
+ "description": "Header value.",
+ "x-example": "application\/json"
+ }
+ },
+ "required": [
+ "name",
+ "value"
+ ],
+ "example": {
+ "name": "Content-Type",
+ "value": "application\/json"
+ }
+ },
+ "mfaChallenge": {
+ "description": "MFA Challenge",
+ "type": "object",
+ "properties": {
+ "$id": {
+ "type": "string",
+ "description": "Token ID.",
+ "x-example": "bb8ea5c16897e"
+ },
+ "$createdAt": {
+ "type": "string",
+ "description": "Token creation date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "userId": {
+ "type": "string",
+ "description": "User ID.",
+ "x-example": "5e5ea5c168bb8"
+ },
+ "expire": {
+ "type": "string",
+ "description": "Token expiration date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ }
+ },
+ "required": [
+ "$id",
+ "$createdAt",
+ "userId",
+ "expire"
+ ],
+ "example": {
+ "$id": "bb8ea5c16897e",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "userId": "5e5ea5c168bb8",
+ "expire": "2020-10-15T06:38:00.000+00:00"
+ }
+ },
+ "mfaRecoveryCodes": {
+ "description": "MFA Recovery Codes",
+ "type": "object",
+ "properties": {
+ "recoveryCodes": {
+ "type": "array",
+ "description": "Recovery codes.",
+ "items": {
+ "type": "string"
+ },
+ "x-example": [
+ "a3kf0-s0cl2",
+ "s0co1-as98s"
+ ]
+ }
+ },
+ "required": [
+ "recoveryCodes"
+ ],
+ "example": {
+ "recoveryCodes": [
+ "a3kf0-s0cl2",
+ "s0co1-as98s"
+ ]
+ }
+ },
+ "mfaType": {
+ "description": "MFAType",
+ "type": "object",
+ "properties": {
+ "secret": {
+ "type": "string",
+ "description": "Secret token used for TOTP factor.",
+ "x-example": true
+ },
+ "uri": {
+ "type": "string",
+ "description": "URI for authenticator apps.",
+ "x-example": true
+ }
+ },
+ "required": [
+ "secret",
+ "uri"
+ ],
+ "example": {
+ "secret": true,
+ "uri": true
+ }
+ },
+ "mfaFactors": {
+ "description": "MFAFactors",
+ "type": "object",
+ "properties": {
+ "totp": {
+ "type": "boolean",
+ "description": "Can TOTP be used for MFA challenge for this account.",
+ "x-example": true
+ },
+ "phone": {
+ "type": "boolean",
+ "description": "Can phone (SMS) be used for MFA challenge for this account.",
+ "x-example": true
+ },
+ "email": {
+ "type": "boolean",
+ "description": "Can email be used for MFA challenge for this account.",
+ "x-example": true
+ },
+ "recoveryCode": {
+ "type": "boolean",
+ "description": "Can recovery code be used for MFA challenge for this account.",
+ "x-example": true
+ }
+ },
+ "required": [
+ "totp",
+ "phone",
+ "email",
+ "recoveryCode"
+ ],
+ "example": {
+ "totp": true,
+ "phone": true,
+ "email": true,
+ "recoveryCode": true
+ }
+ },
+ "subscriber": {
+ "description": "Subscriber",
+ "type": "object",
+ "properties": {
+ "$id": {
+ "type": "string",
+ "description": "Subscriber ID.",
+ "x-example": "259125845563242502"
+ },
+ "$createdAt": {
+ "type": "string",
+ "description": "Subscriber creation time in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "$updatedAt": {
+ "type": "string",
+ "description": "Subscriber update date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "targetId": {
+ "type": "string",
+ "description": "Target ID.",
+ "x-example": "259125845563242502"
+ },
+ "target": {
+ "type": "object",
+ "description": "Target.",
+ "x-example": {
+ "$id": "259125845563242502",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "providerType": "email",
+ "providerId": "259125845563242502",
+ "name": "ageon-app-email",
+ "identifier": "random-mail@email.org",
+ "userId": "5e5ea5c16897e"
+ },
+ "items": {
+ "$ref": "#\/components\/schemas\/target"
+ }
+ },
+ "userId": {
+ "type": "string",
+ "description": "Topic ID.",
+ "x-example": "5e5ea5c16897e"
+ },
+ "userName": {
+ "type": "string",
+ "description": "User Name.",
+ "x-example": "Aegon Targaryen"
+ },
+ "topicId": {
+ "type": "string",
+ "description": "Topic ID.",
+ "x-example": "259125845563242502"
+ },
+ "providerType": {
+ "type": "string",
+ "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.",
+ "x-example": "email"
+ }
+ },
+ "required": [
+ "$id",
+ "$createdAt",
+ "$updatedAt",
+ "targetId",
+ "target",
+ "userId",
+ "userName",
+ "topicId",
+ "providerType"
+ ],
+ "example": {
+ "$id": "259125845563242502",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "targetId": "259125845563242502",
+ "target": {
+ "$id": "259125845563242502",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "providerType": "email",
+ "providerId": "259125845563242502",
+ "name": "ageon-app-email",
+ "identifier": "random-mail@email.org",
+ "userId": "5e5ea5c16897e"
+ },
+ "userId": "5e5ea5c16897e",
+ "userName": "Aegon Targaryen",
+ "topicId": "259125845563242502",
+ "providerType": "email"
+ }
+ },
+ "target": {
+ "description": "Target",
+ "type": "object",
+ "properties": {
+ "$id": {
+ "type": "string",
+ "description": "Target ID.",
+ "x-example": "259125845563242502"
+ },
+ "$createdAt": {
+ "type": "string",
+ "description": "Target creation time in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "$updatedAt": {
+ "type": "string",
+ "description": "Target update date in ISO 8601 format.",
+ "x-example": "2020-10-15T06:38:00.000+00:00"
+ },
+ "name": {
+ "type": "string",
+ "description": "Target Name.",
+ "x-example": "Apple iPhone 12"
+ },
+ "userId": {
+ "type": "string",
+ "description": "User ID.",
+ "x-example": "259125845563242502"
+ },
+ "providerId": {
+ "type": "string",
+ "description": "Provider ID.",
+ "x-example": "259125845563242502",
+ "nullable": true
+ },
+ "providerType": {
+ "type": "string",
+ "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.",
+ "x-example": "email"
+ },
+ "identifier": {
+ "type": "string",
+ "description": "The target identifier.",
+ "x-example": "token"
+ },
+ "expired": {
+ "type": "boolean",
+ "description": "Is the target expired.",
+ "x-example": false
+ }
+ },
+ "required": [
+ "$id",
+ "$createdAt",
+ "$updatedAt",
+ "name",
+ "userId",
+ "providerType",
+ "identifier",
+ "expired"
+ ],
+ "example": {
+ "$id": "259125845563242502",
+ "$createdAt": "2020-10-15T06:38:00.000+00:00",
+ "$updatedAt": "2020-10-15T06:38:00.000+00:00",
+ "name": "Apple iPhone 12",
+ "userId": "259125845563242502",
+ "providerId": "259125845563242502",
+ "providerType": "email",
+ "identifier": "token",
+ "expired": false
+ }
+ }
+ },
+ "securitySchemes": {
+ "Project": {
+ "type": "apiKey",
+ "name": "X-Appwrite-Project",
+ "description": "Your project ID",
+ "in": "header",
+ "x-appwrite": {
+ "demo": ""
+ }
+ },
+ "JWT": {
+ "type": "apiKey",
+ "name": "X-Appwrite-JWT",
+ "description": "Your secret JSON Web Token",
+ "in": "header"
+ },
+ "Locale": {
+ "type": "apiKey",
+ "name": "X-Appwrite-Locale",
+ "description": "",
+ "in": "header",
+ "x-appwrite": {
+ "demo": "en"
+ }
+ },
+ "Session": {
+ "type": "apiKey",
+ "name": "X-Appwrite-Session",
+ "description": "The user session to authenticate with",
+ "in": "header"
+ },
+ "DevKey": {
+ "type": "apiKey",
+ "name": "X-Appwrite-Dev-Key",
+ "description": "Your secret dev API key",
+ "in": "header"
+ }
+ }
+ },
+ "externalDocs": {
+ "description": "Full API docs, specs and tutorials",
+ "url": "https:\/\/appwrite.io\/docs"
+ }
+}
\ No newline at end of file
diff --git a/app/config/specs/open-api3-1.8.x-console.json b/app/config/specs/open-api3-1.8.x-console.json
new file mode 100644
index 0000000000..ab36ae475c
--- /dev/null
+++ b/app/config/specs/open-api3-1.8.x-console.json
@@ -0,0 +1,57075 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "version": "1.8.0",
+ "title": "Appwrite",
+ "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)",
+ "termsOfService": "https:\/\/appwrite.io\/policy\/terms",
+ "contact": {
+ "name": "Appwrite Team",
+ "url": "https:\/\/appwrite.io\/support",
+ "email": "team@appwrite.io"
+ },
+ "license": {
+ "name": "BSD-3-Clause",
+ "url": "https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE"
+ }
+ },
+ "servers": [
+ {
+ "url": "https:\/\/cloud.appwrite.io\/v1"
+ },
+ {
+ "url": "https:\/\/.cloud.appwrite.io\/v1"
+ }
+ ],
+ "paths": {
+ "\/account": {
+ "get": {
+ "summary": "Get account",
+ "operationId": "accountGet",
+ "tags": [
+ "account"
+ ],
+ "description": "Get the currently logged in user.",
+ "responses": {
+ "200": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "get",
+ "group": "account",
+ "weight": 10,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/get.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ]
+ },
+ "post": {
+ "summary": "Create account",
+ "operationId": "accountCreate",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailSession).",
+ "responses": {
+ "201": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "create",
+ "group": "account",
+ "weight": 9,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "x-example": ""
+ },
+ "email": {
+ "type": "string",
+ "description": "User email.",
+ "x-example": "email@example.com"
+ },
+ "password": {
+ "type": "string",
+ "description": "New user password. Must be between 8 and 256 chars.",
+ "x-example": null
+ },
+ "name": {
+ "type": "string",
+ "description": "User name. Max length: 128 chars.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "userId",
+ "email",
+ "password"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "summary": "Delete account",
+ "operationId": "accountDelete",
+ "tags": [
+ "account"
+ ],
+ "description": "Delete the currently logged in user.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "delete",
+ "group": "account",
+ "weight": 11,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/delete.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "console"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ]
+ }
+ },
+ "\/account\/email": {
+ "patch": {
+ "summary": "Update email",
+ "operationId": "accountUpdateEmail",
+ "tags": [
+ "account"
+ ],
+ "description": "Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n",
+ "responses": {
+ "200": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateEmail",
+ "group": "account",
+ "weight": 35,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-email.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-email.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "User email.",
+ "x-example": "email@example.com"
+ },
+ "password": {
+ "type": "string",
+ "description": "User password. Must be at least 8 chars.",
+ "x-example": "password"
+ }
+ },
+ "required": [
+ "email",
+ "password"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/identities": {
+ "get": {
+ "summary": "List identities",
+ "operationId": "accountListIdentities",
+ "tags": [
+ "account"
+ ],
+ "description": "Get the list of identities for the currently logged in user.",
+ "responses": {
+ "200": {
+ "description": "Identities List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/identityList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "listIdentities",
+ "group": "identities",
+ "weight": 58,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/list-identities.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/list-identities.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "queries",
+ "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, provider, providerUid, providerEmail, providerAccessTokenExpiry",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/account\/identities\/{identityId}": {
+ "delete": {
+ "summary": "Delete identity",
+ "operationId": "accountDeleteIdentity",
+ "tags": [
+ "account"
+ ],
+ "description": "Delete an identity by its unique ID.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "deleteIdentity",
+ "group": "identities",
+ "weight": 59,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/delete-identity.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-identity.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "identityId",
+ "description": "Identity ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ }
+ },
+ "\/account\/jwts": {
+ "post": {
+ "summary": "Create JWT",
+ "operationId": "accountCreateJWT",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to create a JSON Web Token. You can use the resulting JWT to authenticate on behalf of the current user when working with the Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame.",
+ "responses": {
+ "201": {
+ "description": "JWT",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/jwt"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createJWT",
+ "group": "tokens",
+ "weight": 30,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-jwt.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-jwt.md",
+ "rate-limit": 100,
+ "rate-time": 3600,
+ "rate-key": "url:{url},userId:{userId}",
+ "scope": "account",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ]
+ }
+ },
+ "\/account\/logs": {
+ "get": {
+ "summary": "List logs",
+ "operationId": "accountListLogs",
+ "tags": [
+ "account"
+ ],
+ "description": "Get the list of latest security activity logs for the currently logged in user. Each log returns user IP address, location and date and time of log.",
+ "responses": {
+ "200": {
+ "description": "Logs List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/logList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "listLogs",
+ "group": "logs",
+ "weight": 32,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/list-logs.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/list-logs.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "queries",
+ "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/account\/mfa": {
+ "patch": {
+ "summary": "Update MFA",
+ "operationId": "accountUpdateMFA",
+ "tags": [
+ "account"
+ ],
+ "description": "Enable or disable MFA on an account.",
+ "responses": {
+ "200": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateMFA",
+ "group": "mfa",
+ "weight": 45,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-mfa.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-mfa.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "mfa": {
+ "type": "boolean",
+ "description": "Enable or disable MFA.",
+ "x-example": false
+ }
+ },
+ "required": [
+ "mfa"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/mfa\/authenticators\/{type}": {
+ "post": {
+ "summary": "Create authenticator",
+ "operationId": "accountCreateMfaAuthenticator",
+ "tags": [
+ "account"
+ ],
+ "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.",
+ "responses": {
+ "200": {
+ "description": "MFAType",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/mfaType"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "createMfaAuthenticator",
+ "group": "mfa",
+ "weight": 47,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-mfa-authenticator.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-mfa-authenticator.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.createMFAAuthenticator"
+ },
+ "methods": [
+ {
+ "name": "createMfaAuthenticator",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "type"
+ ],
+ "required": [
+ "type"
+ ],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/mfaType"
+ }
+ ],
+ "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.",
+ "demo": "account\/create-mfa-authenticator.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.createMFAAuthenticator"
+ }
+ },
+ {
+ "name": "createMFAAuthenticator",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "type"
+ ],
+ "required": [
+ "type"
+ ],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/mfaType"
+ }
+ ],
+ "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.",
+ "demo": "account\/create-mfa-authenticator.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "type",
+ "description": "Type of authenticator. Must be `totp`",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": "totp",
+ "enum": [
+ "totp"
+ ],
+ "x-enum-name": "AuthenticatorType",
+ "x-enum-keys": []
+ },
+ "in": "path"
+ }
+ ]
+ },
+ "put": {
+ "summary": "Update authenticator (confirmation)",
+ "operationId": "accountUpdateMfaAuthenticator",
+ "tags": [
+ "account"
+ ],
+ "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.",
+ "responses": {
+ "200": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "updateMfaAuthenticator",
+ "group": "mfa",
+ "weight": 48,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-mfa-authenticator.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-mfa-authenticator.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.updateMFAAuthenticator"
+ },
+ "methods": [
+ {
+ "name": "updateMfaAuthenticator",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "type",
+ "otp"
+ ],
+ "required": [
+ "type",
+ "otp"
+ ],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/user"
+ }
+ ],
+ "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.",
+ "demo": "account\/update-mfa-authenticator.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.updateMFAAuthenticator"
+ }
+ },
+ {
+ "name": "updateMFAAuthenticator",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "type",
+ "otp"
+ ],
+ "required": [
+ "type",
+ "otp"
+ ],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/user"
+ }
+ ],
+ "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.",
+ "demo": "account\/update-mfa-authenticator.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "type",
+ "description": "Type of authenticator.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": "totp",
+ "enum": [
+ "totp"
+ ],
+ "x-enum-name": "AuthenticatorType",
+ "x-enum-keys": []
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "otp": {
+ "type": "string",
+ "description": "Valid verification token.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "otp"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "summary": "Delete authenticator",
+ "operationId": "accountDeleteMfaAuthenticator",
+ "tags": [
+ "account"
+ ],
+ "description": "Delete an authenticator for a user by ID.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "deleteMfaAuthenticator",
+ "group": "mfa",
+ "weight": 52,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/delete-mfa-authenticator.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-mfa-authenticator.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.deleteMFAAuthenticator"
+ },
+ "methods": [
+ {
+ "name": "deleteMfaAuthenticator",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "type"
+ ],
+ "required": [
+ "type"
+ ],
+ "responses": [
+ {
+ "code": 204
+ }
+ ],
+ "description": "Delete an authenticator for a user by ID.",
+ "demo": "account\/delete-mfa-authenticator.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.deleteMFAAuthenticator"
+ }
+ },
+ {
+ "name": "deleteMFAAuthenticator",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "type"
+ ],
+ "required": [
+ "type"
+ ],
+ "responses": [
+ {
+ "code": 204
+ }
+ ],
+ "description": "Delete an authenticator for a user by ID.",
+ "demo": "account\/delete-mfa-authenticator.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "type",
+ "description": "Type of authenticator.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": "totp",
+ "enum": [
+ "totp"
+ ],
+ "x-enum-name": "AuthenticatorType",
+ "x-enum-keys": []
+ },
+ "in": "path"
+ }
+ ]
+ }
+ },
+ "\/account\/mfa\/challenge": {
+ "post": {
+ "summary": "Create MFA challenge",
+ "operationId": "accountCreateMfaChallenge",
+ "tags": [
+ "account"
+ ],
+ "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.",
+ "responses": {
+ "201": {
+ "description": "MFA Challenge",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/mfaChallenge"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "createMfaChallenge",
+ "group": "mfa",
+ "weight": 53,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-mfa-challenge.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-mfa-challenge.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},userId:{userId}",
+ "scope": "account",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.createMFAChallenge"
+ },
+ "methods": [
+ {
+ "name": "createMfaChallenge",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "factor"
+ ],
+ "required": [
+ "factor"
+ ],
+ "responses": [
+ {
+ "code": 201,
+ "model": "#\/components\/schemas\/mfaChallenge"
+ }
+ ],
+ "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.",
+ "demo": "account\/create-mfa-challenge.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.createMFAChallenge"
+ }
+ },
+ {
+ "name": "createMFAChallenge",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "factor"
+ ],
+ "required": [
+ "factor"
+ ],
+ "responses": [
+ {
+ "code": 201,
+ "model": "#\/components\/schemas\/mfaChallenge"
+ }
+ ],
+ "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.",
+ "demo": "account\/create-mfa-challenge.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "factor": {
+ "type": "string",
+ "description": "Factor used for verification. Must be one of following: `email`, `phone`, `totp`, `recoveryCode`.",
+ "x-example": "email",
+ "enum": [
+ "email",
+ "phone",
+ "totp",
+ "recoverycode"
+ ],
+ "x-enum-name": "AuthenticationFactor",
+ "x-enum-keys": []
+ }
+ },
+ "required": [
+ "factor"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "put": {
+ "summary": "Update MFA challenge (confirmation)",
+ "operationId": "accountUpdateMfaChallenge",
+ "tags": [
+ "account"
+ ],
+ "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.",
+ "responses": {
+ "200": {
+ "description": "Session",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/session"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "updateMfaChallenge",
+ "group": "mfa",
+ "weight": 54,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-mfa-challenge.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-mfa-challenge.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},challengeId:{param-challengeId}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.updateMFAChallenge"
+ },
+ "methods": [
+ {
+ "name": "updateMfaChallenge",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "challengeId",
+ "otp"
+ ],
+ "required": [
+ "challengeId",
+ "otp"
+ ],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/session"
+ }
+ ],
+ "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.",
+ "demo": "account\/update-mfa-challenge.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.updateMFAChallenge"
+ }
+ },
+ {
+ "name": "updateMFAChallenge",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "challengeId",
+ "otp"
+ ],
+ "required": [
+ "challengeId",
+ "otp"
+ ],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/session"
+ }
+ ],
+ "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.",
+ "demo": "account\/update-mfa-challenge.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "challengeId": {
+ "type": "string",
+ "description": "ID of the challenge.",
+ "x-example": ""
+ },
+ "otp": {
+ "type": "string",
+ "description": "Valid verification token.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "challengeId",
+ "otp"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/mfa\/factors": {
+ "get": {
+ "summary": "List factors",
+ "operationId": "accountListMfaFactors",
+ "tags": [
+ "account"
+ ],
+ "description": "List the factors available on the account to be used as a MFA challange.",
+ "responses": {
+ "200": {
+ "description": "MFAFactors",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/mfaFactors"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "listMfaFactors",
+ "group": "mfa",
+ "weight": 46,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/list-mfa-factors.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/list-mfa-factors.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.listMFAFactors"
+ },
+ "methods": [
+ {
+ "name": "listMfaFactors",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [],
+ "required": [],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/mfaFactors"
+ }
+ ],
+ "description": "List the factors available on the account to be used as a MFA challange.",
+ "demo": "account\/list-mfa-factors.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.listMFAFactors"
+ }
+ },
+ {
+ "name": "listMFAFactors",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [],
+ "required": [],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/mfaFactors"
+ }
+ ],
+ "description": "List the factors available on the account to be used as a MFA challange.",
+ "demo": "account\/list-mfa-factors.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ]
+ }
+ },
+ "\/account\/mfa\/recovery-codes": {
+ "get": {
+ "summary": "List MFA recovery codes",
+ "operationId": "accountGetMfaRecoveryCodes",
+ "tags": [
+ "account"
+ ],
+ "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.",
+ "responses": {
+ "200": {
+ "description": "MFA Recovery Codes",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/mfaRecoveryCodes"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "getMfaRecoveryCodes",
+ "group": "mfa",
+ "weight": 51,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/get-mfa-recovery-codes.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-mfa-recovery-codes.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.getMFARecoveryCodes"
+ },
+ "methods": [
+ {
+ "name": "getMfaRecoveryCodes",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [],
+ "required": [],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/mfaRecoveryCodes"
+ }
+ ],
+ "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.",
+ "demo": "account\/get-mfa-recovery-codes.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.getMFARecoveryCodes"
+ }
+ },
+ {
+ "name": "getMFARecoveryCodes",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [],
+ "required": [],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/mfaRecoveryCodes"
+ }
+ ],
+ "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.",
+ "demo": "account\/get-mfa-recovery-codes.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ]
+ },
+ "post": {
+ "summary": "Create MFA recovery codes",
+ "operationId": "accountCreateMfaRecoveryCodes",
+ "tags": [
+ "account"
+ ],
+ "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.",
+ "responses": {
+ "201": {
+ "description": "MFA Recovery Codes",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/mfaRecoveryCodes"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "createMfaRecoveryCodes",
+ "group": "mfa",
+ "weight": 49,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-mfa-recovery-codes.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-mfa-recovery-codes.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.createMFARecoveryCodes"
+ },
+ "methods": [
+ {
+ "name": "createMfaRecoveryCodes",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [],
+ "required": [],
+ "responses": [
+ {
+ "code": 201,
+ "model": "#\/components\/schemas\/mfaRecoveryCodes"
+ }
+ ],
+ "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.",
+ "demo": "account\/create-mfa-recovery-codes.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.createMFARecoveryCodes"
+ }
+ },
+ {
+ "name": "createMFARecoveryCodes",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [],
+ "required": [],
+ "responses": [
+ {
+ "code": 201,
+ "model": "#\/components\/schemas\/mfaRecoveryCodes"
+ }
+ ],
+ "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.",
+ "demo": "account\/create-mfa-recovery-codes.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ]
+ },
+ "patch": {
+ "summary": "Update MFA recovery codes (regenerate)",
+ "operationId": "accountUpdateMfaRecoveryCodes",
+ "tags": [
+ "account"
+ ],
+ "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.",
+ "responses": {
+ "200": {
+ "description": "MFA Recovery Codes",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/mfaRecoveryCodes"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "updateMfaRecoveryCodes",
+ "group": "mfa",
+ "weight": 50,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-mfa-recovery-codes.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-mfa-recovery-codes.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.updateMFARecoveryCodes"
+ },
+ "methods": [
+ {
+ "name": "updateMfaRecoveryCodes",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [],
+ "required": [],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/mfaRecoveryCodes"
+ }
+ ],
+ "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.",
+ "demo": "account\/update-mfa-recovery-codes.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "account.updateMFARecoveryCodes"
+ }
+ },
+ {
+ "name": "updateMFARecoveryCodes",
+ "namespace": "account",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [],
+ "required": [],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/mfaRecoveryCodes"
+ }
+ ],
+ "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.",
+ "demo": "account\/update-mfa-recovery-codes.md"
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ]
+ }
+ },
+ "\/account\/name": {
+ "patch": {
+ "summary": "Update name",
+ "operationId": "accountUpdateName",
+ "tags": [
+ "account"
+ ],
+ "description": "Update currently logged in user account name.",
+ "responses": {
+ "200": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateName",
+ "group": "account",
+ "weight": 33,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-name.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-name.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "User name. Max length: 128 chars.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "name"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/password": {
+ "patch": {
+ "summary": "Update password",
+ "operationId": "accountUpdatePassword",
+ "tags": [
+ "account"
+ ],
+ "description": "Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth, Team Invites and Magic URL, oldPassword is optional.",
+ "responses": {
+ "200": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updatePassword",
+ "group": "account",
+ "weight": 34,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-password.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-password.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "password": {
+ "type": "string",
+ "description": "New user password. Must be at least 8 chars.",
+ "x-example": null
+ },
+ "oldPassword": {
+ "type": "string",
+ "description": "Current user password. Must be at least 8 chars.",
+ "x-example": "password"
+ }
+ },
+ "required": [
+ "password"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/phone": {
+ "patch": {
+ "summary": "Update phone",
+ "operationId": "accountUpdatePhone",
+ "tags": [
+ "account"
+ ],
+ "description": "Update the currently logged in user's phone number. After updating the phone number, the phone verification status will be reset. A confirmation SMS is not sent automatically, however you can use the [POST \/account\/verification\/phone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createPhoneVerification) endpoint to send a confirmation SMS.",
+ "responses": {
+ "200": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updatePhone",
+ "group": "account",
+ "weight": 36,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-phone.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-phone.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "phone": {
+ "type": "string",
+ "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.",
+ "x-example": "+12065550100"
+ },
+ "password": {
+ "type": "string",
+ "description": "User password. Must be at least 8 chars.",
+ "x-example": "password"
+ }
+ },
+ "required": [
+ "phone",
+ "password"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/prefs": {
+ "get": {
+ "summary": "Get account preferences",
+ "operationId": "accountGetPrefs",
+ "tags": [
+ "account"
+ ],
+ "description": "Get the preferences as a key-value object for the currently logged in user.",
+ "responses": {
+ "200": {
+ "description": "Preferences",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/preferences"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getPrefs",
+ "group": "account",
+ "weight": 31,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/get-prefs.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-prefs.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ]
+ },
+ "patch": {
+ "summary": "Update preferences",
+ "operationId": "accountUpdatePrefs",
+ "tags": [
+ "account"
+ ],
+ "description": "Update currently logged in user account preferences. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.",
+ "responses": {
+ "200": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updatePrefs",
+ "group": "account",
+ "weight": 37,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-prefs.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-prefs.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "prefs": {
+ "type": "object",
+ "description": "Prefs key-value JSON object.",
+ "x-example": "{\"language\":\"en\",\"timezone\":\"UTC\",\"darkTheme\":true}"
+ }
+ },
+ "required": [
+ "prefs"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/recovery": {
+ "post": {
+ "summary": "Create password recovery",
+ "operationId": "accountCreateRecovery",
+ "tags": [
+ "account"
+ ],
+ "description": "Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.",
+ "responses": {
+ "201": {
+ "description": "Token",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/token"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createRecovery",
+ "group": "recovery",
+ "weight": 39,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-recovery.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-recovery.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": [
+ "url:{url},email:{param-email}",
+ "url:{url},ip:{ip}"
+ ],
+ "scope": "sessions.write",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "User email.",
+ "x-example": "email@example.com"
+ },
+ "url": {
+ "type": "string",
+ "description": "URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.",
+ "x-example": "https:\/\/example.com"
+ }
+ },
+ "required": [
+ "email",
+ "url"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "put": {
+ "summary": "Update password recovery (confirmation)",
+ "operationId": "accountUpdateRecovery",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.",
+ "responses": {
+ "200": {
+ "description": "Token",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/token"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateRecovery",
+ "group": "recovery",
+ "weight": 40,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-recovery.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-recovery.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},userId:{param-userId}",
+ "scope": "sessions.write",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "User ID.",
+ "x-example": ""
+ },
+ "secret": {
+ "type": "string",
+ "description": "Valid reset token.",
+ "x-example": ""
+ },
+ "password": {
+ "type": "string",
+ "description": "New user password. Must be between 8 and 256 chars.",
+ "x-example": null
+ }
+ },
+ "required": [
+ "userId",
+ "secret",
+ "password"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/sessions": {
+ "get": {
+ "summary": "List sessions",
+ "operationId": "accountListSessions",
+ "tags": [
+ "account"
+ ],
+ "description": "Get the list of active sessions across different devices for the currently logged in user.",
+ "responses": {
+ "200": {
+ "description": "Sessions List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/sessionList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "listSessions",
+ "group": "sessions",
+ "weight": 12,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/list-sessions.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/list-sessions.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ]
+ },
+ "delete": {
+ "summary": "Delete sessions",
+ "operationId": "accountDeleteSessions",
+ "tags": [
+ "account"
+ ],
+ "description": "Delete all sessions from the user account and remove any sessions cookies from the end client.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "deleteSessions",
+ "group": "sessions",
+ "weight": 13,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/delete-sessions.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-sessions.md",
+ "rate-limit": 100,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ]
+ }
+ },
+ "\/account\/sessions\/anonymous": {
+ "post": {
+ "summary": "Create anonymous session",
+ "operationId": "accountCreateAnonymousSession",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmail) or create an [OAuth2 session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#CreateOAuth2Session).",
+ "responses": {
+ "201": {
+ "description": "Session",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/session"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createAnonymousSession",
+ "group": "sessions",
+ "weight": 18,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-anonymous-session.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-anonymous.md",
+ "rate-limit": 50,
+ "rate-time": 3600,
+ "rate-key": "ip:{ip}",
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ]
+ }
+ },
+ "\/account\/sessions\/email": {
+ "post": {
+ "summary": "Create email password session",
+ "operationId": "accountCreateEmailPasswordSession",
+ "tags": [
+ "account"
+ ],
+ "description": "Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).",
+ "responses": {
+ "201": {
+ "description": "Session",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/session"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createEmailPasswordSession",
+ "group": "sessions",
+ "weight": 17,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-email-password-session.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-email-password.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},email:{param-email}",
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "User email.",
+ "x-example": "email@example.com"
+ },
+ "password": {
+ "type": "string",
+ "description": "User password. Must be at least 8 chars.",
+ "x-example": "password"
+ }
+ },
+ "required": [
+ "email",
+ "password"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/sessions\/magic-url": {
+ "put": {
+ "summary": "Update magic URL session",
+ "operationId": "accountUpdateMagicURLSession",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.",
+ "responses": {
+ "201": {
+ "description": "Session",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/session"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "updateMagicURLSession",
+ "group": "sessions",
+ "weight": 27,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-magic-url-session.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "ip:{ip},userId:{param-userId}",
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.6.0",
+ "replaceWith": "account.createSession"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "x-example": ""
+ },
+ "secret": {
+ "type": "string",
+ "description": "Valid verification token.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "userId",
+ "secret"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/sessions\/oauth2\/{provider}": {
+ "get": {
+ "summary": "Create OAuth2 session",
+ "operationId": "accountCreateOAuth2Session",
+ "tags": [
+ "account"
+ ],
+ "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n",
+ "responses": {
+ "301": {
+ "description": "File"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createOAuth2Session",
+ "group": "sessions",
+ "weight": 20,
+ "cookies": false,
+ "type": "webAuth",
+ "demo": "account\/create-o-auth-2-session.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session-oauth2.md",
+ "rate-limit": 50,
+ "rate-time": 3600,
+ "rate-key": "ip:{ip}",
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "provider",
+ "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, auth0, authentik, autodesk, bitbucket, bitly, box, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, github, gitlab, google, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, yahoo, yammer, yandex, zoho, zoom.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": "amazon",
+ "enum": [
+ "amazon",
+ "apple",
+ "auth0",
+ "authentik",
+ "autodesk",
+ "bitbucket",
+ "bitly",
+ "box",
+ "dailymotion",
+ "discord",
+ "disqus",
+ "dropbox",
+ "etsy",
+ "facebook",
+ "figma",
+ "github",
+ "gitlab",
+ "google",
+ "linkedin",
+ "microsoft",
+ "notion",
+ "oidc",
+ "okta",
+ "paypal",
+ "paypalSandbox",
+ "podio",
+ "salesforce",
+ "slack",
+ "spotify",
+ "stripe",
+ "tradeshift",
+ "tradeshiftBox",
+ "twitch",
+ "wordpress",
+ "yahoo",
+ "yammer",
+ "yandex",
+ "zoho",
+ "zoom",
+ "mock"
+ ],
+ "x-enum-name": "OAuthProvider",
+ "x-enum-keys": []
+ },
+ "in": "path"
+ },
+ {
+ "name": "success",
+ "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "format": "url",
+ "x-example": "https:\/\/example.com",
+ "default": ""
+ },
+ "in": "query"
+ },
+ {
+ "name": "failure",
+ "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "format": "url",
+ "x-example": "https:\/\/example.com",
+ "default": ""
+ },
+ "in": "query"
+ },
+ {
+ "name": "scopes",
+ "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/account\/sessions\/phone": {
+ "put": {
+ "summary": "Update phone session",
+ "operationId": "accountUpdatePhoneSession",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.",
+ "responses": {
+ "201": {
+ "description": "Session",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/session"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "updatePhoneSession",
+ "group": "sessions",
+ "weight": 28,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-phone-session.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "ip:{ip},userId:{param-userId}",
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.6.0",
+ "replaceWith": "account.createSession"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "x-example": ""
+ },
+ "secret": {
+ "type": "string",
+ "description": "Valid verification token.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "userId",
+ "secret"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/sessions\/token": {
+ "post": {
+ "summary": "Create session",
+ "operationId": "accountCreateSession",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.",
+ "responses": {
+ "201": {
+ "description": "Session",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/session"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createSession",
+ "group": "sessions",
+ "weight": 19,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-session.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-session.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "ip:{ip},userId:{param-userId}",
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "x-example": ""
+ },
+ "secret": {
+ "type": "string",
+ "description": "Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "userId",
+ "secret"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/sessions\/{sessionId}": {
+ "get": {
+ "summary": "Get session",
+ "operationId": "accountGetSession",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.",
+ "responses": {
+ "200": {
+ "description": "Session",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/session"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getSession",
+ "group": "sessions",
+ "weight": 14,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/get-session.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/get-session.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "sessionId",
+ "description": "Session ID. Use the string 'current' to get the current device session.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ },
+ "patch": {
+ "summary": "Update session",
+ "operationId": "accountUpdateSession",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to extend a session's length. Extending a session is useful when session expiry is short. If the session was created using an OAuth provider, this endpoint refreshes the access token from the provider.",
+ "responses": {
+ "200": {
+ "description": "Session",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/session"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateSession",
+ "group": "sessions",
+ "weight": 16,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-session.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-session.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "sessionId",
+ "description": "Session ID. Use the string 'current' to update the current device session.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ },
+ "delete": {
+ "summary": "Delete session",
+ "operationId": "accountDeleteSession",
+ "tags": [
+ "account"
+ ],
+ "description": "Logout the user. Use 'current' as the session ID to logout on this device, use a session ID to logout on another device. If you're looking to logout the user on all devices, use [Delete Sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#deleteSessions) instead.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "deleteSession",
+ "group": "sessions",
+ "weight": 15,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/delete-session.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-session.md",
+ "rate-limit": 100,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "sessionId",
+ "description": "Session ID. Use the string 'current' to delete the current device session.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ }
+ },
+ "\/account\/status": {
+ "patch": {
+ "summary": "Update status",
+ "operationId": "accountUpdateStatus",
+ "tags": [
+ "account"
+ ],
+ "description": "Block the currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. To completely delete a user, use the Users API instead.",
+ "responses": {
+ "200": {
+ "description": "User",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/user"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateStatus",
+ "group": "account",
+ "weight": 38,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-status.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-status.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ]
+ }
+ },
+ "\/account\/targets\/push": {
+ "post": {
+ "summary": "Create push target",
+ "operationId": "accountCreatePushTarget",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to register a device for push notifications. Provide a target ID (custom or generated using ID.unique()), a device identifier (usually a device token), and optionally specify which provider should send notifications to this target. The target is automatically linked to the current session and includes device information like brand and model.",
+ "responses": {
+ "201": {
+ "description": "Target",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/target"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createPushTarget",
+ "group": "pushTargets",
+ "weight": 55,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-push-target.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-push-target.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "targets.write",
+ "platforms": [
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "targetId": {
+ "type": "string",
+ "description": "Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "x-example": ""
+ },
+ "identifier": {
+ "type": "string",
+ "description": "The target identifier (token, email, phone etc.)",
+ "x-example": ""
+ },
+ "providerId": {
+ "type": "string",
+ "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "targetId",
+ "identifier"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/targets\/{targetId}\/push": {
+ "put": {
+ "summary": "Update push target",
+ "operationId": "accountUpdatePushTarget",
+ "tags": [
+ "account"
+ ],
+ "description": "Update the currently logged in user's push notification target. You can modify the target's identifier (device token) and provider ID (token, email, phone etc.). The target must exist and belong to the current user. If you change the provider ID, notifications will be sent through the new messaging provider instead.",
+ "responses": {
+ "200": {
+ "description": "Target",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/target"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updatePushTarget",
+ "group": "pushTargets",
+ "weight": 56,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-push-target.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-push-target.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "targets.write",
+ "platforms": [
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "targetId",
+ "description": "Target ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "identifier": {
+ "type": "string",
+ "description": "The target identifier (token, email, phone etc.)",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "identifier"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "summary": "Delete push target",
+ "operationId": "accountDeletePushTarget",
+ "tags": [
+ "account"
+ ],
+ "description": "Delete a push notification target for the currently logged in user. After deletion, the device will no longer receive push notifications. The target must exist and belong to the current user.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "deletePushTarget",
+ "group": "pushTargets",
+ "weight": 57,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/delete-push-target.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/delete-push-target.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "targets.write",
+ "platforms": [
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "targetId",
+ "description": "Target ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ }
+ },
+ "\/account\/tokens\/email": {
+ "post": {
+ "summary": "Create email token (OTP)",
+ "operationId": "accountCreateEmailToken",
+ "tags": [
+ "account"
+ ],
+ "description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n",
+ "responses": {
+ "201": {
+ "description": "Token",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/token"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createEmailToken",
+ "group": "tokens",
+ "weight": 26,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-email-token.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-token-email.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": [
+ "url:{url},email:{param-email}",
+ "url:{url},ip:{ip}"
+ ],
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
+ "x-example": ""
+ },
+ "email": {
+ "type": "string",
+ "description": "User email.",
+ "x-example": "email@example.com"
+ },
+ "phrase": {
+ "type": "boolean",
+ "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.",
+ "x-example": false
+ }
+ },
+ "required": [
+ "userId",
+ "email"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/tokens\/magic-url": {
+ "post": {
+ "summary": "Create magic URL token",
+ "operationId": "accountCreateMagicURLToken",
+ "tags": [
+ "account"
+ ],
+ "description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not been registered, a new user will be created. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n",
+ "responses": {
+ "201": {
+ "description": "Token",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/token"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createMagicURLToken",
+ "group": "tokens",
+ "weight": 25,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-magic-url-token.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-token-magic-url.md",
+ "rate-limit": 60,
+ "rate-time": 3600,
+ "rate-key": [
+ "url:{url},email:{param-email}",
+ "url:{url},ip:{ip}"
+ ],
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
+ "x-example": ""
+ },
+ "email": {
+ "type": "string",
+ "description": "User email.",
+ "x-example": "email@example.com"
+ },
+ "url": {
+ "type": "string",
+ "description": "URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.",
+ "x-example": "https:\/\/example.com"
+ },
+ "phrase": {
+ "type": "boolean",
+ "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.",
+ "x-example": false
+ }
+ },
+ "required": [
+ "userId",
+ "email"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/tokens\/oauth2\/{provider}": {
+ "get": {
+ "summary": "Create OAuth2 token",
+ "operationId": "accountCreateOAuth2Token",
+ "tags": [
+ "account"
+ ],
+ "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed. \n\nIf authentication succeeds, `userId` and `secret` of a token will be appended to the success URL as query parameters. These can be used to create a new session using the [Create session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).",
+ "responses": {
+ "301": {
+ "description": "File"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createOAuth2Token",
+ "group": "tokens",
+ "weight": 24,
+ "cookies": false,
+ "type": "webAuth",
+ "demo": "account\/create-o-auth-2-token.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-token-oauth2.md",
+ "rate-limit": 50,
+ "rate-time": 3600,
+ "rate-key": "ip:{ip}",
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "provider",
+ "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, auth0, authentik, autodesk, bitbucket, bitly, box, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, github, gitlab, google, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, salesforce, slack, spotify, stripe, tradeshift, tradeshiftBox, twitch, wordpress, yahoo, yammer, yandex, zoho, zoom.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": "amazon",
+ "enum": [
+ "amazon",
+ "apple",
+ "auth0",
+ "authentik",
+ "autodesk",
+ "bitbucket",
+ "bitly",
+ "box",
+ "dailymotion",
+ "discord",
+ "disqus",
+ "dropbox",
+ "etsy",
+ "facebook",
+ "figma",
+ "github",
+ "gitlab",
+ "google",
+ "linkedin",
+ "microsoft",
+ "notion",
+ "oidc",
+ "okta",
+ "paypal",
+ "paypalSandbox",
+ "podio",
+ "salesforce",
+ "slack",
+ "spotify",
+ "stripe",
+ "tradeshift",
+ "tradeshiftBox",
+ "twitch",
+ "wordpress",
+ "yahoo",
+ "yammer",
+ "yandex",
+ "zoho",
+ "zoom",
+ "mock"
+ ],
+ "x-enum-name": "OAuthProvider",
+ "x-enum-keys": []
+ },
+ "in": "path"
+ },
+ {
+ "name": "success",
+ "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "format": "url",
+ "x-example": "https:\/\/example.com",
+ "default": ""
+ },
+ "in": "query"
+ },
+ {
+ "name": "failure",
+ "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "format": "url",
+ "x-example": "https:\/\/example.com",
+ "default": ""
+ },
+ "in": "query"
+ },
+ {
+ "name": "scopes",
+ "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/account\/tokens\/phone": {
+ "post": {
+ "summary": "Create phone token",
+ "operationId": "accountCreatePhoneToken",
+ "tags": [
+ "account"
+ ],
+ "description": "Sends the user an SMS with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's phone is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).",
+ "responses": {
+ "201": {
+ "description": "Token",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/token"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createPhoneToken",
+ "group": "tokens",
+ "weight": 29,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-phone-token.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-token-phone.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": [
+ "url:{url},phone:{param-phone}",
+ "url:{url},ip:{ip}"
+ ],
+ "scope": "sessions.write",
+ "platforms": [
+ "server",
+ "client"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.",
+ "x-example": ""
+ },
+ "phone": {
+ "type": "string",
+ "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.",
+ "x-example": "+12065550100"
+ }
+ },
+ "required": [
+ "userId",
+ "phone"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/verification": {
+ "post": {
+ "summary": "Create email verification",
+ "operationId": "accountCreateVerification",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n",
+ "responses": {
+ "201": {
+ "description": "Token",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/token"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createVerification",
+ "group": "verification",
+ "weight": 41,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-verification.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-email-verification.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},userId:{userId}",
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "description": "URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.",
+ "x-example": "https:\/\/example.com"
+ }
+ },
+ "required": [
+ "url"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "put": {
+ "summary": "Update email verification (confirmation)",
+ "operationId": "accountUpdateVerification",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.",
+ "responses": {
+ "200": {
+ "description": "Token",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/token"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updateVerification",
+ "group": "verification",
+ "weight": 42,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-verification.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-email-verification.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "url:{url},userId:{param-userId}",
+ "scope": "public",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "User ID.",
+ "x-example": ""
+ },
+ "secret": {
+ "type": "string",
+ "description": "Valid verification token.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "userId",
+ "secret"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/account\/verification\/phone": {
+ "post": {
+ "summary": "Create phone verification",
+ "operationId": "accountCreatePhoneVerification",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to send a verification SMS to the currently logged in user. This endpoint is meant for use after updating a user's phone number using the [accountUpdatePhone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhone) endpoint. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhoneVerification). The verification code sent to the user's phone number is valid for 15 minutes.",
+ "responses": {
+ "201": {
+ "description": "Token",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/token"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "createPhoneVerification",
+ "group": "verification",
+ "weight": 43,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/create-phone-verification.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/create-phone-verification.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": [
+ "url:{url},userId:{userId}",
+ "url:{url},ip:{ip}"
+ ],
+ "scope": "account",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ]
+ },
+ "put": {
+ "summary": "Update phone verification (confirmation)",
+ "operationId": "accountUpdatePhoneVerification",
+ "tags": [
+ "account"
+ ],
+ "description": "Use this endpoint to complete the user phone verification process. Use the **userId** and **secret** that were sent to your user's phone number to verify the user email ownership. If confirmed this route will return a 200 status code.",
+ "responses": {
+ "200": {
+ "description": "Token",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/token"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "updatePhoneVerification",
+ "group": "verification",
+ "weight": 44,
+ "cookies": false,
+ "type": "",
+ "demo": "account\/update-phone-verification.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/account\/update-phone-verification.md",
+ "rate-limit": 10,
+ "rate-time": 3600,
+ "rate-key": "userId:{param-userId}",
+ "scope": "public",
+ "platforms": [
+ "client",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "JWT": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "description": "User ID.",
+ "x-example": ""
+ },
+ "secret": {
+ "type": "string",
+ "description": "Valid verification token.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "userId",
+ "secret"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/avatars\/browsers\/{code}": {
+ "get": {
+ "summary": "Get browser icon",
+ "operationId": "avatarsGetBrowser",
+ "tags": [
+ "avatars"
+ ],
+ "description": "You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user [GET \/account\/sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getSessions) endpoint. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.",
+ "responses": {
+ "200": {
+ "description": "Image"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getBrowser",
+ "group": null,
+ "weight": 61,
+ "cookies": false,
+ "type": "location",
+ "demo": "avatars\/get-browser.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-browser.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "avatars.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "code",
+ "description": "Browser Code.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": "aa",
+ "enum": [
+ "aa",
+ "an",
+ "ch",
+ "ci",
+ "cm",
+ "cr",
+ "ff",
+ "sf",
+ "mf",
+ "ps",
+ "oi",
+ "om",
+ "op",
+ "on"
+ ],
+ "x-enum-name": "Browser",
+ "x-enum-keys": [
+ "Avant Browser",
+ "Android WebView Beta",
+ "Google Chrome",
+ "Google Chrome (iOS)",
+ "Google Chrome (Mobile)",
+ "Chromium",
+ "Mozilla Firefox",
+ "Safari",
+ "Mobile Safari",
+ "Microsoft Edge",
+ "Microsoft Edge (iOS)",
+ "Opera Mini",
+ "Opera",
+ "Opera (Next)"
+ ]
+ },
+ "in": "path"
+ },
+ {
+ "name": "width",
+ "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 100
+ },
+ "in": "query"
+ },
+ {
+ "name": "height",
+ "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 100
+ },
+ "in": "query"
+ },
+ {
+ "name": "quality",
+ "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": -1,
+ "default": -1
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/avatars\/credit-cards\/{code}": {
+ "get": {
+ "summary": "Get credit card icon",
+ "operationId": "avatarsGetCreditCard",
+ "tags": [
+ "avatars"
+ ],
+ "description": "The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n",
+ "responses": {
+ "200": {
+ "description": "Image"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getCreditCard",
+ "group": null,
+ "weight": 60,
+ "cookies": false,
+ "type": "location",
+ "demo": "avatars\/get-credit-card.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-credit-card.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "avatars.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "code",
+ "description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": "amex",
+ "enum": [
+ "amex",
+ "argencard",
+ "cabal",
+ "cencosud",
+ "diners",
+ "discover",
+ "elo",
+ "hipercard",
+ "jcb",
+ "mastercard",
+ "naranja",
+ "targeta-shopping",
+ "unionpay",
+ "visa",
+ "mir",
+ "maestro",
+ "rupay"
+ ],
+ "x-enum-name": "CreditCard",
+ "x-enum-keys": [
+ "American Express",
+ "Argencard",
+ "Cabal",
+ "Cencosud",
+ "Diners Club",
+ "Discover",
+ "Elo",
+ "Hipercard",
+ "JCB",
+ "Mastercard",
+ "Naranja",
+ "Tarjeta Shopping",
+ "Union Pay",
+ "Visa",
+ "MIR",
+ "Maestro",
+ "Rupay"
+ ]
+ },
+ "in": "path"
+ },
+ {
+ "name": "width",
+ "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 100
+ },
+ "in": "query"
+ },
+ {
+ "name": "height",
+ "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 100
+ },
+ "in": "query"
+ },
+ {
+ "name": "quality",
+ "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": -1,
+ "default": -1
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/avatars\/favicon": {
+ "get": {
+ "summary": "Get favicon",
+ "operationId": "avatarsGetFavicon",
+ "tags": [
+ "avatars"
+ ],
+ "description": "Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n\nThis endpoint does not follow HTTP redirects.",
+ "responses": {
+ "200": {
+ "description": "Image"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getFavicon",
+ "group": null,
+ "weight": 64,
+ "cookies": false,
+ "type": "location",
+ "demo": "avatars\/get-favicon.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-favicon.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "avatars.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "url",
+ "description": "Website URL which you want to fetch the favicon from.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "format": "url",
+ "x-example": "https:\/\/example.com"
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/avatars\/flags\/{code}": {
+ "get": {
+ "summary": "Get country flag",
+ "operationId": "avatarsGetFlag",
+ "tags": [
+ "avatars"
+ ],
+ "description": "You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings. Country codes follow the [ISO 3166-1](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) standard.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n",
+ "responses": {
+ "200": {
+ "description": "Image"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getFlag",
+ "group": null,
+ "weight": 62,
+ "cookies": false,
+ "type": "location",
+ "demo": "avatars\/get-flag.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-flag.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "avatars.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "code",
+ "description": "Country Code. ISO Alpha-2 country code format.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": "af",
+ "enum": [
+ "af",
+ "ao",
+ "al",
+ "ad",
+ "ae",
+ "ar",
+ "am",
+ "ag",
+ "au",
+ "at",
+ "az",
+ "bi",
+ "be",
+ "bj",
+ "bf",
+ "bd",
+ "bg",
+ "bh",
+ "bs",
+ "ba",
+ "by",
+ "bz",
+ "bo",
+ "br",
+ "bb",
+ "bn",
+ "bt",
+ "bw",
+ "cf",
+ "ca",
+ "ch",
+ "cl",
+ "cn",
+ "ci",
+ "cm",
+ "cd",
+ "cg",
+ "co",
+ "km",
+ "cv",
+ "cr",
+ "cu",
+ "cy",
+ "cz",
+ "de",
+ "dj",
+ "dm",
+ "dk",
+ "do",
+ "dz",
+ "ec",
+ "eg",
+ "er",
+ "es",
+ "ee",
+ "et",
+ "fi",
+ "fj",
+ "fr",
+ "fm",
+ "ga",
+ "gb",
+ "ge",
+ "gh",
+ "gn",
+ "gm",
+ "gw",
+ "gq",
+ "gr",
+ "gd",
+ "gt",
+ "gy",
+ "hn",
+ "hr",
+ "ht",
+ "hu",
+ "id",
+ "in",
+ "ie",
+ "ir",
+ "iq",
+ "is",
+ "il",
+ "it",
+ "jm",
+ "jo",
+ "jp",
+ "kz",
+ "ke",
+ "kg",
+ "kh",
+ "ki",
+ "kn",
+ "kr",
+ "kw",
+ "la",
+ "lb",
+ "lr",
+ "ly",
+ "lc",
+ "li",
+ "lk",
+ "ls",
+ "lt",
+ "lu",
+ "lv",
+ "ma",
+ "mc",
+ "md",
+ "mg",
+ "mv",
+ "mx",
+ "mh",
+ "mk",
+ "ml",
+ "mt",
+ "mm",
+ "me",
+ "mn",
+ "mz",
+ "mr",
+ "mu",
+ "mw",
+ "my",
+ "na",
+ "ne",
+ "ng",
+ "ni",
+ "nl",
+ "no",
+ "np",
+ "nr",
+ "nz",
+ "om",
+ "pk",
+ "pa",
+ "pe",
+ "ph",
+ "pw",
+ "pg",
+ "pl",
+ "pf",
+ "kp",
+ "pt",
+ "py",
+ "qa",
+ "ro",
+ "ru",
+ "rw",
+ "sa",
+ "sd",
+ "sn",
+ "sg",
+ "sb",
+ "sl",
+ "sv",
+ "sm",
+ "so",
+ "rs",
+ "ss",
+ "st",
+ "sr",
+ "sk",
+ "si",
+ "se",
+ "sz",
+ "sc",
+ "sy",
+ "td",
+ "tg",
+ "th",
+ "tj",
+ "tm",
+ "tl",
+ "to",
+ "tt",
+ "tn",
+ "tr",
+ "tv",
+ "tz",
+ "ug",
+ "ua",
+ "uy",
+ "us",
+ "uz",
+ "va",
+ "vc",
+ "ve",
+ "vn",
+ "vu",
+ "ws",
+ "ye",
+ "za",
+ "zm",
+ "zw"
+ ],
+ "x-enum-name": "Flag",
+ "x-enum-keys": [
+ "Afghanistan",
+ "Angola",
+ "Albania",
+ "Andorra",
+ "United Arab Emirates",
+ "Argentina",
+ "Armenia",
+ "Antigua and Barbuda",
+ "Australia",
+ "Austria",
+ "Azerbaijan",
+ "Burundi",
+ "Belgium",
+ "Benin",
+ "Burkina Faso",
+ "Bangladesh",
+ "Bulgaria",
+ "Bahrain",
+ "Bahamas",
+ "Bosnia and Herzegovina",
+ "Belarus",
+ "Belize",
+ "Bolivia",
+ "Brazil",
+ "Barbados",
+ "Brunei Darussalam",
+ "Bhutan",
+ "Botswana",
+ "Central African Republic",
+ "Canada",
+ "Switzerland",
+ "Chile",
+ "China",
+ "C\u00f4te d'Ivoire",
+ "Cameroon",
+ "Democratic Republic of the Congo",
+ "Republic of the Congo",
+ "Colombia",
+ "Comoros",
+ "Cape Verde",
+ "Costa Rica",
+ "Cuba",
+ "Cyprus",
+ "Czech Republic",
+ "Germany",
+ "Djibouti",
+ "Dominica",
+ "Denmark",
+ "Dominican Republic",
+ "Algeria",
+ "Ecuador",
+ "Egypt",
+ "Eritrea",
+ "Spain",
+ "Estonia",
+ "Ethiopia",
+ "Finland",
+ "Fiji",
+ "France",
+ "Micronesia (Federated States of)",
+ "Gabon",
+ "United Kingdom",
+ "Georgia",
+ "Ghana",
+ "Guinea",
+ "Gambia",
+ "Guinea-Bissau",
+ "Equatorial Guinea",
+ "Greece",
+ "Grenada",
+ "Guatemala",
+ "Guyana",
+ "Honduras",
+ "Croatia",
+ "Haiti",
+ "Hungary",
+ "Indonesia",
+ "India",
+ "Ireland",
+ "Iran (Islamic Republic of)",
+ "Iraq",
+ "Iceland",
+ "Israel",
+ "Italy",
+ "Jamaica",
+ "Jordan",
+ "Japan",
+ "Kazakhstan",
+ "Kenya",
+ "Kyrgyzstan",
+ "Cambodia",
+ "Kiribati",
+ "Saint Kitts and Nevis",
+ "South Korea",
+ "Kuwait",
+ "Lao People's Democratic Republic",
+ "Lebanon",
+ "Liberia",
+ "Libya",
+ "Saint Lucia",
+ "Liechtenstein",
+ "Sri Lanka",
+ "Lesotho",
+ "Lithuania",
+ "Luxembourg",
+ "Latvia",
+ "Morocco",
+ "Monaco",
+ "Moldova",
+ "Madagascar",
+ "Maldives",
+ "Mexico",
+ "Marshall Islands",
+ "North Macedonia",
+ "Mali",
+ "Malta",
+ "Myanmar",
+ "Montenegro",
+ "Mongolia",
+ "Mozambique",
+ "Mauritania",
+ "Mauritius",
+ "Malawi",
+ "Malaysia",
+ "Namibia",
+ "Niger",
+ "Nigeria",
+ "Nicaragua",
+ "Netherlands",
+ "Norway",
+ "Nepal",
+ "Nauru",
+ "New Zealand",
+ "Oman",
+ "Pakistan",
+ "Panama",
+ "Peru",
+ "Philippines",
+ "Palau",
+ "Papua New Guinea",
+ "Poland",
+ "French Polynesia",
+ "North Korea",
+ "Portugal",
+ "Paraguay",
+ "Qatar",
+ "Romania",
+ "Russia",
+ "Rwanda",
+ "Saudi Arabia",
+ "Sudan",
+ "Senegal",
+ "Singapore",
+ "Solomon Islands",
+ "Sierra Leone",
+ "El Salvador",
+ "San Marino",
+ "Somalia",
+ "Serbia",
+ "South Sudan",
+ "Sao Tome and Principe",
+ "Suriname",
+ "Slovakia",
+ "Slovenia",
+ "Sweden",
+ "Eswatini",
+ "Seychelles",
+ "Syria",
+ "Chad",
+ "Togo",
+ "Thailand",
+ "Tajikistan",
+ "Turkmenistan",
+ "Timor-Leste",
+ "Tonga",
+ "Trinidad and Tobago",
+ "Tunisia",
+ "Turkey",
+ "Tuvalu",
+ "Tanzania",
+ "Uganda",
+ "Ukraine",
+ "Uruguay",
+ "United States",
+ "Uzbekistan",
+ "Vatican City",
+ "Saint Vincent and the Grenadines",
+ "Venezuela",
+ "Vietnam",
+ "Vanuatu",
+ "Samoa",
+ "Yemen",
+ "South Africa",
+ "Zambia",
+ "Zimbabwe"
+ ]
+ },
+ "in": "path"
+ },
+ {
+ "name": "width",
+ "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 100
+ },
+ "in": "query"
+ },
+ {
+ "name": "height",
+ "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 100
+ },
+ "in": "query"
+ },
+ {
+ "name": "quality",
+ "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": -1,
+ "default": -1
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/avatars\/image": {
+ "get": {
+ "summary": "Get image from URL",
+ "operationId": "avatarsGetImage",
+ "tags": [
+ "avatars"
+ ],
+ "description": "Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 400x400px.\n\nThis endpoint does not follow HTTP redirects.",
+ "responses": {
+ "200": {
+ "description": "Image"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getImage",
+ "group": null,
+ "weight": 63,
+ "cookies": false,
+ "type": "location",
+ "demo": "avatars\/get-image.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-image.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "avatars.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "url",
+ "description": "Image URL which you want to crop.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "format": "url",
+ "x-example": "https:\/\/example.com"
+ },
+ "in": "query"
+ },
+ {
+ "name": "width",
+ "description": "Resize preview image width, Pass an integer between 0 to 2000. Defaults to 400.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 400
+ },
+ "in": "query"
+ },
+ {
+ "name": "height",
+ "description": "Resize preview image height, Pass an integer between 0 to 2000. Defaults to 400.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 400
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/avatars\/initials": {
+ "get": {
+ "summary": "Get user initials",
+ "operationId": "avatarsGetInitials",
+ "tags": [
+ "avatars"
+ ],
+ "description": "Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n",
+ "responses": {
+ "200": {
+ "description": "Image"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getInitials",
+ "group": null,
+ "weight": 66,
+ "cookies": false,
+ "type": "location",
+ "demo": "avatars\/get-initials.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-initials.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "avatars.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "name",
+ "description": "Full Name. When empty, current user name or email will be used. Max length: 128 chars.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "x-example": "",
+ "default": ""
+ },
+ "in": "query"
+ },
+ {
+ "name": "width",
+ "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 500
+ },
+ "in": "query"
+ },
+ {
+ "name": "height",
+ "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 500
+ },
+ "in": "query"
+ },
+ {
+ "name": "background",
+ "description": "Changes background color. By default a random color will be picked and stay will persistent to the given name.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "default": ""
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/avatars\/qr": {
+ "get": {
+ "summary": "Get QR code",
+ "operationId": "avatarsGetQR",
+ "tags": [
+ "avatars"
+ ],
+ "description": "Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.\n",
+ "responses": {
+ "200": {
+ "description": "Image"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getQR",
+ "group": null,
+ "weight": 65,
+ "cookies": false,
+ "type": "location",
+ "demo": "avatars\/get-qr.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/avatars\/get-qr.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "avatars.read",
+ "platforms": [
+ "client",
+ "server",
+ "server"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": [],
+ "JWT": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "text",
+ "description": "Plain text to be converted to QR code image.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "query"
+ },
+ {
+ "name": "size",
+ "description": "QR code size. Pass an integer between 1 to 1000. Defaults to 400.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 1,
+ "default": 400
+ },
+ "in": "query"
+ },
+ {
+ "name": "margin",
+ "description": "Margin from edge. Pass an integer between 0 to 10. Defaults to 1.",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "x-example": 0,
+ "default": 1
+ },
+ "in": "query"
+ },
+ {
+ "name": "download",
+ "description": "Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.",
+ "required": false,
+ "schema": {
+ "type": "boolean",
+ "x-example": false,
+ "default": false
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/console\/assistant": {
+ "post": {
+ "summary": "Create assistant query",
+ "operationId": "assistantChat",
+ "tags": [
+ "assistant"
+ ],
+ "description": "Send a prompt to the AI assistant and receive a response. This endpoint allows you to interact with Appwrite's AI assistant by sending questions or prompts and receiving helpful responses in real-time through a server-sent events stream. ",
+ "responses": {
+ "200": {
+ "description": "File"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "chat",
+ "group": "console",
+ "weight": 252,
+ "cookies": false,
+ "type": "",
+ "demo": "assistant\/chat.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/assistant\/chat.md",
+ "rate-limit": 15,
+ "rate-time": 3600,
+ "rate-key": "userId:{userId}",
+ "scope": "assistant.read",
+ "platforms": [
+ "console"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "prompt": {
+ "type": "string",
+ "description": "Prompt. A string containing questions asked to the AI assistant.",
+ "x-example": ""
+ }
+ },
+ "required": [
+ "prompt"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/console\/resources": {
+ "get": {
+ "summary": "Check resource ID availability",
+ "operationId": "consoleGetResource",
+ "tags": [
+ "console"
+ ],
+ "description": "Check if a resource ID is available.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "getResource",
+ "group": null,
+ "weight": 496,
+ "cookies": false,
+ "type": "",
+ "demo": "console\/get-resource.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCheck if a resource ID is available.",
+ "rate-limit": 120,
+ "rate-time": 60,
+ "rate-key": "userId:{userId}, url:{url}",
+ "scope": "rules.read",
+ "platforms": [
+ "console"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "value",
+ "description": "Resource value.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "query"
+ },
+ {
+ "name": "type",
+ "description": "Resource type.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": "rules",
+ "enum": [
+ "rules"
+ ],
+ "x-enum-name": "ConsoleResourceType",
+ "x-enum-keys": []
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/console\/variables": {
+ "get": {
+ "summary": "Get variables",
+ "operationId": "consoleVariables",
+ "tags": [
+ "console"
+ ],
+ "description": "Get all Environment Variables that are relevant for the console.",
+ "responses": {
+ "200": {
+ "description": "Console Variables",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/consoleVariables"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": false,
+ "x-appwrite": {
+ "method": "variables",
+ "group": "console",
+ "weight": 251,
+ "cookies": false,
+ "type": "",
+ "demo": "console\/variables.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/console\/variables.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "projects.read",
+ "platforms": [
+ "console"
+ ],
+ "packaging": false,
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ]
+ }
+ },
+ "\/databases": {
+ "get": {
+ "summary": "List databases",
+ "operationId": "databasesList",
+ "tags": [
+ "databases"
+ ],
+ "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.",
+ "responses": {
+ "200": {
+ "description": "Databases List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/databaseList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "list",
+ "group": "databases",
+ "weight": 316,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/list.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "databases.read",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.list"
+ },
+ "methods": [
+ {
+ "name": "list",
+ "namespace": "databases",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "queries",
+ "search"
+ ],
+ "required": [],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/databaseList"
+ }
+ ],
+ "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.",
+ "demo": "databases\/list.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.list"
+ }
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "queries",
+ "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ },
+ {
+ "name": "search",
+ "description": "Search term to filter your list results. Max length: 256 chars.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "x-example": "",
+ "default": ""
+ },
+ "in": "query"
+ }
+ ]
+ },
+ "post": {
+ "summary": "Create database",
+ "operationId": "databasesCreate",
+ "tags": [
+ "databases"
+ ],
+ "description": "Create a new Database.\n",
+ "responses": {
+ "201": {
+ "description": "Database",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/database"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "create",
+ "group": "databases",
+ "weight": 312,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/create.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "databases.write",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.create"
+ },
+ "methods": [
+ {
+ "name": "create",
+ "namespace": "databases",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "databaseId",
+ "name",
+ "enabled"
+ ],
+ "required": [
+ "databaseId",
+ "name"
+ ],
+ "responses": [
+ {
+ "code": 201,
+ "model": "#\/components\/schemas\/database"
+ }
+ ],
+ "description": "Create a new Database.\n",
+ "demo": "databases\/create.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.create"
+ }
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "databaseId": {
+ "type": "string",
+ "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "x-example": ""
+ },
+ "name": {
+ "type": "string",
+ "description": "Database name. Max length: 128 chars.",
+ "x-example": ""
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.",
+ "x-example": false
+ }
+ },
+ "required": [
+ "databaseId",
+ "name"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/databases\/usage": {
+ "get": {
+ "summary": "Get databases usage stats",
+ "operationId": "databasesListUsage",
+ "tags": [
+ "databases"
+ ],
+ "description": "List usage metrics and statistics for all databases in the project. You can view the total number of databases, collections, documents, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.",
+ "responses": {
+ "200": {
+ "description": "UsageDatabases",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/usageDatabases"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "listUsage",
+ "group": null,
+ "weight": 319,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/list-usage.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-usage.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.read",
+ "platforms": [
+ "console"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.listUsage"
+ },
+ "methods": [
+ {
+ "name": "listUsage",
+ "namespace": "databases",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "range"
+ ],
+ "required": [],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/usageDatabases"
+ }
+ ],
+ "description": "List usage metrics and statistics for all databases in the project. You can view the total number of databases, collections, documents, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.",
+ "demo": "databases\/list-usage.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.listUsage"
+ }
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "range",
+ "description": "Date range.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "x-example": "24h",
+ "enum": [
+ "24h",
+ "30d",
+ "90d"
+ ],
+ "x-enum-name": "UsageRange",
+ "x-enum-keys": [
+ "Twenty Four Hours",
+ "Thirty Days",
+ "Ninety Days"
+ ],
+ "default": "30d"
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/databases\/{databaseId}": {
+ "get": {
+ "summary": "Get database",
+ "operationId": "databasesGet",
+ "tags": [
+ "databases"
+ ],
+ "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.",
+ "responses": {
+ "200": {
+ "description": "Database",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/database"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "get",
+ "group": "databases",
+ "weight": 313,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/get.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "databases.read",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.get"
+ },
+ "methods": [
+ {
+ "name": "get",
+ "namespace": "databases",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "databaseId"
+ ],
+ "required": [
+ "databaseId"
+ ],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/database"
+ }
+ ],
+ "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.",
+ "demo": "databases\/get.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.get"
+ }
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ },
+ "put": {
+ "summary": "Update database",
+ "operationId": "databasesUpdate",
+ "tags": [
+ "databases"
+ ],
+ "description": "Update a database by its unique ID.",
+ "responses": {
+ "200": {
+ "description": "Database",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/database"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "update",
+ "group": "databases",
+ "weight": 314,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/update.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "databases.write",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.update"
+ },
+ "methods": [
+ {
+ "name": "update",
+ "namespace": "databases",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "databaseId",
+ "name",
+ "enabled"
+ ],
+ "required": [
+ "databaseId",
+ "name"
+ ],
+ "responses": [
+ {
+ "code": 200,
+ "model": "#\/components\/schemas\/database"
+ }
+ ],
+ "description": "Update a database by its unique ID.",
+ "demo": "databases\/update.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.update"
+ }
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Database name. Max length: 128 chars.",
+ "x-example": ""
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.",
+ "x-example": false
+ }
+ },
+ "required": [
+ "name"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "summary": "Delete database",
+ "operationId": "databasesDelete",
+ "tags": [
+ "databases"
+ ],
+ "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "delete",
+ "group": "databases",
+ "weight": 315,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/delete.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "databases.write",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.delete"
+ },
+ "methods": [
+ {
+ "name": "delete",
+ "namespace": "databases",
+ "desc": "",
+ "auth": {
+ "Project": []
+ },
+ "parameters": [
+ "databaseId"
+ ],
+ "required": [
+ "databaseId"
+ ],
+ "responses": [
+ {
+ "code": 204
+ }
+ ],
+ "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.",
+ "demo": "databases\/delete.md",
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.delete"
+ }
+ }
+ ],
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ }
+ },
+ "\/databases\/{databaseId}\/collections": {
+ "get": {
+ "summary": "List collections",
+ "operationId": "databasesListCollections",
+ "tags": [
+ "databases"
+ ],
+ "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.",
+ "responses": {
+ "200": {
+ "description": "Collections List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/collectionList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "listCollections",
+ "group": "collections",
+ "weight": 324,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/list-collections.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-collections.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.read",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.listTables"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "queries",
+ "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, documentSecurity",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ },
+ {
+ "name": "search",
+ "description": "Search term to filter your list results. Max length: 256 chars.",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "x-example": "",
+ "default": ""
+ },
+ "in": "query"
+ }
+ ]
+ },
+ "post": {
+ "summary": "Create collections",
+ "operationId": "databasesCreateCollection",
+ "tags": [
+ "databases"
+ ],
+ "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.",
+ "responses": {
+ "201": {
+ "description": "Collection",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/collection"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "createCollection",
+ "group": "collections",
+ "weight": 320,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/create-collection.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-collection.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.write",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.createTable"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "collectionId": {
+ "type": "string",
+ "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
+ "x-example": ""
+ },
+ "name": {
+ "type": "string",
+ "description": "Collection name. Max length: 128 chars.",
+ "x-example": ""
+ },
+ "permissions": {
+ "type": "array",
+ "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).",
+ "x-example": "[\"read(\"any\")\"]",
+ "items": {
+ "type": "string"
+ }
+ },
+ "documentSecurity": {
+ "type": "boolean",
+ "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).",
+ "x-example": false
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.",
+ "x-example": false
+ }
+ },
+ "required": [
+ "collectionId",
+ "name"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}": {
+ "get": {
+ "summary": "Get collection",
+ "operationId": "databasesGetCollection",
+ "tags": [
+ "databases"
+ ],
+ "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.",
+ "responses": {
+ "200": {
+ "description": "Collection",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/collection"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "getCollection",
+ "group": "collections",
+ "weight": 321,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/get-collection.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-collection.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.read",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.getTable"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ },
+ "put": {
+ "summary": "Update collection",
+ "operationId": "databasesUpdateCollection",
+ "tags": [
+ "databases"
+ ],
+ "description": "Update a collection by its unique ID.",
+ "responses": {
+ "200": {
+ "description": "Collection",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/collection"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "updateCollection",
+ "group": "collections",
+ "weight": 322,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/update-collection.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-collection.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.write",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.updateTable"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Collection name. Max length: 128 chars.",
+ "x-example": ""
+ },
+ "permissions": {
+ "type": "array",
+ "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).",
+ "x-example": "[\"read(\"any\")\"]",
+ "items": {
+ "type": "string"
+ }
+ },
+ "documentSecurity": {
+ "type": "boolean",
+ "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).",
+ "x-example": false
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.",
+ "x-example": false
+ }
+ },
+ "required": [
+ "name"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "summary": "Delete collection",
+ "operationId": "databasesDeleteCollection",
+ "tags": [
+ "databases"
+ ],
+ "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.",
+ "responses": {
+ "204": {
+ "description": "No content"
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "deleteCollection",
+ "group": "collections",
+ "weight": 323,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/delete-collection.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-collection.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.write",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.deleteTable"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ]
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes": {
+ "get": {
+ "summary": "List attributes",
+ "operationId": "databasesListAttributes",
+ "tags": [
+ "databases"
+ ],
+ "description": "List attributes in the collection.",
+ "responses": {
+ "200": {
+ "description": "Attributes List",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/attributeList"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "listAttributes",
+ "group": "attributes",
+ "weight": 341,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/list-attributes.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-attributes.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.read",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.listColumns"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "queries",
+ "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, type, size, required, array, status, error",
+ "required": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "in": "query"
+ }
+ ]
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean": {
+ "post": {
+ "summary": "Create boolean attribute",
+ "operationId": "databasesCreateBooleanAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Create a boolean attribute.\n",
+ "responses": {
+ "202": {
+ "description": "AttributeBoolean",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/attributeBoolean"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "createBooleanAttribute",
+ "group": "attributes",
+ "weight": 342,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/create-boolean-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-boolean-attribute.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.write",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.createBooleanColumn"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "key": {
+ "type": "string",
+ "description": "Attribute Key.",
+ "x-example": null
+ },
+ "required": {
+ "type": "boolean",
+ "description": "Is attribute required?",
+ "x-example": false
+ },
+ "default": {
+ "type": "boolean",
+ "description": "Default value for attribute when not provided. Cannot be set when attribute is required.",
+ "x-example": false
+ },
+ "array": {
+ "type": "boolean",
+ "description": "Is attribute an array?",
+ "x-example": false
+ }
+ },
+ "required": [
+ "key",
+ "required"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean\/{key}": {
+ "patch": {
+ "summary": "Update boolean attribute",
+ "operationId": "databasesUpdateBooleanAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Update a boolean attribute. Changing the `default` value will not update already existing documents.",
+ "responses": {
+ "200": {
+ "description": "AttributeBoolean",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/attributeBoolean"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "updateBooleanAttribute",
+ "group": "attributes",
+ "weight": 343,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/update-boolean-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-boolean-attribute.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.write",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.updateBooleanColumn"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "key",
+ "description": "Attribute Key.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "required": {
+ "type": "boolean",
+ "description": "Is attribute required?",
+ "x-example": false
+ },
+ "default": {
+ "type": "boolean",
+ "description": "Default value for attribute when not provided. Cannot be set when attribute is required.",
+ "x-example": false,
+ "x-nullable": true
+ },
+ "newKey": {
+ "type": "string",
+ "description": "New attribute key.",
+ "x-example": null
+ }
+ },
+ "required": [
+ "required",
+ "default"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime": {
+ "post": {
+ "summary": "Create datetime attribute",
+ "operationId": "databasesCreateDatetimeAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Create a date time attribute according to the ISO 8601 standard.",
+ "responses": {
+ "202": {
+ "description": "AttributeDatetime",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/attributeDatetime"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "createDatetimeAttribute",
+ "group": "attributes",
+ "weight": 344,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/create-datetime-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-datetime-attribute.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.write",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.createDatetimeColumn"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "key": {
+ "type": "string",
+ "description": "Attribute Key.",
+ "x-example": null
+ },
+ "required": {
+ "type": "boolean",
+ "description": "Is attribute required?",
+ "x-example": false
+ },
+ "default": {
+ "type": "string",
+ "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.",
+ "x-example": null
+ },
+ "array": {
+ "type": "boolean",
+ "description": "Is attribute an array?",
+ "x-example": false
+ }
+ },
+ "required": [
+ "key",
+ "required"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime\/{key}": {
+ "patch": {
+ "summary": "Update datetime attribute",
+ "operationId": "databasesUpdateDatetimeAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Update a date time attribute. Changing the `default` value will not update already existing documents.",
+ "responses": {
+ "200": {
+ "description": "AttributeDatetime",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/attributeDatetime"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "updateDatetimeAttribute",
+ "group": "attributes",
+ "weight": 345,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/update-datetime-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-datetime-attribute.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.write",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.updateDatetimeColumn"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "key",
+ "description": "Attribute Key.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "required": {
+ "type": "boolean",
+ "description": "Is attribute required?",
+ "x-example": false
+ },
+ "default": {
+ "type": "string",
+ "description": "Default value for attribute when not provided. Cannot be set when attribute is required.",
+ "x-example": null,
+ "x-nullable": true
+ },
+ "newKey": {
+ "type": "string",
+ "description": "New attribute key.",
+ "x-example": null
+ }
+ },
+ "required": [
+ "required",
+ "default"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email": {
+ "post": {
+ "summary": "Create email attribute",
+ "operationId": "databasesCreateEmailAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Create an email attribute.\n",
+ "responses": {
+ "202": {
+ "description": "AttributeEmail",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/attributeEmail"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "createEmailAttribute",
+ "group": "attributes",
+ "weight": 346,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/create-email-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-email-attribute.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.write",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.createEmailColumn"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "key": {
+ "type": "string",
+ "description": "Attribute Key.",
+ "x-example": null
+ },
+ "required": {
+ "type": "boolean",
+ "description": "Is attribute required?",
+ "x-example": false
+ },
+ "default": {
+ "type": "string",
+ "description": "Default value for attribute when not provided. Cannot be set when attribute is required.",
+ "x-example": "email@example.com"
+ },
+ "array": {
+ "type": "boolean",
+ "description": "Is attribute an array?",
+ "x-example": false
+ }
+ },
+ "required": [
+ "key",
+ "required"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email\/{key}": {
+ "patch": {
+ "summary": "Update email attribute",
+ "operationId": "databasesUpdateEmailAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Update an email attribute. Changing the `default` value will not update already existing documents.\n",
+ "responses": {
+ "200": {
+ "description": "AttributeEmail",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/attributeEmail"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "updateEmailAttribute",
+ "group": "attributes",
+ "weight": 347,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/update-email-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-email-attribute.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.write",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.updateEmailColumn"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "key",
+ "description": "Attribute Key.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "required": {
+ "type": "boolean",
+ "description": "Is attribute required?",
+ "x-example": false
+ },
+ "default": {
+ "type": "string",
+ "description": "Default value for attribute when not provided. Cannot be set when attribute is required.",
+ "x-example": "email@example.com",
+ "x-nullable": true
+ },
+ "newKey": {
+ "type": "string",
+ "description": "New Attribute Key.",
+ "x-example": null
+ }
+ },
+ "required": [
+ "required",
+ "default"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum": {
+ "post": {
+ "summary": "Create enum attribute",
+ "operationId": "databasesCreateEnumAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Create an enum attribute. The `elements` param acts as a white-list of accepted values for this attribute. \n",
+ "responses": {
+ "202": {
+ "description": "AttributeEnum",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/attributeEnum"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "createEnumAttribute",
+ "group": "attributes",
+ "weight": 348,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/create-enum-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-enum-attribute.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.write",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.createEnumColumn"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "key": {
+ "type": "string",
+ "description": "Attribute Key.",
+ "x-example": null
+ },
+ "elements": {
+ "type": "array",
+ "description": "Array of enum values.",
+ "x-example": null,
+ "items": {
+ "type": "string"
+ }
+ },
+ "required": {
+ "type": "boolean",
+ "description": "Is attribute required?",
+ "x-example": false
+ },
+ "default": {
+ "type": "string",
+ "description": "Default value for attribute when not provided. Cannot be set when attribute is required.",
+ "x-example": ""
+ },
+ "array": {
+ "type": "boolean",
+ "description": "Is attribute an array?",
+ "x-example": false
+ }
+ },
+ "required": [
+ "key",
+ "elements",
+ "required"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum\/{key}": {
+ "patch": {
+ "summary": "Update enum attribute",
+ "operationId": "databasesUpdateEnumAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Update an enum attribute. Changing the `default` value will not update already existing documents.\n",
+ "responses": {
+ "200": {
+ "description": "AttributeEnum",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/attributeEnum"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "updateEnumAttribute",
+ "group": "attributes",
+ "weight": 349,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/update-enum-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-enum-attribute.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.write",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.updateEnumColumn"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "key",
+ "description": "Attribute Key.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "elements": {
+ "type": "array",
+ "description": "Updated list of enum values.",
+ "x-example": null,
+ "items": {
+ "type": "string"
+ }
+ },
+ "required": {
+ "type": "boolean",
+ "description": "Is attribute required?",
+ "x-example": false
+ },
+ "default": {
+ "type": "string",
+ "description": "Default value for attribute when not provided. Cannot be set when attribute is required.",
+ "x-example": "",
+ "x-nullable": true
+ },
+ "newKey": {
+ "type": "string",
+ "description": "New Attribute Key.",
+ "x-example": null
+ }
+ },
+ "required": [
+ "elements",
+ "required",
+ "default"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float": {
+ "post": {
+ "summary": "Create float attribute",
+ "operationId": "databasesCreateFloatAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Create a float attribute. Optionally, minimum and maximum values can be provided.\n",
+ "responses": {
+ "202": {
+ "description": "AttributeFloat",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/attributeFloat"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "createFloatAttribute",
+ "group": "attributes",
+ "weight": 350,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/create-float-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-float-attribute.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.write",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.createFloatColumn"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "key": {
+ "type": "string",
+ "description": "Attribute Key.",
+ "x-example": null
+ },
+ "required": {
+ "type": "boolean",
+ "description": "Is attribute required?",
+ "x-example": false
+ },
+ "min": {
+ "type": "number",
+ "description": "Minimum value.",
+ "x-example": null
+ },
+ "max": {
+ "type": "number",
+ "description": "Maximum value.",
+ "x-example": null
+ },
+ "default": {
+ "type": "number",
+ "description": "Default value. Cannot be set when required.",
+ "x-example": null
+ },
+ "array": {
+ "type": "boolean",
+ "description": "Is attribute an array?",
+ "x-example": false
+ }
+ },
+ "required": [
+ "key",
+ "required"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float\/{key}": {
+ "patch": {
+ "summary": "Update float attribute",
+ "operationId": "databasesUpdateFloatAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Update a float attribute. Changing the `default` value will not update already existing documents.\n",
+ "responses": {
+ "200": {
+ "description": "AttributeFloat",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/attributeFloat"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "updateFloatAttribute",
+ "group": "attributes",
+ "weight": 351,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/update-float-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-float-attribute.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.write",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.updateFloatColumn"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "key",
+ "description": "Attribute Key.",
+ "required": true,
+ "schema": {
+ "type": "string"
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "required": {
+ "type": "boolean",
+ "description": "Is attribute required?",
+ "x-example": false
+ },
+ "min": {
+ "type": "number",
+ "description": "Minimum value.",
+ "x-example": null
+ },
+ "max": {
+ "type": "number",
+ "description": "Maximum value.",
+ "x-example": null
+ },
+ "default": {
+ "type": "number",
+ "description": "Default value. Cannot be set when required.",
+ "x-example": null,
+ "x-nullable": true
+ },
+ "newKey": {
+ "type": "string",
+ "description": "New Attribute Key.",
+ "x-example": null
+ }
+ },
+ "required": [
+ "required",
+ "default"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer": {
+ "post": {
+ "summary": "Create integer attribute",
+ "operationId": "databasesCreateIntegerAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Create an integer attribute. Optionally, minimum and maximum values can be provided.\n",
+ "responses": {
+ "202": {
+ "description": "AttributeInteger",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/attributeInteger"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "createIntegerAttribute",
+ "group": "attributes",
+ "weight": 352,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/create-integer-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-integer-attribute.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.write",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.createIntegerColumn"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application\/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "key": {
+ "type": "string",
+ "description": "Attribute Key.",
+ "x-example": null
+ },
+ "required": {
+ "type": "boolean",
+ "description": "Is attribute required?",
+ "x-example": false
+ },
+ "min": {
+ "type": "integer",
+ "description": "Minimum value",
+ "x-example": null
+ },
+ "max": {
+ "type": "integer",
+ "description": "Maximum value",
+ "x-example": null
+ },
+ "default": {
+ "type": "integer",
+ "description": "Default value. Cannot be set when attribute is required.",
+ "x-example": null
+ },
+ "array": {
+ "type": "boolean",
+ "description": "Is attribute an array?",
+ "x-example": false
+ }
+ },
+ "required": [
+ "key",
+ "required"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer\/{key}": {
+ "patch": {
+ "summary": "Update integer attribute",
+ "operationId": "databasesUpdateIntegerAttribute",
+ "tags": [
+ "databases"
+ ],
+ "description": "Update an integer attribute. Changing the `default` value will not update already existing documents.\n",
+ "responses": {
+ "200": {
+ "description": "AttributeInteger",
+ "content": {
+ "application\/json": {
+ "schema": {
+ "$ref": "#\/components\/schemas\/attributeInteger"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true,
+ "x-appwrite": {
+ "method": "updateIntegerAttribute",
+ "group": "attributes",
+ "weight": 353,
+ "cookies": false,
+ "type": "",
+ "demo": "databases\/update-integer-attribute.md",
+ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-integer-attribute.md",
+ "rate-limit": 0,
+ "rate-time": 3600,
+ "rate-key": "url:{url},ip:{ip}",
+ "scope": "collections.write",
+ "platforms": [
+ "server"
+ ],
+ "packaging": false,
+ "deprecated": {
+ "since": "1.8.0",
+ "replaceWith": "tablesDB.updateIntegerColumn"
+ },
+ "auth": {
+ "Project": []
+ }
+ },
+ "security": [
+ {
+ "Project": [],
+ "Key": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "databaseId",
+ "description": "Database ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": ""
+ },
+ "in": "path"
+ },
+ {
+ "name": "collectionId",
+ "description": "Collection ID.",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "x-example": "