appwrite 24.2.0__tar.gz → 24.3.1__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 (433) hide show
  1. {appwrite-24.2.0 → appwrite-24.3.1}/PKG-INFO +2 -2
  2. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/client.py +2 -2
  3. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_auth_method_id.py +1 -0
  4. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_policy_id.py +1 -0
  5. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/__init__.py +10 -0
  6. appwrite-24.3.1/appwrite/models/passkey.py +29 -0
  7. appwrite-24.3.1/appwrite/models/passkey_challenge.py +29 -0
  8. appwrite-24.3.1/appwrite/models/passkey_list.py +21 -0
  9. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_list.py +3 -1
  10. appwrite-24.3.1/appwrite/models/policy_passkey.py +23 -0
  11. appwrite-24.3.1/appwrite/models/token_secret.py +32 -0
  12. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/account.py +347 -0
  13. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/project.py +47 -1
  14. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/users.py +198 -0
  15. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite.egg-info/PKG-INFO +2 -2
  16. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite.egg-info/SOURCES.txt +5 -0
  17. {appwrite-24.2.0 → appwrite-24.3.1}/pyproject.toml +1 -1
  18. {appwrite-24.2.0 → appwrite-24.3.1}/setup.py +2 -2
  19. {appwrite-24.2.0 → appwrite-24.3.1}/LICENSE +0 -0
  20. {appwrite-24.2.0 → appwrite-24.3.1}/README.md +0 -0
  21. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/__init__.py +0 -0
  22. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/encoders/__init__.py +0 -0
  23. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/encoders/value_class_encoder.py +0 -0
  24. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/__init__.py +0 -0
  25. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/adapter.py +0 -0
  26. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/attribute_status.py +0 -0
  27. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/authentication_factor.py +0 -0
  28. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/authenticator_type.py +0 -0
  29. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/backup_services.py +0 -0
  30. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/billing_plan_group.py +0 -0
  31. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/browser.py +0 -0
  32. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/browser_permission.py +0 -0
  33. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/browser_theme.py +0 -0
  34. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/build_runtime.py +0 -0
  35. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/column_status.py +0 -0
  36. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/compression.py +0 -0
  37. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/credit_card.py +0 -0
  38. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/database_status.py +0 -0
  39. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/database_type.py +0 -0
  40. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/databases_index_type.py +0 -0
  41. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/deployment_download_type.py +0 -0
  42. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/deployment_status.py +0 -0
  43. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/documents_db_index_type.py +0 -0
  44. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/embedding_model.py +0 -0
  45. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/execution_method.py +0 -0
  46. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/execution_resource_type.py +0 -0
  47. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/execution_status.py +0 -0
  48. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/execution_trigger.py +0 -0
  49. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/flag.py +0 -0
  50. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/framework.py +0 -0
  51. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/image_format.py +0 -0
  52. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/image_gravity.py +0 -0
  53. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/index_status.py +0 -0
  54. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/invalidation_type.py +0 -0
  55. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/message_priority.py +0 -0
  56. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/message_status.py +0 -0
  57. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/messaging_provider_type.py +0 -0
  58. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/o_auth2_google_prompt.py +0 -0
  59. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/o_auth2_oidc_prompt.py +0 -0
  60. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/o_auth_provider.py +0 -0
  61. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/order_by.py +0 -0
  62. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/organization_key_scopes.py +0 -0
  63. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/password_hash.py +0 -0
  64. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/platform_type.py +0 -0
  65. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_email_template_id.py +0 -0
  66. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_email_template_locale.py +0 -0
  67. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_key_scopes.py +0 -0
  68. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_o_auth2_google_prompt.py +0 -0
  69. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_o_auth2_oidc_prompt.py +0 -0
  70. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_o_auth_provider_id.py +0 -0
  71. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_protocol_id.py +0 -0
  72. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_service_id.py +0 -0
  73. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_smtp_secure.py +0 -0
  74. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/proxy_resource_type.py +0 -0
  75. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/proxy_rule_deployment_resource_type.py +0 -0
  76. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/proxy_rule_status.py +0 -0
  77. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/region.py +0 -0
  78. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/relation_mutate.py +0 -0
  79. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/relationship_type.py +0 -0
  80. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/runtime.py +0 -0
  81. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/smtp_encryption.py +0 -0
  82. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/status_code.py +0 -0
  83. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/tables_db_index_type.py +0 -0
  84. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/template_reference_type.py +0 -0
  85. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/timezone.py +0 -0
  86. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/vcs_reference_type.py +0 -0
  87. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/vectors_db_index_type.py +0 -0
  88. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/exception.py +0 -0
  89. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/id.py +0 -0
  90. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/input_file.py +0 -0
  91. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/activity_event.py +0 -0
  92. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/activity_event_list.py +0 -0
  93. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/additional_resource.py +0 -0
  94. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/algo_argon2.py +0 -0
  95. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/algo_bcrypt.py +0 -0
  96. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/algo_md5.py +0 -0
  97. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/algo_phpass.py +0 -0
  98. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/algo_scrypt.py +0 -0
  99. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/algo_scrypt_modified.py +0 -0
  100. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/algo_sha.py +0 -0
  101. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app.py +0 -0
  102. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app_installation.py +0 -0
  103. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app_installation_list.py +0 -0
  104. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app_key.py +0 -0
  105. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app_key_list.py +0 -0
  106. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app_scope.py +0 -0
  107. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app_scope_list.py +0 -0
  108. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app_secret.py +0 -0
  109. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app_secret_list.py +0 -0
  110. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app_secret_plaintext.py +0 -0
  111. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/apps_list.py +0 -0
  112. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_bigint.py +0 -0
  113. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_boolean.py +0 -0
  114. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_datetime.py +0 -0
  115. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_email.py +0 -0
  116. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_enum.py +0 -0
  117. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_float.py +0 -0
  118. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_integer.py +0 -0
  119. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_ip.py +0 -0
  120. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_line.py +0 -0
  121. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_list.py +0 -0
  122. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_longtext.py +0 -0
  123. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_mediumtext.py +0 -0
  124. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_object.py +0 -0
  125. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_point.py +0 -0
  126. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_polygon.py +0 -0
  127. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_relationship.py +0 -0
  128. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_string.py +0 -0
  129. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_text.py +0 -0
  130. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_url.py +0 -0
  131. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_varchar.py +0 -0
  132. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_vector.py +0 -0
  133. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/backup_archive.py +0 -0
  134. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/backup_archive_list.py +0 -0
  135. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/backup_policy.py +0 -0
  136. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/backup_policy_list.py +0 -0
  137. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/backup_restoration.py +0 -0
  138. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/backup_restoration_list.py +0 -0
  139. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/base_model.py +0 -0
  140. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/billing_limits.py +0 -0
  141. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/billing_plan.py +0 -0
  142. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/billing_plan_addon.py +0 -0
  143. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/billing_plan_addon_details.py +0 -0
  144. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/billing_plan_dedicated_database_limits.py +0 -0
  145. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/billing_plan_limits.py +0 -0
  146. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/billing_plan_supported_addons.py +0 -0
  147. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/block.py +0 -0
  148. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/bucket.py +0 -0
  149. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/bucket_list.py +0 -0
  150. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/collection.py +0 -0
  151. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/collection_list.py +0 -0
  152. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_bigint.py +0 -0
  153. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_boolean.py +0 -0
  154. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_datetime.py +0 -0
  155. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_email.py +0 -0
  156. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_enum.py +0 -0
  157. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_float.py +0 -0
  158. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_index.py +0 -0
  159. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_index_list.py +0 -0
  160. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_integer.py +0 -0
  161. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_ip.py +0 -0
  162. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_line.py +0 -0
  163. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_list.py +0 -0
  164. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_longtext.py +0 -0
  165. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_mediumtext.py +0 -0
  166. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_point.py +0 -0
  167. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_polygon.py +0 -0
  168. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_relationship.py +0 -0
  169. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_string.py +0 -0
  170. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_text.py +0 -0
  171. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_url.py +0 -0
  172. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_varchar.py +0 -0
  173. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/continent.py +0 -0
  174. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/continent_list.py +0 -0
  175. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/country.py +0 -0
  176. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/country_list.py +0 -0
  177. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/currency.py +0 -0
  178. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/currency_list.py +0 -0
  179. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/database.py +0 -0
  180. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/database_list.py +0 -0
  181. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/database_migration.py +0 -0
  182. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/database_migration_list.py +0 -0
  183. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/database_status.py +0 -0
  184. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/database_status_connections.py +0 -0
  185. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/database_status_replica.py +0 -0
  186. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/database_status_volume.py +0 -0
  187. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database.py +0 -0
  188. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_backup.py +0 -0
  189. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_backup_list.py +0 -0
  190. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_backup_storage.py +0 -0
  191. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_branch.py +0 -0
  192. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_branch_list.py +0 -0
  193. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_execution.py +0 -0
  194. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_execution_column.py +0 -0
  195. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_extensions.py +0 -0
  196. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_list.py +0 -0
  197. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_member.py +0 -0
  198. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_operation.py +0 -0
  199. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_operation_list.py +0 -0
  200. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_pitr_windows.py +0 -0
  201. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_pooler.py +0 -0
  202. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_replicas.py +0 -0
  203. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_restoration.py +0 -0
  204. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_restoration_list.py +0 -0
  205. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_specification.py +0 -0
  206. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_specification_list.py +0 -0
  207. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_specification_pricing.py +0 -0
  208. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/deployment.py +0 -0
  209. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/deployment_list.py +0 -0
  210. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dev_key.py +0 -0
  211. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/document.py +0 -0
  212. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/document_list.py +0 -0
  213. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/email_template.py +0 -0
  214. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/email_template_list.py +0 -0
  215. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/embedding.py +0 -0
  216. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/embedding_list.py +0 -0
  217. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/ephemeral_key.py +0 -0
  218. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/execution.py +0 -0
  219. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/execution_list.py +0 -0
  220. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/file.py +0 -0
  221. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/file_list.py +0 -0
  222. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/framework.py +0 -0
  223. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/framework_adapter.py +0 -0
  224. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/framework_list.py +0 -0
  225. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/function.py +0 -0
  226. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/function_list.py +0 -0
  227. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/headers.py +0 -0
  228. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/identity.py +0 -0
  229. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/identity_list.py +0 -0
  230. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/index.py +0 -0
  231. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/index_list.py +0 -0
  232. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/insight.py +0 -0
  233. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/insight_cta.py +0 -0
  234. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/insight_list.py +0 -0
  235. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/jwt.py +0 -0
  236. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/key.py +0 -0
  237. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/key_list.py +0 -0
  238. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/language.py +0 -0
  239. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/language_list.py +0 -0
  240. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/locale.py +0 -0
  241. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/locale_code.py +0 -0
  242. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/locale_code_list.py +0 -0
  243. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/log.py +0 -0
  244. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/log_list.py +0 -0
  245. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/membership.py +0 -0
  246. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/membership_list.py +0 -0
  247. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/message.py +0 -0
  248. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/message_list.py +0 -0
  249. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/mfa_challenge.py +0 -0
  250. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/mfa_challenge_secret.py +0 -0
  251. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/mfa_factors.py +0 -0
  252. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/mfa_recovery_codes.py +0 -0
  253. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/mfa_type.py +0 -0
  254. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/mock_number.py +0 -0
  255. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/mock_number_list.py +0 -0
  256. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_amazon.py +0 -0
  257. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_apple.py +0 -0
  258. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_appwrite.py +0 -0
  259. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_auth0.py +0 -0
  260. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_authentik.py +0 -0
  261. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_autodesk.py +0 -0
  262. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_bitbucket.py +0 -0
  263. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_bitly.py +0 -0
  264. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_box.py +0 -0
  265. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_cloudflare.py +0 -0
  266. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_dailymotion.py +0 -0
  267. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_discord.py +0 -0
  268. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_disqus.py +0 -0
  269. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_dropbox.py +0 -0
  270. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_etsy.py +0 -0
  271. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_facebook.py +0 -0
  272. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_figma.py +0 -0
  273. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_fusion_auth.py +0 -0
  274. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_github.py +0 -0
  275. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_gitlab.py +0 -0
  276. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_google.py +0 -0
  277. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_hugging_face.py +0 -0
  278. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_keycloak.py +0 -0
  279. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_kick.py +0 -0
  280. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_linkedin.py +0 -0
  281. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_microsoft.py +0 -0
  282. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_notion.py +0 -0
  283. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_oidc.py +0 -0
  284. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_okta.py +0 -0
  285. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_paypal.py +0 -0
  286. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_podio.py +0 -0
  287. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_provider_list.py +0 -0
  288. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_resend.py +0 -0
  289. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_salesforce.py +0 -0
  290. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_slack.py +0 -0
  291. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_spotify.py +0 -0
  292. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_stripe.py +0 -0
  293. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_tradeshift.py +0 -0
  294. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_twitch.py +0 -0
  295. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_word_press.py +0 -0
  296. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_x.py +0 -0
  297. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_yahoo.py +0 -0
  298. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_yandex.py +0 -0
  299. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_zoho.py +0 -0
  300. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_zoom.py +0 -0
  301. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_approve.py +0 -0
  302. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_authorize.py +0 -0
  303. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_consent.py +0 -0
  304. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_consent_list.py +0 -0
  305. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_consent_token.py +0 -0
  306. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_consent_token_list.py +0 -0
  307. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_device_authorization.py +0 -0
  308. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_grant.py +0 -0
  309. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_organization.py +0 -0
  310. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_organization_list.py +0 -0
  311. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_par.py +0 -0
  312. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_project.py +0 -0
  313. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_project_list.py +0 -0
  314. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_reject.py +0 -0
  315. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_token.py +0 -0
  316. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/organization.py +0 -0
  317. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/phone.py +0 -0
  318. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/phone_list.py +0 -0
  319. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/platform_android.py +0 -0
  320. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/platform_apple.py +0 -0
  321. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/platform_linux.py +0 -0
  322. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/platform_list.py +0 -0
  323. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/platform_web.py +0 -0
  324. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/platform_windows.py +0 -0
  325. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_deny_aliased_email.py +0 -0
  326. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_deny_corporate_email.py +0 -0
  327. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_deny_disposable_email.py +0 -0
  328. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_deny_free_email.py +0 -0
  329. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_membership_privacy.py +0 -0
  330. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_mfa_factors.py +0 -0
  331. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_password_dictionary.py +0 -0
  332. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_password_history.py +0 -0
  333. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_password_personal_data.py +0 -0
  334. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_password_strength.py +0 -0
  335. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_session_alert.py +0 -0
  336. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_session_duration.py +0 -0
  337. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_session_invalidation.py +0 -0
  338. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_session_limit.py +0 -0
  339. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_user_limit.py +0 -0
  340. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/postgres_extension.py +0 -0
  341. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/preferences.py +0 -0
  342. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/presence.py +0 -0
  343. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/presence_list.py +0 -0
  344. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/program.py +0 -0
  345. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/project.py +0 -0
  346. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/project_auth_method.py +0 -0
  347. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/project_list.py +0 -0
  348. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/project_protocol.py +0 -0
  349. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/project_service.py +0 -0
  350. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/provider.py +0 -0
  351. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/provider_list.py +0 -0
  352. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/proxy_invalidation.py +0 -0
  353. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/proxy_rule.py +0 -0
  354. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/proxy_rule_list.py +0 -0
  355. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/report.py +0 -0
  356. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/report_list.py +0 -0
  357. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/resource_token.py +0 -0
  358. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/resource_token_list.py +0 -0
  359. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/row.py +0 -0
  360. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/row_list.py +0 -0
  361. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/runtime.py +0 -0
  362. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/runtime_list.py +0 -0
  363. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/session.py +0 -0
  364. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/session_list.py +0 -0
  365. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/site.py +0 -0
  366. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/site_list.py +0 -0
  367. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/specification.py +0 -0
  368. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/specification_list.py +0 -0
  369. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/subscriber.py +0 -0
  370. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/subscriber_list.py +0 -0
  371. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/table.py +0 -0
  372. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/table_list.py +0 -0
  373. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/target.py +0 -0
  374. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/target_list.py +0 -0
  375. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/team.py +0 -0
  376. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/team_list.py +0 -0
  377. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/token.py +0 -0
  378. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/topic.py +0 -0
  379. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/topic_list.py +0 -0
  380. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/transaction.py +0 -0
  381. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/transaction_list.py +0 -0
  382. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/usage_billing_plan.py +0 -0
  383. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/user.py +0 -0
  384. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/user_list.py +0 -0
  385. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/variable.py +0 -0
  386. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/variable_list.py +0 -0
  387. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/vectorsdb_collection.py +0 -0
  388. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/vectorsdb_collection_list.py +0 -0
  389. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/webhook.py +0 -0
  390. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/webhook_list.py +0 -0
  391. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/operator.py +0 -0
  392. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/permission.py +0 -0
  393. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/query.py +0 -0
  394. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/role.py +0 -0
  395. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/service.py +0 -0
  396. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/__init__.py +0 -0
  397. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/activities.py +0 -0
  398. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/advisor.py +0 -0
  399. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/apps.py +0 -0
  400. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/avatars.py +0 -0
  401. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/backups.py +0 -0
  402. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/databases.py +0 -0
  403. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/documents_db.py +0 -0
  404. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/embeddings.py +0 -0
  405. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/functions.py +0 -0
  406. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/graphql.py +0 -0
  407. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/locale.py +0 -0
  408. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/messaging.py +0 -0
  409. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/mongo.py +0 -0
  410. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/mysql.py +0 -0
  411. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/oauth2.py +0 -0
  412. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/organization.py +0 -0
  413. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/postgresql.py +0 -0
  414. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/presences.py +0 -0
  415. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/proxy.py +0 -0
  416. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/sites.py +0 -0
  417. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/storage.py +0 -0
  418. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/tables_db.py +0 -0
  419. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/teams.py +0 -0
  420. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/tokens.py +0 -0
  421. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/vectors_db.py +0 -0
  422. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/webhooks.py +0 -0
  423. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/utils/__init__.py +0 -0
  424. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/utils/deprecated.py +0 -0
  425. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite.egg-info/dependency_links.txt +0 -0
  426. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite.egg-info/requires.txt +0 -0
  427. {appwrite-24.2.0 → appwrite-24.3.1}/appwrite.egg-info/top_level.txt +0 -0
  428. {appwrite-24.2.0 → appwrite-24.3.1}/setup.cfg +0 -0
  429. {appwrite-24.2.0 → appwrite-24.3.1}/test/test_id.py +0 -0
  430. {appwrite-24.2.0 → appwrite-24.3.1}/test/test_operator.py +0 -0
  431. {appwrite-24.2.0 → appwrite-24.3.1}/test/test_permission.py +0 -0
  432. {appwrite-24.2.0 → appwrite-24.3.1}/test/test_query.py +0 -0
  433. {appwrite-24.2.0 → appwrite-24.3.1}/test/test_role.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: appwrite
3
- Version: 24.2.0
3
+ Version: 24.3.1
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/24.2.0.tar.gz
6
+ Download-URL: https://github.com/appwrite/sdk-for-python/archive/24.3.1.tar.gz
7
7
  Author: Appwrite Team
8
8
  Author-email: Appwrite Team <team@appwrite.io>
9
9
  Maintainer: Appwrite Team
@@ -18,11 +18,11 @@ class Client:
18
18
  self._endpoint = 'https://cloud.appwrite.io/v1'
19
19
  self._global_headers = {
20
20
  'content-type': '',
21
- 'user-agent': f'AppwritePythonSDK/24.2.0 ({platform.uname().system}; {platform.uname().version}; {platform.uname().machine})',
21
+ 'user-agent': f'AppwritePythonSDK/24.3.1 ({platform.uname().system}; {platform.uname().version}; {platform.uname().machine})',
22
22
  'x-sdk-name': 'Python',
23
23
  'x-sdk-platform': 'server',
24
24
  'x-sdk-language': 'python',
25
- 'x-sdk-version': '24.2.0',
25
+ 'x-sdk-version': '24.3.1',
26
26
  'X-Appwrite-Response-Format': '2.0.0',
27
27
  }
28
28
  self._config = {}
@@ -9,3 +9,4 @@ class ProjectAuthMethodId(Enum):
9
9
  INVITES = "invites"
10
10
  JWT = "jwt"
11
11
  PHONE = "phone"
12
+ PASSKEY = "passkey"
@@ -17,3 +17,4 @@ class ProjectPolicyId(Enum):
17
17
  DENY_DISPOSABLE_EMAIL = "deny-disposable-email"
18
18
  DENY_FREE_EMAIL = "deny-free-email"
19
19
  DENY_CORPORATE_EMAIL = "deny-corporate-email"
20
+ PASSKEY = "passkey"
@@ -190,6 +190,7 @@ from .policy_session_limit import PolicySessionLimit
190
190
  from .policy_user_limit import PolicyUserLimit
191
191
  from .policy_membership_privacy import PolicyMembershipPrivacy
192
192
  from .policy_mfa_factors import PolicyMfaFactors
193
+ from .policy_passkey import PolicyPasskey
193
194
  from .platform_web import PlatformWeb
194
195
  from .platform_apple import PlatformApple
195
196
  from .platform_android import PlatformAndroid
@@ -208,6 +209,10 @@ from .proxy_rule import ProxyRule
208
209
  from .email_template import EmailTemplate
209
210
  from .mfa_challenge import MfaChallenge
210
211
  from .mfa_challenge_secret import MfaChallengeSecret
212
+ from .token_secret import TokenSecret
213
+ from .passkey import Passkey
214
+ from .passkey_challenge import PasskeyChallenge
215
+ from .passkey_list import PasskeyList
211
216
  from .mfa_recovery_codes import MfaRecoveryCodes
212
217
  from .mfa_type import MfaType
213
218
  from .mfa_factors import MfaFactors
@@ -493,6 +498,7 @@ __all__ = [
493
498
  'PolicyUserLimit',
494
499
  'PolicyMembershipPrivacy',
495
500
  'PolicyMfaFactors',
501
+ 'PolicyPasskey',
496
502
  'PlatformWeb',
497
503
  'PlatformApple',
498
504
  'PlatformAndroid',
@@ -511,6 +517,10 @@ __all__ = [
511
517
  'EmailTemplate',
512
518
  'MfaChallenge',
513
519
  'MfaChallengeSecret',
520
+ 'TokenSecret',
521
+ 'Passkey',
522
+ 'PasskeyChallenge',
523
+ 'PasskeyList',
514
524
  'MfaRecoveryCodes',
515
525
  'MfaType',
516
526
  'MfaFactors',
@@ -0,0 +1,29 @@
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
+
7
+ class Passkey(AppwriteModel):
8
+ """
9
+ Passkey
10
+
11
+ Attributes
12
+ ----------
13
+ id : str
14
+ Passkey ID.
15
+ createdat : str
16
+ Passkey creation date in ISO 8601 format.
17
+ updatedat : str
18
+ Passkey update date in ISO 8601 format.
19
+ name : str
20
+ Passkey name.
21
+ accessedat : str
22
+ Most recent sign-in with this passkey in ISO 8601 format. Empty until the passkey is used to sign in.
23
+ """
24
+
25
+ id: str = Field(..., alias='$id')
26
+ createdat: str = Field(..., alias='$createdAt')
27
+ updatedat: str = Field(..., alias='$updatedAt')
28
+ name: str = Field(..., alias='name')
29
+ accessedat: str = Field(..., alias='accessedAt')
@@ -0,0 +1,29 @@
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
+
7
+ class PasskeyChallenge(AppwriteModel):
8
+ """
9
+ Passkey Challenge
10
+
11
+ Attributes
12
+ ----------
13
+ id : str
14
+ Challenge ID. When signing in, pass it back with the credential to receive a token.
15
+ createdat : str
16
+ Challenge creation date in ISO 8601 format.
17
+ passkeyid : str
18
+ ID of the passkey being registered. Empty for sign-in challenges.
19
+ expire : str
20
+ Challenge expiration date in ISO 8601 format.
21
+ publickey : Dict[str, Any]
22
+ WebAuthn options in JSON form. Pass them to `PublicKeyCredential.parseCreationOptionsFromJSON()` when registering, or `PublicKeyCredential.parseRequestOptionsFromJSON()` when signing in.
23
+ """
24
+
25
+ id: str = Field(..., alias='$id')
26
+ createdat: str = Field(..., alias='$createdAt')
27
+ passkeyid: str = Field(..., alias='passkeyId')
28
+ expire: str = Field(..., alias='expire')
29
+ publickey: Dict[str, Any] = Field(..., alias='publicKey')
@@ -0,0 +1,21 @@
1
+ from typing import Any, Dict, List, Optional, Union, cast
2
+ from pydantic import Field, PrivateAttr
3
+
4
+ from .base_model import AppwriteModel
5
+ from .passkey import Passkey
6
+
7
+
8
+ class PasskeyList(AppwriteModel):
9
+ """
10
+ Passkeys List
11
+
12
+ Attributes
13
+ ----------
14
+ total : float
15
+ Total number of passkeys that matched your query.
16
+ passkeys : List[Passkey]
17
+ List of passkeys.
18
+ """
19
+
20
+ total: float = Field(..., alias='total')
21
+ passkeys: List[Passkey] = Field(..., alias='passkeys')
@@ -17,6 +17,7 @@ from .policy_deny_aliased_email import PolicyDenyAliasedEmail
17
17
  from .policy_deny_disposable_email import PolicyDenyDisposableEmail
18
18
  from .policy_deny_free_email import PolicyDenyFreeEmail
19
19
  from .policy_deny_corporate_email import PolicyDenyCorporateEmail
20
+ from .policy_passkey import PolicyPasskey
20
21
 
21
22
 
22
23
  class PolicyList(AppwriteModel):
@@ -27,7 +28,7 @@ class PolicyList(AppwriteModel):
27
28
  ----------
28
29
  total : float
29
30
  Total number of policies in the given project.
30
- policies : List[Union[PolicyPasswordDictionary, PolicyPasswordHistory, PolicyPasswordStrength, PolicyPasswordPersonalData, PolicySessionAlert, PolicySessionDuration, PolicySessionInvalidation, PolicySessionLimit, PolicyUserLimit, PolicyMembershipPrivacy, PolicyMfaFactors, PolicyDenyAliasedEmail, PolicyDenyDisposableEmail, PolicyDenyFreeEmail, PolicyDenyCorporateEmail]]
31
+ policies : List[Union[PolicyPasswordDictionary, PolicyPasswordHistory, PolicyPasswordStrength, PolicyPasswordPersonalData, PolicySessionAlert, PolicySessionDuration, PolicySessionInvalidation, PolicySessionLimit, PolicyUserLimit, PolicyMembershipPrivacy, PolicyMfaFactors, PolicyDenyAliasedEmail, PolicyDenyDisposableEmail, PolicyDenyFreeEmail, PolicyDenyCorporateEmail, PolicyPasskey]]
31
32
  List of policies.
32
33
  """
33
34
 
@@ -49,5 +50,6 @@ class PolicyList(AppwriteModel):
49
50
  PolicyDenyDisposableEmail,
50
51
  PolicyDenyFreeEmail,
51
52
  PolicyDenyCorporateEmail,
53
+ PolicyPasskey,
52
54
  ]
53
55
  ] = Field(..., alias='policies')
@@ -0,0 +1,23 @@
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
+
7
+ class PolicyPasskey(AppwriteModel):
8
+ """
9
+ Policy Passkey
10
+
11
+ Attributes
12
+ ----------
13
+ id : str
14
+ Policy ID.
15
+ rpid : str
16
+ Relying party ID passkeys are bound to. Empty until configured.
17
+ origins : List[Any]
18
+ Web origins passkeys work on, from the project&#039;s platforms on the relying party ID and a localhost web platform. Read-only.
19
+ """
20
+
21
+ id: str = Field(..., alias='$id')
22
+ rpid: str = Field(..., alias='rpId')
23
+ origins: List[Any] = Field(..., alias='origins')
@@ -0,0 +1,32 @@
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
+
7
+ class TokenSecret(AppwriteModel):
8
+ """
9
+ Token Secret
10
+
11
+ Attributes
12
+ ----------
13
+ id : str
14
+ Token ID.
15
+ createdat : str
16
+ Token creation date in ISO 8601 format.
17
+ userid : str
18
+ User ID.
19
+ secret : str
20
+ Token secret key. Exchange it for a session with the create session endpoint.
21
+ expire : str
22
+ Token expiration date in ISO 8601 format.
23
+ phrase : str
24
+ Security phrase of a token. Empty if security phrase was not requested when creating a token. It includes randomly generated phrase which is also sent in the external resource such as email.
25
+ """
26
+
27
+ id: str = Field(..., alias='$id')
28
+ createdat: str = Field(..., alias='$createdAt')
29
+ userid: str = Field(..., alias='userId')
30
+ secret: str = Field(..., alias='secret')
31
+ expire: str = Field(..., alias='expire')
32
+ phrase: str = Field(..., alias='phrase')
@@ -17,10 +17,14 @@ from ..models.mfa_challenge import MfaChallenge
17
17
  from ..models.session import Session
18
18
  from ..models.mfa_factors import MfaFactors
19
19
  from ..models.mfa_recovery_codes import MfaRecoveryCodes
20
+ from ..models.passkey_list import PasskeyList
21
+ from ..models.passkey_challenge import PasskeyChallenge
22
+ from ..models.passkey import Passkey
20
23
  from ..models.preferences import Preferences
21
24
  from ..models.token import Token
22
25
  from ..models.session_list import SessionList
23
26
  from ..enums.o_auth_provider import OAuthProvider
27
+ from ..models.token_secret import TokenSecret
24
28
 
25
29
  T = TypeVar('T')
26
30
 
@@ -1014,6 +1018,270 @@ class Account(Service):
1014
1018
 
1015
1019
  return User.with_data(response, model_type)
1016
1020
 
1021
+ def list_passkeys(
1022
+ self,
1023
+ queries: Optional[List[str]] = None,
1024
+ total: Optional[bool] = None,
1025
+ ) -> PasskeyList:
1026
+ """
1027
+ Get the list of verified passkeys registered by the currently logged in user.
1028
+
1029
+ Parameters
1030
+ ----------
1031
+ queries : Optional[List[str]]
1032
+ Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter and order on the following attributes: $id, $createdAt, $updatedAt, name, accessedAt
1033
+ total : Optional[bool]
1034
+ When set to false, the total count returned will be 0 and will not be calculated.
1035
+ Returns
1036
+ -------
1037
+ PasskeyList
1038
+ API response as a typed Pydantic model
1039
+
1040
+ Raises
1041
+ ------
1042
+ AppwriteException
1043
+ If API request fails
1044
+ """
1045
+
1046
+ api_path = '/account/passkeys'
1047
+ api_params = {}
1048
+ if queries is not None:
1049
+ api_params['queries'] = self._normalize_value(queries)
1050
+ if total is not None:
1051
+ api_params['total'] = self._normalize_value(total)
1052
+
1053
+ response = self.client.call(
1054
+ 'get',
1055
+ api_path,
1056
+ {
1057
+ 'X-Appwrite-Project': self.client.get_config('project'),
1058
+ 'accept': 'application/json',
1059
+ },
1060
+ api_params,
1061
+ )
1062
+
1063
+ return self._parse_response(response, model=PasskeyList)
1064
+
1065
+ def create_passkey(
1066
+ self,
1067
+ passkey_id: Optional[str] = None,
1068
+ name: Optional[str] = None,
1069
+ ) -> PasskeyChallenge:
1070
+ """
1071
+ Start registering a passkey for the currently logged in user. The session must have signed in or completed an MFA challenge within the last 10 minutes. Pass the returned `publicKey` options to `navigator.credentials.create()`, then complete the registration with [Update passkey verification](/docs/references/cloud/client-web/account#updatePasskeyVerification). The passkey stays pending until verified, and the challenge expires after 5 minutes.
1072
+
1073
+ Parameters
1074
+ ----------
1075
+ passkey_id : Optional[str]
1076
+ Passkey ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
1077
+ name : Optional[str]
1078
+ Passkey name, shown when listing passkeys. Max length: 128 chars.
1079
+ Returns
1080
+ -------
1081
+ PasskeyChallenge
1082
+ API response as a typed Pydantic model
1083
+
1084
+ Raises
1085
+ ------
1086
+ AppwriteException
1087
+ If API request fails
1088
+ """
1089
+
1090
+ api_path = '/account/passkeys'
1091
+ api_params = {}
1092
+ if passkey_id is not None:
1093
+ api_params['passkeyId'] = self._normalize_value(passkey_id)
1094
+ if name is not None:
1095
+ api_params['name'] = self._normalize_value(name)
1096
+
1097
+ response = self.client.call(
1098
+ 'post',
1099
+ api_path,
1100
+ {
1101
+ 'X-Appwrite-Project': self.client.get_config('project'),
1102
+ 'content-type': 'application/json',
1103
+ 'accept': 'application/json',
1104
+ },
1105
+ api_params,
1106
+ )
1107
+
1108
+ return self._parse_response(response, model=PasskeyChallenge)
1109
+
1110
+ def get_passkey(
1111
+ self,
1112
+ passkey_id: str,
1113
+ ) -> Passkey:
1114
+ """
1115
+ Get a verified passkey of the currently logged in user by its unique ID.
1116
+
1117
+ Parameters
1118
+ ----------
1119
+ passkey_id : str
1120
+ Passkey ID.
1121
+ Returns
1122
+ -------
1123
+ Passkey
1124
+ API response as a typed Pydantic model
1125
+
1126
+ Raises
1127
+ ------
1128
+ AppwriteException
1129
+ If API request fails
1130
+ """
1131
+
1132
+ api_path = '/account/passkeys/{passkeyId}'
1133
+ api_params = {}
1134
+ if passkey_id is None or passkey_id == '':
1135
+ raise AppwriteException('Missing required parameter: "passkey_id"')
1136
+ api_path = api_path.replace('{passkeyId}', str(self._normalize_value(passkey_id)))
1137
+
1138
+ response = self.client.call(
1139
+ 'get',
1140
+ api_path,
1141
+ {
1142
+ 'X-Appwrite-Project': self.client.get_config('project'),
1143
+ 'accept': 'application/json',
1144
+ },
1145
+ api_params,
1146
+ )
1147
+
1148
+ return self._parse_response(response, model=Passkey)
1149
+
1150
+ def update_passkey(
1151
+ self,
1152
+ passkey_id: str,
1153
+ name: str,
1154
+ ) -> Passkey:
1155
+ """
1156
+ Rename a passkey of the currently logged in user.
1157
+
1158
+ Parameters
1159
+ ----------
1160
+ passkey_id : str
1161
+ Passkey ID.
1162
+ name : str
1163
+ Passkey name. Max length: 128 chars.
1164
+ Returns
1165
+ -------
1166
+ Passkey
1167
+ API response as a typed Pydantic model
1168
+
1169
+ Raises
1170
+ ------
1171
+ AppwriteException
1172
+ If API request fails
1173
+ """
1174
+
1175
+ api_path = '/account/passkeys/{passkeyId}'
1176
+ api_params = {}
1177
+ if passkey_id is None or passkey_id == '':
1178
+ raise AppwriteException('Missing required parameter: "passkey_id"')
1179
+ if name is None:
1180
+ raise AppwriteException('Missing required parameter: "name"')
1181
+ api_path = api_path.replace('{passkeyId}', str(self._normalize_value(passkey_id)))
1182
+ api_params['name'] = self._normalize_value(name)
1183
+
1184
+ response = self.client.call(
1185
+ 'patch',
1186
+ api_path,
1187
+ {
1188
+ 'X-Appwrite-Project': self.client.get_config('project'),
1189
+ 'content-type': 'application/json',
1190
+ 'accept': 'application/json',
1191
+ },
1192
+ api_params,
1193
+ )
1194
+
1195
+ return self._parse_response(response, model=Passkey)
1196
+
1197
+ def delete_passkey(
1198
+ self,
1199
+ passkey_id: str,
1200
+ ) -> Dict[str, Any]:
1201
+ """
1202
+ Delete a passkey from the currently logged in user. The passkey can no longer be used to sign in, although it may remain stored on the user's device. The session must have signed in or completed an MFA challenge within the last 10 minutes.
1203
+
1204
+ Parameters
1205
+ ----------
1206
+ passkey_id : str
1207
+ Passkey ID.
1208
+ Returns
1209
+ -------
1210
+ Dict[str, Any]
1211
+ API response as a dictionary
1212
+
1213
+ Raises
1214
+ ------
1215
+ AppwriteException
1216
+ If API request fails
1217
+ """
1218
+
1219
+ api_path = '/account/passkeys/{passkeyId}'
1220
+ api_params = {}
1221
+ if passkey_id is None or passkey_id == '':
1222
+ raise AppwriteException('Missing required parameter: "passkey_id"')
1223
+ api_path = api_path.replace('{passkeyId}', str(self._normalize_value(passkey_id)))
1224
+
1225
+ response = self.client.call(
1226
+ 'delete',
1227
+ api_path,
1228
+ {
1229
+ 'X-Appwrite-Project': self.client.get_config('project'),
1230
+ 'content-type': 'application/json',
1231
+ 'accept': 'application/json',
1232
+ },
1233
+ api_params,
1234
+ )
1235
+
1236
+ return response
1237
+
1238
+ def update_passkey_verification(
1239
+ self,
1240
+ passkey_id: str,
1241
+ credential: Dict[str, Any],
1242
+ ) -> Passkey:
1243
+ """
1244
+ Complete a passkey registration started with [Create passkey](/docs/references/cloud/client-web/account#createPasskey). Pass the JSON form of the credential returned by `navigator.credentials.create()`, for example `credential.toJSON()`. Each registration can be verified once; a failed attempt requires starting it again.
1245
+
1246
+ Parameters
1247
+ ----------
1248
+ passkey_id : str
1249
+ Passkey ID.
1250
+ credential : Dict[str, Any]
1251
+ Registration credential returned by the authenticator, in the JSON form produced by `PublicKeyCredential.toJSON()`.
1252
+ Returns
1253
+ -------
1254
+ Passkey
1255
+ API response as a typed Pydantic model
1256
+
1257
+ Raises
1258
+ ------
1259
+ AppwriteException
1260
+ If API request fails
1261
+ """
1262
+
1263
+ api_path = '/account/passkeys/{passkeyId}/verification'
1264
+ api_params = {}
1265
+ if passkey_id is None or passkey_id == '':
1266
+ raise AppwriteException('Missing required parameter: "passkey_id"')
1267
+ if credential is None:
1268
+ raise AppwriteException('Missing required parameter: "credential"')
1269
+ api_path = api_path.replace('{passkeyId}', str(self._normalize_value(passkey_id)))
1270
+ api_params['credential'] = self._normalize_value(credential)
1271
+
1272
+ response = self.client.call(
1273
+ 'put',
1274
+ api_path,
1275
+ {
1276
+ 'X-Appwrite-Project': self.client.get_config('project'),
1277
+ 'content-type': 'application/json',
1278
+ 'accept': 'application/json',
1279
+ },
1280
+ api_params,
1281
+ )
1282
+
1283
+ return self._parse_response(response, model=Passkey)
1284
+
1017
1285
  def update_password(
1018
1286
  self,
1019
1287
  password: str,
@@ -1928,6 +2196,85 @@ class Account(Service):
1928
2196
 
1929
2197
  return response
1930
2198
 
2199
+ def create_passkey_token(
2200
+ self,
2201
+ ) -> PasskeyChallenge:
2202
+ """
2203
+ Start signing in with a passkey. No email or user ID is needed: pass the returned `publicKey` options to `navigator.credentials.get()` and the user picks one of their passkeys. Then call [Update passkey token](/docs/references/cloud/client-web/account#updatePasskeyToken) with the credential to receive a token, and exchange it with [Create session](/docs/references/cloud/client-web/account#createSession). The challenge expires after 5 minutes.
2204
+ Returns
2205
+ -------
2206
+ PasskeyChallenge
2207
+ API response as a typed Pydantic model
2208
+
2209
+ Raises
2210
+ ------
2211
+ AppwriteException
2212
+ If API request fails
2213
+ """
2214
+
2215
+ api_path = '/account/tokens/passkey'
2216
+ api_params = {}
2217
+
2218
+ response = self.client.call(
2219
+ 'post',
2220
+ api_path,
2221
+ {
2222
+ 'X-Appwrite-Project': self.client.get_config('project'),
2223
+ 'content-type': 'application/json',
2224
+ 'accept': 'application/json',
2225
+ },
2226
+ api_params,
2227
+ )
2228
+
2229
+ return self._parse_response(response, model=PasskeyChallenge)
2230
+
2231
+ def update_passkey_token(
2232
+ self,
2233
+ challenge_id: str,
2234
+ credential: Dict[str, Any],
2235
+ ) -> TokenSecret:
2236
+ """
2237
+ Complete a passkey sign-in started with [Create passkey token](/docs/references/cloud/client-web/account#createPasskeyToken). Pass the challenge ID and the JSON form of the credential returned by `navigator.credentials.get()`, for example `credential.toJSON()`. The returned token includes its secret and expires after 1 minute: exchange it for a session with [Create session](/docs/references/cloud/client-web/account#createSession). Passkeys require user verification, so the session also satisfies MFA. Each challenge can only be used once.
2238
+
2239
+ Parameters
2240
+ ----------
2241
+ challenge_id : str
2242
+ Challenge ID returned by createPasskeyToken.
2243
+ credential : Dict[str, Any]
2244
+ Authentication credential returned by the authenticator, in the JSON form produced by `PublicKeyCredential.toJSON()`.
2245
+ Returns
2246
+ -------
2247
+ TokenSecret
2248
+ API response as a typed Pydantic model
2249
+
2250
+ Raises
2251
+ ------
2252
+ AppwriteException
2253
+ If API request fails
2254
+ """
2255
+
2256
+ api_path = '/account/tokens/passkey'
2257
+ api_params = {}
2258
+ if challenge_id is None:
2259
+ raise AppwriteException('Missing required parameter: "challenge_id"')
2260
+ if credential is None:
2261
+ raise AppwriteException('Missing required parameter: "credential"')
2262
+ api_params['challengeId'] = self._normalize_value(challenge_id)
2263
+ api_params['credential'] = self._normalize_value(credential)
2264
+
2265
+ response = self.client.call(
2266
+ 'put',
2267
+ api_path,
2268
+ {
2269
+ 'X-Appwrite-Project': self.client.get_config('project'),
2270
+ 'content-type': 'application/json',
2271
+ 'accept': 'application/json',
2272
+ },
2273
+ api_params,
2274
+ )
2275
+
2276
+ return self._parse_response(response, model=TokenSecret)
2277
+
1931
2278
  def create_phone_token(
1932
2279
  self,
1933
2280
  user_id: str,