zenlayercloud-sdk-python 2.0.37__tar.gz → 2.0.39__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.
Files changed (94) hide show
  1. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/PKG-INFO +1 -1
  2. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/__init__.py +1 -1
  3. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/bmc/v20221120/models.py +4 -0
  4. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/sdn/v20230830/models.py +26 -0
  5. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/sdn/v20230830/sdn_client.py +6 -0
  6. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zdns/v20251101/models.py +25 -1
  7. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zec/v20250901/models.py +226 -1
  8. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zec/v20250901/zec_client.py +36 -0
  9. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zlb/v20250401/models.py +21 -1
  10. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zlb/v20250401/zlb_client.py +6 -0
  11. zenlayercloud_sdk_python-2.0.39/zenlayercloud/zrm/__init__.py +0 -0
  12. zenlayercloud_sdk_python-2.0.39/zenlayercloud/zrm/v20251014/__init__.py +0 -0
  13. zenlayercloud_sdk_python-2.0.39/zenlayercloud/zrm/v20251014/models.py +220 -0
  14. zenlayercloud_sdk_python-2.0.39/zenlayercloud/zrm/v20251014/zrm_client.py +52 -0
  15. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud_sdk_python.egg-info/PKG-INFO +1 -1
  16. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud_sdk_python.egg-info/SOURCES.txt +3 -0
  17. zenlayercloud_sdk_python-2.0.37/zenlayercloud/zrm/__init__.py +0 -2
  18. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/LICENSE +0 -0
  19. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/README.rst +0 -0
  20. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/setup.cfg +0 -0
  21. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/setup.py +0 -0
  22. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/alarm/__init__.py +0 -0
  23. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/alarm/v20250307/__init__.py +0 -0
  24. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/alarm/v20250307/alarm_client.py +0 -0
  25. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/alarm/v20250307/models.py +0 -0
  26. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/bmc/__init__.py +0 -0
  27. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/bmc/v20221120/__init__.py +0 -0
  28. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/bmc/v20221120/bmc_client.py +0 -0
  29. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/ccs/__init__.py +0 -0
  30. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/ccs/v20250901/__init__.py +0 -0
  31. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/ccs/v20250901/ccs_client.py +0 -0
  32. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/ccs/v20250901/models.py +0 -0
  33. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/common/__init__.py +0 -0
  34. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/common/abstract_client.py +0 -0
  35. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/common/abstract_model.py +0 -0
  36. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/common/config.py +0 -0
  37. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/common/credential.py +0 -0
  38. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/common/excpetion/__init__.py +0 -0
  39. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/common/excpetion/error_code.py +0 -0
  40. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/common/excpetion/zenlayer_cloud_sdk_exception.py +0 -0
  41. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/common/request.py +0 -0
  42. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/common/response.py +0 -0
  43. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/common/utils.py +0 -0
  44. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/maintenance/__init__.py +0 -0
  45. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/maintenance/v20250310/__init__.py +0 -0
  46. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/maintenance/v20250310/maintenance_client.py +0 -0
  47. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/maintenance/v20250310/models.py +0 -0
  48. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/pvtdns/__init__.py +0 -0
  49. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/pvtdns/v20251101/__init__.py +0 -0
  50. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/pvtdns/v20251101/models.py +0 -0
  51. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/pvtdns/v20251101/pvtdns_client.py +0 -0
  52. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/sdn/__init__.py +0 -0
  53. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/sdn/v20230830/__init__.py +0 -0
  54. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/traffic/__init__.py +0 -0
  55. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/traffic/v20240326/__init__.py +0 -0
  56. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/traffic/v20240326/models.py +0 -0
  57. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/traffic/v20240326/traffic_client.py +0 -0
  58. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/user/__init__.py +0 -0
  59. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/user/v20240529/__init__.py +0 -0
  60. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/user/v20240529/models.py +0 -0
  61. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/user/v20240529/user_client.py +0 -0
  62. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/vm/__init__.py +0 -0
  63. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/vm/v20230313/__init__.py +0 -0
  64. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/vm/v20230313/models.py +0 -0
  65. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/vm/v20230313/vm_client.py +0 -0
  66. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zbc/__init__.py +0 -0
  67. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zbc/v20240809/__init__.py +0 -0
  68. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zbc/v20240809/models.py +0 -0
  69. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zbc/v20240809/zbc_client.py +0 -0
  70. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zdns/__init__.py +0 -0
  71. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zdns/v20251101/__init__.py +0 -0
  72. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zdns/v20251101/zdns_client.py +0 -0
  73. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zec/__init__.py +0 -0
  74. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zec/v20240401/__init__.py +0 -0
  75. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zec/v20240401/models.py +0 -0
  76. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zec/v20240401/zec_client.py +0 -0
  77. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zec/v20250901/__init__.py +0 -0
  78. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zga/__init__.py +0 -0
  79. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zga/v20241104/__init__.py +0 -0
  80. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zga/v20241104/models.py +0 -0
  81. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zga/v20241104/zga_client.py +0 -0
  82. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zlb/__init__.py +0 -0
  83. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zlb/v20250401/__init__.py +0 -0
  84. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zls/__init__.py +0 -0
  85. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zls/v20230804/__init__.py +0 -0
  86. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zls/v20230804/models.py +0 -0
  87. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zls/v20230804/zls_client.py +0 -0
  88. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zos/__init__.py +0 -0
  89. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zos/v20251010/__init__.py +0 -0
  90. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zos/v20251010/models.py +0 -0
  91. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud/zos/v20251010/zos_client.py +0 -0
  92. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud_sdk_python.egg-info/dependency_links.txt +0 -0
  93. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud_sdk_python.egg-info/requires.txt +0 -0
  94. {zenlayercloud_sdk_python-2.0.37 → zenlayercloud_sdk_python-2.0.39}/zenlayercloud_sdk_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zenlayercloud-sdk-python
3
- Version: 2.0.37
3
+ Version: 2.0.39
4
4
  Summary: Zenlayer Cloud SDK for Python
5
5
  Home-page: https://github.com/zenlayer/zenlayercloud-sdk-python
6
6
  Author: Zenlayer Cloud
@@ -1,5 +1,5 @@
1
1
  # Zenlayer.com Inc.
2
2
  # Copyright (c) 2014-2023 All Rights Reserved.
3
3
 
4
- __version__ = "2.0.037"
4
+ __version__ = "2.0.039"
5
5
 
@@ -33,6 +33,7 @@ class CreateInstancesRequest(AbstractModel):
33
33
  self.marketingOptions = None
34
34
  self.userData = None
35
35
  self.tags = None
36
+ self.enableGatewayMode = None
36
37
 
37
38
  def _deserialize(self, params):
38
39
  self.zoneId = params.get("zoneId")
@@ -69,6 +70,7 @@ class CreateInstancesRequest(AbstractModel):
69
70
  self.userData = params.get("userData")
70
71
  if params.get("tags") is not None:
71
72
  self.tags = TagAssociation(params.get("tags"))
73
+ self.enableGatewayMode = params.get("enableGatewayMode")
72
74
 
73
75
 
74
76
  class CreateInstancesResponse(AbstractModel):
@@ -454,6 +456,7 @@ class InstanceInfo(AbstractModel):
454
456
  self.nic = None
455
457
  self.autoRenew = None
456
458
  self.tags = None
459
+ self.enableGatewayMode = None
457
460
 
458
461
  def _deserialize(self, params):
459
462
  self.instanceId = params.get("instanceId")
@@ -493,6 +496,7 @@ class InstanceInfo(AbstractModel):
493
496
  self.autoRenew = params.get("autoRenew")
494
497
  if params.get("tags") is not None:
495
498
  self.tags = Tags(params.get("tags"))
499
+ self.enableGatewayMode = params.get("enableGatewayMode")
496
500
 
497
501
  class StartInstancesRequest(AbstractModel):
498
502
 
@@ -105,6 +105,30 @@ class DescribeVirtualEdgeDatacentersResponse(AbstractModel):
105
105
  self.dcSet.append(obj)
106
106
 
107
107
 
108
+ class DescribeBorderGatewayDatacentersRequest(AbstractModel):
109
+ def __init__(self):
110
+ self.dcId = None
111
+ self.regionId = None
112
+
113
+ def _deserialize(self, params):
114
+ self.dcId = params.get("dcId")
115
+ self.regionId = params.get("regionId")
116
+
117
+
118
+ class DescribeBorderGatewayDatacentersResponse(AbstractModel):
119
+ def __init__(self):
120
+ self.requestId = None # 请求ID
121
+ self.dcSet = None # 虚拟边缘数据中心集合
122
+
123
+ def _deserialize(self, params):
124
+ self.requestId = params.get("requestId")
125
+ if params.get("dcSet") is not None:
126
+ self.dcSet = []
127
+ for item in params.get("dcSet"):
128
+ obj = DatacenterInfo(item) # 复用已有的DatacenterInfo结构
129
+ self.dcSet.append(obj)
130
+
131
+
108
132
  class QueryDataCenterPortPriceRequest(AbstractModel):
109
133
  def __init__(self):
110
134
  self.dcId = None
@@ -788,6 +812,7 @@ class DatacenterInfo(AbstractModel):
788
812
  self.longitude = None
789
813
  self.isPortAvailable = None
790
814
  self.availableBandwidth = None
815
+ self.regionId = None
791
816
 
792
817
  def _deserialize(self, params):
793
818
  self.dcId = params.get("dcId")
@@ -800,6 +825,7 @@ class DatacenterInfo(AbstractModel):
800
825
  self.longitude = params.get("longitude")
801
826
  self.isPortAvailable = params.get("isPortAvailable")
802
827
  self.availableBandwidth = params.get("availableBandwidth")
828
+ self.regionId = params.get("regionId")
803
829
 
804
830
 
805
831
  class DescribeCreatePrivateConnectAvailableSubnetsRequest(AbstractModel):
@@ -28,6 +28,12 @@ class SdnClient(AbstractClient):
28
28
  model._deserialize(response)
29
29
  return model
30
30
 
31
+ def DescribeBorderGatewayDatacenters(self, request):
32
+ response = self._api_call("DescribeBorderGatewayDatacenters", request)
33
+ model = models.DescribeBorderGatewayDatacentersResponse()
34
+ model._deserialize(response)
35
+ return model
36
+
31
37
  def QueryDataCenterPortPrice(self, request):
32
38
  response = self._api_call("QueryDataCenterPortPrice", request)
33
39
 
@@ -1,7 +1,7 @@
1
1
  # Zenlayer.com Inc.
2
2
  # Copyright (c) 2014-2024 All Rights Reserved.
3
3
  from zenlayercloud.common.abstract_model import AbstractModel
4
-
4
+ import warnings
5
5
 
6
6
  class AddPrivateZoneRequest(AbstractModel):
7
7
  def __init__(self):
@@ -281,7 +281,10 @@ class DescribePrivateZoneRecordsRequest(AbstractModel):
281
281
  def __init__(self):
282
282
  self.zoneId = None
283
283
  self.recordIds = None
284
+ self.recordName = None
284
285
  self.type = None
286
+ self.line = None
287
+ self.status = None
285
288
  self.value = None
286
289
  self.pageSize = None
287
290
  self.pageNum = None
@@ -289,7 +292,10 @@ class DescribePrivateZoneRecordsRequest(AbstractModel):
289
292
  def _deserialize(self, params):
290
293
  self.zoneId = params.get("zoneId")
291
294
  self.recordIds = params.get("recordIds")
295
+ self.recordName = params.get("recordName")
292
296
  self.type = params.get("type")
297
+ self.line = params.get("line")
298
+ self.status = params.get("status")
293
299
  self.value = params.get("value")
294
300
  self.pageSize = params.get("pageSize")
295
301
  self.pageNum = params.get("pageNum")
@@ -326,6 +332,7 @@ class PrivateZoneRecord(AbstractModel):
326
332
  self.weight = None
327
333
  self.ttl = None
328
334
  self.line = None
335
+ self.lineInfo = None
329
336
  self.priority = None
330
337
  self.remark = None
331
338
  self.status = None
@@ -340,12 +347,29 @@ class PrivateZoneRecord(AbstractModel):
340
347
  self.weight = params.get("weight")
341
348
  self.ttl = params.get("ttl")
342
349
  self.line = params.get("line")
350
+ if params.get("lineInfo") is not None:
351
+ self.lineInfo = LineInfo(params.get("lineInfo"))
343
352
  self.priority = params.get("priority")
344
353
  self.remark = params.get("remark")
345
354
  self.status = params.get("status")
346
355
  self.createTime = params.get("createTime")
347
356
 
348
357
 
358
+ class LineInfo(AbstractModel):
359
+ def __init__(self, params=None):
360
+ if params is None:
361
+ params = {}
362
+ if len(params) > 0:
363
+ self._deserialize(params)
364
+ return
365
+ self.line = None
366
+ self.city = None
367
+
368
+ def _deserialize(self, params):
369
+ self.line = params.get("line")
370
+ self.city = params.get("city")
371
+
372
+
349
373
  class ModifyPrivateZoneRecordRequest(AbstractModel):
350
374
  def __init__(self):
351
375
  self.zoneId = None
@@ -1,7 +1,7 @@
1
1
  # Zenlayer.com Inc.
2
2
  # Copyright (c) 2014-2024 All Rights Reserved.
3
3
  from zenlayercloud.common.abstract_model import AbstractModel
4
-
4
+ import warnings
5
5
 
6
6
  class DescribeDisksRequest(AbstractModel):
7
7
  def __init__(self):
@@ -99,6 +99,7 @@ class DiskInfo(AbstractModel):
99
99
  self.snapshotAbility = None
100
100
  self.autoSnapshotPolicyId = None
101
101
  self.tags = None
102
+ self.burstingEnabled = None
102
103
 
103
104
  def _deserialize(self, params):
104
105
  self.diskId = params.get("diskId")
@@ -122,6 +123,7 @@ class DiskInfo(AbstractModel):
122
123
  self.autoSnapshotPolicyId = params.get("autoSnapshotPolicyId")
123
124
  if params.get("tags") is not None:
124
125
  self.tags = Tags(params.get("tags"))
126
+ self.burstingEnabled = params.get("burstingEnabled")
125
127
 
126
128
 
127
129
  class Tags(AbstractModel):
@@ -202,6 +204,7 @@ class PriceItem(AbstractModel):
202
204
  self.excessUnitPrice = None
203
205
  self.excessDiscountUnitPrice = None
204
206
  self.excessAmountUnit = None
207
+ self.category = None
205
208
 
206
209
  def _deserialize(self, params):
207
210
  self.discount = params.get("discount")
@@ -219,6 +222,7 @@ class PriceItem(AbstractModel):
219
222
  self.excessUnitPrice = params.get("excessUnitPrice")
220
223
  self.excessDiscountUnitPrice = params.get("excessDiscountUnitPrice")
221
224
  self.excessAmountUnit = params.get("excessAmountUnit")
225
+ self.category = params.get("category")
222
226
 
223
227
 
224
228
  class StepPrice(AbstractModel):
@@ -253,6 +257,7 @@ class CreateDisksRequest(AbstractModel):
253
257
  self.marketingOptions = None
254
258
  self.tags = None
255
259
  self.instanceIds = None
260
+ self.burstingEnabled = None
256
261
 
257
262
  def _deserialize(self, params):
258
263
  self.zoneId = params.get("zoneId")
@@ -268,6 +273,7 @@ class CreateDisksRequest(AbstractModel):
268
273
  if params.get("tags") is not None:
269
274
  self.tags = TagAssociation(params.get("tags"))
270
275
  self.instanceIds = params.get("instanceIds")
276
+ self.burstingEnabled = params.get("burstingEnabled")
271
277
 
272
278
 
273
279
  class MarketingInfo(AbstractModel):
@@ -638,6 +644,7 @@ class CreateSubnetRequest(AbstractModel):
638
644
  self.stackType = None
639
645
  self.cidrBlock = None
640
646
  self.ipv6Type = None
647
+ self.dhcpOptionsSetId = None
641
648
 
642
649
  def _deserialize(self, params):
643
650
  self.vpcId = params.get("vpcId")
@@ -646,6 +653,7 @@ class CreateSubnetRequest(AbstractModel):
646
653
  self.stackType = params.get("stackType")
647
654
  self.cidrBlock = params.get("cidrBlock")
648
655
  self.ipv6Type = params.get("ipv6Type")
656
+ self.dhcpOptionsSetId = params.get("dhcpOptionsSetId")
649
657
 
650
658
 
651
659
  class CreateSubnetResponse(AbstractModel):
@@ -845,6 +853,7 @@ class DescribeSubnetsRequest(AbstractModel):
845
853
  self.pageSize = None
846
854
  self.pageNum = None
847
855
  self.vpcIds = None
856
+ self.dhcpOptionsSetId = None
848
857
 
849
858
  def _deserialize(self, params):
850
859
  self.subnetIds = params.get("subnetIds")
@@ -854,6 +863,7 @@ class DescribeSubnetsRequest(AbstractModel):
854
863
  self.pageSize = params.get("pageSize")
855
864
  self.pageNum = params.get("pageNum")
856
865
  self.vpcIds = params.get("vpcIds")
866
+ self.dhcpOptionsSetId = params.get("dhcpOptionsSetId")
857
867
 
858
868
 
859
869
  class DescribeSubnetsResponse(AbstractModel):
@@ -894,6 +904,7 @@ class SubnetInfo(AbstractModel):
894
904
  self.usageIpv6Count = None
895
905
  self.createTime = None
896
906
  self.isDefault = None
907
+ self.dhcpOptionsSetId = None
897
908
 
898
909
  def _deserialize(self, params):
899
910
  self.subnetId = params.get("subnetId")
@@ -911,6 +922,7 @@ class SubnetInfo(AbstractModel):
911
922
  self.usageIpv6Count = params.get("usageIpv6Count")
912
923
  self.createTime = params.get("createTime")
913
924
  self.isDefault = params.get("isDefault")
925
+ self.dhcpOptionsSetId = params.get("dhcpOptionsSetId")
914
926
 
915
927
 
916
928
  class ModifySubnetsAttributeRequest(AbstractModel):
@@ -1572,6 +1584,12 @@ class UnassignNetworkInterfaceIpv4Request(AbstractModel):
1572
1584
 
1573
1585
  def _deserialize(self, params):
1574
1586
  self.nicId = params.get("nicId")
1587
+ if params.get("ipAddress") is not None:
1588
+ warnings.warn(
1589
+ "ipAddress 已废弃,请勿使用",
1590
+ DeprecationWarning,
1591
+ stacklevel=2
1592
+ )
1575
1593
  self.ipAddress = params.get("ipAddress")
1576
1594
  self.ipAddresses = params.get("ipAddresses")
1577
1595
 
@@ -2679,6 +2697,12 @@ class EipInfo(AbstractModel):
2679
2697
  self.eipV4Type = params.get("eipV4Type")
2680
2698
  self.internetChargeType = params.get("internetChargeType")
2681
2699
  self.cidrId = params.get("cidrId")
2700
+ if params.get("nicId") is not None:
2701
+ warnings.warn(
2702
+ "nicId 已废弃,请勿使用",
2703
+ DeprecationWarning,
2704
+ stacklevel=2
2705
+ )
2682
2706
  self.nicId = params.get("nicId")
2683
2707
  self.associatedId = params.get("associatedId")
2684
2708
  self.associatedType = params.get("associatedType")
@@ -3243,6 +3267,197 @@ class EipMetricValue(AbstractModel):
3243
3267
  self.loseOut = params.get("loseOut")
3244
3268
 
3245
3269
 
3270
+ class CreateDhcpOptionsSetRequest(AbstractModel):
3271
+ def __init__(self):
3272
+ self.dhcpOptionsSetName = None
3273
+ self.domainNameServers = None
3274
+ self.ipv6DomainNameServers = None
3275
+ self.leaseTime = None
3276
+ self.ipv6LeaseTime = None
3277
+ self.tags = None
3278
+ self.resourceGroupId = None
3279
+ self.description = None
3280
+
3281
+ def _deserialize(self, params):
3282
+ self.dhcpOptionsSetName = params.get("dhcpOptionsSetName")
3283
+ self.domainNameServers = params.get("domainNameServers")
3284
+ self.ipv6DomainNameServers = params.get("ipv6DomainNameServers")
3285
+ self.leaseTime = params.get("leaseTime")
3286
+ self.ipv6LeaseTime = params.get("ipv6LeaseTime")
3287
+ if params.get("tags") is not None:
3288
+ self.tags = TagAssociation(params.get("tags"))
3289
+ self.resourceGroupId = params.get("resourceGroupId")
3290
+ self.description = params.get("description")
3291
+
3292
+
3293
+ class CreateDhcpOptionsSetResponse(AbstractModel):
3294
+ def __init__(self):
3295
+ self.requestId = None
3296
+ self.dhcpOptionsSetId = None
3297
+
3298
+ def _deserialize(self, params):
3299
+ self.requestId = params.get("requestId")
3300
+ self.dhcpOptionsSetId = params.get("dhcpOptionsSetId")
3301
+
3302
+
3303
+ class DeleteDhcpOptionsSetRequest(AbstractModel):
3304
+ def __init__(self):
3305
+ self.dhcpOptionsSetId = None
3306
+
3307
+ def _deserialize(self, params):
3308
+ self.dhcpOptionsSetId = params.get("dhcpOptionsSetId")
3309
+
3310
+
3311
+ class DeleteDhcpOptionsSetResponse(AbstractModel):
3312
+ def __init__(self):
3313
+ self.requestId = None
3314
+
3315
+ def _deserialize(self, params):
3316
+ self.requestId = params.get("requestId")
3317
+
3318
+
3319
+ class AttachDhcpOptionsSetToSubnetRequest(AbstractModel):
3320
+ def __init__(self):
3321
+ self.dhcpOptionsSetId = None
3322
+ self.subnetIds = None
3323
+
3324
+ def _deserialize(self, params):
3325
+ self.dhcpOptionsSetId = params.get("dhcpOptionsSetId")
3326
+ self.subnetIds = params.get("subnetIds")
3327
+
3328
+
3329
+ class AttachDhcpOptionsSetToSubnetResponse(AbstractModel):
3330
+ def __init__(self):
3331
+ self.requestId = None
3332
+ self.failedSubnetIds = None
3333
+
3334
+ def _deserialize(self, params):
3335
+ self.requestId = params.get("requestId")
3336
+ self.failedSubnetIds = params.get("failedSubnetIds")
3337
+
3338
+
3339
+ class DetachDhcpOptionsSetFromSubnetRequest(AbstractModel):
3340
+ def __init__(self):
3341
+ self.subnetIds = None
3342
+
3343
+ def _deserialize(self, params):
3344
+ self.subnetIds = params.get("subnetIds")
3345
+
3346
+
3347
+ class DetachDhcpOptionsSetFromSubnetResponse(AbstractModel):
3348
+ def __init__(self):
3349
+ self.requestId = None
3350
+ self.failedSubnetIds = None
3351
+
3352
+ def _deserialize(self, params):
3353
+ self.requestId = params.get("requestId")
3354
+ self.failedSubnetIds = params.get("failedSubnetIds")
3355
+
3356
+
3357
+ class DescribeDhcpOptionsSetsRequest(AbstractModel):
3358
+ def __init__(self):
3359
+ self.dhcpOptionsSetIds = None
3360
+ self.dhcpOptionsSetName = None
3361
+ self.subnetId = None
3362
+ self.pageSize = None
3363
+ self.pageNum = None
3364
+ self.resourceGroupId = None
3365
+ self.tagKeys = None
3366
+ self.tags = None
3367
+
3368
+ def _deserialize(self, params):
3369
+ self.dhcpOptionsSetIds = params.get("dhcpOptionsSetIds")
3370
+ self.dhcpOptionsSetName = params.get("dhcpOptionsSetName")
3371
+ self.subnetId = params.get("subnetId")
3372
+ self.pageSize = params.get("pageSize")
3373
+ self.pageNum = params.get("pageNum")
3374
+ self.resourceGroupId = params.get("resourceGroupId")
3375
+ self.tagKeys = params.get("tagKeys")
3376
+ if params.get("tags") is not None:
3377
+ self.tags = []
3378
+ for item in params.get("tags"):
3379
+ obj = Tag(item)
3380
+ self.tags.append(obj)
3381
+
3382
+
3383
+ class DescribeDhcpOptionsSetsResponse(AbstractModel):
3384
+ def __init__(self):
3385
+ self.requestId = None
3386
+ self.totalCount = None
3387
+ self.dataSet = None
3388
+
3389
+ def _deserialize(self, params):
3390
+ self.requestId = params.get("requestId")
3391
+ self.totalCount = params.get("totalCount")
3392
+ if params.get("dataSet") is not None:
3393
+ self.dataSet = []
3394
+ for item in params.get("dataSet"):
3395
+ obj = DhcpOptionsSet(item)
3396
+ self.dataSet.append(obj)
3397
+
3398
+
3399
+ class DhcpOptionsSet(AbstractModel):
3400
+ def __init__(self, params=None):
3401
+ if params is None:
3402
+ params = {}
3403
+ if len(params) > 0:
3404
+ self._deserialize(params)
3405
+ return
3406
+ self.dhcpOptionsSetId = None
3407
+ self.dhcpOptionsSetName = None
3408
+ self.domainNameServers = None
3409
+ self.ipv6DomainNameServers = None
3410
+ self.leaseTime = None
3411
+ self.ipv6LeaseTime = None
3412
+ self.createTime = None
3413
+ self.description = None
3414
+ self.resourceGroupId = None
3415
+ self.resourceGroupName = None
3416
+ self.tags = None
3417
+
3418
+ def _deserialize(self, params):
3419
+ self.dhcpOptionsSetId = params.get("dhcpOptionsSetId")
3420
+ self.dhcpOptionsSetName = params.get("dhcpOptionsSetName")
3421
+ self.domainNameServers = params.get("domainNameServers")
3422
+ self.ipv6DomainNameServers = params.get("ipv6DomainNameServers")
3423
+ self.leaseTime = params.get("leaseTime")
3424
+ self.ipv6LeaseTime = params.get("ipv6LeaseTime")
3425
+ self.createTime = params.get("createTime")
3426
+ self.description = params.get("description")
3427
+ self.resourceGroupId = params.get("resourceGroupId")
3428
+ self.resourceGroupName = params.get("resourceGroupName")
3429
+ if params.get("tags") is not None:
3430
+ self.tags = Tags(params.get("tags"))
3431
+
3432
+
3433
+ class ModifyDhcpOptionsSetAttributesRequest(AbstractModel):
3434
+ def __init__(self):
3435
+ self.dhcpOptionsSetId = None
3436
+ self.dhcpOptionsSetName = None
3437
+ self.domainNameServers = None
3438
+ self.ipv6DomainNameServers = None
3439
+ self.leaseTime = None
3440
+ self.ipv6LeaseTime = None
3441
+ self.description = None
3442
+
3443
+ def _deserialize(self, params):
3444
+ self.dhcpOptionsSetId = params.get("dhcpOptionsSetId")
3445
+ self.dhcpOptionsSetName = params.get("dhcpOptionsSetName")
3446
+ self.domainNameServers = params.get("domainNameServers")
3447
+ self.ipv6DomainNameServers = params.get("ipv6DomainNameServers")
3448
+ self.leaseTime = params.get("leaseTime")
3449
+ self.ipv6LeaseTime = params.get("ipv6LeaseTime")
3450
+ self.description = params.get("description")
3451
+
3452
+
3453
+ class ModifyDhcpOptionsSetAttributesResponse(AbstractModel):
3454
+ def __init__(self):
3455
+ self.requestId = None
3456
+
3457
+ def _deserialize(self, params):
3458
+ self.requestId = params.get("requestId")
3459
+
3460
+
3246
3461
  class DescribeDDosAllEventListRequest(AbstractModel):
3247
3462
  def __init__(self):
3248
3463
  self.status = None
@@ -3417,6 +3632,12 @@ class ZoneInfo(AbstractModel):
3417
3632
  self.zoneId = params.get("zoneId")
3418
3633
  self.regionId = params.get("regionId")
3419
3634
  self.zoneName = params.get("zoneName")
3635
+ if params.get("supportSecurityGroup") is not None:
3636
+ warnings.warn(
3637
+ "supportSecurityGroup 已废弃,请勿使用",
3638
+ DeprecationWarning,
3639
+ stacklevel=2
3640
+ )
3420
3641
  self.supportSecurityGroup = params.get("supportSecurityGroup")
3421
3642
 
3422
3643
 
@@ -4385,11 +4606,13 @@ class SystemDisk(AbstractModel):
4385
4606
  self.diskId = None
4386
4607
  self.diskSize = None
4387
4608
  self.diskCategory = None
4609
+ self.burstingEnabled = None
4388
4610
 
4389
4611
  def _deserialize(self, params):
4390
4612
  self.diskId = params.get("diskId")
4391
4613
  self.diskSize = params.get("diskSize")
4392
4614
  self.diskCategory = params.get("diskCategory")
4615
+ self.burstingEnabled = params.get("burstingEnabled")
4393
4616
 
4394
4617
 
4395
4618
  class DataDisk(AbstractModel):
@@ -4404,6 +4627,7 @@ class DataDisk(AbstractModel):
4404
4627
  self.diskSize = None
4405
4628
  self.diskAmount = None
4406
4629
  self.portable = None
4630
+ self.burstingEnabled = None
4407
4631
  self.diskCategory = None
4408
4632
 
4409
4633
  def _deserialize(self, params):
@@ -4412,6 +4636,7 @@ class DataDisk(AbstractModel):
4412
4636
  self.diskSize = params.get("diskSize")
4413
4637
  self.diskAmount = params.get("diskAmount")
4414
4638
  self.portable = params.get("portable")
4639
+ self.burstingEnabled = params.get("burstingEnabled")
4415
4640
  self.diskCategory = params.get("diskCategory")
4416
4641
 
4417
4642
 
@@ -548,6 +548,42 @@ class ZECClient(AbstractClient):
548
548
  model._deserialize(response)
549
549
  return model
550
550
 
551
+ def CreateDhcpOptionsSet(self, request):
552
+ response = self._api_call("CreateDhcpOptionsSet", request)
553
+ model = models.CreateDhcpOptionsSetResponse()
554
+ model._deserialize(response)
555
+ return model
556
+
557
+ def DeleteDhcpOptionsSet(self, request):
558
+ response = self._api_call("DeleteDhcpOptionsSet", request)
559
+ model = models.DeleteDhcpOptionsSetResponse()
560
+ model._deserialize(response)
561
+ return model
562
+
563
+ def AttachDhcpOptionsSetToSubnet(self, request):
564
+ response = self._api_call("AttachDhcpOptionsSetToSubnet", request)
565
+ model = models.AttachDhcpOptionsSetToSubnetResponse()
566
+ model._deserialize(response)
567
+ return model
568
+
569
+ def DetachDhcpOptionsSetFromSubnet(self, request):
570
+ response = self._api_call("DetachDhcpOptionsSetFromSubnet", request)
571
+ model = models.DetachDhcpOptionsSetFromSubnetResponse()
572
+ model._deserialize(response)
573
+ return model
574
+
575
+ def DescribeDhcpOptionsSets(self, request):
576
+ response = self._api_call("DescribeDhcpOptionsSets", request)
577
+ model = models.DescribeDhcpOptionsSetsResponse()
578
+ model._deserialize(response)
579
+ return model
580
+
581
+ def ModifyDhcpOptionsSetAttributes(self, request):
582
+ response = self._api_call("ModifyDhcpOptionsSetAttributes", request)
583
+ model = models.ModifyDhcpOptionsSetAttributesResponse()
584
+ model._deserialize(response)
585
+ return model
586
+
551
587
  def DescribeDDosAllEventList(self, request):
552
588
  response = self._api_call("DescribeDDosAllEventList", request)
553
589
  model = models.DescribeDDosAllEventListResponse()
@@ -1,7 +1,7 @@
1
1
  # Zenlayer.com Inc.
2
2
  # Copyright (c) 2014-2024 All Rights Reserved.
3
3
  from zenlayercloud.common.abstract_model import AbstractModel
4
-
4
+ import warnings
5
5
 
6
6
  class DescribeListenersRequest(AbstractModel):
7
7
  def __init__(self):
@@ -741,6 +741,7 @@ class PriceItem(AbstractModel):
741
741
  self.excessUnitPrice = None
742
742
  self.excessDiscountUnitPrice = None
743
743
  self.excessAmountUnit = None
744
+ self.category = None
744
745
 
745
746
  def _deserialize(self, params):
746
747
  self.discount = params.get("discount")
@@ -758,6 +759,7 @@ class PriceItem(AbstractModel):
758
759
  self.excessUnitPrice = params.get("excessUnitPrice")
759
760
  self.excessDiscountUnitPrice = params.get("excessDiscountUnitPrice")
760
761
  self.excessAmountUnit = params.get("excessAmountUnit")
762
+ self.category = params.get("category")
761
763
 
762
764
 
763
765
  class StepPrice(AbstractModel):
@@ -850,6 +852,24 @@ class SetSecurityGroupForLoadBalancersResponse(AbstractModel):
850
852
  self.failedLoadBalancerIds = params.get("failedLoadBalancerIds")
851
853
 
852
854
 
855
+ class UnbindSecurityGroupFromLoadBalancersRequest(AbstractModel):
856
+ def __init__(self):
857
+ self.loadBalancerIds = None
858
+
859
+ def _deserialize(self, params):
860
+ self.loadBalancerIds = params.get("loadBalancerIds")
861
+
862
+
863
+ class UnbindSecurityGroupFromLoadBalancersResponse(AbstractModel):
864
+ def __init__(self):
865
+ self.requestId = None
866
+ self.failedLoadBalancerIds = None
867
+
868
+ def _deserialize(self, params):
869
+ self.requestId = params.get("requestId")
870
+ self.failedLoadBalancerIds = params.get("failedLoadBalancerIds")
871
+
872
+
853
873
  class AddLoadBalancersPrivateIpsRequest(AbstractModel):
854
874
  def __init__(self):
855
875
  self.privateIps = None
@@ -116,6 +116,12 @@ class ZLBClient(AbstractClient):
116
116
  model._deserialize(response)
117
117
  return model
118
118
 
119
+ def UnbindSecurityGroupFromLoadBalancers(self, request):
120
+ response = self._api_call("UnbindSecurityGroupFromLoadBalancers", request)
121
+ model = models.UnbindSecurityGroupFromLoadBalancersResponse()
122
+ model._deserialize(response)
123
+ return model
124
+
119
125
  def AddLoadBalancersPrivateIps(self, request):
120
126
  response = self._api_call("AddLoadBalancersPrivateIps", request)
121
127
  model = models.AddLoadBalancersPrivateIpsResponse()
@@ -0,0 +1,220 @@
1
+ # Zenlayer.com Inc.
2
+ # Copyright (c) 2014-2024 All Rights Reserved.
3
+ from zenlayercloud.common.abstract_model import AbstractModel
4
+
5
+
6
+ class CreateTagsRequest(AbstractModel):
7
+ def __init__(self):
8
+ self.tags = None
9
+
10
+ def _deserialize(self, params):
11
+ if params.get("tags") is not None:
12
+ self.tags = []
13
+ for item in params.get("tags"):
14
+ obj = Tag(item)
15
+ self.tags.append(obj)
16
+
17
+
18
+ class Tag(AbstractModel):
19
+ def __init__(self, params=None):
20
+ if params is None:
21
+ params = {}
22
+ if len(params) > 0:
23
+ self._deserialize(params)
24
+ return
25
+ self.key = None
26
+ self.value = None
27
+
28
+ def _deserialize(self, params):
29
+ self.key = params.get("key")
30
+ self.value = params.get("value")
31
+
32
+
33
+ class CreateTagsResponse(AbstractModel):
34
+ def __init__(self):
35
+ self.requestId = None
36
+
37
+ def _deserialize(self, params):
38
+ self.requestId = params.get("requestId")
39
+
40
+
41
+ class DeleteTagsRequest(AbstractModel):
42
+ def __init__(self):
43
+ self.tags = None
44
+
45
+ def _deserialize(self, params):
46
+ if params.get("tags") is not None:
47
+ self.tags = []
48
+ for item in params.get("tags"):
49
+ obj = Tag(item)
50
+ self.tags.append(obj)
51
+
52
+
53
+ class DeleteTagsResponse(AbstractModel):
54
+ def __init__(self):
55
+ self.requestId = None
56
+
57
+ def _deserialize(self, params):
58
+ self.requestId = params.get("requestId")
59
+
60
+
61
+ class DescribeTagsRequest(AbstractModel):
62
+ def __init__(self):
63
+ self.pageNum = None
64
+ self.pageSize = None
65
+ self.keySort = None
66
+ self.createdDateSort = None
67
+ self.tagKeys = None
68
+ self.tags = None
69
+
70
+ def _deserialize(self, params):
71
+ self.pageNum = params.get("pageNum")
72
+ self.pageSize = params.get("pageSize")
73
+ self.keySort = params.get("keySort")
74
+ self.createdDateSort = params.get("createdDateSort")
75
+ self.tagKeys = params.get("tagKeys")
76
+ if params.get("tags") is not None:
77
+ self.tags = []
78
+ for item in params.get("tags"):
79
+ obj = Tag(item)
80
+ self.tags.append(obj)
81
+
82
+
83
+ class DescribeTagsResponse(AbstractModel):
84
+ def __init__(self):
85
+ self.requestId = None
86
+ self.totalCount = None
87
+ self.dataSet = None
88
+
89
+ def _deserialize(self, params):
90
+ self.requestId = params.get("requestId")
91
+ self.totalCount = params.get("totalCount")
92
+ if params.get("dataSet") is not None:
93
+ self.dataSet = []
94
+ for item in params.get("dataSet"):
95
+ obj = TagInfo(item)
96
+ self.dataSet.append(obj)
97
+
98
+
99
+ class TagInfo(AbstractModel):
100
+ def __init__(self, params=None):
101
+ if params is None:
102
+ params = {}
103
+ if len(params) > 0:
104
+ self._deserialize(params)
105
+ return
106
+ self.key = None
107
+ self.value = None
108
+ self.bindResourceCount = None
109
+ self.createdDate = None
110
+
111
+ def _deserialize(self, params):
112
+ self.key = params.get("key")
113
+ self.value = params.get("value")
114
+ self.bindResourceCount = params.get("bindResourceCount")
115
+ self.createdDate = params.get("createdDate")
116
+
117
+
118
+ class TagBindResourcesRequest(AbstractModel):
119
+ def __init__(self):
120
+ self.tag = None
121
+ self.resourceUuids = None
122
+
123
+ def _deserialize(self, params):
124
+ if params.get("tag") is not None:
125
+ self.tag = Tag(params.get("tag"))
126
+ self.resourceUuids = params.get("resourceUuids")
127
+
128
+
129
+ class TagBindResourcesResponse(AbstractModel):
130
+ def __init__(self):
131
+ self.requestId = None
132
+
133
+ def _deserialize(self, params):
134
+ self.requestId = params.get("requestId")
135
+
136
+
137
+ class TagUnbindResourcesRequest(AbstractModel):
138
+ def __init__(self):
139
+ self.tag = None
140
+ self.resourceUuids = None
141
+
142
+ def _deserialize(self, params):
143
+ if params.get("tag") is not None:
144
+ self.tag = Tag(params.get("tag"))
145
+ self.resourceUuids = params.get("resourceUuids")
146
+
147
+
148
+ class TagUnbindResourcesResponse(AbstractModel):
149
+ def __init__(self):
150
+ self.requestId = None
151
+
152
+ def _deserialize(self, params):
153
+ self.requestId = params.get("requestId")
154
+
155
+
156
+ class DescribeResourceTagsRequest(AbstractModel):
157
+ def __init__(self):
158
+ self.resourceUuid = None
159
+
160
+ def _deserialize(self, params):
161
+ self.resourceUuid = params.get("resourceUuid")
162
+
163
+
164
+ class DescribeResourceTagsResponse(AbstractModel):
165
+ def __init__(self):
166
+ self.requestId = None
167
+ self.totalCount = None
168
+ self.dataSet = None
169
+
170
+ def _deserialize(self, params):
171
+ self.requestId = params.get("requestId")
172
+ self.totalCount = params.get("totalCount")
173
+ if params.get("dataSet") is not None:
174
+ self.dataSet = []
175
+ for item in params.get("dataSet"):
176
+ obj = ResourceTag(item)
177
+ self.dataSet.append(obj)
178
+
179
+
180
+ class ResourceTag(AbstractModel):
181
+ def __init__(self, params=None):
182
+ if params is None:
183
+ params = {}
184
+ if len(params) > 0:
185
+ self._deserialize(params)
186
+ return
187
+ self.key = None
188
+ self.value = None
189
+ self.createdDate = None
190
+
191
+ def _deserialize(self, params):
192
+ self.key = params.get("key")
193
+ self.value = params.get("value")
194
+ self.createdDate = params.get("createdDate")
195
+
196
+
197
+ class ModifyResourceTagsRequest(AbstractModel):
198
+ def __init__(self):
199
+ self.resourceUuid = None
200
+ self.replaceTags = None
201
+ self.deleteTagKeys = None
202
+
203
+ def _deserialize(self, params):
204
+ self.resourceUuid = params.get("resourceUuid")
205
+ if params.get("replaceTags") is not None:
206
+ self.replaceTags = []
207
+ for item in params.get("replaceTags"):
208
+ obj = Tag(item)
209
+ self.replaceTags.append(obj)
210
+ self.deleteTagKeys = params.get("deleteTagKeys")
211
+
212
+
213
+ class ModifyResourceTagsResponse(AbstractModel):
214
+ def __init__(self):
215
+ self.requestId = None
216
+
217
+ def _deserialize(self, params):
218
+ self.requestId = params.get("requestId")
219
+
220
+
@@ -0,0 +1,52 @@
1
+ # Zenlayer.com Inc.
2
+ # Copyright (c) 2014-2024 All Rights Reserved.
3
+ from zenlayercloud.zrm.v20251014 import models
4
+ from zenlayercloud.common.abstract_client import AbstractClient
5
+
6
+
7
+ class ZrmClient(AbstractClient):
8
+ _api_version = "2025-10-14"
9
+ _service = "zrm"
10
+
11
+ def CreateTags(self, request):
12
+ response = self._api_call("CreateTags", request)
13
+ model = models.CreateTagsResponse()
14
+ model._deserialize(response)
15
+ return model
16
+
17
+ def DeleteTags(self, request):
18
+ response = self._api_call("DeleteTags", request)
19
+ model = models.DeleteTagsResponse()
20
+ model._deserialize(response)
21
+ return model
22
+
23
+ def DescribeTags(self, request):
24
+ response = self._api_call("DescribeTags", request)
25
+ model = models.DescribeTagsResponse()
26
+ model._deserialize(response)
27
+ return model
28
+
29
+ def TagBindResources(self, request):
30
+ response = self._api_call("TagBindResources", request)
31
+ model = models.TagBindResourcesResponse()
32
+ model._deserialize(response)
33
+ return model
34
+
35
+ def TagUnbindResources(self, request):
36
+ response = self._api_call("TagUnbindResources", request)
37
+ model = models.TagUnbindResourcesResponse()
38
+ model._deserialize(response)
39
+ return model
40
+
41
+ def DescribeResourceTags(self, request):
42
+ response = self._api_call("DescribeResourceTags", request)
43
+ model = models.DescribeResourceTagsResponse()
44
+ model._deserialize(response)
45
+ return model
46
+
47
+ def ModifyResourceTags(self, request):
48
+ response = self._api_call("ModifyResourceTags", request)
49
+ model = models.ModifyResourceTagsResponse()
50
+ model._deserialize(response)
51
+ return model
52
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zenlayercloud-sdk-python
3
- Version: 2.0.37
3
+ Version: 2.0.39
4
4
  Summary: Zenlayer Cloud SDK for Python
5
5
  Home-page: https://github.com/zenlayer/zenlayercloud-sdk-python
6
6
  Author: Zenlayer Cloud
@@ -81,6 +81,9 @@ zenlayercloud/zos/v20251010/__init__.py
81
81
  zenlayercloud/zos/v20251010/models.py
82
82
  zenlayercloud/zos/v20251010/zos_client.py
83
83
  zenlayercloud/zrm/__init__.py
84
+ zenlayercloud/zrm/v20251014/__init__.py
85
+ zenlayercloud/zrm/v20251014/models.py
86
+ zenlayercloud/zrm/v20251014/zrm_client.py
84
87
  zenlayercloud_sdk_python.egg-info/PKG-INFO
85
88
  zenlayercloud_sdk_python.egg-info/SOURCES.txt
86
89
  zenlayercloud_sdk_python.egg-info/dependency_links.txt
@@ -1,2 +0,0 @@
1
- # Zenlayer.com Inc.
2
- # Copyright (c) 2014-2023 All Rights Reserved.