Merge pull request #10882 from appwrite/release-sdks-4

chore: release sdks for adding getScreenshot method to Avatars service
This commit is contained in:
Jake Barnby 2025-12-05 04:46:30 +00:00 committed by GitHub
commit bc508353db
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
50 changed files with 6155 additions and 2688 deletions

View file

@ -11,7 +11,7 @@ return [
[
'key' => 'web',
'name' => 'Web',
'version' => '21.4.0',
'version' => '21.5.0',
'url' => 'https://github.com/appwrite/sdk-for-web',
'package' => 'https://www.npmjs.com/package/appwrite',
'enabled' => true,
@ -79,7 +79,7 @@ return [
[
'key' => 'apple',
'name' => 'Apple',
'version' => '13.4.0',
'version' => '13.5.0',
'url' => 'https://github.com/appwrite/sdk-for-apple',
'package' => 'https://github.com/appwrite/sdk-for-apple',
'enabled' => true,
@ -116,7 +116,7 @@ return [
[
'key' => 'android',
'name' => 'Android',
'version' => '11.3.0',
'version' => '11.4.0',
'url' => 'https://github.com/appwrite/sdk-for-android',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-android',
'enabled' => true,
@ -139,7 +139,7 @@ return [
[
'key' => 'react-native',
'name' => 'React Native',
'version' => '0.18.0',
'version' => '0.19.0',
'url' => 'https://github.com/appwrite/sdk-for-react-native',
'package' => 'https://npmjs.com/package/react-native-appwrite',
'enabled' => true,
@ -226,7 +226,7 @@ return [
[
'key' => 'cli',
'name' => 'Command Line',
'version' => '12.0.0',
'version' => '12.0.1',
'url' => 'https://github.com/appwrite/sdk-for-cli',
'package' => 'https://www.npmjs.com/package/appwrite-cli',
'enabled' => true,
@ -262,7 +262,7 @@ return [
[
'key' => 'nodejs',
'name' => 'Node.js',
'version' => '20.3.0',
'version' => '21.0.0',
'url' => 'https://github.com/appwrite/sdk-for-node',
'package' => 'https://www.npmjs.com/package/node-appwrite',
'enabled' => true,
@ -281,7 +281,7 @@ return [
[
'key' => 'php',
'name' => 'PHP',
'version' => '18.0.1',
'version' => '19.0.0',
'url' => 'https://github.com/appwrite/sdk-for-php',
'package' => 'https://packagist.org/packages/appwrite/appwrite',
'enabled' => true,
@ -300,7 +300,7 @@ return [
[
'key' => 'python',
'name' => 'Python',
'version' => '13.6.1',
'version' => '14.0.0',
'url' => 'https://github.com/appwrite/sdk-for-python',
'package' => 'https://pypi.org/project/appwrite/',
'enabled' => true,
@ -319,7 +319,7 @@ return [
[
'key' => 'ruby',
'name' => 'Ruby',
'version' => '19.3.0',
'version' => '20.0.0',
'url' => 'https://github.com/appwrite/sdk-for-ruby',
'package' => 'https://rubygems.org/gems/appwrite',
'enabled' => true,
@ -338,7 +338,7 @@ return [
[
'key' => 'go',
'name' => 'Go',
'version' => 'v0.14.0',
'version' => 'v0.15.0',
'url' => 'https://github.com/appwrite/sdk-for-go',
'package' => 'https://github.com/appwrite/sdk-for-go',
'enabled' => true,
@ -357,7 +357,7 @@ return [
[
'key' => 'dotnet',
'name' => '.NET',
'version' => '0.22.0',
'version' => '0.23.0',
'url' => 'https://github.com/appwrite/sdk-for-dotnet',
'package' => 'https://www.nuget.org/packages/Appwrite',
'enabled' => true,
@ -376,7 +376,7 @@ return [
[
'key' => 'dart',
'name' => 'Dart',
'version' => '19.4.0',
'version' => '20.0.0',
'url' => 'https://github.com/appwrite/sdk-for-dart',
'package' => 'https://pub.dev/packages/dart_appwrite',
'enabled' => true,
@ -395,7 +395,7 @@ return [
[
'key' => 'kotlin',
'name' => 'Kotlin',
'version' => '12.3.0',
'version' => '13.0.0',
'url' => 'https://github.com/appwrite/sdk-for-kotlin',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-kotlin',
'enabled' => true,
@ -418,7 +418,7 @@ return [
[
'key' => 'swift',
'name' => 'Swift',
'version' => '13.3.0',
'version' => '14.0.0',
'url' => 'https://github.com/appwrite/sdk-for-swift',
'package' => 'https://github.com/appwrite/sdk-for-swift',
'enabled' => true,

View file

@ -258,7 +258,7 @@
"x-appwrite": {
"method": "listIdentities",
"group": "identities",
"weight": 58,
"weight": 48,
"cookies": false,
"type": "",
"demo": "account\/list-identities.md",
@ -328,7 +328,7 @@
"x-appwrite": {
"method": "deleteIdentity",
"group": "identities",
"weight": 59,
"weight": 49,
"cookies": false,
"type": "",
"demo": "account\/delete-identity.md",
@ -517,7 +517,7 @@
"x-appwrite": {
"method": "updateMFA",
"group": "mfa",
"weight": 45,
"weight": 306,
"cookies": false,
"type": "",
"demo": "account\/update-mfa.md",
@ -587,7 +587,7 @@
"x-appwrite": {
"method": "createMfaAuthenticator",
"group": "mfa",
"weight": 47,
"weight": 308,
"cookies": false,
"type": "",
"demo": "account\/create-mfa-authenticator.md",
@ -707,7 +707,7 @@
"x-appwrite": {
"method": "updateMfaAuthenticator",
"group": "mfa",
"weight": 48,
"weight": 309,
"cookies": false,
"type": "",
"demo": "account\/update-mfa-authenticator.md",
@ -843,7 +843,7 @@
"x-appwrite": {
"method": "deleteMfaAuthenticator",
"group": "mfa",
"weight": 52,
"weight": 310,
"cookies": false,
"type": "",
"demo": "account\/delete-mfa-authenticator.md",
@ -939,7 +939,7 @@
]
}
},
"\/account\/mfa\/challenge": {
"\/account\/mfa\/challenges": {
"post": {
"summary": "Create MFA challenge",
"operationId": "accountCreateMfaChallenge",
@ -963,7 +963,7 @@
"x-appwrite": {
"method": "createMfaChallenge",
"group": "mfa",
"weight": 53,
"weight": 314,
"cookies": false,
"type": "",
"demo": "account\/create-mfa-challenge.md",
@ -1091,7 +1091,7 @@
"x-appwrite": {
"method": "updateMfaChallenge",
"group": "mfa",
"weight": 54,
"weight": 315,
"cookies": false,
"type": "",
"demo": "account\/update-mfa-challenge.md",
@ -1225,7 +1225,7 @@
"x-appwrite": {
"method": "listMfaFactors",
"group": "mfa",
"weight": 46,
"weight": 307,
"cookies": false,
"type": "",
"demo": "account\/list-mfa-factors.md",
@ -1322,7 +1322,7 @@
"x-appwrite": {
"method": "getMfaRecoveryCodes",
"group": "mfa",
"weight": 51,
"weight": 313,
"cookies": false,
"type": "",
"demo": "account\/get-mfa-recovery-codes.md",
@ -1417,7 +1417,7 @@
"x-appwrite": {
"method": "createMfaRecoveryCodes",
"group": "mfa",
"weight": 49,
"weight": 311,
"cookies": false,
"type": "",
"demo": "account\/create-mfa-recovery-codes.md",
@ -1512,7 +1512,7 @@
"x-appwrite": {
"method": "updateMfaRecoveryCodes",
"group": "mfa",
"weight": 50,
"weight": 312,
"cookies": false,
"type": "",
"demo": "account\/update-mfa-recovery-codes.md",
@ -2918,7 +2918,7 @@
"x-appwrite": {
"method": "createPushTarget",
"group": "pushTargets",
"weight": 55,
"weight": 45,
"cookies": false,
"type": "",
"demo": "account\/create-push-target.md",
@ -2997,7 +2997,7 @@
"x-appwrite": {
"method": "updatePushTarget",
"group": "pushTargets",
"weight": 56,
"weight": 46,
"cookies": false,
"type": "",
"demo": "account\/update-push-target.md",
@ -3068,7 +3068,7 @@
"x-appwrite": {
"method": "deletePushTarget",
"group": "pushTargets",
"weight": 57,
"weight": 47,
"cookies": false,
"type": "",
"demo": "account\/delete-push-target.md",
@ -3879,7 +3879,7 @@
"x-appwrite": {
"method": "getBrowser",
"group": null,
"weight": 61,
"weight": 51,
"cookies": false,
"type": "location",
"demo": "avatars\/get-browser.md",
@ -4005,7 +4005,7 @@
"x-appwrite": {
"method": "getCreditCard",
"group": null,
"weight": 60,
"weight": 50,
"cookies": false,
"type": "location",
"demo": "avatars\/get-credit-card.md",
@ -4137,7 +4137,7 @@
"x-appwrite": {
"method": "getFavicon",
"group": null,
"weight": 64,
"weight": 54,
"cookies": false,
"type": "location",
"demo": "avatars\/get-favicon.md",
@ -4195,7 +4195,7 @@
"x-appwrite": {
"method": "getFlag",
"group": null,
"weight": 62,
"weight": 52,
"cookies": false,
"type": "location",
"demo": "avatars\/get-flag.md",
@ -4683,7 +4683,7 @@
"x-appwrite": {
"method": "getImage",
"group": null,
"weight": 63,
"weight": 53,
"cookies": false,
"type": "location",
"demo": "avatars\/get-image.md",
@ -4765,7 +4765,7 @@
"x-appwrite": {
"method": "getInitials",
"group": null,
"weight": 66,
"weight": 56,
"cookies": false,
"type": "location",
"demo": "avatars\/get-initials.md",
@ -4857,7 +4857,7 @@
"x-appwrite": {
"method": "getQR",
"group": null,
"weight": 65,
"weight": 55,
"cookies": false,
"type": "location",
"demo": "avatars\/get-qr.md",
@ -4949,7 +4949,7 @@
"x-appwrite": {
"method": "getScreenshot",
"group": null,
"weight": 67,
"weight": 57,
"cookies": false,
"type": "location",
"demo": "avatars\/get-screenshot.md",
@ -4993,7 +4993,7 @@
"required": false,
"schema": {
"type": "object",
"x-example": "{}",
"x-example": "{\"Authorization\":\"Bearer token123\",\"X-Custom-Header\":\"value\"}",
"default": {}
},
"in": "query"
@ -5005,7 +5005,7 @@
"schema": {
"type": "integer",
"format": "int32",
"x-example": 1,
"x-example": "1920",
"default": 1280
},
"in": "query"
@ -5017,7 +5017,7 @@
"schema": {
"type": "integer",
"format": "int32",
"x-example": 1,
"x-example": "1080",
"default": 720
},
"in": "query"
@ -5029,7 +5029,7 @@
"schema": {
"type": "number",
"format": "float",
"x-example": 0.1,
"x-example": "2",
"default": 1
},
"in": "query"
@ -5040,7 +5040,7 @@
"required": false,
"schema": {
"type": "string",
"x-example": "light",
"x-example": "dark",
"enum": [
"light",
"dark"
@ -5057,7 +5057,7 @@
"required": false,
"schema": {
"type": "string",
"x-example": "<USER_AGENT>",
"x-example": "Mozilla\/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit\/605.1.15",
"default": ""
},
"in": "query"
@ -5068,7 +5068,7 @@
"required": false,
"schema": {
"type": "boolean",
"x-example": false,
"x-example": "true",
"default": false
},
"in": "query"
@ -5079,7 +5079,7 @@
"required": false,
"schema": {
"type": "string",
"x-example": "<LOCALE>",
"x-example": "en-US",
"default": ""
},
"in": "query"
@ -5090,7 +5090,7 @@
"required": false,
"schema": {
"type": "string",
"x-example": "africa\/abidjan",
"x-example": "america\/new_york",
"enum": [
"africa\/abidjan",
"africa\/accra",
@ -5525,7 +5525,7 @@
"schema": {
"type": "number",
"format": "float",
"x-example": -90,
"x-example": "37.7749",
"default": 0
},
"in": "query"
@ -5537,7 +5537,7 @@
"schema": {
"type": "number",
"format": "float",
"x-example": -180,
"x-example": "-122.4194",
"default": 0
},
"in": "query"
@ -5549,7 +5549,7 @@
"schema": {
"type": "number",
"format": "float",
"x-example": 0,
"x-example": "100",
"default": 0
},
"in": "query"
@ -5560,7 +5560,7 @@
"required": false,
"schema": {
"type": "boolean",
"x-example": false,
"x-example": "true",
"default": false
},
"in": "query"
@ -5572,8 +5572,33 @@
"schema": {
"type": "array",
"items": {
"type": "string"
"type": "string",
"enum": [
"geolocation",
"camera",
"microphone",
"notifications",
"midi",
"push",
"clipboard-read",
"clipboard-write",
"payment-handler",
"usb",
"bluetooth",
"accelerometer",
"gyroscope",
"magnetometer",
"ambient-light-sensor",
"background-sync",
"persistent-storage",
"screen-wake-lock",
"web-share",
"xr-spatial-tracking"
],
"x-enum-name": "BrowserPermission",
"x-enum-keys": []
},
"x-example": "[\"geolocation\",\"notifications\"]",
"default": []
},
"in": "query"
@ -5585,7 +5610,7 @@
"schema": {
"type": "integer",
"format": "int32",
"x-example": 0,
"x-example": "3",
"default": 0
},
"in": "query"
@ -5597,7 +5622,7 @@
"schema": {
"type": "integer",
"format": "int32",
"x-example": 0,
"x-example": "800",
"default": 0
},
"in": "query"
@ -5609,7 +5634,7 @@
"schema": {
"type": "integer",
"format": "int32",
"x-example": 0,
"x-example": "600",
"default": 0
},
"in": "query"
@ -5621,7 +5646,7 @@
"schema": {
"type": "integer",
"format": "int32",
"x-example": -1,
"x-example": "85",
"default": -1
},
"in": "query"
@ -5632,7 +5657,7 @@
"required": false,
"schema": {
"type": "string",
"x-example": "jpg",
"x-example": "jpeg",
"enum": [
"jpg",
"jpeg",
@ -7370,7 +7395,7 @@
"x-appwrite": {
"method": "query",
"group": "graphql",
"weight": 251,
"weight": 241,
"cookies": false,
"type": "graphql",
"demo": "graphql\/query.md",
@ -7422,7 +7447,7 @@
"x-appwrite": {
"method": "mutation",
"group": "graphql",
"weight": 250,
"weight": 240,
"cookies": false,
"type": "graphql",
"demo": "graphql\/mutation.md",
@ -7474,7 +7499,7 @@
"x-appwrite": {
"method": "get",
"group": null,
"weight": 71,
"weight": 61,
"cookies": false,
"type": "",
"demo": "locale\/get.md",
@ -7526,7 +7551,7 @@
"x-appwrite": {
"method": "listCodes",
"group": null,
"weight": 72,
"weight": 62,
"cookies": false,
"type": "",
"demo": "locale\/list-codes.md",
@ -7578,7 +7603,7 @@
"x-appwrite": {
"method": "listContinents",
"group": null,
"weight": 76,
"weight": 66,
"cookies": false,
"type": "",
"demo": "locale\/list-continents.md",
@ -7630,7 +7655,7 @@
"x-appwrite": {
"method": "listCountries",
"group": null,
"weight": 73,
"weight": 63,
"cookies": false,
"type": "",
"demo": "locale\/list-countries.md",
@ -7682,7 +7707,7 @@
"x-appwrite": {
"method": "listCountriesEU",
"group": null,
"weight": 74,
"weight": 64,
"cookies": false,
"type": "",
"demo": "locale\/list-countries-eu.md",
@ -7734,7 +7759,7 @@
"x-appwrite": {
"method": "listCountriesPhones",
"group": null,
"weight": 75,
"weight": 65,
"cookies": false,
"type": "",
"demo": "locale\/list-countries-phones.md",
@ -7786,7 +7811,7 @@
"x-appwrite": {
"method": "listCurrencies",
"group": null,
"weight": 77,
"weight": 67,
"cookies": false,
"type": "",
"demo": "locale\/list-currencies.md",
@ -7838,7 +7863,7 @@
"x-appwrite": {
"method": "listLanguages",
"group": null,
"weight": 78,
"weight": 68,
"cookies": false,
"type": "",
"demo": "locale\/list-languages.md",
@ -7890,7 +7915,7 @@
"x-appwrite": {
"method": "createSubscriber",
"group": "subscribers",
"weight": 300,
"weight": 290,
"cookies": false,
"type": "",
"demo": "messaging\/create-subscriber.md",
@ -7973,7 +7998,7 @@
"x-appwrite": {
"method": "deleteSubscriber",
"group": "subscribers",
"weight": 304,
"weight": 294,
"cookies": false,
"type": "",
"demo": "messaging\/delete-subscriber.md",
@ -8048,7 +8073,7 @@
"x-appwrite": {
"method": "listFiles",
"group": "files",
"weight": 161,
"weight": 151,
"cookies": false,
"type": "",
"demo": "storage\/list-files.md",
@ -8145,7 +8170,7 @@
"x-appwrite": {
"method": "createFile",
"group": "files",
"weight": 160,
"weight": 150,
"cookies": false,
"type": "upload",
"demo": "storage\/create-file.md",
@ -8244,7 +8269,7 @@
"x-appwrite": {
"method": "getFile",
"group": "files",
"weight": 162,
"weight": 152,
"cookies": false,
"type": "",
"demo": "storage\/get-file.md",
@ -8316,7 +8341,7 @@
"x-appwrite": {
"method": "updateFile",
"group": "files",
"weight": 167,
"weight": 157,
"cookies": false,
"type": "",
"demo": "storage\/update-file.md",
@ -8407,7 +8432,7 @@
"x-appwrite": {
"method": "deleteFile",
"group": "files",
"weight": 168,
"weight": 158,
"cookies": false,
"type": "",
"demo": "storage\/delete-file.md",
@ -8474,7 +8499,7 @@
"x-appwrite": {
"method": "getFileDownload",
"group": "files",
"weight": 164,
"weight": 154,
"cookies": false,
"type": "location",
"demo": "storage\/get-file-download.md",
@ -8552,7 +8577,7 @@
"x-appwrite": {
"method": "getFilePreview",
"group": "files",
"weight": 163,
"weight": 153,
"cookies": false,
"type": "location",
"demo": "storage\/get-file-preview.md",
@ -8780,7 +8805,7 @@
"x-appwrite": {
"method": "getFileView",
"group": "files",
"weight": 165,
"weight": 155,
"cookies": false,
"type": "location",
"demo": "storage\/get-file-view.md",
@ -10281,7 +10306,7 @@
"x-appwrite": {
"method": "list",
"group": "teams",
"weight": 172,
"weight": 162,
"cookies": false,
"type": "",
"demo": "teams\/list.md",
@ -10368,7 +10393,7 @@
"x-appwrite": {
"method": "create",
"group": "teams",
"weight": 171,
"weight": 161,
"cookies": false,
"type": "",
"demo": "teams\/create.md",
@ -10453,7 +10478,7 @@
"x-appwrite": {
"method": "get",
"group": "teams",
"weight": 173,
"weight": 163,
"cookies": false,
"type": "",
"demo": "teams\/get.md",
@ -10515,7 +10540,7 @@
"x-appwrite": {
"method": "updateName",
"group": "teams",
"weight": 175,
"weight": 165,
"cookies": false,
"type": "",
"demo": "teams\/update-name.md",
@ -10589,7 +10614,7 @@
"x-appwrite": {
"method": "delete",
"group": "teams",
"weight": 177,
"weight": 167,
"cookies": false,
"type": "",
"demo": "teams\/delete.md",
@ -10653,7 +10678,7 @@
"x-appwrite": {
"method": "listMemberships",
"group": "memberships",
"weight": 179,
"weight": 169,
"cookies": false,
"type": "",
"demo": "teams\/list-memberships.md",
@ -10750,7 +10775,7 @@
"x-appwrite": {
"method": "createMembership",
"group": "memberships",
"weight": 178,
"weight": 168,
"cookies": false,
"type": "",
"demo": "teams\/create-membership.md",
@ -10814,7 +10839,14 @@
"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"
"type": "string",
"enum": [
"admin",
"developer",
"owner"
],
"x-enum-name": null,
"x-enum-keys": []
}
},
"url": {
@ -10861,7 +10893,7 @@
"x-appwrite": {
"method": "getMembership",
"group": "memberships",
"weight": 180,
"weight": 170,
"cookies": false,
"type": "",
"demo": "teams\/get-membership.md",
@ -10933,7 +10965,7 @@
"x-appwrite": {
"method": "updateMembership",
"group": "memberships",
"weight": 181,
"weight": 171,
"cookies": false,
"type": "",
"demo": "teams\/update-membership.md",
@ -10992,7 +11024,14 @@
"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"
"type": "string",
"enum": [
"admin",
"developer",
"owner"
],
"x-enum-name": null,
"x-enum-keys": []
}
}
},
@ -11020,7 +11059,7 @@
"x-appwrite": {
"method": "deleteMembership",
"group": "memberships",
"weight": 183,
"weight": 173,
"cookies": false,
"type": "",
"demo": "teams\/delete-membership.md",
@ -11094,7 +11133,7 @@
"x-appwrite": {
"method": "updateMembershipStatus",
"group": "memberships",
"weight": 182,
"weight": 172,
"cookies": false,
"type": "",
"demo": "teams\/update-membership-status.md",
@ -11192,7 +11231,7 @@
"x-appwrite": {
"method": "getPrefs",
"group": "teams",
"weight": 174,
"weight": 164,
"cookies": false,
"type": "",
"demo": "teams\/get-prefs.md",
@ -11253,7 +11292,7 @@
"x-appwrite": {
"method": "updatePrefs",
"group": "teams",
"weight": 176,
"weight": 166,
"cookies": false,
"type": "",
"demo": "teams\/update-prefs.md",

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -258,7 +258,7 @@
"x-appwrite": {
"method": "listIdentities",
"group": "identities",
"weight": 58,
"weight": 48,
"cookies": false,
"type": "",
"demo": "account\/list-identities.md",
@ -328,7 +328,7 @@
"x-appwrite": {
"method": "deleteIdentity",
"group": "identities",
"weight": 59,
"weight": 49,
"cookies": false,
"type": "",
"demo": "account\/delete-identity.md",
@ -517,7 +517,7 @@
"x-appwrite": {
"method": "updateMFA",
"group": "mfa",
"weight": 45,
"weight": 306,
"cookies": false,
"type": "",
"demo": "account\/update-mfa.md",
@ -587,7 +587,7 @@
"x-appwrite": {
"method": "createMfaAuthenticator",
"group": "mfa",
"weight": 47,
"weight": 308,
"cookies": false,
"type": "",
"demo": "account\/create-mfa-authenticator.md",
@ -707,7 +707,7 @@
"x-appwrite": {
"method": "updateMfaAuthenticator",
"group": "mfa",
"weight": 48,
"weight": 309,
"cookies": false,
"type": "",
"demo": "account\/update-mfa-authenticator.md",
@ -843,7 +843,7 @@
"x-appwrite": {
"method": "deleteMfaAuthenticator",
"group": "mfa",
"weight": 52,
"weight": 310,
"cookies": false,
"type": "",
"demo": "account\/delete-mfa-authenticator.md",
@ -939,7 +939,7 @@
]
}
},
"\/account\/mfa\/challenge": {
"\/account\/mfa\/challenges": {
"post": {
"summary": "Create MFA challenge",
"operationId": "accountCreateMfaChallenge",
@ -963,7 +963,7 @@
"x-appwrite": {
"method": "createMfaChallenge",
"group": "mfa",
"weight": 53,
"weight": 314,
"cookies": false,
"type": "",
"demo": "account\/create-mfa-challenge.md",
@ -1091,7 +1091,7 @@
"x-appwrite": {
"method": "updateMfaChallenge",
"group": "mfa",
"weight": 54,
"weight": 315,
"cookies": false,
"type": "",
"demo": "account\/update-mfa-challenge.md",
@ -1225,7 +1225,7 @@
"x-appwrite": {
"method": "listMfaFactors",
"group": "mfa",
"weight": 46,
"weight": 307,
"cookies": false,
"type": "",
"demo": "account\/list-mfa-factors.md",
@ -1322,7 +1322,7 @@
"x-appwrite": {
"method": "getMfaRecoveryCodes",
"group": "mfa",
"weight": 51,
"weight": 313,
"cookies": false,
"type": "",
"demo": "account\/get-mfa-recovery-codes.md",
@ -1417,7 +1417,7 @@
"x-appwrite": {
"method": "createMfaRecoveryCodes",
"group": "mfa",
"weight": 49,
"weight": 311,
"cookies": false,
"type": "",
"demo": "account\/create-mfa-recovery-codes.md",
@ -1512,7 +1512,7 @@
"x-appwrite": {
"method": "updateMfaRecoveryCodes",
"group": "mfa",
"weight": 50,
"weight": 312,
"cookies": false,
"type": "",
"demo": "account\/update-mfa-recovery-codes.md",
@ -2918,7 +2918,7 @@
"x-appwrite": {
"method": "createPushTarget",
"group": "pushTargets",
"weight": 55,
"weight": 45,
"cookies": false,
"type": "",
"demo": "account\/create-push-target.md",
@ -2997,7 +2997,7 @@
"x-appwrite": {
"method": "updatePushTarget",
"group": "pushTargets",
"weight": 56,
"weight": 46,
"cookies": false,
"type": "",
"demo": "account\/update-push-target.md",
@ -3068,7 +3068,7 @@
"x-appwrite": {
"method": "deletePushTarget",
"group": "pushTargets",
"weight": 57,
"weight": 47,
"cookies": false,
"type": "",
"demo": "account\/delete-push-target.md",
@ -3879,7 +3879,7 @@
"x-appwrite": {
"method": "getBrowser",
"group": null,
"weight": 61,
"weight": 51,
"cookies": false,
"type": "location",
"demo": "avatars\/get-browser.md",
@ -4005,7 +4005,7 @@
"x-appwrite": {
"method": "getCreditCard",
"group": null,
"weight": 60,
"weight": 50,
"cookies": false,
"type": "location",
"demo": "avatars\/get-credit-card.md",
@ -4137,7 +4137,7 @@
"x-appwrite": {
"method": "getFavicon",
"group": null,
"weight": 64,
"weight": 54,
"cookies": false,
"type": "location",
"demo": "avatars\/get-favicon.md",
@ -4195,7 +4195,7 @@
"x-appwrite": {
"method": "getFlag",
"group": null,
"weight": 62,
"weight": 52,
"cookies": false,
"type": "location",
"demo": "avatars\/get-flag.md",
@ -4683,7 +4683,7 @@
"x-appwrite": {
"method": "getImage",
"group": null,
"weight": 63,
"weight": 53,
"cookies": false,
"type": "location",
"demo": "avatars\/get-image.md",
@ -4765,7 +4765,7 @@
"x-appwrite": {
"method": "getInitials",
"group": null,
"weight": 66,
"weight": 56,
"cookies": false,
"type": "location",
"demo": "avatars\/get-initials.md",
@ -4857,7 +4857,7 @@
"x-appwrite": {
"method": "getQR",
"group": null,
"weight": 65,
"weight": 55,
"cookies": false,
"type": "location",
"demo": "avatars\/get-qr.md",
@ -4949,7 +4949,7 @@
"x-appwrite": {
"method": "getScreenshot",
"group": null,
"weight": 67,
"weight": 57,
"cookies": false,
"type": "location",
"demo": "avatars\/get-screenshot.md",
@ -4993,7 +4993,7 @@
"required": false,
"schema": {
"type": "object",
"x-example": "{}",
"x-example": "{\"Authorization\":\"Bearer token123\",\"X-Custom-Header\":\"value\"}",
"default": {}
},
"in": "query"
@ -5005,7 +5005,7 @@
"schema": {
"type": "integer",
"format": "int32",
"x-example": 1,
"x-example": "1920",
"default": 1280
},
"in": "query"
@ -5017,7 +5017,7 @@
"schema": {
"type": "integer",
"format": "int32",
"x-example": 1,
"x-example": "1080",
"default": 720
},
"in": "query"
@ -5029,7 +5029,7 @@
"schema": {
"type": "number",
"format": "float",
"x-example": 0.1,
"x-example": "2",
"default": 1
},
"in": "query"
@ -5040,7 +5040,7 @@
"required": false,
"schema": {
"type": "string",
"x-example": "light",
"x-example": "dark",
"enum": [
"light",
"dark"
@ -5057,7 +5057,7 @@
"required": false,
"schema": {
"type": "string",
"x-example": "<USER_AGENT>",
"x-example": "Mozilla\/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit\/605.1.15",
"default": ""
},
"in": "query"
@ -5068,7 +5068,7 @@
"required": false,
"schema": {
"type": "boolean",
"x-example": false,
"x-example": "true",
"default": false
},
"in": "query"
@ -5079,7 +5079,7 @@
"required": false,
"schema": {
"type": "string",
"x-example": "<LOCALE>",
"x-example": "en-US",
"default": ""
},
"in": "query"
@ -5090,7 +5090,7 @@
"required": false,
"schema": {
"type": "string",
"x-example": "africa\/abidjan",
"x-example": "america\/new_york",
"enum": [
"africa\/abidjan",
"africa\/accra",
@ -5525,7 +5525,7 @@
"schema": {
"type": "number",
"format": "float",
"x-example": -90,
"x-example": "37.7749",
"default": 0
},
"in": "query"
@ -5537,7 +5537,7 @@
"schema": {
"type": "number",
"format": "float",
"x-example": -180,
"x-example": "-122.4194",
"default": 0
},
"in": "query"
@ -5549,7 +5549,7 @@
"schema": {
"type": "number",
"format": "float",
"x-example": 0,
"x-example": "100",
"default": 0
},
"in": "query"
@ -5560,7 +5560,7 @@
"required": false,
"schema": {
"type": "boolean",
"x-example": false,
"x-example": "true",
"default": false
},
"in": "query"
@ -5572,8 +5572,33 @@
"schema": {
"type": "array",
"items": {
"type": "string"
"type": "string",
"enum": [
"geolocation",
"camera",
"microphone",
"notifications",
"midi",
"push",
"clipboard-read",
"clipboard-write",
"payment-handler",
"usb",
"bluetooth",
"accelerometer",
"gyroscope",
"magnetometer",
"ambient-light-sensor",
"background-sync",
"persistent-storage",
"screen-wake-lock",
"web-share",
"xr-spatial-tracking"
],
"x-enum-name": "BrowserPermission",
"x-enum-keys": []
},
"x-example": "[\"geolocation\",\"notifications\"]",
"default": []
},
"in": "query"
@ -5585,7 +5610,7 @@
"schema": {
"type": "integer",
"format": "int32",
"x-example": 0,
"x-example": "3",
"default": 0
},
"in": "query"
@ -5597,7 +5622,7 @@
"schema": {
"type": "integer",
"format": "int32",
"x-example": 0,
"x-example": "800",
"default": 0
},
"in": "query"
@ -5609,7 +5634,7 @@
"schema": {
"type": "integer",
"format": "int32",
"x-example": 0,
"x-example": "600",
"default": 0
},
"in": "query"
@ -5621,7 +5646,7 @@
"schema": {
"type": "integer",
"format": "int32",
"x-example": -1,
"x-example": "85",
"default": -1
},
"in": "query"
@ -5632,7 +5657,7 @@
"required": false,
"schema": {
"type": "string",
"x-example": "jpg",
"x-example": "jpeg",
"enum": [
"jpg",
"jpeg",
@ -7370,7 +7395,7 @@
"x-appwrite": {
"method": "query",
"group": "graphql",
"weight": 251,
"weight": 241,
"cookies": false,
"type": "graphql",
"demo": "graphql\/query.md",
@ -7422,7 +7447,7 @@
"x-appwrite": {
"method": "mutation",
"group": "graphql",
"weight": 250,
"weight": 240,
"cookies": false,
"type": "graphql",
"demo": "graphql\/mutation.md",
@ -7474,7 +7499,7 @@
"x-appwrite": {
"method": "get",
"group": null,
"weight": 71,
"weight": 61,
"cookies": false,
"type": "",
"demo": "locale\/get.md",
@ -7526,7 +7551,7 @@
"x-appwrite": {
"method": "listCodes",
"group": null,
"weight": 72,
"weight": 62,
"cookies": false,
"type": "",
"demo": "locale\/list-codes.md",
@ -7578,7 +7603,7 @@
"x-appwrite": {
"method": "listContinents",
"group": null,
"weight": 76,
"weight": 66,
"cookies": false,
"type": "",
"demo": "locale\/list-continents.md",
@ -7630,7 +7655,7 @@
"x-appwrite": {
"method": "listCountries",
"group": null,
"weight": 73,
"weight": 63,
"cookies": false,
"type": "",
"demo": "locale\/list-countries.md",
@ -7682,7 +7707,7 @@
"x-appwrite": {
"method": "listCountriesEU",
"group": null,
"weight": 74,
"weight": 64,
"cookies": false,
"type": "",
"demo": "locale\/list-countries-eu.md",
@ -7734,7 +7759,7 @@
"x-appwrite": {
"method": "listCountriesPhones",
"group": null,
"weight": 75,
"weight": 65,
"cookies": false,
"type": "",
"demo": "locale\/list-countries-phones.md",
@ -7786,7 +7811,7 @@
"x-appwrite": {
"method": "listCurrencies",
"group": null,
"weight": 77,
"weight": 67,
"cookies": false,
"type": "",
"demo": "locale\/list-currencies.md",
@ -7838,7 +7863,7 @@
"x-appwrite": {
"method": "listLanguages",
"group": null,
"weight": 78,
"weight": 68,
"cookies": false,
"type": "",
"demo": "locale\/list-languages.md",
@ -7890,7 +7915,7 @@
"x-appwrite": {
"method": "createSubscriber",
"group": "subscribers",
"weight": 300,
"weight": 290,
"cookies": false,
"type": "",
"demo": "messaging\/create-subscriber.md",
@ -7973,7 +7998,7 @@
"x-appwrite": {
"method": "deleteSubscriber",
"group": "subscribers",
"weight": 304,
"weight": 294,
"cookies": false,
"type": "",
"demo": "messaging\/delete-subscriber.md",
@ -8048,7 +8073,7 @@
"x-appwrite": {
"method": "listFiles",
"group": "files",
"weight": 161,
"weight": 151,
"cookies": false,
"type": "",
"demo": "storage\/list-files.md",
@ -8145,7 +8170,7 @@
"x-appwrite": {
"method": "createFile",
"group": "files",
"weight": 160,
"weight": 150,
"cookies": false,
"type": "upload",
"demo": "storage\/create-file.md",
@ -8244,7 +8269,7 @@
"x-appwrite": {
"method": "getFile",
"group": "files",
"weight": 162,
"weight": 152,
"cookies": false,
"type": "",
"demo": "storage\/get-file.md",
@ -8316,7 +8341,7 @@
"x-appwrite": {
"method": "updateFile",
"group": "files",
"weight": 167,
"weight": 157,
"cookies": false,
"type": "",
"demo": "storage\/update-file.md",
@ -8407,7 +8432,7 @@
"x-appwrite": {
"method": "deleteFile",
"group": "files",
"weight": 168,
"weight": 158,
"cookies": false,
"type": "",
"demo": "storage\/delete-file.md",
@ -8474,7 +8499,7 @@
"x-appwrite": {
"method": "getFileDownload",
"group": "files",
"weight": 164,
"weight": 154,
"cookies": false,
"type": "location",
"demo": "storage\/get-file-download.md",
@ -8552,7 +8577,7 @@
"x-appwrite": {
"method": "getFilePreview",
"group": "files",
"weight": 163,
"weight": 153,
"cookies": false,
"type": "location",
"demo": "storage\/get-file-preview.md",
@ -8780,7 +8805,7 @@
"x-appwrite": {
"method": "getFileView",
"group": "files",
"weight": 165,
"weight": 155,
"cookies": false,
"type": "location",
"demo": "storage\/get-file-view.md",
@ -10281,7 +10306,7 @@
"x-appwrite": {
"method": "list",
"group": "teams",
"weight": 172,
"weight": 162,
"cookies": false,
"type": "",
"demo": "teams\/list.md",
@ -10368,7 +10393,7 @@
"x-appwrite": {
"method": "create",
"group": "teams",
"weight": 171,
"weight": 161,
"cookies": false,
"type": "",
"demo": "teams\/create.md",
@ -10453,7 +10478,7 @@
"x-appwrite": {
"method": "get",
"group": "teams",
"weight": 173,
"weight": 163,
"cookies": false,
"type": "",
"demo": "teams\/get.md",
@ -10515,7 +10540,7 @@
"x-appwrite": {
"method": "updateName",
"group": "teams",
"weight": 175,
"weight": 165,
"cookies": false,
"type": "",
"demo": "teams\/update-name.md",
@ -10589,7 +10614,7 @@
"x-appwrite": {
"method": "delete",
"group": "teams",
"weight": 177,
"weight": 167,
"cookies": false,
"type": "",
"demo": "teams\/delete.md",
@ -10653,7 +10678,7 @@
"x-appwrite": {
"method": "listMemberships",
"group": "memberships",
"weight": 179,
"weight": 169,
"cookies": false,
"type": "",
"demo": "teams\/list-memberships.md",
@ -10750,7 +10775,7 @@
"x-appwrite": {
"method": "createMembership",
"group": "memberships",
"weight": 178,
"weight": 168,
"cookies": false,
"type": "",
"demo": "teams\/create-membership.md",
@ -10814,7 +10839,14 @@
"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"
"type": "string",
"enum": [
"admin",
"developer",
"owner"
],
"x-enum-name": null,
"x-enum-keys": []
}
},
"url": {
@ -10861,7 +10893,7 @@
"x-appwrite": {
"method": "getMembership",
"group": "memberships",
"weight": 180,
"weight": 170,
"cookies": false,
"type": "",
"demo": "teams\/get-membership.md",
@ -10933,7 +10965,7 @@
"x-appwrite": {
"method": "updateMembership",
"group": "memberships",
"weight": 181,
"weight": 171,
"cookies": false,
"type": "",
"demo": "teams\/update-membership.md",
@ -10992,7 +11024,14 @@
"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"
"type": "string",
"enum": [
"admin",
"developer",
"owner"
],
"x-enum-name": null,
"x-enum-keys": []
}
}
},
@ -11020,7 +11059,7 @@
"x-appwrite": {
"method": "deleteMembership",
"group": "memberships",
"weight": 183,
"weight": 173,
"cookies": false,
"type": "",
"demo": "teams\/delete-membership.md",
@ -11094,7 +11133,7 @@
"x-appwrite": {
"method": "updateMembershipStatus",
"group": "memberships",
"weight": 182,
"weight": 172,
"cookies": false,
"type": "",
"demo": "teams\/update-membership-status.md",
@ -11192,7 +11231,7 @@
"x-appwrite": {
"method": "getPrefs",
"group": "teams",
"weight": 174,
"weight": 164,
"cookies": false,
"type": "",
"demo": "teams\/get-prefs.md",
@ -11253,7 +11292,7 @@
"x-appwrite": {
"method": "updatePrefs",
"group": "teams",
"weight": 176,
"weight": 166,
"cookies": false,
"type": "",
"demo": "teams\/update-prefs.md",

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -314,7 +314,7 @@
"x-appwrite": {
"method": "listIdentities",
"group": "identities",
"weight": 58,
"weight": 48,
"cookies": false,
"type": "",
"demo": "account\/list-identities.md",
@ -385,7 +385,7 @@
"x-appwrite": {
"method": "deleteIdentity",
"group": "identities",
"weight": 59,
"weight": 49,
"cookies": false,
"type": "",
"demo": "account\/delete-identity.md",
@ -573,7 +573,7 @@
"x-appwrite": {
"method": "updateMFA",
"group": "mfa",
"weight": 45,
"weight": 306,
"cookies": false,
"type": "",
"demo": "account\/update-mfa.md",
@ -646,7 +646,7 @@
"x-appwrite": {
"method": "createMfaAuthenticator",
"group": "mfa",
"weight": 47,
"weight": 308,
"cookies": false,
"type": "",
"demo": "account\/create-mfa-authenticator.md",
@ -766,7 +766,7 @@
"x-appwrite": {
"method": "updateMfaAuthenticator",
"group": "mfa",
"weight": 48,
"weight": 309,
"cookies": false,
"type": "",
"demo": "account\/update-mfa-authenticator.md",
@ -903,7 +903,7 @@
"x-appwrite": {
"method": "deleteMfaAuthenticator",
"group": "mfa",
"weight": 52,
"weight": 310,
"cookies": false,
"type": "",
"demo": "account\/delete-mfa-authenticator.md",
@ -997,7 +997,7 @@
]
}
},
"\/account\/mfa\/challenge": {
"\/account\/mfa\/challenges": {
"post": {
"summary": "Create MFA challenge",
"operationId": "accountCreateMfaChallenge",
@ -1023,7 +1023,7 @@
"x-appwrite": {
"method": "createMfaChallenge",
"group": "mfa",
"weight": 53,
"weight": 314,
"cookies": false,
"type": "",
"demo": "account\/create-mfa-challenge.md",
@ -1154,7 +1154,7 @@
"x-appwrite": {
"method": "updateMfaChallenge",
"group": "mfa",
"weight": 54,
"weight": 315,
"cookies": false,
"type": "",
"demo": "account\/update-mfa-challenge.md",
@ -1290,7 +1290,7 @@
"x-appwrite": {
"method": "listMfaFactors",
"group": "mfa",
"weight": 46,
"weight": 307,
"cookies": false,
"type": "",
"demo": "account\/list-mfa-factors.md",
@ -1387,7 +1387,7 @@
"x-appwrite": {
"method": "getMfaRecoveryCodes",
"group": "mfa",
"weight": 51,
"weight": 313,
"cookies": false,
"type": "",
"demo": "account\/get-mfa-recovery-codes.md",
@ -1484,7 +1484,7 @@
"x-appwrite": {
"method": "createMfaRecoveryCodes",
"group": "mfa",
"weight": 49,
"weight": 311,
"cookies": false,
"type": "",
"demo": "account\/create-mfa-recovery-codes.md",
@ -1581,7 +1581,7 @@
"x-appwrite": {
"method": "updateMfaRecoveryCodes",
"group": "mfa",
"weight": 50,
"weight": 312,
"cookies": false,
"type": "",
"demo": "account\/update-mfa-recovery-codes.md",
@ -3033,7 +3033,7 @@
"x-appwrite": {
"method": "createPushTarget",
"group": "pushTargets",
"weight": 55,
"weight": 45,
"cookies": false,
"type": "",
"demo": "account\/create-push-target.md",
@ -3117,7 +3117,7 @@
"x-appwrite": {
"method": "updatePushTarget",
"group": "pushTargets",
"weight": 56,
"weight": 46,
"cookies": false,
"type": "",
"demo": "account\/update-push-target.md",
@ -3189,7 +3189,7 @@
"x-appwrite": {
"method": "deletePushTarget",
"group": "pushTargets",
"weight": 57,
"weight": 47,
"cookies": false,
"type": "",
"demo": "account\/delete-push-target.md",
@ -4030,7 +4030,7 @@
"x-appwrite": {
"method": "getBrowser",
"group": null,
"weight": 61,
"weight": 51,
"cookies": false,
"type": "location",
"demo": "avatars\/get-browser.md",
@ -4154,7 +4154,7 @@
"x-appwrite": {
"method": "getCreditCard",
"group": null,
"weight": 60,
"weight": 50,
"cookies": false,
"type": "location",
"demo": "avatars\/get-credit-card.md",
@ -4284,7 +4284,7 @@
"x-appwrite": {
"method": "getFavicon",
"group": null,
"weight": 64,
"weight": 54,
"cookies": false,
"type": "location",
"demo": "avatars\/get-favicon.md",
@ -4346,7 +4346,7 @@
"x-appwrite": {
"method": "getFlag",
"group": null,
"weight": 62,
"weight": 52,
"cookies": false,
"type": "location",
"demo": "avatars\/get-flag.md",
@ -4832,7 +4832,7 @@
"x-appwrite": {
"method": "getImage",
"group": null,
"weight": 63,
"weight": 53,
"cookies": false,
"type": "location",
"demo": "avatars\/get-image.md",
@ -4914,7 +4914,7 @@
"x-appwrite": {
"method": "getInitials",
"group": null,
"weight": 66,
"weight": 56,
"cookies": false,
"type": "location",
"demo": "avatars\/get-initials.md",
@ -5004,7 +5004,7 @@
"x-appwrite": {
"method": "getQR",
"group": null,
"weight": 65,
"weight": 55,
"cookies": false,
"type": "location",
"demo": "avatars\/get-qr.md",
@ -5094,7 +5094,7 @@
"x-appwrite": {
"method": "getScreenshot",
"group": null,
"weight": 67,
"weight": 57,
"cookies": false,
"type": "location",
"demo": "avatars\/get-screenshot.md",
@ -5135,7 +5135,7 @@
"required": false,
"type": "object",
"default": [],
"x-example": "{}",
"x-example": "{\"Authorization\":\"Bearer token123\",\"X-Custom-Header\":\"value\"}",
"in": "query"
},
{
@ -5144,7 +5144,7 @@
"required": false,
"type": "integer",
"format": "int32",
"x-example": 1,
"x-example": "1920",
"default": 1280,
"in": "query"
},
@ -5154,7 +5154,7 @@
"required": false,
"type": "integer",
"format": "int32",
"x-example": 1,
"x-example": "1080",
"default": 720,
"in": "query"
},
@ -5164,7 +5164,7 @@
"required": false,
"type": "number",
"format": "float",
"x-example": 0.1,
"x-example": "2",
"default": 1,
"in": "query"
},
@ -5173,7 +5173,7 @@
"description": "Browser theme. Pass \"light\" or \"dark\". Defaults to \"light\".",
"required": false,
"type": "string",
"x-example": "light",
"x-example": "dark",
"enum": [
"light",
"dark"
@ -5188,7 +5188,7 @@
"description": "Custom user agent string. Defaults to browser default.",
"required": false,
"type": "string",
"x-example": "<USER_AGENT>",
"x-example": "Mozilla\/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit\/605.1.15",
"default": "",
"in": "query"
},
@ -5197,7 +5197,7 @@
"description": "Capture full page scroll. Pass 0 for viewport only, or 1 for full page. Defaults to 0.",
"required": false,
"type": "boolean",
"x-example": false,
"x-example": "true",
"default": false,
"in": "query"
},
@ -5206,7 +5206,7 @@
"description": "Browser locale (e.g., \"en-US\", \"fr-FR\"). Defaults to browser default.",
"required": false,
"type": "string",
"x-example": "<LOCALE>",
"x-example": "en-US",
"default": "",
"in": "query"
},
@ -5215,7 +5215,7 @@
"description": "IANA timezone identifier (e.g., \"America\/New_York\", \"Europe\/London\"). Defaults to browser default.",
"required": false,
"type": "string",
"x-example": "africa\/abidjan",
"x-example": "america\/new_york",
"enum": [
"africa\/abidjan",
"africa\/accra",
@ -5648,7 +5648,7 @@
"required": false,
"type": "number",
"format": "float",
"x-example": -90,
"x-example": "37.7749",
"default": 0,
"in": "query"
},
@ -5658,7 +5658,7 @@
"required": false,
"type": "number",
"format": "float",
"x-example": -180,
"x-example": "-122.4194",
"default": 0,
"in": "query"
},
@ -5668,7 +5668,7 @@
"required": false,
"type": "number",
"format": "float",
"x-example": 0,
"x-example": "100",
"default": 0,
"in": "query"
},
@ -5677,7 +5677,7 @@
"description": "Enable touch support. Pass 0 for no touch, or 1 for touch enabled. Defaults to 0.",
"required": false,
"type": "boolean",
"x-example": false,
"x-example": "true",
"default": false,
"in": "query"
},
@ -5688,8 +5688,33 @@
"type": "array",
"collectionFormat": "multi",
"items": {
"type": "string"
"type": "string",
"enum": [
"geolocation",
"camera",
"microphone",
"notifications",
"midi",
"push",
"clipboard-read",
"clipboard-write",
"payment-handler",
"usb",
"bluetooth",
"accelerometer",
"gyroscope",
"magnetometer",
"ambient-light-sensor",
"background-sync",
"persistent-storage",
"screen-wake-lock",
"web-share",
"xr-spatial-tracking"
],
"x-enum-name": "BrowserPermission",
"x-enum-keys": []
},
"x-example": "[\"geolocation\",\"notifications\"]",
"default": [],
"in": "query"
},
@ -5699,7 +5724,7 @@
"required": false,
"type": "integer",
"format": "int32",
"x-example": 0,
"x-example": "3",
"default": 0,
"in": "query"
},
@ -5709,7 +5734,7 @@
"required": false,
"type": "integer",
"format": "int32",
"x-example": 0,
"x-example": "800",
"default": 0,
"in": "query"
},
@ -5719,7 +5744,7 @@
"required": false,
"type": "integer",
"format": "int32",
"x-example": 0,
"x-example": "600",
"default": 0,
"in": "query"
},
@ -5729,7 +5754,7 @@
"required": false,
"type": "integer",
"format": "int32",
"x-example": -1,
"x-example": "85",
"default": -1,
"in": "query"
},
@ -5738,7 +5763,7 @@
"description": "Output format type (jpeg, jpg, png, gif and webp).",
"required": false,
"type": "string",
"x-example": "jpg",
"x-example": "jpeg",
"enum": [
"jpg",
"jpeg",
@ -7420,7 +7445,7 @@
"x-appwrite": {
"method": "query",
"group": "graphql",
"weight": 251,
"weight": 241,
"cookies": false,
"type": "graphql",
"demo": "graphql\/query.md",
@ -7493,7 +7518,7 @@
"x-appwrite": {
"method": "mutation",
"group": "graphql",
"weight": 250,
"weight": 240,
"cookies": false,
"type": "graphql",
"demo": "graphql\/mutation.md",
@ -7564,7 +7589,7 @@
"x-appwrite": {
"method": "get",
"group": null,
"weight": 71,
"weight": 61,
"cookies": false,
"type": "",
"demo": "locale\/get.md",
@ -7615,7 +7640,7 @@
"x-appwrite": {
"method": "listCodes",
"group": null,
"weight": 72,
"weight": 62,
"cookies": false,
"type": "",
"demo": "locale\/list-codes.md",
@ -7666,7 +7691,7 @@
"x-appwrite": {
"method": "listContinents",
"group": null,
"weight": 76,
"weight": 66,
"cookies": false,
"type": "",
"demo": "locale\/list-continents.md",
@ -7717,7 +7742,7 @@
"x-appwrite": {
"method": "listCountries",
"group": null,
"weight": 73,
"weight": 63,
"cookies": false,
"type": "",
"demo": "locale\/list-countries.md",
@ -7768,7 +7793,7 @@
"x-appwrite": {
"method": "listCountriesEU",
"group": null,
"weight": 74,
"weight": 64,
"cookies": false,
"type": "",
"demo": "locale\/list-countries-eu.md",
@ -7819,7 +7844,7 @@
"x-appwrite": {
"method": "listCountriesPhones",
"group": null,
"weight": 75,
"weight": 65,
"cookies": false,
"type": "",
"demo": "locale\/list-countries-phones.md",
@ -7870,7 +7895,7 @@
"x-appwrite": {
"method": "listCurrencies",
"group": null,
"weight": 77,
"weight": 67,
"cookies": false,
"type": "",
"demo": "locale\/list-currencies.md",
@ -7921,7 +7946,7 @@
"x-appwrite": {
"method": "listLanguages",
"group": null,
"weight": 78,
"weight": 68,
"cookies": false,
"type": "",
"demo": "locale\/list-languages.md",
@ -7974,7 +7999,7 @@
"x-appwrite": {
"method": "createSubscriber",
"group": "subscribers",
"weight": 300,
"weight": 290,
"cookies": false,
"type": "",
"demo": "messaging\/create-subscriber.md",
@ -8058,7 +8083,7 @@
"x-appwrite": {
"method": "deleteSubscriber",
"group": "subscribers",
"weight": 304,
"weight": 294,
"cookies": false,
"type": "",
"demo": "messaging\/delete-subscriber.md",
@ -8128,7 +8153,7 @@
"x-appwrite": {
"method": "listFiles",
"group": "files",
"weight": 161,
"weight": 151,
"cookies": false,
"type": "",
"demo": "storage\/list-files.md",
@ -8219,7 +8244,7 @@
"x-appwrite": {
"method": "createFile",
"group": "files",
"weight": 160,
"weight": 150,
"cookies": false,
"type": "upload",
"demo": "storage\/create-file.md",
@ -8308,7 +8333,7 @@
"x-appwrite": {
"method": "getFile",
"group": "files",
"weight": 162,
"weight": 152,
"cookies": false,
"type": "",
"demo": "storage\/get-file.md",
@ -8377,7 +8402,7 @@
"x-appwrite": {
"method": "updateFile",
"group": "files",
"weight": 167,
"weight": 157,
"cookies": false,
"type": "",
"demo": "storage\/update-file.md",
@ -8467,7 +8492,7 @@
"x-appwrite": {
"method": "deleteFile",
"group": "files",
"weight": 168,
"weight": 158,
"cookies": false,
"type": "",
"demo": "storage\/delete-file.md",
@ -8536,7 +8561,7 @@
"x-appwrite": {
"method": "getFileDownload",
"group": "files",
"weight": 164,
"weight": 154,
"cookies": false,
"type": "location",
"demo": "storage\/get-file-download.md",
@ -8614,7 +8639,7 @@
"x-appwrite": {
"method": "getFilePreview",
"group": "files",
"weight": 163,
"weight": 153,
"cookies": false,
"type": "location",
"demo": "storage\/get-file-preview.md",
@ -8820,7 +8845,7 @@
"x-appwrite": {
"method": "getFileView",
"group": "files",
"weight": 165,
"weight": 155,
"cookies": false,
"type": "location",
"demo": "storage\/get-file-view.md",
@ -10265,7 +10290,7 @@
"x-appwrite": {
"method": "list",
"group": "teams",
"weight": 172,
"weight": 162,
"cookies": false,
"type": "",
"demo": "teams\/list.md",
@ -10348,7 +10373,7 @@
"x-appwrite": {
"method": "create",
"group": "teams",
"weight": 171,
"weight": 161,
"cookies": false,
"type": "",
"demo": "teams\/create.md",
@ -10437,7 +10462,7 @@
"x-appwrite": {
"method": "get",
"group": "teams",
"weight": 173,
"weight": 163,
"cookies": false,
"type": "",
"demo": "teams\/get.md",
@ -10498,7 +10523,7 @@
"x-appwrite": {
"method": "updateName",
"group": "teams",
"weight": 175,
"weight": 165,
"cookies": false,
"type": "",
"demo": "teams\/update-name.md",
@ -10572,7 +10597,7 @@
"x-appwrite": {
"method": "delete",
"group": "teams",
"weight": 177,
"weight": 167,
"cookies": false,
"type": "",
"demo": "teams\/delete.md",
@ -10633,7 +10658,7 @@
"x-appwrite": {
"method": "listMemberships",
"group": "memberships",
"weight": 179,
"weight": 169,
"cookies": false,
"type": "",
"demo": "teams\/list-memberships.md",
@ -10724,7 +10749,7 @@
"x-appwrite": {
"method": "createMembership",
"group": "memberships",
"weight": 178,
"weight": 168,
"cookies": false,
"type": "",
"demo": "teams\/create-membership.md",
@ -10788,7 +10813,14 @@
"default": null,
"x-example": null,
"items": {
"type": "string"
"type": "string",
"enum": [
"admin",
"developer",
"owner"
],
"x-enum-name": null,
"x-enum-keys": []
}
},
"url": {
@ -10836,7 +10868,7 @@
"x-appwrite": {
"method": "getMembership",
"group": "memberships",
"weight": 180,
"weight": 170,
"cookies": false,
"type": "",
"demo": "teams\/get-membership.md",
@ -10905,7 +10937,7 @@
"x-appwrite": {
"method": "updateMembership",
"group": "memberships",
"weight": 181,
"weight": 171,
"cookies": false,
"type": "",
"demo": "teams\/update-membership.md",
@ -10959,7 +10991,14 @@
"default": null,
"x-example": null,
"items": {
"type": "string"
"type": "string",
"enum": [
"admin",
"developer",
"owner"
],
"x-enum-name": null,
"x-enum-keys": []
}
}
},
@ -10990,7 +11029,7 @@
"x-appwrite": {
"method": "deleteMembership",
"group": "memberships",
"weight": 183,
"weight": 173,
"cookies": false,
"type": "",
"demo": "teams\/delete-membership.md",
@ -11061,7 +11100,7 @@
"x-appwrite": {
"method": "updateMembershipStatus",
"group": "memberships",
"weight": 182,
"weight": 172,
"cookies": false,
"type": "",
"demo": "teams\/update-membership-status.md",
@ -11155,7 +11194,7 @@
"x-appwrite": {
"method": "getPrefs",
"group": "teams",
"weight": 174,
"weight": 164,
"cookies": false,
"type": "",
"demo": "teams\/get-prefs.md",
@ -11216,7 +11255,7 @@
"x-appwrite": {
"method": "updatePrefs",
"group": "teams",
"weight": 176,
"weight": 166,
"cookies": false,
"type": "",
"demo": "teams\/update-prefs.md",

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -314,7 +314,7 @@
"x-appwrite": {
"method": "listIdentities",
"group": "identities",
"weight": 58,
"weight": 48,
"cookies": false,
"type": "",
"demo": "account\/list-identities.md",
@ -385,7 +385,7 @@
"x-appwrite": {
"method": "deleteIdentity",
"group": "identities",
"weight": 59,
"weight": 49,
"cookies": false,
"type": "",
"demo": "account\/delete-identity.md",
@ -573,7 +573,7 @@
"x-appwrite": {
"method": "updateMFA",
"group": "mfa",
"weight": 45,
"weight": 306,
"cookies": false,
"type": "",
"demo": "account\/update-mfa.md",
@ -646,7 +646,7 @@
"x-appwrite": {
"method": "createMfaAuthenticator",
"group": "mfa",
"weight": 47,
"weight": 308,
"cookies": false,
"type": "",
"demo": "account\/create-mfa-authenticator.md",
@ -766,7 +766,7 @@
"x-appwrite": {
"method": "updateMfaAuthenticator",
"group": "mfa",
"weight": 48,
"weight": 309,
"cookies": false,
"type": "",
"demo": "account\/update-mfa-authenticator.md",
@ -903,7 +903,7 @@
"x-appwrite": {
"method": "deleteMfaAuthenticator",
"group": "mfa",
"weight": 52,
"weight": 310,
"cookies": false,
"type": "",
"demo": "account\/delete-mfa-authenticator.md",
@ -997,7 +997,7 @@
]
}
},
"\/account\/mfa\/challenge": {
"\/account\/mfa\/challenges": {
"post": {
"summary": "Create MFA challenge",
"operationId": "accountCreateMfaChallenge",
@ -1023,7 +1023,7 @@
"x-appwrite": {
"method": "createMfaChallenge",
"group": "mfa",
"weight": 53,
"weight": 314,
"cookies": false,
"type": "",
"demo": "account\/create-mfa-challenge.md",
@ -1154,7 +1154,7 @@
"x-appwrite": {
"method": "updateMfaChallenge",
"group": "mfa",
"weight": 54,
"weight": 315,
"cookies": false,
"type": "",
"demo": "account\/update-mfa-challenge.md",
@ -1290,7 +1290,7 @@
"x-appwrite": {
"method": "listMfaFactors",
"group": "mfa",
"weight": 46,
"weight": 307,
"cookies": false,
"type": "",
"demo": "account\/list-mfa-factors.md",
@ -1387,7 +1387,7 @@
"x-appwrite": {
"method": "getMfaRecoveryCodes",
"group": "mfa",
"weight": 51,
"weight": 313,
"cookies": false,
"type": "",
"demo": "account\/get-mfa-recovery-codes.md",
@ -1484,7 +1484,7 @@
"x-appwrite": {
"method": "createMfaRecoveryCodes",
"group": "mfa",
"weight": 49,
"weight": 311,
"cookies": false,
"type": "",
"demo": "account\/create-mfa-recovery-codes.md",
@ -1581,7 +1581,7 @@
"x-appwrite": {
"method": "updateMfaRecoveryCodes",
"group": "mfa",
"weight": 50,
"weight": 312,
"cookies": false,
"type": "",
"demo": "account\/update-mfa-recovery-codes.md",
@ -3033,7 +3033,7 @@
"x-appwrite": {
"method": "createPushTarget",
"group": "pushTargets",
"weight": 55,
"weight": 45,
"cookies": false,
"type": "",
"demo": "account\/create-push-target.md",
@ -3117,7 +3117,7 @@
"x-appwrite": {
"method": "updatePushTarget",
"group": "pushTargets",
"weight": 56,
"weight": 46,
"cookies": false,
"type": "",
"demo": "account\/update-push-target.md",
@ -3189,7 +3189,7 @@
"x-appwrite": {
"method": "deletePushTarget",
"group": "pushTargets",
"weight": 57,
"weight": 47,
"cookies": false,
"type": "",
"demo": "account\/delete-push-target.md",
@ -4030,7 +4030,7 @@
"x-appwrite": {
"method": "getBrowser",
"group": null,
"weight": 61,
"weight": 51,
"cookies": false,
"type": "location",
"demo": "avatars\/get-browser.md",
@ -4154,7 +4154,7 @@
"x-appwrite": {
"method": "getCreditCard",
"group": null,
"weight": 60,
"weight": 50,
"cookies": false,
"type": "location",
"demo": "avatars\/get-credit-card.md",
@ -4284,7 +4284,7 @@
"x-appwrite": {
"method": "getFavicon",
"group": null,
"weight": 64,
"weight": 54,
"cookies": false,
"type": "location",
"demo": "avatars\/get-favicon.md",
@ -4346,7 +4346,7 @@
"x-appwrite": {
"method": "getFlag",
"group": null,
"weight": 62,
"weight": 52,
"cookies": false,
"type": "location",
"demo": "avatars\/get-flag.md",
@ -4832,7 +4832,7 @@
"x-appwrite": {
"method": "getImage",
"group": null,
"weight": 63,
"weight": 53,
"cookies": false,
"type": "location",
"demo": "avatars\/get-image.md",
@ -4914,7 +4914,7 @@
"x-appwrite": {
"method": "getInitials",
"group": null,
"weight": 66,
"weight": 56,
"cookies": false,
"type": "location",
"demo": "avatars\/get-initials.md",
@ -5004,7 +5004,7 @@
"x-appwrite": {
"method": "getQR",
"group": null,
"weight": 65,
"weight": 55,
"cookies": false,
"type": "location",
"demo": "avatars\/get-qr.md",
@ -5094,7 +5094,7 @@
"x-appwrite": {
"method": "getScreenshot",
"group": null,
"weight": 67,
"weight": 57,
"cookies": false,
"type": "location",
"demo": "avatars\/get-screenshot.md",
@ -5135,7 +5135,7 @@
"required": false,
"type": "object",
"default": [],
"x-example": "{}",
"x-example": "{\"Authorization\":\"Bearer token123\",\"X-Custom-Header\":\"value\"}",
"in": "query"
},
{
@ -5144,7 +5144,7 @@
"required": false,
"type": "integer",
"format": "int32",
"x-example": 1,
"x-example": "1920",
"default": 1280,
"in": "query"
},
@ -5154,7 +5154,7 @@
"required": false,
"type": "integer",
"format": "int32",
"x-example": 1,
"x-example": "1080",
"default": 720,
"in": "query"
},
@ -5164,7 +5164,7 @@
"required": false,
"type": "number",
"format": "float",
"x-example": 0.1,
"x-example": "2",
"default": 1,
"in": "query"
},
@ -5173,7 +5173,7 @@
"description": "Browser theme. Pass \"light\" or \"dark\". Defaults to \"light\".",
"required": false,
"type": "string",
"x-example": "light",
"x-example": "dark",
"enum": [
"light",
"dark"
@ -5188,7 +5188,7 @@
"description": "Custom user agent string. Defaults to browser default.",
"required": false,
"type": "string",
"x-example": "<USER_AGENT>",
"x-example": "Mozilla\/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit\/605.1.15",
"default": "",
"in": "query"
},
@ -5197,7 +5197,7 @@
"description": "Capture full page scroll. Pass 0 for viewport only, or 1 for full page. Defaults to 0.",
"required": false,
"type": "boolean",
"x-example": false,
"x-example": "true",
"default": false,
"in": "query"
},
@ -5206,7 +5206,7 @@
"description": "Browser locale (e.g., \"en-US\", \"fr-FR\"). Defaults to browser default.",
"required": false,
"type": "string",
"x-example": "<LOCALE>",
"x-example": "en-US",
"default": "",
"in": "query"
},
@ -5215,7 +5215,7 @@
"description": "IANA timezone identifier (e.g., \"America\/New_York\", \"Europe\/London\"). Defaults to browser default.",
"required": false,
"type": "string",
"x-example": "africa\/abidjan",
"x-example": "america\/new_york",
"enum": [
"africa\/abidjan",
"africa\/accra",
@ -5648,7 +5648,7 @@
"required": false,
"type": "number",
"format": "float",
"x-example": -90,
"x-example": "37.7749",
"default": 0,
"in": "query"
},
@ -5658,7 +5658,7 @@
"required": false,
"type": "number",
"format": "float",
"x-example": -180,
"x-example": "-122.4194",
"default": 0,
"in": "query"
},
@ -5668,7 +5668,7 @@
"required": false,
"type": "number",
"format": "float",
"x-example": 0,
"x-example": "100",
"default": 0,
"in": "query"
},
@ -5677,7 +5677,7 @@
"description": "Enable touch support. Pass 0 for no touch, or 1 for touch enabled. Defaults to 0.",
"required": false,
"type": "boolean",
"x-example": false,
"x-example": "true",
"default": false,
"in": "query"
},
@ -5688,8 +5688,33 @@
"type": "array",
"collectionFormat": "multi",
"items": {
"type": "string"
"type": "string",
"enum": [
"geolocation",
"camera",
"microphone",
"notifications",
"midi",
"push",
"clipboard-read",
"clipboard-write",
"payment-handler",
"usb",
"bluetooth",
"accelerometer",
"gyroscope",
"magnetometer",
"ambient-light-sensor",
"background-sync",
"persistent-storage",
"screen-wake-lock",
"web-share",
"xr-spatial-tracking"
],
"x-enum-name": "BrowserPermission",
"x-enum-keys": []
},
"x-example": "[\"geolocation\",\"notifications\"]",
"default": [],
"in": "query"
},
@ -5699,7 +5724,7 @@
"required": false,
"type": "integer",
"format": "int32",
"x-example": 0,
"x-example": "3",
"default": 0,
"in": "query"
},
@ -5709,7 +5734,7 @@
"required": false,
"type": "integer",
"format": "int32",
"x-example": 0,
"x-example": "800",
"default": 0,
"in": "query"
},
@ -5719,7 +5744,7 @@
"required": false,
"type": "integer",
"format": "int32",
"x-example": 0,
"x-example": "600",
"default": 0,
"in": "query"
},
@ -5729,7 +5754,7 @@
"required": false,
"type": "integer",
"format": "int32",
"x-example": -1,
"x-example": "85",
"default": -1,
"in": "query"
},
@ -5738,7 +5763,7 @@
"description": "Output format type (jpeg, jpg, png, gif and webp).",
"required": false,
"type": "string",
"x-example": "jpg",
"x-example": "jpeg",
"enum": [
"jpg",
"jpeg",
@ -7420,7 +7445,7 @@
"x-appwrite": {
"method": "query",
"group": "graphql",
"weight": 251,
"weight": 241,
"cookies": false,
"type": "graphql",
"demo": "graphql\/query.md",
@ -7493,7 +7518,7 @@
"x-appwrite": {
"method": "mutation",
"group": "graphql",
"weight": 250,
"weight": 240,
"cookies": false,
"type": "graphql",
"demo": "graphql\/mutation.md",
@ -7564,7 +7589,7 @@
"x-appwrite": {
"method": "get",
"group": null,
"weight": 71,
"weight": 61,
"cookies": false,
"type": "",
"demo": "locale\/get.md",
@ -7615,7 +7640,7 @@
"x-appwrite": {
"method": "listCodes",
"group": null,
"weight": 72,
"weight": 62,
"cookies": false,
"type": "",
"demo": "locale\/list-codes.md",
@ -7666,7 +7691,7 @@
"x-appwrite": {
"method": "listContinents",
"group": null,
"weight": 76,
"weight": 66,
"cookies": false,
"type": "",
"demo": "locale\/list-continents.md",
@ -7717,7 +7742,7 @@
"x-appwrite": {
"method": "listCountries",
"group": null,
"weight": 73,
"weight": 63,
"cookies": false,
"type": "",
"demo": "locale\/list-countries.md",
@ -7768,7 +7793,7 @@
"x-appwrite": {
"method": "listCountriesEU",
"group": null,
"weight": 74,
"weight": 64,
"cookies": false,
"type": "",
"demo": "locale\/list-countries-eu.md",
@ -7819,7 +7844,7 @@
"x-appwrite": {
"method": "listCountriesPhones",
"group": null,
"weight": 75,
"weight": 65,
"cookies": false,
"type": "",
"demo": "locale\/list-countries-phones.md",
@ -7870,7 +7895,7 @@
"x-appwrite": {
"method": "listCurrencies",
"group": null,
"weight": 77,
"weight": 67,
"cookies": false,
"type": "",
"demo": "locale\/list-currencies.md",
@ -7921,7 +7946,7 @@
"x-appwrite": {
"method": "listLanguages",
"group": null,
"weight": 78,
"weight": 68,
"cookies": false,
"type": "",
"demo": "locale\/list-languages.md",
@ -7974,7 +7999,7 @@
"x-appwrite": {
"method": "createSubscriber",
"group": "subscribers",
"weight": 300,
"weight": 290,
"cookies": false,
"type": "",
"demo": "messaging\/create-subscriber.md",
@ -8058,7 +8083,7 @@
"x-appwrite": {
"method": "deleteSubscriber",
"group": "subscribers",
"weight": 304,
"weight": 294,
"cookies": false,
"type": "",
"demo": "messaging\/delete-subscriber.md",
@ -8128,7 +8153,7 @@
"x-appwrite": {
"method": "listFiles",
"group": "files",
"weight": 161,
"weight": 151,
"cookies": false,
"type": "",
"demo": "storage\/list-files.md",
@ -8219,7 +8244,7 @@
"x-appwrite": {
"method": "createFile",
"group": "files",
"weight": 160,
"weight": 150,
"cookies": false,
"type": "upload",
"demo": "storage\/create-file.md",
@ -8308,7 +8333,7 @@
"x-appwrite": {
"method": "getFile",
"group": "files",
"weight": 162,
"weight": 152,
"cookies": false,
"type": "",
"demo": "storage\/get-file.md",
@ -8377,7 +8402,7 @@
"x-appwrite": {
"method": "updateFile",
"group": "files",
"weight": 167,
"weight": 157,
"cookies": false,
"type": "",
"demo": "storage\/update-file.md",
@ -8467,7 +8492,7 @@
"x-appwrite": {
"method": "deleteFile",
"group": "files",
"weight": 168,
"weight": 158,
"cookies": false,
"type": "",
"demo": "storage\/delete-file.md",
@ -8536,7 +8561,7 @@
"x-appwrite": {
"method": "getFileDownload",
"group": "files",
"weight": 164,
"weight": 154,
"cookies": false,
"type": "location",
"demo": "storage\/get-file-download.md",
@ -8614,7 +8639,7 @@
"x-appwrite": {
"method": "getFilePreview",
"group": "files",
"weight": 163,
"weight": 153,
"cookies": false,
"type": "location",
"demo": "storage\/get-file-preview.md",
@ -8820,7 +8845,7 @@
"x-appwrite": {
"method": "getFileView",
"group": "files",
"weight": 165,
"weight": 155,
"cookies": false,
"type": "location",
"demo": "storage\/get-file-view.md",
@ -10265,7 +10290,7 @@
"x-appwrite": {
"method": "list",
"group": "teams",
"weight": 172,
"weight": 162,
"cookies": false,
"type": "",
"demo": "teams\/list.md",
@ -10348,7 +10373,7 @@
"x-appwrite": {
"method": "create",
"group": "teams",
"weight": 171,
"weight": 161,
"cookies": false,
"type": "",
"demo": "teams\/create.md",
@ -10437,7 +10462,7 @@
"x-appwrite": {
"method": "get",
"group": "teams",
"weight": 173,
"weight": 163,
"cookies": false,
"type": "",
"demo": "teams\/get.md",
@ -10498,7 +10523,7 @@
"x-appwrite": {
"method": "updateName",
"group": "teams",
"weight": 175,
"weight": 165,
"cookies": false,
"type": "",
"demo": "teams\/update-name.md",
@ -10572,7 +10597,7 @@
"x-appwrite": {
"method": "delete",
"group": "teams",
"weight": 177,
"weight": 167,
"cookies": false,
"type": "",
"demo": "teams\/delete.md",
@ -10633,7 +10658,7 @@
"x-appwrite": {
"method": "listMemberships",
"group": "memberships",
"weight": 179,
"weight": 169,
"cookies": false,
"type": "",
"demo": "teams\/list-memberships.md",
@ -10724,7 +10749,7 @@
"x-appwrite": {
"method": "createMembership",
"group": "memberships",
"weight": 178,
"weight": 168,
"cookies": false,
"type": "",
"demo": "teams\/create-membership.md",
@ -10788,7 +10813,14 @@
"default": null,
"x-example": null,
"items": {
"type": "string"
"type": "string",
"enum": [
"admin",
"developer",
"owner"
],
"x-enum-name": null,
"x-enum-keys": []
}
},
"url": {
@ -10836,7 +10868,7 @@
"x-appwrite": {
"method": "getMembership",
"group": "memberships",
"weight": 180,
"weight": 170,
"cookies": false,
"type": "",
"demo": "teams\/get-membership.md",
@ -10905,7 +10937,7 @@
"x-appwrite": {
"method": "updateMembership",
"group": "memberships",
"weight": 181,
"weight": 171,
"cookies": false,
"type": "",
"demo": "teams\/update-membership.md",
@ -10959,7 +10991,14 @@
"default": null,
"x-example": null,
"items": {
"type": "string"
"type": "string",
"enum": [
"admin",
"developer",
"owner"
],
"x-enum-name": null,
"x-enum-keys": []
}
}
},
@ -10990,7 +11029,7 @@
"x-appwrite": {
"method": "deleteMembership",
"group": "memberships",
"weight": 183,
"weight": 173,
"cookies": false,
"type": "",
"demo": "teams\/delete-membership.md",
@ -11061,7 +11100,7 @@
"x-appwrite": {
"method": "updateMembershipStatus",
"group": "memberships",
"weight": 182,
"weight": 172,
"cookies": false,
"type": "",
"demo": "teams\/update-membership-status.md",
@ -11155,7 +11194,7 @@
"x-appwrite": {
"method": "getPrefs",
"group": "teams",
"weight": 174,
"weight": 164,
"cookies": false,
"type": "",
"demo": "teams\/get-prefs.md",
@ -11216,7 +11255,7 @@
"x-appwrite": {
"method": "updatePrefs",
"group": "teams",
"weight": 176,
"weight": 166,
"cookies": false,
"type": "",
"demo": "teams\/update-prefs.md",

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -662,26 +662,26 @@ App::get('/v1/avatars/screenshots')
],
contentType: ContentType::IMAGE_PNG
))
->param('url', '', new URL(['http', 'https']), 'Website URL which you want to capture.')
->param('headers', [], new Assoc(), 'HTTP headers to send with the browser request. Defaults to empty.', true)
->param('viewportWidth', 1280, new Range(1, 1920), 'Browser viewport width. Pass an integer between 1 to 1920. Defaults to 1280.', true)
->param('viewportHeight', 720, new Range(1, 1080), 'Browser viewport height. Pass an integer between 1 to 1080. Defaults to 720.', true)
->param('scale', 1, new Range(0.1, 3, Range::TYPE_FLOAT), 'Browser scale factor. Pass a number between 0.1 to 3. Defaults to 1.', true)
->param('theme', 'light', new WhiteList(['light', 'dark']), 'Browser theme. Pass "light" or "dark". Defaults to "light".', true)
->param('userAgent', '', new Text(512), 'Custom user agent string. Defaults to browser default.', true)
->param('fullpage', false, new Boolean(true), 'Capture full page scroll. Pass 0 for viewport only, or 1 for full page. Defaults to 0.', true)
->param('locale', '', new Text(10), 'Browser locale (e.g., "en-US", "fr-FR"). Defaults to browser default.', true)
->param('timezone', '', new WhiteList(timezone_identifiers_list()), 'IANA timezone identifier (e.g., "America/New_York", "Europe/London"). Defaults to browser default.', true)
->param('latitude', 0, new Range(-90, 90, Range::TYPE_FLOAT), 'Geolocation latitude. Pass a number between -90 to 90. Defaults to 0.', true)
->param('longitude', 0, new Range(-180, 180, Range::TYPE_FLOAT), 'Geolocation longitude. Pass a number between -180 to 180. Defaults to 0.', true)
->param('accuracy', 0, new Range(0, 100000, Range::TYPE_FLOAT), 'Geolocation accuracy in meters. Pass a number between 0 to 100000. Defaults to 0.', true)
->param('touch', false, new Boolean(true), 'Enable touch support. Pass 0 for no touch, or 1 for touch enabled. Defaults to 0.', true)
->param('permissions', [], new ArrayList(new WhiteList(['geolocation', 'camera', 'microphone', 'notifications', 'midi', 'push', 'clipboard-read', 'clipboard-write', 'payment-handler', 'usb', 'bluetooth', 'accelerometer', 'gyroscope', 'magnetometer', 'ambient-light-sensor', 'background-sync', 'persistent-storage', 'screen-wake-lock', 'web-share', 'xr-spatial-tracking'])), 'Browser permissions to grant. Pass an array of permission names like ["geolocation", "camera", "microphone"]. Defaults to empty.', true)
->param('sleep', 0, new Range(0, 10), 'Wait time in seconds before taking the screenshot. Pass an integer between 0 to 10. Defaults to 0.', true)
->param('width', 0, new Range(0, 2000), 'Output image width. Pass 0 to use original width, or an integer between 1 to 2000. Defaults to 0 (original width).', true)
->param('height', 0, new Range(0, 2000), 'Output image height. Pass 0 to use original height, or an integer between 1 to 2000. Defaults to 0 (original height).', true)
->param('quality', -1, new Range(-1, 100), 'Screenshot quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.', true)
->param('output', '', new WhiteList(\array_keys(Config::getParam('storage-outputs')), true), 'Output format type (jpeg, jpg, png, gif and webp).', true)
->param('url', '', new URL(['http', 'https']), 'Website URL which you want to capture.', example: 'https://example.com')
->param('headers', [], new Assoc(), 'HTTP headers to send with the browser request. Defaults to empty.', true, example: '{"Authorization":"Bearer token123","X-Custom-Header":"value"}')
->param('viewportWidth', 1280, new Range(1, 1920), 'Browser viewport width. Pass an integer between 1 to 1920. Defaults to 1280.', true, example: '1920')
->param('viewportHeight', 720, new Range(1, 1080), 'Browser viewport height. Pass an integer between 1 to 1080. Defaults to 720.', true, example: '1080')
->param('scale', 1, new Range(0.1, 3, Range::TYPE_FLOAT), 'Browser scale factor. Pass a number between 0.1 to 3. Defaults to 1.', true, example: '2')
->param('theme', 'light', new WhiteList(['light', 'dark']), 'Browser theme. Pass "light" or "dark". Defaults to "light".', true, example: 'dark')
->param('userAgent', '', new Text(512), 'Custom user agent string. Defaults to browser default.', true, example: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15')
->param('fullpage', false, new Boolean(true), 'Capture full page scroll. Pass 0 for viewport only, or 1 for full page. Defaults to 0.', true, example: 'true')
->param('locale', '', new Text(10), 'Browser locale (e.g., "en-US", "fr-FR"). Defaults to browser default.', true, example: 'en-US')
->param('timezone', '', new WhiteList(timezone_identifiers_list()), 'IANA timezone identifier (e.g., "America/New_York", "Europe/London"). Defaults to browser default.', true, example: 'america/new_york')
->param('latitude', 0, new Range(-90, 90, Range::TYPE_FLOAT), 'Geolocation latitude. Pass a number between -90 to 90. Defaults to 0.', true, example: '37.7749')
->param('longitude', 0, new Range(-180, 180, Range::TYPE_FLOAT), 'Geolocation longitude. Pass a number between -180 to 180. Defaults to 0.', true, example: '-122.4194')
->param('accuracy', 0, new Range(0, 100000, Range::TYPE_FLOAT), 'Geolocation accuracy in meters. Pass a number between 0 to 100000. Defaults to 0.', true, example: '100')
->param('touch', false, new Boolean(true), 'Enable touch support. Pass 0 for no touch, or 1 for touch enabled. Defaults to 0.', true, example: 'true')
->param('permissions', [], new ArrayList(new WhiteList(['geolocation', 'camera', 'microphone', 'notifications', 'midi', 'push', 'clipboard-read', 'clipboard-write', 'payment-handler', 'usb', 'bluetooth', 'accelerometer', 'gyroscope', 'magnetometer', 'ambient-light-sensor', 'background-sync', 'persistent-storage', 'screen-wake-lock', 'web-share', 'xr-spatial-tracking'])), 'Browser permissions to grant. Pass an array of permission names like ["geolocation", "camera", "microphone"]. Defaults to empty.', true, example: '["geolocation","notifications"]')
->param('sleep', 0, new Range(0, 10), 'Wait time in seconds before taking the screenshot. Pass an integer between 0 to 10. Defaults to 0.', true, example: '3')
->param('width', 0, new Range(0, 2000), 'Output image width. Pass 0 to use original width, or an integer between 1 to 2000. Defaults to 0 (original width).', true, example: '800')
->param('height', 0, new Range(0, 2000), 'Output image height. Pass 0 to use original height, or an integer between 1 to 2000. Defaults to 0 (original height).', true, example: '600')
->param('quality', -1, new Range(-1, 100), 'Screenshot quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.', true, example: '85')
->param('output', '', new WhiteList(\array_keys(Config::getParam('storage-outputs')), true), 'Output format type (jpeg, jpg, png, gif and webp).', true, example: 'jpeg')
->inject('response')
->inject('queueForStatsUsage')
->action(function (string $url, array $headers, int $viewportWidth, int $viewportHeight, float $scale, string $theme, string $userAgent, bool $fullpage, string $locale, string $timezone, float $latitude, float $longitude, float $accuracy, bool $touch, array $permissions, int $sleep, int $width, int $height, int $quality, string $output, Response $response, StatsUsage $queueForStatsUsage) {

View file

@ -13,24 +13,27 @@ Avatars avatars = new Avatars(client);
avatars.getScreenshot(
"https://example.com", // url
Map.of("a", "b"), // headers (optional)
1, // viewportWidth (optional)
1, // viewportHeight (optional)
0.1, // scale (optional)
Map.of(
"Authorization", "Bearer token123",
"X-Custom-Header", "value"
), // headers (optional)
1920, // viewportWidth (optional)
1080, // viewportHeight (optional)
2, // scale (optional)
Theme.LIGHT, // theme (optional)
"<USER_AGENT>", // userAgent (optional)
false, // fullpage (optional)
"<LOCALE>", // locale (optional)
"Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15", // userAgent (optional)
true, // fullpage (optional)
"en-US", // locale (optional)
Timezone.AFRICA_ABIDJAN, // timezone (optional)
-90, // latitude (optional)
-180, // longitude (optional)
0, // accuracy (optional)
false, // touch (optional)
List.of(), // permissions (optional)
0, // sleep (optional)
0, // width (optional)
0, // height (optional)
-1, // quality (optional)
37.7749, // latitude (optional)
-122.4194, // longitude (optional)
100, // accuracy (optional)
true, // touch (optional)
List.of("geolocation", "notifications"), // permissions (optional)
3, // sleep (optional)
800, // width (optional)
600, // height (optional)
85, // quality (optional)
Output.JPG, // output (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {

View file

@ -13,23 +13,26 @@ val avatars = Avatars(client)
val result = avatars.getScreenshot(
url = "https://example.com",
headers = mapOf( "a" to "b" ), // (optional)
viewportWidth = 1, // (optional)
viewportHeight = 1, // (optional)
scale = 0.1, // (optional)
headers = mapOf(
"Authorization" to "Bearer token123",
"X-Custom-Header" to "value"
), // (optional)
viewportWidth = 1920, // (optional)
viewportHeight = 1080, // (optional)
scale = 2, // (optional)
theme = theme.LIGHT, // (optional)
userAgent = "<USER_AGENT>", // (optional)
fullpage = false, // (optional)
locale = "<LOCALE>", // (optional)
userAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15", // (optional)
fullpage = true, // (optional)
locale = "en-US", // (optional)
timezone = timezone.AFRICA_ABIDJAN, // (optional)
latitude = -90, // (optional)
longitude = -180, // (optional)
accuracy = 0, // (optional)
touch = false, // (optional)
permissions = listOf(), // (optional)
sleep = 0, // (optional)
width = 0, // (optional)
height = 0, // (optional)
quality = -1, // (optional)
latitude = 37.7749, // (optional)
longitude = -122.4194, // (optional)
accuracy = 100, // (optional)
touch = true, // (optional)
permissions = listOf("geolocation", "notifications"), // (optional)
sleep = 3, // (optional)
width = 800, // (optional)
height = 600, // (optional)
quality = 85, // (optional)
output = output.JPG, // (optional)
)

View file

@ -9,24 +9,27 @@ let avatars = Avatars(client)
let bytes = try await avatars.getScreenshot(
url: "https://example.com",
headers: [:], // optional
viewportWidth: 1, // optional
viewportHeight: 1, // optional
scale: 0.1, // optional
headers: [
"Authorization": "Bearer token123",
"X-Custom-Header": "value"
], // optional
viewportWidth: 1920, // optional
viewportHeight: 1080, // optional
scale: 2, // optional
theme: .light, // optional
userAgent: "<USER_AGENT>", // optional
fullpage: false, // optional
locale: "<LOCALE>", // optional
userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15", // optional
fullpage: true, // optional
locale: "en-US", // optional
timezone: .africaAbidjan, // optional
latitude: -90, // optional
longitude: -180, // optional
accuracy: 0, // optional
touch: false, // optional
permissions: [], // optional
sleep: 0, // optional
width: 0, // optional
height: 0, // optional
quality: -1, // optional
latitude: 37.7749, // optional
longitude: -122.4194, // optional
accuracy: 100, // optional
touch: true, // optional
permissions: ["geolocation","notifications"], // optional
sleep: 3, // optional
width: 800, // optional
height: 600, // optional
quality: 85, // optional
output: .jpg // optional
)

View file

@ -9,24 +9,27 @@ Avatars avatars = Avatars(client);
// Downloading file
Uint8List bytes = await avatars.getScreenshot(
url: 'https://example.com',
headers: {}, // optional
viewportWidth: 1, // optional
viewportHeight: 1, // optional
scale: 0.1, // optional
headers: {
"Authorization": "Bearer token123",
"X-Custom-Header": "value"
}, // optional
viewportWidth: 1920, // optional
viewportHeight: 1080, // optional
scale: 2, // optional
theme: Theme.light, // optional
userAgent: '<USER_AGENT>', // optional
fullpage: false, // optional
locale: '<LOCALE>', // optional
userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15', // optional
fullpage: true, // optional
locale: 'en-US', // optional
timezone: Timezone.africaAbidjan, // optional
latitude: -90, // optional
longitude: -180, // optional
accuracy: 0, // optional
touch: false, // optional
permissions: [], // optional
sleep: 0, // optional
width: 0, // optional
height: 0, // optional
quality: -1, // optional
latitude: 37.7749, // optional
longitude: -122.4194, // optional
accuracy: 100, // optional
touch: true, // optional
permissions: ["geolocation","notifications"], // optional
sleep: 3, // optional
width: 800, // optional
height: 600, // optional
quality: 85, // optional
output: Output.jpg, // optional
)
@ -37,24 +40,27 @@ file.writeAsBytesSync(bytes);
FutureBuilder(
future: avatars.getScreenshot(
url:'https://example.com' ,
headers:{} , // optional
viewportWidth:1 , // optional
viewportHeight:1 , // optional
scale:0.1 , // optional
headers:{
"Authorization": "Bearer token123",
"X-Custom-Header": "value"
} , // optional
viewportWidth:1920 , // optional
viewportHeight:1080 , // optional
scale:2 , // optional
theme: Theme.light, // optional
userAgent:'<USER_AGENT>' , // optional
fullpage:false , // optional
locale:'<LOCALE>' , // optional
userAgent:'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15' , // optional
fullpage:true , // optional
locale:'en-US' , // optional
timezone: Timezone.africaAbidjan, // optional
latitude:-90 , // optional
longitude:-180 , // optional
accuracy:0 , // optional
touch:false , // optional
permissions:[] , // optional
sleep:0 , // optional
width:0 , // optional
height:0 , // optional
quality:-1 , // optional
latitude:37.7749 , // optional
longitude:-122.4194 , // optional
accuracy:100 , // optional
touch:true , // optional
permissions:["geolocation","notifications"] , // optional
sleep:3 , // optional
width:800 , // optional
height:600 , // optional
quality:85 , // optional
output: Output.jpg, // optional
), // Works for both public file and private file, for private files you need to be logged in
builder: (context, snapshot) {

View file

@ -8,24 +8,27 @@ const avatars = new Avatars(client);
const result = avatars.getScreenshot({
url: 'https://example.com',
headers: {}, // optional
viewportWidth: 1, // optional
viewportHeight: 1, // optional
scale: 0.1, // optional
headers: {
"Authorization": "Bearer token123",
"X-Custom-Header": "value"
}, // optional
viewportWidth: 1920, // optional
viewportHeight: 1080, // optional
scale: 2, // optional
theme: Theme.Light, // optional
userAgent: '<USER_AGENT>', // optional
fullpage: false, // optional
locale: '<LOCALE>', // optional
userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15', // optional
fullpage: true, // optional
locale: 'en-US', // optional
timezone: Timezone.AfricaAbidjan, // optional
latitude: -90, // optional
longitude: -180, // optional
accuracy: 0, // optional
touch: false, // optional
permissions: [], // optional
sleep: 0, // optional
width: 0, // optional
height: 0, // optional
quality: -1, // optional
latitude: 37.7749, // optional
longitude: -122.4194, // optional
accuracy: 100, // optional
touch: true, // optional
permissions: ["geolocation","notifications"], // optional
sleep: 3, // optional
width: 800, // optional
height: 600, // optional
quality: 85, // optional
output: Output.Jpg // optional
});

View file

@ -8,24 +8,27 @@ const avatars = new Avatars(client);
const result = avatars.getScreenshot({
url: 'https://example.com',
headers: {}, // optional
viewportWidth: 1, // optional
viewportHeight: 1, // optional
scale: 0.1, // optional
headers: {
"Authorization": "Bearer token123",
"X-Custom-Header": "value"
}, // optional
viewportWidth: 1920, // optional
viewportHeight: 1080, // optional
scale: 2, // optional
theme: Theme.Light, // optional
userAgent: '<USER_AGENT>', // optional
fullpage: false, // optional
locale: '<LOCALE>', // optional
userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15', // optional
fullpage: true, // optional
locale: 'en-US', // optional
timezone: Timezone.AfricaAbidjan, // optional
latitude: -90, // optional
longitude: -180, // optional
accuracy: 0, // optional
touch: false, // optional
permissions: [], // optional
sleep: 0, // optional
width: 0, // optional
height: 0, // optional
quality: -1, // optional
latitude: 37.7749, // optional
longitude: -122.4194, // optional
accuracy: 100, // optional
touch: true, // optional
permissions: ["geolocation","notifications"], // optional
sleep: 3, // optional
width: 800, // optional
height: 600, // optional
quality: 85, // optional
output: Output.Jpg // optional
});

View file

@ -8,24 +8,27 @@ const avatars = new Avatars(client);
const result = avatars.getScreenshot({
url: 'https://example.com',
headers: {}, // optional
viewportWidth: 1, // optional
viewportHeight: 1, // optional
scale: 0.1, // optional
headers: {
"Authorization": "Bearer token123",
"X-Custom-Header": "value"
}, // optional
viewportWidth: 1920, // optional
viewportHeight: 1080, // optional
scale: 2, // optional
theme: Theme.Light, // optional
userAgent: '<USER_AGENT>', // optional
fullpage: false, // optional
locale: '<LOCALE>', // optional
userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15', // optional
fullpage: true, // optional
locale: 'en-US', // optional
timezone: Timezone.AfricaAbidjan, // optional
latitude: -90, // optional
longitude: -180, // optional
accuracy: 0, // optional
touch: false, // optional
permissions: [], // optional
sleep: 0, // optional
width: 0, // optional
height: 0, // optional
quality: -1, // optional
latitude: 37.7749, // optional
longitude: -122.4194, // optional
accuracy: 100, // optional
touch: true, // optional
permissions: ["geolocation","notifications"], // optional
sleep: 3, // optional
width: 800, // optional
height: 600, // optional
quality: 85, // optional
output: Output.Jpg // optional
});

View file

@ -9,7 +9,8 @@ const vcs = new Vcs(client);
const result = await vcs.listRepositories({
installationId: '<INSTALLATION_ID>',
type: VCSDetectionType.Runtime,
search: '<SEARCH>' // optional
search: '<SEARCH>', // optional
queries: [] // optional
});
console.log(result);

View file

@ -9,23 +9,26 @@ Avatars avatars = Avatars(client);
Uint8List result = await avatars.getScreenshot(
url: 'https://example.com',
headers: {}, // (optional)
viewportWidth: 1, // (optional)
viewportHeight: 1, // (optional)
scale: 0.1, // (optional)
headers: {
"Authorization": "Bearer token123",
"X-Custom-Header": "value"
}, // (optional)
viewportWidth: 1920, // (optional)
viewportHeight: 1080, // (optional)
scale: 2, // (optional)
theme: Theme.light, // (optional)
userAgent: '<USER_AGENT>', // (optional)
fullpage: false, // (optional)
locale: '<LOCALE>', // (optional)
userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15', // (optional)
fullpage: true, // (optional)
locale: 'en-US', // (optional)
timezone: Timezone.africaAbidjan, // (optional)
latitude: -90, // (optional)
longitude: -180, // (optional)
accuracy: 0, // (optional)
touch: false, // (optional)
permissions: [], // (optional)
sleep: 0, // (optional)
width: 0, // (optional)
height: 0, // (optional)
quality: -1, // (optional)
latitude: 37.7749, // (optional)
longitude: -122.4194, // (optional)
accuracy: 100, // (optional)
touch: true, // (optional)
permissions: ["geolocation","notifications"], // (optional)
sleep: 3, // (optional)
width: 800, // (optional)
height: 600, // (optional)
quality: 85, // (optional)
output: Output.jpg, // (optional)
);

View file

@ -12,23 +12,26 @@ Avatars avatars = new Avatars(client);
byte[] result = await avatars.GetScreenshot(
url: "https://example.com",
headers: [object], // optional
viewportWidth: 1, // optional
viewportHeight: 1, // optional
scale: 0.1, // optional
headers: new {
Authorization = "Bearer token123",
X-Custom-Header = "value"
}, // optional
viewportWidth: 1920, // optional
viewportHeight: 1080, // optional
scale: 2, // optional
theme: Theme.Light, // optional
userAgent: "<USER_AGENT>", // optional
fullpage: false, // optional
locale: "<LOCALE>", // optional
userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15", // optional
fullpage: true, // optional
locale: "en-US", // optional
timezone: Timezone.AfricaAbidjan, // optional
latitude: -90, // optional
longitude: -180, // optional
accuracy: 0, // optional
touch: false, // optional
permissions: new List<string>(), // optional
sleep: 0, // optional
width: 0, // optional
height: 0, // optional
quality: -1, // optional
latitude: 37.7749, // optional
longitude: -122.4194, // optional
accuracy: 100, // optional
touch: true, // optional
permissions: ["geolocation","notifications"], // optional
sleep: 3, // optional
width: 800, // optional
height: 600, // optional
quality: 85, // optional
output: Output.Jpg // optional
);

View file

@ -16,23 +16,26 @@ service := avatars.New(client)
response, error := service.GetScreenshot(
"https://example.com",
avatars.WithGetScreenshotHeaders(map[string]interface{}{}),
avatars.WithGetScreenshotViewportWidth(1),
avatars.WithGetScreenshotViewportHeight(1),
avatars.WithGetScreenshotScale(0.1),
avatars.WithGetScreenshotTheme("light"),
avatars.WithGetScreenshotUserAgent("<USER_AGENT>"),
avatars.WithGetScreenshotFullpage(false),
avatars.WithGetScreenshotLocale("<LOCALE>"),
avatars.WithGetScreenshotTimezone("africa/abidjan"),
avatars.WithGetScreenshotLatitude(-90),
avatars.WithGetScreenshotLongitude(-180),
avatars.WithGetScreenshotAccuracy(0),
avatars.WithGetScreenshotTouch(false),
avatars.WithGetScreenshotPermissions([]interface{}{}),
avatars.WithGetScreenshotSleep(0),
avatars.WithGetScreenshotWidth(0),
avatars.WithGetScreenshotHeight(0),
avatars.WithGetScreenshotQuality(-1),
avatars.WithGetScreenshotOutput("jpg"),
avatars.WithGetScreenshotHeaders(map[string]interface{}{
"Authorization": "Bearer token123",
"X-Custom-Header": "value"
}),
avatars.WithGetScreenshotViewportWidth(1920),
avatars.WithGetScreenshotViewportHeight(1080),
avatars.WithGetScreenshotScale(2),
avatars.WithGetScreenshotTheme("dark"),
avatars.WithGetScreenshotUserAgent("Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15"),
avatars.WithGetScreenshotFullpage(true),
avatars.WithGetScreenshotLocale("en-US"),
avatars.WithGetScreenshotTimezone("America/New_York"),
avatars.WithGetScreenshotLatitude(37.7749),
avatars.WithGetScreenshotLongitude(-122.4194),
avatars.WithGetScreenshotAccuracy(100),
avatars.WithGetScreenshotTouch(true),
avatars.WithGetScreenshotPermissions(interface{}{"geolocation","notifications"}),
avatars.WithGetScreenshotSleep(3),
avatars.WithGetScreenshotWidth(800),
avatars.WithGetScreenshotHeight(600),
avatars.WithGetScreenshotQuality(85),
avatars.WithGetScreenshotOutput("jpeg"),
)

View file

@ -14,24 +14,27 @@ Avatars avatars = new Avatars(client);
avatars.getScreenshot(
"https://example.com", // url
Map.of("a", "b"), // headers (optional)
1, // viewportWidth (optional)
1, // viewportHeight (optional)
0.1, // scale (optional)
Map.of(
"Authorization", "Bearer token123",
"X-Custom-Header", "value"
), // headers (optional)
1920, // viewportWidth (optional)
1080, // viewportHeight (optional)
2, // scale (optional)
Theme.LIGHT, // theme (optional)
"<USER_AGENT>", // userAgent (optional)
false, // fullpage (optional)
"<LOCALE>", // locale (optional)
"Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15", // userAgent (optional)
true, // fullpage (optional)
"en-US", // locale (optional)
Timezone.AFRICA_ABIDJAN, // timezone (optional)
-90, // latitude (optional)
-180, // longitude (optional)
0, // accuracy (optional)
false, // touch (optional)
List.of(), // permissions (optional)
0, // sleep (optional)
0, // width (optional)
0, // height (optional)
-1, // quality (optional)
37.7749, // latitude (optional)
-122.4194, // longitude (optional)
100, // accuracy (optional)
true, // touch (optional)
List.of("geolocation", "notifications"), // permissions (optional)
3, // sleep (optional)
800, // width (optional)
600, // height (optional)
85, // quality (optional)
Output.JPG, // output (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {

View file

@ -14,23 +14,26 @@ val avatars = Avatars(client)
val result = avatars.getScreenshot(
url = "https://example.com",
headers = mapOf( "a" to "b" ), // optional
viewportWidth = 1, // optional
viewportHeight = 1, // optional
scale = 0.1, // optional
theme = "light", // optional
userAgent = "<USER_AGENT>", // optional
fullpage = false, // optional
locale = "<LOCALE>", // optional
timezone = "africa/abidjan", // optional
latitude = -90, // optional
longitude = -180, // optional
accuracy = 0, // optional
touch = false, // optional
permissions = listOf(), // optional
sleep = 0, // optional
width = 0, // optional
height = 0, // optional
quality = -1, // optional
output = "jpg" // optional
headers = mapOf(
"Authorization" to "Bearer token123",
"X-Custom-Header" to "value"
), // optional
viewportWidth = 1920, // optional
viewportHeight = 1080, // optional
scale = 2, // optional
theme = "dark", // optional
userAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15", // optional
fullpage = true, // optional
locale = "en-US", // optional
timezone = "America/New_York", // optional
latitude = 37.7749, // optional
longitude = -122.4194, // optional
accuracy = 100, // optional
touch = true, // optional
permissions = listOf("geolocation", "notifications"), // optional
sleep = 3, // optional
width = 800, // optional
height = 600, // optional
quality = 85, // optional
output = "jpeg" // optional
)

View file

@ -9,23 +9,26 @@ const avatars = new sdk.Avatars(client);
const result = await avatars.getScreenshot({
url: 'https://example.com',
headers: {}, // optional
viewportWidth: 1, // optional
viewportHeight: 1, // optional
scale: 0.1, // optional
headers: {
"Authorization": "Bearer token123",
"X-Custom-Header": "value"
}, // optional
viewportWidth: 1920, // optional
viewportHeight: 1080, // optional
scale: 2, // optional
theme: sdk.Theme.Light, // optional
userAgent: '<USER_AGENT>', // optional
fullpage: false, // optional
locale: '<LOCALE>', // optional
userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15', // optional
fullpage: true, // optional
locale: 'en-US', // optional
timezone: sdk.Timezone.AfricaAbidjan, // optional
latitude: -90, // optional
longitude: -180, // optional
accuracy: 0, // optional
touch: false, // optional
permissions: [], // optional
sleep: 0, // optional
width: 0, // optional
height: 0, // optional
quality: -1, // optional
latitude: 37.7749, // optional
longitude: -122.4194, // optional
accuracy: 100, // optional
touch: true, // optional
permissions: ["geolocation","notifications"], // optional
sleep: 3, // optional
width: 800, // optional
height: 600, // optional
quality: 85, // optional
output: sdk.Output.Jpg // optional
});

View file

@ -15,23 +15,26 @@ $avatars = new Avatars($client);
$result = $avatars->getScreenshot(
url: 'https://example.com',
headers: [], // optional
viewportWidth: 1, // optional
viewportHeight: 1, // optional
scale: 0.1, // optional
headers: [
'Authorization' => 'Bearer token123',
'X-Custom-Header' => 'value'
], // optional
viewportWidth: 1920, // optional
viewportHeight: 1080, // optional
scale: 2, // optional
theme: Theme::LIGHT(), // optional
userAgent: '<USER_AGENT>', // optional
fullpage: false, // optional
locale: '<LOCALE>', // optional
userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15', // optional
fullpage: true, // optional
locale: 'en-US', // optional
timezone: Timezone::AFRICAABIDJAN(), // optional
latitude: -90, // optional
longitude: -180, // optional
accuracy: 0, // optional
touch: false, // optional
permissions: [], // optional
sleep: 0, // optional
width: 0, // optional
height: 0, // optional
quality: -1, // optional
latitude: 37.7749, // optional
longitude: -122.4194, // optional
accuracy: 100, // optional
touch: true, // optional
permissions: ["geolocation","notifications"], // optional
sleep: 3, // optional
width: 800, // optional
height: 600, // optional
quality: 85, // optional
output: Output::JPG() // optional
);

View file

@ -13,23 +13,26 @@ avatars = Avatars(client)
result = avatars.get_screenshot(
url = 'https://example.com',
headers = {}, # optional
viewport_width = 1, # optional
viewport_height = 1, # optional
scale = 0.1, # optional
headers = {
"Authorization": "Bearer token123",
"X-Custom-Header": "value"
}, # optional
viewport_width = 1920, # optional
viewport_height = 1080, # optional
scale = 2, # optional
theme = Theme.LIGHT, # optional
user_agent = '<USER_AGENT>', # optional
fullpage = False, # optional
locale = '<LOCALE>', # optional
user_agent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15', # optional
fullpage = True, # optional
locale = 'en-US', # optional
timezone = Timezone.AFRICA_ABIDJAN, # optional
latitude = -90, # optional
longitude = -180, # optional
accuracy = 0, # optional
touch = False, # optional
permissions = [], # optional
sleep = 0, # optional
width = 0, # optional
height = 0, # optional
quality = -1, # optional
latitude = 37.7749, # optional
longitude = -122.4194, # optional
accuracy = 100, # optional
touch = True, # optional
permissions = ["geolocation","notifications"], # optional
sleep = 3, # optional
width = 800, # optional
height = 600, # optional
quality = 85, # optional
output = Output.JPG # optional
)

View file

@ -12,23 +12,26 @@ avatars = Avatars.new(client)
result = avatars.get_screenshot(
url: 'https://example.com',
headers: {}, # optional
viewport_width: 1, # optional
viewport_height: 1, # optional
scale: 0.1, # optional
headers: {
"Authorization" => "Bearer token123",
"X-Custom-Header" => "value"
}, # optional
viewport_width: 1920, # optional
viewport_height: 1080, # optional
scale: 2, # optional
theme: Theme::LIGHT, # optional
user_agent: '<USER_AGENT>', # optional
fullpage: false, # optional
locale: '<LOCALE>', # optional
user_agent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15', # optional
fullpage: true, # optional
locale: 'en-US', # optional
timezone: Timezone::AFRICA_ABIDJAN, # optional
latitude: -90, # optional
longitude: -180, # optional
accuracy: 0, # optional
touch: false, # optional
permissions: [], # optional
sleep: 0, # optional
width: 0, # optional
height: 0, # optional
quality: -1, # optional
latitude: 37.7749, # optional
longitude: -122.4194, # optional
accuracy: 100, # optional
touch: true, # optional
permissions: ["geolocation","notifications"], # optional
sleep: 3, # optional
width: 800, # optional
height: 600, # optional
quality: 85, # optional
output: Output::JPG # optional
)

View file

@ -10,24 +10,27 @@ let avatars = Avatars(client)
let bytes = try await avatars.getScreenshot(
url: "https://example.com",
headers: [:], // optional
viewportWidth: 1, // optional
viewportHeight: 1, // optional
scale: 0.1, // optional
headers: [
"Authorization": "Bearer token123",
"X-Custom-Header": "value"
], // optional
viewportWidth: 1920, // optional
viewportHeight: 1080, // optional
scale: 2, // optional
theme: .light, // optional
userAgent: "<USER_AGENT>", // optional
fullpage: false, // optional
locale: "<LOCALE>", // optional
userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15", // optional
fullpage: true, // optional
locale: "en-US", // optional
timezone: .africaAbidjan, // optional
latitude: -90, // optional
longitude: -180, // optional
accuracy: 0, // optional
touch: false, // optional
permissions: [], // optional
sleep: 0, // optional
width: 0, // optional
height: 0, // optional
quality: -1, // optional
latitude: 37.7749, // optional
longitude: -122.4194, // optional
accuracy: 100, // optional
touch: true, // optional
permissions: ["geolocation","notifications"], // optional
sleep: 3, // optional
width: 800, // optional
height: 600, // optional
quality: 85, // optional
output: .jpg // optional
)

View file

@ -1,5 +1,10 @@
# Change Log
## 11.4.0
* Add `getScreenshot` method to `Avatars` service
* Add `Theme`, `Timezone` and `Output` enums
## 11.3.0
* Add `total` parameter to list queries allowing skipping counting rows in a table for improved performance

View file

@ -1,5 +1,10 @@
# Change Log
## 13.5.0
* Add `getScreenshot` method to `Avatars` service
* Add `Theme`, `Timezone` and `Output` enums
## 13.4.0
* Add `total` parameter to list queries allowing skipping counting rows in a table for improved performance

View file

@ -1,5 +1,9 @@
# Change Log
## 12.0.1
Fix type generation for `point`, `lineString` and `polygon` columns
## 12.0.0
* Change `create-deployment-template`'s `version` parameter to `type` and `reference`. eg. usage - `create-deployment-template --type tag --reference 1.0.0`

View file

@ -1,5 +1,11 @@
# Change Log
## 20.0.0
* Rename `VCSDeploymentType` enum to `VCSReferenceType`
* Change `createTemplateDeployment` method signature: replace `version` parameter with `type` (TemplateReferenceType) and `reference` parameters
* Add `Theme`, `Timezone` and `Output` enums
## 19.4.0
* Add `getScreenshot` method to `Avatars` service

View file

@ -1,5 +1,12 @@
# Change Log
## 0.23.0
* Rename `VCSDeploymentType` enum to `VCSReferenceType`
* Change `CreateTemplateDeployment` method signature: replace `Version` parameter with `Type` (TemplateReferenceType) and `Reference` parameters
* Add `GetScreenshot` method to `Avatars` service
* Add `Theme`, `Timezone` and `Output` enums
## 0.22.0
* Add `total` parameter to list queries allowing skipping counting rows in a table for improved performance

View file

@ -7,6 +7,8 @@
## 20.3.1
* Fix passing of `null` values and stripping only non-nullable optional parameters from the request body
* Add `getScreenshot` method to `Avatars` service
* Add `Theme`, `Timezone` and `Output` enums
## 20.3.0

View file

@ -1,5 +1,12 @@
# Change Log
## v0.15.0
* Rename `VCSDeploymentType` enum to `VCSReferenceType`
* Change `CreateTemplateDeployment` method signature: replace `Version` parameter with `Type` (TemplateReferenceType) and `Reference` parameters
* Add `GetScreenshot` method to `Avatars` service
* Add `Theme`, `Timezone` and `Output` enums
## v0.14.0
* Add `total` parameter to list queries allowing skipping counting rows in a table for improved performance

View file

@ -1,5 +1,12 @@
# Change Log
## 13.0.0
* Rename `VCSDeploymentType` enum to `VCSReferenceType`
* Change `createTemplateDeployment` method signature: replace `version` parameter with `type` (TemplateReferenceType) and `reference` parameters
* Add `getScreenshot` method to `Avatars` service
* Add `Theme`, `Timezone` and `Output` enums
## 12.3.0
* Add `total` parameter to list queries allowing skipping counting rows in a table for improved performance

View file

@ -1,5 +1,12 @@
# Change Log
## 21.0.0
* Rename `VCSDeploymentType` enum to `VCSReferenceType`
* Change `createTemplateDeployment` method signature: replace `version` parameter with `type` (TemplateReferenceType) and `reference` parameters
* Add `getScreenshot` method to `Avatars` service
* Add `Theme`, `Timezone` and `Output` enums
## 20.3.0
* Add `total` parameter to list queries allowing skipping counting rows in a table for improved performance

View file

@ -1,5 +1,11 @@
# Change Log
## 19.0.0
* Rename `VCSDeploymentType` enum to `VCSReferenceType`
* Change `createTemplateDeployment` method signature: replace `version` parameter with `type` (TemplateReferenceType) and `reference` parameters
* Add `Theme`, `Timezone` and `Output` enums
## 18.0.1
* Fix `TablesDB` service to use correct file name

View file

@ -1,5 +1,13 @@
# Change Log
## 14.0.0
* Rename `VCSDeploymentType` enum to `VCSReferenceType`
* Change `create_template_deployment` method signature: replace `version` parameter with `type` (TemplateReferenceType) and `reference` parameters
* Add `get_screenshot` method to `Avatars` service
* Add `Theme`, `Timezone` and `Output` enums
* Add support for dart39 and flutter335 runtimes
## 13.6.1
* Fix passing of `None` to nullable parameters

View file

@ -1,5 +1,10 @@
# Change log
## 0.19.0
* Add `getScreenshot` method to `Avatars` service
* Add `Theme`, `Timezone` and `Output` enums
## 0.18.0
* Add `total` parameter to list queries allowing skipping counting rows in a table for improved performance

View file

@ -1,5 +1,12 @@
# Change Log
## 20.0.0
* Rename `VCSDeploymentType` enum to `VCSReferenceType`
* Change `create_template_deployment` method signature: replace `version` parameter with `type` (TemplateReferenceType) and `reference` parameters
* Add `get_screenshot` method to `Avatars` service
* Add `Theme`, `Timezone` and `Output` enums
## 19.3.0
* Add `total` parameter to list queries allowing skipping counting rows in a table for improved performance

View file

@ -1,5 +1,12 @@
# Change Log
## 14.0.0
* Rename `VCSDeploymentType` enum to `VCSReferenceType`
* Change `createTemplateDeployment` method signature: replace `version` parameter with `type` (TemplateReferenceType) and `reference` parameters
* Add `getScreenshot` method to `Avatars` service
* Add `Theme`, `Timezone` and `Output` enums
## 13.3.0
* Add `total` parameter to list queries allowing skipping counting rows in a table for improved performance

View file

@ -1,5 +1,10 @@
# Change Log
## 21.5.0
* Add `getScreenshot` method to `Avatars` service
* Add `Theme`, `Timezone` and `Output` enums
## 21.4.0
* Add `total` parameter to list queries allowing skipping counting rows in a table for improved performance

View file

@ -171,6 +171,12 @@ abstract class Format
return 'CreditCard';
case 'getFlag':
return 'Flag';
case 'getScreenshot':
switch ($param) {
case 'permissions':
return 'BrowserPermission';
}
break;
}
break;
case 'databases':

View file

@ -19,7 +19,6 @@ use Utopia\Validator;
use Utopia\Validator\ArrayList;
use Utopia\Validator\Nullable;
use Utopia\Validator\Range;
use Utopia\Validator\WhiteList;
class OpenAPI3 extends Format
{
@ -440,6 +439,7 @@ class OpenAPI3 extends Format
$subclass = \get_class($validator->getValidator());
switch ($subclass) {
case 'Appwrite\Utopia\Database\Validator\Operation':
case 'Utopia\Validator\WhiteList':
$class = $subclass;
break;
}
@ -449,23 +449,23 @@ class OpenAPI3 extends Format
case 'Utopia\Database\Validator\UID':
case 'Utopia\Validator\Text':
$node['schema']['type'] = $validator->getType();
$node['schema']['x-example'] = '<' . \strtoupper(Template::fromCamelCaseToSnake($node['name'])) . '>';
$node['schema']['x-example'] = ($param['example'] ?? '') ?: '<' . \strtoupper(Template::fromCamelCaseToSnake($node['name'])) . '>';
break;
case 'Utopia\Validator\Boolean':
$node['schema']['type'] = $validator->getType();
$node['schema']['x-example'] = false;
$node['schema']['x-example'] = ($param['example'] ?? '') ?: false;
break;
case 'Appwrite\Utopia\Database\Validator\CustomId':
if ($sdk->getType() === MethodType::UPLOAD) {
$node['schema']['x-upload-id'] = true;
}
$node['schema']['type'] = $validator->getType();
$node['schema']['x-example'] = '<' . \strtoupper(Template::fromCamelCaseToSnake($node['name'])) . '>';
$node['schema']['x-example'] = ($param['example'] ?? '') ?: '<' . \strtoupper(Template::fromCamelCaseToSnake($node['name'])) . '>';
break;
case 'Utopia\Database\Validator\DatetimeValidator':
$node['schema']['type'] = $validator->getType();
$node['schema']['format'] = 'datetime';
$node['schema']['x-example'] = Model::TYPE_DATETIME_EXAMPLE;
$node['schema']['x-example'] = ($param['example'] ?? '') ?: Model::TYPE_DATETIME_EXAMPLE;
break;
case 'Utopia\Database\Validator\Spatial':
/** @var Spatial $validator */
@ -475,7 +475,7 @@ class OpenAPI3 extends Format
['type' => 'array']
]
];
$node['schema']['x-example'] = match ($validator->getSpatialType()) {
$node['schema']['x-example'] = ($param['example'] ?? '') ?: match ($validator->getSpatialType()) {
Database::VAR_POINT => '[1, 2]',
Database::VAR_LINESTRING => '[[1, 2], [3, 4], [5, 6]]',
Database::VAR_POLYGON => '[[[1, 2], [3, 4], [5, 6], [1, 2]]]',
@ -484,14 +484,14 @@ class OpenAPI3 extends Format
case 'Appwrite\Network\Validator\Email':
$node['schema']['type'] = $validator->getType();
$node['schema']['format'] = 'email';
$node['schema']['x-example'] = 'email@example.com';
$node['schema']['x-example'] = ($param['example'] ?? '') ?: 'email@example.com';
break;
case 'Utopia\Validator\Host':
case 'Utopia\Validator\URL':
case 'Appwrite\Network\Validator\Redirect':
$node['schema']['type'] = $validator->getType();
$node['schema']['format'] = 'url';
$node['schema']['x-example'] = 'https://example.com';
$node['schema']['x-example'] = ($param['example'] ?? '') ?: 'https://example.com';
break;
case 'Utopia\Validator\JSON':
case 'Utopia\Validator\Mock':
@ -511,6 +511,9 @@ class OpenAPI3 extends Format
$node['schema']['items'] = [
'type' => $validator->getValidator()->getType(),
];
if (!empty($param['example'])) {
$node['schema']['x-example'] = $param['example'];
}
break;
case 'Appwrite\Utopia\Database\Validator\Queries\Base':
case 'Appwrite\Utopia\Database\Validator\Queries\Columns':
@ -551,73 +554,115 @@ class OpenAPI3 extends Format
$node['schema']['items'] = [
'type' => 'string',
];
$node['schema']['x-example'] = '["' . Permission::read(Role::any()) . '"]';
$node['schema']['x-example'] = ($param['example'] ?? '') ?: '["' . Permission::read(Role::any()) . '"]';
break;
case 'Utopia\Database\Validator\Roles':
$node['schema']['type'] = $validator->getType();
$node['schema']['items'] = [
'type' => 'string',
];
$node['schema']['x-example'] = '["' . Role::any()->toString() . '"]';
$node['schema']['x-example'] = ($param['example'] ?? '') ?: '["' . Role::any()->toString() . '"]';
break;
case 'Appwrite\Auth\Validator\Password':
$node['schema']['type'] = $validator->getType();
$node['schema']['format'] = 'password';
$node['schema']['x-example'] = 'password';
$node['schema']['x-example'] = ($param['example'] ?? '') ?: 'password';
break;
case 'Appwrite\Auth\Validator\Phone':
$node['schema']['type'] = $validator->getType();
$node['schema']['format'] = 'phone';
$node['schema']['x-example'] = '+12065550100'; // In the US, 555 is reserved like example.com
$node['schema']['x-example'] = ($param['example'] ?? '') ?: '+12065550100'; // In the US, 555 is reserved like example.com
break;
case 'Utopia\Validator\Range':
/** @var Range $validator */
$node['schema']['type'] = $validator->getType() === Validator::TYPE_FLOAT ? 'number' : $validator->getType();
$node['schema']['format'] = $validator->getType() == Validator::TYPE_INTEGER ? 'int32' : 'float';
$node['schema']['x-example'] = $validator->getMin();
$node['schema']['x-example'] = ($param['example'] ?? '') ?: $validator->getMin();
break;
case 'Utopia\Validator\Integer':
$node['schema']['type'] = $validator->getType();
$node['schema']['format'] = 'int32';
if (!empty($param['example'])) {
$node['schema']['x-example'] = $param['example'];
}
break;
case 'Utopia\Validator\Numeric':
case 'Utopia\Validator\FloatValidator':
$node['schema']['type'] = 'number';
$node['schema']['format'] = 'float';
if (!empty($param['example'])) {
$node['schema']['x-example'] = $param['example'];
}
break;
case 'Utopia\Validator\Length':
$node['schema']['type'] = $validator->getType();
if (!empty($param['example'])) {
$node['schema']['x-example'] = $param['example'];
}
break;
case 'Utopia\Validator\WhiteList':
/** @var WhiteList $validator */
$node['schema']['type'] = $validator->getType();
$node['schema']['x-example'] = $validator->getList()[0];
if ($array) {
$validator = $validator->getValidator();
// Iterate from the blackList. If it matches with the current one, then it is a blackList
// Do not add the enum
$allowed = true;
foreach ($this->enumBlacklist as $blacklist) {
if (
$blacklist['namespace'] == $sdk->getNamespace()
&& $blacklist['method'] == $methodName
&& $blacklist['parameter'] == $name
) {
$allowed = false;
break;
$node['schema']['type'] = 'array';
$node['schema']['items'] = [
'type' => $validator->getType(),
];
if (!empty($param['example'])) {
$node['schema']['x-example'] = $param['example'];
}
// Iterate from the blackList. If it matches with the current one, then it is a blackList
// Do not add the enum
$allowed = true;
foreach ($this->enumBlacklist as $blacklist) {
if (
$blacklist['namespace'] == $sdk->getNamespace()
&& $blacklist['method'] == $methodName
&& $blacklist['parameter'] == $name
) {
$allowed = false;
break;
}
}
if ($allowed && $validator->getType() === 'string') {
$node['schema']['items']['enum'] = \array_values($validator->getList());
$node['schema']['items']['x-enum-name'] = $this->getRequestEnumName($sdk->getNamespace() ?? '', $methodName, $name);
$node['schema']['items']['x-enum-keys'] = $this->getRequestEnumKeys($sdk->getNamespace() ?? '', $methodName, $name);
}
if ($validator->getType() === 'integer') {
$node['schema']['items']['format'] = 'int32';
}
} else {
$node['schema']['type'] = $validator->getType();
$node['schema']['x-example'] = ($param['example'] ?? '') ?: $validator->getList()[0];
// Iterate from the blackList. If it matches with the current one, then it is a blackList
// Do not add the enum
$allowed = true;
foreach ($this->enumBlacklist as $blacklist) {
if (
$blacklist['namespace'] == $sdk->getNamespace()
&& $blacklist['method'] == $methodName
&& $blacklist['parameter'] == $name
) {
$allowed = false;
break;
}
}
if ($allowed && $validator->getType() === 'string') {
$node['schema']['enum'] = \array_values($validator->getList());
$node['schema']['x-enum-name'] = $this->getRequestEnumName($sdk->getNamespace() ?? '', $methodName, $name);
$node['schema']['x-enum-keys'] = $this->getRequestEnumKeys($sdk->getNamespace() ?? '', $methodName, $name);
}
if ($validator->getType() === 'integer') {
$node['format'] = 'int32';
}
}
if ($allowed && $validator->getType() === 'string') {
$node['schema']['enum'] = $validator->getList();
$node['schema']['x-enum-name'] = $this->getRequestEnumName($sdk->getNamespace() ?? '', $methodName, $name);
$node['schema']['x-enum-keys'] = $this->getRequestEnumKeys($sdk->getNamespace() ?? '', $methodName, $name);
}
if ($validator->getType() === 'integer') {
$node['format'] = 'int32';
}
break;
case 'Appwrite\Utopia\Database\Validator\CompoundUID':
$node['schema']['type'] = $validator->getType();
$node['schema']['x-example'] = '<ID1:ID2>';
$node['schema']['x-example'] = ($param['example'] ?? '') ?: '<ID1:ID2>';
break;
case 'Appwrite\Utopia\Database\Validator\Operation':
if ($array) {
@ -633,22 +678,29 @@ class OpenAPI3 extends Format
} else {
$node['schema']['type'] = 'object';
}
$example = [
'action' => 'create',
'databaseId' => '<DATABASE_ID>',
$collectionIdKey => '<'.\strtoupper(Template::fromCamelCaseToSnake($collectionIdKey)).'>',
$documentIdKey => '<'.\strtoupper(Template::fromCamelCaseToSnake($documentIdKey)).'>',
'data' => [
'name' => 'Walter O\'Brien',
],
];
if ($array) {
$example = [$example];
if (empty($param['example'])) {
$example = [
'action' => 'create',
'databaseId' => '<DATABASE_ID>',
$collectionIdKey => '<'.\strtoupper(Template::fromCamelCaseToSnake($collectionIdKey)).'>',
$documentIdKey => '<'.\strtoupper(Template::fromCamelCaseToSnake($documentIdKey)).'>',
'data' => [
'name' => 'Walter O\'Brien',
],
];
if ($array) {
$example = [$example];
}
$node['schema']['x-example'] = \str_replace("\n", "\n\t", \json_encode($example, JSON_PRETTY_PRINT));
} else {
$node['schema']['x-example'] = $param['example'];
}
$node['schema']['x-example'] = \str_replace("\n", "\n\t", \json_encode($example, JSON_PRETTY_PRINT));
break;
default:
$node['schema']['type'] = 'string';
if (!empty($param['example'])) {
$node['schema']['x-example'] = $param['example'];
}
break;
}
@ -853,13 +905,13 @@ class OpenAPI3 extends Format
}
if ($rule['type'] === 'enum' && !empty($rule['enum'])) {
if ($rule['array']) {
$output['components']['schemas'][$model->getType()]['properties'][$name]['items']['enum'] = $rule['enum'];
$output['components']['schemas'][$model->getType()]['properties'][$name]['items']['enum'] = \array_values($rule['enum']);
$enumName = $this->getResponseEnumName($model->getType(), $name);
if ($enumName) {
$output['components']['schemas'][$model->getType()]['properties'][$name]['items']['x-enum-name'] = $enumName;
}
} else {
$output['components']['schemas'][$model->getType()]['properties'][$name]['enum'] = $rule['enum'];
$output['components']['schemas'][$model->getType()]['properties'][$name]['enum'] = \array_values($rule['enum']);
$enumName = $this->getResponseEnumName($model->getType(), $name);
if ($enumName) {
$output['components']['schemas'][$model->getType()]['properties'][$name]['x-enum-name'] = $enumName;

View file

@ -20,7 +20,6 @@ use Utopia\Validator;
use Utopia\Validator\ArrayList;
use Utopia\Validator\Nullable;
use Utopia\Validator\Range;
use Utopia\Validator\WhiteList;
class Swagger2 extends Format
{
@ -445,6 +444,7 @@ class Swagger2 extends Format
$subclass = \get_class($validator->getValidator());
switch ($subclass) {
case 'Appwrite\Utopia\Database\Validator\Operation':
case 'Utopia\Validator\WhiteList':
$class = $subclass;
break;
}
@ -454,23 +454,23 @@ class Swagger2 extends Format
case 'Utopia\Validator\Text':
case 'Utopia\Database\Validator\UID':
$node['type'] = $validator->getType();
$node['x-example'] = '<' . \strtoupper(Template::fromCamelCaseToSnake($node['name'])) . '>';
$node['x-example'] = ($param['example'] ?? '') ?: '<' . \strtoupper(Template::fromCamelCaseToSnake($node['name'])) . '>';
break;
case 'Utopia\Validator\Boolean':
$node['type'] = $validator->getType();
$node['x-example'] = false;
$node['x-example'] = ($param['example'] ?? '') ?: false;
break;
case 'Appwrite\Utopia\Database\Validator\CustomId':
if ($sdk->getType() === MethodType::UPLOAD) {
$node['x-upload-id'] = true;
}
$node['type'] = $validator->getType();
$node['x-example'] = '<' . \strtoupper(Template::fromCamelCaseToSnake($node['name'])) . '>';
$node['x-example'] = ($param['example'] ?? '') ?: '<' . \strtoupper(Template::fromCamelCaseToSnake($node['name'])) . '>';
break;
case 'Utopia\Database\Validator\DatetimeValidator':
$node['type'] = $validator->getType();
$node['format'] = 'datetime';
$node['x-example'] = Model::TYPE_DATETIME_EXAMPLE;
$node['x-example'] = ($param['example'] ?? '') ?: Model::TYPE_DATETIME_EXAMPLE;
break;
case 'Utopia\Database\Validator\Spatial':
/** @var Spatial $validator */
@ -480,7 +480,7 @@ class Swagger2 extends Format
['type' => 'array']
]
];
$node['x-example'] = match ($validator->getSpatialType()) {
$node['x-example'] = ($param['example'] ?? '') ?: match ($validator->getSpatialType()) {
Database::VAR_POINT => '[1, 2]',
Database::VAR_LINESTRING => '[[1, 2], [3, 4], [5, 6]]',
Database::VAR_POLYGON => '[[[1, 2], [3, 4], [5, 6], [1, 2]]]',
@ -489,14 +489,14 @@ class Swagger2 extends Format
case 'Appwrite\Network\Validator\Email':
$node['type'] = $validator->getType();
$node['format'] = 'email';
$node['x-example'] = 'email@example.com';
$node['x-example'] = ($param['example'] ?? '') ?: 'email@example.com';
break;
case 'Utopia\Validator\Host':
case 'Utopia\Validator\URL':
case 'Appwrite\Network\Validator\Redirect':
$node['type'] = $validator->getType();
$node['format'] = 'url';
$node['x-example'] = 'https://example.com';
$node['x-example'] = ($param['example'] ?? '') ?: 'https://example.com';
break;
case 'Utopia\Validator\ArrayList':
/** @var ArrayList $validator */
@ -505,6 +505,9 @@ class Swagger2 extends Format
$node['items'] = [
'type' => $validator->getValidator()->getType(),
];
if (!empty($param['example'])) {
$node['x-example'] = $param['example'];
}
break;
case 'Utopia\Validator\JSON':
case 'Utopia\Validator\Mock':
@ -539,7 +542,7 @@ class Swagger2 extends Format
$node['items'] = [
'type' => 'string',
];
$node['x-example'] = '["' . Permission::read(Role::any()) . '"]';
$node['x-example'] = ($param['example'] ?? '') ?: '["' . Permission::read(Role::any()) . '"]';
break;
case 'Utopia\Database\Validator\Roles':
$node['type'] = $validator->getType();
@ -547,61 +550,99 @@ class Swagger2 extends Format
$node['items'] = [
'type' => 'string',
];
$node['x-example'] = '["' . Role::any()->toString() . '"]';
$node['x-example'] = ($param['example'] ?? '') ?: '["' . Role::any()->toString() . '"]';
break;
case 'Appwrite\Auth\Validator\Password':
$node['type'] = $validator->getType();
$node['format'] = 'password';
$node['x-example'] = 'password';
$node['x-example'] = ($param['example'] ?? '') ?: 'password';
break;
case 'Appwrite\Auth\Validator\Phone':
$node['type'] = $validator->getType();
$node['format'] = 'phone';
$node['x-example'] = '+12065550100';
$node['x-example'] = ($param['example'] ?? '') ?: '+12065550100';
break;
case 'Utopia\Validator\Range':
/** @var Range $validator */
$node['type'] = $validator->getType() === Validator::TYPE_FLOAT ? 'number' : $validator->getType();
$node['format'] = $validator->getType() == Validator::TYPE_INTEGER ? 'int32' : 'float';
$node['x-example'] = $validator->getMin();
$node['x-example'] = ($param['example'] ?? '') ?: $validator->getMin();
break;
case 'Utopia\Validator\Integer':
$node['type'] = $validator->getType();
$node['format'] = 'int32';
if (!empty($param['example'])) {
$node['x-example'] = $param['example'];
}
break;
case 'Utopia\Validator\Numeric':
case 'Utopia\Validator\FloatValidator':
$node['type'] = 'number';
$node['format'] = 'float';
if (!empty($param['example'])) {
$node['x-example'] = $param['example'];
}
break;
case 'Utopia\Validator\Length':
$node['type'] = $validator->getType();
if (!empty($param['example'])) {
$node['x-example'] = $param['example'];
}
break;
case 'Utopia\Validator\WhiteList':
/** @var WhiteList $validator */
$node['type'] = $validator->getType();
$node['x-example'] = $validator->getList()[0];
if ($array) {
$validator = $validator->getValidator();
// Iterate the blackList. If it matches with the current one, then it is blackListed
$allowed = true;
foreach ($this->enumBlacklist as $blacklist) {
if ($blacklist['namespace'] == $namespace && $blacklist['method'] == $methodName && $blacklist['parameter'] == $name) {
$allowed = false;
break;
$node['type'] = 'array';
$node['collectionFormat'] = 'multi';
$node['items'] = [
'type' => $validator->getType(),
];
if (!empty($param['example'])) {
$node['x-example'] = $param['example'];
}
// Iterate the blackList. If it matches with the current one, then it is blackListed
$allowed = true;
foreach ($this->enumBlacklist as $blacklist) {
if ($blacklist['namespace'] == $namespace && $blacklist['method'] == $methodName && $blacklist['parameter'] == $name) {
$allowed = false;
break;
}
}
if ($allowed && $validator->getType() === 'string') {
$node['items']['enum'] = \array_values($validator->getList());
$node['items']['x-enum-name'] = $this->getRequestEnumName($namespace, $methodName, $name);
$node['items']['x-enum-keys'] = $this->getRequestEnumKeys($namespace, $methodName, $name);
}
if ($validator->getType() === 'integer') {
$node['items']['format'] = 'int32';
}
} else {
$node['type'] = $validator->getType();
$node['x-example'] = ($param['example'] ?? '') ?: $validator->getList()[0];
// Iterate the blackList. If it matches with the current one, then it is blackListed
$allowed = true;
foreach ($this->enumBlacklist as $blacklist) {
if ($blacklist['namespace'] == $namespace && $blacklist['method'] == $methodName && $blacklist['parameter'] == $name) {
$allowed = false;
break;
}
}
if ($allowed && $validator->getType() === 'string') {
$node['enum'] = \array_values($validator->getList());
$node['x-enum-name'] = $this->getRequestEnumName($namespace, $methodName, $name);
$node['x-enum-keys'] = $this->getRequestEnumKeys($namespace, $methodName, $name);
}
if ($validator->getType() === 'integer') {
$node['format'] = 'int32';
}
}
if ($allowed && $validator->getType() === 'string') {
$node['enum'] = $validator->getList();
$node['x-enum-name'] = $this->getRequestEnumName($namespace, $methodName, $name);
$node['x-enum-keys'] = $this->getRequestEnumKeys($namespace, $methodName, $name);
}
if ($validator->getType() === 'integer') {
$node['format'] = 'int32';
}
break;
case 'Appwrite\Utopia\Database\Validator\CompoundUID':
$node['type'] = $validator->getType();
$node['x-example'] = '<ID1:ID2>';
$node['x-example'] = ($param['example'] ?? '') ?: '<ID1:ID2>';
break;
case 'Appwrite\Utopia\Database\Validator\Operation':
if ($array) {
@ -618,22 +659,29 @@ class Swagger2 extends Format
} else {
$node['type'] = 'object';
}
$example = [
'action' => 'create',
'databaseId' => '<DATABASE_ID>',
$collectionIdKey => '<'.\strtoupper(Template::fromCamelCaseToSnake($collectionIdKey)).'>',
$documentIdKey => '<'.\strtoupper(Template::fromCamelCaseToSnake($documentIdKey)).'>',
'data' => [
'name' => 'Walter O\'Brien',
],
];
if ($array) {
$example = [$example];
if (empty($param['example'])) {
$example = [
'action' => 'create',
'databaseId' => '<DATABASE_ID>',
$collectionIdKey => '<'.\strtoupper(Template::fromCamelCaseToSnake($collectionIdKey)).'>',
$documentIdKey => '<'.\strtoupper(Template::fromCamelCaseToSnake($documentIdKey)).'>',
'data' => [
'name' => 'Walter O\'Brien',
],
];
if ($array) {
$example = [$example];
}
$node['x-example'] = \str_replace("\n", "\n\t", \json_encode($example, JSON_PRETTY_PRINT));
} else {
$node['x-example'] = $param['example'];
}
$node['x-example'] = \str_replace("\n", "\n\t", \json_encode($example, JSON_PRETTY_PRINT));
break;
default:
$node['type'] = 'string';
if (!empty($param['example'])) {
$node['x-example'] = $param['example'];
}
break;
}
@ -853,13 +901,13 @@ class Swagger2 extends Format
}
if ($rule['type'] === 'enum' && !empty($rule['enum'])) {
if ($rule['array']) {
$output['definitions'][$model->getType()]['properties'][$name]['items']['enum'] = $rule['enum'];
$output['definitions'][$model->getType()]['properties'][$name]['items']['enum'] = \array_values($rule['enum']);
$enumName = $this->getResponseEnumName($model->getType(), $name);
if ($enumName) {
$output['definitions'][$model->getType()]['properties'][$name]['items']['x-enum-name'] = $enumName;
}
} else {
$output['definitions'][$model->getType()]['properties'][$name]['enum'] = $rule['enum'];
$output['definitions'][$model->getType()]['properties'][$name]['enum'] = \array_values($rule['enum']);
$enumName = $this->getResponseEnumName($model->getType(), $name);
if ($enumName) {
$output['definitions'][$model->getType()]['properties'][$name]['x-enum-name'] = $enumName;