{"id":2859,"library":"alibabacloud-gateway-spi","title":"Alibaba Cloud Gateway SPI SDK Library","description":"The `alibabacloud-gateway-spi` library provides Service Provider Interface (SPI) definitions for building and extending Alibaba Cloud Gateway functionalities in Python. It's a foundational component within the Alibaba Cloud SDK ecosystem, defining abstract clients and models that other SDKs or custom gateway implementations can utilize. The current version is 0.0.3, with releases appearing to follow an irregular cadence as part of the broader Alibaba Cloud SDK development.","status":"active","version":"0.0.3","language":"python","source_language":"en","source_url":"https://github.com/aliyun/alibabacloud-gateway","tags":["alibaba cloud","gateway","spi","sdk","cloud computing"],"install":[{"cmd":"pip install alibabacloud-gateway-spi","lang":"bash","label":"Install latest version"}],"dependencies":[],"imports":[{"note":"Imports the abstract base client class for implementing custom gateways.","symbol":"Client","correct":"from alibabacloud_gateway_spi.client import Client"},{"note":"Imports models related to interception context for gateway processing.","symbol":"InterceptorContext","correct":"from alibabacloud_gateway_spi.models import InterceptorContext"}],"quickstart":{"code":"from alibabacloud_gateway_spi.client import Client\nfrom alibabacloud_gateway_spi.models import InterceptorContext\n\n# alibabacloud-gateway-spi provides abstract classes and interfaces.\n# It is not typically used directly by end-users for making API calls,\n# but rather extended or implemented by other Alibaba Cloud SDK components\n# or custom gateway logic.\n\nprint(f\"Successfully imported Client class: {Client.__name__}\")\nprint(f\"Successfully imported InterceptorContext model: {InterceptorContext.__name__}\")\n\n# Example of defining a placeholder for a custom gateway client:\nclass MyCustomGatewayClient(Client):\n    def _do_request(self, request, runtime): # type: (...), (...) -> (...)\n        # Implement custom request logic here\n        print(\"MyCustomGatewayClient is processing a request.\")\n        # In a real scenario, this would involve making an actual HTTP request\n        # and handling the response.\n        return {'statusCode': 200, 'headers': {}, 'body': {}}\n\n# This quickstart demonstrates importing and understanding the library's purpose.\n# For actual usage, you would build upon or integrate with other Alibaba Cloud SDKs.","lang":"python","description":"This quickstart demonstrates how to import core components of `alibabacloud-gateway-spi`, which primarily defines abstract classes and models. It highlights that this library is intended for extending or implementing custom gateway logic rather than direct end-user API invocation. It includes a simple placeholder for a custom gateway client extending the provided abstract `Client` class."},"warnings":[{"fix":"Do not attempt to instantiate `Client` directly for making API calls. Refer to specific Alibaba Cloud service SDKs for client-side API usage. Use this library when building custom gateway logic or extending the Alibaba Cloud SDK's gateway capabilities.","message":"This library (`alibabacloud-gateway-spi`) serves as a Service Provider Interface (SPI) and provides abstract classes and models. It is not designed for direct end-user interaction to make API calls to Alibaba Cloud services. Instead, it defines interfaces that other Alibaba Cloud SDKs or custom gateway implementations build upon or implement.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Monitor GitHub releases and PyPI for updates. Pin the exact version in your `requirements.txt` to ensure stability in production environments. Be prepared for potential API changes when upgrading to new minor or patch versions.","message":"As of version 0.0.3, this library is in a very early development stage (implied by the low version number). While no explicit 'beta' status is listed for this specific package, a related package (`alibabacloud-gateway-pds`) that depends on `alibabacloud-gateway-spi` is marked as 'Development Status :: 4 - Beta'. This suggests that API stability might not be fully guaranteed, and breaking changes could occur in future minor versions.","severity":"gotcha","affected_versions":"0.0.1 - 0.0.3"}],"env_vars":null,"last_verified":"2026-05-21T05:03:50.810Z","next_check":"2026-07-10T00:00:00.000Z","problems":[{"fix":"Install the module using pip: 'pip install alibabacloud-gateway-spi'.","cause":"The 'alibabacloud_gateway_spi' module is not installed in the Python environment.","error":"ModuleNotFoundError: No module named 'alibabacloud_gateway_spi'"},{"fix":"Verify the correct class name and import statement; refer to the module's documentation for available classes.","cause":"The 'GatewayClient' class does not exist in the 'alibabacloud_gateway_spi' module.","error":"ImportError: cannot import name 'GatewayClient' from 'alibabacloud_gateway_spi'"},{"fix":"Upgrade the 'alibabacloud_credentials' package to the latest version using pip: 'pip install --upgrade alibabacloud_credentials'.","cause":"An outdated 'alibabacloud_credentials' package version is incompatible with the code accessing the 'provider_name' attribute.","error":"AttributeError: 'CredentialModel' object has no attribute 'provider_name'"},{"fix":"Update pip and install the missing `Tea` module: `pip install --upgrade pip` followed by `pip install alibabacloud-tea`.","cause":"The `alibabacloud-gateway-spi` library, or another Alibaba Cloud SDK component it depends on, requires the `Tea` framework, which is not installed or the pip version is outdated leading to incomplete dependencies.","error":"ModuleNotFoundError: No module named 'Tea'"},{"fix":"Ensure that `ALIBABA_CLOUD_ACCESS_KEY_ID` and `ALIBABA_CLOUD_ACCESS_KEY_SECRET` environment variables are set, or explicitly configure your AccessKey ID and AccessKey secret when initializing the client.","cause":"This error typically occurs when the Alibaba Cloud access key ID and secret are not properly configured or passed, resulting in a `None` credentials object when the SDK attempts to retrieve the access key ID.","error":"AttributeError: 'NoneType' object has no attribute 'get_access_key_id'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"0.0.3","cli_name":"","cli_version":null,"type":"library","homepage":"https://www.aliyun.com","github":"https://github.com/aliyun/alibabacloud-gateway","docs":null,"changelog":null,"pypi":"https://pypi.org/project/alibabacloud-gateway-spi/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["aws"],"base_url":null,"auth_type":null,"install_checks":{"last_tested":"2026-05-21","tag":null,"tag_description":null,"installed_version":"0.0.3","pypi_latest":"0.0.3","is_stale":false,"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.09,"mem_mb":18.6,"disk_size":"32.8M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.16,"mem_mb":18.6,"disk_size":"33.0M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":6.5,"import_time_s":0.81,"mem_mb":18.6,"disk_size":"35M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.82,"mem_mb":18.6,"disk_size":"35M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.3,"mem_mb":20.7,"disk_size":"36.5M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.49,"mem_mb":20.6,"disk_size":"36.7M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":5.4,"import_time_s":1.21,"mem_mb":20.7,"disk_size":"39M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.15,"mem_mb":20.6,"disk_size":"39M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.5,"mem_mb":20.8,"disk_size":"26.3M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.54,"mem_mb":20.7,"disk_size":"26.6M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":8,"import_time_s":1.4,"mem_mb":20.8,"disk_size":"29M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.65,"mem_mb":20.7,"disk_size":"29M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.48,"mem_mb":21.7,"disk_size":"25.7M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.47,"mem_mb":21.6,"disk_size":"25.8M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":7.1,"import_time_s":1.38,"mem_mb":21.7,"disk_size":"28M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.66,"mem_mb":21.6,"disk_size":"28M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.04,"mem_mb":18.4,"disk_size":"33.0M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.25,"mem_mb":18.4,"disk_size":"32.9M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":7.5,"import_time_s":1.03,"mem_mb":18.4,"disk_size":"36M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"alibabacloud-gateway-spi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.98,"mem_mb":18.4,"disk_size":"36M"}]},"quickstart_checks":{"last_tested":"2026-04-25","tag":null,"tag_description":null,"results":[{"runtime":"python:3.10-alpine","exit_code":0},{"runtime":"python:3.10-slim","exit_code":0},{"runtime":"python:3.11-alpine","exit_code":0},{"runtime":"python:3.11-slim","exit_code":0},{"runtime":"python:3.12-alpine","exit_code":0},{"runtime":"python:3.12-slim","exit_code":0},{"runtime":"python:3.13-alpine","exit_code":0},{"runtime":"python:3.13-slim","exit_code":0},{"runtime":"python:3.9-alpine","exit_code":0},{"runtime":"python:3.9-slim","exit_code":0}]},"_links":{"self":"https://checklist.day/api/registry/alibabacloud-gateway-spi","v1":"https://checklist.day/v1/registry/alibabacloud-gateway-spi","v1_install":"https://checklist.day/v1/registry/alibabacloud-gateway-spi/install","v1_imports":"https://checklist.day/v1/registry/alibabacloud-gateway-spi/imports","v1_compatibility":"https://checklist.day/v1/registry/alibabacloud-gateway-spi/compatibility","v1_quickstart":"https://checklist.day/v1/registry/alibabacloud-gateway-spi/quickstart","docs":"https://checklist.day/docs"}}