appwrite 24.2.0__tar.gz → 24.3.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.
- {appwrite-24.2.0 → appwrite-24.3.0}/PKG-INFO +2 -2
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/client.py +2 -2
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/__init__.py +8 -0
- appwrite-24.3.0/appwrite/models/passkey.py +29 -0
- appwrite-24.3.0/appwrite/models/passkey_challenge.py +29 -0
- appwrite-24.3.0/appwrite/models/passkey_list.py +21 -0
- appwrite-24.3.0/appwrite/models/token_secret.py +32 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/account.py +347 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/project.py +41 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/users.py +198 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite.egg-info/PKG-INFO +2 -2
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite.egg-info/SOURCES.txt +4 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/pyproject.toml +1 -1
- {appwrite-24.2.0 → appwrite-24.3.0}/setup.py +2 -2
- {appwrite-24.2.0 → appwrite-24.3.0}/LICENSE +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/README.md +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/__init__.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/encoders/__init__.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/encoders/value_class_encoder.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/__init__.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/adapter.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/attribute_status.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/authentication_factor.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/authenticator_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/backup_services.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/billing_plan_group.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/browser.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/browser_permission.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/browser_theme.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/build_runtime.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/column_status.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/compression.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/credit_card.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/database_status.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/database_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/databases_index_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/deployment_download_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/deployment_status.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/documents_db_index_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/embedding_model.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/execution_method.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/execution_resource_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/execution_status.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/execution_trigger.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/flag.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/framework.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/image_format.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/image_gravity.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/index_status.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/invalidation_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/message_priority.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/message_status.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/messaging_provider_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/o_auth2_google_prompt.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/o_auth2_oidc_prompt.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/o_auth_provider.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/order_by.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/organization_key_scopes.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/password_hash.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/platform_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/project_auth_method_id.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/project_email_template_id.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/project_email_template_locale.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/project_key_scopes.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/project_o_auth2_google_prompt.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/project_o_auth2_oidc_prompt.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/project_o_auth_provider_id.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/project_policy_id.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/project_protocol_id.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/project_service_id.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/project_smtp_secure.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/proxy_resource_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/proxy_rule_deployment_resource_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/proxy_rule_status.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/region.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/relation_mutate.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/relationship_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/runtime.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/smtp_encryption.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/status_code.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/tables_db_index_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/template_reference_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/timezone.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/vcs_reference_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/enums/vectors_db_index_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/exception.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/id.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/input_file.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/activity_event.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/activity_event_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/additional_resource.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/algo_argon2.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/algo_bcrypt.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/algo_md5.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/algo_phpass.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/algo_scrypt.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/algo_scrypt_modified.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/algo_sha.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/app.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/app_installation.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/app_installation_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/app_key.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/app_key_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/app_scope.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/app_scope_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/app_secret.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/app_secret_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/app_secret_plaintext.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/apps_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_bigint.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_boolean.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_datetime.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_email.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_enum.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_float.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_integer.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_ip.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_line.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_longtext.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_mediumtext.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_object.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_point.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_polygon.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_relationship.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_string.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_text.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_url.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_varchar.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/attribute_vector.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/backup_archive.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/backup_archive_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/backup_policy.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/backup_policy_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/backup_restoration.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/backup_restoration_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/base_model.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/billing_limits.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/billing_plan.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/billing_plan_addon.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/billing_plan_addon_details.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/billing_plan_dedicated_database_limits.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/billing_plan_limits.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/billing_plan_supported_addons.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/block.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/bucket.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/bucket_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/collection.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/collection_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_bigint.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_boolean.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_datetime.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_email.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_enum.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_float.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_index.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_index_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_integer.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_ip.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_line.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_longtext.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_mediumtext.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_point.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_polygon.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_relationship.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_string.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_text.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_url.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/column_varchar.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/continent.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/continent_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/country.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/country_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/currency.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/currency_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/database.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/database_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/database_migration.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/database_migration_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/database_status.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/database_status_connections.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/database_status_replica.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/database_status_volume.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_backup.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_backup_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_backup_storage.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_branch.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_branch_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_execution.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_execution_column.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_extensions.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_member.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_operation.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_operation_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_pitr_windows.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_pooler.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_replicas.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_restoration.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_restoration_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_specification.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_specification_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dedicated_database_specification_pricing.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/deployment.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/deployment_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/dev_key.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/document.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/document_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/email_template.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/email_template_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/embedding.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/embedding_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/ephemeral_key.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/execution.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/execution_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/file.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/file_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/framework.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/framework_adapter.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/framework_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/function.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/function_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/headers.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/identity.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/identity_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/index.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/index_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/insight.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/insight_cta.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/insight_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/jwt.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/key.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/key_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/language.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/language_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/locale.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/locale_code.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/locale_code_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/log.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/log_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/membership.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/membership_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/message.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/message_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/mfa_challenge.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/mfa_challenge_secret.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/mfa_factors.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/mfa_recovery_codes.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/mfa_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/mock_number.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/mock_number_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_amazon.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_apple.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_appwrite.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_auth0.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_authentik.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_autodesk.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_bitbucket.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_bitly.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_box.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_cloudflare.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_dailymotion.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_discord.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_disqus.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_dropbox.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_etsy.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_facebook.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_figma.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_fusion_auth.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_github.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_gitlab.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_google.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_hugging_face.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_keycloak.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_kick.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_linkedin.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_microsoft.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_notion.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_oidc.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_okta.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_paypal.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_podio.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_provider_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_resend.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_salesforce.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_slack.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_spotify.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_stripe.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_tradeshift.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_twitch.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_word_press.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_x.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_yahoo.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_yandex.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_zoho.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/o_auth2_zoom.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/oauth2_approve.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/oauth2_authorize.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/oauth2_consent.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/oauth2_consent_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/oauth2_consent_token.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/oauth2_consent_token_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/oauth2_device_authorization.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/oauth2_grant.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/oauth2_organization.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/oauth2_organization_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/oauth2_par.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/oauth2_project.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/oauth2_project_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/oauth2_reject.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/oauth2_token.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/organization.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/phone.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/phone_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/platform_android.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/platform_apple.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/platform_linux.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/platform_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/platform_web.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/platform_windows.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/policy_deny_aliased_email.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/policy_deny_corporate_email.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/policy_deny_disposable_email.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/policy_deny_free_email.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/policy_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/policy_membership_privacy.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/policy_mfa_factors.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/policy_password_dictionary.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/policy_password_history.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/policy_password_personal_data.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/policy_password_strength.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/policy_session_alert.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/policy_session_duration.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/policy_session_invalidation.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/policy_session_limit.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/policy_user_limit.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/postgres_extension.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/preferences.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/presence.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/presence_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/program.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/project.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/project_auth_method.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/project_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/project_protocol.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/project_service.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/provider.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/provider_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/proxy_invalidation.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/proxy_rule.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/proxy_rule_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/report.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/report_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/resource_token.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/resource_token_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/row.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/row_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/runtime.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/runtime_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/session.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/session_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/site.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/site_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/specification.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/specification_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/subscriber.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/subscriber_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/table.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/table_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/target.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/target_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/team.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/team_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/token.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/topic.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/topic_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/transaction.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/transaction_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/usage_billing_plan.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/user.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/user_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/variable.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/variable_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/vectorsdb_collection.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/vectorsdb_collection_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/webhook.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/models/webhook_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/operator.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/permission.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/query.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/role.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/service.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/__init__.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/activities.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/advisor.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/apps.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/avatars.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/backups.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/databases.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/documents_db.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/embeddings.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/functions.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/graphql.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/locale.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/messaging.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/mongo.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/mysql.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/oauth2.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/organization.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/postgresql.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/presences.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/proxy.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/sites.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/storage.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/tables_db.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/teams.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/tokens.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/vectors_db.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/services/webhooks.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/utils/__init__.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite/utils/deprecated.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite.egg-info/dependency_links.txt +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite.egg-info/requires.txt +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/appwrite.egg-info/top_level.txt +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/setup.cfg +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/test/test_id.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/test/test_operator.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/test/test_permission.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/test/test_query.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.0}/test/test_role.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: appwrite
|
|
3
|
-
Version: 24.
|
|
3
|
+
Version: 24.3.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/24.
|
|
6
|
+
Download-URL: https://github.com/appwrite/sdk-for-python/archive/24.3.0.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.
|
|
21
|
+
'user-agent': f'AppwritePythonSDK/24.3.0 ({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.
|
|
25
|
+
'x-sdk-version': '24.3.0',
|
|
26
26
|
'X-Appwrite-Response-Format': '2.0.0',
|
|
27
27
|
}
|
|
28
28
|
self._config = {}
|
|
@@ -208,6 +208,10 @@ from .proxy_rule import ProxyRule
|
|
|
208
208
|
from .email_template import EmailTemplate
|
|
209
209
|
from .mfa_challenge import MfaChallenge
|
|
210
210
|
from .mfa_challenge_secret import MfaChallengeSecret
|
|
211
|
+
from .token_secret import TokenSecret
|
|
212
|
+
from .passkey import Passkey
|
|
213
|
+
from .passkey_challenge import PasskeyChallenge
|
|
214
|
+
from .passkey_list import PasskeyList
|
|
211
215
|
from .mfa_recovery_codes import MfaRecoveryCodes
|
|
212
216
|
from .mfa_type import MfaType
|
|
213
217
|
from .mfa_factors import MfaFactors
|
|
@@ -511,6 +515,10 @@ __all__ = [
|
|
|
511
515
|
'EmailTemplate',
|
|
512
516
|
'MfaChallenge',
|
|
513
517
|
'MfaChallengeSecret',
|
|
518
|
+
'TokenSecret',
|
|
519
|
+
'Passkey',
|
|
520
|
+
'PasskeyChallenge',
|
|
521
|
+
'PasskeyList',
|
|
514
522
|
'MfaRecoveryCodes',
|
|
515
523
|
'MfaType',
|
|
516
524
|
'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')
|
|
@@ -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,
|
|
@@ -4467,6 +4467,47 @@ class Project(Service):
|
|
|
4467
4467
|
|
|
4468
4468
|
return self._parse_response(response, model=ProjectModel)
|
|
4469
4469
|
|
|
4470
|
+
def update_passkey_policy(
|
|
4471
|
+
self,
|
|
4472
|
+
rp_id: str,
|
|
4473
|
+
) -> ProjectModel:
|
|
4474
|
+
"""
|
|
4475
|
+
Set the relying party ID passkeys are bound to: the domain of your application. Passkeys work on the project's web platforms on that domain or its subdomains, and on the domain itself for Apple apps. A localhost web platform enables passkeys for local development without a relying party ID. The relying party ID cannot change while users have passkeys, and any change invalidates ceremonies in progress.
|
|
4476
|
+
|
|
4477
|
+
Parameters
|
|
4478
|
+
----------
|
|
4479
|
+
rp_id : str
|
|
4480
|
+
Relying party ID: the domain of your application, such as `example.com`. Use `localhost` for local development, or an empty string to unset it.
|
|
4481
|
+
Returns
|
|
4482
|
+
-------
|
|
4483
|
+
ProjectModel
|
|
4484
|
+
API response as a typed Pydantic model
|
|
4485
|
+
|
|
4486
|
+
Raises
|
|
4487
|
+
------
|
|
4488
|
+
AppwriteException
|
|
4489
|
+
If API request fails
|
|
4490
|
+
"""
|
|
4491
|
+
|
|
4492
|
+
api_path = '/project/policies/passkey'
|
|
4493
|
+
api_params = {}
|
|
4494
|
+
if rp_id is None:
|
|
4495
|
+
raise AppwriteException('Missing required parameter: "rp_id"')
|
|
4496
|
+
api_params['rpId'] = self._normalize_value(rp_id)
|
|
4497
|
+
|
|
4498
|
+
response = self.client.call(
|
|
4499
|
+
'patch',
|
|
4500
|
+
api_path,
|
|
4501
|
+
{
|
|
4502
|
+
'X-Appwrite-Project': self.client.get_config('project'),
|
|
4503
|
+
'content-type': 'application/json',
|
|
4504
|
+
'accept': 'application/json',
|
|
4505
|
+
},
|
|
4506
|
+
api_params,
|
|
4507
|
+
)
|
|
4508
|
+
|
|
4509
|
+
return self._parse_response(response, model=ProjectModel)
|
|
4510
|
+
|
|
4470
4511
|
def update_password_dictionary_policy(
|
|
4471
4512
|
self,
|
|
4472
4513
|
enabled: bool,
|