appwrite 20.0.0__tar.gz → 20.1.0__tar.gz

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 (348) hide show
  1. {appwrite-20.0.0 → appwrite-20.1.0}/PKG-INFO +2 -2
  2. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/client.py +17 -3
  3. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/project_key_scopes.py +2 -0
  4. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/project_policy_id.py +1 -0
  5. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/__init__.py +2 -0
  6. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/policy_list.py +3 -2
  7. appwrite-20.1.0/appwrite/models/policy_password_strength.py +30 -0
  8. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/project.py +34 -7
  9. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/account.py +47 -1
  10. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/activities.py +3 -0
  11. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/advisor.py +6 -0
  12. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/avatars.py +9 -0
  13. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/backups.py +13 -0
  14. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/databases.py +72 -0
  15. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/functions.py +27 -0
  16. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/graphql.py +3 -0
  17. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/health.py +53 -0
  18. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/locale.py +9 -0
  19. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/messaging.py +217 -0
  20. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/organization.py +11 -0
  21. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/presences.py +6 -0
  22. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/project.py +275 -44
  23. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/proxy.py +9 -0
  24. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/sites.py +26 -0
  25. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/storage.py +14 -0
  26. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/tables_db.py +72 -0
  27. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/teams.py +14 -0
  28. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/tokens.py +6 -0
  29. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/usage.py +3 -0
  30. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/users.py +44 -0
  31. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/webhooks.py +7 -0
  32. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite.egg-info/PKG-INFO +2 -2
  33. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite.egg-info/SOURCES.txt +1 -0
  34. {appwrite-20.0.0 → appwrite-20.1.0}/pyproject.toml +1 -1
  35. {appwrite-20.0.0 → appwrite-20.1.0}/setup.py +2 -2
  36. {appwrite-20.0.0 → appwrite-20.1.0}/LICENSE +0 -0
  37. {appwrite-20.0.0 → appwrite-20.1.0}/README.md +0 -0
  38. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/__init__.py +0 -0
  39. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/encoders/__init__.py +0 -0
  40. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/encoders/value_class_encoder.py +0 -0
  41. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/__init__.py +0 -0
  42. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/adapter.py +0 -0
  43. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/attribute_status.py +0 -0
  44. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/authentication_factor.py +0 -0
  45. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/authenticator_type.py +0 -0
  46. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/backup_services.py +0 -0
  47. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/browser.py +0 -0
  48. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/browser_permission.py +0 -0
  49. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/browser_theme.py +0 -0
  50. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/build_runtime.py +0 -0
  51. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/column_status.py +0 -0
  52. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/compression.py +0 -0
  53. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/credit_card.py +0 -0
  54. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/database_type.py +0 -0
  55. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/databases_index_type.py +0 -0
  56. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/deployment_download_type.py +0 -0
  57. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/deployment_status.py +0 -0
  58. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/execution_method.py +0 -0
  59. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/execution_status.py +0 -0
  60. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/execution_trigger.py +0 -0
  61. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/flag.py +0 -0
  62. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/framework.py +0 -0
  63. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/health_antivirus_status.py +0 -0
  64. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/health_check_status.py +0 -0
  65. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/health_queue_name.py +0 -0
  66. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/image_format.py +0 -0
  67. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/image_gravity.py +0 -0
  68. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/index_status.py +0 -0
  69. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/message_priority.py +0 -0
  70. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/message_status.py +0 -0
  71. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/messaging_provider_type.py +0 -0
  72. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/o_auth2_google_prompt.py +0 -0
  73. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/o_auth_provider.py +0 -0
  74. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/order_by.py +0 -0
  75. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/organization_key_scopes.py +0 -0
  76. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/password_hash.py +0 -0
  77. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/platform_type.py +0 -0
  78. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/project_auth_method_id.py +0 -0
  79. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/project_email_template_id.py +0 -0
  80. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/project_email_template_locale.py +0 -0
  81. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/project_o_auth2_google_prompt.py +0 -0
  82. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/project_o_auth_provider_id.py +0 -0
  83. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/project_protocol_id.py +0 -0
  84. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/project_service_id.py +0 -0
  85. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/project_smtp_secure.py +0 -0
  86. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/proxy_resource_type.py +0 -0
  87. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/proxy_rule_deployment_resource_type.py +0 -0
  88. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/proxy_rule_status.py +0 -0
  89. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/region.py +0 -0
  90. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/relation_mutate.py +0 -0
  91. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/relationship_type.py +0 -0
  92. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/runtime.py +0 -0
  93. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/smtp_encryption.py +0 -0
  94. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/status_code.py +0 -0
  95. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/tables_db_index_type.py +0 -0
  96. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/template_reference_type.py +0 -0
  97. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/timezone.py +0 -0
  98. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/enums/vcs_reference_type.py +0 -0
  99. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/exception.py +0 -0
  100. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/id.py +0 -0
  101. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/input_file.py +0 -0
  102. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/activity_event.py +0 -0
  103. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/activity_event_list.py +0 -0
  104. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/algo_argon2.py +0 -0
  105. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/algo_bcrypt.py +0 -0
  106. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/algo_md5.py +0 -0
  107. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/algo_phpass.py +0 -0
  108. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/algo_scrypt.py +0 -0
  109. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/algo_scrypt_modified.py +0 -0
  110. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/algo_sha.py +0 -0
  111. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_bigint.py +0 -0
  112. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_boolean.py +0 -0
  113. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_datetime.py +0 -0
  114. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_email.py +0 -0
  115. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_enum.py +0 -0
  116. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_float.py +0 -0
  117. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_integer.py +0 -0
  118. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_ip.py +0 -0
  119. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_line.py +0 -0
  120. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_list.py +0 -0
  121. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_longtext.py +0 -0
  122. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_mediumtext.py +0 -0
  123. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_point.py +0 -0
  124. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_polygon.py +0 -0
  125. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_relationship.py +0 -0
  126. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_string.py +0 -0
  127. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_text.py +0 -0
  128. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_url.py +0 -0
  129. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/attribute_varchar.py +0 -0
  130. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/backup_archive.py +0 -0
  131. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/backup_archive_list.py +0 -0
  132. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/backup_policy.py +0 -0
  133. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/backup_policy_list.py +0 -0
  134. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/backup_restoration.py +0 -0
  135. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/backup_restoration_list.py +0 -0
  136. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/base_model.py +0 -0
  137. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/billing_limits.py +0 -0
  138. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/block.py +0 -0
  139. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/bucket.py +0 -0
  140. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/bucket_list.py +0 -0
  141. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/collection.py +0 -0
  142. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/collection_list.py +0 -0
  143. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_bigint.py +0 -0
  144. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_boolean.py +0 -0
  145. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_datetime.py +0 -0
  146. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_email.py +0 -0
  147. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_enum.py +0 -0
  148. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_float.py +0 -0
  149. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_index.py +0 -0
  150. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_index_list.py +0 -0
  151. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_integer.py +0 -0
  152. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_ip.py +0 -0
  153. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_line.py +0 -0
  154. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_list.py +0 -0
  155. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_longtext.py +0 -0
  156. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_mediumtext.py +0 -0
  157. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_point.py +0 -0
  158. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_polygon.py +0 -0
  159. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_relationship.py +0 -0
  160. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_string.py +0 -0
  161. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_text.py +0 -0
  162. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_url.py +0 -0
  163. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/column_varchar.py +0 -0
  164. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/continent.py +0 -0
  165. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/continent_list.py +0 -0
  166. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/country.py +0 -0
  167. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/country_list.py +0 -0
  168. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/currency.py +0 -0
  169. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/currency_list.py +0 -0
  170. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/database.py +0 -0
  171. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/database_list.py +0 -0
  172. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/deployment.py +0 -0
  173. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/deployment_list.py +0 -0
  174. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/dev_key.py +0 -0
  175. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/document.py +0 -0
  176. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/document_list.py +0 -0
  177. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/email_template.py +0 -0
  178. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/email_template_list.py +0 -0
  179. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/ephemeral_key.py +0 -0
  180. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/execution.py +0 -0
  181. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/execution_list.py +0 -0
  182. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/file.py +0 -0
  183. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/file_list.py +0 -0
  184. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/framework.py +0 -0
  185. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/framework_adapter.py +0 -0
  186. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/framework_list.py +0 -0
  187. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/function.py +0 -0
  188. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/function_list.py +0 -0
  189. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/headers.py +0 -0
  190. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/health_antivirus.py +0 -0
  191. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/health_certificate.py +0 -0
  192. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/health_queue.py +0 -0
  193. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/health_status.py +0 -0
  194. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/health_status_list.py +0 -0
  195. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/health_time.py +0 -0
  196. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/identity.py +0 -0
  197. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/identity_list.py +0 -0
  198. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/index.py +0 -0
  199. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/index_list.py +0 -0
  200. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/insight.py +0 -0
  201. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/insight_cta.py +0 -0
  202. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/insight_list.py +0 -0
  203. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/jwt.py +0 -0
  204. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/key.py +0 -0
  205. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/key_list.py +0 -0
  206. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/language.py +0 -0
  207. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/language_list.py +0 -0
  208. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/locale.py +0 -0
  209. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/locale_code.py +0 -0
  210. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/locale_code_list.py +0 -0
  211. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/log.py +0 -0
  212. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/log_list.py +0 -0
  213. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/membership.py +0 -0
  214. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/membership_list.py +0 -0
  215. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/message.py +0 -0
  216. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/message_list.py +0 -0
  217. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/mfa_challenge.py +0 -0
  218. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/mfa_factors.py +0 -0
  219. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/mfa_recovery_codes.py +0 -0
  220. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/mfa_type.py +0 -0
  221. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/mock_number.py +0 -0
  222. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/mock_number_list.py +0 -0
  223. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_amazon.py +0 -0
  224. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_apple.py +0 -0
  225. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_auth0.py +0 -0
  226. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_authentik.py +0 -0
  227. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_autodesk.py +0 -0
  228. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_bitbucket.py +0 -0
  229. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_bitly.py +0 -0
  230. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_box.py +0 -0
  231. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_dailymotion.py +0 -0
  232. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_discord.py +0 -0
  233. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_disqus.py +0 -0
  234. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_dropbox.py +0 -0
  235. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_etsy.py +0 -0
  236. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_facebook.py +0 -0
  237. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_figma.py +0 -0
  238. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_fusion_auth.py +0 -0
  239. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_github.py +0 -0
  240. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_gitlab.py +0 -0
  241. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_google.py +0 -0
  242. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_keycloak.py +0 -0
  243. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_kick.py +0 -0
  244. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_linkedin.py +0 -0
  245. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_microsoft.py +0 -0
  246. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_notion.py +0 -0
  247. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_oidc.py +0 -0
  248. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_okta.py +0 -0
  249. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_paypal.py +0 -0
  250. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_podio.py +0 -0
  251. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_provider_list.py +0 -0
  252. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_salesforce.py +0 -0
  253. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_slack.py +0 -0
  254. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_spotify.py +0 -0
  255. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_stripe.py +0 -0
  256. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_tradeshift.py +0 -0
  257. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_twitch.py +0 -0
  258. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_word_press.py +0 -0
  259. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_x.py +0 -0
  260. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_yahoo.py +0 -0
  261. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_yandex.py +0 -0
  262. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_zoho.py +0 -0
  263. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/o_auth2_zoom.py +0 -0
  264. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/phone.py +0 -0
  265. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/phone_list.py +0 -0
  266. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/platform_android.py +0 -0
  267. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/platform_apple.py +0 -0
  268. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/platform_linux.py +0 -0
  269. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/platform_list.py +0 -0
  270. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/platform_web.py +0 -0
  271. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/platform_windows.py +0 -0
  272. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/policy_deny_aliased_email.py +0 -0
  273. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/policy_deny_disposable_email.py +0 -0
  274. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/policy_deny_free_email.py +0 -0
  275. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/policy_membership_privacy.py +0 -0
  276. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/policy_password_dictionary.py +0 -0
  277. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/policy_password_history.py +0 -0
  278. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/policy_password_personal_data.py +0 -0
  279. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/policy_session_alert.py +0 -0
  280. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/policy_session_duration.py +0 -0
  281. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/policy_session_invalidation.py +0 -0
  282. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/policy_session_limit.py +0 -0
  283. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/policy_user_limit.py +0 -0
  284. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/preferences.py +0 -0
  285. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/presence.py +0 -0
  286. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/presence_list.py +0 -0
  287. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/project_auth_method.py +0 -0
  288. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/project_list.py +0 -0
  289. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/project_protocol.py +0 -0
  290. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/project_service.py +0 -0
  291. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/provider.py +0 -0
  292. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/provider_list.py +0 -0
  293. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/proxy_rule.py +0 -0
  294. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/proxy_rule_list.py +0 -0
  295. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/report.py +0 -0
  296. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/report_list.py +0 -0
  297. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/resource_token.py +0 -0
  298. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/resource_token_list.py +0 -0
  299. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/row.py +0 -0
  300. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/row_list.py +0 -0
  301. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/runtime.py +0 -0
  302. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/runtime_list.py +0 -0
  303. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/session.py +0 -0
  304. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/session_list.py +0 -0
  305. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/site.py +0 -0
  306. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/site_list.py +0 -0
  307. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/specification.py +0 -0
  308. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/specification_list.py +0 -0
  309. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/subscriber.py +0 -0
  310. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/subscriber_list.py +0 -0
  311. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/table.py +0 -0
  312. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/table_list.py +0 -0
  313. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/target.py +0 -0
  314. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/target_list.py +0 -0
  315. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/team.py +0 -0
  316. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/team_list.py +0 -0
  317. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/token.py +0 -0
  318. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/topic.py +0 -0
  319. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/topic_list.py +0 -0
  320. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/transaction.py +0 -0
  321. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/transaction_list.py +0 -0
  322. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/usage_event.py +0 -0
  323. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/usage_event_list.py +0 -0
  324. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/usage_gauge.py +0 -0
  325. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/usage_gauge_list.py +0 -0
  326. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/user.py +0 -0
  327. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/user_list.py +0 -0
  328. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/variable.py +0 -0
  329. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/variable_list.py +0 -0
  330. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/webhook.py +0 -0
  331. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/models/webhook_list.py +0 -0
  332. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/operator.py +0 -0
  333. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/permission.py +0 -0
  334. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/query.py +0 -0
  335. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/role.py +0 -0
  336. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/service.py +0 -0
  337. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/services/__init__.py +0 -0
  338. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/utils/__init__.py +0 -0
  339. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite/utils/deprecated.py +0 -0
  340. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite.egg-info/dependency_links.txt +0 -0
  341. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite.egg-info/requires.txt +0 -0
  342. {appwrite-20.0.0 → appwrite-20.1.0}/appwrite.egg-info/top_level.txt +0 -0
  343. {appwrite-20.0.0 → appwrite-20.1.0}/setup.cfg +0 -0
  344. {appwrite-20.0.0 → appwrite-20.1.0}/test/test_id.py +0 -0
  345. {appwrite-20.0.0 → appwrite-20.1.0}/test/test_operator.py +0 -0
  346. {appwrite-20.0.0 → appwrite-20.1.0}/test/test_permission.py +0 -0
  347. {appwrite-20.0.0 → appwrite-20.1.0}/test/test_query.py +0 -0
  348. {appwrite-20.0.0 → appwrite-20.1.0}/test/test_role.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: appwrite
3
- Version: 20.0.0
3
+ Version: 20.1.0
4
4
  Summary: Appwrite is an open-source self-hosted backend server that abstracts and simplifies complex and repetitive development tasks behind a very simple REST API
5
5
  Home-page: https://appwrite.io/support
6
- Download-URL: https://github.com/appwrite/sdk-for-python/archive/20.0.0.tar.gz
6
+ Download-URL: https://github.com/appwrite/sdk-for-python/archive/20.1.0.tar.gz
7
7
  Author: Appwrite Team
8
8
  Author-email: Appwrite Team <team@appwrite.io>
9
9
  Maintainer: Appwrite Team
@@ -17,13 +17,14 @@ class Client:
17
17
  self._endpoint = 'https://cloud.appwrite.io/v1'
18
18
  self._global_headers = {
19
19
  'content-type': '',
20
- 'user-agent' : f'AppwritePythonSDK/20.0.0 ({platform.uname().system}; {platform.uname().version}; {platform.uname().machine})',
20
+ 'user-agent' : f'AppwritePythonSDK/20.1.0 ({platform.uname().system}; {platform.uname().version}; {platform.uname().machine})',
21
21
  'x-sdk-name': 'Python',
22
22
  'x-sdk-platform': 'server',
23
23
  'x-sdk-language': 'python',
24
- 'x-sdk-version': '20.0.0',
24
+ 'x-sdk-version': '20.1.0',
25
25
  'X-Appwrite-Response-Format' : '1.9.5',
26
26
  }
27
+ self._config = {}
27
28
 
28
29
  def set_self_signed(self, status=True):
29
30
  self._self_signed = status
@@ -43,68 +44,81 @@ class Client:
43
44
  def get_headers(self):
44
45
  return dict(self._global_headers)
45
46
 
47
+ def get_config(self, key):
48
+ return self._config.get(key, '')
49
+
46
50
  def set_project(self, value):
47
51
  """Your project ID"""
48
52
 
49
- self._global_headers['x-appwrite-project'] = value
53
+ self._config['project'] = value
50
54
  return self
51
55
 
52
56
  def set_key(self, value):
53
57
  """Your secret API key"""
54
58
 
55
59
  self._global_headers['x-appwrite-key'] = value
60
+ self._config['key'] = value
56
61
  return self
57
62
 
58
63
  def set_jwt(self, value):
59
64
  """Your secret JSON Web Token"""
60
65
 
61
66
  self._global_headers['x-appwrite-jwt'] = value
67
+ self._config['jwt'] = value
62
68
  return self
63
69
 
64
70
  def set_locale(self, value):
65
71
  self._global_headers['x-appwrite-locale'] = value
72
+ self._config['locale'] = value
66
73
  return self
67
74
 
68
75
  def set_session(self, value):
69
76
  """The user session to authenticate with"""
70
77
 
71
78
  self._global_headers['x-appwrite-session'] = value
79
+ self._config['session'] = value
72
80
  return self
73
81
 
74
82
  def set_forwarded_user_agent(self, value):
75
83
  """The user agent string of the client that made the request"""
76
84
 
77
85
  self._global_headers['x-forwarded-user-agent'] = value
86
+ self._config['forwardeduseragent'] = value
78
87
  return self
79
88
 
80
89
  def set_dev_key(self, value):
81
90
  """Your secret dev API key"""
82
91
 
83
92
  self._global_headers['x-appwrite-dev-key'] = value
93
+ self._config['devkey'] = value
84
94
  return self
85
95
 
86
96
  def set_cookie(self, value):
87
97
  """The user cookie to authenticate with. Used by SDKs that forward an incoming Cookie header in server-side runtimes."""
88
98
 
89
99
  self._global_headers['cookie'] = value
100
+ self._config['cookie'] = value
90
101
  return self
91
102
 
92
103
  def set_impersonate_user_id(self, value):
93
104
  """Impersonate a user by ID on an already user-authenticated request. Requires the current request to be authenticated as a user with impersonator capability; X-Appwrite-Key alone is not sufficient. Impersonator users are intentionally granted users.read so they can discover a target before impersonation begins. Internal audit logs still attribute actions to the original impersonator and record the impersonated target only in internal audit payload data."""
94
105
 
95
106
  self._global_headers['x-appwrite-impersonate-user-id'] = value
107
+ self._config['impersonateuserid'] = value
96
108
  return self
97
109
 
98
110
  def set_impersonate_user_email(self, value):
99
111
  """Impersonate a user by email on an already user-authenticated request. Requires the current request to be authenticated as a user with impersonator capability; X-Appwrite-Key alone is not sufficient. Impersonator users are intentionally granted users.read so they can discover a target before impersonation begins. Internal audit logs still attribute actions to the original impersonator and record the impersonated target only in internal audit payload data."""
100
112
 
101
113
  self._global_headers['x-appwrite-impersonate-user-email'] = value
114
+ self._config['impersonateuseremail'] = value
102
115
  return self
103
116
 
104
117
  def set_impersonate_user_phone(self, value):
105
118
  """Impersonate a user by phone on an already user-authenticated request. Requires the current request to be authenticated as a user with impersonator capability; X-Appwrite-Key alone is not sufficient. Impersonator users are intentionally granted users.read so they can discover a target before impersonation begins. Internal audit logs still attribute actions to the original impersonator and record the impersonated target only in internal audit payload data."""
106
119
 
107
120
  self._global_headers['x-appwrite-impersonate-user-phone'] = value
121
+ self._config['impersonateuserphone'] = value
108
122
  return self
109
123
 
110
124
  def call(self, method, path='', headers=None, params=None, response_type='json'):
@@ -94,4 +94,6 @@ class ProjectKeyScopes(Enum):
94
94
  DOMAINS_READ = "domains.read"
95
95
  DOMAINS_WRITE = "domains.write"
96
96
  EVENTS_READ = "events.read"
97
+ APPS_READ = "apps.read"
98
+ APPS_WRITE = "apps.write"
97
99
  USAGE_READ = "usage.read"
@@ -3,6 +3,7 @@ from enum import Enum
3
3
  class ProjectPolicyId(Enum):
4
4
  PASSWORD_DICTIONARY = "password-dictionary"
5
5
  PASSWORD_HISTORY = "password-history"
6
+ PASSWORD_STRENGTH = "password-strength"
6
7
  PASSWORD_PERSONAL_DATA = "password-personal-data"
7
8
  SESSION_ALERT = "session-alert"
8
9
  SESSION_DURATION = "session-duration"
@@ -172,6 +172,7 @@ from .o_auth2_microsoft import OAuth2Microsoft
172
172
  from .o_auth2_provider_list import OAuth2ProviderList
173
173
  from .policy_password_dictionary import PolicyPasswordDictionary
174
174
  from .policy_password_history import PolicyPasswordHistory
175
+ from .policy_password_strength import PolicyPasswordStrength
175
176
  from .policy_password_personal_data import PolicyPasswordPersonalData
176
177
  from .policy_session_alert import PolicySessionAlert
177
178
  from .policy_session_duration import PolicySessionDuration
@@ -406,6 +407,7 @@ __all__ = [
406
407
  'OAuth2ProviderList',
407
408
  'PolicyPasswordDictionary',
408
409
  'PolicyPasswordHistory',
410
+ 'PolicyPasswordStrength',
409
411
  'PolicyPasswordPersonalData',
410
412
  'PolicySessionAlert',
411
413
  'PolicySessionDuration',
@@ -4,6 +4,7 @@ from pydantic import Field, PrivateAttr
4
4
  from .base_model import AppwriteModel
5
5
  from .policy_password_dictionary import PolicyPasswordDictionary
6
6
  from .policy_password_history import PolicyPasswordHistory
7
+ from .policy_password_strength import PolicyPasswordStrength
7
8
  from .policy_password_personal_data import PolicyPasswordPersonalData
8
9
  from .policy_session_alert import PolicySessionAlert
9
10
  from .policy_session_duration import PolicySessionDuration
@@ -23,8 +24,8 @@ class PolicyList(AppwriteModel):
23
24
  ----------
24
25
  total : float
25
26
  Total number of policies in the given project.
26
- policies : List[Union[PolicyPasswordDictionary, PolicyPasswordHistory, PolicyPasswordPersonalData, PolicySessionAlert, PolicySessionDuration, PolicySessionInvalidation, PolicySessionLimit, PolicyUserLimit, PolicyMembershipPrivacy, PolicyDenyAliasedEmail, PolicyDenyDisposableEmail, PolicyDenyFreeEmail]]
27
+ policies : List[Union[PolicyPasswordDictionary, PolicyPasswordHistory, PolicyPasswordStrength, PolicyPasswordPersonalData, PolicySessionAlert, PolicySessionDuration, PolicySessionInvalidation, PolicySessionLimit, PolicyUserLimit, PolicyMembershipPrivacy, PolicyDenyAliasedEmail, PolicyDenyDisposableEmail, PolicyDenyFreeEmail]]
27
28
  List of policies.
28
29
  """
29
30
  total: float = Field(..., alias='total')
30
- policies: List[Union[PolicyPasswordDictionary, PolicyPasswordHistory, PolicyPasswordPersonalData, PolicySessionAlert, PolicySessionDuration, PolicySessionInvalidation, PolicySessionLimit, PolicyUserLimit, PolicyMembershipPrivacy, PolicyDenyAliasedEmail, PolicyDenyDisposableEmail, PolicyDenyFreeEmail]] = Field(..., alias='policies')
31
+ policies: List[Union[PolicyPasswordDictionary, PolicyPasswordHistory, PolicyPasswordStrength, PolicyPasswordPersonalData, PolicySessionAlert, PolicySessionDuration, PolicySessionInvalidation, PolicySessionLimit, PolicyUserLimit, PolicyMembershipPrivacy, PolicyDenyAliasedEmail, PolicyDenyDisposableEmail, PolicyDenyFreeEmail]] = Field(..., alias='policies')
@@ -0,0 +1,30 @@
1
+ from typing import Any, Dict, List, Optional, Union, cast
2
+ from pydantic import Field, PrivateAttr
3
+
4
+ from .base_model import AppwriteModel
5
+
6
+ class PolicyPasswordStrength(AppwriteModel):
7
+ """
8
+ Policy Password Strength
9
+
10
+ Attributes
11
+ ----------
12
+ id : str
13
+ Policy ID.
14
+ min : float
15
+ Minimum password length required for user passwords.
16
+ uppercase : bool
17
+ Whether passwords must include at least one uppercase letter.
18
+ lowercase : bool
19
+ Whether passwords must include at least one lowercase letter.
20
+ number : bool
21
+ Whether passwords must include at least one number.
22
+ symbols : bool
23
+ Whether passwords must include at least one symbol.
24
+ """
25
+ id: str = Field(..., alias='$id')
26
+ min: float = Field(..., alias='min')
27
+ uppercase: bool = Field(..., alias='uppercase')
28
+ lowercase: bool = Field(..., alias='lowercase')
29
+ number: bool = Field(..., alias='number')
30
+ symbols: bool = Field(..., alias='symbols')
@@ -6,8 +6,8 @@ from .dev_key import DevKey
6
6
  from .project_auth_method import ProjectAuthMethod
7
7
  from .project_service import ProjectService
8
8
  from .project_protocol import ProjectProtocol
9
- from .billing_limits import BillingLimits
10
9
  from .block import Block
10
+ from .billing_limits import BillingLimits
11
11
 
12
12
  class Project(AppwriteModel):
13
13
  """
@@ -25,6 +25,8 @@ class Project(AppwriteModel):
25
25
  Project name.
26
26
  teamid : str
27
27
  Project team ID.
28
+ region : str
29
+ Project region
28
30
  devkeys : List[DevKey]
29
31
  Deprecated since 1.9.5: List of dev keys.
30
32
  smtpenabled : bool
@@ -61,20 +63,37 @@ class Project(AppwriteModel):
61
63
  List of services.
62
64
  protocols : List[ProjectProtocol]
63
65
  List of protocols.
64
- region : str
65
- Project region
66
- billinglimits : Optional[BillingLimits]
67
- Billing limits reached
68
66
  blocks : List[Block]
69
67
  Project blocks information
70
68
  consoleaccessedat : str
71
69
  Last time the project was accessed via console. Used with plan&#039;s projectInactivityDays to determine if project is paused.
70
+ billinglimits : Optional[BillingLimits]
71
+ Billing limits reached
72
+ oauth2serverenabled : bool
73
+ OAuth2 server status
74
+ oauth2serverauthorizationurl : str
75
+ OAuth2 server authorization URL
76
+ oauth2serverscopes : List[Any]
77
+ OAuth2 server allowed scopes
78
+ oauth2serveraccesstokenduration : float
79
+ OAuth2 server access token duration in seconds for confidential clients
80
+ oauth2serverrefreshtokenduration : float
81
+ OAuth2 server refresh token duration in seconds for confidential clients
82
+ oauth2serverpublicaccesstokenduration : float
83
+ OAuth2 server access token duration in seconds for public clients (SPAs, mobile, native)
84
+ oauth2serverpublicrefreshtokenduration : float
85
+ OAuth2 server refresh token duration in seconds for public clients (SPAs, mobile, native)
86
+ oauth2serverconfidentialpkce : bool
87
+ When enabled, PKCE is required for confidential clients (server-side flows using client_secret). PKCE is always required for public clients regardless of this setting.
88
+ oauth2serverdiscoveryurl : str
89
+ OAuth2 server discovery URL
72
90
  """
73
91
  id: str = Field(..., alias='$id')
74
92
  createdat: str = Field(..., alias='$createdAt')
75
93
  updatedat: str = Field(..., alias='$updatedAt')
76
94
  name: str = Field(..., alias='name')
77
95
  teamid: str = Field(..., alias='teamId')
96
+ region: str = Field(..., alias='region')
78
97
  devkeys: List[DevKey] = Field(..., alias='devKeys')
79
98
  smtpenabled: bool = Field(..., alias='smtpEnabled')
80
99
  smtpsendername: str = Field(..., alias='smtpSenderName')
@@ -93,7 +112,15 @@ class Project(AppwriteModel):
93
112
  authmethods: List[ProjectAuthMethod] = Field(..., alias='authMethods')
94
113
  services: List[ProjectService] = Field(..., alias='services')
95
114
  protocols: List[ProjectProtocol] = Field(..., alias='protocols')
96
- region: str = Field(..., alias='region')
97
- billinglimits: Optional[BillingLimits] = Field(default=None, alias='billingLimits')
98
115
  blocks: List[Block] = Field(..., alias='blocks')
99
116
  consoleaccessedat: str = Field(..., alias='consoleAccessedAt')
117
+ billinglimits: Optional[BillingLimits] = Field(default=None, alias='billingLimits')
118
+ oauth2serverenabled: bool = Field(..., alias='oAuth2ServerEnabled')
119
+ oauth2serverauthorizationurl: str = Field(..., alias='oAuth2ServerAuthorizationUrl')
120
+ oauth2serverscopes: List[Any] = Field(..., alias='oAuth2ServerScopes')
121
+ oauth2serveraccesstokenduration: float = Field(..., alias='oAuth2ServerAccessTokenDuration')
122
+ oauth2serverrefreshtokenduration: float = Field(..., alias='oAuth2ServerRefreshTokenDuration')
123
+ oauth2serverpublicaccesstokenduration: float = Field(..., alias='oAuth2ServerPublicAccessTokenDuration')
124
+ oauth2serverpublicrefreshtokenduration: float = Field(..., alias='oAuth2ServerPublicRefreshTokenDuration')
125
+ oauth2serverconfidentialpkce: bool = Field(..., alias='oAuth2ServerConfidentialPkce')
126
+ oauth2serverdiscoveryurl: str = Field(..., alias='oAuth2ServerDiscoveryUrl')
@@ -1,4 +1,5 @@
1
1
  from ..service import Service
2
+ from urllib.parse import quote
2
3
  from typing import Any, Dict, List, Optional, Union, Type, TypeVar
3
4
  from ..exception import AppwriteException
4
5
  from appwrite.utils.deprecated import deprecated
@@ -53,6 +54,7 @@ class Account(Service):
53
54
  api_params = {}
54
55
 
55
56
  response = self.client.call('get', api_path, {
57
+ 'X-Appwrite-Project': self.client.get_config('project'),
56
58
  }, api_params)
57
59
 
58
60
  return User.with_data(response, model_type)
@@ -113,6 +115,7 @@ class Account(Service):
113
115
  api_params['name'] = self._normalize_value(name)
114
116
 
115
117
  response = self.client.call('post', api_path, {
118
+ 'X-Appwrite-Project': self.client.get_config('project'),
116
119
  'content-type': 'application/json',
117
120
  }, api_params)
118
121
 
@@ -164,6 +167,7 @@ class Account(Service):
164
167
  api_params['password'] = self._normalize_value(password)
165
168
 
166
169
  response = self.client.call('patch', api_path, {
170
+ 'X-Appwrite-Project': self.client.get_config('project'),
167
171
  'content-type': 'application/json',
168
172
  }, api_params)
169
173
 
@@ -205,6 +209,7 @@ class Account(Service):
205
209
  api_params['total'] = self._normalize_value(total)
206
210
 
207
211
  response = self.client.call('get', api_path, {
212
+ 'X-Appwrite-Project': self.client.get_config('project'),
208
213
  }, api_params)
209
214
 
210
215
  return self._parse_response(response, model=IdentityList)
@@ -242,6 +247,7 @@ class Account(Service):
242
247
 
243
248
 
244
249
  response = self.client.call('delete', api_path, {
250
+ 'X-Appwrite-Project': self.client.get_config('project'),
245
251
  'content-type': 'application/json',
246
252
  }, api_params)
247
253
 
@@ -278,6 +284,7 @@ class Account(Service):
278
284
  api_params['duration'] = self._normalize_value(duration)
279
285
 
280
286
  response = self.client.call('post', api_path, {
287
+ 'X-Appwrite-Project': self.client.get_config('project'),
281
288
  'content-type': 'application/json',
282
289
  }, api_params)
283
290
 
@@ -319,6 +326,7 @@ class Account(Service):
319
326
  api_params['total'] = self._normalize_value(total)
320
327
 
321
328
  response = self.client.call('get', api_path, {
329
+ 'X-Appwrite-Project': self.client.get_config('project'),
322
330
  }, api_params)
323
331
 
324
332
  return self._parse_response(response, model=LogList)
@@ -360,6 +368,7 @@ class Account(Service):
360
368
  api_params['mfa'] = self._normalize_value(mfa)
361
369
 
362
370
  response = self.client.call('patch', api_path, {
371
+ 'X-Appwrite-Project': self.client.get_config('project'),
363
372
  'content-type': 'application/json',
364
373
  }, api_params)
365
374
 
@@ -398,6 +407,7 @@ class Account(Service):
398
407
 
399
408
 
400
409
  response = self.client.call('post', api_path, {
410
+ 'X-Appwrite-Project': self.client.get_config('project'),
401
411
  'content-type': 'application/json',
402
412
  }, api_params)
403
413
 
@@ -447,6 +457,7 @@ class Account(Service):
447
457
  api_params['otp'] = self._normalize_value(otp)
448
458
 
449
459
  response = self.client.call('put', api_path, {
460
+ 'X-Appwrite-Project': self.client.get_config('project'),
450
461
  'content-type': 'application/json',
451
462
  }, api_params)
452
463
 
@@ -485,6 +496,7 @@ class Account(Service):
485
496
 
486
497
 
487
498
  response = self.client.call('delete', api_path, {
499
+ 'X-Appwrite-Project': self.client.get_config('project'),
488
500
  'content-type': 'application/json',
489
501
  }, api_params)
490
502
 
@@ -523,6 +535,7 @@ class Account(Service):
523
535
  api_params['factor'] = self._normalize_value(factor)
524
536
 
525
537
  response = self.client.call('post', api_path, {
538
+ 'X-Appwrite-Project': self.client.get_config('project'),
526
539
  'content-type': 'application/json',
527
540
  }, api_params)
528
541
 
@@ -568,6 +581,7 @@ class Account(Service):
568
581
  api_params['otp'] = self._normalize_value(otp)
569
582
 
570
583
  response = self.client.call('put', api_path, {
584
+ 'X-Appwrite-Project': self.client.get_config('project'),
571
585
  'content-type': 'application/json',
572
586
  }, api_params)
573
587
 
@@ -595,6 +609,7 @@ class Account(Service):
595
609
  api_params = {}
596
610
 
597
611
  response = self.client.call('get', api_path, {
612
+ 'X-Appwrite-Project': self.client.get_config('project'),
598
613
  }, api_params)
599
614
 
600
615
  return self._parse_response(response, model=MfaFactors)
@@ -621,6 +636,7 @@ class Account(Service):
621
636
  api_params = {}
622
637
 
623
638
  response = self.client.call('get', api_path, {
639
+ 'X-Appwrite-Project': self.client.get_config('project'),
624
640
  }, api_params)
625
641
 
626
642
  return self._parse_response(response, model=MfaRecoveryCodes)
@@ -647,6 +663,7 @@ class Account(Service):
647
663
  api_params = {}
648
664
 
649
665
  response = self.client.call('post', api_path, {
666
+ 'X-Appwrite-Project': self.client.get_config('project'),
650
667
  'content-type': 'application/json',
651
668
  }, api_params)
652
669
 
@@ -674,6 +691,7 @@ class Account(Service):
674
691
  api_params = {}
675
692
 
676
693
  response = self.client.call('patch', api_path, {
694
+ 'X-Appwrite-Project': self.client.get_config('project'),
677
695
  'content-type': 'application/json',
678
696
  }, api_params)
679
697
 
@@ -716,6 +734,7 @@ class Account(Service):
716
734
  api_params['name'] = self._normalize_value(name)
717
735
 
718
736
  response = self.client.call('patch', api_path, {
737
+ 'X-Appwrite-Project': self.client.get_config('project'),
719
738
  'content-type': 'application/json',
720
739
  }, api_params)
721
740
 
@@ -736,7 +755,7 @@ class Account(Service):
736
755
  password : str
737
756
  New user password. Must be at least 8 chars.
738
757
  old_password : Optional[str]
739
- Current user password. Must be at least 8 chars.
758
+ Current user password. Max length: 256 chars.
740
759
 
741
760
  model_type : Type[T], optional
742
761
  Pydantic model class for the user-defined data. Defaults to dict for backward compatibility.
@@ -763,6 +782,7 @@ class Account(Service):
763
782
  api_params['oldPassword'] = self._normalize_value(old_password)
764
783
 
765
784
  response = self.client.call('patch', api_path, {
785
+ 'X-Appwrite-Project': self.client.get_config('project'),
766
786
  'content-type': 'application/json',
767
787
  }, api_params)
768
788
 
@@ -812,6 +832,7 @@ class Account(Service):
812
832
  api_params['password'] = self._normalize_value(password)
813
833
 
814
834
  response = self.client.call('patch', api_path, {
835
+ 'X-Appwrite-Project': self.client.get_config('project'),
815
836
  'content-type': 'application/json',
816
837
  }, api_params)
817
838
 
@@ -846,6 +867,7 @@ class Account(Service):
846
867
  api_params = {}
847
868
 
848
869
  response = self.client.call('get', api_path, {
870
+ 'X-Appwrite-Project': self.client.get_config('project'),
849
871
  }, api_params)
850
872
 
851
873
  return Preferences.with_data(response, model_type)
@@ -887,6 +909,7 @@ class Account(Service):
887
909
  api_params['prefs'] = self._normalize_value(prefs)
888
910
 
889
911
  response = self.client.call('patch', api_path, {
912
+ 'X-Appwrite-Project': self.client.get_config('project'),
890
913
  'content-type': 'application/json',
891
914
  }, api_params)
892
915
 
@@ -932,6 +955,7 @@ class Account(Service):
932
955
  api_params['url'] = self._normalize_value(url)
933
956
 
934
957
  response = self.client.call('post', api_path, {
958
+ 'X-Appwrite-Project': self.client.get_config('project'),
935
959
  'content-type': 'application/json',
936
960
  }, api_params)
937
961
 
@@ -986,6 +1010,7 @@ class Account(Service):
986
1010
  api_params['password'] = self._normalize_value(password)
987
1011
 
988
1012
  response = self.client.call('put', api_path, {
1013
+ 'X-Appwrite-Project': self.client.get_config('project'),
989
1014
  'content-type': 'application/json',
990
1015
  }, api_params)
991
1016
 
@@ -1013,6 +1038,7 @@ class Account(Service):
1013
1038
  api_params = {}
1014
1039
 
1015
1040
  response = self.client.call('get', api_path, {
1041
+ 'X-Appwrite-Project': self.client.get_config('project'),
1016
1042
  }, api_params)
1017
1043
 
1018
1044
  return self._parse_response(response, model=SessionList)
@@ -1039,6 +1065,7 @@ class Account(Service):
1039
1065
  api_params = {}
1040
1066
 
1041
1067
  response = self.client.call('delete', api_path, {
1068
+ 'X-Appwrite-Project': self.client.get_config('project'),
1042
1069
  'content-type': 'application/json',
1043
1070
  }, api_params)
1044
1071
 
@@ -1066,6 +1093,7 @@ class Account(Service):
1066
1093
  api_params = {}
1067
1094
 
1068
1095
  response = self.client.call('post', api_path, {
1096
+ 'X-Appwrite-Project': self.client.get_config('project'),
1069
1097
  'content-type': 'application/json',
1070
1098
  }, api_params)
1071
1099
 
@@ -1113,6 +1141,7 @@ class Account(Service):
1113
1141
  api_params['password'] = self._normalize_value(password)
1114
1142
 
1115
1143
  response = self.client.call('post', api_path, {
1144
+ 'X-Appwrite-Project': self.client.get_config('project'),
1116
1145
  'content-type': 'application/json',
1117
1146
  }, api_params)
1118
1147
 
@@ -1161,6 +1190,7 @@ class Account(Service):
1161
1190
  api_params['secret'] = self._normalize_value(secret)
1162
1191
 
1163
1192
  response = self.client.call('put', api_path, {
1193
+ 'X-Appwrite-Project': self.client.get_config('project'),
1164
1194
  'content-type': 'application/json',
1165
1195
  }, api_params)
1166
1196
 
@@ -1209,6 +1239,7 @@ class Account(Service):
1209
1239
  api_params['secret'] = self._normalize_value(secret)
1210
1240
 
1211
1241
  response = self.client.call('put', api_path, {
1242
+ 'X-Appwrite-Project': self.client.get_config('project'),
1212
1243
  'content-type': 'application/json',
1213
1244
  }, api_params)
1214
1245
 
@@ -1254,6 +1285,7 @@ class Account(Service):
1254
1285
  api_params['secret'] = self._normalize_value(secret)
1255
1286
 
1256
1287
  response = self.client.call('post', api_path, {
1288
+ 'X-Appwrite-Project': self.client.get_config('project'),
1257
1289
  'content-type': 'application/json',
1258
1290
  }, api_params)
1259
1291
 
@@ -1292,6 +1324,7 @@ class Account(Service):
1292
1324
 
1293
1325
 
1294
1326
  response = self.client.call('get', api_path, {
1327
+ 'X-Appwrite-Project': self.client.get_config('project'),
1295
1328
  }, api_params)
1296
1329
 
1297
1330
  return self._parse_response(response, model=Session)
@@ -1329,6 +1362,7 @@ class Account(Service):
1329
1362
 
1330
1363
 
1331
1364
  response = self.client.call('patch', api_path, {
1365
+ 'X-Appwrite-Project': self.client.get_config('project'),
1332
1366
  'content-type': 'application/json',
1333
1367
  }, api_params)
1334
1368
 
@@ -1367,6 +1401,7 @@ class Account(Service):
1367
1401
 
1368
1402
 
1369
1403
  response = self.client.call('delete', api_path, {
1404
+ 'X-Appwrite-Project': self.client.get_config('project'),
1370
1405
  'content-type': 'application/json',
1371
1406
  }, api_params)
1372
1407
 
@@ -1401,6 +1436,7 @@ class Account(Service):
1401
1436
  api_params = {}
1402
1437
 
1403
1438
  response = self.client.call('patch', api_path, {
1439
+ 'X-Appwrite-Project': self.client.get_config('project'),
1404
1440
  'content-type': 'application/json',
1405
1441
  }, api_params)
1406
1442
 
@@ -1454,6 +1490,7 @@ class Account(Service):
1454
1490
  api_params['phrase'] = self._normalize_value(phrase)
1455
1491
 
1456
1492
  response = self.client.call('post', api_path, {
1493
+ 'X-Appwrite-Project': self.client.get_config('project'),
1457
1494
  'content-type': 'application/json',
1458
1495
  }, api_params)
1459
1496
 
@@ -1512,6 +1549,7 @@ class Account(Service):
1512
1549
  api_params['phrase'] = self._normalize_value(phrase)
1513
1550
 
1514
1551
  response = self.client.call('post', api_path, {
1552
+ 'X-Appwrite-Project': self.client.get_config('project'),
1515
1553
  'content-type': 'application/json',
1516
1554
  }, api_params)
1517
1555
 
@@ -1569,6 +1607,7 @@ class Account(Service):
1569
1607
  api_params['scopes'] = self._normalize_value(scopes)
1570
1608
 
1571
1609
  response = self.client.call('get', api_path, {
1610
+ 'X-Appwrite-Project': self.client.get_config('project'),
1572
1611
  }, api_params, response_type='location')
1573
1612
 
1574
1613
  return response
@@ -1615,6 +1654,7 @@ class Account(Service):
1615
1654
  api_params['phone'] = self._normalize_value(phone)
1616
1655
 
1617
1656
  response = self.client.call('post', api_path, {
1657
+ 'X-Appwrite-Project': self.client.get_config('project'),
1618
1658
  'content-type': 'application/json',
1619
1659
  }, api_params)
1620
1660
 
@@ -1656,6 +1696,7 @@ class Account(Service):
1656
1696
  api_params['url'] = self._normalize_value(url)
1657
1697
 
1658
1698
  response = self.client.call('post', api_path, {
1699
+ 'X-Appwrite-Project': self.client.get_config('project'),
1659
1700
  'content-type': 'application/json',
1660
1701
  }, api_params)
1661
1702
 
@@ -1700,6 +1741,7 @@ class Account(Service):
1700
1741
  api_params['url'] = self._normalize_value(url)
1701
1742
 
1702
1743
  response = self.client.call('post', api_path, {
1744
+ 'X-Appwrite-Project': self.client.get_config('project'),
1703
1745
  'content-type': 'application/json',
1704
1746
  }, api_params)
1705
1747
 
@@ -1745,6 +1787,7 @@ class Account(Service):
1745
1787
  api_params['secret'] = self._normalize_value(secret)
1746
1788
 
1747
1789
  response = self.client.call('put', api_path, {
1790
+ 'X-Appwrite-Project': self.client.get_config('project'),
1748
1791
  'content-type': 'application/json',
1749
1792
  }, api_params)
1750
1793
 
@@ -1793,6 +1836,7 @@ class Account(Service):
1793
1836
  api_params['secret'] = self._normalize_value(secret)
1794
1837
 
1795
1838
  response = self.client.call('put', api_path, {
1839
+ 'X-Appwrite-Project': self.client.get_config('project'),
1796
1840
  'content-type': 'application/json',
1797
1841
  }, api_params)
1798
1842
 
@@ -1820,6 +1864,7 @@ class Account(Service):
1820
1864
  api_params = {}
1821
1865
 
1822
1866
  response = self.client.call('post', api_path, {
1867
+ 'X-Appwrite-Project': self.client.get_config('project'),
1823
1868
  'content-type': 'application/json',
1824
1869
  }, api_params)
1825
1870
 
@@ -1865,6 +1910,7 @@ class Account(Service):
1865
1910
  api_params['secret'] = self._normalize_value(secret)
1866
1911
 
1867
1912
  response = self.client.call('put', api_path, {
1913
+ 'X-Appwrite-Project': self.client.get_config('project'),
1868
1914
  'content-type': 'application/json',
1869
1915
  }, api_params)
1870
1916
 
@@ -1,4 +1,5 @@
1
1
  from ..service import Service
2
+ from urllib.parse import quote
2
3
  from typing import Any, Dict, List, Optional, Union
3
4
  from ..exception import AppwriteException
4
5
  from appwrite.utils.deprecated import deprecated
@@ -40,6 +41,7 @@ class Activities(Service):
40
41
  api_params['queries'] = self._normalize_value(queries)
41
42
 
42
43
  response = self.client.call('get', api_path, {
44
+ 'X-Appwrite-Project': self.client.get_config('project'),
43
45
  }, api_params)
44
46
 
45
47
  return self._parse_response(response, model=ActivityEventList)
@@ -78,6 +80,7 @@ class Activities(Service):
78
80
 
79
81
 
80
82
  response = self.client.call('get', api_path, {
83
+ 'X-Appwrite-Project': self.client.get_config('project'),
81
84
  }, api_params)
82
85
 
83
86
  return self._parse_response(response, model=ActivityEvent)