diff --git a/CHANGELOG.md b/CHANGELOG.md index 301ff5b..d98302c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Change Log +## 15.2.0 + +* Extended BuildRuntime and Runtime enums with new runtime versions (e.g., node-23/24/25, php-8.4, ruby-3.4/4.0, python-3.13/3.14, python-ml-3.13, deno-2.5/2.6, dotnet-10, java-25, swift-6.2, kotlin-2.3, bun-1.2/1.3, go-1.24/1.25/1.26). +* Added new permission scopes: schedules.read, schedules.write, and events.read. +* Added contains_any and contains_all filter helpers to the Query API (plus enhanced contains with docstrings). +* Added optional encrypt parameter to all string attribute creation methods (e.g., longtext, mediumtext, text, varchar) in Databases to support encryption at rest. +* Updated README to reflect Appwrite server compatibility version 1.8.x. +* Backward-compatible enhancements: no breaking changes. + ## 15.1.0 * Add `dart-3.10` and `flutter-3.38` to `BuildRuntime` and `Runtime` enums diff --git a/README.md b/README.md index fa3f8d4..4693d74 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![Twitter Account](https://img.shields.io/twitter/follow/appwrite?color=00acee&label=twitter&style=flat-square)](https://twitter.com/appwrite) [![Discord](https://img.shields.io/discord/564160730845151244?label=discord&style=flat-square)](https://appwrite.io/discord) -**This SDK is compatible with Appwrite server version latest. For older versions, please check [previous releases](https://github.com/appwrite/sdk-for-python/releases).** +**This SDK is compatible with Appwrite server version 1.8.x. For older versions, please check [previous releases](https://github.com/appwrite/sdk-for-python/releases).** Appwrite is an open-source backend as a service server that abstracts and simplifies complex and repetitive development tasks behind a very simple to use REST API. Appwrite aims to help you develop your apps faster and in a more secure way. Use the Python SDK to integrate your app with the Appwrite server to easily start interacting with all of Appwrite backend APIs and tools. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs) diff --git a/appwrite/client.py b/appwrite/client.py index 7409c53..629e335 100644 --- a/appwrite/client.py +++ b/appwrite/client.py @@ -15,11 +15,11 @@ def __init__(self): self._endpoint = 'https://cloud.appwrite.io/v1' self._global_headers = { 'content-type': '', - 'user-agent' : f'AppwritePythonSDK/15.1.0 ({platform.uname().system}; {platform.uname().version}; {platform.uname().machine})', + 'user-agent' : f'AppwritePythonSDK/15.2.0 ({platform.uname().system}; {platform.uname().version}; {platform.uname().machine})', 'x-sdk-name': 'Python', 'x-sdk-platform': 'server', 'x-sdk-language': 'python', - 'x-sdk-version': '15.1.0', + 'x-sdk-version': '15.2.0', 'X-Appwrite-Response-Format' : '1.8.0', } diff --git a/appwrite/enums/build_runtime.py b/appwrite/enums/build_runtime.py index 6b40fad..8fe21cb 100644 --- a/appwrite/enums/build_runtime.py +++ b/appwrite/enums/build_runtime.py @@ -8,24 +8,35 @@ class BuildRuntime(Enum): NODE_20_0 = "node-20.0" NODE_21_0 = "node-21.0" NODE_22 = "node-22" + NODE_23 = "node-23" + NODE_24 = "node-24" + NODE_25 = "node-25" PHP_8_0 = "php-8.0" PHP_8_1 = "php-8.1" PHP_8_2 = "php-8.2" PHP_8_3 = "php-8.3" + PHP_8_4 = "php-8.4" RUBY_3_0 = "ruby-3.0" RUBY_3_1 = "ruby-3.1" RUBY_3_2 = "ruby-3.2" RUBY_3_3 = "ruby-3.3" + RUBY_3_4 = "ruby-3.4" + RUBY_4_0 = "ruby-4.0" PYTHON_3_8 = "python-3.8" PYTHON_3_9 = "python-3.9" PYTHON_3_10 = "python-3.10" PYTHON_3_11 = "python-3.11" PYTHON_3_12 = "python-3.12" + PYTHON_3_13 = "python-3.13" + PYTHON_3_14 = "python-3.14" PYTHON_ML_3_11 = "python-ml-3.11" PYTHON_ML_3_12 = "python-ml-3.12" + PYTHON_ML_3_13 = "python-ml-3.13" DENO_1_40 = "deno-1.40" DENO_1_46 = "deno-1.46" DENO_2_0 = "deno-2.0" + DENO_2_5 = "deno-2.5" + DENO_2_6 = "deno-2.6" DART_2_15 = "dart-2.15" DART_2_16 = "dart-2.16" DART_2_17 = "dart-2.17" @@ -41,25 +52,34 @@ class BuildRuntime(Enum): DOTNET_6_0 = "dotnet-6.0" DOTNET_7_0 = "dotnet-7.0" DOTNET_8_0 = "dotnet-8.0" + DOTNET_10 = "dotnet-10" JAVA_8_0 = "java-8.0" JAVA_11_0 = "java-11.0" JAVA_17_0 = "java-17.0" JAVA_18_0 = "java-18.0" JAVA_21_0 = "java-21.0" JAVA_22 = "java-22" + JAVA_25 = "java-25" SWIFT_5_5 = "swift-5.5" SWIFT_5_8 = "swift-5.8" SWIFT_5_9 = "swift-5.9" SWIFT_5_10 = "swift-5.10" + SWIFT_6_2 = "swift-6.2" KOTLIN_1_6 = "kotlin-1.6" KOTLIN_1_8 = "kotlin-1.8" KOTLIN_1_9 = "kotlin-1.9" KOTLIN_2_0 = "kotlin-2.0" + KOTLIN_2_3 = "kotlin-2.3" CPP_17 = "cpp-17" CPP_20 = "cpp-20" BUN_1_0 = "bun-1.0" BUN_1_1 = "bun-1.1" + BUN_1_2 = "bun-1.2" + BUN_1_3 = "bun-1.3" GO_1_23 = "go-1.23" + GO_1_24 = "go-1.24" + GO_1_25 = "go-1.25" + GO_1_26 = "go-1.26" STATIC_1 = "static-1" FLUTTER_3_24 = "flutter-3.24" FLUTTER_3_27 = "flutter-3.27" diff --git a/appwrite/enums/runtime.py b/appwrite/enums/runtime.py index 2bc8552..171dbd9 100644 --- a/appwrite/enums/runtime.py +++ b/appwrite/enums/runtime.py @@ -8,24 +8,35 @@ class Runtime(Enum): NODE_20_0 = "node-20.0" NODE_21_0 = "node-21.0" NODE_22 = "node-22" + NODE_23 = "node-23" + NODE_24 = "node-24" + NODE_25 = "node-25" PHP_8_0 = "php-8.0" PHP_8_1 = "php-8.1" PHP_8_2 = "php-8.2" PHP_8_3 = "php-8.3" + PHP_8_4 = "php-8.4" RUBY_3_0 = "ruby-3.0" RUBY_3_1 = "ruby-3.1" RUBY_3_2 = "ruby-3.2" RUBY_3_3 = "ruby-3.3" + RUBY_3_4 = "ruby-3.4" + RUBY_4_0 = "ruby-4.0" PYTHON_3_8 = "python-3.8" PYTHON_3_9 = "python-3.9" PYTHON_3_10 = "python-3.10" PYTHON_3_11 = "python-3.11" PYTHON_3_12 = "python-3.12" + PYTHON_3_13 = "python-3.13" + PYTHON_3_14 = "python-3.14" PYTHON_ML_3_11 = "python-ml-3.11" PYTHON_ML_3_12 = "python-ml-3.12" + PYTHON_ML_3_13 = "python-ml-3.13" DENO_1_40 = "deno-1.40" DENO_1_46 = "deno-1.46" DENO_2_0 = "deno-2.0" + DENO_2_5 = "deno-2.5" + DENO_2_6 = "deno-2.6" DART_2_15 = "dart-2.15" DART_2_16 = "dart-2.16" DART_2_17 = "dart-2.17" @@ -41,25 +52,34 @@ class Runtime(Enum): DOTNET_6_0 = "dotnet-6.0" DOTNET_7_0 = "dotnet-7.0" DOTNET_8_0 = "dotnet-8.0" + DOTNET_10 = "dotnet-10" JAVA_8_0 = "java-8.0" JAVA_11_0 = "java-11.0" JAVA_17_0 = "java-17.0" JAVA_18_0 = "java-18.0" JAVA_21_0 = "java-21.0" JAVA_22 = "java-22" + JAVA_25 = "java-25" SWIFT_5_5 = "swift-5.5" SWIFT_5_8 = "swift-5.8" SWIFT_5_9 = "swift-5.9" SWIFT_5_10 = "swift-5.10" + SWIFT_6_2 = "swift-6.2" KOTLIN_1_6 = "kotlin-1.6" KOTLIN_1_8 = "kotlin-1.8" KOTLIN_1_9 = "kotlin-1.9" KOTLIN_2_0 = "kotlin-2.0" + KOTLIN_2_3 = "kotlin-2.3" CPP_17 = "cpp-17" CPP_20 = "cpp-20" BUN_1_0 = "bun-1.0" BUN_1_1 = "bun-1.1" + BUN_1_2 = "bun-1.2" + BUN_1_3 = "bun-1.3" GO_1_23 = "go-1.23" + GO_1_24 = "go-1.24" + GO_1_25 = "go-1.25" + GO_1_26 = "go-1.26" STATIC_1 = "static-1" FLUTTER_3_24 = "flutter-3.24" FLUTTER_3_27 = "flutter-3.27" diff --git a/appwrite/enums/scopes.py b/appwrite/enums/scopes.py index 193322a..100c9cb 100644 --- a/appwrite/enums/scopes.py +++ b/appwrite/enums/scopes.py @@ -49,6 +49,8 @@ class Scopes(Enum): TARGETS_WRITE = "targets.write" RULES_READ = "rules.read" RULES_WRITE = "rules.write" + SCHEDULES_READ = "schedules.read" + SCHEDULES_WRITE = "schedules.write" MIGRATIONS_READ = "migrations.read" MIGRATIONS_WRITE = "migrations.write" VCS_READ = "vcs.read" @@ -64,3 +66,4 @@ class Scopes(Enum): RESTORATIONS_WRITE = "restorations.write" DOMAINS_READ = "domains.read" DOMAINS_WRITE = "domains.write" + EVENTS_READ = "events.read" diff --git a/appwrite/query.py b/appwrite/query.py index 1693189..c223a4e 100644 --- a/appwrite/query.py +++ b/appwrite/query.py @@ -140,8 +140,32 @@ def offset(offset): @staticmethod def contains(attribute, value): + """ + Filter resources where attribute contains the specified value. + For string attributes, checks if the string contains the substring. + + Note: For array attributes, use contains_any() or contains_all() instead. + """ return str(Query("contains", attribute, value)) + @staticmethod + def contains_any(attribute, value): + """ + Filter resources where attribute contains ANY of the specified values. + For array and relationship attributes, matches documents where the attribute + contains at least one of the given values. + """ + return str(Query("containsAny", attribute, value)) + + @staticmethod + def contains_all(attribute, value): + """ + Filter resources where attribute contains ALL of the specified values. + For array and relationship attributes, matches documents where the attribute + contains every one of the given values. + """ + return str(Query("containsAll", attribute, value)) + @staticmethod def not_contains(attribute, value): return str(Query("notContains", attribute, value)) diff --git a/appwrite/services/activities.py b/appwrite/services/activities.py new file mode 100644 index 0000000..97a6af1 --- /dev/null +++ b/appwrite/services/activities.py @@ -0,0 +1,70 @@ +from ..service import Service +from typing import List, Dict, Any, Optional +from ..exception import AppwriteException +from appwrite.utils.deprecated import deprecated + +class Activities(Service): + + def __init__(self, client) -> None: + super(Activities, self).__init__(client) + + def list_events(self, queries: Optional[str] = None) -> Dict[str, Any]: + """ + List all events for selected filters. + + Parameters + ---------- + queries : Optional[str] + Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on attributes such as userId, teamId, etc. + + Returns + ------- + Dict[str, Any] + API response as a dictionary + + Raises + ------ + AppwriteException + If API request fails + """ + + api_path = '/activities/events' + api_params = {} + + if queries is not None: + api_params['queries'] = queries + + return self.client.call('get', api_path, { + }, api_params) + + def get_event(self, event_id: str) -> Dict[str, Any]: + """ + Get event by ID. + + + Parameters + ---------- + event_id : str + Event ID. + + Returns + ------- + Dict[str, Any] + API response as a dictionary + + Raises + ------ + AppwriteException + If API request fails + """ + + api_path = '/activities/events/{eventId}' + api_params = {} + if event_id is None: + raise AppwriteException('Missing required parameter: "event_id"') + + api_path = api_path.replace('{eventId}', event_id) + + + return self.client.call('get', api_path, { + }, api_params) diff --git a/appwrite/services/databases.py b/appwrite/services/databases.py index b2a834a..76dd142 100644 --- a/appwrite/services/databases.py +++ b/appwrite/services/databases.py @@ -1700,7 +1700,7 @@ def update_line_attribute(self, database_id: str, collection_id: str, key: str, 'content-type': 'application/json', }, api_params) - def create_longtext_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: Optional[str] = None, array: Optional[bool] = None) -> Dict[str, Any]: + def create_longtext_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: Optional[str] = None, array: Optional[bool] = None, encrypt: Optional[bool] = None) -> Dict[str, Any]: """ Create a longtext attribute. @@ -1719,6 +1719,8 @@ def create_longtext_attribute(self, database_id: str, collection_id: str, key: s Default value for attribute when not provided. Cannot be set when attribute is required. array : Optional[bool] Is attribute an array? + encrypt : Optional[bool] + Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried. Returns ------- @@ -1753,6 +1755,8 @@ def create_longtext_attribute(self, database_id: str, collection_id: str, key: s api_params['default'] = default if array is not None: api_params['array'] = array + if encrypt is not None: + api_params['encrypt'] = encrypt return self.client.call('post', api_path, { 'content-type': 'application/json', @@ -1815,7 +1819,7 @@ def update_longtext_attribute(self, database_id: str, collection_id: str, key: s 'content-type': 'application/json', }, api_params) - def create_mediumtext_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: Optional[str] = None, array: Optional[bool] = None) -> Dict[str, Any]: + def create_mediumtext_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: Optional[str] = None, array: Optional[bool] = None, encrypt: Optional[bool] = None) -> Dict[str, Any]: """ Create a mediumtext attribute. @@ -1834,6 +1838,8 @@ def create_mediumtext_attribute(self, database_id: str, collection_id: str, key: Default value for attribute when not provided. Cannot be set when attribute is required. array : Optional[bool] Is attribute an array? + encrypt : Optional[bool] + Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried. Returns ------- @@ -1868,6 +1874,8 @@ def create_mediumtext_attribute(self, database_id: str, collection_id: str, key: api_params['default'] = default if array is not None: api_params['array'] = array + if encrypt is not None: + api_params['encrypt'] = encrypt return self.client.call('post', api_path, { 'content-type': 'application/json', @@ -2362,7 +2370,7 @@ def update_string_attribute(self, database_id: str, collection_id: str, key: str 'content-type': 'application/json', }, api_params) - def create_text_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: Optional[str] = None, array: Optional[bool] = None) -> Dict[str, Any]: + def create_text_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: Optional[str] = None, array: Optional[bool] = None, encrypt: Optional[bool] = None) -> Dict[str, Any]: """ Create a text attribute. @@ -2381,6 +2389,8 @@ def create_text_attribute(self, database_id: str, collection_id: str, key: str, Default value for attribute when not provided. Cannot be set when attribute is required. array : Optional[bool] Is attribute an array? + encrypt : Optional[bool] + Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried. Returns ------- @@ -2415,6 +2425,8 @@ def create_text_attribute(self, database_id: str, collection_id: str, key: str, api_params['default'] = default if array is not None: api_params['array'] = array + if encrypt is not None: + api_params['encrypt'] = encrypt return self.client.call('post', api_path, { 'content-type': 'application/json', @@ -2598,7 +2610,7 @@ def update_url_attribute(self, database_id: str, collection_id: str, key: str, r 'content-type': 'application/json', }, api_params) - def create_varchar_attribute(self, database_id: str, collection_id: str, key: str, size: float, required: bool, default: Optional[str] = None, array: Optional[bool] = None) -> Dict[str, Any]: + def create_varchar_attribute(self, database_id: str, collection_id: str, key: str, size: float, required: bool, default: Optional[str] = None, array: Optional[bool] = None, encrypt: Optional[bool] = None) -> Dict[str, Any]: """ Create a varchar attribute. @@ -2619,6 +2631,8 @@ def create_varchar_attribute(self, database_id: str, collection_id: str, key: st Default value for attribute when not provided. Cannot be set when attribute is required. array : Optional[bool] Is attribute an array? + encrypt : Optional[bool] + Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried. Returns ------- @@ -2657,6 +2671,8 @@ def create_varchar_attribute(self, database_id: str, collection_id: str, key: st api_params['default'] = default if array is not None: api_params['array'] = array + if encrypt is not None: + api_params['encrypt'] = encrypt return self.client.call('post', api_path, { 'content-type': 'application/json', diff --git a/appwrite/services/tables_db.py b/appwrite/services/tables_db.py index dece20d..ee73241 100644 --- a/appwrite/services/tables_db.py +++ b/appwrite/services/tables_db.py @@ -1618,7 +1618,7 @@ def update_line_column(self, database_id: str, table_id: str, key: str, required 'content-type': 'application/json', }, api_params) - def create_longtext_column(self, database_id: str, table_id: str, key: str, required: bool, default: Optional[str] = None, array: Optional[bool] = None) -> Dict[str, Any]: + def create_longtext_column(self, database_id: str, table_id: str, key: str, required: bool, default: Optional[str] = None, array: Optional[bool] = None, encrypt: Optional[bool] = None) -> Dict[str, Any]: """ Create a longtext column. @@ -1637,6 +1637,8 @@ def create_longtext_column(self, database_id: str, table_id: str, key: str, requ Default value for column when not provided. Cannot be set when column is required. array : Optional[bool] Is column an array? + encrypt : Optional[bool] + Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried. Returns ------- @@ -1671,6 +1673,8 @@ def create_longtext_column(self, database_id: str, table_id: str, key: str, requ api_params['default'] = default if array is not None: api_params['array'] = array + if encrypt is not None: + api_params['encrypt'] = encrypt return self.client.call('post', api_path, { 'content-type': 'application/json', @@ -1733,7 +1737,7 @@ def update_longtext_column(self, database_id: str, table_id: str, key: str, requ 'content-type': 'application/json', }, api_params) - def create_mediumtext_column(self, database_id: str, table_id: str, key: str, required: bool, default: Optional[str] = None, array: Optional[bool] = None) -> Dict[str, Any]: + def create_mediumtext_column(self, database_id: str, table_id: str, key: str, required: bool, default: Optional[str] = None, array: Optional[bool] = None, encrypt: Optional[bool] = None) -> Dict[str, Any]: """ Create a mediumtext column. @@ -1752,6 +1756,8 @@ def create_mediumtext_column(self, database_id: str, table_id: str, key: str, re Default value for column when not provided. Cannot be set when column is required. array : Optional[bool] Is column an array? + encrypt : Optional[bool] + Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried. Returns ------- @@ -1786,6 +1792,8 @@ def create_mediumtext_column(self, database_id: str, table_id: str, key: str, re api_params['default'] = default if array is not None: api_params['array'] = array + if encrypt is not None: + api_params['encrypt'] = encrypt return self.client.call('post', api_path, { 'content-type': 'application/json', @@ -2265,7 +2273,7 @@ def update_string_column(self, database_id: str, table_id: str, key: str, requir 'content-type': 'application/json', }, api_params) - def create_text_column(self, database_id: str, table_id: str, key: str, required: bool, default: Optional[str] = None, array: Optional[bool] = None) -> Dict[str, Any]: + def create_text_column(self, database_id: str, table_id: str, key: str, required: bool, default: Optional[str] = None, array: Optional[bool] = None, encrypt: Optional[bool] = None) -> Dict[str, Any]: """ Create a text column. @@ -2284,6 +2292,8 @@ def create_text_column(self, database_id: str, table_id: str, key: str, required Default value for column when not provided. Cannot be set when column is required. array : Optional[bool] Is column an array? + encrypt : Optional[bool] + Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried. Returns ------- @@ -2318,6 +2328,8 @@ def create_text_column(self, database_id: str, table_id: str, key: str, required api_params['default'] = default if array is not None: api_params['array'] = array + if encrypt is not None: + api_params['encrypt'] = encrypt return self.client.call('post', api_path, { 'content-type': 'application/json', @@ -2495,7 +2507,7 @@ def update_url_column(self, database_id: str, table_id: str, key: str, required: 'content-type': 'application/json', }, api_params) - def create_varchar_column(self, database_id: str, table_id: str, key: str, size: float, required: bool, default: Optional[str] = None, array: Optional[bool] = None) -> Dict[str, Any]: + def create_varchar_column(self, database_id: str, table_id: str, key: str, size: float, required: bool, default: Optional[str] = None, array: Optional[bool] = None, encrypt: Optional[bool] = None) -> Dict[str, Any]: """ Create a varchar column. @@ -2516,6 +2528,8 @@ def create_varchar_column(self, database_id: str, table_id: str, key: str, size: Default value for column when not provided. Cannot be set when column is required. array : Optional[bool] Is column an array? + encrypt : Optional[bool] + Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried. Returns ------- @@ -2554,6 +2568,8 @@ def create_varchar_column(self, database_id: str, table_id: str, key: str, size: api_params['default'] = default if array is not None: api_params['array'] = array + if encrypt is not None: + api_params['encrypt'] = encrypt return self.client.call('post', api_path, { 'content-type': 'application/json', diff --git a/docs/examples/health/get-queue-threats.md b/docs/examples/activities/get-event.md similarity index 65% rename from docs/examples/health/get-queue-threats.md rename to docs/examples/activities/get-event.md index 8294a2f..353d9d5 100644 --- a/docs/examples/health/get-queue-threats.md +++ b/docs/examples/activities/get-event.md @@ -1,15 +1,15 @@ ```python from appwrite.client import Client -from appwrite.services.health import Health +from appwrite.services.activities import Activities client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint client.set_project('') # Your project ID client.set_key('') # Your secret API key -health = Health(client) +activities = Activities(client) -result = health.get_queue_threats( - threshold = None # optional +result = activities.get_event( + event_id = '' ) ``` diff --git a/docs/examples/health/get-queue-priority-builds.md b/docs/examples/activities/list-events.md similarity index 64% rename from docs/examples/health/get-queue-priority-builds.md rename to docs/examples/activities/list-events.md index fbcdf91..2c7c92d 100644 --- a/docs/examples/health/get-queue-priority-builds.md +++ b/docs/examples/activities/list-events.md @@ -1,15 +1,15 @@ ```python from appwrite.client import Client -from appwrite.services.health import Health +from appwrite.services.activities import Activities client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint client.set_project('') # Your project ID client.set_key('') # Your secret API key -health = Health(client) +activities = Activities(client) -result = health.get_queue_priority_builds( - threshold = None # optional +result = activities.list_events( + queries = '' # optional ) ``` diff --git a/docs/examples/databases/create-longtext-attribute.md b/docs/examples/databases/create-longtext-attribute.md index f13e723..64d747d 100644 --- a/docs/examples/databases/create-longtext-attribute.md +++ b/docs/examples/databases/create-longtext-attribute.md @@ -15,6 +15,7 @@ result = databases.create_longtext_attribute( key = '', required = False, default = '', # optional - array = False # optional + array = False, # optional + encrypt = False # optional ) ``` diff --git a/docs/examples/databases/create-mediumtext-attribute.md b/docs/examples/databases/create-mediumtext-attribute.md index f053cfc..84cb1f8 100644 --- a/docs/examples/databases/create-mediumtext-attribute.md +++ b/docs/examples/databases/create-mediumtext-attribute.md @@ -15,6 +15,7 @@ result = databases.create_mediumtext_attribute( key = '', required = False, default = '', # optional - array = False # optional + array = False, # optional + encrypt = False # optional ) ``` diff --git a/docs/examples/databases/create-text-attribute.md b/docs/examples/databases/create-text-attribute.md index 6365bc9..7f60cf7 100644 --- a/docs/examples/databases/create-text-attribute.md +++ b/docs/examples/databases/create-text-attribute.md @@ -15,6 +15,7 @@ result = databases.create_text_attribute( key = '', required = False, default = '', # optional - array = False # optional + array = False, # optional + encrypt = False # optional ) ``` diff --git a/docs/examples/databases/create-varchar-attribute.md b/docs/examples/databases/create-varchar-attribute.md index 7ddecdf..224dacd 100644 --- a/docs/examples/databases/create-varchar-attribute.md +++ b/docs/examples/databases/create-varchar-attribute.md @@ -16,6 +16,7 @@ result = databases.create_varchar_attribute( size = 1, required = False, default = '', # optional - array = False # optional + array = False, # optional + encrypt = False # optional ) ``` diff --git a/docs/examples/health/get-queue-billing-project-aggregation.md b/docs/examples/health/get-queue-billing-project-aggregation.md deleted file mode 100644 index e2b983f..0000000 --- a/docs/examples/health/get-queue-billing-project-aggregation.md +++ /dev/null @@ -1,15 +0,0 @@ -```python -from appwrite.client import Client -from appwrite.services.health import Health - -client = Client() -client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint -client.set_project('') # Your project ID -client.set_key('') # Your secret API key - -health = Health(client) - -result = health.get_queue_billing_project_aggregation( - threshold = None # optional -) -``` diff --git a/docs/examples/health/get-queue-billing-team-aggregation.md b/docs/examples/health/get-queue-billing-team-aggregation.md deleted file mode 100644 index 763c185..0000000 --- a/docs/examples/health/get-queue-billing-team-aggregation.md +++ /dev/null @@ -1,15 +0,0 @@ -```python -from appwrite.client import Client -from appwrite.services.health import Health - -client = Client() -client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint -client.set_project('') # Your project ID -client.set_key('') # Your secret API key - -health = Health(client) - -result = health.get_queue_billing_team_aggregation( - threshold = None # optional -) -``` diff --git a/docs/examples/health/get-queue-region-manager.md b/docs/examples/health/get-queue-region-manager.md deleted file mode 100644 index 6762179..0000000 --- a/docs/examples/health/get-queue-region-manager.md +++ /dev/null @@ -1,15 +0,0 @@ -```python -from appwrite.client import Client -from appwrite.services.health import Health - -client = Client() -client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint -client.set_project('') # Your project ID -client.set_key('') # Your secret API key - -health = Health(client) - -result = health.get_queue_region_manager( - threshold = None # optional -) -``` diff --git a/docs/examples/tablesdb/create-longtext-column.md b/docs/examples/tablesdb/create-longtext-column.md index 76d798c..65981d6 100644 --- a/docs/examples/tablesdb/create-longtext-column.md +++ b/docs/examples/tablesdb/create-longtext-column.md @@ -15,6 +15,7 @@ result = tables_db.create_longtext_column( key = '', required = False, default = '', # optional - array = False # optional + array = False, # optional + encrypt = False # optional ) ``` diff --git a/docs/examples/tablesdb/create-mediumtext-column.md b/docs/examples/tablesdb/create-mediumtext-column.md index 249c660..c731988 100644 --- a/docs/examples/tablesdb/create-mediumtext-column.md +++ b/docs/examples/tablesdb/create-mediumtext-column.md @@ -15,6 +15,7 @@ result = tables_db.create_mediumtext_column( key = '', required = False, default = '', # optional - array = False # optional + array = False, # optional + encrypt = False # optional ) ``` diff --git a/docs/examples/tablesdb/create-text-column.md b/docs/examples/tablesdb/create-text-column.md index 313e81c..013c675 100644 --- a/docs/examples/tablesdb/create-text-column.md +++ b/docs/examples/tablesdb/create-text-column.md @@ -15,6 +15,7 @@ result = tables_db.create_text_column( key = '', required = False, default = '', # optional - array = False # optional + array = False, # optional + encrypt = False # optional ) ``` diff --git a/docs/examples/tablesdb/create-varchar-column.md b/docs/examples/tablesdb/create-varchar-column.md index 85848b4..981cf69 100644 --- a/docs/examples/tablesdb/create-varchar-column.md +++ b/docs/examples/tablesdb/create-varchar-column.md @@ -16,6 +16,7 @@ result = tables_db.create_varchar_column( size = 1, required = False, default = '', # optional - array = False # optional + array = False, # optional + encrypt = False # optional ) ``` diff --git a/setup.py b/setup.py index 28124de..ba6249b 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name = 'appwrite', packages = setuptools.find_packages(), - version = '15.1.0', + version = '15.2.0', license='BSD-3-Clause', description = 'Appwrite is an open-source self-hosted backend server that abstracts and simplifies complex and repetitive development tasks behind a very simple REST API', long_description = long_description, @@ -18,7 +18,7 @@ maintainer = 'Appwrite Team', maintainer_email = 'team@appwrite.io', url = 'https://appwrite.io/support', - download_url='https://github.com/appwrite/sdk-for-python/archive/15.1.0.tar.gz', + download_url='https://github.com/appwrite/sdk-for-python/archive/15.2.0.tar.gz', install_requires=[ 'requests', ],