zenlayercloud-sdk-python 2.0.55__tar.gz → 2.0.57__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.55 → zenlayercloud_sdk_python-2.0.57}/PKG-INFO +1 -1
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/__init__.py +1 -1
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/bmc/v20260201/bmc_client.py +1 -1
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/bmc/v20260201/models.py +8 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/common/abstract_client.py +10 -6
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/common/credential.py +16 -1
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zec/v20250901/models.py +399 -134
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zec/v20250901/zec_client.py +99 -36
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud_sdk_python.egg-info/PKG-INFO +1 -1
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/LICENSE +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/README.rst +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/setup.cfg +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/setup.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/aigw/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/aigw/v20260414/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/aigw/v20260414/aigw_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/aigw/v20260414/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/alarm/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/alarm/v20250307/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/alarm/v20250307/alarm_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/alarm/v20250307/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/bmc/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/bmc/v20221120/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/bmc/v20221120/bmc_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/bmc/v20221120/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/bmc/v20260201/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/ccs/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/ccs/v20250901/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/ccs/v20250901/ccs_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/ccs/v20250901/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/common/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/common/abstract_model.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/common/config.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/common/excpetion/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/common/excpetion/error_code.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/common/excpetion/zenlayer_cloud_sdk_exception.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/common/request.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/common/response.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/common/utils.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/ipt/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/ipt/v20240901/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/ipt/v20240901/ipt_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/ipt/v20240901/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/maintenance/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/maintenance/v20250310/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/maintenance/v20250310/maintenance_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/maintenance/v20250310/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/pvtdns/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/pvtdns/v20251101/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/pvtdns/v20251101/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/pvtdns/v20251101/pvtdns_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/sdn/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/sdn/v20230830/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/sdn/v20230830/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/sdn/v20230830/sdn_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/traffic/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/traffic/v20240326/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/traffic/v20240326/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/traffic/v20240326/traffic_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/user/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/user/v20240529/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/user/v20240529/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/user/v20240529/user_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/vm/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/vm/v20230313/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/vm/v20230313/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/vm/v20230313/vm_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/vm/v20260401/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/vm/v20260401/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/vm/v20260401/vm_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zbc/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zbc/v20240809/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zbc/v20240809/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zbc/v20240809/zbc_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zdns/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zdns/v20251101/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zdns/v20251101/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zdns/v20251101/zdns_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zec/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zec/v20240401/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zec/v20240401/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zec/v20240401/zec_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zec/v20250901/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zga/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zga/v20241104/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zga/v20241104/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zga/v20241104/zga_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zlb/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zlb/v20250401/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zlb/v20250401/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zlb/v20250401/zlb_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zls/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zls/v20230804/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zls/v20230804/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zls/v20230804/zls_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zos/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zos/v20251010/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zos/v20251010/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zos/v20251010/zos_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zrm/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zrm/v20251014/__init__.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zrm/v20251014/models.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud/zrm/v20251014/zrm_client.py +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud_sdk_python.egg-info/SOURCES.txt +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud_sdk_python.egg-info/dependency_links.txt +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud_sdk_python.egg-info/requires.txt +0 -0
- {zenlayercloud_sdk_python-2.0.55 → zenlayercloud_sdk_python-2.0.57}/zenlayercloud_sdk_python.egg-info/top_level.txt +0 -0
|
@@ -288,6 +288,7 @@ class Zone(AbstractModel):
|
|
|
288
288
|
self.cityName = None
|
|
289
289
|
self.areaName = None
|
|
290
290
|
self.isCloudRouterAvailable = None
|
|
291
|
+
self.isByoipEnabled = None
|
|
291
292
|
|
|
292
293
|
def _deserialize(self, params):
|
|
293
294
|
self.zoneId = params.get("zoneId")
|
|
@@ -295,6 +296,7 @@ class Zone(AbstractModel):
|
|
|
295
296
|
self.cityName = params.get("cityName")
|
|
296
297
|
self.areaName = params.get("areaName")
|
|
297
298
|
self.isCloudRouterAvailable = params.get("isCloudRouterAvailable")
|
|
299
|
+
self.isByoipEnabled = params.get("isByoipEnabled")
|
|
298
300
|
|
|
299
301
|
|
|
300
302
|
class DescribeInstanceTypesRequest(AbstractModel):
|
|
@@ -362,6 +364,9 @@ class InstanceType(AbstractModel):
|
|
|
362
364
|
self.supportSubnet = None
|
|
363
365
|
self.isHA = None
|
|
364
366
|
self.diskInfo = None
|
|
367
|
+
self.vpuVendor = None
|
|
368
|
+
self.vpuCard = None
|
|
369
|
+
self.vpuCount = None
|
|
365
370
|
|
|
366
371
|
def _deserialize(self, params):
|
|
367
372
|
self.imageIds = params.get("imageIds")
|
|
@@ -379,6 +384,9 @@ class InstanceType(AbstractModel):
|
|
|
379
384
|
self.isHA = params.get("isHA")
|
|
380
385
|
if params.get("diskInfo") is not None:
|
|
381
386
|
self.diskInfo = InstanceDiskInfo(params.get("diskInfo"))
|
|
387
|
+
self.vpuVendor = params.get("vpuVendor")
|
|
388
|
+
self.vpuCard = params.get("vpuCard")
|
|
389
|
+
self.vpuCount = params.get("vpuCount")
|
|
382
390
|
|
|
383
391
|
|
|
384
392
|
class InstanceDiskInfo(AbstractModel):
|
|
@@ -6,6 +6,7 @@ import time
|
|
|
6
6
|
import zenlayercloud
|
|
7
7
|
from zenlayercloud.common.abstract_model import AbstractModel
|
|
8
8
|
from zenlayercloud.common.config import Config
|
|
9
|
+
from zenlayercloud.common.credential import TokenCredential
|
|
9
10
|
from zenlayercloud.common.excpetion import error_code
|
|
10
11
|
from zenlayercloud.common.excpetion.zenlayer_cloud_sdk_exception import ZenlayerCloudSdkException
|
|
11
12
|
from zenlayercloud.common.request import BaseRequest, ApiProxyClient
|
|
@@ -25,7 +26,7 @@ class AbstractClient(object):
|
|
|
25
26
|
"""base client interactive with zenlayer cloud
|
|
26
27
|
|
|
27
28
|
:param credential: the zenlayer cloud credential
|
|
28
|
-
:type credential: zenlayercloud.common.credential.Credential
|
|
29
|
+
:type credential: zenlayercloud.common.credential.Credential or zenlayercloud.common.credential.TokenCredential
|
|
29
30
|
:param config: the additional config for client
|
|
30
31
|
:type config: zenlayercloud.common.config.Config
|
|
31
32
|
"""
|
|
@@ -49,10 +50,7 @@ class AbstractClient(object):
|
|
|
49
50
|
req = BaseRequest(host=self.config.domain, method=method, uri=uri, header=headers)
|
|
50
51
|
|
|
51
52
|
header = req.header
|
|
52
|
-
timestamp = int(time.time())
|
|
53
53
|
header["x-zc-version"] = self._api_version
|
|
54
|
-
header["x-zc-signature-method"] = self._signature_method
|
|
55
|
-
header["x-zc-timestamp"] = str(timestamp)
|
|
56
54
|
header["x-zc-service"] = self._service
|
|
57
55
|
header["x-zc-action"] = action
|
|
58
56
|
header["x-zc-sdk-version"] = self._sdk_version
|
|
@@ -61,8 +59,14 @@ class AbstractClient(object):
|
|
|
61
59
|
req.set_content_type(_json_content_type)
|
|
62
60
|
req.data = json.dumps(request.serialize())
|
|
63
61
|
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
if isinstance(self.credential, TokenCredential):
|
|
63
|
+
req.header["Authorization"] = "Bearer " + self.credential.token
|
|
64
|
+
else:
|
|
65
|
+
timestamp = int(time.time())
|
|
66
|
+
header["x-zc-signature-method"] = self._signature_method
|
|
67
|
+
header["x-zc-timestamp"] = str(timestamp)
|
|
68
|
+
authorization = self._build_zc2_authorization(req)
|
|
69
|
+
req.header["Authorization"] = authorization
|
|
66
70
|
|
|
67
71
|
resp = self._send_request(req)
|
|
68
72
|
return self._handle_response(resp)
|
|
@@ -9,7 +9,7 @@ class Credential(object):
|
|
|
9
9
|
def __init__(self, access_key_id, access_key_password):
|
|
10
10
|
"""Zenlayer Cloud Credential.
|
|
11
11
|
|
|
12
|
-
Access https://console.zenlayer.com/ to manage your
|
|
12
|
+
Access https://console.zenlayer.com/accessKey to manage your
|
|
13
13
|
credentials.
|
|
14
14
|
|
|
15
15
|
:param access_key_id: The access key id of your credential.
|
|
@@ -23,3 +23,18 @@ class Credential(object):
|
|
|
23
23
|
raise ZenlayerCloudSdkException(CREDENTIAL_MISSING_ERROR, "access key password should not be none or empty")
|
|
24
24
|
self.access_key_id = access_key_id.strip()
|
|
25
25
|
self.access_key_password = access_key_password.strip()
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class TokenCredential(object):
|
|
29
|
+
|
|
30
|
+
def __init__(self, token):
|
|
31
|
+
"""Zenlayer Cloud Bearer Token Credential.
|
|
32
|
+
|
|
33
|
+
Access https://console.zenlayer.com/accessToken to generate a personal access token and use it instead of HMAC-signed credentials.
|
|
34
|
+
|
|
35
|
+
:param token: The personal access token.
|
|
36
|
+
:type token: str
|
|
37
|
+
"""
|
|
38
|
+
if token is None or token.strip() == "":
|
|
39
|
+
raise ZenlayerCloudSdkException(CREDENTIAL_MISSING_ERROR, "token should not be none or empty")
|
|
40
|
+
self.token = token.strip()
|