@appwrite.io/console 1.9.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/.github/workflows/publish.yml +1 -1
  2. package/CHANGELOG.md +45 -6
  3. package/README.md +82 -2
  4. package/dist/cjs/sdk.js +246 -193
  5. package/dist/cjs/sdk.js.map +1 -1
  6. package/dist/esm/sdk.js +246 -193
  7. package/dist/esm/sdk.js.map +1 -1
  8. package/dist/iife/sdk.js +246 -193
  9. package/docs/examples/databases/create-document.md +1 -3
  10. package/docs/examples/databases/create-documents.md +1 -1
  11. package/docs/examples/functions/create-execution.md +1 -1
  12. package/docs/examples/organizations/get-available-credits.md +13 -0
  13. package/docs/examples/organizations/update-projects.md +14 -0
  14. package/docs/examples/vcs/get-repository-contents.md +2 -1
  15. package/package.json +1 -1
  16. package/src/client.ts +1 -1
  17. package/src/models.ts +241 -9
  18. package/src/services/account.ts +97 -36
  19. package/src/services/avatars.ts +26 -20
  20. package/src/services/backups.ts +11 -0
  21. package/src/services/console.ts +8 -1
  22. package/src/services/databases.ts +97 -33
  23. package/src/services/domains.ts +111 -69
  24. package/src/services/functions.ts +37 -8
  25. package/src/services/graphql.ts +1 -0
  26. package/src/services/health.ts +26 -1
  27. package/src/services/locale.ts +9 -2
  28. package/src/services/messaging.ts +53 -8
  29. package/src/services/migrations.ts +12 -0
  30. package/src/services/organizations.ts +106 -16
  31. package/src/services/project.ts +5 -0
  32. package/src/services/projects.ts +50 -0
  33. package/src/services/proxy.ts +7 -0
  34. package/src/services/sites.ts +32 -4
  35. package/src/services/storage.ts +23 -9
  36. package/src/services/teams.ts +30 -17
  37. package/src/services/tokens.ts +4 -0
  38. package/src/services/users.ts +69 -27
  39. package/src/services/vcs.ts +16 -4
  40. package/types/models.d.ts +228 -192
  41. package/types/services/account.d.ts +36 -36
  42. package/types/services/avatars.d.ts +20 -20
  43. package/types/services/console.d.ts +1 -1
  44. package/types/services/databases.d.ts +43 -33
  45. package/types/services/domains.d.ts +69 -69
  46. package/types/services/functions.d.ts +8 -8
  47. package/types/services/health.d.ts +1 -1
  48. package/types/services/locale.d.ts +2 -2
  49. package/types/services/messaging.d.ts +8 -8
  50. package/types/services/organizations.d.ts +33 -16
  51. package/types/services/sites.d.ts +4 -4
  52. package/types/services/storage.d.ts +9 -9
  53. package/types/services/teams.d.ts +17 -17
  54. package/types/services/users.d.ts +27 -27
  55. package/types/services/vcs.d.ts +4 -4
package/dist/esm/sdk.js CHANGED
@@ -278,7 +278,7 @@ class Client {
278
278
  'x-sdk-name': 'Console',
279
279
  'x-sdk-platform': 'console',
280
280
  'x-sdk-language': 'web',
281
- 'x-sdk-version': '1.9.0',
281
+ 'x-sdk-version': '1.10.0',
282
282
  'X-Appwrite-Response-Format': '1.7.0',
283
283
  };
284
284
  this.realtime = {
@@ -988,8 +988,8 @@ class Account {
988
988
  }
989
989
  /**
990
990
  * Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.
991
- This endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.
992
-
991
+ * This endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.
992
+ *
993
993
  *
994
994
  * @param {string} email
995
995
  * @param {string} password
@@ -1591,8 +1591,8 @@ This endpoint can also be used to convert an anonymous account to a normal one,
1591
1591
  }
1592
1592
  /**
1593
1593
  * Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST /account/recovery](https://appwrite.io/docs/references/cloud/client-web/account#createRecovery) endpoint.
1594
-
1595
- Please note that in order to avoid a [Redirect Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.
1594
+ *
1595
+ * Please note that in order to avoid a [Redirect Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.
1596
1596
  *
1597
1597
  * @param {string} userId
1598
1598
  * @param {string} secret
@@ -1672,8 +1672,8 @@ Please note that in order to avoid a [Redirect Attack](https://github.com/OWASP/
1672
1672
  }
1673
1673
  /**
1674
1674
  * Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user.
1675
-
1676
- A user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appwrite.io/docs/authentication-security#limits).
1675
+ *
1676
+ * A user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appwrite.io/docs/authentication-security#limits).
1677
1677
  *
1678
1678
  * @param {string} email
1679
1679
  * @param {string} password
@@ -1732,11 +1732,11 @@ A user is limited to 10 active sessions at a time by default. [Learn more about
1732
1732
  }
1733
1733
  /**
1734
1734
  * Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.
1735
-
1736
- If there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.
1737
-
1738
- A user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appwrite.io/docs/authentication-security#limits).
1739
-
1735
+ *
1736
+ * If there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.
1737
+ *
1738
+ * A user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appwrite.io/docs/authentication-security#limits).
1739
+ *
1740
1740
  *
1741
1741
  * @param {OAuthProvider} provider
1742
1742
  * @param {string} success
@@ -1981,8 +1981,8 @@ A user is limited to 10 active sessions at a time by default. [Learn more about
1981
1981
  }
1982
1982
  /**
1983
1983
  * Sends the user an email with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST /v1/account/sessions/token](https://appwrite.io/docs/references/cloud/client-web/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.
1984
-
1985
- A user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appwrite.io/docs/authentication-security#limits).
1984
+ *
1985
+ * A user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appwrite.io/docs/authentication-security#limits).
1986
1986
  *
1987
1987
  * @param {string} userId
1988
1988
  * @param {string} email
@@ -2016,9 +2016,9 @@ A user is limited to 10 active sessions at a time by default. [Learn more about
2016
2016
  }
2017
2017
  /**
2018
2018
  * Sends the user an email with a secret key for creating a session. If the provided user ID has not been registered, a new user will be created. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [POST /v1/account/sessions/token](https://appwrite.io/docs/references/cloud/client-web/account#createSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour.
2019
-
2020
- A user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appwrite.io/docs/authentication-security#limits).
2021
-
2019
+ *
2020
+ * A user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appwrite.io/docs/authentication-security#limits).
2021
+ *
2022
2022
  *
2023
2023
  * @param {string} userId
2024
2024
  * @param {string} email
@@ -2056,10 +2056,10 @@ A user is limited to 10 active sessions at a time by default. [Learn more about
2056
2056
  }
2057
2057
  /**
2058
2058
  * Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.
2059
-
2060
- If authentication succeeds, `userId` and `secret` of a token will be appended to the success URL as query parameters. These can be used to create a new session using the [Create session](https://appwrite.io/docs/references/cloud/client-web/account#createSession) endpoint.
2061
-
2062
- A user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appwrite.io/docs/authentication-security#limits).
2059
+ *
2060
+ * If authentication succeeds, `userId` and `secret` of a token will be appended to the success URL as query parameters. These can be used to create a new session using the [Create session](https://appwrite.io/docs/references/cloud/client-web/account#createSession) endpoint.
2061
+ *
2062
+ * A user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appwrite.io/docs/authentication-security#limits).
2063
2063
  *
2064
2064
  * @param {OAuthProvider} provider
2065
2065
  * @param {string} success
@@ -2098,8 +2098,8 @@ A user is limited to 10 active sessions at a time by default. [Learn more about
2098
2098
  }
2099
2099
  /**
2100
2100
  * Sends the user an SMS with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST /v1/account/sessions/token](https://appwrite.io/docs/references/cloud/client-web/account#createSession) endpoint to complete the login process. The secret sent to the user's phone is valid for 15 minutes.
2101
-
2102
- A user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appwrite.io/docs/authentication-security#limits).
2101
+ *
2102
+ * A user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appwrite.io/docs/authentication-security#limits).
2103
2103
  *
2104
2104
  * @param {string} userId
2105
2105
  * @param {string} phone
@@ -2129,9 +2129,9 @@ A user is limited to 10 active sessions at a time by default. [Learn more about
2129
2129
  }
2130
2130
  /**
2131
2131
  * Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https://appwrite.io/docs/references/cloud/client-web/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.
2132
-
2133
- Please note that in order to avoid a [Redirect Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.
2134
-
2132
+ *
2133
+ * Please note that in order to avoid a [Redirect Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.
2134
+ *
2135
2135
  *
2136
2136
  * @param {string} url
2137
2137
  * @throws {AppwriteException}
@@ -2233,8 +2233,8 @@ class Avatars {
2233
2233
  }
2234
2234
  /**
2235
2235
  * You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user [GET /account/sessions](https://appwrite.io/docs/references/cloud/client-web/account#getSessions) endpoint. Use width, height and quality arguments to change the output settings.
2236
-
2237
- When one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.
2236
+ *
2237
+ * When one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.
2238
2238
  *
2239
2239
  * @param {Browser} code
2240
2240
  * @param {number} width
@@ -2267,9 +2267,9 @@ When one dimension is specified and the other is 0, the image is scaled with pre
2267
2267
  }
2268
2268
  /**
2269
2269
  * The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.
2270
-
2271
- When one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.
2272
-
2270
+ *
2271
+ * When one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.
2272
+ *
2273
2273
  *
2274
2274
  * @param {CreditCard} code
2275
2275
  * @param {number} width
@@ -2302,8 +2302,8 @@ When one dimension is specified and the other is 0, the image is scaled with pre
2302
2302
  }
2303
2303
  /**
2304
2304
  * Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.
2305
-
2306
- This endpoint does not follow HTTP redirects.
2305
+ *
2306
+ * This endpoint does not follow HTTP redirects.
2307
2307
  *
2308
2308
  * @param {string} url
2309
2309
  * @throws {AppwriteException}
@@ -2327,9 +2327,9 @@ This endpoint does not follow HTTP redirects.
2327
2327
  }
2328
2328
  /**
2329
2329
  * You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings. Country codes follow the [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) standard.
2330
-
2331
- When one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.
2332
-
2330
+ *
2331
+ * When one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.
2332
+ *
2333
2333
  *
2334
2334
  * @param {Flag} code
2335
2335
  * @param {number} width
@@ -2362,10 +2362,10 @@ When one dimension is specified and the other is 0, the image is scaled with pre
2362
2362
  }
2363
2363
  /**
2364
2364
  * Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.
2365
-
2366
- When one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 400x400px.
2367
-
2368
- This endpoint does not follow HTTP redirects.
2365
+ *
2366
+ * When one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 400x400px.
2367
+ *
2368
+ * This endpoint does not follow HTTP redirects.
2369
2369
  *
2370
2370
  * @param {string} url
2371
2371
  * @param {number} width
@@ -2397,11 +2397,11 @@ This endpoint does not follow HTTP redirects.
2397
2397
  }
2398
2398
  /**
2399
2399
  * Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.
2400
-
2401
- You can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.
2402
-
2403
- When one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.
2404
-
2400
+ *
2401
+ * You can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.
2402
+ *
2403
+ * When one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.
2404
+ *
2405
2405
  *
2406
2406
  * @param {string} name
2407
2407
  * @param {number} width
@@ -2434,7 +2434,7 @@ When one dimension is specified and the other is 0, the image is scaled with pre
2434
2434
  }
2435
2435
  /**
2436
2436
  * Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.
2437
-
2437
+ *
2438
2438
  *
2439
2439
  * @param {string} text
2440
2440
  * @param {number} size
@@ -2984,7 +2984,7 @@ class Databases {
2984
2984
  }
2985
2985
  /**
2986
2986
  * Create a new Database.
2987
-
2987
+ *
2988
2988
  *
2989
2989
  * @param {string} databaseId
2990
2990
  * @param {string} name
@@ -3282,7 +3282,7 @@ class Databases {
3282
3282
  }
3283
3283
  /**
3284
3284
  * Create a boolean attribute.
3285
-
3285
+ *
3286
3286
  *
3287
3287
  * @param {string} databaseId
3288
3288
  * @param {string} collectionId
@@ -3463,7 +3463,7 @@ class Databases {
3463
3463
  }
3464
3464
  /**
3465
3465
  * Create an email attribute.
3466
-
3466
+ *
3467
3467
  *
3468
3468
  * @param {string} databaseId
3469
3469
  * @param {string} collectionId
@@ -3509,7 +3509,7 @@ class Databases {
3509
3509
  }
3510
3510
  /**
3511
3511
  * Update an email attribute. Changing the `default` value will not update already existing documents.
3512
-
3512
+ *
3513
3513
  *
3514
3514
  * @param {string} databaseId
3515
3515
  * @param {string} collectionId
@@ -3555,7 +3555,7 @@ class Databases {
3555
3555
  }
3556
3556
  /**
3557
3557
  * Create an enumeration attribute. The `elements` param acts as a white-list of accepted values for this attribute.
3558
-
3558
+ *
3559
3559
  *
3560
3560
  * @param {string} databaseId
3561
3561
  * @param {string} collectionId
@@ -3608,7 +3608,7 @@ class Databases {
3608
3608
  }
3609
3609
  /**
3610
3610
  * Update an enum attribute. Changing the `default` value will not update already existing documents.
3611
-
3611
+ *
3612
3612
  *
3613
3613
  * @param {string} databaseId
3614
3614
  * @param {string} collectionId
@@ -3661,7 +3661,7 @@ class Databases {
3661
3661
  }
3662
3662
  /**
3663
3663
  * Create a float attribute. Optionally, minimum and maximum values can be provided.
3664
-
3664
+ *
3665
3665
  *
3666
3666
  * @param {string} databaseId
3667
3667
  * @param {string} collectionId
@@ -3715,7 +3715,7 @@ class Databases {
3715
3715
  }
3716
3716
  /**
3717
3717
  * Update a float attribute. Changing the `default` value will not update already existing documents.
3718
-
3718
+ *
3719
3719
  *
3720
3720
  * @param {string} databaseId
3721
3721
  * @param {string} collectionId
@@ -3769,7 +3769,7 @@ class Databases {
3769
3769
  }
3770
3770
  /**
3771
3771
  * Create an integer attribute. Optionally, minimum and maximum values can be provided.
3772
-
3772
+ *
3773
3773
  *
3774
3774
  * @param {string} databaseId
3775
3775
  * @param {string} collectionId
@@ -3823,7 +3823,7 @@ class Databases {
3823
3823
  }
3824
3824
  /**
3825
3825
  * Update an integer attribute. Changing the `default` value will not update already existing documents.
3826
-
3826
+ *
3827
3827
  *
3828
3828
  * @param {string} databaseId
3829
3829
  * @param {string} collectionId
@@ -3877,7 +3877,7 @@ class Databases {
3877
3877
  }
3878
3878
  /**
3879
3879
  * Create IP address attribute.
3880
-
3880
+ *
3881
3881
  *
3882
3882
  * @param {string} databaseId
3883
3883
  * @param {string} collectionId
@@ -3923,7 +3923,7 @@ class Databases {
3923
3923
  }
3924
3924
  /**
3925
3925
  * Update an ip attribute. Changing the `default` value will not update already existing documents.
3926
-
3926
+ *
3927
3927
  *
3928
3928
  * @param {string} databaseId
3929
3929
  * @param {string} collectionId
@@ -3969,7 +3969,7 @@ class Databases {
3969
3969
  }
3970
3970
  /**
3971
3971
  * Create relationship attribute. [Learn more about relationship attributes](https://appwrite.io/docs/databases-relationships#relationship-attributes).
3972
-
3972
+ *
3973
3973
  *
3974
3974
  * @param {string} databaseId
3975
3975
  * @param {string} collectionId
@@ -4023,7 +4023,7 @@ class Databases {
4023
4023
  }
4024
4024
  /**
4025
4025
  * Create a string attribute.
4026
-
4026
+ *
4027
4027
  *
4028
4028
  * @param {string} databaseId
4029
4029
  * @param {string} collectionId
@@ -4080,7 +4080,7 @@ class Databases {
4080
4080
  }
4081
4081
  /**
4082
4082
  * Update a string attribute. Changing the `default` value will not update already existing documents.
4083
-
4083
+ *
4084
4084
  *
4085
4085
  * @param {string} databaseId
4086
4086
  * @param {string} collectionId
@@ -4130,7 +4130,7 @@ class Databases {
4130
4130
  }
4131
4131
  /**
4132
4132
  * Create a URL attribute.
4133
-
4133
+ *
4134
4134
  *
4135
4135
  * @param {string} databaseId
4136
4136
  * @param {string} collectionId
@@ -4176,7 +4176,7 @@ class Databases {
4176
4176
  }
4177
4177
  /**
4178
4178
  * Update an url attribute. Changing the `default` value will not update already existing documents.
4179
-
4179
+ *
4180
4180
  *
4181
4181
  * @param {string} databaseId
4182
4182
  * @param {string} collectionId
@@ -4274,7 +4274,7 @@ class Databases {
4274
4274
  }
4275
4275
  /**
4276
4276
  * Update relationship attribute. [Learn more about relationship attributes](https://appwrite.io/docs/databases-relationships#relationship-attributes).
4277
-
4277
+ *
4278
4278
  *
4279
4279
  * @param {string} databaseId
4280
4280
  * @param {string} collectionId
@@ -4339,7 +4339,7 @@ class Databases {
4339
4339
  * @param {string} databaseId
4340
4340
  * @param {string} collectionId
4341
4341
  * @param {string} documentId
4342
- * @param {Omit<Document, keyof Models.Document>} data
4342
+ * @param {Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>} data
4343
4343
  * @param {string[]} permissions
4344
4344
  * @throws {AppwriteException}
4345
4345
  * @returns {Promise<Document>}
@@ -4375,6 +4375,8 @@ class Databases {
4375
4375
  return this.client.call('post', uri, apiHeaders, payload);
4376
4376
  }
4377
4377
  /**
4378
+ * **WARNING: Experimental Feature** - This endpoint is experimental and not yet officially supported. It may be subject to breaking changes or removal in future versions.
4379
+ *
4378
4380
  * Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection) API or directly from your database console.
4379
4381
  *
4380
4382
  * @param {string} databaseId
@@ -4405,8 +4407,10 @@ class Databases {
4405
4407
  return this.client.call('post', uri, apiHeaders, payload);
4406
4408
  }
4407
4409
  /**
4410
+ * **WARNING: Experimental Feature** - This endpoint is experimental and not yet officially supported. It may be subject to breaking changes or removal in future versions.
4411
+ *
4408
4412
  * Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection) API or directly from your database console.
4409
-
4413
+ *
4410
4414
  *
4411
4415
  * @param {string} databaseId
4412
4416
  * @param {string} collectionId
@@ -4436,6 +4440,8 @@ class Databases {
4436
4440
  return this.client.call('put', uri, apiHeaders, payload);
4437
4441
  }
4438
4442
  /**
4443
+ * **WARNING: Experimental Feature** - This endpoint is experimental and not yet officially supported. It may be subject to breaking changes or removal in future versions.
4444
+ *
4439
4445
  * Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.
4440
4446
  *
4441
4447
  * @param {string} databaseId
@@ -4467,6 +4473,8 @@ class Databases {
4467
4473
  return this.client.call('patch', uri, apiHeaders, payload);
4468
4474
  }
4469
4475
  /**
4476
+ * **WARNING: Experimental Feature** - This endpoint is experimental and not yet officially supported. It may be subject to breaking changes or removal in future versions.
4477
+ *
4470
4478
  * Bulk delete documents using queries, if no queries are passed then all documents are deleted.
4471
4479
  *
4472
4480
  * @param {string} databaseId
@@ -4523,6 +4531,8 @@ class Databases {
4523
4531
  return this.client.call('get', uri, apiHeaders, payload);
4524
4532
  }
4525
4533
  /**
4534
+ * **WARNING: Experimental Feature** - This endpoint is experimental and not yet officially supported. It may be subject to breaking changes or removal in future versions.
4535
+ *
4526
4536
  * Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection) API or directly from your database console.
4527
4537
  *
4528
4538
  * @param {string} databaseId
@@ -4566,7 +4576,7 @@ class Databases {
4566
4576
  * @param {string} databaseId
4567
4577
  * @param {string} collectionId
4568
4578
  * @param {string} documentId
4569
- * @param {Partial<Omit<Document, keyof Models.Document>>} data
4579
+ * @param {Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>} data
4570
4580
  * @param {string[]} permissions
4571
4581
  * @throws {AppwriteException}
4572
4582
  * @returns {Promise<Document>}
@@ -4756,7 +4766,7 @@ class Databases {
4756
4766
  }
4757
4767
  /**
4758
4768
  * Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.
4759
- Attributes can be `key`, `fulltext`, and `unique`.
4769
+ * Attributes can be `key`, `fulltext`, and `unique`.
4760
4770
  *
4761
4771
  * @param {string} databaseId
4762
4772
  * @param {string} collectionId
@@ -5026,7 +5036,7 @@ class Domains {
5026
5036
  }
5027
5037
  /**
5028
5038
  * Delete a domain by its unique ID. This endpoint can be used to delete a domain from your project.
5029
- Once deleted, the domain will no longer be available for use and all associated resources will be removed.
5039
+ * Once deleted, the domain will no longer be available for use and all associated resources will be removed.
5030
5040
  *
5031
5041
  * @param {string} domainId
5032
5042
  * @throws {AppwriteException}
@@ -5046,8 +5056,8 @@ Once deleted, the domain will no longer be available for use and all associated
5046
5056
  }
5047
5057
  /**
5048
5058
  * Verify which NS records are used and update the domain accordingly. This will check the domain&#039;s
5049
- nameservers and update the domain&#039;s status based on whether the nameservers match the expected
5050
- Appwrite nameservers.
5059
+ * nameservers and update the domain&#039;s status based on whether the nameservers match the expected
5060
+ * Appwrite nameservers.
5051
5061
  *
5052
5062
  * @param {string} domainId
5053
5063
  * @throws {AppwriteException}
@@ -5084,7 +5094,7 @@ Once deleted, the domain will no longer be available for use and all associated
5084
5094
  }
5085
5095
  /**
5086
5096
  * Add Google Workspace DNS records to the domain. This will create the required MX records
5087
- for Google Workspace email hosting.
5097
+ * for Google Workspace email hosting.
5088
5098
  *
5089
5099
  * @param {string} domainId
5090
5100
  * @throws {AppwriteException}
@@ -5121,7 +5131,7 @@ Once deleted, the domain will no longer be available for use and all associated
5121
5131
  }
5122
5132
  /**
5123
5133
  * Add iCloud DNS records to the domain. This will create the required MX and SPF records
5124
- for using iCloud email services with your domain.
5134
+ * for using iCloud email services with your domain.
5125
5135
  *
5126
5136
  * @param {string} domainId
5127
5137
  * @throws {AppwriteException}
@@ -5158,7 +5168,7 @@ Once deleted, the domain will no longer be available for use and all associated
5158
5168
  }
5159
5169
  /**
5160
5170
  * Add Mailgun DNS records to the domain. This endpoint will create the required DNS records
5161
- for Mailgun in the specified domain.
5171
+ * for Mailgun in the specified domain.
5162
5172
  *
5163
5173
  * @param {string} domainId
5164
5174
  * @throws {AppwriteException}
@@ -5195,7 +5205,7 @@ Once deleted, the domain will no longer be available for use and all associated
5195
5205
  }
5196
5206
  /**
5197
5207
  * Add Outlook DNS records to the domain. This will create the required MX records
5198
- for setting up Outlook email hosting for your domain.
5208
+ * for setting up Outlook email hosting for your domain.
5199
5209
  *
5200
5210
  * @param {string} domainId
5201
5211
  * @throws {AppwriteException}
@@ -5232,7 +5242,7 @@ Once deleted, the domain will no longer be available for use and all associated
5232
5242
  }
5233
5243
  /**
5234
5244
  * Add ProtonMail DNS records to the domain. This will create the required MX records
5235
- for using ProtonMail with your custom domain.
5245
+ * for using ProtonMail with your custom domain.
5236
5246
  *
5237
5247
  * @param {string} domainId
5238
5248
  * @throws {AppwriteException}
@@ -5269,7 +5279,7 @@ Once deleted, the domain will no longer be available for use and all associated
5269
5279
  }
5270
5280
  /**
5271
5281
  * Add Zoho Mail DNS records to the domain. This will create the required MX records
5272
- for setting up Zoho Mail on your domain.
5282
+ * for setting up Zoho Mail on your domain.
5273
5283
  *
5274
5284
  * @param {string} domainId
5275
5285
  * @throws {AppwriteException}
@@ -5289,7 +5299,7 @@ Once deleted, the domain will no longer be available for use and all associated
5289
5299
  }
5290
5300
  /**
5291
5301
  * List DNS records for a given domain. You can use this endpoint to list all the DNS records
5292
- associated with your domain.
5302
+ * associated with your domain.
5293
5303
  *
5294
5304
  * @param {string} domainId
5295
5305
  * @param {string[]} queries
@@ -5311,7 +5321,7 @@ Once deleted, the domain will no longer be available for use and all associated
5311
5321
  }
5312
5322
  /**
5313
5323
  * Create a new A record for the given domain. A records are used to point a domain name
5314
- to an IPv4 address. The record value should be a valid IPv4 address.
5324
+ * to an IPv4 address. The record value should be a valid IPv4 address.
5315
5325
  *
5316
5326
  * @param {string} domainId
5317
5327
  * @param {string} name
@@ -5356,8 +5366,8 @@ to an IPv4 address. The record value should be a valid IPv4 address.
5356
5366
  }
5357
5367
  /**
5358
5368
  * Update an existing A record for the given domain. This endpoint allows you to modify
5359
- the properties of an A record including its name (subdomain), IPv4 address, TTL,
5360
- and optional comment.
5369
+ * the properties of an A record including its name (subdomain), IPv4 address, TTL,
5370
+ * and optional comment.
5361
5371
  *
5362
5372
  * @param {string} domainId
5363
5373
  * @param {string} recordId
@@ -5406,7 +5416,7 @@ to an IPv4 address. The record value should be a valid IPv4 address.
5406
5416
  }
5407
5417
  /**
5408
5418
  * Create a new AAAA record for the given domain. This endpoint allows you to add a new IPv6 DNS record
5409
- to your domain. The record will be used to point a hostname to an IPv6 address.
5419
+ * to your domain. The record will be used to point a hostname to an IPv6 address.
5410
5420
  *
5411
5421
  * @param {string} domainId
5412
5422
  * @param {string} name
@@ -5451,8 +5461,8 @@ to an IPv4 address. The record value should be a valid IPv4 address.
5451
5461
  }
5452
5462
  /**
5453
5463
  * Update an existing AAAA record for the given domain. This endpoint allows you to modify
5454
- the properties of an existing AAAA record, including its name (subdomain), IPv6 address,
5455
- TTL, and optional comment.
5464
+ * the properties of an existing AAAA record, including its name (subdomain), IPv6 address,
5465
+ * TTL, and optional comment.
5456
5466
  *
5457
5467
  * @param {string} domainId
5458
5468
  * @param {string} recordId
@@ -5501,8 +5511,8 @@ to an IPv4 address. The record value should be a valid IPv4 address.
5501
5511
  }
5502
5512
  /**
5503
5513
  * Create a new ALIAS record for the given domain. This record type can be used to point your domain
5504
- to another domain name that will serve as an alias. This is particularly useful when you want to
5505
- map your domain to a target domain that may change its IP address.
5514
+ * to another domain name that will serve as an alias. This is particularly useful when you want to
5515
+ * map your domain to a target domain that may change its IP address.
5506
5516
  *
5507
5517
  * @param {string} domainId
5508
5518
  * @param {string} name
@@ -5547,10 +5557,10 @@ to an IPv4 address. The record value should be a valid IPv4 address.
5547
5557
  }
5548
5558
  /**
5549
5559
  * Update an existing ALIAS record for the specified domain. This endpoint allows you to modify
5550
- the properties of an existing ALIAS record including its name, target domain, TTL, and comment.
5551
-
5552
- The ALIAS record type is similar to a CNAME record but can be used at the zone apex (root domain).
5553
- It provides a way to map one domain name to another.
5560
+ * the properties of an existing ALIAS record including its name, target domain, TTL, and comment.
5561
+ *
5562
+ * The ALIAS record type is similar to a CNAME record but can be used at the zone apex (root domain).
5563
+ * It provides a way to map one domain name to another.
5554
5564
  *
5555
5565
  * @param {string} domainId
5556
5566
  * @param {string} recordId
@@ -5599,7 +5609,7 @@ to an IPv4 address. The record value should be a valid IPv4 address.
5599
5609
  }
5600
5610
  /**
5601
5611
  * Create a new CAA record for the given domain. CAA records are used to specify which
5602
- Certificate Authorities (CAs) are allowed to issue SSL/TLS certificates for your domain.
5612
+ * Certificate Authorities (CAs) are allowed to issue SSL/TLS certificates for your domain.
5603
5613
  *
5604
5614
  * @param {string} domainId
5605
5615
  * @param {string} name
@@ -5644,8 +5654,8 @@ Certificate Authorities (CAs) are allowed to issue SSL/TLS certificates for your
5644
5654
  }
5645
5655
  /**
5646
5656
  * Update an existing CAA record for the given domain. A CAA (Certification Authority Authorization)
5647
- record is used to specify which certificate authorities (CAs) are authorized to issue certificates
5648
- for a domain.
5657
+ * record is used to specify which certificate authorities (CAs) are authorized to issue certificates
5658
+ * for a domain.
5649
5659
  *
5650
5660
  * @param {string} domainId
5651
5661
  * @param {string} recordId
@@ -5694,10 +5704,10 @@ Certificate Authorities (CAs) are allowed to issue SSL/TLS certificates for your
5694
5704
  }
5695
5705
  /**
5696
5706
  * Create a new CNAME record for the given domain.
5697
-
5698
- A CNAME record maps a subdomain to another domain name, allowing you to create aliases
5699
- for your domain. For example, you can create a CNAME record to point &#039;blog.example.com&#039;
5700
- to &#039;example.wordpress.com&#039;.
5707
+ *
5708
+ * A CNAME record maps a subdomain to another domain name, allowing you to create aliases
5709
+ * for your domain. For example, you can create a CNAME record to point &#039;blog.example.com&#039;
5710
+ * to &#039;example.wordpress.com&#039;.
5701
5711
  *
5702
5712
  * @param {string} domainId
5703
5713
  * @param {string} name
@@ -5790,7 +5800,7 @@ Certificate Authorities (CAs) are allowed to issue SSL/TLS certificates for your
5790
5800
  }
5791
5801
  /**
5792
5802
  * Create a new HTTPS record for the given domain. This record is used to configure HTTPS
5793
- settings for your domain, enabling secure communication over SSL/TLS.
5803
+ * settings for your domain, enabling secure communication over SSL/TLS.
5794
5804
  *
5795
5805
  * @param {string} domainId
5796
5806
  * @param {string} name
@@ -5835,8 +5845,8 @@ Certificate Authorities (CAs) are allowed to issue SSL/TLS certificates for your
5835
5845
  }
5836
5846
  /**
5837
5847
  * Update an existing HTTPS record for the given domain. This endpoint allows you to modify
5838
- the properties of an HTTPS record associated with your domain, including the name (subdomain),
5839
- target value, TTL, and optional comment.
5848
+ * the properties of an HTTPS record associated with your domain, including the name (subdomain),
5849
+ * target value, TTL, and optional comment.
5840
5850
  *
5841
5851
  * @param {string} domainId
5842
5852
  * @param {string} recordId
@@ -5885,9 +5895,9 @@ target value, TTL, and optional comment.
5885
5895
  }
5886
5896
  /**
5887
5897
  * Create a new MX record for the given domain. MX records are used to define the mail servers responsible
5888
- for accepting email messages for the domain. Multiple MX records can be created with different priorities.
5889
- The priority parameter determines the order in which mail servers are used, with lower values indicating
5890
- higher priority.
5898
+ * for accepting email messages for the domain. Multiple MX records can be created with different priorities.
5899
+ * The priority parameter determines the order in which mail servers are used, with lower values indicating
5900
+ * higher priority.
5891
5901
  *
5892
5902
  * @param {string} domainId
5893
5903
  * @param {string} name
@@ -5994,7 +6004,7 @@ target value, TTL, and optional comment.
5994
6004
  }
5995
6005
  /**
5996
6006
  * Create a new NS record for the given domain. NS records specify the nameservers that are used
5997
- to resolve the domain name to IP addresses. Each domain can have multiple NS records.
6007
+ * to resolve the domain name to IP addresses. Each domain can have multiple NS records.
5998
6008
  *
5999
6009
  * @param {string} domainId
6000
6010
  * @param {string} name
@@ -6039,9 +6049,9 @@ target value, TTL, and optional comment.
6039
6049
  }
6040
6050
  /**
6041
6051
  * Update an existing NS record for the given domain. This endpoint allows you to modify
6042
- the properties of an NS (nameserver) record associated with your domain. You can update
6043
- the record name (subdomain), target nameserver value, TTL, and add or modify comments
6044
- for better record management.
6052
+ * the properties of an NS (nameserver) record associated with your domain. You can update
6053
+ * the record name (subdomain), target nameserver value, TTL, and add or modify comments
6054
+ * for better record management.
6045
6055
  *
6046
6056
  * @param {string} domainId
6047
6057
  * @param {string} recordId
@@ -6090,8 +6100,8 @@ target value, TTL, and optional comment.
6090
6100
  }
6091
6101
  /**
6092
6102
  * Create a new SRV record for the given domain. SRV records are used to define the location
6093
- of servers for specific services. For example, they can be used to specify which server
6094
- handles a specific service like SIP or XMPP for the domain.
6103
+ * of servers for specific services. For example, they can be used to specify which server
6104
+ * handles a specific service like SIP or XMPP for the domain.
6095
6105
  *
6096
6106
  * @param {string} domainId
6097
6107
  * @param {string} name
@@ -6157,19 +6167,19 @@ target value, TTL, and optional comment.
6157
6167
  }
6158
6168
  /**
6159
6169
  * Update an existing SRV record for the given domain.
6160
-
6161
- Required parameters:
6162
- - domainId: Domain unique ID
6163
- - recordId: DNS record unique ID
6164
- - name: Record name (service name)
6165
- - value: Target hostname for this SRV record
6166
- - ttl: Time to live, in seconds
6167
- - priority: Record priority
6168
- - weight: Record weight
6169
- - port: Port number for the service
6170
-
6171
- Optional parameters:
6172
- - comment: A comment for this record
6170
+ *
6171
+ * Required parameters:
6172
+ * - domainId: Domain unique ID
6173
+ * - recordId: DNS record unique ID
6174
+ * - name: Record name (service name)
6175
+ * - value: Target hostname for this SRV record
6176
+ * - ttl: Time to live, in seconds
6177
+ * - priority: Record priority
6178
+ * - weight: Record weight
6179
+ * - port: Port number for the service
6180
+ *
6181
+ * Optional parameters:
6182
+ * - comment: A comment for this record
6173
6183
  *
6174
6184
  * @param {string} domainId
6175
6185
  * @param {string} recordId
@@ -6239,8 +6249,8 @@ target value, TTL, and optional comment.
6239
6249
  }
6240
6250
  /**
6241
6251
  * Create a new TXT record for the given domain. TXT records can be used
6242
- to provide additional information about your domain, such as domain
6243
- verification records, SPF records, or DKIM records.
6252
+ * to provide additional information about your domain, such as domain
6253
+ * verification records, SPF records, or DKIM records.
6244
6254
  *
6245
6255
  * @param {string} domainId
6246
6256
  * @param {string} name
@@ -6282,9 +6292,9 @@ target value, TTL, and optional comment.
6282
6292
  }
6283
6293
  /**
6284
6294
  * Update an existing TXT record for the given domain.
6285
-
6286
- Update the TXT record details for a specific domain by providing the domain ID,
6287
- record ID, and the new record configuration including name, value, TTL, and an optional comment.
6295
+ *
6296
+ * Update the TXT record details for a specific domain by providing the domain ID,
6297
+ * record ID, and the new record configuration including name, value, TTL, and an optional comment.
6288
6298
  *
6289
6299
  * @param {string} domainId
6290
6300
  * @param {string} recordId
@@ -6333,10 +6343,10 @@ target value, TTL, and optional comment.
6333
6343
  }
6334
6344
  /**
6335
6345
  * Get a single DNS record for a given domain by record ID.
6336
-
6337
- This endpoint allows you to retrieve a specific DNS record associated with a domain
6338
- using its unique identifier. The record contains information about the DNS configuration
6339
- such as type, value, and TTL settings.
6346
+ *
6347
+ * This endpoint allows you to retrieve a specific DNS record associated with a domain
6348
+ * using its unique identifier. The record contains information about the DNS configuration
6349
+ * such as type, value, and TTL settings.
6340
6350
  *
6341
6351
  * @param {string} domainId
6342
6352
  * @param {string} recordId
@@ -6358,7 +6368,7 @@ target value, TTL, and optional comment.
6358
6368
  }
6359
6369
  /**
6360
6370
  * Delete a DNS record for the given domain. This endpoint allows you to delete an existing DNS record
6361
- from a specific domain.
6371
+ * from a specific domain.
6362
6372
  *
6363
6373
  * @param {string} domainId
6364
6374
  * @param {string} recordId
@@ -6382,9 +6392,9 @@ target value, TTL, and optional comment.
6382
6392
  }
6383
6393
  /**
6384
6394
  * Update the team ID for a specific domain. This endpoint requires admin access.
6385
-
6386
- Updating the team ID will transfer ownership and access control of the domain
6387
- and all its DNS records to the new team.
6395
+ *
6396
+ * Updating the team ID will transfer ownership and access control of the domain
6397
+ * and all its DNS records to the new team.
6388
6398
  *
6389
6399
  * @param {string} domainId
6390
6400
  * @param {string} teamId
@@ -6411,7 +6421,7 @@ target value, TTL, and optional comment.
6411
6421
  }
6412
6422
  /**
6413
6423
  * Retrieve the DNS zone file for the given domain. This endpoint will return the DNS
6414
- zone file in a standardized format that can be used to configure DNS servers.
6424
+ * zone file in a standardized format that can be used to configure DNS servers.
6415
6425
  *
6416
6426
  * @param {string} domainId
6417
6427
  * @throws {AppwriteException}
@@ -6429,7 +6439,7 @@ target value, TTL, and optional comment.
6429
6439
  }
6430
6440
  /**
6431
6441
  * Update the DNS zone for the given domain using the provided zone file content.
6432
- All parsed records are imported and then the main domain document is returned.
6442
+ * All parsed records are imported and then the main domain document is returned.
6433
6443
  *
6434
6444
  * @param {string} domainId
6435
6445
  * @param {string} content
@@ -6845,10 +6855,10 @@ class Functions {
6845
6855
  }
6846
6856
  /**
6847
6857
  * Create a new function code deployment. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you&#039;ll need to update the function&#039;s deployment to use your new deployment UID.
6848
-
6849
- This endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](https://appwrite.io/docs/functions).
6850
-
6851
- Use the &quot;command&quot; param to set the entrypoint used to execute your code.
6858
+ *
6859
+ * This endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](https://appwrite.io/docs/functions).
6860
+ *
6861
+ * Use the &quot;command&quot; param to set the entrypoint used to execute your code.
6852
6862
  *
6853
6863
  * @param {string} functionId
6854
6864
  * @param {File} code
@@ -6920,8 +6930,8 @@ Use the &quot;command&quot; param to set the entrypoint used to execute your cod
6920
6930
  }
6921
6931
  /**
6922
6932
  * Create a deployment based on a template.
6923
-
6924
- Use this endpoint with combination of [listTemplates](https://appwrite.io/docs/server/functions#listTemplates) to find the template details.
6933
+ *
6934
+ * Use this endpoint with combination of [listTemplates](https://appwrite.io/docs/server/functions#listTemplates) to find the template details.
6925
6935
  *
6926
6936
  * @param {string} functionId
6927
6937
  * @param {string} repository
@@ -6973,8 +6983,8 @@ Use this endpoint with combination of [listTemplates](https://appwrite.io/docs/s
6973
6983
  }
6974
6984
  /**
6975
6985
  * Create a deployment when a function is connected to VCS.
6976
-
6977
- This endpoint lets you create deployment from a branch, commit, or a tag.
6986
+ *
6987
+ * This endpoint lets you create deployment from a branch, commit, or a tag.
6978
6988
  *
6979
6989
  * @param {string} functionId
6980
6990
  * @param {VCSDeploymentType} type
@@ -7635,7 +7645,7 @@ class Health {
7635
7645
  }
7636
7646
  /**
7637
7647
  * Returns the amount of failed jobs in a given queue.
7638
-
7648
+ *
7639
7649
  *
7640
7650
  * @param {Name} name
7641
7651
  * @param {number} threshold
@@ -7855,8 +7865,8 @@ class Locale {
7855
7865
  }
7856
7866
  /**
7857
7867
  * Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.
7858
-
7859
- ([IP Geolocation by DB-IP](https://db-ip.com))
7868
+ *
7869
+ * ([IP Geolocation by DB-IP](https://db-ip.com))
7860
7870
  *
7861
7871
  * @throws {AppwriteException}
7862
7872
  * @returns {Promise<Models.Locale>}
@@ -8060,7 +8070,7 @@ class Messaging {
8060
8070
  }
8061
8071
  /**
8062
8072
  * Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.
8063
-
8073
+ *
8064
8074
  *
8065
8075
  * @param {string} messageId
8066
8076
  * @param {string[]} topics
@@ -8218,7 +8228,7 @@ class Messaging {
8218
8228
  }
8219
8229
  /**
8220
8230
  * Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.
8221
-
8231
+ *
8222
8232
  *
8223
8233
  * @param {string} messageId
8224
8234
  * @param {string[]} topics
@@ -8359,7 +8369,7 @@ class Messaging {
8359
8369
  }
8360
8370
  /**
8361
8371
  * Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.
8362
-
8372
+ *
8363
8373
  *
8364
8374
  * @param {string} messageId
8365
8375
  * @param {string[]} topics
@@ -8403,7 +8413,7 @@ class Messaging {
8403
8413
  }
8404
8414
  /**
8405
8415
  * Get a message by its unique ID.
8406
-
8416
+ *
8407
8417
  *
8408
8418
  * @param {string} messageId
8409
8419
  * @throws {AppwriteException}
@@ -9458,7 +9468,7 @@ class Messaging {
9458
9468
  }
9459
9469
  /**
9460
9470
  * Get a provider by its unique ID.
9461
-
9471
+ *
9462
9472
  *
9463
9473
  * @param {string} providerId
9464
9474
  * @throws {AppwriteException}
@@ -9591,7 +9601,7 @@ class Messaging {
9591
9601
  }
9592
9602
  /**
9593
9603
  * Get a topic by its unique ID.
9594
-
9604
+ *
9595
9605
  *
9596
9606
  * @param {string} topicId
9597
9607
  * @throws {AppwriteException}
@@ -9609,7 +9619,7 @@ class Messaging {
9609
9619
  }
9610
9620
  /**
9611
9621
  * Update a topic by its unique ID.
9612
-
9622
+ *
9613
9623
  *
9614
9624
  * @param {string} topicId
9615
9625
  * @param {string} name
@@ -9735,7 +9745,7 @@ class Messaging {
9735
9745
  }
9736
9746
  /**
9737
9747
  * Get a subscriber by its unique ID.
9738
-
9748
+ *
9739
9749
  *
9740
9750
  * @param {string} topicId
9741
9751
  * @param {string} subscriberId
@@ -10319,7 +10329,7 @@ class Organizations {
10319
10329
  }
10320
10330
  /**
10321
10331
  * Create a new organization.
10322
-
10332
+ *
10323
10333
  *
10324
10334
  * @param {string} organizationId
10325
10335
  * @param {string} name
@@ -10597,7 +10607,7 @@ class Organizations {
10597
10607
  }
10598
10608
  /**
10599
10609
  * List all credits for an organization.
10600
-
10610
+ *
10601
10611
  *
10602
10612
  * @param {string} organizationId
10603
10613
  * @param {string[]} queries
@@ -10643,6 +10653,23 @@ class Organizations {
10643
10653
  };
10644
10654
  return this.client.call('post', uri, apiHeaders, payload);
10645
10655
  }
10656
+ /**
10657
+ * Get total available valid credits for an organization.
10658
+ *
10659
+ * @param {string} organizationId
10660
+ * @throws {AppwriteException}
10661
+ * @returns {Promise<Models.CreditAvailable>}
10662
+ */
10663
+ getAvailableCredits(organizationId) {
10664
+ if (typeof organizationId === 'undefined') {
10665
+ throw new AppwriteException('Missing required parameter: "organizationId"');
10666
+ }
10667
+ const apiPath = '/organizations/{organizationId}/credits/available'.replace('{organizationId}', organizationId);
10668
+ const payload = {};
10669
+ const uri = new URL(this.client.config.endpoint + apiPath);
10670
+ const apiHeaders = {};
10671
+ return this.client.call('get', uri, apiHeaders, payload);
10672
+ }
10646
10673
  /**
10647
10674
  * Get credit details.
10648
10675
  *
@@ -10901,7 +10928,7 @@ class Organizations {
10901
10928
  }
10902
10929
  /**
10903
10930
  * Set an organization&#039;s backup payment method.
10904
-
10931
+ *
10905
10932
  *
10906
10933
  * @param {string} organizationId
10907
10934
  * @param {string} paymentMethodId
@@ -11052,6 +11079,29 @@ class Organizations {
11052
11079
  };
11053
11080
  return this.client.call('patch', uri, apiHeaders, payload);
11054
11081
  }
11082
+ /**
11083
+ * Update selected projects to keep in the organization.
11084
+ *
11085
+ * @param {string} organizationId
11086
+ * @param {string[]} projects
11087
+ * @throws {AppwriteException}
11088
+ * @returns {Promise<Models.Organization<Preferences>>}
11089
+ */
11090
+ updateProjects(organizationId, projects) {
11091
+ if (typeof organizationId === 'undefined') {
11092
+ throw new AppwriteException('Missing required parameter: "organizationId"');
11093
+ }
11094
+ const apiPath = '/organizations/{organizationId}/projects'.replace('{organizationId}', organizationId);
11095
+ const payload = {};
11096
+ if (typeof projects !== 'undefined') {
11097
+ payload['projects'] = projects;
11098
+ }
11099
+ const uri = new URL(this.client.config.endpoint + apiPath);
11100
+ const apiHeaders = {
11101
+ 'content-type': 'application/json',
11102
+ };
11103
+ return this.client.call('patch', uri, apiHeaders, payload);
11104
+ }
11055
11105
  /**
11056
11106
  * Get Scopes
11057
11107
  *
@@ -13619,8 +13669,8 @@ class Sites {
13619
13669
  }
13620
13670
  /**
13621
13671
  * Create a deployment based on a template.
13622
-
13623
- Use this endpoint with combination of [listTemplates](https://appwrite.io/docs/server/sites#listTemplates) to find the template details.
13672
+ *
13673
+ * Use this endpoint with combination of [listTemplates](https://appwrite.io/docs/server/sites#listTemplates) to find the template details.
13624
13674
  *
13625
13675
  * @param {string} siteId
13626
13676
  * @param {string} repository
@@ -13672,8 +13722,8 @@ Use this endpoint with combination of [listTemplates](https://appwrite.io/docs/s
13672
13722
  }
13673
13723
  /**
13674
13724
  * Create a deployment when a site is connected to VCS.
13675
-
13676
- This endpoint lets you create deployment from a branch, commit, or a tag.
13725
+ *
13726
+ * This endpoint lets you create deployment from a branch, commit, or a tag.
13677
13727
  *
13678
13728
  * @param {string} siteId
13679
13729
  * @param {VCSDeploymentType} type
@@ -14235,13 +14285,13 @@ class Storage {
14235
14285
  }
14236
14286
  /**
14237
14287
  * Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https://appwrite.io/docs/server/storage#storageCreateBucket) API or directly from your Appwrite console.
14238
-
14239
- Larger files should be uploaded using multiple requests with the [content-range](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.
14240
-
14241
- When the first request is sent, the server will return the **File** object, and the subsequent part request must include the file&#039;s **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.
14242
-
14243
- If you&#039;re creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.
14244
-
14288
+ *
14289
+ * Larger files should be uploaded using multiple requests with the [content-range](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.
14290
+ *
14291
+ * When the first request is sent, the server will return the **File** object, and the subsequent part request must include the file&#039;s **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.
14292
+ *
14293
+ * If you&#039;re creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.
14294
+ *
14245
14295
  *
14246
14296
  * @param {string} bucketId
14247
14297
  * @param {string} fileId
@@ -14482,7 +14532,7 @@ If you&#039;re creating a new file using one of the Appwrite SDKs, all the chunk
14482
14532
  }
14483
14533
  /**
14484
14534
  * Get usage metrics and statistics for all buckets in the project. You can view the total number of buckets, files, storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.
14485
-
14535
+ *
14486
14536
  *
14487
14537
  * @param {StorageUsageRange} range
14488
14538
  * @throws {AppwriteException}
@@ -14500,7 +14550,7 @@ If you&#039;re creating a new file using one of the Appwrite SDKs, all the chunk
14500
14550
  }
14501
14551
  /**
14502
14552
  * Get usage metrics and statistics a specific bucket in the project. You can view the total number of files, storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.
14503
-
14553
+ *
14504
14554
  *
14505
14555
  * @param {string} bucketId
14506
14556
  * @param {StorageUsageRange} range
@@ -14690,13 +14740,13 @@ class Teams {
14690
14740
  }
14691
14741
  /**
14692
14742
  * Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn&#039;t exist. If initiated from a Server SDK, the new member will be added automatically to the team.
14693
-
14694
- You only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID &gt; email &gt; phone number if you provide more than one of these parameters.
14695
-
14696
- Use the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https://appwrite.io/docs/references/cloud/client-web/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team.
14697
-
14698
- Please note that to avoid a [Redirect Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.
14699
-
14743
+ *
14744
+ * You only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID &gt; email &gt; phone number if you provide more than one of these parameters.
14745
+ *
14746
+ * Use the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https://appwrite.io/docs/references/cloud/client-web/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team.
14747
+ *
14748
+ * Please note that to avoid a [Redirect Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.
14749
+ *
14700
14750
  *
14701
14751
  * @param {string} teamId
14702
14752
  * @param {string[]} roles
@@ -14764,7 +14814,7 @@ Please note that to avoid a [Redirect Attack](https://github.com/OWASP/CheatShee
14764
14814
  }
14765
14815
  /**
14766
14816
  * Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https://appwrite.io/docs/permissions).
14767
-
14817
+ *
14768
14818
  *
14769
14819
  * @param {string} teamId
14770
14820
  * @param {string} membershipId
@@ -14818,9 +14868,9 @@ Please note that to avoid a [Redirect Attack](https://github.com/OWASP/CheatShee
14818
14868
  }
14819
14869
  /**
14820
14870
  * Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.
14821
-
14822
- If the request is successful, a session for the user is automatically created.
14823
-
14871
+ *
14872
+ * If the request is successful, a session for the user is automatically created.
14873
+ *
14824
14874
  *
14825
14875
  * @param {string} teamId
14826
14876
  * @param {string} membershipId
@@ -15463,7 +15513,7 @@ class Users {
15463
15513
  }
15464
15514
  /**
15465
15515
  * Get usage metrics and statistics for all users in the project. You can view the total number of users and sessions. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.
15466
-
15516
+ *
15467
15517
  *
15468
15518
  * @param {UserUsageRange} range
15469
15519
  * @throws {AppwriteException}
@@ -15570,8 +15620,8 @@ class Users {
15570
15620
  }
15571
15621
  /**
15572
15622
  * Update the user labels by its unique ID.
15573
-
15574
- Labels can be used to grant access to resources. While teams are a way for user&#039;s to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https://appwrite.io/docs/permissions) for more info.
15623
+ *
15624
+ * Labels can be used to grant access to resources. While teams are a way for user&#039;s to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https://appwrite.io/docs/permissions) for more info.
15575
15625
  *
15576
15626
  * @param {string} userId
15577
15627
  * @param {string[]} labels
@@ -15903,8 +15953,8 @@ Labels can be used to grant access to resources. While teams are a way for user&
15903
15953
  }
15904
15954
  /**
15905
15955
  * Creates a session for a user. Returns an immediately usable session object.
15906
-
15907
- If you want to generate a token for a custom authentication flow, use the [POST /users/{userId}/tokens](https://appwrite.io/docs/server/users#createToken) endpoint.
15956
+ *
15957
+ * If you want to generate a token for a custom authentication flow, use the [POST /users/{userId}/tokens](https://appwrite.io/docs/server/users#createToken) endpoint.
15908
15958
  *
15909
15959
  * @param {string} userId
15910
15960
  * @throws {AppwriteException}
@@ -16140,7 +16190,7 @@ If you want to generate a token for a custom authentication flow, use the [POST
16140
16190
  }
16141
16191
  /**
16142
16192
  * Returns a token with a secret key for creating a session. Use the user ID and secret and submit a request to the [PUT /account/sessions/token](https://appwrite.io/docs/references/cloud/client-web/account#createSession) endpoint to complete the login process.
16143
-
16193
+ *
16144
16194
  *
16145
16195
  * @param {string} userId
16146
16196
  * @param {number} length
@@ -16345,7 +16395,7 @@ class Vcs {
16345
16395
  }
16346
16396
  /**
16347
16397
  * Get a list of all branches from a GitHub repository in your installation. This endpoint returns the names of all branches in the repository and their total count. The GitHub installation must be properly configured and have access to the requested repository for this endpoint to work.
16348
-
16398
+ *
16349
16399
  *
16350
16400
  * @param {string} installationId
16351
16401
  * @param {string} providerRepositoryId
@@ -16367,15 +16417,15 @@ class Vcs {
16367
16417
  }
16368
16418
  /**
16369
16419
  * Get a list of files and directories from a GitHub repository connected to your project. This endpoint returns the contents of a specified repository path, including file names, sizes, and whether each item is a file or directory. The GitHub installation must be properly configured and the repository must be accessible through your installation for this endpoint to work.
16370
-
16371
16420
  *
16372
16421
  * @param {string} installationId
16373
16422
  * @param {string} providerRepositoryId
16374
16423
  * @param {string} providerRootDirectory
16424
+ * @param {string} providerReference
16375
16425
  * @throws {AppwriteException}
16376
16426
  * @returns {Promise<Models.VcsContentList>}
16377
16427
  */
16378
- getRepositoryContents(installationId, providerRepositoryId, providerRootDirectory) {
16428
+ getRepositoryContents(installationId, providerRepositoryId, providerRootDirectory, providerReference) {
16379
16429
  if (typeof installationId === 'undefined') {
16380
16430
  throw new AppwriteException('Missing required parameter: "installationId"');
16381
16431
  }
@@ -16387,6 +16437,9 @@ class Vcs {
16387
16437
  if (typeof providerRootDirectory !== 'undefined') {
16388
16438
  payload['providerRootDirectory'] = providerRootDirectory;
16389
16439
  }
16440
+ if (typeof providerReference !== 'undefined') {
16441
+ payload['providerReference'] = providerReference;
16442
+ }
16390
16443
  const uri = new URL(this.client.config.endpoint + apiPath);
16391
16444
  const apiHeaders = {};
16392
16445
  return this.client.call('get', uri, apiHeaders, payload);
@@ -16423,7 +16476,7 @@ class Vcs {
16423
16476
  }
16424
16477
  /**
16425
16478
  * List all VCS installations configured for the current project. This endpoint returns a list of installations including their provider, organization, and other configuration details.
16426
-
16479
+ *
16427
16480
  *
16428
16481
  * @param {string[]} queries
16429
16482
  * @param {string} search