zenlayercloud-sdk-python 2.0.61__tar.gz → 2.0.63__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/PKG-INFO +1 -1
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/__init__.py +1 -1
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/common/abstract_client.py +20 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/common/config.py +17 -1
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/common/excpetion/error_code.py +2 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/traffic/v20240326/models.py +125 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zec/v20250901/models.py +76 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zec/v20250901/zec_client.py +18 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud_sdk_python.egg-info/PKG-INFO +1 -1
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/LICENSE +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/README.rst +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/setup.cfg +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/setup.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/aigw/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/aigw/v20260414/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/aigw/v20260414/aigw_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/aigw/v20260414/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/alarm/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/alarm/v20250307/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/alarm/v20250307/alarm_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/alarm/v20250307/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/bmc/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/bmc/v20221120/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/bmc/v20221120/bmc_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/bmc/v20221120/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/bmc/v20260201/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/bmc/v20260201/bmc_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/bmc/v20260201/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/ccs/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/ccs/v20250901/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/ccs/v20250901/ccs_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/ccs/v20250901/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/common/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/common/abstract_model.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/common/credential.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/common/excpetion/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/common/excpetion/zenlayer_cloud_sdk_exception.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/common/request.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/common/response.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/common/utils.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/ipt/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/ipt/v20240901/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/ipt/v20240901/ipt_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/ipt/v20240901/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/maintenance/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/maintenance/v20250310/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/maintenance/v20250310/maintenance_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/maintenance/v20250310/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/mcpgw/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/mcpgw/v20260602/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/mcpgw/v20260602/mcpgw_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/mcpgw/v20260602/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/pvtdns/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/pvtdns/v20251101/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/pvtdns/v20251101/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/pvtdns/v20251101/pvtdns_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/sdn/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/sdn/v20230830/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/sdn/v20230830/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/sdn/v20230830/sdn_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/traffic/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/traffic/v20240326/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/traffic/v20240326/traffic_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/user/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/user/v20240529/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/user/v20240529/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/user/v20240529/user_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/vm/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/vm/v20230313/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/vm/v20230313/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/vm/v20230313/vm_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/vm/v20260401/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/vm/v20260401/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/vm/v20260401/vm_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zbc/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zbc/v20240809/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zbc/v20240809/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zbc/v20240809/zbc_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zdns/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zdns/v20251101/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zdns/v20251101/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zdns/v20251101/zdns_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zec/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zec/v20240401/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zec/v20240401/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zec/v20240401/zec_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zec/v20250901/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zga/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zga/v20241104/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zga/v20241104/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zga/v20241104/zga_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zlb/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zlb/v20250401/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zlb/v20250401/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zlb/v20250401/zlb_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zls/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zls/v20230804/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zls/v20230804/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zls/v20230804/zls_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zos/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zos/v20251010/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zos/v20251010/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zos/v20251010/zos_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zrm/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zrm/v20251014/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zrm/v20251014/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zrm/v20251014/zrm_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud_sdk_python.egg-info/SOURCES.txt +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud_sdk_python.egg-info/dependency_links.txt +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud_sdk_python.egg-info/requires.txt +0 -0
- {zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud_sdk_python.egg-info/top_level.txt +0 -0
|
@@ -48,6 +48,26 @@ class AbstractClient(object):
|
|
|
48
48
|
code=error_code.SDK_INVALID_REQUEST,
|
|
49
49
|
message="Request must be AbstractModel"
|
|
50
50
|
)
|
|
51
|
+
|
|
52
|
+
max_retries = max(self.config.rate_limit_max_retries or 0, 0)
|
|
53
|
+
duration_func = self.config.rate_limit_retry_duration
|
|
54
|
+
|
|
55
|
+
last_exception = None
|
|
56
|
+
for idx in range(max_retries + 1):
|
|
57
|
+
try:
|
|
58
|
+
return self._do_api_call(action, request, method, headers)
|
|
59
|
+
except ZenlayerCloudSdkException as e:
|
|
60
|
+
if idx < max_retries and e.code == error_code.REQUEST_LIMIT_EXCEEDED:
|
|
61
|
+
last_exception = e
|
|
62
|
+
duration = duration_func(idx)
|
|
63
|
+
_logger.warning("rate limit exceeded, retrying (%d/%d) in %s seconds: %s",
|
|
64
|
+
idx, max_retries, duration, e.message)
|
|
65
|
+
time.sleep(duration)
|
|
66
|
+
continue
|
|
67
|
+
raise
|
|
68
|
+
raise last_exception
|
|
69
|
+
|
|
70
|
+
def _do_api_call(self, action, request, method, headers) -> dict:
|
|
51
71
|
uri = "/api/v2/%s" % self._service
|
|
52
72
|
req = BaseRequest(host=self.config.domain, method=method, uri=uri, header=headers)
|
|
53
73
|
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/common/config.py
RENAMED
|
@@ -3,11 +3,19 @@
|
|
|
3
3
|
|
|
4
4
|
DEFAULT_DOMAIN = "console.zenlayer.com"
|
|
5
5
|
|
|
6
|
+
DEFAULT_RATE_LIMIT_MAX_RETRIES = 3
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def exponential_backoff(index):
|
|
10
|
+
"""Default backoff: 1s, 2s, 4s, 8s, ..."""
|
|
11
|
+
return 2 ** index
|
|
12
|
+
|
|
6
13
|
|
|
7
14
|
class Config(object):
|
|
8
15
|
|
|
9
16
|
def __init__(self, scheme=None, domain=None, request_timeout=60, proxy=None, keep_alive=False, debug=False,
|
|
10
|
-
certification=None
|
|
17
|
+
certification=None, rate_limit_max_retries=DEFAULT_RATE_LIMIT_MAX_RETRIES,
|
|
18
|
+
rate_limit_retry_duration=None):
|
|
11
19
|
"""config.
|
|
12
20
|
|
|
13
21
|
:param scheme: http or https, default is https.
|
|
@@ -20,6 +28,12 @@ class Config(object):
|
|
|
20
28
|
:type keep_alive: bool
|
|
21
29
|
:param debug: open or close debug mode.
|
|
22
30
|
:type debug: bool
|
|
31
|
+
:param rate_limit_max_retries: Max retries when REQUEST_LIMIT_EXCEEDED (HTTP 429)
|
|
32
|
+
is returned. Defaults to 3. Set to 0 to disable.
|
|
33
|
+
:type rate_limit_max_retries: int
|
|
34
|
+
:param rate_limit_retry_duration: A callable ``f(index) -> seconds`` that returns
|
|
35
|
+
the wait time before the next retry. Defaults to exponential backoff.
|
|
36
|
+
:type rate_limit_retry_duration: callable
|
|
23
37
|
"""
|
|
24
38
|
|
|
25
39
|
self.scheme = scheme or "https"
|
|
@@ -29,4 +43,6 @@ class Config(object):
|
|
|
29
43
|
self.request_timeout = 60 if request_timeout is None else request_timeout
|
|
30
44
|
self.debug = debug
|
|
31
45
|
self.certification = certification
|
|
46
|
+
self.rate_limit_max_retries = rate_limit_max_retries
|
|
47
|
+
self.rate_limit_retry_duration = rate_limit_retry_duration or exponential_backoff
|
|
32
48
|
|
|
@@ -48,6 +48,7 @@ class InquiryBandwidthClusterPriceRequest(AbstractModel):
|
|
|
48
48
|
def __init__(self):
|
|
49
49
|
self.areaCode = None
|
|
50
50
|
self.commitBandwidthMbps = None
|
|
51
|
+
self.internationalCommitBandwidthMbps = None
|
|
51
52
|
self.networkType = None
|
|
52
53
|
self.internetChargeType = None
|
|
53
54
|
self.product = None
|
|
@@ -55,6 +56,7 @@ class InquiryBandwidthClusterPriceRequest(AbstractModel):
|
|
|
55
56
|
def _deserialize(self, params):
|
|
56
57
|
self.areaCode = params.get("areaCode")
|
|
57
58
|
self.commitBandwidthMbps = params.get("commitBandwidthMbps")
|
|
59
|
+
self.internationalCommitBandwidthMbps = params.get("internationalCommitBandwidthMbps")
|
|
58
60
|
self.networkType = params.get("networkType")
|
|
59
61
|
self.internetChargeType = params.get("internetChargeType")
|
|
60
62
|
self.product = params.get("product")
|
|
@@ -64,11 +66,14 @@ class InquiryBandwidthClusterPriceResponse(AbstractModel):
|
|
|
64
66
|
def __init__(self):
|
|
65
67
|
self.requestId = None
|
|
66
68
|
self.price = None
|
|
69
|
+
self.internationalPrice = None
|
|
67
70
|
|
|
68
71
|
def _deserialize(self, params):
|
|
69
72
|
self.requestId = params.get("requestId")
|
|
70
73
|
if params.get("price") is not None:
|
|
71
74
|
self.price = PriceItem(params.get("price"))
|
|
75
|
+
if params.get("internationalPrice") is not None:
|
|
76
|
+
self.internationalPrice = PriceItem(params.get("internationalPrice"))
|
|
72
77
|
|
|
73
78
|
|
|
74
79
|
class PriceItem(AbstractModel):
|
|
@@ -136,6 +141,9 @@ class DescribeBandwidthClustersRequest(AbstractModel):
|
|
|
136
141
|
self.cityName = None
|
|
137
142
|
self.pageNum = None
|
|
138
143
|
self.pageSize = None
|
|
144
|
+
self.resourceGroupId = None
|
|
145
|
+
self.tagKeys = None
|
|
146
|
+
self.tags = None
|
|
139
147
|
|
|
140
148
|
def _deserialize(self, params):
|
|
141
149
|
self.bandwidthClusterIds = params.get("bandwidthClusterIds")
|
|
@@ -143,6 +151,28 @@ class DescribeBandwidthClustersRequest(AbstractModel):
|
|
|
143
151
|
self.cityName = params.get("cityName")
|
|
144
152
|
self.pageNum = params.get("pageNum")
|
|
145
153
|
self.pageSize = params.get("pageSize")
|
|
154
|
+
self.resourceGroupId = params.get("resourceGroupId")
|
|
155
|
+
self.tagKeys = params.get("tagKeys")
|
|
156
|
+
if params.get("tags") is not None:
|
|
157
|
+
self.tags = []
|
|
158
|
+
for item in params.get("tags"):
|
|
159
|
+
obj = Tag(item)
|
|
160
|
+
self.tags.append(obj)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
class Tag(AbstractModel):
|
|
164
|
+
def __init__(self, params=None):
|
|
165
|
+
if params is None:
|
|
166
|
+
params = {}
|
|
167
|
+
if len(params) > 0:
|
|
168
|
+
self._deserialize(params)
|
|
169
|
+
return
|
|
170
|
+
self.key = None
|
|
171
|
+
self.value = None
|
|
172
|
+
|
|
173
|
+
def _deserialize(self, params):
|
|
174
|
+
self.key = params.get("key")
|
|
175
|
+
self.value = params.get("value")
|
|
146
176
|
|
|
147
177
|
|
|
148
178
|
class DescribeBandwidthClustersResponse(AbstractModel):
|
|
@@ -176,10 +206,13 @@ class BandwidthClusterInfo(AbstractModel):
|
|
|
176
206
|
self.areaCode = None
|
|
177
207
|
self.internetChargeType = None
|
|
178
208
|
self.commitBandwidthMbps = None
|
|
209
|
+
self.internationalCommitBandwidthMbps = None
|
|
179
210
|
self.location = None
|
|
180
211
|
self.createTime = None
|
|
181
212
|
self.resourceNumber = None
|
|
182
213
|
self.cities = None
|
|
214
|
+
self.tags = None
|
|
215
|
+
self.resourceGroup = None
|
|
183
216
|
|
|
184
217
|
def _deserialize(self, params):
|
|
185
218
|
self.bandwidthClusterId = params.get("bandwidthClusterId")
|
|
@@ -196,6 +229,7 @@ class BandwidthClusterInfo(AbstractModel):
|
|
|
196
229
|
self.areaCode = params.get("areaCode")
|
|
197
230
|
self.internetChargeType = params.get("internetChargeType")
|
|
198
231
|
self.commitBandwidthMbps = params.get("commitBandwidthMbps")
|
|
232
|
+
self.internationalCommitBandwidthMbps = params.get("internationalCommitBandwidthMbps")
|
|
199
233
|
self.location = params.get("location")
|
|
200
234
|
self.createTime = params.get("createTime")
|
|
201
235
|
self.resourceNumber = params.get("resourceNumber")
|
|
@@ -204,6 +238,10 @@ class BandwidthClusterInfo(AbstractModel):
|
|
|
204
238
|
for item in params.get("cities"):
|
|
205
239
|
obj = CityInfo(item)
|
|
206
240
|
self.cities.append(obj)
|
|
241
|
+
if params.get("tags") is not None:
|
|
242
|
+
self.tags = Tags(params.get("tags"))
|
|
243
|
+
if params.get("resourceGroup") is not None:
|
|
244
|
+
self.resourceGroup = ResourceGroupInfo(params.get("resourceGroup"))
|
|
207
245
|
|
|
208
246
|
|
|
209
247
|
class CityInfo(AbstractModel):
|
|
@@ -221,19 +259,55 @@ class CityInfo(AbstractModel):
|
|
|
221
259
|
self.cityCode = params.get("cityCode")
|
|
222
260
|
|
|
223
261
|
|
|
262
|
+
class Tags(AbstractModel):
|
|
263
|
+
def __init__(self, params=None):
|
|
264
|
+
if params is None:
|
|
265
|
+
params = {}
|
|
266
|
+
if len(params) > 0:
|
|
267
|
+
self._deserialize(params)
|
|
268
|
+
return
|
|
269
|
+
self.tags = None
|
|
270
|
+
|
|
271
|
+
def _deserialize(self, params):
|
|
272
|
+
if params.get("tags") is not None:
|
|
273
|
+
self.tags = []
|
|
274
|
+
for item in params.get("tags"):
|
|
275
|
+
obj = Tag(item)
|
|
276
|
+
self.tags.append(obj)
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
class ResourceGroupInfo(AbstractModel):
|
|
280
|
+
def __init__(self, params=None):
|
|
281
|
+
if params is None:
|
|
282
|
+
params = {}
|
|
283
|
+
if len(params) > 0:
|
|
284
|
+
self._deserialize(params)
|
|
285
|
+
return
|
|
286
|
+
self.resourceGroupId = None
|
|
287
|
+
self.resourceGroupName = None
|
|
288
|
+
|
|
289
|
+
def _deserialize(self, params):
|
|
290
|
+
self.resourceGroupId = params.get("resourceGroupId")
|
|
291
|
+
self.resourceGroupName = params.get("resourceGroupName")
|
|
292
|
+
|
|
293
|
+
|
|
224
294
|
class CreateBandwidthClusterRequest(AbstractModel):
|
|
225
295
|
def __init__(self):
|
|
226
296
|
self.areaCode = None
|
|
227
297
|
self.commitBandwidthMbps = None
|
|
298
|
+
self.internationalCommitBandwidthMbps = None
|
|
228
299
|
self.networkLineType = None
|
|
229
300
|
self.networkType = None
|
|
230
301
|
self.internetChargeType = None
|
|
231
302
|
self.name = None
|
|
232
303
|
self.product = None
|
|
304
|
+
self.resourceGroupId = None
|
|
305
|
+
self.tags = None
|
|
233
306
|
|
|
234
307
|
def _deserialize(self, params):
|
|
235
308
|
self.areaCode = params.get("areaCode")
|
|
236
309
|
self.commitBandwidthMbps = params.get("commitBandwidthMbps")
|
|
310
|
+
self.internationalCommitBandwidthMbps = params.get("internationalCommitBandwidthMbps")
|
|
237
311
|
self.networkLineType = params.get("networkLineType")
|
|
238
312
|
if params.get("networkType") is not None:
|
|
239
313
|
warnings.warn(
|
|
@@ -245,6 +319,26 @@ class CreateBandwidthClusterRequest(AbstractModel):
|
|
|
245
319
|
self.internetChargeType = params.get("internetChargeType")
|
|
246
320
|
self.name = params.get("name")
|
|
247
321
|
self.product = params.get("product")
|
|
322
|
+
self.resourceGroupId = params.get("resourceGroupId")
|
|
323
|
+
if params.get("tags") is not None:
|
|
324
|
+
self.tags = TagAssociation(params.get("tags"))
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
class TagAssociation(AbstractModel):
|
|
328
|
+
def __init__(self, params=None):
|
|
329
|
+
if params is None:
|
|
330
|
+
params = {}
|
|
331
|
+
if len(params) > 0:
|
|
332
|
+
self._deserialize(params)
|
|
333
|
+
return
|
|
334
|
+
self.tags = None
|
|
335
|
+
|
|
336
|
+
def _deserialize(self, params):
|
|
337
|
+
if params.get("tags") is not None:
|
|
338
|
+
self.tags = []
|
|
339
|
+
for item in params.get("tags"):
|
|
340
|
+
obj = Tag(item)
|
|
341
|
+
self.tags.append(obj)
|
|
248
342
|
|
|
249
343
|
|
|
250
344
|
class CreateBandwidthClusterResponse(AbstractModel):
|
|
@@ -265,12 +359,14 @@ class DescribeBandwidthClusterTrafficRequest(AbstractModel):
|
|
|
265
359
|
self.startTime = None
|
|
266
360
|
self.endTime = None
|
|
267
361
|
self.city = None
|
|
362
|
+
self.trafficType = None
|
|
268
363
|
|
|
269
364
|
def _deserialize(self, params):
|
|
270
365
|
self.bandwidthClusterId = params.get("bandwidthClusterId")
|
|
271
366
|
self.startTime = params.get("startTime")
|
|
272
367
|
self.endTime = params.get("endTime")
|
|
273
368
|
self.city = params.get("city")
|
|
369
|
+
self.trafficType = params.get("trafficType")
|
|
274
370
|
|
|
275
371
|
|
|
276
372
|
class DescribeBandwidthClusterTrafficResponse(AbstractModel):
|
|
@@ -338,10 +434,12 @@ class UpdateBandwidthClusterCommitBandwidthRequest(AbstractModel):
|
|
|
338
434
|
def __init__(self):
|
|
339
435
|
self.bandwidthClusterId = None
|
|
340
436
|
self.commitBandwidthMbps = None
|
|
437
|
+
self.internationalCommitBandwidthMbps = None
|
|
341
438
|
|
|
342
439
|
def _deserialize(self, params):
|
|
343
440
|
self.bandwidthClusterId = params.get("bandwidthClusterId")
|
|
344
441
|
self.commitBandwidthMbps = params.get("commitBandwidthMbps")
|
|
442
|
+
self.internationalCommitBandwidthMbps = params.get("internationalCommitBandwidthMbps")
|
|
345
443
|
|
|
346
444
|
|
|
347
445
|
class UpdateBandwidthClusterCommitBandwidthResponse(AbstractModel):
|
|
@@ -480,11 +578,17 @@ class BandwidthClusterUsageData(AbstractModel):
|
|
|
480
578
|
return
|
|
481
579
|
self.time = None
|
|
482
580
|
self.value = None
|
|
581
|
+
self.typeValues = None
|
|
483
582
|
self.details = None
|
|
484
583
|
|
|
485
584
|
def _deserialize(self, params):
|
|
486
585
|
self.time = params.get("time")
|
|
487
586
|
self.value = params.get("value")
|
|
587
|
+
if params.get("typeValues") is not None:
|
|
588
|
+
self.typeValues = []
|
|
589
|
+
for item in params.get("typeValues"):
|
|
590
|
+
obj = TrafficTypeValue(item)
|
|
591
|
+
self.typeValues.append(obj)
|
|
488
592
|
if params.get("details") is not None:
|
|
489
593
|
self.details = []
|
|
490
594
|
for item in params.get("details"):
|
|
@@ -492,6 +596,21 @@ class BandwidthClusterUsageData(AbstractModel):
|
|
|
492
596
|
self.details.append(obj)
|
|
493
597
|
|
|
494
598
|
|
|
599
|
+
class TrafficTypeValue(AbstractModel):
|
|
600
|
+
def __init__(self, params=None):
|
|
601
|
+
if params is None:
|
|
602
|
+
params = {}
|
|
603
|
+
if len(params) > 0:
|
|
604
|
+
self._deserialize(params)
|
|
605
|
+
return
|
|
606
|
+
self.trafficType = None
|
|
607
|
+
self.value = None
|
|
608
|
+
|
|
609
|
+
def _deserialize(self, params):
|
|
610
|
+
self.trafficType = params.get("trafficType")
|
|
611
|
+
self.value = params.get("value")
|
|
612
|
+
|
|
613
|
+
|
|
495
614
|
class BandwidthClusterUsageDetail(AbstractModel):
|
|
496
615
|
def __init__(self, params=None):
|
|
497
616
|
if params is None:
|
|
@@ -503,11 +622,17 @@ class BandwidthClusterUsageDetail(AbstractModel):
|
|
|
503
622
|
self.cityCode = None
|
|
504
623
|
self.product = None
|
|
505
624
|
self.value = None
|
|
625
|
+
self.typeValues = None
|
|
506
626
|
|
|
507
627
|
def _deserialize(self, params):
|
|
508
628
|
self.cityName = params.get("cityName")
|
|
509
629
|
self.cityCode = params.get("cityCode")
|
|
510
630
|
self.product = params.get("product")
|
|
511
631
|
self.value = params.get("value")
|
|
632
|
+
if params.get("typeValues") is not None:
|
|
633
|
+
self.typeValues = []
|
|
634
|
+
for item in params.get("typeValues"):
|
|
635
|
+
obj = TrafficTypeValue(item)
|
|
636
|
+
self.typeValues.append(obj)
|
|
512
637
|
|
|
513
638
|
|
|
@@ -1083,9 +1083,11 @@ class ChangeNicNetworkTypeResponse(AbstractModel):
|
|
|
1083
1083
|
class ReleaseInstancesRequest(AbstractModel):
|
|
1084
1084
|
def __init__(self):
|
|
1085
1085
|
self.instanceIds = None
|
|
1086
|
+
self.dependResource = None
|
|
1086
1087
|
|
|
1087
1088
|
def _deserialize(self, params):
|
|
1088
1089
|
self.instanceIds = params.get("instanceIds")
|
|
1090
|
+
self.dependResource = params.get("dependResource")
|
|
1089
1091
|
|
|
1090
1092
|
|
|
1091
1093
|
class ReleaseInstancesResponse(AbstractModel):
|
|
@@ -1181,16 +1183,72 @@ class InquiryPriceModifyInstanceTypeResponse(AbstractModel):
|
|
|
1181
1183
|
def __init__(self):
|
|
1182
1184
|
self.requestId = None
|
|
1183
1185
|
self.specPrice = None
|
|
1186
|
+
self.gpuPrice = None
|
|
1184
1187
|
self.systemDiskPrice = None
|
|
1185
1188
|
|
|
1186
1189
|
def _deserialize(self, params):
|
|
1187
1190
|
self.requestId = params.get("requestId")
|
|
1188
1191
|
if params.get("specPrice") is not None:
|
|
1189
1192
|
self.specPrice = PriceItem(params.get("specPrice"))
|
|
1193
|
+
if params.get("gpuPrice") is not None:
|
|
1194
|
+
self.gpuPrice = PriceItem(params.get("gpuPrice"))
|
|
1190
1195
|
if params.get("systemDiskPrice") is not None:
|
|
1191
1196
|
self.systemDiskPrice = PriceItem(params.get("systemDiskPrice"))
|
|
1192
1197
|
|
|
1193
1198
|
|
|
1199
|
+
class DescribeZoneGpuInstanceConfigInfosRequest(AbstractModel):
|
|
1200
|
+
def __init__(self):
|
|
1201
|
+
self.zoneId = None
|
|
1202
|
+
self.instanceType = None
|
|
1203
|
+
|
|
1204
|
+
def _deserialize(self, params):
|
|
1205
|
+
self.zoneId = params.get("zoneId")
|
|
1206
|
+
self.instanceType = params.get("instanceType")
|
|
1207
|
+
|
|
1208
|
+
|
|
1209
|
+
class DescribeZoneGpuInstanceConfigInfosResponse(AbstractModel):
|
|
1210
|
+
def __init__(self):
|
|
1211
|
+
self.requestId = None
|
|
1212
|
+
self.instanceTypeQuotaSet = None
|
|
1213
|
+
|
|
1214
|
+
def _deserialize(self, params):
|
|
1215
|
+
self.requestId = params.get("requestId")
|
|
1216
|
+
if params.get("instanceTypeQuotaSet") is not None:
|
|
1217
|
+
self.instanceTypeQuotaSet = []
|
|
1218
|
+
for item in params.get("instanceTypeQuotaSet"):
|
|
1219
|
+
obj = GpuInstanceTypeQuotaItem(item)
|
|
1220
|
+
self.instanceTypeQuotaSet.append(obj)
|
|
1221
|
+
|
|
1222
|
+
|
|
1223
|
+
class GpuInstanceTypeQuotaItem(AbstractModel):
|
|
1224
|
+
def __init__(self, params=None):
|
|
1225
|
+
if params is None:
|
|
1226
|
+
params = {}
|
|
1227
|
+
if len(params) > 0:
|
|
1228
|
+
self._deserialize(params)
|
|
1229
|
+
return
|
|
1230
|
+
self.zoneId = None
|
|
1231
|
+
self.instanceType = None
|
|
1232
|
+
self.cpuCount = None
|
|
1233
|
+
self.memory = None
|
|
1234
|
+
self.gpuAmount = None
|
|
1235
|
+
self.instanceTypeName = None
|
|
1236
|
+
self.bps = None
|
|
1237
|
+
self.pps = None
|
|
1238
|
+
self.inventoryCapacity = None
|
|
1239
|
+
|
|
1240
|
+
def _deserialize(self, params):
|
|
1241
|
+
self.zoneId = params.get("zoneId")
|
|
1242
|
+
self.instanceType = params.get("instanceType")
|
|
1243
|
+
self.cpuCount = params.get("cpuCount")
|
|
1244
|
+
self.memory = params.get("memory")
|
|
1245
|
+
self.gpuAmount = params.get("gpuAmount")
|
|
1246
|
+
self.instanceTypeName = params.get("instanceTypeName")
|
|
1247
|
+
self.bps = params.get("bps")
|
|
1248
|
+
self.pps = params.get("pps")
|
|
1249
|
+
self.inventoryCapacity = params.get("inventoryCapacity")
|
|
1250
|
+
|
|
1251
|
+
|
|
1194
1252
|
class DescribeImagesRequest(AbstractModel):
|
|
1195
1253
|
def __init__(self):
|
|
1196
1254
|
self.zoneId = None
|
|
@@ -4356,6 +4414,24 @@ class InquiryPriceChangeEipInternetChargeTypeResponse(AbstractModel):
|
|
|
4356
4414
|
self.remoteBandwidthPrice = PriceItem(params.get("remoteBandwidthPrice"))
|
|
4357
4415
|
|
|
4358
4416
|
|
|
4417
|
+
class ModifyEipTrafficPackageRequest(AbstractModel):
|
|
4418
|
+
def __init__(self):
|
|
4419
|
+
self.eipId = None
|
|
4420
|
+
self.trafficPackageSize = None
|
|
4421
|
+
|
|
4422
|
+
def _deserialize(self, params):
|
|
4423
|
+
self.eipId = params.get("eipId")
|
|
4424
|
+
self.trafficPackageSize = params.get("trafficPackageSize")
|
|
4425
|
+
|
|
4426
|
+
|
|
4427
|
+
class ModifyEipTrafficPackageResponse(AbstractModel):
|
|
4428
|
+
def __init__(self):
|
|
4429
|
+
self.requestId = None
|
|
4430
|
+
|
|
4431
|
+
def _deserialize(self, params):
|
|
4432
|
+
self.requestId = params.get("requestId")
|
|
4433
|
+
|
|
4434
|
+
|
|
4359
4435
|
class DescribeRoutesRequest(AbstractModel):
|
|
4360
4436
|
def __init__(self):
|
|
4361
4437
|
self.routeIds = None
|
|
@@ -233,6 +233,15 @@ class ZecClient(AbstractClient):
|
|
|
233
233
|
model._deserialize(response)
|
|
234
234
|
return model
|
|
235
235
|
|
|
236
|
+
def DescribeZoneGpuInstanceConfigInfos(self, request):
|
|
237
|
+
"""
|
|
238
|
+
查询可用区售卖的 GPU 规格信息
|
|
239
|
+
"""
|
|
240
|
+
response = self._api_call("DescribeZoneGpuInstanceConfigInfos", request)
|
|
241
|
+
model = models.DescribeZoneGpuInstanceConfigInfosResponse()
|
|
242
|
+
model._deserialize(response)
|
|
243
|
+
return model
|
|
244
|
+
|
|
236
245
|
def DescribeImages(self, request):
|
|
237
246
|
"""
|
|
238
247
|
查询某节点支持的镜像列表。
|
|
@@ -1052,6 +1061,15 @@ class ZecClient(AbstractClient):
|
|
|
1052
1061
|
model._deserialize(response)
|
|
1053
1062
|
return model
|
|
1054
1063
|
|
|
1064
|
+
def ModifyEipTrafficPackage(self, request):
|
|
1065
|
+
"""
|
|
1066
|
+
调整弹性公网IP流量包。
|
|
1067
|
+
"""
|
|
1068
|
+
response = self._api_call("ModifyEipTrafficPackage", request)
|
|
1069
|
+
model = models.ModifyEipTrafficPackageResponse()
|
|
1070
|
+
model._deserialize(response)
|
|
1071
|
+
return model
|
|
1072
|
+
|
|
1055
1073
|
def DescribeRoutes(self, request):
|
|
1056
1074
|
"""
|
|
1057
1075
|
查询路由列表。用户可以根据ID、名称等信息来搜索Route信息。路由列表包括系统生成的以及用户创建的路由。
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/aigw/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/alarm/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/bmc/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/ccs/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/common/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/common/request.py
RENAMED
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/common/response.py
RENAMED
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/common/utils.py
RENAMED
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/ipt/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/mcpgw/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/pvtdns/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/sdn/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/user/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/vm/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zbc/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zdns/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zec/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zga/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zlb/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zls/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zos/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{zenlayercloud_sdk_python-2.0.61 → zenlayercloud_sdk_python-2.0.63}/zenlayercloud/zrm/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|