### Example Versioning Source: https://github.com/zitadel/client-python/blob/beta/VERSIONING.md Illustrates the versioning scheme for ZITADEL SDKs, showing major, minor, and patch changes with corresponding ZITADEL compatibility and examples. ```Text MAJOR (e.g., 3.x -> 4.x): Aligned with ZITADEL Core. Requires server upgrade. Contains breaking changes. Example: v3.5.1 -> v4.0.0 MINOR (e.g., 3.1 -> 3.2): Compatible with the same ZITADEL major version. New, non-breaking features added. Example: v3.1.4 -> v3.2.0 PATCH (e.g., 3.1.0 -> 3.1.1): Compatible with the same ZITADEL major version. Backwards-compatible bug fixes. Example: v3.1.0 -> v3.1.1 ``` -------------------------------- ### Install Zitadel Python SDK Source: https://github.com/zitadel/client-python/blob/beta/README.md Installs the Zitadel Python SDK using pip. This is the first step to integrate Zitadel's API functionalities into your Python applications. ```bash pip install zitadel_client ``` -------------------------------- ### Pre-Release Version Example Source: https://github.com/zitadel/client-python/blob/beta/VERSIONING.md Shows an example of a pre-release version tag used for SDKs, such as '4.0.0-rc.1', indicating a release candidate for version 4.0.0. ```Text Example: 4.0.0-rc.1 would be the first release candidate for version 4.0.0. ``` -------------------------------- ### Support Policy Example Source: https://github.com/zitadel/client-python/blob/beta/VERSIONING.md Explains the support policy for ZITADEL SDKs, where the current major release (N) and the previous major release (N-1) are supported. Versions older than N-1 are deprecated. ```Text Supported Versions: The current major release (N) and the immediately preceding major release (N-1) are officially supported. Unsupported Versions: Any version prior to N-1 is considered deprecated and unsupported. For example, when SDK v4.x.x is released: v4.x.x becomes the current, fully supported version. v3.x.x becomes the previous (N-1) version and will continue to receive critical backported fixes. v2.x.x and older versions become unsupported. ``` -------------------------------- ### SDK Version Alignment Example Source: https://github.com/zitadel/client-python/blob/beta/VERSIONING.md Demonstrates how SDK releases are tied to ZITADEL Core major versions to ensure compatibility. For instance, SDK 3.x.x is for ZITADEL v3, and a new SDK 4.0.0 will be released with ZITADEL v4. ```Text Any SDK release in the 3.x.x series is built for and tested against ZITADEL v3. When ZITADEL v4 is released, a corresponding 4.0.0 version of the SDK will be released. ``` -------------------------------- ### Authenticate with PAT and Add User (Python) Source: https://github.com/zitadel/client-python/blob/beta/README.md Demonstrates how to authenticate with the Zitadel Python client using a Personal Access Token (PAT) and subsequently add a human user. It includes error handling for API requests. ```python import zitadel_client as zitadel from zitadel_client.exceptions import ApiError from zitadel_client.models import ( UserServiceAddHumanUserRequest, UserServiceSetHumanEmail, UserServiceSetHumanProfile, ) zitadel = zitadel.Zitadel.with_access_token("https://example.us1.zitadel.cloud", "token") try: request = UserServiceAddHumanUserRequest( username="john.doe", profile=UserServiceSetHumanProfile( givenName="John", familyName="Doe" ), email=UserServiceSetHumanEmail( email="john@doe.com" ), ) response = zitadel.users.add_human_user(request) print("User created:", response) except ApiError as e: print("Error:", e) ``` -------------------------------- ### Authenticate with Private Key JWT Source: https://github.com/zitadel/client-python/blob/beta/README.md Demonstrates how to authenticate with Zitadel using a private key JWT. This method is suitable for production environments and offers advanced control over token settings. It involves loading a private key from a JSON file to create a JWT-based authenticator. ```python import zitadel_client as zitadel from zitadel_client.exceptions import ApiError from zitadel_client.models import ( UserServiceAddHumanUserRequest, UserServiceSetHumanEmail, UserServiceSetHumanProfile, ) zitadel = zitadel.Zitadel.with_private_key("https://example.us1.zitadel.cloud", "path/to/jwt-key.json") try: request = UserServiceAddHumanUserRequest( username="john.doe", profile=UserServiceSetHumanProfile( givenName="John", familyName="Doe" ), email=UserServiceSetHumanEmail( email="john@doe.com" ), ) response = zitadel.users.add_human_user(request) print("User created:", response) except ApiError as e: print("Error:", e) ``` -------------------------------- ### Authenticate with Client Credentials Grant Source: https://github.com/zitadel/client-python/blob/beta/README.md Shows how to authenticate with Zitadel using the Client Credentials Grant. This method is ideal for server-to-server communication in trusted environments, using a client ID and client secret to obtain an access token. ```python import zitadel_client as zitadel from zitadel_client.exceptions import ApiError from zitadel_client.models import ( UserServiceAddHumanUserRequest, UserServiceSetHumanEmail, UserServiceSetHumanProfile, ) zitadel = zitadel.Zitadel.with_client_credentials("https://example.us1.zitadel.cloud", "id", "secret") try: request = UserServiceAddHumanUserRequest( username="john.doe", profile=UserServiceSetHumanProfile( givenName="John", familyName="Doe" ), email=UserServiceSetHumanEmail( email="john@doe.com" ), ) response = zitadel.users.add_human_user(request) print("User created:", response) except ApiError as e: print("Error:", e) ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.