From fdbd19f9940e828f9eba78269ef32adb48a00289 Mon Sep 17 00:00:00 2001
From: Christy Jacob <christyjacob4@gmail.com>
Date: Mon, 10 Mar 2025 10:27:51 +0000
Subject: [PATCH 1/2] feat: add types to parameters

---
 appwrite/client.py                            |   8 +-
 appwrite/enums/credit_card.py                 |   1 +
 appwrite/enums/name.py                        |   5 +-
 appwrite/services/account.py                  | 151 ++++----------
 appwrite/services/avatars.py                  |  31 +--
 appwrite/services/databases.py                | 183 +++++------------
 appwrite/services/functions.py                |  95 +++------
 appwrite/services/graphql.py                  |   8 +-
 appwrite/services/health.py                   |  99 +++-------
 appwrite/services/locale.py                   |  16 --
 appwrite/services/messaging.py                | 186 +++++-------------
 appwrite/services/storage.py                  |  56 ++----
 appwrite/services/teams.py                    |  52 ++---
 appwrite/services/users.py                    | 171 +++++-----------
 .../databases/update-float-attribute.md       |   4 +-
 .../databases/update-integer-attribute.md     |   4 +-
 ...e-dump.md => get-queue-stats-resources.md} |   2 +-
 ...queue.md => get-queue-stats-usage-dump.md} |   4 +-
 setup.py                                      |   4 +-
 19 files changed, 285 insertions(+), 795 deletions(-)
 rename docs/examples/health/{get-queue-usage-dump.md => get-queue-stats-resources.md} (88%)
 rename docs/examples/health/{get-queue.md => get-queue-stats-usage-dump.md} (79%)

diff --git a/appwrite/client.py b/appwrite/client.py
index be73fb8..cd37ff9 100644
--- a/appwrite/client.py
+++ b/appwrite/client.py
@@ -13,11 +13,11 @@ def __init__(self):
         self._endpoint = 'https://cloud.appwrite.io/v1'
         self._global_headers = {
             'content-type': '',
-            'user-agent' : 'AppwritePythonSDK/8.0.0 (${os.uname().sysname}; ${os.uname().version}; ${os.uname().machine})',
+            'user-agent' : 'AppwritePythonSDK/9.0.0 (${os.uname().sysname}; ${os.uname().version}; ${os.uname().machine})',
             'x-sdk-name': 'Python',
             'x-sdk-platform': 'server',
             'x-sdk-language': 'python',
-            'x-sdk-version': '8.0.0',
+            'x-sdk-version': '9.0.0',
             'X-Appwrite-Response-Format' : '1.6.0',
         }
 
@@ -131,9 +131,9 @@ def call(self, method, path='', headers=None, params=None, response_type='json')
             if response != None:
                 content_type = response.headers['Content-Type']
                 if content_type.startswith('application/json'):
-                    raise AppwriteException(response.json()['message'], response.status_code, response.json().get('type'), response.json())
+                    raise AppwriteException(response.json()['message'], response.status_code, response.json().get('type'), response.text)
                 else:
-                    raise AppwriteException(response.text, response.status_code)
+                    raise AppwriteException(response.text, response.status_code, None, response.text)
             else:
                 raise AppwriteException(e)
 
diff --git a/appwrite/enums/credit_card.py b/appwrite/enums/credit_card.py
index 097ea64..3f770a3 100644
--- a/appwrite/enums/credit_card.py
+++ b/appwrite/enums/credit_card.py
@@ -17,3 +17,4 @@ class CreditCard(Enum):
     VISA = "visa"
     MIR = "mir"
     MAESTRO = "maestro"
+    RUPAY = "rupay"
diff --git a/appwrite/enums/name.py b/appwrite/enums/name.py
index c5ad74e..0ac227e 100644
--- a/appwrite/enums/name.py
+++ b/appwrite/enums/name.py
@@ -6,8 +6,9 @@ class Name(Enum):
     V1_AUDITS = "v1-audits"
     V1_MAILS = "v1-mails"
     V1_FUNCTIONS = "v1-functions"
-    V1_USAGE = "v1-usage"
-    V1_USAGE_DUMP = "v1-usage-dump"
+    V1_STATS_RESOURCES = "v1-stats-resources"
+    V1_STATS_USAGE = "v1-stats-usage"
+    V1_STATS_USAGE_DUMP = "v1-stats-usage-dump"
     V1_WEBHOOKS = "v1-webhooks"
     V1_CERTIFICATES = "v1-certificates"
     V1_BUILDS = "v1-builds"
diff --git a/appwrite/services/account.py b/appwrite/services/account.py
index 10255b2..61f1f60 100644
--- a/appwrite/services/account.py
+++ b/appwrite/services/account.py
@@ -1,5 +1,8 @@
 from ..service import Service
 from ..exception import AppwriteException
+from ..enums.authenticator_type import AuthenticatorType;
+from ..enums.authentication_factor import AuthenticationFactor;
+from ..enums.o_auth_provider import OAuthProvider;
 
 class Account(Service):
 
@@ -7,9 +10,7 @@ def __init__(self, client):
         super(Account, self).__init__(client)
 
     def get(self):
-        """Get account"""
 
-        
         api_path = '/account'
         api_params = {}
 
@@ -17,10 +18,8 @@ def get(self):
             'content-type': 'application/json',
         }, api_params)
 
-    def create(self, user_id, email, password, name = None):
-        """Create account"""
+    def create(self, user_id: str, email: str, password: str, name: str = None):
 
-        
         api_path = '/account'
         api_params = {}
         if user_id is None:
@@ -42,10 +41,8 @@ def create(self, user_id, email, password, name = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_email(self, email, password):
-        """Update email"""
+    def update_email(self, email: str, password: str):
 
-        
         api_path = '/account/email'
         api_params = {}
         if email is None:
@@ -62,10 +59,8 @@ def update_email(self, email, password):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_identities(self, queries = None):
-        """List identities"""
+    def list_identities(self, queries: list = None):
 
-        
         api_path = '/account/identities'
         api_params = {}
 
@@ -75,10 +70,8 @@ def list_identities(self, queries = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_identity(self, identity_id):
-        """Delete identity"""
+    def delete_identity(self, identity_id: str):
 
-        
         api_path = '/account/identities/{identityId}'
         api_params = {}
         if identity_id is None:
@@ -92,9 +85,7 @@ def delete_identity(self, identity_id):
         }, api_params)
 
     def create_jwt(self):
-        """Create JWT"""
 
-        
         api_path = '/account/jwts'
         api_params = {}
 
@@ -102,10 +93,8 @@ def create_jwt(self):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_logs(self, queries = None):
-        """List logs"""
+    def list_logs(self, queries: list = None):
 
-        
         api_path = '/account/logs'
         api_params = {}
 
@@ -115,10 +104,8 @@ def list_logs(self, queries = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_mfa(self, mfa):
-        """Update MFA"""
+    def update_mfa(self, mfa: bool):
 
-        
         api_path = '/account/mfa'
         api_params = {}
         if mfa is None:
@@ -131,10 +118,8 @@ def update_mfa(self, mfa):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_mfa_authenticator(self, type):
-        """Create authenticator"""
+    def create_mfa_authenticator(self, type: AuthenticatorType):
 
-        
         api_path = '/account/mfa/authenticators/{type}'
         api_params = {}
         if type is None:
@@ -147,10 +132,8 @@ def create_mfa_authenticator(self, type):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_mfa_authenticator(self, type, otp):
-        """Verify authenticator"""
+    def update_mfa_authenticator(self, type: AuthenticatorType, otp: str):
 
-        
         api_path = '/account/mfa/authenticators/{type}'
         api_params = {}
         if type is None:
@@ -167,10 +150,8 @@ def update_mfa_authenticator(self, type, otp):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_mfa_authenticator(self, type):
-        """Delete authenticator"""
+    def delete_mfa_authenticator(self, type: AuthenticatorType):
 
-        
         api_path = '/account/mfa/authenticators/{type}'
         api_params = {}
         if type is None:
@@ -183,10 +164,8 @@ def delete_mfa_authenticator(self, type):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_mfa_challenge(self, factor):
-        """Create MFA challenge"""
+    def create_mfa_challenge(self, factor: AuthenticationFactor):
 
-        
         api_path = '/account/mfa/challenge'
         api_params = {}
         if factor is None:
@@ -199,10 +178,8 @@ def create_mfa_challenge(self, factor):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_mfa_challenge(self, challenge_id, otp):
-        """Create MFA challenge (confirmation)"""
+    def update_mfa_challenge(self, challenge_id: str, otp: str):
 
-        
         api_path = '/account/mfa/challenge'
         api_params = {}
         if challenge_id is None:
@@ -220,9 +197,7 @@ def update_mfa_challenge(self, challenge_id, otp):
         }, api_params)
 
     def list_mfa_factors(self):
-        """List factors"""
 
-        
         api_path = '/account/mfa/factors'
         api_params = {}
 
@@ -231,9 +206,7 @@ def list_mfa_factors(self):
         }, api_params)
 
     def get_mfa_recovery_codes(self):
-        """Get MFA recovery codes"""
 
-        
         api_path = '/account/mfa/recovery-codes'
         api_params = {}
 
@@ -242,9 +215,7 @@ def get_mfa_recovery_codes(self):
         }, api_params)
 
     def create_mfa_recovery_codes(self):
-        """Create MFA recovery codes"""
 
-        
         api_path = '/account/mfa/recovery-codes'
         api_params = {}
 
@@ -253,9 +224,7 @@ def create_mfa_recovery_codes(self):
         }, api_params)
 
     def update_mfa_recovery_codes(self):
-        """Regenerate MFA recovery codes"""
 
-        
         api_path = '/account/mfa/recovery-codes'
         api_params = {}
 
@@ -263,10 +232,8 @@ def update_mfa_recovery_codes(self):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_name(self, name):
-        """Update name"""
+    def update_name(self, name: str):
 
-        
         api_path = '/account/name'
         api_params = {}
         if name is None:
@@ -279,10 +246,8 @@ def update_name(self, name):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_password(self, password, old_password = None):
-        """Update password"""
+    def update_password(self, password: str, old_password: str = None):
 
-        
         api_path = '/account/password'
         api_params = {}
         if password is None:
@@ -296,10 +261,8 @@ def update_password(self, password, old_password = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_phone(self, phone, password):
-        """Update phone"""
+    def update_phone(self, phone: str, password: str):
 
-        
         api_path = '/account/phone'
         api_params = {}
         if phone is None:
@@ -317,9 +280,7 @@ def update_phone(self, phone, password):
         }, api_params)
 
     def get_prefs(self):
-        """Get account preferences"""
 
-        
         api_path = '/account/prefs'
         api_params = {}
 
@@ -327,10 +288,8 @@ def get_prefs(self):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_prefs(self, prefs):
-        """Update preferences"""
+    def update_prefs(self, prefs: dict):
 
-        
         api_path = '/account/prefs'
         api_params = {}
         if prefs is None:
@@ -343,10 +302,8 @@ def update_prefs(self, prefs):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_recovery(self, email, url):
-        """Create password recovery"""
+    def create_recovery(self, email: str, url: str):
 
-        
         api_path = '/account/recovery'
         api_params = {}
         if email is None:
@@ -363,10 +320,8 @@ def create_recovery(self, email, url):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_recovery(self, user_id, secret, password):
-        """Create password recovery (confirmation)"""
+    def update_recovery(self, user_id: str, secret: str, password: str):
 
-        
         api_path = '/account/recovery'
         api_params = {}
         if user_id is None:
@@ -388,9 +343,7 @@ def update_recovery(self, user_id, secret, password):
         }, api_params)
 
     def list_sessions(self):
-        """List sessions"""
 
-        
         api_path = '/account/sessions'
         api_params = {}
 
@@ -399,9 +352,7 @@ def list_sessions(self):
         }, api_params)
 
     def delete_sessions(self):
-        """Delete sessions"""
 
-        
         api_path = '/account/sessions'
         api_params = {}
 
@@ -410,9 +361,7 @@ def delete_sessions(self):
         }, api_params)
 
     def create_anonymous_session(self):
-        """Create anonymous session"""
 
-        
         api_path = '/account/sessions/anonymous'
         api_params = {}
 
@@ -420,10 +369,8 @@ def create_anonymous_session(self):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_email_password_session(self, email, password):
-        """Create email password session"""
+    def create_email_password_session(self, email: str, password: str):
 
-        
         api_path = '/account/sessions/email'
         api_params = {}
         if email is None:
@@ -440,10 +387,8 @@ def create_email_password_session(self, email, password):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_magic_url_session(self, user_id, secret):
-        """Update magic URL session"""
+    def update_magic_url_session(self, user_id: str, secret: str):
 
-        
         api_path = '/account/sessions/magic-url'
         api_params = {}
         if user_id is None:
@@ -460,10 +405,8 @@ def update_magic_url_session(self, user_id, secret):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_phone_session(self, user_id, secret):
-        """Update phone session"""
+    def update_phone_session(self, user_id: str, secret: str):
 
-        
         api_path = '/account/sessions/phone'
         api_params = {}
         if user_id is None:
@@ -480,10 +423,8 @@ def update_phone_session(self, user_id, secret):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_session(self, user_id, secret):
-        """Create session"""
+    def create_session(self, user_id: str, secret: str):
 
-        
         api_path = '/account/sessions/token'
         api_params = {}
         if user_id is None:
@@ -500,10 +441,8 @@ def create_session(self, user_id, secret):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_session(self, session_id):
-        """Get session"""
+    def get_session(self, session_id: str):
 
-        
         api_path = '/account/sessions/{sessionId}'
         api_params = {}
         if session_id is None:
@@ -516,10 +455,8 @@ def get_session(self, session_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_session(self, session_id):
-        """Update session"""
+    def update_session(self, session_id: str):
 
-        
         api_path = '/account/sessions/{sessionId}'
         api_params = {}
         if session_id is None:
@@ -532,10 +469,8 @@ def update_session(self, session_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_session(self, session_id):
-        """Delete session"""
+    def delete_session(self, session_id: str):
 
-        
         api_path = '/account/sessions/{sessionId}'
         api_params = {}
         if session_id is None:
@@ -549,9 +484,7 @@ def delete_session(self, session_id):
         }, api_params)
 
     def update_status(self):
-        """Update status"""
 
-        
         api_path = '/account/status'
         api_params = {}
 
@@ -559,10 +492,8 @@ def update_status(self):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_email_token(self, user_id, email, phrase = None):
-        """Create email token (OTP)"""
+    def create_email_token(self, user_id: str, email: str, phrase: bool = None):
 
-        
         api_path = '/account/tokens/email'
         api_params = {}
         if user_id is None:
@@ -580,10 +511,8 @@ def create_email_token(self, user_id, email, phrase = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_magic_url_token(self, user_id, email, url = None, phrase = None):
-        """Create magic URL token"""
+    def create_magic_url_token(self, user_id: str, email: str, url: str = None, phrase: bool = None):
 
-        
         api_path = '/account/tokens/magic-url'
         api_params = {}
         if user_id is None:
@@ -602,10 +531,8 @@ def create_magic_url_token(self, user_id, email, url = None, phrase = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_o_auth2_token(self, provider, success = None, failure = None, scopes = None):
-        """Create OAuth2 token"""
+    def create_o_auth2_token(self, provider: OAuthProvider, success: str = None, failure: str = None, scopes: list = None):
 
-        
         api_path = '/account/tokens/oauth2/{provider}'
         api_params = {}
         if provider is None:
@@ -621,10 +548,8 @@ def create_o_auth2_token(self, provider, success = None, failure = None, scopes
             'content-type': 'application/json',
         }, api_params, response_type='location')
 
-    def create_phone_token(self, user_id, phone):
-        """Create phone token"""
+    def create_phone_token(self, user_id: str, phone: str):
 
-        
         api_path = '/account/tokens/phone'
         api_params = {}
         if user_id is None:
@@ -641,10 +566,8 @@ def create_phone_token(self, user_id, phone):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_verification(self, url):
-        """Create email verification"""
+    def create_verification(self, url: str):
 
-        
         api_path = '/account/verification'
         api_params = {}
         if url is None:
@@ -657,10 +580,8 @@ def create_verification(self, url):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_verification(self, user_id, secret):
-        """Create email verification (confirmation)"""
+    def update_verification(self, user_id: str, secret: str):
 
-        
         api_path = '/account/verification'
         api_params = {}
         if user_id is None:
@@ -678,9 +599,7 @@ def update_verification(self, user_id, secret):
         }, api_params)
 
     def create_phone_verification(self):
-        """Create phone verification"""
 
-        
         api_path = '/account/verification/phone'
         api_params = {}
 
@@ -688,10 +607,8 @@ def create_phone_verification(self):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_phone_verification(self, user_id, secret):
-        """Update phone verification (confirmation)"""
+    def update_phone_verification(self, user_id: str, secret: str):
 
-        
         api_path = '/account/verification/phone'
         api_params = {}
         if user_id is None:
diff --git a/appwrite/services/avatars.py b/appwrite/services/avatars.py
index 0a9b400..e4752a6 100644
--- a/appwrite/services/avatars.py
+++ b/appwrite/services/avatars.py
@@ -1,15 +1,16 @@
 from ..service import Service
 from ..exception import AppwriteException
+from ..enums.browser import Browser;
+from ..enums.credit_card import CreditCard;
+from ..enums.flag import Flag;
 
 class Avatars(Service):
 
     def __init__(self, client):
         super(Avatars, self).__init__(client)
 
-    def get_browser(self, code, width = None, height = None, quality = None):
-        """Get browser icon"""
+    def get_browser(self, code: Browser, width: float = None, height: float = None, quality: float = None):
 
-        
         api_path = '/avatars/browsers/{code}'
         api_params = {}
         if code is None:
@@ -25,10 +26,8 @@ def get_browser(self, code, width = None, height = None, quality = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_credit_card(self, code, width = None, height = None, quality = None):
-        """Get credit card icon"""
+    def get_credit_card(self, code: CreditCard, width: float = None, height: float = None, quality: float = None):
 
-        
         api_path = '/avatars/credit-cards/{code}'
         api_params = {}
         if code is None:
@@ -44,10 +43,8 @@ def get_credit_card(self, code, width = None, height = None, quality = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_favicon(self, url):
-        """Get favicon"""
+    def get_favicon(self, url: str):
 
-        
         api_path = '/avatars/favicon'
         api_params = {}
         if url is None:
@@ -60,10 +57,8 @@ def get_favicon(self, url):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_flag(self, code, width = None, height = None, quality = None):
-        """Get country flag"""
+    def get_flag(self, code: Flag, width: float = None, height: float = None, quality: float = None):
 
-        
         api_path = '/avatars/flags/{code}'
         api_params = {}
         if code is None:
@@ -79,10 +74,8 @@ def get_flag(self, code, width = None, height = None, quality = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_image(self, url, width = None, height = None):
-        """Get image from URL"""
+    def get_image(self, url: str, width: float = None, height: float = None):
 
-        
         api_path = '/avatars/image'
         api_params = {}
         if url is None:
@@ -97,10 +90,8 @@ def get_image(self, url, width = None, height = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_initials(self, name = None, width = None, height = None, background = None):
-        """Get user initials"""
+    def get_initials(self, name: str = None, width: float = None, height: float = None, background: str = None):
 
-        
         api_path = '/avatars/initials'
         api_params = {}
 
@@ -113,10 +104,8 @@ def get_initials(self, name = None, width = None, height = None, background = No
             'content-type': 'application/json',
         }, api_params)
 
-    def get_qr(self, text, size = None, margin = None, download = None):
-        """Get QR code"""
+    def get_qr(self, text: str, size: float = None, margin: float = None, download: bool = None):
 
-        
         api_path = '/avatars/qr'
         api_params = {}
         if text is None:
diff --git a/appwrite/services/databases.py b/appwrite/services/databases.py
index aa47e4e..85b2e86 100644
--- a/appwrite/services/databases.py
+++ b/appwrite/services/databases.py
@@ -1,15 +1,16 @@
 from ..service import Service
 from ..exception import AppwriteException
+from ..enums.relationship_type import RelationshipType;
+from ..enums.relation_mutate import RelationMutate;
+from ..enums.index_type import IndexType;
 
 class Databases(Service):
 
     def __init__(self, client):
         super(Databases, self).__init__(client)
 
-    def list(self, queries = None, search = None):
-        """List databases"""
+    def list(self, queries: list = None, search: str = None):
 
-        
         api_path = '/databases'
         api_params = {}
 
@@ -20,10 +21,8 @@ def list(self, queries = None, search = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create(self, database_id, name, enabled = None):
-        """Create database"""
+    def create(self, database_id: str, name: str, enabled: bool = None):
 
-        
         api_path = '/databases'
         api_params = {}
         if database_id is None:
@@ -41,10 +40,8 @@ def create(self, database_id, name, enabled = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get(self, database_id):
-        """Get database"""
+    def get(self, database_id: str):
 
-        
         api_path = '/databases/{databaseId}'
         api_params = {}
         if database_id is None:
@@ -57,10 +54,8 @@ def get(self, database_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update(self, database_id, name, enabled = None):
-        """Update database"""
+    def update(self, database_id: str, name: str, enabled: bool = None):
 
-        
         api_path = '/databases/{databaseId}'
         api_params = {}
         if database_id is None:
@@ -78,10 +73,8 @@ def update(self, database_id, name, enabled = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete(self, database_id):
-        """Delete database"""
+    def delete(self, database_id: str):
 
-        
         api_path = '/databases/{databaseId}'
         api_params = {}
         if database_id is None:
@@ -94,10 +87,8 @@ def delete(self, database_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_collections(self, database_id, queries = None, search = None):
-        """List collections"""
+    def list_collections(self, database_id: str, queries: list = None, search: str = None):
 
-        
         api_path = '/databases/{databaseId}/collections'
         api_params = {}
         if database_id is None:
@@ -112,10 +103,8 @@ def list_collections(self, database_id, queries = None, search = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_collection(self, database_id, collection_id, name, permissions = None, document_security = None, enabled = None):
-        """Create collection"""
+    def create_collection(self, database_id: str, collection_id: str, name: str, permissions: list = None, document_security: bool = None, enabled: bool = None):
 
-        
         api_path = '/databases/{databaseId}/collections'
         api_params = {}
         if database_id is None:
@@ -139,10 +128,8 @@ def create_collection(self, database_id, collection_id, name, permissions = None
             'content-type': 'application/json',
         }, api_params)
 
-    def get_collection(self, database_id, collection_id):
-        """Get collection"""
+    def get_collection(self, database_id: str, collection_id: str):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}'
         api_params = {}
         if database_id is None:
@@ -159,10 +146,8 @@ def get_collection(self, database_id, collection_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_collection(self, database_id, collection_id, name, permissions = None, document_security = None, enabled = None):
-        """Update collection"""
+    def update_collection(self, database_id: str, collection_id: str, name: str, permissions: list = None, document_security: bool = None, enabled: bool = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}'
         api_params = {}
         if database_id is None:
@@ -186,10 +171,8 @@ def update_collection(self, database_id, collection_id, name, permissions = None
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_collection(self, database_id, collection_id):
-        """Delete collection"""
+    def delete_collection(self, database_id: str, collection_id: str):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}'
         api_params = {}
         if database_id is None:
@@ -206,10 +189,8 @@ def delete_collection(self, database_id, collection_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_attributes(self, database_id, collection_id, queries = None):
-        """List attributes"""
+    def list_attributes(self, database_id: str, collection_id: str, queries: list = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes'
         api_params = {}
         if database_id is None:
@@ -227,10 +208,8 @@ def list_attributes(self, database_id, collection_id, queries = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_boolean_attribute(self, database_id, collection_id, key, required, default = None, array = None):
-        """Create boolean attribute"""
+    def create_boolean_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: bool = None, array: bool = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/boolean'
         api_params = {}
         if database_id is None:
@@ -257,10 +236,8 @@ def create_boolean_attribute(self, database_id, collection_id, key, required, de
             'content-type': 'application/json',
         }, api_params)
 
-    def update_boolean_attribute(self, database_id, collection_id, key, required, default, new_key = None):
-        """Update boolean attribute"""
+    def update_boolean_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: bool, new_key: str = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/boolean/{key}'
         api_params = {}
         if database_id is None:
@@ -287,10 +264,8 @@ def update_boolean_attribute(self, database_id, collection_id, key, required, de
             'content-type': 'application/json',
         }, api_params)
 
-    def create_datetime_attribute(self, database_id, collection_id, key, required, default = None, array = None):
-        """Create datetime attribute"""
+    def create_datetime_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: str = None, array: bool = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/datetime'
         api_params = {}
         if database_id is None:
@@ -317,10 +292,8 @@ def create_datetime_attribute(self, database_id, collection_id, key, required, d
             'content-type': 'application/json',
         }, api_params)
 
-    def update_datetime_attribute(self, database_id, collection_id, key, required, default, new_key = None):
-        """Update dateTime attribute"""
+    def update_datetime_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: str, new_key: str = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/datetime/{key}'
         api_params = {}
         if database_id is None:
@@ -347,10 +320,8 @@ def update_datetime_attribute(self, database_id, collection_id, key, required, d
             'content-type': 'application/json',
         }, api_params)
 
-    def create_email_attribute(self, database_id, collection_id, key, required, default = None, array = None):
-        """Create email attribute"""
+    def create_email_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: str = None, array: bool = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/email'
         api_params = {}
         if database_id is None:
@@ -377,10 +348,8 @@ def create_email_attribute(self, database_id, collection_id, key, required, defa
             'content-type': 'application/json',
         }, api_params)
 
-    def update_email_attribute(self, database_id, collection_id, key, required, default, new_key = None):
-        """Update email attribute"""
+    def update_email_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: str, new_key: str = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/email/{key}'
         api_params = {}
         if database_id is None:
@@ -407,10 +376,8 @@ def update_email_attribute(self, database_id, collection_id, key, required, defa
             'content-type': 'application/json',
         }, api_params)
 
-    def create_enum_attribute(self, database_id, collection_id, key, elements, required, default = None, array = None):
-        """Create enum attribute"""
+    def create_enum_attribute(self, database_id: str, collection_id: str, key: str, elements: list, required: bool, default: str = None, array: bool = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/enum'
         api_params = {}
         if database_id is None:
@@ -441,10 +408,8 @@ def create_enum_attribute(self, database_id, collection_id, key, elements, requi
             'content-type': 'application/json',
         }, api_params)
 
-    def update_enum_attribute(self, database_id, collection_id, key, elements, required, default, new_key = None):
-        """Update enum attribute"""
+    def update_enum_attribute(self, database_id: str, collection_id: str, key: str, elements: list, required: bool, default: str, new_key: str = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/enum/{key}'
         api_params = {}
         if database_id is None:
@@ -475,10 +440,8 @@ def update_enum_attribute(self, database_id, collection_id, key, elements, requi
             'content-type': 'application/json',
         }, api_params)
 
-    def create_float_attribute(self, database_id, collection_id, key, required, min = None, max = None, default = None, array = None):
-        """Create float attribute"""
+    def create_float_attribute(self, database_id: str, collection_id: str, key: str, required: bool, min: float = None, max: float = None, default: float = None, array: bool = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/float'
         api_params = {}
         if database_id is None:
@@ -507,10 +470,8 @@ def create_float_attribute(self, database_id, collection_id, key, required, min
             'content-type': 'application/json',
         }, api_params)
 
-    def update_float_attribute(self, database_id, collection_id, key, required, min, max, default, new_key = None):
-        """Update float attribute"""
+    def update_float_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: float, min: float = None, max: float = None, new_key: str = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/float/{key}'
         api_params = {}
         if database_id is None:
@@ -525,12 +486,6 @@ def update_float_attribute(self, database_id, collection_id, key, required, min,
         if required is None:
             raise AppwriteException('Missing required parameter: "required"')
 
-        if min is None:
-            raise AppwriteException('Missing required parameter: "min"')
-
-        if max is None:
-            raise AppwriteException('Missing required parameter: "max"')
-
         api_path = api_path.replace('{databaseId}', database_id)
         api_path = api_path.replace('{collectionId}', collection_id)
         api_path = api_path.replace('{key}', key)
@@ -545,10 +500,8 @@ def update_float_attribute(self, database_id, collection_id, key, required, min,
             'content-type': 'application/json',
         }, api_params)
 
-    def create_integer_attribute(self, database_id, collection_id, key, required, min = None, max = None, default = None, array = None):
-        """Create integer attribute"""
+    def create_integer_attribute(self, database_id: str, collection_id: str, key: str, required: bool, min: float = None, max: float = None, default: float = None, array: bool = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/integer'
         api_params = {}
         if database_id is None:
@@ -577,10 +530,8 @@ def create_integer_attribute(self, database_id, collection_id, key, required, mi
             'content-type': 'application/json',
         }, api_params)
 
-    def update_integer_attribute(self, database_id, collection_id, key, required, min, max, default, new_key = None):
-        """Update integer attribute"""
+    def update_integer_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: float, min: float = None, max: float = None, new_key: str = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/integer/{key}'
         api_params = {}
         if database_id is None:
@@ -595,12 +546,6 @@ def update_integer_attribute(self, database_id, collection_id, key, required, mi
         if required is None:
             raise AppwriteException('Missing required parameter: "required"')
 
-        if min is None:
-            raise AppwriteException('Missing required parameter: "min"')
-
-        if max is None:
-            raise AppwriteException('Missing required parameter: "max"')
-
         api_path = api_path.replace('{databaseId}', database_id)
         api_path = api_path.replace('{collectionId}', collection_id)
         api_path = api_path.replace('{key}', key)
@@ -615,10 +560,8 @@ def update_integer_attribute(self, database_id, collection_id, key, required, mi
             'content-type': 'application/json',
         }, api_params)
 
-    def create_ip_attribute(self, database_id, collection_id, key, required, default = None, array = None):
-        """Create IP address attribute"""
+    def create_ip_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: str = None, array: bool = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/ip'
         api_params = {}
         if database_id is None:
@@ -645,10 +588,8 @@ def create_ip_attribute(self, database_id, collection_id, key, required, default
             'content-type': 'application/json',
         }, api_params)
 
-    def update_ip_attribute(self, database_id, collection_id, key, required, default, new_key = None):
-        """Update IP address attribute"""
+    def update_ip_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: str, new_key: str = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/ip/{key}'
         api_params = {}
         if database_id is None:
@@ -675,10 +616,8 @@ def update_ip_attribute(self, database_id, collection_id, key, required, default
             'content-type': 'application/json',
         }, api_params)
 
-    def create_relationship_attribute(self, database_id, collection_id, related_collection_id, type, two_way = None, key = None, two_way_key = None, on_delete = None):
-        """Create relationship attribute"""
+    def create_relationship_attribute(self, database_id: str, collection_id: str, related_collection_id: str, type: RelationshipType, two_way: bool = None, key: str = None, two_way_key: str = None, on_delete: RelationMutate = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/relationship'
         api_params = {}
         if database_id is None:
@@ -707,10 +646,8 @@ def create_relationship_attribute(self, database_id, collection_id, related_coll
             'content-type': 'application/json',
         }, api_params)
 
-    def create_string_attribute(self, database_id, collection_id, key, size, required, default = None, array = None, encrypt = None):
-        """Create string attribute"""
+    def create_string_attribute(self, database_id: str, collection_id: str, key: str, size: float, required: bool, default: str = None, array: bool = None, encrypt: bool = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/string'
         api_params = {}
         if database_id is None:
@@ -742,10 +679,8 @@ def create_string_attribute(self, database_id, collection_id, key, size, require
             'content-type': 'application/json',
         }, api_params)
 
-    def update_string_attribute(self, database_id, collection_id, key, required, default, size = None, new_key = None):
-        """Update string attribute"""
+    def update_string_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: str, size: float = None, new_key: str = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/string/{key}'
         api_params = {}
         if database_id is None:
@@ -773,10 +708,8 @@ def update_string_attribute(self, database_id, collection_id, key, required, def
             'content-type': 'application/json',
         }, api_params)
 
-    def create_url_attribute(self, database_id, collection_id, key, required, default = None, array = None):
-        """Create URL attribute"""
+    def create_url_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: str = None, array: bool = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/url'
         api_params = {}
         if database_id is None:
@@ -803,10 +736,8 @@ def create_url_attribute(self, database_id, collection_id, key, required, defaul
             'content-type': 'application/json',
         }, api_params)
 
-    def update_url_attribute(self, database_id, collection_id, key, required, default, new_key = None):
-        """Update URL attribute"""
+    def update_url_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: str, new_key: str = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/url/{key}'
         api_params = {}
         if database_id is None:
@@ -833,10 +764,8 @@ def update_url_attribute(self, database_id, collection_id, key, required, defaul
             'content-type': 'application/json',
         }, api_params)
 
-    def get_attribute(self, database_id, collection_id, key):
-        """Get attribute"""
+    def get_attribute(self, database_id: str, collection_id: str, key: str):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/{key}'
         api_params = {}
         if database_id is None:
@@ -857,10 +786,8 @@ def get_attribute(self, database_id, collection_id, key):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_attribute(self, database_id, collection_id, key):
-        """Delete attribute"""
+    def delete_attribute(self, database_id: str, collection_id: str, key: str):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/{key}'
         api_params = {}
         if database_id is None:
@@ -881,10 +808,8 @@ def delete_attribute(self, database_id, collection_id, key):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_relationship_attribute(self, database_id, collection_id, key, on_delete = None, new_key = None):
-        """Update relationship attribute"""
+    def update_relationship_attribute(self, database_id: str, collection_id: str, key: str, on_delete: RelationMutate = None, new_key: str = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/{key}/relationship'
         api_params = {}
         if database_id is None:
@@ -907,10 +832,8 @@ def update_relationship_attribute(self, database_id, collection_id, key, on_dele
             'content-type': 'application/json',
         }, api_params)
 
-    def list_documents(self, database_id, collection_id, queries = None):
-        """List documents"""
+    def list_documents(self, database_id: str, collection_id: str, queries: list = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/documents'
         api_params = {}
         if database_id is None:
@@ -928,10 +851,8 @@ def list_documents(self, database_id, collection_id, queries = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_document(self, database_id, collection_id, document_id, data, permissions = None):
-        """Create document"""
+    def create_document(self, database_id: str, collection_id: str, document_id: str, data: dict, permissions: list = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/documents'
         api_params = {}
         if database_id is None:
@@ -957,10 +878,8 @@ def create_document(self, database_id, collection_id, document_id, data, permiss
             'content-type': 'application/json',
         }, api_params)
 
-    def get_document(self, database_id, collection_id, document_id, queries = None):
-        """Get document"""
+    def get_document(self, database_id: str, collection_id: str, document_id: str, queries: list = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'
         api_params = {}
         if database_id is None:
@@ -982,10 +901,8 @@ def get_document(self, database_id, collection_id, document_id, queries = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_document(self, database_id, collection_id, document_id, data = None, permissions = None):
-        """Update document"""
+    def update_document(self, database_id: str, collection_id: str, document_id: str, data: dict = None, permissions: list = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'
         api_params = {}
         if database_id is None:
@@ -1008,10 +925,8 @@ def update_document(self, database_id, collection_id, document_id, data = None,
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_document(self, database_id, collection_id, document_id):
-        """Delete document"""
+    def delete_document(self, database_id: str, collection_id: str, document_id: str):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'
         api_params = {}
         if database_id is None:
@@ -1032,10 +947,8 @@ def delete_document(self, database_id, collection_id, document_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_indexes(self, database_id, collection_id, queries = None):
-        """List indexes"""
+    def list_indexes(self, database_id: str, collection_id: str, queries: list = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/indexes'
         api_params = {}
         if database_id is None:
@@ -1053,10 +966,8 @@ def list_indexes(self, database_id, collection_id, queries = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_index(self, database_id, collection_id, key, type, attributes, orders = None):
-        """Create index"""
+    def create_index(self, database_id: str, collection_id: str, key: str, type: IndexType, attributes: list, orders: list = None):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/indexes'
         api_params = {}
         if database_id is None:
@@ -1086,10 +997,8 @@ def create_index(self, database_id, collection_id, key, type, attributes, orders
             'content-type': 'application/json',
         }, api_params)
 
-    def get_index(self, database_id, collection_id, key):
-        """Get index"""
+    def get_index(self, database_id: str, collection_id: str, key: str):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/indexes/{key}'
         api_params = {}
         if database_id is None:
@@ -1110,10 +1019,8 @@ def get_index(self, database_id, collection_id, key):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_index(self, database_id, collection_id, key):
-        """Delete index"""
+    def delete_index(self, database_id: str, collection_id: str, key: str):
 
-        
         api_path = '/databases/{databaseId}/collections/{collectionId}/indexes/{key}'
         api_params = {}
         if database_id is None:
diff --git a/appwrite/services/functions.py b/appwrite/services/functions.py
index 34b13a9..326171c 100644
--- a/appwrite/services/functions.py
+++ b/appwrite/services/functions.py
@@ -1,15 +1,16 @@
 from ..service import Service
 from ..exception import AppwriteException
+from ..enums.runtime import Runtime;
+from ..input_file import InputFile
+from ..enums.execution_method import ExecutionMethod;
 
 class Functions(Service):
 
     def __init__(self, client):
         super(Functions, self).__init__(client)
 
-    def list(self, queries = None, search = None):
-        """List functions"""
+    def list(self, queries: list = None, search: str = None):
 
-        
         api_path = '/functions'
         api_params = {}
 
@@ -20,10 +21,8 @@ def list(self, queries = None, search = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create(self, function_id, name, runtime, execute = None, events = None, schedule = None, timeout = None, enabled = None, logging = None, entrypoint = None, commands = None, scopes = None, installation_id = None, provider_repository_id = None, provider_branch = None, provider_silent_mode = None, provider_root_directory = None, template_repository = None, template_owner = None, template_root_directory = None, template_version = None, specification = None):
-        """Create function"""
+    def create(self, function_id: str, name: str, runtime: Runtime, execute: list = None, events: list = None, schedule: str = None, timeout: float = None, enabled: bool = None, logging: bool = None, entrypoint: str = None, commands: str = None, scopes: list = None, installation_id: str = None, provider_repository_id: str = None, provider_branch: str = None, provider_silent_mode: bool = None, provider_root_directory: str = None, template_repository: str = None, template_owner: str = None, template_root_directory: str = None, template_version: str = None, specification: str = None):
 
-        
         api_path = '/functions'
         api_params = {}
         if function_id is None:
@@ -64,9 +63,7 @@ def create(self, function_id, name, runtime, execute = None, events = None, sche
         }, api_params)
 
     def list_runtimes(self):
-        """List runtimes"""
 
-        
         api_path = '/functions/runtimes'
         api_params = {}
 
@@ -75,9 +72,7 @@ def list_runtimes(self):
         }, api_params)
 
     def list_specifications(self):
-        """List available function runtime specifications"""
 
-        
         api_path = '/functions/specifications'
         api_params = {}
 
@@ -85,10 +80,8 @@ def list_specifications(self):
             'content-type': 'application/json',
         }, api_params)
 
-    def get(self, function_id):
-        """Get function"""
+    def get(self, function_id: str):
 
-        
         api_path = '/functions/{functionId}'
         api_params = {}
         if function_id is None:
@@ -101,10 +94,8 @@ def get(self, function_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update(self, function_id, name, runtime = None, execute = None, events = None, schedule = None, timeout = None, enabled = None, logging = None, entrypoint = None, commands = None, scopes = None, installation_id = None, provider_repository_id = None, provider_branch = None, provider_silent_mode = None, provider_root_directory = None, specification = None):
-        """Update function"""
+    def update(self, function_id: str, name: str, runtime: Runtime = None, execute: list = None, events: list = None, schedule: str = None, timeout: float = None, enabled: bool = None, logging: bool = None, entrypoint: str = None, commands: str = None, scopes: list = None, installation_id: str = None, provider_repository_id: str = None, provider_branch: str = None, provider_silent_mode: bool = None, provider_root_directory: str = None, specification: str = None):
 
-        
         api_path = '/functions/{functionId}'
         api_params = {}
         if function_id is None:
@@ -137,10 +128,8 @@ def update(self, function_id, name, runtime = None, execute = None, events = Non
             'content-type': 'application/json',
         }, api_params)
 
-    def delete(self, function_id):
-        """Delete function"""
+    def delete(self, function_id: str):
 
-        
         api_path = '/functions/{functionId}'
         api_params = {}
         if function_id is None:
@@ -153,10 +142,8 @@ def delete(self, function_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_deployments(self, function_id, queries = None, search = None):
-        """List deployments"""
+    def list_deployments(self, function_id: str, queries: list = None, search: str = None):
 
-        
         api_path = '/functions/{functionId}/deployments'
         api_params = {}
         if function_id is None:
@@ -171,10 +158,8 @@ def list_deployments(self, function_id, queries = None, search = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_deployment(self, function_id, code, activate, entrypoint = None, commands = None, on_progress = None):
-        """Create deployment"""
+    def create_deployment(self, function_id: str, code: InputFile, activate: bool, entrypoint: str = None, commands: str = None, on_progress = None):
 
-        
         api_path = '/functions/{functionId}/deployments'
         api_params = {}
         if function_id is None:
@@ -202,10 +187,8 @@ def create_deployment(self, function_id, code, activate, entrypoint = None, comm
             'content-type': 'multipart/form-data',
         }, api_params, param_name, on_progress, upload_id)
 
-    def get_deployment(self, function_id, deployment_id):
-        """Get deployment"""
+    def get_deployment(self, function_id: str, deployment_id: str):
 
-        
         api_path = '/functions/{functionId}/deployments/{deploymentId}'
         api_params = {}
         if function_id is None:
@@ -222,10 +205,8 @@ def get_deployment(self, function_id, deployment_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_deployment(self, function_id, deployment_id):
-        """Update deployment"""
+    def update_deployment(self, function_id: str, deployment_id: str):
 
-        
         api_path = '/functions/{functionId}/deployments/{deploymentId}'
         api_params = {}
         if function_id is None:
@@ -242,10 +223,8 @@ def update_deployment(self, function_id, deployment_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_deployment(self, function_id, deployment_id):
-        """Delete deployment"""
+    def delete_deployment(self, function_id: str, deployment_id: str):
 
-        
         api_path = '/functions/{functionId}/deployments/{deploymentId}'
         api_params = {}
         if function_id is None:
@@ -262,10 +241,8 @@ def delete_deployment(self, function_id, deployment_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_build(self, function_id, deployment_id, build_id = None):
-        """Rebuild deployment"""
+    def create_build(self, function_id: str, deployment_id: str, build_id: str = None):
 
-        
         api_path = '/functions/{functionId}/deployments/{deploymentId}/build'
         api_params = {}
         if function_id is None:
@@ -283,10 +260,8 @@ def create_build(self, function_id, deployment_id, build_id = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_deployment_build(self, function_id, deployment_id):
-        """Cancel deployment"""
+    def update_deployment_build(self, function_id: str, deployment_id: str):
 
-        
         api_path = '/functions/{functionId}/deployments/{deploymentId}/build'
         api_params = {}
         if function_id is None:
@@ -303,10 +278,8 @@ def update_deployment_build(self, function_id, deployment_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_deployment_download(self, function_id, deployment_id):
-        """Download deployment"""
+    def get_deployment_download(self, function_id: str, deployment_id: str):
 
-        
         api_path = '/functions/{functionId}/deployments/{deploymentId}/download'
         api_params = {}
         if function_id is None:
@@ -323,10 +296,8 @@ def get_deployment_download(self, function_id, deployment_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_executions(self, function_id, queries = None, search = None):
-        """List executions"""
+    def list_executions(self, function_id: str, queries: list = None, search: str = None):
 
-        
         api_path = '/functions/{functionId}/executions'
         api_params = {}
         if function_id is None:
@@ -341,10 +312,8 @@ def list_executions(self, function_id, queries = None, search = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_execution(self, function_id, body = None, xasync = None, path = None, method = None, headers = None, scheduled_at = None):
-        """Create execution"""
+    def create_execution(self, function_id: str, body: str = None, xasync: bool = None, path: str = None, method: ExecutionMethod = None, headers: dict = None, scheduled_at: str = None):
 
-        
         api_path = '/functions/{functionId}/executions'
         api_params = {}
         if function_id is None:
@@ -363,10 +332,8 @@ def create_execution(self, function_id, body = None, xasync = None, path = None,
             'content-type': 'application/json',
         }, api_params)
 
-    def get_execution(self, function_id, execution_id):
-        """Get execution"""
+    def get_execution(self, function_id: str, execution_id: str):
 
-        
         api_path = '/functions/{functionId}/executions/{executionId}'
         api_params = {}
         if function_id is None:
@@ -383,10 +350,8 @@ def get_execution(self, function_id, execution_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_execution(self, function_id, execution_id):
-        """Delete execution"""
+    def delete_execution(self, function_id: str, execution_id: str):
 
-        
         api_path = '/functions/{functionId}/executions/{executionId}'
         api_params = {}
         if function_id is None:
@@ -403,10 +368,8 @@ def delete_execution(self, function_id, execution_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_variables(self, function_id):
-        """List variables"""
+    def list_variables(self, function_id: str):
 
-        
         api_path = '/functions/{functionId}/variables'
         api_params = {}
         if function_id is None:
@@ -419,10 +382,8 @@ def list_variables(self, function_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_variable(self, function_id, key, value):
-        """Create variable"""
+    def create_variable(self, function_id: str, key: str, value: str):
 
-        
         api_path = '/functions/{functionId}/variables'
         api_params = {}
         if function_id is None:
@@ -443,10 +404,8 @@ def create_variable(self, function_id, key, value):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_variable(self, function_id, variable_id):
-        """Get variable"""
+    def get_variable(self, function_id: str, variable_id: str):
 
-        
         api_path = '/functions/{functionId}/variables/{variableId}'
         api_params = {}
         if function_id is None:
@@ -463,10 +422,8 @@ def get_variable(self, function_id, variable_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_variable(self, function_id, variable_id, key, value = None):
-        """Update variable"""
+    def update_variable(self, function_id: str, variable_id: str, key: str, value: str = None):
 
-        
         api_path = '/functions/{functionId}/variables/{variableId}'
         api_params = {}
         if function_id is None:
@@ -488,10 +445,8 @@ def update_variable(self, function_id, variable_id, key, value = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_variable(self, function_id, variable_id):
-        """Delete variable"""
+    def delete_variable(self, function_id: str, variable_id: str):
 
-        
         api_path = '/functions/{functionId}/variables/{variableId}'
         api_params = {}
         if function_id is None:
diff --git a/appwrite/services/graphql.py b/appwrite/services/graphql.py
index 58a6e99..7d58b9e 100644
--- a/appwrite/services/graphql.py
+++ b/appwrite/services/graphql.py
@@ -6,10 +6,8 @@ class Graphql(Service):
     def __init__(self, client):
         super(Graphql, self).__init__(client)
 
-    def query(self, query):
-        """GraphQL endpoint"""
+    def query(self, query: dict):
 
-        
         api_path = '/graphql'
         api_params = {}
         if query is None:
@@ -23,10 +21,8 @@ def query(self, query):
             'content-type': 'application/json',
         }, api_params)
 
-    def mutation(self, query):
-        """GraphQL endpoint"""
+    def mutation(self, query: dict):
 
-        
         api_path = '/graphql/mutation'
         api_params = {}
         if query is None:
diff --git a/appwrite/services/health.py b/appwrite/services/health.py
index ef4b3cd..5be5d32 100644
--- a/appwrite/services/health.py
+++ b/appwrite/services/health.py
@@ -1,5 +1,6 @@
 from ..service import Service
 from ..exception import AppwriteException
+from ..enums.name import Name;
 
 class Health(Service):
 
@@ -7,9 +8,7 @@ def __init__(self, client):
         super(Health, self).__init__(client)
 
     def get(self):
-        """Get HTTP"""
 
-        
         api_path = '/health'
         api_params = {}
 
@@ -18,9 +17,7 @@ def get(self):
         }, api_params)
 
     def get_antivirus(self):
-        """Get antivirus"""
 
-        
         api_path = '/health/anti-virus'
         api_params = {}
 
@@ -29,9 +26,7 @@ def get_antivirus(self):
         }, api_params)
 
     def get_cache(self):
-        """Get cache"""
 
-        
         api_path = '/health/cache'
         api_params = {}
 
@@ -39,10 +34,8 @@ def get_cache(self):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_certificate(self, domain = None):
-        """Get the SSL certificate for a domain"""
+    def get_certificate(self, domain: str = None):
 
-        
         api_path = '/health/certificate'
         api_params = {}
 
@@ -53,9 +46,7 @@ def get_certificate(self, domain = None):
         }, api_params)
 
     def get_db(self):
-        """Get DB"""
 
-        
         api_path = '/health/db'
         api_params = {}
 
@@ -64,9 +55,7 @@ def get_db(self):
         }, api_params)
 
     def get_pub_sub(self):
-        """Get pubsub"""
 
-        
         api_path = '/health/pubsub'
         api_params = {}
 
@@ -74,21 +63,8 @@ def get_pub_sub(self):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_queue(self):
-        """Get queue"""
+    def get_queue_builds(self, threshold: float = None):
 
-        
-        api_path = '/health/queue'
-        api_params = {}
-
-        return self.client.call('get', api_path, {
-            'content-type': 'application/json',
-        }, api_params)
-
-    def get_queue_builds(self, threshold = None):
-        """Get builds queue"""
-
-        
         api_path = '/health/queue/builds'
         api_params = {}
 
@@ -98,10 +74,8 @@ def get_queue_builds(self, threshold = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_queue_certificates(self, threshold = None):
-        """Get certificates queue"""
+    def get_queue_certificates(self, threshold: float = None):
 
-        
         api_path = '/health/queue/certificates'
         api_params = {}
 
@@ -111,10 +85,8 @@ def get_queue_certificates(self, threshold = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_queue_databases(self, name = None, threshold = None):
-        """Get databases queue"""
+    def get_queue_databases(self, name: str = None, threshold: float = None):
 
-        
         api_path = '/health/queue/databases'
         api_params = {}
 
@@ -125,10 +97,8 @@ def get_queue_databases(self, name = None, threshold = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_queue_deletes(self, threshold = None):
-        """Get deletes queue"""
+    def get_queue_deletes(self, threshold: float = None):
 
-        
         api_path = '/health/queue/deletes'
         api_params = {}
 
@@ -138,10 +108,8 @@ def get_queue_deletes(self, threshold = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_failed_jobs(self, name, threshold = None):
-        """Get number of failed queue jobs"""
+    def get_failed_jobs(self, name: Name, threshold: float = None):
 
-        
         api_path = '/health/queue/failed/{name}'
         api_params = {}
         if name is None:
@@ -155,10 +123,8 @@ def get_failed_jobs(self, name, threshold = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_queue_functions(self, threshold = None):
-        """Get functions queue"""
+    def get_queue_functions(self, threshold: float = None):
 
-        
         api_path = '/health/queue/functions'
         api_params = {}
 
@@ -168,10 +134,8 @@ def get_queue_functions(self, threshold = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_queue_logs(self, threshold = None):
-        """Get logs queue"""
+    def get_queue_logs(self, threshold: float = None):
 
-        
         api_path = '/health/queue/logs'
         api_params = {}
 
@@ -181,10 +145,8 @@ def get_queue_logs(self, threshold = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_queue_mails(self, threshold = None):
-        """Get mails queue"""
+    def get_queue_mails(self, threshold: float = None):
 
-        
         api_path = '/health/queue/mails'
         api_params = {}
 
@@ -194,10 +156,8 @@ def get_queue_mails(self, threshold = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_queue_messaging(self, threshold = None):
-        """Get messaging queue"""
+    def get_queue_messaging(self, threshold: float = None):
 
-        
         api_path = '/health/queue/messaging'
         api_params = {}
 
@@ -207,10 +167,8 @@ def get_queue_messaging(self, threshold = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_queue_migrations(self, threshold = None):
-        """Get migrations queue"""
+    def get_queue_migrations(self, threshold: float = None):
 
-        
         api_path = '/health/queue/migrations'
         api_params = {}
 
@@ -220,11 +178,20 @@ def get_queue_migrations(self, threshold = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_queue_usage(self, threshold = None):
-        """Get usage queue"""
+    def get_queue_stats_resources(self, threshold: float = None):
+
+        api_path = '/health/queue/stats-resources'
+        api_params = {}
+
+        api_params['threshold'] = threshold
+
+        return self.client.call('get', api_path, {
+            'content-type': 'application/json',
+        }, api_params)
+
+    def get_queue_usage(self, threshold: float = None):
 
-        
-        api_path = '/health/queue/usage'
+        api_path = '/health/queue/stats-usage'
         api_params = {}
 
         api_params['threshold'] = threshold
@@ -233,11 +200,9 @@ def get_queue_usage(self, threshold = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_queue_usage_dump(self, threshold = None):
-        """Get usage dump queue"""
+    def get_queue_stats_usage_dump(self, threshold: float = None):
 
-        
-        api_path = '/health/queue/usage-dump'
+        api_path = '/health/queue/stats-usage-dump'
         api_params = {}
 
         api_params['threshold'] = threshold
@@ -246,10 +211,8 @@ def get_queue_usage_dump(self, threshold = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_queue_webhooks(self, threshold = None):
-        """Get webhooks queue"""
+    def get_queue_webhooks(self, threshold: float = None):
 
-        
         api_path = '/health/queue/webhooks'
         api_params = {}
 
@@ -260,9 +223,7 @@ def get_queue_webhooks(self, threshold = None):
         }, api_params)
 
     def get_storage(self):
-        """Get storage"""
 
-        
         api_path = '/health/storage'
         api_params = {}
 
@@ -271,9 +232,7 @@ def get_storage(self):
         }, api_params)
 
     def get_storage_local(self):
-        """Get local storage"""
 
-        
         api_path = '/health/storage/local'
         api_params = {}
 
@@ -282,9 +241,7 @@ def get_storage_local(self):
         }, api_params)
 
     def get_time(self):
-        """Get time"""
 
-        
         api_path = '/health/time'
         api_params = {}
 
diff --git a/appwrite/services/locale.py b/appwrite/services/locale.py
index db38754..e77cd93 100644
--- a/appwrite/services/locale.py
+++ b/appwrite/services/locale.py
@@ -7,9 +7,7 @@ def __init__(self, client):
         super(Locale, self).__init__(client)
 
     def get(self):
-        """Get user locale"""
 
-        
         api_path = '/locale'
         api_params = {}
 
@@ -18,9 +16,7 @@ def get(self):
         }, api_params)
 
     def list_codes(self):
-        """List locale codes"""
 
-        
         api_path = '/locale/codes'
         api_params = {}
 
@@ -29,9 +25,7 @@ def list_codes(self):
         }, api_params)
 
     def list_continents(self):
-        """List continents"""
 
-        
         api_path = '/locale/continents'
         api_params = {}
 
@@ -40,9 +34,7 @@ def list_continents(self):
         }, api_params)
 
     def list_countries(self):
-        """List countries"""
 
-        
         api_path = '/locale/countries'
         api_params = {}
 
@@ -51,9 +43,7 @@ def list_countries(self):
         }, api_params)
 
     def list_countries_eu(self):
-        """List EU countries"""
 
-        
         api_path = '/locale/countries/eu'
         api_params = {}
 
@@ -62,9 +52,7 @@ def list_countries_eu(self):
         }, api_params)
 
     def list_countries_phones(self):
-        """List countries phone codes"""
 
-        
         api_path = '/locale/countries/phones'
         api_params = {}
 
@@ -73,9 +61,7 @@ def list_countries_phones(self):
         }, api_params)
 
     def list_currencies(self):
-        """List currencies"""
 
-        
         api_path = '/locale/currencies'
         api_params = {}
 
@@ -84,9 +70,7 @@ def list_currencies(self):
         }, api_params)
 
     def list_languages(self):
-        """List languages"""
 
-        
         api_path = '/locale/languages'
         api_params = {}
 
diff --git a/appwrite/services/messaging.py b/appwrite/services/messaging.py
index f8ce3bf..b62a706 100644
--- a/appwrite/services/messaging.py
+++ b/appwrite/services/messaging.py
@@ -1,15 +1,15 @@
 from ..service import Service
 from ..exception import AppwriteException
+from ..enums.message_priority import MessagePriority;
+from ..enums.smtp_encryption import SmtpEncryption;
 
 class Messaging(Service):
 
     def __init__(self, client):
         super(Messaging, self).__init__(client)
 
-    def list_messages(self, queries = None, search = None):
-        """List messages"""
+    def list_messages(self, queries: list = None, search: str = None):
 
-        
         api_path = '/messaging/messages'
         api_params = {}
 
@@ -20,10 +20,8 @@ def list_messages(self, queries = None, search = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_email(self, message_id, subject, content, topics = None, users = None, targets = None, cc = None, bcc = None, attachments = None, draft = None, html = None, scheduled_at = None):
-        """Create email"""
+    def create_email(self, message_id: str, subject: str, content: str, topics: list = None, users: list = None, targets: list = None, cc: list = None, bcc: list = None, attachments: list = None, draft: bool = None, html: bool = None, scheduled_at: str = None):
 
-        
         api_path = '/messaging/messages/email'
         api_params = {}
         if message_id is None:
@@ -53,10 +51,8 @@ def create_email(self, message_id, subject, content, topics = None, users = None
             'content-type': 'application/json',
         }, api_params)
 
-    def update_email(self, message_id, topics = None, users = None, targets = None, subject = None, content = None, draft = None, html = None, cc = None, bcc = None, scheduled_at = None, attachments = None):
-        """Update email"""
+    def update_email(self, message_id: str, topics: list = None, users: list = None, targets: list = None, subject: str = None, content: str = None, draft: bool = None, html: bool = None, cc: list = None, bcc: list = None, scheduled_at: str = None, attachments: list = None):
 
-        
         api_path = '/messaging/messages/email/{messageId}'
         api_params = {}
         if message_id is None:
@@ -80,10 +76,8 @@ def update_email(self, message_id, topics = None, users = None, targets = None,
             'content-type': 'application/json',
         }, api_params)
 
-    def create_push(self, message_id, title = None, body = None, topics = None, users = None, targets = None, data = None, action = None, image = None, icon = None, sound = None, color = None, tag = None, badge = None, draft = None, scheduled_at = None, content_available = None, critical = None, priority = None):
-        """Create push notification"""
+    def create_push(self, message_id: str, title: str = None, body: str = None, topics: list = None, users: list = None, targets: list = None, data: dict = None, action: str = None, image: str = None, icon: str = None, sound: str = None, color: str = None, tag: str = None, badge: float = None, draft: bool = None, scheduled_at: str = None, content_available: bool = None, critical: bool = None, priority: MessagePriority = None):
 
-        
         api_path = '/messaging/messages/push'
         api_params = {}
         if message_id is None:
@@ -114,10 +108,8 @@ def create_push(self, message_id, title = None, body = None, topics = None, user
             'content-type': 'application/json',
         }, api_params)
 
-    def update_push(self, message_id, topics = None, users = None, targets = None, title = None, body = None, data = None, action = None, image = None, icon = None, sound = None, color = None, tag = None, badge = None, draft = None, scheduled_at = None, content_available = None, critical = None, priority = None):
-        """Update push notification"""
+    def update_push(self, message_id: str, topics: list = None, users: list = None, targets: list = None, title: str = None, body: str = None, data: dict = None, action: str = None, image: str = None, icon: str = None, sound: str = None, color: str = None, tag: str = None, badge: float = None, draft: bool = None, scheduled_at: str = None, content_available: bool = None, critical: bool = None, priority: MessagePriority = None):
 
-        
         api_path = '/messaging/messages/push/{messageId}'
         api_params = {}
         if message_id is None:
@@ -148,10 +140,8 @@ def update_push(self, message_id, topics = None, users = None, targets = None, t
             'content-type': 'application/json',
         }, api_params)
 
-    def create_sms(self, message_id, content, topics = None, users = None, targets = None, draft = None, scheduled_at = None):
-        """Create SMS"""
+    def create_sms(self, message_id: str, content: str, topics: list = None, users: list = None, targets: list = None, draft: bool = None, scheduled_at: str = None):
 
-        
         api_path = '/messaging/messages/sms'
         api_params = {}
         if message_id is None:
@@ -173,10 +163,8 @@ def create_sms(self, message_id, content, topics = None, users = None, targets =
             'content-type': 'application/json',
         }, api_params)
 
-    def update_sms(self, message_id, topics = None, users = None, targets = None, content = None, draft = None, scheduled_at = None):
-        """Update SMS"""
+    def update_sms(self, message_id: str, topics: list = None, users: list = None, targets: list = None, content: str = None, draft: bool = None, scheduled_at: str = None):
 
-        
         api_path = '/messaging/messages/sms/{messageId}'
         api_params = {}
         if message_id is None:
@@ -195,10 +183,8 @@ def update_sms(self, message_id, topics = None, users = None, targets = None, co
             'content-type': 'application/json',
         }, api_params)
 
-    def get_message(self, message_id):
-        """Get message"""
+    def get_message(self, message_id: str):
 
-        
         api_path = '/messaging/messages/{messageId}'
         api_params = {}
         if message_id is None:
@@ -211,10 +197,8 @@ def get_message(self, message_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete(self, message_id):
-        """Delete message"""
+    def delete(self, message_id: str):
 
-        
         api_path = '/messaging/messages/{messageId}'
         api_params = {}
         if message_id is None:
@@ -227,10 +211,8 @@ def delete(self, message_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_message_logs(self, message_id, queries = None):
-        """List message logs"""
+    def list_message_logs(self, message_id: str, queries: list = None):
 
-        
         api_path = '/messaging/messages/{messageId}/logs'
         api_params = {}
         if message_id is None:
@@ -244,10 +226,8 @@ def list_message_logs(self, message_id, queries = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_targets(self, message_id, queries = None):
-        """List message targets"""
+    def list_targets(self, message_id: str, queries: list = None):
 
-        
         api_path = '/messaging/messages/{messageId}/targets'
         api_params = {}
         if message_id is None:
@@ -261,10 +241,8 @@ def list_targets(self, message_id, queries = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_providers(self, queries = None, search = None):
-        """List providers"""
+    def list_providers(self, queries: list = None, search: str = None):
 
-        
         api_path = '/messaging/providers'
         api_params = {}
 
@@ -275,10 +253,8 @@ def list_providers(self, queries = None, search = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_apns_provider(self, provider_id, name, auth_key = None, auth_key_id = None, team_id = None, bundle_id = None, sandbox = None, enabled = None):
-        """Create APNS provider"""
+    def create_apns_provider(self, provider_id: str, name: str, auth_key: str = None, auth_key_id: str = None, team_id: str = None, bundle_id: str = None, sandbox: bool = None, enabled: bool = None):
 
-        
         api_path = '/messaging/providers/apns'
         api_params = {}
         if provider_id is None:
@@ -301,10 +277,8 @@ def create_apns_provider(self, provider_id, name, auth_key = None, auth_key_id =
             'content-type': 'application/json',
         }, api_params)
 
-    def update_apns_provider(self, provider_id, name = None, enabled = None, auth_key = None, auth_key_id = None, team_id = None, bundle_id = None, sandbox = None):
-        """Update APNS provider"""
+    def update_apns_provider(self, provider_id: str, name: str = None, enabled: bool = None, auth_key: str = None, auth_key_id: str = None, team_id: str = None, bundle_id: str = None, sandbox: bool = None):
 
-        
         api_path = '/messaging/providers/apns/{providerId}'
         api_params = {}
         if provider_id is None:
@@ -324,10 +298,8 @@ def update_apns_provider(self, provider_id, name = None, enabled = None, auth_ke
             'content-type': 'application/json',
         }, api_params)
 
-    def create_fcm_provider(self, provider_id, name, service_account_json = None, enabled = None):
-        """Create FCM provider"""
+    def create_fcm_provider(self, provider_id: str, name: str, service_account_json: dict = None, enabled: bool = None):
 
-        
         api_path = '/messaging/providers/fcm'
         api_params = {}
         if provider_id is None:
@@ -346,10 +318,8 @@ def create_fcm_provider(self, provider_id, name, service_account_json = None, en
             'content-type': 'application/json',
         }, api_params)
 
-    def update_fcm_provider(self, provider_id, name = None, enabled = None, service_account_json = None):
-        """Update FCM provider"""
+    def update_fcm_provider(self, provider_id: str, name: str = None, enabled: bool = None, service_account_json: dict = None):
 
-        
         api_path = '/messaging/providers/fcm/{providerId}'
         api_params = {}
         if provider_id is None:
@@ -365,10 +335,8 @@ def update_fcm_provider(self, provider_id, name = None, enabled = None, service_
             'content-type': 'application/json',
         }, api_params)
 
-    def create_mailgun_provider(self, provider_id, name, api_key = None, domain = None, is_eu_region = None, from_name = None, from_email = None, reply_to_name = None, reply_to_email = None, enabled = None):
-        """Create Mailgun provider"""
+    def create_mailgun_provider(self, provider_id: str, name: str, api_key: str = None, domain: str = None, is_eu_region: bool = None, from_name: str = None, from_email: str = None, reply_to_name: str = None, reply_to_email: str = None, enabled: bool = None):
 
-        
         api_path = '/messaging/providers/mailgun'
         api_params = {}
         if provider_id is None:
@@ -393,10 +361,8 @@ def create_mailgun_provider(self, provider_id, name, api_key = None, domain = No
             'content-type': 'application/json',
         }, api_params)
 
-    def update_mailgun_provider(self, provider_id, name = None, api_key = None, domain = None, is_eu_region = None, enabled = None, from_name = None, from_email = None, reply_to_name = None, reply_to_email = None):
-        """Update Mailgun provider"""
+    def update_mailgun_provider(self, provider_id: str, name: str = None, api_key: str = None, domain: str = None, is_eu_region: bool = None, enabled: bool = None, from_name: str = None, from_email: str = None, reply_to_name: str = None, reply_to_email: str = None):
 
-        
         api_path = '/messaging/providers/mailgun/{providerId}'
         api_params = {}
         if provider_id is None:
@@ -418,10 +384,8 @@ def update_mailgun_provider(self, provider_id, name = None, api_key = None, doma
             'content-type': 'application/json',
         }, api_params)
 
-    def create_msg91_provider(self, provider_id, name, template_id = None, sender_id = None, auth_key = None, enabled = None):
-        """Create Msg91 provider"""
+    def create_msg91_provider(self, provider_id: str, name: str, template_id: str = None, sender_id: str = None, auth_key: str = None, enabled: bool = None):
 
-        
         api_path = '/messaging/providers/msg91'
         api_params = {}
         if provider_id is None:
@@ -442,10 +406,8 @@ def create_msg91_provider(self, provider_id, name, template_id = None, sender_id
             'content-type': 'application/json',
         }, api_params)
 
-    def update_msg91_provider(self, provider_id, name = None, enabled = None, template_id = None, sender_id = None, auth_key = None):
-        """Update Msg91 provider"""
+    def update_msg91_provider(self, provider_id: str, name: str = None, enabled: bool = None, template_id: str = None, sender_id: str = None, auth_key: str = None):
 
-        
         api_path = '/messaging/providers/msg91/{providerId}'
         api_params = {}
         if provider_id is None:
@@ -463,10 +425,8 @@ def update_msg91_provider(self, provider_id, name = None, enabled = None, templa
             'content-type': 'application/json',
         }, api_params)
 
-    def create_sendgrid_provider(self, provider_id, name, api_key = None, from_name = None, from_email = None, reply_to_name = None, reply_to_email = None, enabled = None):
-        """Create Sendgrid provider"""
+    def create_sendgrid_provider(self, provider_id: str, name: str, api_key: str = None, from_name: str = None, from_email: str = None, reply_to_name: str = None, reply_to_email: str = None, enabled: bool = None):
 
-        
         api_path = '/messaging/providers/sendgrid'
         api_params = {}
         if provider_id is None:
@@ -489,10 +449,8 @@ def create_sendgrid_provider(self, provider_id, name, api_key = None, from_name
             'content-type': 'application/json',
         }, api_params)
 
-    def update_sendgrid_provider(self, provider_id, name = None, enabled = None, api_key = None, from_name = None, from_email = None, reply_to_name = None, reply_to_email = None):
-        """Update Sendgrid provider"""
+    def update_sendgrid_provider(self, provider_id: str, name: str = None, enabled: bool = None, api_key: str = None, from_name: str = None, from_email: str = None, reply_to_name: str = None, reply_to_email: str = None):
 
-        
         api_path = '/messaging/providers/sendgrid/{providerId}'
         api_params = {}
         if provider_id is None:
@@ -512,10 +470,8 @@ def update_sendgrid_provider(self, provider_id, name = None, enabled = None, api
             'content-type': 'application/json',
         }, api_params)
 
-    def create_smtp_provider(self, provider_id, name, host, port = None, username = None, password = None, encryption = None, auto_tls = None, mailer = None, from_name = None, from_email = None, reply_to_name = None, reply_to_email = None, enabled = None):
-        """Create SMTP provider"""
+    def create_smtp_provider(self, provider_id: str, name: str, host: str, port: float = None, username: str = None, password: str = None, encryption: SmtpEncryption = None, auto_tls: bool = None, mailer: str = None, from_name: str = None, from_email: str = None, reply_to_name: str = None, reply_to_email: str = None, enabled: bool = None):
 
-        
         api_path = '/messaging/providers/smtp'
         api_params = {}
         if provider_id is None:
@@ -547,10 +503,8 @@ def create_smtp_provider(self, provider_id, name, host, port = None, username =
             'content-type': 'application/json',
         }, api_params)
 
-    def update_smtp_provider(self, provider_id, name = None, host = None, port = None, username = None, password = None, encryption = None, auto_tls = None, mailer = None, from_name = None, from_email = None, reply_to_name = None, reply_to_email = None, enabled = None):
-        """Update SMTP provider"""
+    def update_smtp_provider(self, provider_id: str, name: str = None, host: str = None, port: float = None, username: str = None, password: str = None, encryption: SmtpEncryption = None, auto_tls: bool = None, mailer: str = None, from_name: str = None, from_email: str = None, reply_to_name: str = None, reply_to_email: str = None, enabled: bool = None):
 
-        
         api_path = '/messaging/providers/smtp/{providerId}'
         api_params = {}
         if provider_id is None:
@@ -576,10 +530,8 @@ def update_smtp_provider(self, provider_id, name = None, host = None, port = Non
             'content-type': 'application/json',
         }, api_params)
 
-    def create_telesign_provider(self, provider_id, name, xfrom = None, customer_id = None, api_key = None, enabled = None):
-        """Create Telesign provider"""
+    def create_telesign_provider(self, provider_id: str, name: str, xfrom: str = None, customer_id: str = None, api_key: str = None, enabled: bool = None):
 
-        
         api_path = '/messaging/providers/telesign'
         api_params = {}
         if provider_id is None:
@@ -600,10 +552,8 @@ def create_telesign_provider(self, provider_id, name, xfrom = None, customer_id
             'content-type': 'application/json',
         }, api_params)
 
-    def update_telesign_provider(self, provider_id, name = None, enabled = None, customer_id = None, api_key = None, xfrom = None):
-        """Update Telesign provider"""
+    def update_telesign_provider(self, provider_id: str, name: str = None, enabled: bool = None, customer_id: str = None, api_key: str = None, xfrom: str = None):
 
-        
         api_path = '/messaging/providers/telesign/{providerId}'
         api_params = {}
         if provider_id is None:
@@ -621,10 +571,8 @@ def update_telesign_provider(self, provider_id, name = None, enabled = None, cus
             'content-type': 'application/json',
         }, api_params)
 
-    def create_textmagic_provider(self, provider_id, name, xfrom = None, username = None, api_key = None, enabled = None):
-        """Create Textmagic provider"""
+    def create_textmagic_provider(self, provider_id: str, name: str, xfrom: str = None, username: str = None, api_key: str = None, enabled: bool = None):
 
-        
         api_path = '/messaging/providers/textmagic'
         api_params = {}
         if provider_id is None:
@@ -645,10 +593,8 @@ def create_textmagic_provider(self, provider_id, name, xfrom = None, username =
             'content-type': 'application/json',
         }, api_params)
 
-    def update_textmagic_provider(self, provider_id, name = None, enabled = None, username = None, api_key = None, xfrom = None):
-        """Update Textmagic provider"""
+    def update_textmagic_provider(self, provider_id: str, name: str = None, enabled: bool = None, username: str = None, api_key: str = None, xfrom: str = None):
 
-        
         api_path = '/messaging/providers/textmagic/{providerId}'
         api_params = {}
         if provider_id is None:
@@ -666,10 +612,8 @@ def update_textmagic_provider(self, provider_id, name = None, enabled = None, us
             'content-type': 'application/json',
         }, api_params)
 
-    def create_twilio_provider(self, provider_id, name, xfrom = None, account_sid = None, auth_token = None, enabled = None):
-        """Create Twilio provider"""
+    def create_twilio_provider(self, provider_id: str, name: str, xfrom: str = None, account_sid: str = None, auth_token: str = None, enabled: bool = None):
 
-        
         api_path = '/messaging/providers/twilio'
         api_params = {}
         if provider_id is None:
@@ -690,10 +634,8 @@ def create_twilio_provider(self, provider_id, name, xfrom = None, account_sid =
             'content-type': 'application/json',
         }, api_params)
 
-    def update_twilio_provider(self, provider_id, name = None, enabled = None, account_sid = None, auth_token = None, xfrom = None):
-        """Update Twilio provider"""
+    def update_twilio_provider(self, provider_id: str, name: str = None, enabled: bool = None, account_sid: str = None, auth_token: str = None, xfrom: str = None):
 
-        
         api_path = '/messaging/providers/twilio/{providerId}'
         api_params = {}
         if provider_id is None:
@@ -711,10 +653,8 @@ def update_twilio_provider(self, provider_id, name = None, enabled = None, accou
             'content-type': 'application/json',
         }, api_params)
 
-    def create_vonage_provider(self, provider_id, name, xfrom = None, api_key = None, api_secret = None, enabled = None):
-        """Create Vonage provider"""
+    def create_vonage_provider(self, provider_id: str, name: str, xfrom: str = None, api_key: str = None, api_secret: str = None, enabled: bool = None):
 
-        
         api_path = '/messaging/providers/vonage'
         api_params = {}
         if provider_id is None:
@@ -735,10 +675,8 @@ def create_vonage_provider(self, provider_id, name, xfrom = None, api_key = None
             'content-type': 'application/json',
         }, api_params)
 
-    def update_vonage_provider(self, provider_id, name = None, enabled = None, api_key = None, api_secret = None, xfrom = None):
-        """Update Vonage provider"""
+    def update_vonage_provider(self, provider_id: str, name: str = None, enabled: bool = None, api_key: str = None, api_secret: str = None, xfrom: str = None):
 
-        
         api_path = '/messaging/providers/vonage/{providerId}'
         api_params = {}
         if provider_id is None:
@@ -756,10 +694,8 @@ def update_vonage_provider(self, provider_id, name = None, enabled = None, api_k
             'content-type': 'application/json',
         }, api_params)
 
-    def get_provider(self, provider_id):
-        """Get provider"""
+    def get_provider(self, provider_id: str):
 
-        
         api_path = '/messaging/providers/{providerId}'
         api_params = {}
         if provider_id is None:
@@ -772,10 +708,8 @@ def get_provider(self, provider_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_provider(self, provider_id):
-        """Delete provider"""
+    def delete_provider(self, provider_id: str):
 
-        
         api_path = '/messaging/providers/{providerId}'
         api_params = {}
         if provider_id is None:
@@ -788,10 +722,8 @@ def delete_provider(self, provider_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_provider_logs(self, provider_id, queries = None):
-        """List provider logs"""
+    def list_provider_logs(self, provider_id: str, queries: list = None):
 
-        
         api_path = '/messaging/providers/{providerId}/logs'
         api_params = {}
         if provider_id is None:
@@ -805,10 +737,8 @@ def list_provider_logs(self, provider_id, queries = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_subscriber_logs(self, subscriber_id, queries = None):
-        """List subscriber logs"""
+    def list_subscriber_logs(self, subscriber_id: str, queries: list = None):
 
-        
         api_path = '/messaging/subscribers/{subscriberId}/logs'
         api_params = {}
         if subscriber_id is None:
@@ -822,10 +752,8 @@ def list_subscriber_logs(self, subscriber_id, queries = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_topics(self, queries = None, search = None):
-        """List topics"""
+    def list_topics(self, queries: list = None, search: str = None):
 
-        
         api_path = '/messaging/topics'
         api_params = {}
 
@@ -836,10 +764,8 @@ def list_topics(self, queries = None, search = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_topic(self, topic_id, name, subscribe = None):
-        """Create topic"""
+    def create_topic(self, topic_id: str, name: str, subscribe: list = None):
 
-        
         api_path = '/messaging/topics'
         api_params = {}
         if topic_id is None:
@@ -857,10 +783,8 @@ def create_topic(self, topic_id, name, subscribe = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_topic(self, topic_id):
-        """Get topic"""
+    def get_topic(self, topic_id: str):
 
-        
         api_path = '/messaging/topics/{topicId}'
         api_params = {}
         if topic_id is None:
@@ -873,10 +797,8 @@ def get_topic(self, topic_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_topic(self, topic_id, name = None, subscribe = None):
-        """Update topic"""
+    def update_topic(self, topic_id: str, name: str = None, subscribe: list = None):
 
-        
         api_path = '/messaging/topics/{topicId}'
         api_params = {}
         if topic_id is None:
@@ -891,10 +813,8 @@ def update_topic(self, topic_id, name = None, subscribe = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_topic(self, topic_id):
-        """Delete topic"""
+    def delete_topic(self, topic_id: str):
 
-        
         api_path = '/messaging/topics/{topicId}'
         api_params = {}
         if topic_id is None:
@@ -907,10 +827,8 @@ def delete_topic(self, topic_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_topic_logs(self, topic_id, queries = None):
-        """List topic logs"""
+    def list_topic_logs(self, topic_id: str, queries: list = None):
 
-        
         api_path = '/messaging/topics/{topicId}/logs'
         api_params = {}
         if topic_id is None:
@@ -924,10 +842,8 @@ def list_topic_logs(self, topic_id, queries = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_subscribers(self, topic_id, queries = None, search = None):
-        """List subscribers"""
+    def list_subscribers(self, topic_id: str, queries: list = None, search: str = None):
 
-        
         api_path = '/messaging/topics/{topicId}/subscribers'
         api_params = {}
         if topic_id is None:
@@ -942,10 +858,8 @@ def list_subscribers(self, topic_id, queries = None, search = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_subscriber(self, topic_id, subscriber_id, target_id):
-        """Create subscriber"""
+    def create_subscriber(self, topic_id: str, subscriber_id: str, target_id: str):
 
-        
         api_path = '/messaging/topics/{topicId}/subscribers'
         api_params = {}
         if topic_id is None:
@@ -966,10 +880,8 @@ def create_subscriber(self, topic_id, subscriber_id, target_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_subscriber(self, topic_id, subscriber_id):
-        """Get subscriber"""
+    def get_subscriber(self, topic_id: str, subscriber_id: str):
 
-        
         api_path = '/messaging/topics/{topicId}/subscribers/{subscriberId}'
         api_params = {}
         if topic_id is None:
@@ -986,10 +898,8 @@ def get_subscriber(self, topic_id, subscriber_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_subscriber(self, topic_id, subscriber_id):
-        """Delete subscriber"""
+    def delete_subscriber(self, topic_id: str, subscriber_id: str):
 
-        
         api_path = '/messaging/topics/{topicId}/subscribers/{subscriberId}'
         api_params = {}
         if topic_id is None:
diff --git a/appwrite/services/storage.py b/appwrite/services/storage.py
index 9acbb3a..0e57cfe 100644
--- a/appwrite/services/storage.py
+++ b/appwrite/services/storage.py
@@ -1,15 +1,17 @@
 from ..service import Service
 from ..exception import AppwriteException
+from ..enums.compression import Compression;
+from ..input_file import InputFile
+from ..enums.image_gravity import ImageGravity;
+from ..enums.image_format import ImageFormat;
 
 class Storage(Service):
 
     def __init__(self, client):
         super(Storage, self).__init__(client)
 
-    def list_buckets(self, queries = None, search = None):
-        """List buckets"""
+    def list_buckets(self, queries: list = None, search: str = None):
 
-        
         api_path = '/storage/buckets'
         api_params = {}
 
@@ -20,10 +22,8 @@ def list_buckets(self, queries = None, search = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_bucket(self, bucket_id, name, permissions = None, file_security = None, enabled = None, maximum_file_size = None, allowed_file_extensions = None, compression = None, encryption = None, antivirus = None):
-        """Create bucket"""
+    def create_bucket(self, bucket_id: str, name: str, permissions: list = None, file_security: bool = None, enabled: bool = None, maximum_file_size: float = None, allowed_file_extensions: list = None, compression: Compression = None, encryption: bool = None, antivirus: bool = None):
 
-        
         api_path = '/storage/buckets'
         api_params = {}
         if bucket_id is None:
@@ -48,10 +48,8 @@ def create_bucket(self, bucket_id, name, permissions = None, file_security = Non
             'content-type': 'application/json',
         }, api_params)
 
-    def get_bucket(self, bucket_id):
-        """Get bucket"""
+    def get_bucket(self, bucket_id: str):
 
-        
         api_path = '/storage/buckets/{bucketId}'
         api_params = {}
         if bucket_id is None:
@@ -64,10 +62,8 @@ def get_bucket(self, bucket_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_bucket(self, bucket_id, name, permissions = None, file_security = None, enabled = None, maximum_file_size = None, allowed_file_extensions = None, compression = None, encryption = None, antivirus = None):
-        """Update bucket"""
+    def update_bucket(self, bucket_id: str, name: str, permissions: list = None, file_security: bool = None, enabled: bool = None, maximum_file_size: float = None, allowed_file_extensions: list = None, compression: Compression = None, encryption: bool = None, antivirus: bool = None):
 
-        
         api_path = '/storage/buckets/{bucketId}'
         api_params = {}
         if bucket_id is None:
@@ -92,10 +88,8 @@ def update_bucket(self, bucket_id, name, permissions = None, file_security = Non
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_bucket(self, bucket_id):
-        """Delete bucket"""
+    def delete_bucket(self, bucket_id: str):
 
-        
         api_path = '/storage/buckets/{bucketId}'
         api_params = {}
         if bucket_id is None:
@@ -108,10 +102,8 @@ def delete_bucket(self, bucket_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_files(self, bucket_id, queries = None, search = None):
-        """List files"""
+    def list_files(self, bucket_id: str, queries: list = None, search: str = None):
 
-        
         api_path = '/storage/buckets/{bucketId}/files'
         api_params = {}
         if bucket_id is None:
@@ -126,10 +118,8 @@ def list_files(self, bucket_id, queries = None, search = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_file(self, bucket_id, file_id, file, permissions = None, on_progress = None):
-        """Create file"""
+    def create_file(self, bucket_id: str, file_id: str, file: InputFile, permissions: list = None, on_progress = None):
 
-        
         api_path = '/storage/buckets/{bucketId}/files'
         api_params = {}
         if bucket_id is None:
@@ -157,10 +147,8 @@ def create_file(self, bucket_id, file_id, file, permissions = None, on_progress
             'content-type': 'multipart/form-data',
         }, api_params, param_name, on_progress, upload_id)
 
-    def get_file(self, bucket_id, file_id):
-        """Get file"""
+    def get_file(self, bucket_id: str, file_id: str):
 
-        
         api_path = '/storage/buckets/{bucketId}/files/{fileId}'
         api_params = {}
         if bucket_id is None:
@@ -177,10 +165,8 @@ def get_file(self, bucket_id, file_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_file(self, bucket_id, file_id, name = None, permissions = None):
-        """Update file"""
+    def update_file(self, bucket_id: str, file_id: str, name: str = None, permissions: list = None):
 
-        
         api_path = '/storage/buckets/{bucketId}/files/{fileId}'
         api_params = {}
         if bucket_id is None:
@@ -199,10 +185,8 @@ def update_file(self, bucket_id, file_id, name = None, permissions = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_file(self, bucket_id, file_id):
-        """Delete file"""
+    def delete_file(self, bucket_id: str, file_id: str):
 
-        
         api_path = '/storage/buckets/{bucketId}/files/{fileId}'
         api_params = {}
         if bucket_id is None:
@@ -219,10 +203,8 @@ def delete_file(self, bucket_id, file_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_file_download(self, bucket_id, file_id):
-        """Get file for download"""
+    def get_file_download(self, bucket_id: str, file_id: str):
 
-        
         api_path = '/storage/buckets/{bucketId}/files/{fileId}/download'
         api_params = {}
         if bucket_id is None:
@@ -239,10 +221,8 @@ def get_file_download(self, bucket_id, file_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_file_preview(self, bucket_id, file_id, width = None, height = None, gravity = None, quality = None, border_width = None, border_color = None, border_radius = None, opacity = None, rotation = None, background = None, output = None):
-        """Get file preview"""
+    def get_file_preview(self, bucket_id: str, file_id: str, width: float = None, height: float = None, gravity: ImageGravity = None, quality: float = None, border_width: float = None, border_color: str = None, border_radius: float = None, opacity: float = None, rotation: float = None, background: str = None, output: ImageFormat = None):
 
-        
         api_path = '/storage/buckets/{bucketId}/files/{fileId}/preview'
         api_params = {}
         if bucket_id is None:
@@ -270,10 +250,8 @@ def get_file_preview(self, bucket_id, file_id, width = None, height = None, grav
             'content-type': 'application/json',
         }, api_params)
 
-    def get_file_view(self, bucket_id, file_id):
-        """Get file for view"""
+    def get_file_view(self, bucket_id: str, file_id: str):
 
-        
         api_path = '/storage/buckets/{bucketId}/files/{fileId}/view'
         api_params = {}
         if bucket_id is None:
diff --git a/appwrite/services/teams.py b/appwrite/services/teams.py
index 2c387ed..988bf3c 100644
--- a/appwrite/services/teams.py
+++ b/appwrite/services/teams.py
@@ -6,10 +6,8 @@ class Teams(Service):
     def __init__(self, client):
         super(Teams, self).__init__(client)
 
-    def list(self, queries = None, search = None):
-        """List teams"""
+    def list(self, queries: list = None, search: str = None):
 
-        
         api_path = '/teams'
         api_params = {}
 
@@ -20,10 +18,8 @@ def list(self, queries = None, search = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create(self, team_id, name, roles = None):
-        """Create team"""
+    def create(self, team_id: str, name: str, roles: list = None):
 
-        
         api_path = '/teams'
         api_params = {}
         if team_id is None:
@@ -41,10 +37,8 @@ def create(self, team_id, name, roles = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def get(self, team_id):
-        """Get team"""
+    def get(self, team_id: str):
 
-        
         api_path = '/teams/{teamId}'
         api_params = {}
         if team_id is None:
@@ -57,10 +51,8 @@ def get(self, team_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_name(self, team_id, name):
-        """Update name"""
+    def update_name(self, team_id: str, name: str):
 
-        
         api_path = '/teams/{teamId}'
         api_params = {}
         if team_id is None:
@@ -77,10 +69,8 @@ def update_name(self, team_id, name):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete(self, team_id):
-        """Delete team"""
+    def delete(self, team_id: str):
 
-        
         api_path = '/teams/{teamId}'
         api_params = {}
         if team_id is None:
@@ -93,10 +83,8 @@ def delete(self, team_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_memberships(self, team_id, queries = None, search = None):
-        """List team memberships"""
+    def list_memberships(self, team_id: str, queries: list = None, search: str = None):
 
-        
         api_path = '/teams/{teamId}/memberships'
         api_params = {}
         if team_id is None:
@@ -111,10 +99,8 @@ def list_memberships(self, team_id, queries = None, search = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_membership(self, team_id, roles, email = None, user_id = None, phone = None, url = None, name = None):
-        """Create team membership"""
+    def create_membership(self, team_id: str, roles: list, email: str = None, user_id: str = None, phone: str = None, url: str = None, name: str = None):
 
-        
         api_path = '/teams/{teamId}/memberships'
         api_params = {}
         if team_id is None:
@@ -136,10 +122,8 @@ def create_membership(self, team_id, roles, email = None, user_id = None, phone
             'content-type': 'application/json',
         }, api_params)
 
-    def get_membership(self, team_id, membership_id):
-        """Get team membership"""
+    def get_membership(self, team_id: str, membership_id: str):
 
-        
         api_path = '/teams/{teamId}/memberships/{membershipId}'
         api_params = {}
         if team_id is None:
@@ -156,10 +140,8 @@ def get_membership(self, team_id, membership_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_membership(self, team_id, membership_id, roles):
-        """Update membership"""
+    def update_membership(self, team_id: str, membership_id: str, roles: list):
 
-        
         api_path = '/teams/{teamId}/memberships/{membershipId}'
         api_params = {}
         if team_id is None:
@@ -180,10 +162,8 @@ def update_membership(self, team_id, membership_id, roles):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_membership(self, team_id, membership_id):
-        """Delete team membership"""
+    def delete_membership(self, team_id: str, membership_id: str):
 
-        
         api_path = '/teams/{teamId}/memberships/{membershipId}'
         api_params = {}
         if team_id is None:
@@ -200,10 +180,8 @@ def delete_membership(self, team_id, membership_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_membership_status(self, team_id, membership_id, user_id, secret):
-        """Update team membership status"""
+    def update_membership_status(self, team_id: str, membership_id: str, user_id: str, secret: str):
 
-        
         api_path = '/teams/{teamId}/memberships/{membershipId}/status'
         api_params = {}
         if team_id is None:
@@ -228,10 +206,8 @@ def update_membership_status(self, team_id, membership_id, user_id, secret):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_prefs(self, team_id):
-        """Get team preferences"""
+    def get_prefs(self, team_id: str):
 
-        
         api_path = '/teams/{teamId}/prefs'
         api_params = {}
         if team_id is None:
@@ -244,10 +220,8 @@ def get_prefs(self, team_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_prefs(self, team_id, prefs):
-        """Update preferences"""
+    def update_prefs(self, team_id: str, prefs: dict):
 
-        
         api_path = '/teams/{teamId}/prefs'
         api_params = {}
         if team_id is None:
diff --git a/appwrite/services/users.py b/appwrite/services/users.py
index aa04a72..1a141db 100644
--- a/appwrite/services/users.py
+++ b/appwrite/services/users.py
@@ -1,15 +1,16 @@
 from ..service import Service
 from ..exception import AppwriteException
+from ..enums.password_hash import PasswordHash;
+from ..enums.authenticator_type import AuthenticatorType;
+from ..enums.messaging_provider_type import MessagingProviderType;
 
 class Users(Service):
 
     def __init__(self, client):
         super(Users, self).__init__(client)
 
-    def list(self, queries = None, search = None):
-        """List users"""
+    def list(self, queries: list = None, search: str = None):
 
-        
         api_path = '/users'
         api_params = {}
 
@@ -20,10 +21,8 @@ def list(self, queries = None, search = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create(self, user_id, email = None, phone = None, password = None, name = None):
-        """Create user"""
+    def create(self, user_id: str, email: str = None, phone: str = None, password: str = None, name: str = None):
 
-        
         api_path = '/users'
         api_params = {}
         if user_id is None:
@@ -40,10 +39,8 @@ def create(self, user_id, email = None, phone = None, password = None, name = No
             'content-type': 'application/json',
         }, api_params)
 
-    def create_argon2_user(self, user_id, email, password, name = None):
-        """Create user with Argon2 password"""
+    def create_argon2_user(self, user_id: str, email: str, password: str, name: str = None):
 
-        
         api_path = '/users/argon2'
         api_params = {}
         if user_id is None:
@@ -65,10 +62,8 @@ def create_argon2_user(self, user_id, email, password, name = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_bcrypt_user(self, user_id, email, password, name = None):
-        """Create user with bcrypt password"""
+    def create_bcrypt_user(self, user_id: str, email: str, password: str, name: str = None):
 
-        
         api_path = '/users/bcrypt'
         api_params = {}
         if user_id is None:
@@ -90,10 +85,8 @@ def create_bcrypt_user(self, user_id, email, password, name = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_identities(self, queries = None, search = None):
-        """List identities"""
+    def list_identities(self, queries: list = None, search: str = None):
 
-        
         api_path = '/users/identities'
         api_params = {}
 
@@ -104,10 +97,8 @@ def list_identities(self, queries = None, search = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_identity(self, identity_id):
-        """Delete identity"""
+    def delete_identity(self, identity_id: str):
 
-        
         api_path = '/users/identities/{identityId}'
         api_params = {}
         if identity_id is None:
@@ -120,10 +111,8 @@ def delete_identity(self, identity_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_md5_user(self, user_id, email, password, name = None):
-        """Create user with MD5 password"""
+    def create_md5_user(self, user_id: str, email: str, password: str, name: str = None):
 
-        
         api_path = '/users/md5'
         api_params = {}
         if user_id is None:
@@ -145,10 +134,8 @@ def create_md5_user(self, user_id, email, password, name = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_ph_pass_user(self, user_id, email, password, name = None):
-        """Create user with PHPass password"""
+    def create_ph_pass_user(self, user_id: str, email: str, password: str, name: str = None):
 
-        
         api_path = '/users/phpass'
         api_params = {}
         if user_id is None:
@@ -170,10 +157,8 @@ def create_ph_pass_user(self, user_id, email, password, name = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_scrypt_user(self, user_id, email, password, password_salt, password_cpu, password_memory, password_parallel, password_length, name = None):
-        """Create user with Scrypt password"""
+    def create_scrypt_user(self, user_id: str, email: str, password: str, password_salt: str, password_cpu: float, password_memory: float, password_parallel: float, password_length: float, name: str = None):
 
-        
         api_path = '/users/scrypt'
         api_params = {}
         if user_id is None:
@@ -215,10 +200,8 @@ def create_scrypt_user(self, user_id, email, password, password_salt, password_c
             'content-type': 'application/json',
         }, api_params)
 
-    def create_scrypt_modified_user(self, user_id, email, password, password_salt, password_salt_separator, password_signer_key, name = None):
-        """Create user with Scrypt modified password"""
+    def create_scrypt_modified_user(self, user_id: str, email: str, password: str, password_salt: str, password_salt_separator: str, password_signer_key: str, name: str = None):
 
-        
         api_path = '/users/scrypt-modified'
         api_params = {}
         if user_id is None:
@@ -252,10 +235,8 @@ def create_scrypt_modified_user(self, user_id, email, password, password_salt, p
             'content-type': 'application/json',
         }, api_params)
 
-    def create_sha_user(self, user_id, email, password, password_version = None, name = None):
-        """Create user with SHA password"""
+    def create_sha_user(self, user_id: str, email: str, password: str, password_version: PasswordHash = None, name: str = None):
 
-        
         api_path = '/users/sha'
         api_params = {}
         if user_id is None:
@@ -278,10 +259,8 @@ def create_sha_user(self, user_id, email, password, password_version = None, nam
             'content-type': 'application/json',
         }, api_params)
 
-    def get(self, user_id):
-        """Get user"""
+    def get(self, user_id: str):
 
-        
         api_path = '/users/{userId}'
         api_params = {}
         if user_id is None:
@@ -294,10 +273,8 @@ def get(self, user_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete(self, user_id):
-        """Delete user"""
+    def delete(self, user_id: str):
 
-        
         api_path = '/users/{userId}'
         api_params = {}
         if user_id is None:
@@ -310,10 +287,8 @@ def delete(self, user_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_email(self, user_id, email):
-        """Update email"""
+    def update_email(self, user_id: str, email: str):
 
-        
         api_path = '/users/{userId}/email'
         api_params = {}
         if user_id is None:
@@ -330,10 +305,8 @@ def update_email(self, user_id, email):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_jwt(self, user_id, session_id = None, duration = None):
-        """Create user JWT"""
+    def create_jwt(self, user_id: str, session_id: str = None, duration: float = None):
 
-        
         api_path = '/users/{userId}/jwts'
         api_params = {}
         if user_id is None:
@@ -348,10 +321,8 @@ def create_jwt(self, user_id, session_id = None, duration = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_labels(self, user_id, labels):
-        """Update user labels"""
+    def update_labels(self, user_id: str, labels: list):
 
-        
         api_path = '/users/{userId}/labels'
         api_params = {}
         if user_id is None:
@@ -368,10 +339,8 @@ def update_labels(self, user_id, labels):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_logs(self, user_id, queries = None):
-        """List user logs"""
+    def list_logs(self, user_id: str, queries: list = None):
 
-        
         api_path = '/users/{userId}/logs'
         api_params = {}
         if user_id is None:
@@ -385,10 +354,8 @@ def list_logs(self, user_id, queries = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_memberships(self, user_id):
-        """List user memberships"""
+    def list_memberships(self, user_id: str):
 
-        
         api_path = '/users/{userId}/memberships'
         api_params = {}
         if user_id is None:
@@ -401,10 +368,8 @@ def list_memberships(self, user_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_mfa(self, user_id, mfa):
-        """Update MFA"""
+    def update_mfa(self, user_id: str, mfa: bool):
 
-        
         api_path = '/users/{userId}/mfa'
         api_params = {}
         if user_id is None:
@@ -421,10 +386,8 @@ def update_mfa(self, user_id, mfa):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_mfa_authenticator(self, user_id, type):
-        """Delete authenticator"""
+    def delete_mfa_authenticator(self, user_id: str, type: AuthenticatorType):
 
-        
         api_path = '/users/{userId}/mfa/authenticators/{type}'
         api_params = {}
         if user_id is None:
@@ -441,10 +404,8 @@ def delete_mfa_authenticator(self, user_id, type):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_mfa_factors(self, user_id):
-        """List factors"""
+    def list_mfa_factors(self, user_id: str):
 
-        
         api_path = '/users/{userId}/mfa/factors'
         api_params = {}
         if user_id is None:
@@ -457,10 +418,8 @@ def list_mfa_factors(self, user_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_mfa_recovery_codes(self, user_id):
-        """Get MFA recovery codes"""
+    def get_mfa_recovery_codes(self, user_id: str):
 
-        
         api_path = '/users/{userId}/mfa/recovery-codes'
         api_params = {}
         if user_id is None:
@@ -473,10 +432,8 @@ def get_mfa_recovery_codes(self, user_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_mfa_recovery_codes(self, user_id):
-        """Regenerate MFA recovery codes"""
+    def update_mfa_recovery_codes(self, user_id: str):
 
-        
         api_path = '/users/{userId}/mfa/recovery-codes'
         api_params = {}
         if user_id is None:
@@ -489,10 +446,8 @@ def update_mfa_recovery_codes(self, user_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_mfa_recovery_codes(self, user_id):
-        """Create MFA recovery codes"""
+    def create_mfa_recovery_codes(self, user_id: str):
 
-        
         api_path = '/users/{userId}/mfa/recovery-codes'
         api_params = {}
         if user_id is None:
@@ -505,10 +460,8 @@ def create_mfa_recovery_codes(self, user_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_name(self, user_id, name):
-        """Update name"""
+    def update_name(self, user_id: str, name: str):
 
-        
         api_path = '/users/{userId}/name'
         api_params = {}
         if user_id is None:
@@ -525,10 +478,8 @@ def update_name(self, user_id, name):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_password(self, user_id, password):
-        """Update password"""
+    def update_password(self, user_id: str, password: str):
 
-        
         api_path = '/users/{userId}/password'
         api_params = {}
         if user_id is None:
@@ -545,10 +496,8 @@ def update_password(self, user_id, password):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_phone(self, user_id, number):
-        """Update phone"""
+    def update_phone(self, user_id: str, number: str):
 
-        
         api_path = '/users/{userId}/phone'
         api_params = {}
         if user_id is None:
@@ -565,10 +514,8 @@ def update_phone(self, user_id, number):
             'content-type': 'application/json',
         }, api_params)
 
-    def get_prefs(self, user_id):
-        """Get user preferences"""
+    def get_prefs(self, user_id: str):
 
-        
         api_path = '/users/{userId}/prefs'
         api_params = {}
         if user_id is None:
@@ -581,10 +528,8 @@ def get_prefs(self, user_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_prefs(self, user_id, prefs):
-        """Update user preferences"""
+    def update_prefs(self, user_id: str, prefs: dict):
 
-        
         api_path = '/users/{userId}/prefs'
         api_params = {}
         if user_id is None:
@@ -601,10 +546,8 @@ def update_prefs(self, user_id, prefs):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_sessions(self, user_id):
-        """List user sessions"""
+    def list_sessions(self, user_id: str):
 
-        
         api_path = '/users/{userId}/sessions'
         api_params = {}
         if user_id is None:
@@ -617,10 +560,8 @@ def list_sessions(self, user_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_session(self, user_id):
-        """Create session"""
+    def create_session(self, user_id: str):
 
-        
         api_path = '/users/{userId}/sessions'
         api_params = {}
         if user_id is None:
@@ -633,10 +574,8 @@ def create_session(self, user_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_sessions(self, user_id):
-        """Delete user sessions"""
+    def delete_sessions(self, user_id: str):
 
-        
         api_path = '/users/{userId}/sessions'
         api_params = {}
         if user_id is None:
@@ -649,10 +588,8 @@ def delete_sessions(self, user_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_session(self, user_id, session_id):
-        """Delete user session"""
+    def delete_session(self, user_id: str, session_id: str):
 
-        
         api_path = '/users/{userId}/sessions/{sessionId}'
         api_params = {}
         if user_id is None:
@@ -669,10 +606,8 @@ def delete_session(self, user_id, session_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_status(self, user_id, status):
-        """Update user status"""
+    def update_status(self, user_id: str, status: bool):
 
-        
         api_path = '/users/{userId}/status'
         api_params = {}
         if user_id is None:
@@ -689,10 +624,8 @@ def update_status(self, user_id, status):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_targets(self, user_id, queries = None):
-        """List user targets"""
+    def list_targets(self, user_id: str, queries: list = None):
 
-        
         api_path = '/users/{userId}/targets'
         api_params = {}
         if user_id is None:
@@ -706,10 +639,8 @@ def list_targets(self, user_id, queries = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_target(self, user_id, target_id, provider_type, identifier, provider_id = None, name = None):
-        """Create user target"""
+    def create_target(self, user_id: str, target_id: str, provider_type: MessagingProviderType, identifier: str, provider_id: str = None, name: str = None):
 
-        
         api_path = '/users/{userId}/targets'
         api_params = {}
         if user_id is None:
@@ -736,10 +667,8 @@ def create_target(self, user_id, target_id, provider_type, identifier, provider_
             'content-type': 'application/json',
         }, api_params)
 
-    def get_target(self, user_id, target_id):
-        """Get user target"""
+    def get_target(self, user_id: str, target_id: str):
 
-        
         api_path = '/users/{userId}/targets/{targetId}'
         api_params = {}
         if user_id is None:
@@ -756,10 +685,8 @@ def get_target(self, user_id, target_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_target(self, user_id, target_id, identifier = None, provider_id = None, name = None):
-        """Update user target"""
+    def update_target(self, user_id: str, target_id: str, identifier: str = None, provider_id: str = None, name: str = None):
 
-        
         api_path = '/users/{userId}/targets/{targetId}'
         api_params = {}
         if user_id is None:
@@ -779,10 +706,8 @@ def update_target(self, user_id, target_id, identifier = None, provider_id = Non
             'content-type': 'application/json',
         }, api_params)
 
-    def delete_target(self, user_id, target_id):
-        """Delete user target"""
+    def delete_target(self, user_id: str, target_id: str):
 
-        
         api_path = '/users/{userId}/targets/{targetId}'
         api_params = {}
         if user_id is None:
@@ -799,10 +724,8 @@ def delete_target(self, user_id, target_id):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_token(self, user_id, length = None, expire = None):
-        """Create token"""
+    def create_token(self, user_id: str, length: float = None, expire: float = None):
 
-        
         api_path = '/users/{userId}/tokens'
         api_params = {}
         if user_id is None:
@@ -817,10 +740,8 @@ def create_token(self, user_id, length = None, expire = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_email_verification(self, user_id, email_verification):
-        """Update email verification"""
+    def update_email_verification(self, user_id: str, email_verification: bool):
 
-        
         api_path = '/users/{userId}/verification'
         api_params = {}
         if user_id is None:
@@ -837,10 +758,8 @@ def update_email_verification(self, user_id, email_verification):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_phone_verification(self, user_id, phone_verification):
-        """Update phone verification"""
+    def update_phone_verification(self, user_id: str, phone_verification: bool):
 
-        
         api_path = '/users/{userId}/verification/phone'
         api_params = {}
         if user_id is None:
diff --git a/docs/examples/databases/update-float-attribute.md b/docs/examples/databases/update-float-attribute.md
index 8f8a35a..d16b9bb 100644
--- a/docs/examples/databases/update-float-attribute.md
+++ b/docs/examples/databases/update-float-attribute.md
@@ -13,8 +13,8 @@ result = databases.update_float_attribute(
     collection_id = '<COLLECTION_ID>',
     key = '',
     required = False,
-    min = None,
-    max = None,
     default = None,
+    min = None, # optional
+    max = None, # optional
     new_key = '' # optional
 )
diff --git a/docs/examples/databases/update-integer-attribute.md b/docs/examples/databases/update-integer-attribute.md
index 125cf82..ab0ccd6 100644
--- a/docs/examples/databases/update-integer-attribute.md
+++ b/docs/examples/databases/update-integer-attribute.md
@@ -13,8 +13,8 @@ result = databases.update_integer_attribute(
     collection_id = '<COLLECTION_ID>',
     key = '',
     required = False,
-    min = None,
-    max = None,
     default = None,
+    min = None, # optional
+    max = None, # optional
     new_key = '' # optional
 )
diff --git a/docs/examples/health/get-queue-usage-dump.md b/docs/examples/health/get-queue-stats-resources.md
similarity index 88%
rename from docs/examples/health/get-queue-usage-dump.md
rename to docs/examples/health/get-queue-stats-resources.md
index dabb79a..3b09342 100644
--- a/docs/examples/health/get-queue-usage-dump.md
+++ b/docs/examples/health/get-queue-stats-resources.md
@@ -8,6 +8,6 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key
 
 health = Health(client)
 
-result = health.get_queue_usage_dump(
+result = health.get_queue_stats_resources(
     threshold = None # optional
 )
diff --git a/docs/examples/health/get-queue.md b/docs/examples/health/get-queue-stats-usage-dump.md
similarity index 79%
rename from docs/examples/health/get-queue.md
rename to docs/examples/health/get-queue-stats-usage-dump.md
index aafe7c7..c58059e 100644
--- a/docs/examples/health/get-queue.md
+++ b/docs/examples/health/get-queue-stats-usage-dump.md
@@ -8,4 +8,6 @@ client.set_key('<YOUR_API_KEY>') # Your secret API key
 
 health = Health(client)
 
-result = health.get_queue()
+result = health.get_queue_stats_usage_dump(
+    threshold = None # optional
+)
diff --git a/setup.py b/setup.py
index 558311d..40bc73f 100644
--- a/setup.py
+++ b/setup.py
@@ -13,7 +13,7 @@
     'appwrite/encoders',
     'appwrite/enums',
   ],
-  version = '8.0.0'
+  version = '9.0.0',
   license='BSD-3-Clause',
   description = 'Appwrite is an open-source self-hosted backend server that abstract and simplify complex and repetitive development tasks behind a very simple REST API',
   long_description = long_description,
@@ -23,7 +23,7 @@
   maintainer = 'Appwrite Team',
   maintainer_email = 'team@appwrite.io',
   url = 'https://appwrite.io/support',
-  download_url='https://github.com/appwrite/sdk-for-python/archive/8.0.0.tar.gz',
+  download_url='https://github.com/appwrite/sdk-for-python/archive/9.0.0.tar.gz',
   install_requires=[
     'requests',
   ],

From 8e39f054b3e27cb9b792a0eb2fc347fdfb2f6d80 Mon Sep 17 00:00:00 2001
From: Christy Jacob <christyjacob4@gmail.com>
Date: Mon, 10 Mar 2025 11:07:16 +0000
Subject: [PATCH 2/2] fix: missing types for lists, and missing doc blocks

---
 appwrite/client.py             |  2 +-
 appwrite/services/account.py   | 49 +++++++++++++++++++--
 appwrite/services/avatars.py   |  7 +++
 appwrite/services/databases.py | 68 +++++++++++++++++++++++------
 appwrite/services/functions.py | 34 ++++++++++++---
 appwrite/services/graphql.py   |  2 +
 appwrite/services/health.py    | 23 ++++++++++
 appwrite/services/locale.py    |  8 ++++
 appwrite/services/messaging.py | 80 ++++++++++++++++++++++++++--------
 appwrite/services/storage.py   | 25 ++++++++---
 appwrite/services/teams.py     | 23 +++++++---
 appwrite/services/users.py     | 52 +++++++++++++++++++---
 12 files changed, 318 insertions(+), 55 deletions(-)

diff --git a/appwrite/client.py b/appwrite/client.py
index cd37ff9..4e04484 100644
--- a/appwrite/client.py
+++ b/appwrite/client.py
@@ -13,7 +13,7 @@ def __init__(self):
         self._endpoint = 'https://cloud.appwrite.io/v1'
         self._global_headers = {
             'content-type': '',
-            'user-agent' : 'AppwritePythonSDK/9.0.0 (${os.uname().sysname}; ${os.uname().version}; ${os.uname().machine})',
+            'user-agent' : f'AppwritePythonSDK/9.0.0 ({os.uname().sysname}; {os.uname().version}; {os.uname().machine})',
             'x-sdk-name': 'Python',
             'x-sdk-platform': 'server',
             'x-sdk-language': 'python',
diff --git a/appwrite/services/account.py b/appwrite/services/account.py
index 61f1f60..7c248f3 100644
--- a/appwrite/services/account.py
+++ b/appwrite/services/account.py
@@ -10,6 +10,7 @@ def __init__(self, client):
         super(Account, self).__init__(client)
 
     def get(self):
+        """Get account"""
 
         api_path = '/account'
         api_params = {}
@@ -19,6 +20,7 @@ def get(self):
         }, api_params)
 
     def create(self, user_id: str, email: str, password: str, name: str = None):
+        """Create account"""
 
         api_path = '/account'
         api_params = {}
@@ -42,6 +44,7 @@ def create(self, user_id: str, email: str, password: str, name: str = None):
         }, api_params)
 
     def update_email(self, email: str, password: str):
+        """Update email"""
 
         api_path = '/account/email'
         api_params = {}
@@ -59,7 +62,8 @@ def update_email(self, email: str, password: str):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_identities(self, queries: list = None):
+    def list_identities(self, queries: list[str] = None):
+        """List identities"""
 
         api_path = '/account/identities'
         api_params = {}
@@ -71,6 +75,7 @@ def list_identities(self, queries: list = None):
         }, api_params)
 
     def delete_identity(self, identity_id: str):
+        """Delete identity"""
 
         api_path = '/account/identities/{identityId}'
         api_params = {}
@@ -85,6 +90,7 @@ def delete_identity(self, identity_id: str):
         }, api_params)
 
     def create_jwt(self):
+        """Create JWT"""
 
         api_path = '/account/jwts'
         api_params = {}
@@ -93,7 +99,8 @@ def create_jwt(self):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_logs(self, queries: list = None):
+    def list_logs(self, queries: list[str] = None):
+        """List logs"""
 
         api_path = '/account/logs'
         api_params = {}
@@ -105,6 +112,7 @@ def list_logs(self, queries: list = None):
         }, api_params)
 
     def update_mfa(self, mfa: bool):
+        """Update MFA"""
 
         api_path = '/account/mfa'
         api_params = {}
@@ -119,6 +127,7 @@ def update_mfa(self, mfa: bool):
         }, api_params)
 
     def create_mfa_authenticator(self, type: AuthenticatorType):
+        """Create authenticator"""
 
         api_path = '/account/mfa/authenticators/{type}'
         api_params = {}
@@ -133,6 +142,7 @@ def create_mfa_authenticator(self, type: AuthenticatorType):
         }, api_params)
 
     def update_mfa_authenticator(self, type: AuthenticatorType, otp: str):
+        """Verify authenticator"""
 
         api_path = '/account/mfa/authenticators/{type}'
         api_params = {}
@@ -151,6 +161,7 @@ def update_mfa_authenticator(self, type: AuthenticatorType, otp: str):
         }, api_params)
 
     def delete_mfa_authenticator(self, type: AuthenticatorType):
+        """Delete authenticator"""
 
         api_path = '/account/mfa/authenticators/{type}'
         api_params = {}
@@ -165,6 +176,7 @@ def delete_mfa_authenticator(self, type: AuthenticatorType):
         }, api_params)
 
     def create_mfa_challenge(self, factor: AuthenticationFactor):
+        """Create MFA challenge"""
 
         api_path = '/account/mfa/challenge'
         api_params = {}
@@ -179,6 +191,7 @@ def create_mfa_challenge(self, factor: AuthenticationFactor):
         }, api_params)
 
     def update_mfa_challenge(self, challenge_id: str, otp: str):
+        """Create MFA challenge (confirmation)"""
 
         api_path = '/account/mfa/challenge'
         api_params = {}
@@ -197,6 +210,7 @@ def update_mfa_challenge(self, challenge_id: str, otp: str):
         }, api_params)
 
     def list_mfa_factors(self):
+        """List factors"""
 
         api_path = '/account/mfa/factors'
         api_params = {}
@@ -206,6 +220,7 @@ def list_mfa_factors(self):
         }, api_params)
 
     def get_mfa_recovery_codes(self):
+        """Get MFA recovery codes"""
 
         api_path = '/account/mfa/recovery-codes'
         api_params = {}
@@ -215,6 +230,7 @@ def get_mfa_recovery_codes(self):
         }, api_params)
 
     def create_mfa_recovery_codes(self):
+        """Create MFA recovery codes"""
 
         api_path = '/account/mfa/recovery-codes'
         api_params = {}
@@ -224,6 +240,7 @@ def create_mfa_recovery_codes(self):
         }, api_params)
 
     def update_mfa_recovery_codes(self):
+        """Regenerate MFA recovery codes"""
 
         api_path = '/account/mfa/recovery-codes'
         api_params = {}
@@ -233,6 +250,7 @@ def update_mfa_recovery_codes(self):
         }, api_params)
 
     def update_name(self, name: str):
+        """Update name"""
 
         api_path = '/account/name'
         api_params = {}
@@ -247,6 +265,7 @@ def update_name(self, name: str):
         }, api_params)
 
     def update_password(self, password: str, old_password: str = None):
+        """Update password"""
 
         api_path = '/account/password'
         api_params = {}
@@ -262,6 +281,7 @@ def update_password(self, password: str, old_password: str = None):
         }, api_params)
 
     def update_phone(self, phone: str, password: str):
+        """Update phone"""
 
         api_path = '/account/phone'
         api_params = {}
@@ -280,6 +300,7 @@ def update_phone(self, phone: str, password: str):
         }, api_params)
 
     def get_prefs(self):
+        """Get account preferences"""
 
         api_path = '/account/prefs'
         api_params = {}
@@ -289,6 +310,7 @@ def get_prefs(self):
         }, api_params)
 
     def update_prefs(self, prefs: dict):
+        """Update preferences"""
 
         api_path = '/account/prefs'
         api_params = {}
@@ -303,6 +325,7 @@ def update_prefs(self, prefs: dict):
         }, api_params)
 
     def create_recovery(self, email: str, url: str):
+        """Create password recovery"""
 
         api_path = '/account/recovery'
         api_params = {}
@@ -321,6 +344,7 @@ def create_recovery(self, email: str, url: str):
         }, api_params)
 
     def update_recovery(self, user_id: str, secret: str, password: str):
+        """Create password recovery (confirmation)"""
 
         api_path = '/account/recovery'
         api_params = {}
@@ -343,6 +367,7 @@ def update_recovery(self, user_id: str, secret: str, password: str):
         }, api_params)
 
     def list_sessions(self):
+        """List sessions"""
 
         api_path = '/account/sessions'
         api_params = {}
@@ -352,6 +377,7 @@ def list_sessions(self):
         }, api_params)
 
     def delete_sessions(self):
+        """Delete sessions"""
 
         api_path = '/account/sessions'
         api_params = {}
@@ -361,6 +387,7 @@ def delete_sessions(self):
         }, api_params)
 
     def create_anonymous_session(self):
+        """Create anonymous session"""
 
         api_path = '/account/sessions/anonymous'
         api_params = {}
@@ -370,6 +397,7 @@ def create_anonymous_session(self):
         }, api_params)
 
     def create_email_password_session(self, email: str, password: str):
+        """Create email password session"""
 
         api_path = '/account/sessions/email'
         api_params = {}
@@ -388,6 +416,7 @@ def create_email_password_session(self, email: str, password: str):
         }, api_params)
 
     def update_magic_url_session(self, user_id: str, secret: str):
+        """Update magic URL session"""
 
         api_path = '/account/sessions/magic-url'
         api_params = {}
@@ -406,6 +435,7 @@ def update_magic_url_session(self, user_id: str, secret: str):
         }, api_params)
 
     def update_phone_session(self, user_id: str, secret: str):
+        """Update phone session"""
 
         api_path = '/account/sessions/phone'
         api_params = {}
@@ -424,6 +454,7 @@ def update_phone_session(self, user_id: str, secret: str):
         }, api_params)
 
     def create_session(self, user_id: str, secret: str):
+        """Create session"""
 
         api_path = '/account/sessions/token'
         api_params = {}
@@ -442,6 +473,7 @@ def create_session(self, user_id: str, secret: str):
         }, api_params)
 
     def get_session(self, session_id: str):
+        """Get session"""
 
         api_path = '/account/sessions/{sessionId}'
         api_params = {}
@@ -456,6 +488,7 @@ def get_session(self, session_id: str):
         }, api_params)
 
     def update_session(self, session_id: str):
+        """Update session"""
 
         api_path = '/account/sessions/{sessionId}'
         api_params = {}
@@ -470,6 +503,7 @@ def update_session(self, session_id: str):
         }, api_params)
 
     def delete_session(self, session_id: str):
+        """Delete session"""
 
         api_path = '/account/sessions/{sessionId}'
         api_params = {}
@@ -484,6 +518,7 @@ def delete_session(self, session_id: str):
         }, api_params)
 
     def update_status(self):
+        """Update status"""
 
         api_path = '/account/status'
         api_params = {}
@@ -493,6 +528,7 @@ def update_status(self):
         }, api_params)
 
     def create_email_token(self, user_id: str, email: str, phrase: bool = None):
+        """Create email token (OTP)"""
 
         api_path = '/account/tokens/email'
         api_params = {}
@@ -512,6 +548,7 @@ def create_email_token(self, user_id: str, email: str, phrase: bool = None):
         }, api_params)
 
     def create_magic_url_token(self, user_id: str, email: str, url: str = None, phrase: bool = None):
+        """Create magic URL token"""
 
         api_path = '/account/tokens/magic-url'
         api_params = {}
@@ -531,7 +568,8 @@ def create_magic_url_token(self, user_id: str, email: str, url: str = None, phra
             'content-type': 'application/json',
         }, api_params)
 
-    def create_o_auth2_token(self, provider: OAuthProvider, success: str = None, failure: str = None, scopes: list = None):
+    def create_o_auth2_token(self, provider: OAuthProvider, success: str = None, failure: str = None, scopes: list[str] = None):
+        """Create OAuth2 token"""
 
         api_path = '/account/tokens/oauth2/{provider}'
         api_params = {}
@@ -549,6 +587,7 @@ def create_o_auth2_token(self, provider: OAuthProvider, success: str = None, fai
         }, api_params, response_type='location')
 
     def create_phone_token(self, user_id: str, phone: str):
+        """Create phone token"""
 
         api_path = '/account/tokens/phone'
         api_params = {}
@@ -567,6 +606,7 @@ def create_phone_token(self, user_id: str, phone: str):
         }, api_params)
 
     def create_verification(self, url: str):
+        """Create email verification"""
 
         api_path = '/account/verification'
         api_params = {}
@@ -581,6 +621,7 @@ def create_verification(self, url: str):
         }, api_params)
 
     def update_verification(self, user_id: str, secret: str):
+        """Create email verification (confirmation)"""
 
         api_path = '/account/verification'
         api_params = {}
@@ -599,6 +640,7 @@ def update_verification(self, user_id: str, secret: str):
         }, api_params)
 
     def create_phone_verification(self):
+        """Create phone verification"""
 
         api_path = '/account/verification/phone'
         api_params = {}
@@ -608,6 +650,7 @@ def create_phone_verification(self):
         }, api_params)
 
     def update_phone_verification(self, user_id: str, secret: str):
+        """Update phone verification (confirmation)"""
 
         api_path = '/account/verification/phone'
         api_params = {}
diff --git a/appwrite/services/avatars.py b/appwrite/services/avatars.py
index e4752a6..40a0abb 100644
--- a/appwrite/services/avatars.py
+++ b/appwrite/services/avatars.py
@@ -10,6 +10,7 @@ def __init__(self, client):
         super(Avatars, self).__init__(client)
 
     def get_browser(self, code: Browser, width: float = None, height: float = None, quality: float = None):
+        """Get browser icon"""
 
         api_path = '/avatars/browsers/{code}'
         api_params = {}
@@ -27,6 +28,7 @@ def get_browser(self, code: Browser, width: float = None, height: float = None,
         }, api_params)
 
     def get_credit_card(self, code: CreditCard, width: float = None, height: float = None, quality: float = None):
+        """Get credit card icon"""
 
         api_path = '/avatars/credit-cards/{code}'
         api_params = {}
@@ -44,6 +46,7 @@ def get_credit_card(self, code: CreditCard, width: float = None, height: float =
         }, api_params)
 
     def get_favicon(self, url: str):
+        """Get favicon"""
 
         api_path = '/avatars/favicon'
         api_params = {}
@@ -58,6 +61,7 @@ def get_favicon(self, url: str):
         }, api_params)
 
     def get_flag(self, code: Flag, width: float = None, height: float = None, quality: float = None):
+        """Get country flag"""
 
         api_path = '/avatars/flags/{code}'
         api_params = {}
@@ -75,6 +79,7 @@ def get_flag(self, code: Flag, width: float = None, height: float = None, qualit
         }, api_params)
 
     def get_image(self, url: str, width: float = None, height: float = None):
+        """Get image from URL"""
 
         api_path = '/avatars/image'
         api_params = {}
@@ -91,6 +96,7 @@ def get_image(self, url: str, width: float = None, height: float = None):
         }, api_params)
 
     def get_initials(self, name: str = None, width: float = None, height: float = None, background: str = None):
+        """Get user initials"""
 
         api_path = '/avatars/initials'
         api_params = {}
@@ -105,6 +111,7 @@ def get_initials(self, name: str = None, width: float = None, height: float = No
         }, api_params)
 
     def get_qr(self, text: str, size: float = None, margin: float = None, download: bool = None):
+        """Get QR code"""
 
         api_path = '/avatars/qr'
         api_params = {}
diff --git a/appwrite/services/databases.py b/appwrite/services/databases.py
index 85b2e86..e1c63b2 100644
--- a/appwrite/services/databases.py
+++ b/appwrite/services/databases.py
@@ -9,7 +9,8 @@ class Databases(Service):
     def __init__(self, client):
         super(Databases, self).__init__(client)
 
-    def list(self, queries: list = None, search: str = None):
+    def list(self, queries: list[str] = None, search: str = None):
+        """List databases"""
 
         api_path = '/databases'
         api_params = {}
@@ -22,6 +23,7 @@ def list(self, queries: list = None, search: str = None):
         }, api_params)
 
     def create(self, database_id: str, name: str, enabled: bool = None):
+        """Create database"""
 
         api_path = '/databases'
         api_params = {}
@@ -41,6 +43,7 @@ def create(self, database_id: str, name: str, enabled: bool = None):
         }, api_params)
 
     def get(self, database_id: str):
+        """Get database"""
 
         api_path = '/databases/{databaseId}'
         api_params = {}
@@ -55,6 +58,7 @@ def get(self, database_id: str):
         }, api_params)
 
     def update(self, database_id: str, name: str, enabled: bool = None):
+        """Update database"""
 
         api_path = '/databases/{databaseId}'
         api_params = {}
@@ -74,6 +78,7 @@ def update(self, database_id: str, name: str, enabled: bool = None):
         }, api_params)
 
     def delete(self, database_id: str):
+        """Delete database"""
 
         api_path = '/databases/{databaseId}'
         api_params = {}
@@ -87,7 +92,8 @@ def delete(self, database_id: str):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_collections(self, database_id: str, queries: list = None, search: str = None):
+    def list_collections(self, database_id: str, queries: list[str] = None, search: str = None):
+        """List collections"""
 
         api_path = '/databases/{databaseId}/collections'
         api_params = {}
@@ -103,7 +109,8 @@ def list_collections(self, database_id: str, queries: list = None, search: str =
             'content-type': 'application/json',
         }, api_params)
 
-    def create_collection(self, database_id: str, collection_id: str, name: str, permissions: list = None, document_security: bool = None, enabled: bool = None):
+    def create_collection(self, database_id: str, collection_id: str, name: str, permissions: list[str] = None, document_security: bool = None, enabled: bool = None):
+        """Create collection"""
 
         api_path = '/databases/{databaseId}/collections'
         api_params = {}
@@ -129,6 +136,7 @@ def create_collection(self, database_id: str, collection_id: str, name: str, per
         }, api_params)
 
     def get_collection(self, database_id: str, collection_id: str):
+        """Get collection"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}'
         api_params = {}
@@ -146,7 +154,8 @@ def get_collection(self, database_id: str, collection_id: str):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_collection(self, database_id: str, collection_id: str, name: str, permissions: list = None, document_security: bool = None, enabled: bool = None):
+    def update_collection(self, database_id: str, collection_id: str, name: str, permissions: list[str] = None, document_security: bool = None, enabled: bool = None):
+        """Update collection"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}'
         api_params = {}
@@ -172,6 +181,7 @@ def update_collection(self, database_id: str, collection_id: str, name: str, per
         }, api_params)
 
     def delete_collection(self, database_id: str, collection_id: str):
+        """Delete collection"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}'
         api_params = {}
@@ -189,7 +199,8 @@ def delete_collection(self, database_id: str, collection_id: str):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_attributes(self, database_id: str, collection_id: str, queries: list = None):
+    def list_attributes(self, database_id: str, collection_id: str, queries: list[str] = None):
+        """List attributes"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes'
         api_params = {}
@@ -209,6 +220,7 @@ def list_attributes(self, database_id: str, collection_id: str, queries: list =
         }, api_params)
 
     def create_boolean_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: bool = None, array: bool = None):
+        """Create boolean attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/boolean'
         api_params = {}
@@ -237,6 +249,7 @@ def create_boolean_attribute(self, database_id: str, collection_id: str, key: st
         }, api_params)
 
     def update_boolean_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: bool, new_key: str = None):
+        """Update boolean attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/boolean/{key}'
         api_params = {}
@@ -265,6 +278,7 @@ def update_boolean_attribute(self, database_id: str, collection_id: str, key: st
         }, api_params)
 
     def create_datetime_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: str = None, array: bool = None):
+        """Create datetime attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/datetime'
         api_params = {}
@@ -293,6 +307,7 @@ def create_datetime_attribute(self, database_id: str, collection_id: str, key: s
         }, api_params)
 
     def update_datetime_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: str, new_key: str = None):
+        """Update dateTime attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/datetime/{key}'
         api_params = {}
@@ -321,6 +336,7 @@ def update_datetime_attribute(self, database_id: str, collection_id: str, key: s
         }, api_params)
 
     def create_email_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: str = None, array: bool = None):
+        """Create email attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/email'
         api_params = {}
@@ -349,6 +365,7 @@ def create_email_attribute(self, database_id: str, collection_id: str, key: str,
         }, api_params)
 
     def update_email_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: str, new_key: str = None):
+        """Update email attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/email/{key}'
         api_params = {}
@@ -376,7 +393,8 @@ def update_email_attribute(self, database_id: str, collection_id: str, key: str,
             'content-type': 'application/json',
         }, api_params)
 
-    def create_enum_attribute(self, database_id: str, collection_id: str, key: str, elements: list, required: bool, default: str = None, array: bool = None):
+    def create_enum_attribute(self, database_id: str, collection_id: str, key: str, elements: list[str], required: bool, default: str = None, array: bool = None):
+        """Create enum attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/enum'
         api_params = {}
@@ -408,7 +426,8 @@ def create_enum_attribute(self, database_id: str, collection_id: str, key: str,
             'content-type': 'application/json',
         }, api_params)
 
-    def update_enum_attribute(self, database_id: str, collection_id: str, key: str, elements: list, required: bool, default: str, new_key: str = None):
+    def update_enum_attribute(self, database_id: str, collection_id: str, key: str, elements: list[str], required: bool, default: str, new_key: str = None):
+        """Update enum attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/enum/{key}'
         api_params = {}
@@ -441,6 +460,7 @@ def update_enum_attribute(self, database_id: str, collection_id: str, key: str,
         }, api_params)
 
     def create_float_attribute(self, database_id: str, collection_id: str, key: str, required: bool, min: float = None, max: float = None, default: float = None, array: bool = None):
+        """Create float attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/float'
         api_params = {}
@@ -471,6 +491,7 @@ def create_float_attribute(self, database_id: str, collection_id: str, key: str,
         }, api_params)
 
     def update_float_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: float, min: float = None, max: float = None, new_key: str = None):
+        """Update float attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/float/{key}'
         api_params = {}
@@ -501,6 +522,7 @@ def update_float_attribute(self, database_id: str, collection_id: str, key: str,
         }, api_params)
 
     def create_integer_attribute(self, database_id: str, collection_id: str, key: str, required: bool, min: float = None, max: float = None, default: float = None, array: bool = None):
+        """Create integer attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/integer'
         api_params = {}
@@ -531,6 +553,7 @@ def create_integer_attribute(self, database_id: str, collection_id: str, key: st
         }, api_params)
 
     def update_integer_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: float, min: float = None, max: float = None, new_key: str = None):
+        """Update integer attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/integer/{key}'
         api_params = {}
@@ -561,6 +584,7 @@ def update_integer_attribute(self, database_id: str, collection_id: str, key: st
         }, api_params)
 
     def create_ip_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: str = None, array: bool = None):
+        """Create IP address attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/ip'
         api_params = {}
@@ -589,6 +613,7 @@ def create_ip_attribute(self, database_id: str, collection_id: str, key: str, re
         }, api_params)
 
     def update_ip_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: str, new_key: str = None):
+        """Update IP address attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/ip/{key}'
         api_params = {}
@@ -617,6 +642,7 @@ def update_ip_attribute(self, database_id: str, collection_id: str, key: str, re
         }, api_params)
 
     def create_relationship_attribute(self, database_id: str, collection_id: str, related_collection_id: str, type: RelationshipType, two_way: bool = None, key: str = None, two_way_key: str = None, on_delete: RelationMutate = None):
+        """Create relationship attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/relationship'
         api_params = {}
@@ -647,6 +673,7 @@ def create_relationship_attribute(self, database_id: str, collection_id: str, re
         }, api_params)
 
     def create_string_attribute(self, database_id: str, collection_id: str, key: str, size: float, required: bool, default: str = None, array: bool = None, encrypt: bool = None):
+        """Create string attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/string'
         api_params = {}
@@ -680,6 +707,7 @@ def create_string_attribute(self, database_id: str, collection_id: str, key: str
         }, api_params)
 
     def update_string_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: str, size: float = None, new_key: str = None):
+        """Update string attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/string/{key}'
         api_params = {}
@@ -709,6 +737,7 @@ def update_string_attribute(self, database_id: str, collection_id: str, key: str
         }, api_params)
 
     def create_url_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: str = None, array: bool = None):
+        """Create URL attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/url'
         api_params = {}
@@ -737,6 +766,7 @@ def create_url_attribute(self, database_id: str, collection_id: str, key: str, r
         }, api_params)
 
     def update_url_attribute(self, database_id: str, collection_id: str, key: str, required: bool, default: str, new_key: str = None):
+        """Update URL attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/url/{key}'
         api_params = {}
@@ -765,6 +795,7 @@ def update_url_attribute(self, database_id: str, collection_id: str, key: str, r
         }, api_params)
 
     def get_attribute(self, database_id: str, collection_id: str, key: str):
+        """Get attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/{key}'
         api_params = {}
@@ -787,6 +818,7 @@ def get_attribute(self, database_id: str, collection_id: str, key: str):
         }, api_params)
 
     def delete_attribute(self, database_id: str, collection_id: str, key: str):
+        """Delete attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/{key}'
         api_params = {}
@@ -809,6 +841,7 @@ def delete_attribute(self, database_id: str, collection_id: str, key: str):
         }, api_params)
 
     def update_relationship_attribute(self, database_id: str, collection_id: str, key: str, on_delete: RelationMutate = None, new_key: str = None):
+        """Update relationship attribute"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/attributes/{key}/relationship'
         api_params = {}
@@ -832,7 +865,8 @@ def update_relationship_attribute(self, database_id: str, collection_id: str, ke
             'content-type': 'application/json',
         }, api_params)
 
-    def list_documents(self, database_id: str, collection_id: str, queries: list = None):
+    def list_documents(self, database_id: str, collection_id: str, queries: list[str] = None):
+        """List documents"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/documents'
         api_params = {}
@@ -851,7 +885,8 @@ def list_documents(self, database_id: str, collection_id: str, queries: list = N
             'content-type': 'application/json',
         }, api_params)
 
-    def create_document(self, database_id: str, collection_id: str, document_id: str, data: dict, permissions: list = None):
+    def create_document(self, database_id: str, collection_id: str, document_id: str, data: dict, permissions: list[str] = None):
+        """Create document"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/documents'
         api_params = {}
@@ -878,7 +913,8 @@ def create_document(self, database_id: str, collection_id: str, document_id: str
             'content-type': 'application/json',
         }, api_params)
 
-    def get_document(self, database_id: str, collection_id: str, document_id: str, queries: list = None):
+    def get_document(self, database_id: str, collection_id: str, document_id: str, queries: list[str] = None):
+        """Get document"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'
         api_params = {}
@@ -901,7 +937,8 @@ def get_document(self, database_id: str, collection_id: str, document_id: str, q
             'content-type': 'application/json',
         }, api_params)
 
-    def update_document(self, database_id: str, collection_id: str, document_id: str, data: dict = None, permissions: list = None):
+    def update_document(self, database_id: str, collection_id: str, document_id: str, data: dict = None, permissions: list[str] = None):
+        """Update document"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'
         api_params = {}
@@ -926,6 +963,7 @@ def update_document(self, database_id: str, collection_id: str, document_id: str
         }, api_params)
 
     def delete_document(self, database_id: str, collection_id: str, document_id: str):
+        """Delete document"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'
         api_params = {}
@@ -947,7 +985,8 @@ def delete_document(self, database_id: str, collection_id: str, document_id: str
             'content-type': 'application/json',
         }, api_params)
 
-    def list_indexes(self, database_id: str, collection_id: str, queries: list = None):
+    def list_indexes(self, database_id: str, collection_id: str, queries: list[str] = None):
+        """List indexes"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/indexes'
         api_params = {}
@@ -966,7 +1005,8 @@ def list_indexes(self, database_id: str, collection_id: str, queries: list = Non
             'content-type': 'application/json',
         }, api_params)
 
-    def create_index(self, database_id: str, collection_id: str, key: str, type: IndexType, attributes: list, orders: list = None):
+    def create_index(self, database_id: str, collection_id: str, key: str, type: IndexType, attributes: list[str], orders: list[str] = None):
+        """Create index"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/indexes'
         api_params = {}
@@ -998,6 +1038,7 @@ def create_index(self, database_id: str, collection_id: str, key: str, type: Ind
         }, api_params)
 
     def get_index(self, database_id: str, collection_id: str, key: str):
+        """Get index"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/indexes/{key}'
         api_params = {}
@@ -1020,6 +1061,7 @@ def get_index(self, database_id: str, collection_id: str, key: str):
         }, api_params)
 
     def delete_index(self, database_id: str, collection_id: str, key: str):
+        """Delete index"""
 
         api_path = '/databases/{databaseId}/collections/{collectionId}/indexes/{key}'
         api_params = {}
diff --git a/appwrite/services/functions.py b/appwrite/services/functions.py
index 326171c..6eb8bad 100644
--- a/appwrite/services/functions.py
+++ b/appwrite/services/functions.py
@@ -9,7 +9,8 @@ class Functions(Service):
     def __init__(self, client):
         super(Functions, self).__init__(client)
 
-    def list(self, queries: list = None, search: str = None):
+    def list(self, queries: list[str] = None, search: str = None):
+        """List functions"""
 
         api_path = '/functions'
         api_params = {}
@@ -21,7 +22,8 @@ def list(self, queries: list = None, search: str = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create(self, function_id: str, name: str, runtime: Runtime, execute: list = None, events: list = None, schedule: str = None, timeout: float = None, enabled: bool = None, logging: bool = None, entrypoint: str = None, commands: str = None, scopes: list = None, installation_id: str = None, provider_repository_id: str = None, provider_branch: str = None, provider_silent_mode: bool = None, provider_root_directory: str = None, template_repository: str = None, template_owner: str = None, template_root_directory: str = None, template_version: str = None, specification: str = None):
+    def create(self, function_id: str, name: str, runtime: Runtime, execute: list[str] = None, events: list[str] = None, schedule: str = None, timeout: float = None, enabled: bool = None, logging: bool = None, entrypoint: str = None, commands: str = None, scopes: list[str] = None, installation_id: str = None, provider_repository_id: str = None, provider_branch: str = None, provider_silent_mode: bool = None, provider_root_directory: str = None, template_repository: str = None, template_owner: str = None, template_root_directory: str = None, template_version: str = None, specification: str = None):
+        """Create function"""
 
         api_path = '/functions'
         api_params = {}
@@ -63,6 +65,7 @@ def create(self, function_id: str, name: str, runtime: Runtime, execute: list =
         }, api_params)
 
     def list_runtimes(self):
+        """List runtimes"""
 
         api_path = '/functions/runtimes'
         api_params = {}
@@ -72,6 +75,7 @@ def list_runtimes(self):
         }, api_params)
 
     def list_specifications(self):
+        """List available function runtime specifications"""
 
         api_path = '/functions/specifications'
         api_params = {}
@@ -81,6 +85,7 @@ def list_specifications(self):
         }, api_params)
 
     def get(self, function_id: str):
+        """Get function"""
 
         api_path = '/functions/{functionId}'
         api_params = {}
@@ -94,7 +99,8 @@ def get(self, function_id: str):
             'content-type': 'application/json',
         }, api_params)
 
-    def update(self, function_id: str, name: str, runtime: Runtime = None, execute: list = None, events: list = None, schedule: str = None, timeout: float = None, enabled: bool = None, logging: bool = None, entrypoint: str = None, commands: str = None, scopes: list = None, installation_id: str = None, provider_repository_id: str = None, provider_branch: str = None, provider_silent_mode: bool = None, provider_root_directory: str = None, specification: str = None):
+    def update(self, function_id: str, name: str, runtime: Runtime = None, execute: list[str] = None, events: list[str] = None, schedule: str = None, timeout: float = None, enabled: bool = None, logging: bool = None, entrypoint: str = None, commands: str = None, scopes: list[str] = None, installation_id: str = None, provider_repository_id: str = None, provider_branch: str = None, provider_silent_mode: bool = None, provider_root_directory: str = None, specification: str = None):
+        """Update function"""
 
         api_path = '/functions/{functionId}'
         api_params = {}
@@ -129,6 +135,7 @@ def update(self, function_id: str, name: str, runtime: Runtime = None, execute:
         }, api_params)
 
     def delete(self, function_id: str):
+        """Delete function"""
 
         api_path = '/functions/{functionId}'
         api_params = {}
@@ -142,7 +149,8 @@ def delete(self, function_id: str):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_deployments(self, function_id: str, queries: list = None, search: str = None):
+    def list_deployments(self, function_id: str, queries: list[str] = None, search: str = None):
+        """List deployments"""
 
         api_path = '/functions/{functionId}/deployments'
         api_params = {}
@@ -159,6 +167,7 @@ def list_deployments(self, function_id: str, queries: list = None, search: str =
         }, api_params)
 
     def create_deployment(self, function_id: str, code: InputFile, activate: bool, entrypoint: str = None, commands: str = None, on_progress = None):
+        """Create deployment"""
 
         api_path = '/functions/{functionId}/deployments'
         api_params = {}
@@ -188,6 +197,7 @@ def create_deployment(self, function_id: str, code: InputFile, activate: bool, e
         }, api_params, param_name, on_progress, upload_id)
 
     def get_deployment(self, function_id: str, deployment_id: str):
+        """Get deployment"""
 
         api_path = '/functions/{functionId}/deployments/{deploymentId}'
         api_params = {}
@@ -206,6 +216,7 @@ def get_deployment(self, function_id: str, deployment_id: str):
         }, api_params)
 
     def update_deployment(self, function_id: str, deployment_id: str):
+        """Update deployment"""
 
         api_path = '/functions/{functionId}/deployments/{deploymentId}'
         api_params = {}
@@ -224,6 +235,7 @@ def update_deployment(self, function_id: str, deployment_id: str):
         }, api_params)
 
     def delete_deployment(self, function_id: str, deployment_id: str):
+        """Delete deployment"""
 
         api_path = '/functions/{functionId}/deployments/{deploymentId}'
         api_params = {}
@@ -242,6 +254,7 @@ def delete_deployment(self, function_id: str, deployment_id: str):
         }, api_params)
 
     def create_build(self, function_id: str, deployment_id: str, build_id: str = None):
+        """Rebuild deployment"""
 
         api_path = '/functions/{functionId}/deployments/{deploymentId}/build'
         api_params = {}
@@ -261,6 +274,7 @@ def create_build(self, function_id: str, deployment_id: str, build_id: str = Non
         }, api_params)
 
     def update_deployment_build(self, function_id: str, deployment_id: str):
+        """Cancel deployment"""
 
         api_path = '/functions/{functionId}/deployments/{deploymentId}/build'
         api_params = {}
@@ -279,6 +293,7 @@ def update_deployment_build(self, function_id: str, deployment_id: str):
         }, api_params)
 
     def get_deployment_download(self, function_id: str, deployment_id: str):
+        """Download deployment"""
 
         api_path = '/functions/{functionId}/deployments/{deploymentId}/download'
         api_params = {}
@@ -296,7 +311,8 @@ def get_deployment_download(self, function_id: str, deployment_id: str):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_executions(self, function_id: str, queries: list = None, search: str = None):
+    def list_executions(self, function_id: str, queries: list[str] = None, search: str = None):
+        """List executions"""
 
         api_path = '/functions/{functionId}/executions'
         api_params = {}
@@ -313,6 +329,7 @@ def list_executions(self, function_id: str, queries: list = None, search: str =
         }, api_params)
 
     def create_execution(self, function_id: str, body: str = None, xasync: bool = None, path: str = None, method: ExecutionMethod = None, headers: dict = None, scheduled_at: str = None):
+        """Create execution"""
 
         api_path = '/functions/{functionId}/executions'
         api_params = {}
@@ -333,6 +350,7 @@ def create_execution(self, function_id: str, body: str = None, xasync: bool = No
         }, api_params)
 
     def get_execution(self, function_id: str, execution_id: str):
+        """Get execution"""
 
         api_path = '/functions/{functionId}/executions/{executionId}'
         api_params = {}
@@ -351,6 +369,7 @@ def get_execution(self, function_id: str, execution_id: str):
         }, api_params)
 
     def delete_execution(self, function_id: str, execution_id: str):
+        """Delete execution"""
 
         api_path = '/functions/{functionId}/executions/{executionId}'
         api_params = {}
@@ -369,6 +388,7 @@ def delete_execution(self, function_id: str, execution_id: str):
         }, api_params)
 
     def list_variables(self, function_id: str):
+        """List variables"""
 
         api_path = '/functions/{functionId}/variables'
         api_params = {}
@@ -383,6 +403,7 @@ def list_variables(self, function_id: str):
         }, api_params)
 
     def create_variable(self, function_id: str, key: str, value: str):
+        """Create variable"""
 
         api_path = '/functions/{functionId}/variables'
         api_params = {}
@@ -405,6 +426,7 @@ def create_variable(self, function_id: str, key: str, value: str):
         }, api_params)
 
     def get_variable(self, function_id: str, variable_id: str):
+        """Get variable"""
 
         api_path = '/functions/{functionId}/variables/{variableId}'
         api_params = {}
@@ -423,6 +445,7 @@ def get_variable(self, function_id: str, variable_id: str):
         }, api_params)
 
     def update_variable(self, function_id: str, variable_id: str, key: str, value: str = None):
+        """Update variable"""
 
         api_path = '/functions/{functionId}/variables/{variableId}'
         api_params = {}
@@ -446,6 +469,7 @@ def update_variable(self, function_id: str, variable_id: str, key: str, value: s
         }, api_params)
 
     def delete_variable(self, function_id: str, variable_id: str):
+        """Delete variable"""
 
         api_path = '/functions/{functionId}/variables/{variableId}'
         api_params = {}
diff --git a/appwrite/services/graphql.py b/appwrite/services/graphql.py
index 7d58b9e..41421bb 100644
--- a/appwrite/services/graphql.py
+++ b/appwrite/services/graphql.py
@@ -7,6 +7,7 @@ def __init__(self, client):
         super(Graphql, self).__init__(client)
 
     def query(self, query: dict):
+        """GraphQL endpoint"""
 
         api_path = '/graphql'
         api_params = {}
@@ -22,6 +23,7 @@ def query(self, query: dict):
         }, api_params)
 
     def mutation(self, query: dict):
+        """GraphQL endpoint"""
 
         api_path = '/graphql/mutation'
         api_params = {}
diff --git a/appwrite/services/health.py b/appwrite/services/health.py
index 5be5d32..d87dc57 100644
--- a/appwrite/services/health.py
+++ b/appwrite/services/health.py
@@ -8,6 +8,7 @@ def __init__(self, client):
         super(Health, self).__init__(client)
 
     def get(self):
+        """Get HTTP"""
 
         api_path = '/health'
         api_params = {}
@@ -17,6 +18,7 @@ def get(self):
         }, api_params)
 
     def get_antivirus(self):
+        """Get antivirus"""
 
         api_path = '/health/anti-virus'
         api_params = {}
@@ -26,6 +28,7 @@ def get_antivirus(self):
         }, api_params)
 
     def get_cache(self):
+        """Get cache"""
 
         api_path = '/health/cache'
         api_params = {}
@@ -35,6 +38,7 @@ def get_cache(self):
         }, api_params)
 
     def get_certificate(self, domain: str = None):
+        """Get the SSL certificate for a domain"""
 
         api_path = '/health/certificate'
         api_params = {}
@@ -46,6 +50,7 @@ def get_certificate(self, domain: str = None):
         }, api_params)
 
     def get_db(self):
+        """Get DB"""
 
         api_path = '/health/db'
         api_params = {}
@@ -55,6 +60,7 @@ def get_db(self):
         }, api_params)
 
     def get_pub_sub(self):
+        """Get pubsub"""
 
         api_path = '/health/pubsub'
         api_params = {}
@@ -64,6 +70,7 @@ def get_pub_sub(self):
         }, api_params)
 
     def get_queue_builds(self, threshold: float = None):
+        """Get builds queue"""
 
         api_path = '/health/queue/builds'
         api_params = {}
@@ -75,6 +82,7 @@ def get_queue_builds(self, threshold: float = None):
         }, api_params)
 
     def get_queue_certificates(self, threshold: float = None):
+        """Get certificates queue"""
 
         api_path = '/health/queue/certificates'
         api_params = {}
@@ -86,6 +94,7 @@ def get_queue_certificates(self, threshold: float = None):
         }, api_params)
 
     def get_queue_databases(self, name: str = None, threshold: float = None):
+        """Get databases queue"""
 
         api_path = '/health/queue/databases'
         api_params = {}
@@ -98,6 +107,7 @@ def get_queue_databases(self, name: str = None, threshold: float = None):
         }, api_params)
 
     def get_queue_deletes(self, threshold: float = None):
+        """Get deletes queue"""
 
         api_path = '/health/queue/deletes'
         api_params = {}
@@ -109,6 +119,7 @@ def get_queue_deletes(self, threshold: float = None):
         }, api_params)
 
     def get_failed_jobs(self, name: Name, threshold: float = None):
+        """Get number of failed queue jobs"""
 
         api_path = '/health/queue/failed/{name}'
         api_params = {}
@@ -124,6 +135,7 @@ def get_failed_jobs(self, name: Name, threshold: float = None):
         }, api_params)
 
     def get_queue_functions(self, threshold: float = None):
+        """Get functions queue"""
 
         api_path = '/health/queue/functions'
         api_params = {}
@@ -135,6 +147,7 @@ def get_queue_functions(self, threshold: float = None):
         }, api_params)
 
     def get_queue_logs(self, threshold: float = None):
+        """Get logs queue"""
 
         api_path = '/health/queue/logs'
         api_params = {}
@@ -146,6 +159,7 @@ def get_queue_logs(self, threshold: float = None):
         }, api_params)
 
     def get_queue_mails(self, threshold: float = None):
+        """Get mails queue"""
 
         api_path = '/health/queue/mails'
         api_params = {}
@@ -157,6 +171,7 @@ def get_queue_mails(self, threshold: float = None):
         }, api_params)
 
     def get_queue_messaging(self, threshold: float = None):
+        """Get messaging queue"""
 
         api_path = '/health/queue/messaging'
         api_params = {}
@@ -168,6 +183,7 @@ def get_queue_messaging(self, threshold: float = None):
         }, api_params)
 
     def get_queue_migrations(self, threshold: float = None):
+        """Get migrations queue"""
 
         api_path = '/health/queue/migrations'
         api_params = {}
@@ -179,6 +195,7 @@ def get_queue_migrations(self, threshold: float = None):
         }, api_params)
 
     def get_queue_stats_resources(self, threshold: float = None):
+        """Get stats  resources queue"""
 
         api_path = '/health/queue/stats-resources'
         api_params = {}
@@ -190,6 +207,7 @@ def get_queue_stats_resources(self, threshold: float = None):
         }, api_params)
 
     def get_queue_usage(self, threshold: float = None):
+        """Get stats usage queue"""
 
         api_path = '/health/queue/stats-usage'
         api_params = {}
@@ -201,6 +219,7 @@ def get_queue_usage(self, threshold: float = None):
         }, api_params)
 
     def get_queue_stats_usage_dump(self, threshold: float = None):
+        """Get usage dump queue"""
 
         api_path = '/health/queue/stats-usage-dump'
         api_params = {}
@@ -212,6 +231,7 @@ def get_queue_stats_usage_dump(self, threshold: float = None):
         }, api_params)
 
     def get_queue_webhooks(self, threshold: float = None):
+        """Get webhooks queue"""
 
         api_path = '/health/queue/webhooks'
         api_params = {}
@@ -223,6 +243,7 @@ def get_queue_webhooks(self, threshold: float = None):
         }, api_params)
 
     def get_storage(self):
+        """Get storage"""
 
         api_path = '/health/storage'
         api_params = {}
@@ -232,6 +253,7 @@ def get_storage(self):
         }, api_params)
 
     def get_storage_local(self):
+        """Get local storage"""
 
         api_path = '/health/storage/local'
         api_params = {}
@@ -241,6 +263,7 @@ def get_storage_local(self):
         }, api_params)
 
     def get_time(self):
+        """Get time"""
 
         api_path = '/health/time'
         api_params = {}
diff --git a/appwrite/services/locale.py b/appwrite/services/locale.py
index e77cd93..6a8f007 100644
--- a/appwrite/services/locale.py
+++ b/appwrite/services/locale.py
@@ -7,6 +7,7 @@ def __init__(self, client):
         super(Locale, self).__init__(client)
 
     def get(self):
+        """Get user locale"""
 
         api_path = '/locale'
         api_params = {}
@@ -16,6 +17,7 @@ def get(self):
         }, api_params)
 
     def list_codes(self):
+        """List locale codes"""
 
         api_path = '/locale/codes'
         api_params = {}
@@ -25,6 +27,7 @@ def list_codes(self):
         }, api_params)
 
     def list_continents(self):
+        """List continents"""
 
         api_path = '/locale/continents'
         api_params = {}
@@ -34,6 +37,7 @@ def list_continents(self):
         }, api_params)
 
     def list_countries(self):
+        """List countries"""
 
         api_path = '/locale/countries'
         api_params = {}
@@ -43,6 +47,7 @@ def list_countries(self):
         }, api_params)
 
     def list_countries_eu(self):
+        """List EU countries"""
 
         api_path = '/locale/countries/eu'
         api_params = {}
@@ -52,6 +57,7 @@ def list_countries_eu(self):
         }, api_params)
 
     def list_countries_phones(self):
+        """List countries phone codes"""
 
         api_path = '/locale/countries/phones'
         api_params = {}
@@ -61,6 +67,7 @@ def list_countries_phones(self):
         }, api_params)
 
     def list_currencies(self):
+        """List currencies"""
 
         api_path = '/locale/currencies'
         api_params = {}
@@ -70,6 +77,7 @@ def list_currencies(self):
         }, api_params)
 
     def list_languages(self):
+        """List languages"""
 
         api_path = '/locale/languages'
         api_params = {}
diff --git a/appwrite/services/messaging.py b/appwrite/services/messaging.py
index b62a706..f344b9f 100644
--- a/appwrite/services/messaging.py
+++ b/appwrite/services/messaging.py
@@ -8,7 +8,8 @@ class Messaging(Service):
     def __init__(self, client):
         super(Messaging, self).__init__(client)
 
-    def list_messages(self, queries: list = None, search: str = None):
+    def list_messages(self, queries: list[str] = None, search: str = None):
+        """List messages"""
 
         api_path = '/messaging/messages'
         api_params = {}
@@ -20,7 +21,8 @@ def list_messages(self, queries: list = None, search: str = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_email(self, message_id: str, subject: str, content: str, topics: list = None, users: list = None, targets: list = None, cc: list = None, bcc: list = None, attachments: list = None, draft: bool = None, html: bool = None, scheduled_at: str = None):
+    def create_email(self, message_id: str, subject: str, content: str, topics: list[str] = None, users: list[str] = None, targets: list[str] = None, cc: list[str] = None, bcc: list[str] = None, attachments: list[str] = None, draft: bool = None, html: bool = None, scheduled_at: str = None):
+        """Create email"""
 
         api_path = '/messaging/messages/email'
         api_params = {}
@@ -51,7 +53,8 @@ def create_email(self, message_id: str, subject: str, content: str, topics: list
             'content-type': 'application/json',
         }, api_params)
 
-    def update_email(self, message_id: str, topics: list = None, users: list = None, targets: list = None, subject: str = None, content: str = None, draft: bool = None, html: bool = None, cc: list = None, bcc: list = None, scheduled_at: str = None, attachments: list = None):
+    def update_email(self, message_id: str, topics: list[str] = None, users: list[str] = None, targets: list[str] = None, subject: str = None, content: str = None, draft: bool = None, html: bool = None, cc: list[str] = None, bcc: list[str] = None, scheduled_at: str = None, attachments: list[str] = None):
+        """Update email"""
 
         api_path = '/messaging/messages/email/{messageId}'
         api_params = {}
@@ -76,7 +79,8 @@ def update_email(self, message_id: str, topics: list = None, users: list = None,
             'content-type': 'application/json',
         }, api_params)
 
-    def create_push(self, message_id: str, title: str = None, body: str = None, topics: list = None, users: list = None, targets: list = None, data: dict = None, action: str = None, image: str = None, icon: str = None, sound: str = None, color: str = None, tag: str = None, badge: float = None, draft: bool = None, scheduled_at: str = None, content_available: bool = None, critical: bool = None, priority: MessagePriority = None):
+    def create_push(self, message_id: str, title: str = None, body: str = None, topics: list[str] = None, users: list[str] = None, targets: list[str] = None, data: dict = None, action: str = None, image: str = None, icon: str = None, sound: str = None, color: str = None, tag: str = None, badge: float = None, draft: bool = None, scheduled_at: str = None, content_available: bool = None, critical: bool = None, priority: MessagePriority = None):
+        """Create push notification"""
 
         api_path = '/messaging/messages/push'
         api_params = {}
@@ -108,7 +112,8 @@ def create_push(self, message_id: str, title: str = None, body: str = None, topi
             'content-type': 'application/json',
         }, api_params)
 
-    def update_push(self, message_id: str, topics: list = None, users: list = None, targets: list = None, title: str = None, body: str = None, data: dict = None, action: str = None, image: str = None, icon: str = None, sound: str = None, color: str = None, tag: str = None, badge: float = None, draft: bool = None, scheduled_at: str = None, content_available: bool = None, critical: bool = None, priority: MessagePriority = None):
+    def update_push(self, message_id: str, topics: list[str] = None, users: list[str] = None, targets: list[str] = None, title: str = None, body: str = None, data: dict = None, action: str = None, image: str = None, icon: str = None, sound: str = None, color: str = None, tag: str = None, badge: float = None, draft: bool = None, scheduled_at: str = None, content_available: bool = None, critical: bool = None, priority: MessagePriority = None):
+        """Update push notification"""
 
         api_path = '/messaging/messages/push/{messageId}'
         api_params = {}
@@ -140,7 +145,8 @@ def update_push(self, message_id: str, topics: list = None, users: list = None,
             'content-type': 'application/json',
         }, api_params)
 
-    def create_sms(self, message_id: str, content: str, topics: list = None, users: list = None, targets: list = None, draft: bool = None, scheduled_at: str = None):
+    def create_sms(self, message_id: str, content: str, topics: list[str] = None, users: list[str] = None, targets: list[str] = None, draft: bool = None, scheduled_at: str = None):
+        """Create SMS"""
 
         api_path = '/messaging/messages/sms'
         api_params = {}
@@ -163,7 +169,8 @@ def create_sms(self, message_id: str, content: str, topics: list = None, users:
             'content-type': 'application/json',
         }, api_params)
 
-    def update_sms(self, message_id: str, topics: list = None, users: list = None, targets: list = None, content: str = None, draft: bool = None, scheduled_at: str = None):
+    def update_sms(self, message_id: str, topics: list[str] = None, users: list[str] = None, targets: list[str] = None, content: str = None, draft: bool = None, scheduled_at: str = None):
+        """Update SMS"""
 
         api_path = '/messaging/messages/sms/{messageId}'
         api_params = {}
@@ -184,6 +191,7 @@ def update_sms(self, message_id: str, topics: list = None, users: list = None, t
         }, api_params)
 
     def get_message(self, message_id: str):
+        """Get message"""
 
         api_path = '/messaging/messages/{messageId}'
         api_params = {}
@@ -198,6 +206,7 @@ def get_message(self, message_id: str):
         }, api_params)
 
     def delete(self, message_id: str):
+        """Delete message"""
 
         api_path = '/messaging/messages/{messageId}'
         api_params = {}
@@ -211,7 +220,8 @@ def delete(self, message_id: str):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_message_logs(self, message_id: str, queries: list = None):
+    def list_message_logs(self, message_id: str, queries: list[str] = None):
+        """List message logs"""
 
         api_path = '/messaging/messages/{messageId}/logs'
         api_params = {}
@@ -226,7 +236,8 @@ def list_message_logs(self, message_id: str, queries: list = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_targets(self, message_id: str, queries: list = None):
+    def list_targets(self, message_id: str, queries: list[str] = None):
+        """List message targets"""
 
         api_path = '/messaging/messages/{messageId}/targets'
         api_params = {}
@@ -241,7 +252,8 @@ def list_targets(self, message_id: str, queries: list = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_providers(self, queries: list = None, search: str = None):
+    def list_providers(self, queries: list[str] = None, search: str = None):
+        """List providers"""
 
         api_path = '/messaging/providers'
         api_params = {}
@@ -254,6 +266,7 @@ def list_providers(self, queries: list = None, search: str = None):
         }, api_params)
 
     def create_apns_provider(self, provider_id: str, name: str, auth_key: str = None, auth_key_id: str = None, team_id: str = None, bundle_id: str = None, sandbox: bool = None, enabled: bool = None):
+        """Create APNS provider"""
 
         api_path = '/messaging/providers/apns'
         api_params = {}
@@ -278,6 +291,7 @@ def create_apns_provider(self, provider_id: str, name: str, auth_key: str = None
         }, api_params)
 
     def update_apns_provider(self, provider_id: str, name: str = None, enabled: bool = None, auth_key: str = None, auth_key_id: str = None, team_id: str = None, bundle_id: str = None, sandbox: bool = None):
+        """Update APNS provider"""
 
         api_path = '/messaging/providers/apns/{providerId}'
         api_params = {}
@@ -299,6 +313,7 @@ def update_apns_provider(self, provider_id: str, name: str = None, enabled: bool
         }, api_params)
 
     def create_fcm_provider(self, provider_id: str, name: str, service_account_json: dict = None, enabled: bool = None):
+        """Create FCM provider"""
 
         api_path = '/messaging/providers/fcm'
         api_params = {}
@@ -319,6 +334,7 @@ def create_fcm_provider(self, provider_id: str, name: str, service_account_json:
         }, api_params)
 
     def update_fcm_provider(self, provider_id: str, name: str = None, enabled: bool = None, service_account_json: dict = None):
+        """Update FCM provider"""
 
         api_path = '/messaging/providers/fcm/{providerId}'
         api_params = {}
@@ -336,6 +352,7 @@ def update_fcm_provider(self, provider_id: str, name: str = None, enabled: bool
         }, api_params)
 
     def create_mailgun_provider(self, provider_id: str, name: str, api_key: str = None, domain: str = None, is_eu_region: bool = None, from_name: str = None, from_email: str = None, reply_to_name: str = None, reply_to_email: str = None, enabled: bool = None):
+        """Create Mailgun provider"""
 
         api_path = '/messaging/providers/mailgun'
         api_params = {}
@@ -362,6 +379,7 @@ def create_mailgun_provider(self, provider_id: str, name: str, api_key: str = No
         }, api_params)
 
     def update_mailgun_provider(self, provider_id: str, name: str = None, api_key: str = None, domain: str = None, is_eu_region: bool = None, enabled: bool = None, from_name: str = None, from_email: str = None, reply_to_name: str = None, reply_to_email: str = None):
+        """Update Mailgun provider"""
 
         api_path = '/messaging/providers/mailgun/{providerId}'
         api_params = {}
@@ -385,6 +403,7 @@ def update_mailgun_provider(self, provider_id: str, name: str = None, api_key: s
         }, api_params)
 
     def create_msg91_provider(self, provider_id: str, name: str, template_id: str = None, sender_id: str = None, auth_key: str = None, enabled: bool = None):
+        """Create Msg91 provider"""
 
         api_path = '/messaging/providers/msg91'
         api_params = {}
@@ -407,6 +426,7 @@ def create_msg91_provider(self, provider_id: str, name: str, template_id: str =
         }, api_params)
 
     def update_msg91_provider(self, provider_id: str, name: str = None, enabled: bool = None, template_id: str = None, sender_id: str = None, auth_key: str = None):
+        """Update Msg91 provider"""
 
         api_path = '/messaging/providers/msg91/{providerId}'
         api_params = {}
@@ -426,6 +446,7 @@ def update_msg91_provider(self, provider_id: str, name: str = None, enabled: boo
         }, api_params)
 
     def create_sendgrid_provider(self, provider_id: str, name: str, api_key: str = None, from_name: str = None, from_email: str = None, reply_to_name: str = None, reply_to_email: str = None, enabled: bool = None):
+        """Create Sendgrid provider"""
 
         api_path = '/messaging/providers/sendgrid'
         api_params = {}
@@ -450,6 +471,7 @@ def create_sendgrid_provider(self, provider_id: str, name: str, api_key: str = N
         }, api_params)
 
     def update_sendgrid_provider(self, provider_id: str, name: str = None, enabled: bool = None, api_key: str = None, from_name: str = None, from_email: str = None, reply_to_name: str = None, reply_to_email: str = None):
+        """Update Sendgrid provider"""
 
         api_path = '/messaging/providers/sendgrid/{providerId}'
         api_params = {}
@@ -471,6 +493,7 @@ def update_sendgrid_provider(self, provider_id: str, name: str = None, enabled:
         }, api_params)
 
     def create_smtp_provider(self, provider_id: str, name: str, host: str, port: float = None, username: str = None, password: str = None, encryption: SmtpEncryption = None, auto_tls: bool = None, mailer: str = None, from_name: str = None, from_email: str = None, reply_to_name: str = None, reply_to_email: str = None, enabled: bool = None):
+        """Create SMTP provider"""
 
         api_path = '/messaging/providers/smtp'
         api_params = {}
@@ -504,6 +527,7 @@ def create_smtp_provider(self, provider_id: str, name: str, host: str, port: flo
         }, api_params)
 
     def update_smtp_provider(self, provider_id: str, name: str = None, host: str = None, port: float = None, username: str = None, password: str = None, encryption: SmtpEncryption = None, auto_tls: bool = None, mailer: str = None, from_name: str = None, from_email: str = None, reply_to_name: str = None, reply_to_email: str = None, enabled: bool = None):
+        """Update SMTP provider"""
 
         api_path = '/messaging/providers/smtp/{providerId}'
         api_params = {}
@@ -531,6 +555,7 @@ def update_smtp_provider(self, provider_id: str, name: str = None, host: str = N
         }, api_params)
 
     def create_telesign_provider(self, provider_id: str, name: str, xfrom: str = None, customer_id: str = None, api_key: str = None, enabled: bool = None):
+        """Create Telesign provider"""
 
         api_path = '/messaging/providers/telesign'
         api_params = {}
@@ -553,6 +578,7 @@ def create_telesign_provider(self, provider_id: str, name: str, xfrom: str = Non
         }, api_params)
 
     def update_telesign_provider(self, provider_id: str, name: str = None, enabled: bool = None, customer_id: str = None, api_key: str = None, xfrom: str = None):
+        """Update Telesign provider"""
 
         api_path = '/messaging/providers/telesign/{providerId}'
         api_params = {}
@@ -572,6 +598,7 @@ def update_telesign_provider(self, provider_id: str, name: str = None, enabled:
         }, api_params)
 
     def create_textmagic_provider(self, provider_id: str, name: str, xfrom: str = None, username: str = None, api_key: str = None, enabled: bool = None):
+        """Create Textmagic provider"""
 
         api_path = '/messaging/providers/textmagic'
         api_params = {}
@@ -594,6 +621,7 @@ def create_textmagic_provider(self, provider_id: str, name: str, xfrom: str = No
         }, api_params)
 
     def update_textmagic_provider(self, provider_id: str, name: str = None, enabled: bool = None, username: str = None, api_key: str = None, xfrom: str = None):
+        """Update Textmagic provider"""
 
         api_path = '/messaging/providers/textmagic/{providerId}'
         api_params = {}
@@ -613,6 +641,7 @@ def update_textmagic_provider(self, provider_id: str, name: str = None, enabled:
         }, api_params)
 
     def create_twilio_provider(self, provider_id: str, name: str, xfrom: str = None, account_sid: str = None, auth_token: str = None, enabled: bool = None):
+        """Create Twilio provider"""
 
         api_path = '/messaging/providers/twilio'
         api_params = {}
@@ -635,6 +664,7 @@ def create_twilio_provider(self, provider_id: str, name: str, xfrom: str = None,
         }, api_params)
 
     def update_twilio_provider(self, provider_id: str, name: str = None, enabled: bool = None, account_sid: str = None, auth_token: str = None, xfrom: str = None):
+        """Update Twilio provider"""
 
         api_path = '/messaging/providers/twilio/{providerId}'
         api_params = {}
@@ -654,6 +684,7 @@ def update_twilio_provider(self, provider_id: str, name: str = None, enabled: bo
         }, api_params)
 
     def create_vonage_provider(self, provider_id: str, name: str, xfrom: str = None, api_key: str = None, api_secret: str = None, enabled: bool = None):
+        """Create Vonage provider"""
 
         api_path = '/messaging/providers/vonage'
         api_params = {}
@@ -676,6 +707,7 @@ def create_vonage_provider(self, provider_id: str, name: str, xfrom: str = None,
         }, api_params)
 
     def update_vonage_provider(self, provider_id: str, name: str = None, enabled: bool = None, api_key: str = None, api_secret: str = None, xfrom: str = None):
+        """Update Vonage provider"""
 
         api_path = '/messaging/providers/vonage/{providerId}'
         api_params = {}
@@ -695,6 +727,7 @@ def update_vonage_provider(self, provider_id: str, name: str = None, enabled: bo
         }, api_params)
 
     def get_provider(self, provider_id: str):
+        """Get provider"""
 
         api_path = '/messaging/providers/{providerId}'
         api_params = {}
@@ -709,6 +742,7 @@ def get_provider(self, provider_id: str):
         }, api_params)
 
     def delete_provider(self, provider_id: str):
+        """Delete provider"""
 
         api_path = '/messaging/providers/{providerId}'
         api_params = {}
@@ -722,7 +756,8 @@ def delete_provider(self, provider_id: str):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_provider_logs(self, provider_id: str, queries: list = None):
+    def list_provider_logs(self, provider_id: str, queries: list[str] = None):
+        """List provider logs"""
 
         api_path = '/messaging/providers/{providerId}/logs'
         api_params = {}
@@ -737,7 +772,8 @@ def list_provider_logs(self, provider_id: str, queries: list = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_subscriber_logs(self, subscriber_id: str, queries: list = None):
+    def list_subscriber_logs(self, subscriber_id: str, queries: list[str] = None):
+        """List subscriber logs"""
 
         api_path = '/messaging/subscribers/{subscriberId}/logs'
         api_params = {}
@@ -752,7 +788,8 @@ def list_subscriber_logs(self, subscriber_id: str, queries: list = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_topics(self, queries: list = None, search: str = None):
+    def list_topics(self, queries: list[str] = None, search: str = None):
+        """List topics"""
 
         api_path = '/messaging/topics'
         api_params = {}
@@ -764,7 +801,8 @@ def list_topics(self, queries: list = None, search: str = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_topic(self, topic_id: str, name: str, subscribe: list = None):
+    def create_topic(self, topic_id: str, name: str, subscribe: list[str] = None):
+        """Create topic"""
 
         api_path = '/messaging/topics'
         api_params = {}
@@ -784,6 +822,7 @@ def create_topic(self, topic_id: str, name: str, subscribe: list = None):
         }, api_params)
 
     def get_topic(self, topic_id: str):
+        """Get topic"""
 
         api_path = '/messaging/topics/{topicId}'
         api_params = {}
@@ -797,7 +836,8 @@ def get_topic(self, topic_id: str):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_topic(self, topic_id: str, name: str = None, subscribe: list = None):
+    def update_topic(self, topic_id: str, name: str = None, subscribe: list[str] = None):
+        """Update topic"""
 
         api_path = '/messaging/topics/{topicId}'
         api_params = {}
@@ -814,6 +854,7 @@ def update_topic(self, topic_id: str, name: str = None, subscribe: list = None):
         }, api_params)
 
     def delete_topic(self, topic_id: str):
+        """Delete topic"""
 
         api_path = '/messaging/topics/{topicId}'
         api_params = {}
@@ -827,7 +868,8 @@ def delete_topic(self, topic_id: str):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_topic_logs(self, topic_id: str, queries: list = None):
+    def list_topic_logs(self, topic_id: str, queries: list[str] = None):
+        """List topic logs"""
 
         api_path = '/messaging/topics/{topicId}/logs'
         api_params = {}
@@ -842,7 +884,8 @@ def list_topic_logs(self, topic_id: str, queries: list = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_subscribers(self, topic_id: str, queries: list = None, search: str = None):
+    def list_subscribers(self, topic_id: str, queries: list[str] = None, search: str = None):
+        """List subscribers"""
 
         api_path = '/messaging/topics/{topicId}/subscribers'
         api_params = {}
@@ -859,6 +902,7 @@ def list_subscribers(self, topic_id: str, queries: list = None, search: str = No
         }, api_params)
 
     def create_subscriber(self, topic_id: str, subscriber_id: str, target_id: str):
+        """Create subscriber"""
 
         api_path = '/messaging/topics/{topicId}/subscribers'
         api_params = {}
@@ -881,6 +925,7 @@ def create_subscriber(self, topic_id: str, subscriber_id: str, target_id: str):
         }, api_params)
 
     def get_subscriber(self, topic_id: str, subscriber_id: str):
+        """Get subscriber"""
 
         api_path = '/messaging/topics/{topicId}/subscribers/{subscriberId}'
         api_params = {}
@@ -899,6 +944,7 @@ def get_subscriber(self, topic_id: str, subscriber_id: str):
         }, api_params)
 
     def delete_subscriber(self, topic_id: str, subscriber_id: str):
+        """Delete subscriber"""
 
         api_path = '/messaging/topics/{topicId}/subscribers/{subscriberId}'
         api_params = {}
diff --git a/appwrite/services/storage.py b/appwrite/services/storage.py
index 0e57cfe..dc30df5 100644
--- a/appwrite/services/storage.py
+++ b/appwrite/services/storage.py
@@ -10,7 +10,8 @@ class Storage(Service):
     def __init__(self, client):
         super(Storage, self).__init__(client)
 
-    def list_buckets(self, queries: list = None, search: str = None):
+    def list_buckets(self, queries: list[str] = None, search: str = None):
+        """List buckets"""
 
         api_path = '/storage/buckets'
         api_params = {}
@@ -22,7 +23,8 @@ def list_buckets(self, queries: list = None, search: str = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_bucket(self, bucket_id: str, name: str, permissions: list = None, file_security: bool = None, enabled: bool = None, maximum_file_size: float = None, allowed_file_extensions: list = None, compression: Compression = None, encryption: bool = None, antivirus: bool = None):
+    def create_bucket(self, bucket_id: str, name: str, permissions: list[str] = None, file_security: bool = None, enabled: bool = None, maximum_file_size: float = None, allowed_file_extensions: list[str] = None, compression: Compression = None, encryption: bool = None, antivirus: bool = None):
+        """Create bucket"""
 
         api_path = '/storage/buckets'
         api_params = {}
@@ -49,6 +51,7 @@ def create_bucket(self, bucket_id: str, name: str, permissions: list = None, fil
         }, api_params)
 
     def get_bucket(self, bucket_id: str):
+        """Get bucket"""
 
         api_path = '/storage/buckets/{bucketId}'
         api_params = {}
@@ -62,7 +65,8 @@ def get_bucket(self, bucket_id: str):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_bucket(self, bucket_id: str, name: str, permissions: list = None, file_security: bool = None, enabled: bool = None, maximum_file_size: float = None, allowed_file_extensions: list = None, compression: Compression = None, encryption: bool = None, antivirus: bool = None):
+    def update_bucket(self, bucket_id: str, name: str, permissions: list[str] = None, file_security: bool = None, enabled: bool = None, maximum_file_size: float = None, allowed_file_extensions: list[str] = None, compression: Compression = None, encryption: bool = None, antivirus: bool = None):
+        """Update bucket"""
 
         api_path = '/storage/buckets/{bucketId}'
         api_params = {}
@@ -89,6 +93,7 @@ def update_bucket(self, bucket_id: str, name: str, permissions: list = None, fil
         }, api_params)
 
     def delete_bucket(self, bucket_id: str):
+        """Delete bucket"""
 
         api_path = '/storage/buckets/{bucketId}'
         api_params = {}
@@ -102,7 +107,8 @@ def delete_bucket(self, bucket_id: str):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_files(self, bucket_id: str, queries: list = None, search: str = None):
+    def list_files(self, bucket_id: str, queries: list[str] = None, search: str = None):
+        """List files"""
 
         api_path = '/storage/buckets/{bucketId}/files'
         api_params = {}
@@ -118,7 +124,8 @@ def list_files(self, bucket_id: str, queries: list = None, search: str = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create_file(self, bucket_id: str, file_id: str, file: InputFile, permissions: list = None, on_progress = None):
+    def create_file(self, bucket_id: str, file_id: str, file: InputFile, permissions: list[str] = None, on_progress = None):
+        """Create file"""
 
         api_path = '/storage/buckets/{bucketId}/files'
         api_params = {}
@@ -148,6 +155,7 @@ def create_file(self, bucket_id: str, file_id: str, file: InputFile, permissions
         }, api_params, param_name, on_progress, upload_id)
 
     def get_file(self, bucket_id: str, file_id: str):
+        """Get file"""
 
         api_path = '/storage/buckets/{bucketId}/files/{fileId}'
         api_params = {}
@@ -165,7 +173,8 @@ def get_file(self, bucket_id: str, file_id: str):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_file(self, bucket_id: str, file_id: str, name: str = None, permissions: list = None):
+    def update_file(self, bucket_id: str, file_id: str, name: str = None, permissions: list[str] = None):
+        """Update file"""
 
         api_path = '/storage/buckets/{bucketId}/files/{fileId}'
         api_params = {}
@@ -186,6 +195,7 @@ def update_file(self, bucket_id: str, file_id: str, name: str = None, permission
         }, api_params)
 
     def delete_file(self, bucket_id: str, file_id: str):
+        """Delete file"""
 
         api_path = '/storage/buckets/{bucketId}/files/{fileId}'
         api_params = {}
@@ -204,6 +214,7 @@ def delete_file(self, bucket_id: str, file_id: str):
         }, api_params)
 
     def get_file_download(self, bucket_id: str, file_id: str):
+        """Get file for download"""
 
         api_path = '/storage/buckets/{bucketId}/files/{fileId}/download'
         api_params = {}
@@ -222,6 +233,7 @@ def get_file_download(self, bucket_id: str, file_id: str):
         }, api_params)
 
     def get_file_preview(self, bucket_id: str, file_id: str, width: float = None, height: float = None, gravity: ImageGravity = None, quality: float = None, border_width: float = None, border_color: str = None, border_radius: float = None, opacity: float = None, rotation: float = None, background: str = None, output: ImageFormat = None):
+        """Get file preview"""
 
         api_path = '/storage/buckets/{bucketId}/files/{fileId}/preview'
         api_params = {}
@@ -251,6 +263,7 @@ def get_file_preview(self, bucket_id: str, file_id: str, width: float = None, he
         }, api_params)
 
     def get_file_view(self, bucket_id: str, file_id: str):
+        """Get file for view"""
 
         api_path = '/storage/buckets/{bucketId}/files/{fileId}/view'
         api_params = {}
diff --git a/appwrite/services/teams.py b/appwrite/services/teams.py
index 988bf3c..f157768 100644
--- a/appwrite/services/teams.py
+++ b/appwrite/services/teams.py
@@ -6,7 +6,8 @@ class Teams(Service):
     def __init__(self, client):
         super(Teams, self).__init__(client)
 
-    def list(self, queries: list = None, search: str = None):
+    def list(self, queries: list[str] = None, search: str = None):
+        """List teams"""
 
         api_path = '/teams'
         api_params = {}
@@ -18,7 +19,8 @@ def list(self, queries: list = None, search: str = None):
             'content-type': 'application/json',
         }, api_params)
 
-    def create(self, team_id: str, name: str, roles: list = None):
+    def create(self, team_id: str, name: str, roles: list[str] = None):
+        """Create team"""
 
         api_path = '/teams'
         api_params = {}
@@ -38,6 +40,7 @@ def create(self, team_id: str, name: str, roles: list = None):
         }, api_params)
 
     def get(self, team_id: str):
+        """Get team"""
 
         api_path = '/teams/{teamId}'
         api_params = {}
@@ -52,6 +55,7 @@ def get(self, team_id: str):
         }, api_params)
 
     def update_name(self, team_id: str, name: str):
+        """Update name"""
 
         api_path = '/teams/{teamId}'
         api_params = {}
@@ -70,6 +74,7 @@ def update_name(self, team_id: str, name: str):
         }, api_params)
 
     def delete(self, team_id: str):
+        """Delete team"""
 
         api_path = '/teams/{teamId}'
         api_params = {}
@@ -83,7 +88,8 @@ def delete(self, team_id: str):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_memberships(self, team_id: str, queries: list = None, search: str = None):
+    def list_memberships(self, team_id: str, queries: list[str] = None, search: str = None):
+        """List team memberships"""
 
         api_path = '/teams/{teamId}/memberships'
         api_params = {}
@@ -99,7 +105,8 @@ def list_memberships(self, team_id: str, queries: list = None, search: str = Non
             'content-type': 'application/json',
         }, api_params)
 
-    def create_membership(self, team_id: str, roles: list, email: str = None, user_id: str = None, phone: str = None, url: str = None, name: str = None):
+    def create_membership(self, team_id: str, roles: list[str], email: str = None, user_id: str = None, phone: str = None, url: str = None, name: str = None):
+        """Create team membership"""
 
         api_path = '/teams/{teamId}/memberships'
         api_params = {}
@@ -123,6 +130,7 @@ def create_membership(self, team_id: str, roles: list, email: str = None, user_i
         }, api_params)
 
     def get_membership(self, team_id: str, membership_id: str):
+        """Get team membership"""
 
         api_path = '/teams/{teamId}/memberships/{membershipId}'
         api_params = {}
@@ -140,7 +148,8 @@ def get_membership(self, team_id: str, membership_id: str):
             'content-type': 'application/json',
         }, api_params)
 
-    def update_membership(self, team_id: str, membership_id: str, roles: list):
+    def update_membership(self, team_id: str, membership_id: str, roles: list[str]):
+        """Update membership"""
 
         api_path = '/teams/{teamId}/memberships/{membershipId}'
         api_params = {}
@@ -163,6 +172,7 @@ def update_membership(self, team_id: str, membership_id: str, roles: list):
         }, api_params)
 
     def delete_membership(self, team_id: str, membership_id: str):
+        """Delete team membership"""
 
         api_path = '/teams/{teamId}/memberships/{membershipId}'
         api_params = {}
@@ -181,6 +191,7 @@ def delete_membership(self, team_id: str, membership_id: str):
         }, api_params)
 
     def update_membership_status(self, team_id: str, membership_id: str, user_id: str, secret: str):
+        """Update team membership status"""
 
         api_path = '/teams/{teamId}/memberships/{membershipId}/status'
         api_params = {}
@@ -207,6 +218,7 @@ def update_membership_status(self, team_id: str, membership_id: str, user_id: st
         }, api_params)
 
     def get_prefs(self, team_id: str):
+        """Get team preferences"""
 
         api_path = '/teams/{teamId}/prefs'
         api_params = {}
@@ -221,6 +233,7 @@ def get_prefs(self, team_id: str):
         }, api_params)
 
     def update_prefs(self, team_id: str, prefs: dict):
+        """Update preferences"""
 
         api_path = '/teams/{teamId}/prefs'
         api_params = {}
diff --git a/appwrite/services/users.py b/appwrite/services/users.py
index 1a141db..6ed17ee 100644
--- a/appwrite/services/users.py
+++ b/appwrite/services/users.py
@@ -9,7 +9,8 @@ class Users(Service):
     def __init__(self, client):
         super(Users, self).__init__(client)
 
-    def list(self, queries: list = None, search: str = None):
+    def list(self, queries: list[str] = None, search: str = None):
+        """List users"""
 
         api_path = '/users'
         api_params = {}
@@ -22,6 +23,7 @@ def list(self, queries: list = None, search: str = None):
         }, api_params)
 
     def create(self, user_id: str, email: str = None, phone: str = None, password: str = None, name: str = None):
+        """Create user"""
 
         api_path = '/users'
         api_params = {}
@@ -40,6 +42,7 @@ def create(self, user_id: str, email: str = None, phone: str = None, password: s
         }, api_params)
 
     def create_argon2_user(self, user_id: str, email: str, password: str, name: str = None):
+        """Create user with Argon2 password"""
 
         api_path = '/users/argon2'
         api_params = {}
@@ -63,6 +66,7 @@ def create_argon2_user(self, user_id: str, email: str, password: str, name: str
         }, api_params)
 
     def create_bcrypt_user(self, user_id: str, email: str, password: str, name: str = None):
+        """Create user with bcrypt password"""
 
         api_path = '/users/bcrypt'
         api_params = {}
@@ -85,7 +89,8 @@ def create_bcrypt_user(self, user_id: str, email: str, password: str, name: str
             'content-type': 'application/json',
         }, api_params)
 
-    def list_identities(self, queries: list = None, search: str = None):
+    def list_identities(self, queries: list[str] = None, search: str = None):
+        """List identities"""
 
         api_path = '/users/identities'
         api_params = {}
@@ -98,6 +103,7 @@ def list_identities(self, queries: list = None, search: str = None):
         }, api_params)
 
     def delete_identity(self, identity_id: str):
+        """Delete identity"""
 
         api_path = '/users/identities/{identityId}'
         api_params = {}
@@ -112,6 +118,7 @@ def delete_identity(self, identity_id: str):
         }, api_params)
 
     def create_md5_user(self, user_id: str, email: str, password: str, name: str = None):
+        """Create user with MD5 password"""
 
         api_path = '/users/md5'
         api_params = {}
@@ -135,6 +142,7 @@ def create_md5_user(self, user_id: str, email: str, password: str, name: str = N
         }, api_params)
 
     def create_ph_pass_user(self, user_id: str, email: str, password: str, name: str = None):
+        """Create user with PHPass password"""
 
         api_path = '/users/phpass'
         api_params = {}
@@ -158,6 +166,7 @@ def create_ph_pass_user(self, user_id: str, email: str, password: str, name: str
         }, api_params)
 
     def create_scrypt_user(self, user_id: str, email: str, password: str, password_salt: str, password_cpu: float, password_memory: float, password_parallel: float, password_length: float, name: str = None):
+        """Create user with Scrypt password"""
 
         api_path = '/users/scrypt'
         api_params = {}
@@ -201,6 +210,7 @@ def create_scrypt_user(self, user_id: str, email: str, password: str, password_s
         }, api_params)
 
     def create_scrypt_modified_user(self, user_id: str, email: str, password: str, password_salt: str, password_salt_separator: str, password_signer_key: str, name: str = None):
+        """Create user with Scrypt modified password"""
 
         api_path = '/users/scrypt-modified'
         api_params = {}
@@ -236,6 +246,7 @@ def create_scrypt_modified_user(self, user_id: str, email: str, password: str, p
         }, api_params)
 
     def create_sha_user(self, user_id: str, email: str, password: str, password_version: PasswordHash = None, name: str = None):
+        """Create user with SHA password"""
 
         api_path = '/users/sha'
         api_params = {}
@@ -260,6 +271,7 @@ def create_sha_user(self, user_id: str, email: str, password: str, password_vers
         }, api_params)
 
     def get(self, user_id: str):
+        """Get user"""
 
         api_path = '/users/{userId}'
         api_params = {}
@@ -274,6 +286,7 @@ def get(self, user_id: str):
         }, api_params)
 
     def delete(self, user_id: str):
+        """Delete user"""
 
         api_path = '/users/{userId}'
         api_params = {}
@@ -288,6 +301,7 @@ def delete(self, user_id: str):
         }, api_params)
 
     def update_email(self, user_id: str, email: str):
+        """Update email"""
 
         api_path = '/users/{userId}/email'
         api_params = {}
@@ -306,6 +320,7 @@ def update_email(self, user_id: str, email: str):
         }, api_params)
 
     def create_jwt(self, user_id: str, session_id: str = None, duration: float = None):
+        """Create user JWT"""
 
         api_path = '/users/{userId}/jwts'
         api_params = {}
@@ -321,7 +336,8 @@ def create_jwt(self, user_id: str, session_id: str = None, duration: float = Non
             'content-type': 'application/json',
         }, api_params)
 
-    def update_labels(self, user_id: str, labels: list):
+    def update_labels(self, user_id: str, labels: list[str]):
+        """Update user labels"""
 
         api_path = '/users/{userId}/labels'
         api_params = {}
@@ -339,7 +355,8 @@ def update_labels(self, user_id: str, labels: list):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_logs(self, user_id: str, queries: list = None):
+    def list_logs(self, user_id: str, queries: list[str] = None):
+        """List user logs"""
 
         api_path = '/users/{userId}/logs'
         api_params = {}
@@ -355,6 +372,7 @@ def list_logs(self, user_id: str, queries: list = None):
         }, api_params)
 
     def list_memberships(self, user_id: str):
+        """List user memberships"""
 
         api_path = '/users/{userId}/memberships'
         api_params = {}
@@ -369,6 +387,7 @@ def list_memberships(self, user_id: str):
         }, api_params)
 
     def update_mfa(self, user_id: str, mfa: bool):
+        """Update MFA"""
 
         api_path = '/users/{userId}/mfa'
         api_params = {}
@@ -387,6 +406,7 @@ def update_mfa(self, user_id: str, mfa: bool):
         }, api_params)
 
     def delete_mfa_authenticator(self, user_id: str, type: AuthenticatorType):
+        """Delete authenticator"""
 
         api_path = '/users/{userId}/mfa/authenticators/{type}'
         api_params = {}
@@ -405,6 +425,7 @@ def delete_mfa_authenticator(self, user_id: str, type: AuthenticatorType):
         }, api_params)
 
     def list_mfa_factors(self, user_id: str):
+        """List factors"""
 
         api_path = '/users/{userId}/mfa/factors'
         api_params = {}
@@ -419,6 +440,7 @@ def list_mfa_factors(self, user_id: str):
         }, api_params)
 
     def get_mfa_recovery_codes(self, user_id: str):
+        """Get MFA recovery codes"""
 
         api_path = '/users/{userId}/mfa/recovery-codes'
         api_params = {}
@@ -433,6 +455,7 @@ def get_mfa_recovery_codes(self, user_id: str):
         }, api_params)
 
     def update_mfa_recovery_codes(self, user_id: str):
+        """Regenerate MFA recovery codes"""
 
         api_path = '/users/{userId}/mfa/recovery-codes'
         api_params = {}
@@ -447,6 +470,7 @@ def update_mfa_recovery_codes(self, user_id: str):
         }, api_params)
 
     def create_mfa_recovery_codes(self, user_id: str):
+        """Create MFA recovery codes"""
 
         api_path = '/users/{userId}/mfa/recovery-codes'
         api_params = {}
@@ -461,6 +485,7 @@ def create_mfa_recovery_codes(self, user_id: str):
         }, api_params)
 
     def update_name(self, user_id: str, name: str):
+        """Update name"""
 
         api_path = '/users/{userId}/name'
         api_params = {}
@@ -479,6 +504,7 @@ def update_name(self, user_id: str, name: str):
         }, api_params)
 
     def update_password(self, user_id: str, password: str):
+        """Update password"""
 
         api_path = '/users/{userId}/password'
         api_params = {}
@@ -497,6 +523,7 @@ def update_password(self, user_id: str, password: str):
         }, api_params)
 
     def update_phone(self, user_id: str, number: str):
+        """Update phone"""
 
         api_path = '/users/{userId}/phone'
         api_params = {}
@@ -515,6 +542,7 @@ def update_phone(self, user_id: str, number: str):
         }, api_params)
 
     def get_prefs(self, user_id: str):
+        """Get user preferences"""
 
         api_path = '/users/{userId}/prefs'
         api_params = {}
@@ -529,6 +557,7 @@ def get_prefs(self, user_id: str):
         }, api_params)
 
     def update_prefs(self, user_id: str, prefs: dict):
+        """Update user preferences"""
 
         api_path = '/users/{userId}/prefs'
         api_params = {}
@@ -547,6 +576,7 @@ def update_prefs(self, user_id: str, prefs: dict):
         }, api_params)
 
     def list_sessions(self, user_id: str):
+        """List user sessions"""
 
         api_path = '/users/{userId}/sessions'
         api_params = {}
@@ -561,6 +591,7 @@ def list_sessions(self, user_id: str):
         }, api_params)
 
     def create_session(self, user_id: str):
+        """Create session"""
 
         api_path = '/users/{userId}/sessions'
         api_params = {}
@@ -575,6 +606,7 @@ def create_session(self, user_id: str):
         }, api_params)
 
     def delete_sessions(self, user_id: str):
+        """Delete user sessions"""
 
         api_path = '/users/{userId}/sessions'
         api_params = {}
@@ -589,6 +621,7 @@ def delete_sessions(self, user_id: str):
         }, api_params)
 
     def delete_session(self, user_id: str, session_id: str):
+        """Delete user session"""
 
         api_path = '/users/{userId}/sessions/{sessionId}'
         api_params = {}
@@ -607,6 +640,7 @@ def delete_session(self, user_id: str, session_id: str):
         }, api_params)
 
     def update_status(self, user_id: str, status: bool):
+        """Update user status"""
 
         api_path = '/users/{userId}/status'
         api_params = {}
@@ -624,7 +658,8 @@ def update_status(self, user_id: str, status: bool):
             'content-type': 'application/json',
         }, api_params)
 
-    def list_targets(self, user_id: str, queries: list = None):
+    def list_targets(self, user_id: str, queries: list[str] = None):
+        """List user targets"""
 
         api_path = '/users/{userId}/targets'
         api_params = {}
@@ -640,6 +675,7 @@ def list_targets(self, user_id: str, queries: list = None):
         }, api_params)
 
     def create_target(self, user_id: str, target_id: str, provider_type: MessagingProviderType, identifier: str, provider_id: str = None, name: str = None):
+        """Create user target"""
 
         api_path = '/users/{userId}/targets'
         api_params = {}
@@ -668,6 +704,7 @@ def create_target(self, user_id: str, target_id: str, provider_type: MessagingPr
         }, api_params)
 
     def get_target(self, user_id: str, target_id: str):
+        """Get user target"""
 
         api_path = '/users/{userId}/targets/{targetId}'
         api_params = {}
@@ -686,6 +723,7 @@ def get_target(self, user_id: str, target_id: str):
         }, api_params)
 
     def update_target(self, user_id: str, target_id: str, identifier: str = None, provider_id: str = None, name: str = None):
+        """Update user target"""
 
         api_path = '/users/{userId}/targets/{targetId}'
         api_params = {}
@@ -707,6 +745,7 @@ def update_target(self, user_id: str, target_id: str, identifier: str = None, pr
         }, api_params)
 
     def delete_target(self, user_id: str, target_id: str):
+        """Delete user target"""
 
         api_path = '/users/{userId}/targets/{targetId}'
         api_params = {}
@@ -725,6 +764,7 @@ def delete_target(self, user_id: str, target_id: str):
         }, api_params)
 
     def create_token(self, user_id: str, length: float = None, expire: float = None):
+        """Create token"""
 
         api_path = '/users/{userId}/tokens'
         api_params = {}
@@ -741,6 +781,7 @@ def create_token(self, user_id: str, length: float = None, expire: float = None)
         }, api_params)
 
     def update_email_verification(self, user_id: str, email_verification: bool):
+        """Update email verification"""
 
         api_path = '/users/{userId}/verification'
         api_params = {}
@@ -759,6 +800,7 @@ def update_email_verification(self, user_id: str, email_verification: bool):
         }, api_params)
 
     def update_phone_verification(self, user_id: str, phone_verification: bool):
+        """Update phone verification"""
 
         api_path = '/users/{userId}/verification/phone'
         api_params = {}